{"version":3,"sources":["../node_modules/react/index.js","../node_modules/tslib/tslib.es6.js","../../src/storeUtils.ts","../../src/directives.ts","../../src/fragments.ts","../../src/util/assign.ts","../../src/getFromAST.ts","../../src/util/filterInPlace.ts","../../src/transform.ts","../../src/util/canUse.ts","../../src/util/cloneDeep.ts","../../src/util/environment.ts","../../src/util/errorHandling.ts","../../src/util/maybeDeepFreeze.ts","../../src/util/mergeDeep.ts","../../src/util/warnOnce.ts","../../src/invariant.ts","../node_modules/graphql/language/kinds.mjs","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/classnames/index.js","../node_modules/@umijs/use-request/es/utils/index.js","../node_modules/@umijs/use-request/es/utils/usePersistFn.js","../node_modules/@umijs/use-request/es/utils/windowFocus.js","../node_modules/@umijs/use-request/es/utils/windowVisible.js","../node_modules/@umijs/use-request/es/usePaginated.js","../node_modules/@umijs/use-request/es/configContext.js","../node_modules/@umijs/use-request/es/index.js","../node_modules/@umijs/hooks/es/useAsync/index.js","../node_modules/@umijs/hooks/es/useUpdateEffect/index.js","../node_modules/@umijs/hooks/es/useDebounceFn/index.js","../node_modules/@umijs/hooks/es/useSize/index.js","../node_modules/@umijs/hooks/es/useResponsive/index.js","../node_modules/@umijs/hooks/es/useToggle/index.js","../node_modules/@umijs/hooks/es/useBoolean/index.js","../node_modules/@umijs/hooks/es/useDebounce/index.js","../node_modules/@umijs/hooks/es/usePrevious/index.js","../node_modules/@umijs/hooks/es/useMouse/index.js","../node_modules/@umijs/hooks/es/useEventListener/index.js","../node_modules/@umijs/hooks/es/useHover/index.js","../node_modules/@umijs/hooks/es/useTextSelection/index.js","../../src/data/OperationData.ts","../../src/data/QueryData.ts","../../src/data/MutationData.ts","../../src/useMutation.ts","../../src/data/SubscriptionData.ts","../../src/useSubscription.ts","../../src/ssr/RenderPromises.ts","../../src/linkUtils.ts","../../src/link.ts","../../src/equality.ts","../../src/zenObservable.ts","../../src/context/ApolloContext.ts","../../src/parser/parser.ts","../../src/context/ApolloProvider.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/graphql-tag/src/index.js","../node_modules/graphql/language/visitor.mjs","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/screenfull/dist/screenfull.js","../../src/core/networkStatus.ts","../../src/util/Observable.ts","../../src/util/arrays.ts","../../src/errors/ApolloError.ts","../../src/core/types.ts","../../src/core/ObservableQuery.ts","../../src/data/mutations.ts","../../src/data/queries.ts","../../src/core/LocalState.ts","../../src/util/capitalizeFirstLetter.ts","../../src/util/observables.ts","../../src/core/QueryManager.ts","../../src/data/store.ts","../../src/ApolloClient.ts","../../src/version.ts","../node_modules/webpack/buildin/global.js","../node_modules/process/browser.js","../node_modules/engine.io-parser/lib/browser.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","../node_modules/socket.io-client/node_modules/debug/src/browser.js","../node_modules/parseqs/index.js","../node_modules/component-inherit/index.js","../node_modules/engine.io-client/node_modules/debug/src/browser.js","../node_modules/lodash.throttle/index.js","../node_modules/graphql/jsutils/inspect.mjs","../node_modules/graphql/language/blockString.mjs","../node_modules/umi-request/dist/index.es.js","../node_modules/umi-request/node_modules/qs/lib/utils.js","../node_modules/socket.io-parser/index.js","../node_modules/buffer/index.js","../node_modules/engine.io-client/lib/xmlhttprequest.js","../node_modules/engine.io-client/lib/globalThis.browser.js","../node_modules/engine.io-client/lib/transport.js","../node_modules/component-emitter/index.js","../node_modules/symbol-observable/es/index.js","../node_modules/graphql/language/printer.mjs","../node_modules/canvas-confetti/dist/confetti.module.mjs","../node_modules/umi-request/node_modules/qs/lib/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../../src/client.ts","../node_modules/object-assign/index.js","../node_modules/umi-request/node_modules/qs/lib/formats.js","../node_modules/parseuri/index.js","../node_modules/socket.io-parser/node_modules/isarray/index.js","../node_modules/socket.io-parser/is-buffer.js","../node_modules/socket.io-client/lib/manager.js","../node_modules/engine.io-client/lib/transports/index.js","../node_modules/engine.io-client/lib/transports/polling.js","../node_modules/has-binary2/index.js","../node_modules/yeast/index.js","../node_modules/indexof/index.js","../node_modules/socket.io-client/lib/socket.js","../node_modules/socket.io-client/node_modules/component-emitter/index.js","../node_modules/socket.io-client/lib/on.js","../node_modules/component-bind/index.js","../node_modules/backo2/index.js","../node_modules/react-dom/index.js","../node_modules/zustand/index.js","../node_modules/lodash.debounce/index.js","../node_modules/lodash.isequal/index.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/zen-observable/index.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/socket.io-client/lib/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../src/index.ts","../../src/webSocketLink.ts","../../src/utils.ts","../../src/types/Cache.ts","../../src/cache.ts","../../src/slot.ts","../../src/context.ts","../../src/entry.ts","../../src/key-trie.ts","../../src/fragmentMatcher.ts","../../src/depTrackingCache.ts","../../src/readFromStore.ts","../../src/objectCache.ts","../../src/writeToStore.ts","../../src/inMemoryCache.ts","../../src/httpLink.ts","../node_modules/nanoid/index.browser.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/umi-request/node_modules/qs/lib/stringify.js","../node_modules/umi-request/node_modules/qs/lib/parse.js","../node_modules/isomorphic-fetch/fetch-npm-browserify.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/webpack/buildin/module.js","../node_modules/intersection-observer/intersection-observer.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/zen-observable/lib/Observable.js","../node_modules/socket.io-client/lib/url.js","../node_modules/socket.io-client/node_modules/debug/src/common.js","../node_modules/socket.io-client/node_modules/ms/index.js","../node_modules/socket.io-parser/node_modules/debug/src/browser.js","../node_modules/socket.io-parser/node_modules/debug/src/debug.js","../node_modules/ms/index.js","../node_modules/socket.io-parser/node_modules/component-emitter/index.js","../node_modules/socket.io-parser/binary.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/engine.io-client/lib/index.js","../node_modules/engine.io-client/lib/socket.js","../node_modules/has-cors/index.js","../node_modules/engine.io-client/lib/transports/polling-xhr.js","../node_modules/engine.io-parser/lib/keys.js","../node_modules/has-binary2/node_modules/isarray/index.js","../node_modules/arraybuffer.slice/index.js","../node_modules/after/index.js","../node_modules/engine.io-parser/lib/utf8.js","../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../node_modules/blob/index.js","../node_modules/engine.io-client/node_modules/debug/src/common.js","../node_modules/engine.io-client/node_modules/ms/index.js","../node_modules/engine.io-client/lib/transports/polling-jsonp.js","../node_modules/engine.io-client/lib/transports/websocket.js","../node_modules/to-array/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/eventemitter3/index.js","../../../src/utils/is-string.ts","../../../src/utils/is-object.ts","../node_modules/graphql/utilities/getOperationAST.mjs","../../src/protocol.ts","../../src/defaults.ts","../../src/message-types.ts","../node_modules/graphql/jsutils/devAssert.mjs","../node_modules/graphql/jsutils/defineToJSON.mjs","../node_modules/graphql/jsutils/isObjectLike.mjs","../node_modules/graphql/language/location.mjs","../node_modules/graphql/language/printLocation.mjs","../node_modules/graphql/error/GraphQLError.mjs","../node_modules/graphql/error/syntaxError.mjs","../node_modules/graphql/language/source.mjs","../node_modules/graphql/jsutils/defineToStringTag.mjs","../node_modules/graphql/language/tokenKind.mjs","../node_modules/graphql/language/lexer.mjs","../node_modules/graphql/language/directiveLocation.mjs","../node_modules/graphql/language/parser.mjs"],"names":["module","exports","require","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArrays","il","r","k","a","j","jl","valueToObjectRepresentation","argObj","name","variables","kind","isIntValue","isFloatValue","Number","isBooleanValue","isStringValue","isObjectValue","fields","map","obj","isVariable","variableValue","isListValue","values","listValue","nestedArgArrayObj","isEnumValue","isNullValue","storeKeyNameFromField","field","directivesObj","directives","forEach","directive","getStoreKeyName","KNOWN_DIRECTIVES","fieldName","args","filterKeys","sort","key","JSON","stringify","completeFieldName","stringifiedArgs","keys","argumentsObjectFromField","resultKeyNameFromField","alias","isField","selection","isInlineFragment","isIdValue","idObject","type","generated","toIdValue","idConfig","id","typename","undefined","isJsonValue","jsonObject","getDirectiveInfoFromField","shouldInclude","filter","isInclusionDirective","directiveArguments","ifArgument","ifValue","every","evaledValue","hasDirectives","names","doc","Directive","node","getDirectiveNames","some","hasClientExports","document","getFragmentQueryDocument","fragmentName","actualFragmentName","fragments","definitions","definition","operation","selectionSet","selections","target","sources","source","checkDocument","operations","getOperationDefinition","getOperationName","x","getFragmentDefinitions","getQueryDefinition","queryDef","getMainDefinition","queryDoc","fragmentDefinition","createFragmentMap","symTable","fragment","getDefaultValues","variableDefinitions","defaultValues","defaultValue","variable","defaultValueObj","filterInPlace","array","test","context","elem","TYPENAME_FIELD","nullIfDocIsEmpty","isEmpty","fragmentDef","getFragmentDefinition","getDirectiveMatcher","dir","removeDirectivesFromDocument","variablesInUse","variablesToRemove","fragmentSpreadsInUse","fragmentSpreadsToRemove","modifiedDoc","Variable","enter","_key","parent","Field","remove","arg","getAllFragmentSpreadsFromSelectionSet","allFragments","frag","FragmentSpread","config","argMatcher","argument","aConfig","getArgumentMatcher","OperationDefinition","varDef","argConfig","Argument","removeArgumentsFromDocument","fs","def","FragmentDefinition","removeFragmentSpreadFromDocument","addTypenameToDocument","SelectionSet","lastIndexOf","connectionRemoveConfig","willRemove","removeConnectionDirectiveFromDocument","buildQueryFromSelectionSet","removeClientSetsFromDocument","canUseWeakMap","WeakMap","navigator","product","toString","cloneDeep","cloneDeepHelper","val","seen","has","get","slice","set","child","getPrototypeOf","Map","isEnv","env","process","isProduction","isTest","tryFunctionOrLogError","console","error","graphQLResultHasError","errors","maybeDeepFreeze","deepFreeze","o","freeze","getOwnPropertyNames","prop","isFrozen","mergeDeep","mergeDeepArray","count","pastCopies","shallowCopyForMerge","mergeHelper","isObject","isExtensible","sourceKey","sourceValue","targetValue","isArray","message","genericMessage","framesToPop","InvariantError","Error","invariant","condition","wrapConsoleMethod","method","warn","processStub","Function","atLeastWeTried","Kind","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","OBJECT_TYPE_DEFINITION","FIELD_DEFINITION","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","UNION_TYPE_DEFINITION","ENUM_TYPE_DEFINITION","ENUM_VALUE_DEFINITION","INPUT_OBJECT_TYPE_DEFINITION","DIRECTIVE_DEFINITION","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","_arrayLikeToArray","arr","len","arr2","_slicedToArray","_arr","_n","_d","_e","_s","_i","err","minLen","from","hasOwn","classNames","classes","argType","inner","join","default","isDocumentVisible","visibilityState","usePersistFn","listeners","eventsBinded","window","addEventListener","revalidate","onLine","listener","subscribe","usePaginated","ConfigContext","React","createContext","displayName","Provider","useAsync","useUpdateEffect","effect","deps","isMounted","useRef","useEffect","current","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","useDebounceFn","fn","wait","_deps","_wait","timer","fnRef","cancel","useCallback","clearTimeout","run","_len","setTimeout","concat","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","useSize","hasPassedInElement","element","_useState","useState","initDOM","width","clientWidth","height","clientHeight","_useState2","state","setState","useLayoutEffect","passedInElement","targetElement","resizeObserver","ResizeObserver","entries","entry","observe","disconnect","Set","useToggle","reverseValue","reverseValueOrigin","useMemo","toggle","oldState","setLeft","setRight","useBoolean","_useToggle","setTrue","setFalse","useDebounce","compare","prevRef","curRef","initState","screenX","NaN","screenY","clientX","clientY","pageX","pageY","moveHandler","event","removeEventListener","useEventListener","eventName","handler","options","ref","savedHandler","dom","eventListener","capture","once","passive","_ref","onEnter","onLeave","onEnterRef","onLeaveRef","_useBoolean","onMouseEnter","onMouseLeave","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","initRect","top","left","bottom","right","text","previousOptions","getOptions","setOptions","newOptions","storePrevious","isEqual","unmount","refreshClient","client","isNew","cleanup","verifyDocumentType","onNewData","previousData","currentObservable","runLazy","runLazyQuery","lazyOptions","getExecuteResult","getQueryResult","startQuerySubscription","obsRefetch","query","refetch","obsFetchMore","fetchMoreOptions","fetchMore","obsUpdateQuery","mapFn","updateQuery","obsStartPolling","pollInterval","startPolling","obsStopPolling","stopPolling","obsSubscribeToMore","subscribeToMore","execute","skip","removeQuerySubscription","updateObservableQuery","getExecuteSsrResult","executeLazy","loading","networkStatus","ready","called","data","fetchData","ssr","obs","getCurrentResult","afterExecute","lazy","handleErrorOrCompleted","bind","ssrInitiated","renderPromises","ssrDisabled","fetchDisabled","disableNetworkFetches","ssrLoading","stale","observableQueryFields","addQueryPromise","prepareObservableQueryOptions","Query","fetchPolicy","metadata","reactComponent","initializeObservableQuery","getSSRObservable","observableQueryOptions","children","watchQuery","registerSSRObservable","newObservableQueryOptions","catch","subscription","obsQuery","previousResult","resubscribeToQuery","lastError","getLastError","lastResult","getLastResult","resetLastResults","currentResult","partial","graphQLErrors","partialRefetch","resetQueryStoreErrors","onCompleted","onError","unsubscribe","OperationData","setResult","runMutation","mutationFunctionOptions","onMutationStart","mutationId","generateNewMutationId","mutate","response","onMutationCompleted","onMutationError","mutation","Mutation","mostRecentMutationId","optimisticResponse","update","awaitRefetchQueries","mutateOptions","mutateVariables","refetchQueries","mutationContext","ignoreResults","updateResult","isMostRecentMutation","useMutation","updatedOptions","mutationDataRef","mutationData","MutationData","initialize","getLoadingResult","shouldResubscribe","startSubscription","endSubscription","updateCurrentData","updateError","complete","completeSubscription","onSubscriptionData","subscriptionData","onSubscriptionComplete","useSubscription","subscriptionDataRef","SubscriptionData","queryPromises","queryInfoTrie","observable","props","lookupQueryInfo","queryInstance","finish","hasPromises","size","consumeAndAwaitPromises","promises","promise","clear","all","varMap","variablesString","info","link","isTerminating","request","fromError","errorValue","observer","createOperation","starting","operationName","getKey","passthrough","forward","of","toLink","ApolloLink","empty","links","reduce","split","leftLink","rightLink","first","second","firstLink","nextLink","transformedOperation","extensions","transformOperation","OPERATION_FIELDS","validateOperation","previousComparisons","equal","check","aTag","bTag","previouslyCompared","aKeys","bKeys","keyCount","aIterator","isMap","aKey","aValue","bSet","add","Observable","apolloContext","getApolloContext","DocumentType","ApolloProvider","ApolloContext","cache","Subscription","parser","cached","queries","mutations","subscriptions","_taggedTemplateLiteral","strings","raw","parse","normalize","string","replace","trim","docCache","fragmentSourceMap","printFragmentWarnings","experimentalFragmentVariables","parseDocument","cacheKey","parsed","stripLoc","removeLocAtThisLevel","docType","loc","startToken","endToken","valueType","ast","astFragmentMap","substring","start","end","processFragments","gql","literals","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","QueryDocumentKeys","Name","Document","VariableDefinition","InlineFragment","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","BREAK","visit","root","visitor","visitorKeys","stack","inArray","index","edits","path","ancestors","newRoot","isLeaving","isEdited","clone","_i2","_Object$keys2","editOffset","ii","editKey","editValue","splice","prev","isNode","inspect","visitFn","getVisitFn","maybeNode","Boolean","kindVisitor","kindSpecificVisitor","leave","specificVisitor","specificKindVisitor","_objectSpread2","isCommonjs","fnMap","l","ret","eventNameMap","change","fullscreenchange","fullscreenerror","screenfull","onFullScreenEntered","off","on","returnPromise","documentElement","requestFullscreen","exit","isFullscreen","onFullScreenExit","exitFullscreen","onchange","callback","onerror","fullscreenElement","isEnabled","fullscreenEnabled","NetworkStatus","isNetworkRequestInFlight","LinkObservable","isNonEmptyArray","FetchType","networkError","errorMessage","extraInfo","graphQLError","generateErrorMessage","ApolloError","queryManager","shouldSubscribe","onSubscribe","observers","isTornDown","queryId","generateQueryId","opDef","queryName","delete","removeQuery","storeValue","policy","queryStoreValue","queryStore","isNetworkFetchPolicy","errorPolicy","updateLastResult","isDifferentFromLastResult","newResult","lastResultSnapshot","snapshot","fetchQuery","combinedOptions","qid","normal","fetchMoreResult","stopQuery","startGraphQLSubscription","previous","opts","setVariables","oldFetchPolicy","fetchResults","tryFetch","dataStore","markUpdateQueryResult","broadcastQueries","stopPollingQuery","assertNotCacheFirstOrOnly","startPollingQuery","assumeImmutableResults","subObserver","_subscription","_observer","defaultSubscriptionObserverErrorCallback","setUpQuery","tearDownQuery","addObservableQuery","iterateObserversSafely","observeQuery","transform","getLocalState","addExportedVariables","previousVariables","serverQuery","sub","removeObservableQuery","observersWithMethod","store","getStore","initMutation","markMutationError","markMutationResult","reset","initQuery","previousQuery","resolvers","fragmentMatcher","addResolvers","setFragmentMatcher","resolverGroup","setResolvers","getResolvers","runResolvers","remoteResult","onlyRunForcedResolvers","resolveDocument","localResult","getFragmentMatcher","clientQuery","prepareContext","getCacheKey","dataIdFromObject","buildRootValueFromCache","exportedVariables","shouldForceResolvers","forceResolvers","diff","returnPartialData","optimistic","rootValue","str","mainDefinition","fragmentMap","definitionOperation","defaultOperationType","charAt","toUpperCase","execContext","resolveSelectionSet","resultsToMerge","resolveField","fieldResult","typeCondition","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","__typename","resolverMap","resolveSubSelectedArray","item","multiplex","queryDeduplication","onBroadcast","ssrMode","clientAwareness","localState","mutationStore","MutationStore","QueryStore","idCounter","fetchQueryRejectFns","transformCache","inFlightLinkObservables","pollingInfoByQueryId","LocalState","getCache","stop","_info","stopQueryNoBroadcast","updateQueries","setQuery","getVariables","generateUpdateQueriesInfo","updateQueriesByName","observableQuery","updater","markMutationInit","updateWithProxyFn","self","storeResult","getObservableFromLink","markMutationComplete","refetchQueryPromises","refetchQuery","queryOptions","fetchType","fetchMoreForQueryId","needToFetch","isNetworkOnly","shouldFetch","requestId","updateQueryWatch","lastRequestId","invalidated","invalidate","storePreviousVariables","isPoll","poll","isRefetch","networkResult","fetchRequest","getQuery","markQueryError","markQueryResultClient","hasForcedResolvers","markQueryResult","newData","queryListenerForObserver","invoke","networkStatusChanged","shouldNotifyIfLoading","notifyOnNetworkStatusChange","hasGraphQLErrors","isMissing","errorStatusChanged","diffResult","resultFromStore","transformed","transformDocument","forLink","transformForLink","defaultVars","transformedOptions","ObservableQuery","watchedQuery","String","stopQueryInStore","stopQueryInStoreNoBroadcast","addQueryListener","watch","clearStore","resetIds","resetStore","reFetchObservableQueries","includeStandby","observableQueryPromises","startQuery","makeObservable","markSubscriptionResult","getCurrentQueryResult","getQueryWithPreviousResult","queryIdOrObservable","foundObserveableQuery","deduplication","forceFetch","activeNextCount","completed","asyncMap","errorsFromStore","fqrfId","newInfo","newContext","checkInFlight","interval","timeout","initialCache","ignoreErrors","writeWithErrors","write","dataId","recordOptimisticTransaction","c","orig","nextQueryResult","currentQueryResult","mutationResult","queryVariables","performTransaction","removeOptimistic","defaultOptions","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","typeDefs","version","DataStore","__APOLLO_CLIENT__","QueryManager","clientAwarenessName","clientAwarenessVersion","devToolsHookCb","action","dataWithOptimisticResults","extract","readQuery","readFragment","writeQuery","writeFragment","writeData","__actionHookForDevTools","cb","__requestRaw","payload","initQueryManager","onResetStore","onClearStore","restore","serializedState","setLocalStateFragmentMatcher","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","nextTick","title","browser","argv","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","base64encoder","hasBinary","sliceBuffer","after","utf8","ArrayBuffer","isAndroid","userAgent","isPhantomJS","dontSendBlobs","protocol","packets","open","close","ping","pong","upgrade","packetslist","Blob","ary","each","eachWithIndex","el","msg","encodePacket","packet","supportsBinary","utf8encode","buffer","encodeBase64Packet","contentArray","Uint8Array","resultBuffer","byteLength","encodeArrayBuffer","fr","FileReader","onload","readAsArrayBuffer","encodeBlobAsArrayBuffer","blob","encodeBlob","base64","encodeBase64Object","encoded","encode","strict","b64data","b64","readAsDataURL","fromCharCode","typed","basic","btoa","decodePacket","binaryType","utf8decode","decodeBase64Packet","substr","decode","tryDecode","rest","encodePayload","isBinary","encodePayloadAsBlob","encodePayloadAsArrayBuffer","doneCallback","setLengthHeader","results","decodePayload","decodePayloadAsBinary","chr","encodedPackets","totalLength","acc","resultArray","bufferIndex","isString","ab","view","charCodeAt","lenStr","parseInt","binaryIdentifier","lengthAry","bufferTail","buffers","tailArray","msgLength","total","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","nodejsCustomInspectSymbol","for","log","formatArgs","useColors","namespace","humanize","color","lastC","match","save","namespaces","storage","setItem","removeItem","load","getItem","DEBUG","__nwjs","toLowerCase","style","WebkitAppearance","firebug","exception","table","RegExp","$1","localStorage","localstorage","colors","formatters","encodeURIComponent","qs","qry","pairs","pair","decodeURIComponent","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","global","freeSelf","objectToString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","toNumber","flush","isObjectLike","isSymbol","other","valueOf","_typeof","formatValue","seenValues","previouslySeenValues","customInspectFn","getCustomFn","customValue","remaining","items","formatArray","tag","getObjectTag","formatObject","formatObjectValue","dedentBlockStringValue","rawString","lines","commonIndent","line","indent","leadingWhitespace","getBlockStringIndentation","isBlank","shift","printBlockString","indentation","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","printAsMultipleLines","objectSpread","arrayWithoutHoles","iterableToArray","nonIterableSpread","toConsumableArray","classCallCheck","instance","Constructor","_defineProperties","descriptor","createClass","protoProps","staticProps","createCommonjsModule","_typeof_1","_typeof2","compose","middlewares","middlewaresLen","params","dispatch","Onion","defaultMiddlewares","newMiddleware","core","defaultInstance","globalMiddlewares","defaultGlobalMiddlewaresLength","coreMiddlewares","defaultCoreMiddlewaresLength","assertThisInitialized","ReferenceError","possibleConstructorReturn","_getPrototypeOf","_setPrototypeOf","inherits","subClass","superClass","isNativeFunction","construct","isNativeReflectConstruct","Reflect","sham","Proxy","_construct","Parent","Class","wrapNativeSuper","_wrapNativeSuper","_cache","Wrapper","MapCache","extendOptions","maxCache","_this","ttl","deleteKey","RequestError","_Error","_this2","ResponseError","_Error2","_this3","statusText","readerGBK","file","reader","readAsText","safeJsonParse","throwErrIfParseFail","timeout2Throw","msec","cancel2Throw","opt","cancelToken","getEnv","XMLHttpRequest","isURLSearchParams","URLSearchParams","forEach2ObjArr","getParamObject","strictNullHandling","reqStringify","arrayFormat","mergeRequestOptions","options2Merge","headers","__defaultValidateCache","url","_options$method","paramsSerialize","paramsSerializer","serializedParams","jsonStringifiedParams","jsonStringifiedValue","toISOString","ctx","_ctx$req","req","_ctx$req$options","_options$requestType","requestType","dataType","Accept","_ctx$req2","_ctx$req2$url","credentials","originUrl","urlSign","copy","_ctx$res","res","_ref$options","_ref$options$response","responseType","_ref$options$charset","charset","_ref$options$throwErr","getResponse","_ref$options$parseRes","parseResponse","useCache","_ref2$options","_ref2$options$getResp","status","_ctx$req$url","responseInterceptors","_options$timeout","_options$__umiRequest","__umiRequestCoreType__","_options$useCache","_options$method2","_options$validateCach","validateCache","adapter","fetch","isBrowser","needCache","responseCache","race","clonedRes","Core","initOptions","onion","fetchIndex","mapCache","instanceRequestInterceptors","instanceResponseInterceptors","use","requestInterceptors","p1","p2","dealRequestInterceptors","errorHandler","Cancel","CancelToken","executor","resolvePromise","token","reason","isCancel","__CANCEL__","prefix","suffix","throwIfRequested","coreInstance","umiInstance","mergeOptions","interceptors","requestUse","responseUse","METHODS","request$1","hexTable","arrayToObject","plainObjects","combine","compact","refs","compacted","compactQueue","decoder","strWithoutPlus","unescape","defaultEncoder","escape","$0","out","isBuffer","isRegExp","maybeMap","mapped","merge","allowPrototypes","mergeTarget","targetItem","debug","Emitter","binary","isBuf","Encoder","types","CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK","Decoder","ERROR_PACKET","encodeAsString","attachments","nsp","tryStringify","reconstructor","BinaryReconstructor","reconPack","removeBlobs","bloblessData","deconstruction","deconstructPacket","pack","unshift","encodeAsBinary","buf","tryParse","decodeString","takeBinaryData","destroy","finishedReconstruction","binData","reconstructPacket","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","byteOffset","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromString","checked","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","isNaN","arrayIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","offset","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","list","pos","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","stringtrim","base64clean","src","dst","hasCORS","globalThis","xdomain","xscheme","enablesXDR","XDomainRequest","Transport","hostname","port","secure","timestampParam","timestampRequests","readyState","agent","socket","withCredentials","pfx","passphrase","cert","ca","ciphers","rejectUnauthorized","forceNode","isReactNative","extraHeaders","localAddress","desc","description","doOpen","doClose","onClose","send","onOpen","onData","onPacket","mixin","_callbacks","callbacks","hasListeners","ponyfill","print","printDocASTReducer","varDefs","wrap","_ref2","block","_ref3","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","_ref20","operationTypes","_ref21","addDescription","_ref22","_ref23","interfaces","_ref24","hasMultilineItems","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","repeatable","locations","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","maybeArray","separator","maybeString","isMultiline","main","isWorker","workerSize","canUseWorker","Worker","OffscreenCanvas","OffscreenCanvasRenderingContext2D","HTMLCanvasElement","transferControlToOffscreen","URL","createObjectURL","ModulePromise","Prom","raf","frame","TIME","frames","lastFrameTime","requestAnimationFrame","cancelAnimationFrame","random","onFrame","getWorker","worker","prom","resolves","postMessage","init","canvas","offscreen","fire","workerDone","decorate","defaults","particleCount","angle","spread","startVelocity","decay","gravity","ticks","shapes","zIndex","disableForReducedMotion","scalar","convert","onlyPositiveInt","number","toDecimal","hexToRgb","setCanvasWindowSize","setCanvasRectSize","rect","getBoundingClientRect","randomPhysics","radAngle","PI","radSpread","wobble","velocity","angle2D","tiltAngle","shape","tick","totalTicks","tiltSin","tiltCos","wobbleX","wobbleY","ovalScalar","animate","fettis","resizer","animationFrame","animatingFettis","getContext","onDone","clearRect","fetti","cos","sin","progress","x1","y1","x2","y2","fillStyle","beginPath","ellipse","abs","radiusX","radiusY","rotation","startAngle","endAngle","antiClockwise","translate","rotate","scale","arc","moveTo","lineTo","closePath","updateFetti","addFettis","confettiCannon","globalOpts","animationObj","isLibCanvas","allowResize","globalDisableForReducedMotion","initialized","__confetti_initialized","preferLessMotion","matchMedia","matches","fireLocal","origin","getOrigin","temp","startX","startY","createElement","position","pointerEvents","getCanvas","appendChild","onResize","resize","removeChild","useWorker","formats","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","to","percentTwenties","util","Format","RFC1738","RFC3986","re","parts","exec","uri","host","authority","ipv6uri","withNativeBuffer","withNativeArrayBuffer","eio","Socket","Backoff","Manager","nsps","subs","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","jitter","connecting","lastPing","packetBuffer","_parser","encoder","autoConnect","emitAll","updateSocketIds","generateId","engine","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","maybeReconnectOnOpen","reconnecting","attempts","reconnect","connect","skipReconnect","openSub","onopen","errorSub","onping","onpong","ondata","ondecoded","onConnecting","processPacketQueue","subsLength","onclose","delay","duration","onreconnect","attempt","XHR","JSONP","websocket","polling","xd","xs","jsonp","location","isSSL","forceJSONP","parseqs","inherit","yeast","Polling","hasXHR2","forceBase64","pause","onPause","doPoll","callbackfn","doWrite","schema","sid","withNativeBlob","withNativeFile","File","alphabet","seed","num","decoded","toArray","hasBin","events","connect_error","connect_timeout","reconnect_attempt","reconnect_failed","reconnect_error","io","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","flags","subEvents","ev","compress","onpacket","sameNamespace","rootNamespaceError","onconnect","onevent","onack","ondisconnect","ack","emitBuffered","ms","factor","rand","deviation","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","useIsoLayoutEffect","createState","partialState","getState","getSubscriber","selector","equalityFn","is","currentSlice","errored","subscriber","newStateSlice","api","forceUpdate","useReducer","subscriberRef","hasNewStateSlice","argsTag","mapTag","objectTag","setTag","reIsHostCtor","reIsUint","typedArrayTags","freeExports","nodeType","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","arraySome","predicate","mapToArray","setToArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","uid","IE_PROTO","nativeObjectToString","reIsNative","symToStringTag","toStringTag","nativeGetSymbols","nativeIsBuffer","nativeKeys","DataView","getNative","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","ListCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","eq","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","baseIsEqual","bitmask","customizer","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isMasked","isFunction","baseKeys","Ctor","proto","isPrototype","arrValue","othIndex","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getSymbols","getMapData","isKeyable","getValue","LARGE_ARRAY_SIZE","resIndex","arrayFilter","symbol","ctorString","isLength","baseUnary","MapShim","getIndex","class_1","__entries__","_a","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","_b","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","getHTMLElementContentRect","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","round","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","symbolObservablePonyfill","cmp","cycles","aobj","bobj","seenIndex","lookup","managers","forceNew","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","paramsOrClient","subscriptionClient","webSocketImpl","queryFromPojo","selectionSetFromObj","Cache","justTypenameQuery","currentContext","MISSING_VALUE","Slot","hasValue","slots","withValue","saved","noContext","defaultDispose","dispose","newest","oldest","getEntry","older","newer","clean","parentEntrySlot","reusableEmptyArray","emptySetPool","assert","optionalMessage","valueGet","parents","childValues","dirtyChildren","dirty","recomputing","Entry","recompute","mightBeDirty","reportDirtyChild","reportCleanChild","rememberParent","maybeReportOrphan","originalChildren","forgetChildren","recomputeNewValue","maybeUnsubscribe","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","forgetChild","childValue","valueIs","removeDirtyChild","dc","reportOrphan","_value","weakness","lookupArray","getChildTrie","isObjRef","weak","strong","KeyTrie","haveWarned","shouldWarn","answer","ensureReady","canBypassInit","idValue","isRootQuery","introspectionQueryResultData","possibleTypesMap","parseIntrospectionResult","isReady","implementingTypes","introspectionResultData","typeMap","__schema","possibleTypes","implementingType","depend","disposable","makeCacheKey","defaultNormalizedCacheFactory","cacheKeyRoot","freezeResults","executeStoreQuery","executeSelectionSet","executeSubSelectedArray","contextValue","variableValues","readQueryFromStore","diffQueryAgainstStore","rootId","fragmentMatcherFunction","queryDefinition","cacheRedirects","execResult","hasMissingFields","missing","tolerable","finalResult","objectsToMerge","handleMissing","executeField","fragmentExecResult","readStoreResult","resultKey","storeKeyName","fieldValue","resolver","storeObj","readStoreResolver","combineExecResults","assertSelectionSetForIdValue","execResults","childResult","defaultFragmentMatcher","writeQueryToStore","writeResultToStore","operationDefinition","writeSelectionSetToStore","processedData","enhancedError","enhanceErrorWithDocument","resultFieldKey","writeFieldToStore","isDefered","isClient","fakeContext","ObjectCache","storeObject","storeFieldName","generatedId","processArrayValue","valueDataId","isGeneratedId","semanticId","isDataProcessed","escapedId","hadTypename","hasTypename","typenameChanged","mergeWithGenerated","generatedKey","realKey","real","madeChanges","realValue","newRealValue","itemDataId","defaultConfig","HeuristicFragmentMatcher","_id","addTypename","resultCaching","optimisticId","transaction","watches","typenameDocumentCache","silenceBroadcast","customResolvers","cacheResolvers","optimisticData","storeWriter","storeReader","maybeBroadcastWatch","broadcastWatches","evict","idToRemove","toReapply","removedCount","layer","fallbackHttpConfig","http","includeQuery","includeExtensions","accept","throwServerError","statusCode","serialized","parseError","linkOptions","useGETForQueries","fetcher","linkConfig","requestOptions","fetchOptions","chosenURI","fallbackURI","contextURI","selectURI","clientAwarenessHeaders","contextHeaders","contextConfig","fallbackConfig","configs","signal","AbortController","_controller","queryParams","addQueryParam","serializedVariables","serializedExtensions","preFragment","fragmentStart","queryParamsPrefix","newURI","setContext","bodyText","abort","nanoid","crypto","getRandomValues","byte","q","u","w","z","A","B","C","D","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","F","G","H","isReactComponent","I","isPureReactComponent","J","K","L","__self","__source","M","h","defaultProps","$$typeof","_owner","O","Q","R","keyPrefix","S","V","T","U","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","_context","createFactory","createRef","forwardRef","render","isValidElement","_ctor","_status","_result","memo","useContext","useDebugValue","useImperativeHandle","da","ea","fa","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttribute","setAttributeNS","Ya","Za","$a","bb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","nodeName","xb","_valueTracker","setValue","stopTracking","tb","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","activeElement","Gb","Fb","Hb","selected","defaultSelected","disabled","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","firstChild","Rb","lastChild","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","Zb","$b","ac","bc","cc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","parentNode","oc","pc","qc","topLevelType","nativeEvent","targetInst","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","container","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","setProperty","nd","menuitem","area","base","br","col","embed","hr","img","input","keygen","meta","param","track","wbr","od","pd","qd","rd","sd","td","ud","vd","nextSibling","HTMLIFrameElement","contentWindow","href","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","isTrusted","extend","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","detail","se","ve","locale","which","te","ctrlKey","altKey","metaKey","char","ue","we","date","datetime","email","month","password","range","search","tel","week","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","repeat","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","contextType","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","mode","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","getDerivedStateFromError","pendingContext","ni","pi","qi","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","last","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onClick","onclick","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","insertBefore","_reactRootContainer","Ri","Si","Ti","display","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","ceil","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","contains","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","querySelectorAll","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","port2","port1","onmessage","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","utils","arrayPrefixGenerators","brackets","comma","indices","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","allowDots","charsetSentinel","delimiter","encodeValuesOnly","format","formatter","serializeDate","skipNulls","generateArrayPrefix","objKeys","normalizeStringifyOptions","joined","arrayLimit","depth","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","segment","chain","leaf","cleanRoot","0","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","part","bracketEqualsPos","encodedVal","parseValues","newObj","support","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","Headers","append","header","consumed","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","_bodyArrayBuffer","arrayBuffer","readBlobAsText","chars","readArrayBufferAsText","formData","oldValue","methods","Request","upcased","normalizeMethod","referrer","parseHeaders","rawHeaders","Response","bodyInit","ok","redirectStatuses","redirect","DOMException","aborted","xhr","abortXhr","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","setRequestHeader","onreadystatechange","polyfill","webpackPolyfill","deprecate","paths","IntersectionObserverEntry","intersectionRatio","registry","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_observationTargets","_registerInstance","_monitorIntersections","_checkForIntersections","_unmonitorIntersections","_unregisterInstance","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","threshold","_parseRootMargin","opt_rootMargin","margins","margin","unit","_monitoringIntersections","_monitoringInterval","setInterval","addEvent","_domObserver","clearInterval","removeEvent","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","rootContainsTarget","_rootContainsTarget","oldEntry","intersectionRect","_computeTargetAndRootIntersection","newEntry","boundingClientRect","rootBounds","_hasCrossedThreshold","isIntersecting","_callback","getParentNode","atRoot","parentRect","parentComputedStyle","overflow","computeRectIntersection","html","_expandRectByRootMargin","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","targetArea","intersectionArea","toFixed","opt_options","rootMargin","opt_useCapture","detatchEvent","rect1","rect2","assignedSlot","originalModule","_classCallCheck","_createClass","hasSymbols","hasSymbol","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","ctor","isObservable","hostReportError","enqueue","cleanupSubscription","_cleanup","closeSubscription","_queue","_state","notifySubscription","onNotify","flushSubscription","subscriptionObserver","SubscriptionObserver","_subscriber","_this4","hasSeed","_this5","startNext","_this6","outer","completeIfDone","closed","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_item","_len2","_key2","parseuri","selectColor","hash","createDebug","prevTime","enabled","curr","coerce","instances","newDebug","toNamespace","regexp","disable","skips","enable","plural","msAbs","isPlural","long","fmtLong","fmtShort","chrome","local","logFn","packetData","_deconstructPacket","placeholder","_placeholder","_reconstructPacket","pendingBlobs","_removeBlobs","curKey","containingObject","fileReader","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","transports","transportOptions","writeBuffer","prevBufferLen","policyPort","rememberUpgrade","onlyBinaryUpgrades","perMessageDeflate","upgrades","pingInterval","pingTimeout","pingIntervalTimer","pingTimeoutTimer","priorWebsocketSuccess","createTransport","EIO","transport","requestTimeout","protocols","setTransport","onDrain","probe","failed","onTransportOpen","upgradeLosesBinary","upgrading","freezeTransport","onTransportClose","onupgrade","onHandshake","setPing","filterUpgrades","onHeartbeat","sendPacket","waitForUpgrade","cleanupAndClose","filteredUpgrades","async","sendXhr","pollXhr","setDisableHeaderCheck","hasXDR","onLoad","contentType","getResponseHeader","requestsCount","requests","onSuccess","unloadHandler","arraybuffer","abv","err_cb","bail","byteCount","byteIndex","stringFromCharCode","ucs2decode","extra","counter","checkScalarValue","createByte","encodeCodePoint","readContinuationByte","continuationByte","decodeSymbol","byte1","byteString","ucs2encode","encoded1","encoded2","encoded3","encoded4","bufferLength","BlobBuilder","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","blobSupportsArrayBufferView","blobBuilderSupported","getBlob","mapArrayBufferViews","chunk","BlobBuilderConstructor","BlobConstructor","JSONPPolling","rNewline","rEscapedNewline","___eio","script","iframe","insertAt","getElementsByTagName","head","iframeId","className","initIframe","submit","BrowserWebSocket","NodeWebSocket","WebSocket","MozWebSocket","WebSocketImpl","WS","usingBrowserWebSocket","ws","supports","addEventListeners","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","reverse","skipTempReset","rootRecord","rval","handle","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","EE","emitter","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","handlers","listenerCount","a1","a2","a3","a4","a5","prefixed","getOperationAST","documentAST","_documentAST$definiti2","devAssert","defineToJSON","classObject","getLocation","lineRegexp","column","printLocation","printSourceLocation","sourceLocation","firstLineColumnOffset","locationOffset","whitespace","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","sublineIndex","sublineColumnNum","sublines","printPrefixedLines","subline","existingLines","padLen","GraphQLError","nodes","originalError","_nodes","_source","_locations","_positions","_extensions","originalExtensions","captureStackTrace","syntaxError","_error$nodes2","_i4","_error$locations2","printError","Source","TokenKind","SOF","EOF","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","BLOCK_STRING","COMMENT","advanceLexer","lastToken","lookahead","readToken","Tok","printCharCode","lexer","bodyLength","startPosition","lineStart","positionAfterWhitespace","readComment","readName","firstCode","isFloat","readDigits","readNumber","chunkStart","rawValue","readBlockString","char2hex","invalidSequence","readString","unexpectedCharacterMessage","DirectiveLocation","QUERY","MUTATION","SUBSCRIPTION","SCHEMA","SCALAR","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","Parser","parseValue","expectToken","parseValueLiteral","parseType","parseTypeReference","sourceObj","_lexer","startOfFileToken","advance","createLexer","_options","_proto","parseName","many","parseDefinition","peek","parseOperationDefinition","parseFragmentDefinition","parseTypeSystemDefinition","parseTypeSystemExtension","peekDescription","unexpected","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","parseVariable","expectOptionalToken","parseSelection","parseFragment","parseField","nameOrAlias","parseArguments","isConst","parseConstArgument","parseArgument","hasTypeCondition","expectOptionalKeyword","parseFragmentName","parseNamedType","expectKeyword","parseList","parseStringLiteral","any","parseObjectField","parseDirective","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseDescription","parseOperationTypeDefinition","parseImplementsInterfaces","parseFieldsDefinition","allowLegacySDLImplementsInterfaces","allowLegacySDLEmptyFields","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","parseDirectiveLocations","parseDirectiveLocation","noLocation","Loc","getTokenDesc","atToken","openKind","parseFn","closeKind"],"mappings":"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","file":"static/js/2.78c14020.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\n DirectiveNode,\n FieldNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n ObjectValueNode,\n ListValueNode,\n EnumValueNode,\n NullValueNode,\n VariableNode,\n InlineFragmentNode,\n ValueNode,\n SelectionNode,\n NameNode,\n} from 'graphql';\n\nimport stringify from 'fast-json-stable-stringify';\nimport { InvariantError } from 'ts-invariant';\n\nexport interface IdValue {\n type: 'id';\n id: string;\n generated: boolean;\n typename: string | undefined;\n}\n\nexport interface JsonValue {\n type: 'json';\n json: any;\n}\n\nexport type ListValue = Array;\n\nexport type StoreValue =\n | number\n | string\n | string[]\n | IdValue\n | ListValue\n | JsonValue\n | null\n | undefined\n | void\n | Object;\n\nexport type ScalarValue = StringValueNode | BooleanValueNode | EnumValueNode;\n\nexport function isScalarValue(value: ValueNode): value is ScalarValue {\n return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1;\n}\n\nexport type NumberValue = IntValueNode | FloatValueNode;\n\nexport function isNumberValue(value: ValueNode): value is NumberValue {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\n\nfunction isStringValue(value: ValueNode): value is StringValueNode {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value: ValueNode): value is BooleanValueNode {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value: ValueNode): value is IntValueNode {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value: ValueNode): value is FloatValueNode {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value: ValueNode): value is VariableNode {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value: ValueNode): value is ObjectValueNode {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value: ValueNode): value is ListValueNode {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value: ValueNode): value is EnumValueNode {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value: ValueNode): value is NullValueNode {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(\n argObj: any,\n name: NameNode,\n value: ValueNode,\n variables?: Object,\n) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n const nestedArgObj = {};\n value.fields.map(obj =>\n valueToObjectRepresentation(nestedArgObj, obj.name, obj.value, variables),\n );\n argObj[name.value] = nestedArgObj;\n } else if (isVariable(value)) {\n const variableValue = (variables || ({} as any))[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(listValue => {\n const nestedArgArrayObj = {};\n valueToObjectRepresentation(\n nestedArgArrayObj,\n name,\n listValue,\n variables,\n );\n return (nestedArgArrayObj as any)[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = (value as EnumValueNode).value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw new InvariantError(\n `The inline argument \"${name.value}\" of kind \"${(value as any).kind}\"` +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.',\n );\n }\n}\n\nexport function storeKeyNameFromField(\n field: FieldNode,\n variables?: Object,\n): string {\n let directivesObj: any = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(directive => {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(\n directivesObj[directive.name.value],\n name,\n value,\n variables,\n ),\n );\n }\n });\n }\n\n let argObj: any = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nexport type Directives = {\n [directiveName: string]: {\n [argName: string]: any;\n };\n};\n\nconst KNOWN_DIRECTIVES: string[] = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\n\nexport function getStoreKeyName(\n fieldName: string,\n args?: Object,\n directives?: Directives,\n): string {\n if (\n directives &&\n directives['connection'] &&\n directives['connection']['key']\n ) {\n if (\n directives['connection']['filter'] &&\n (directives['connection']['filter'] as string[]).length > 0\n ) {\n const filterKeys = directives['connection']['filter']\n ? (directives['connection']['filter'] as string[])\n : [];\n filterKeys.sort();\n\n const queryArgs = args as { [key: string]: any };\n const filteredArgs = {} as { [key: string]: any };\n filterKeys.forEach(key => {\n filteredArgs[key] = queryArgs[key];\n });\n\n return `${directives['connection']['key']}(${JSON.stringify(\n filteredArgs,\n )})`;\n } else {\n return directives['connection']['key'];\n }\n }\n\n let completeFieldName: string = fieldName;\n\n if (args) {\n // We can't use `JSON.stringify` here since it's non-deterministic,\n // and can lead to different store key names being created even though\n // the `args` object used during creation has the same properties/values.\n const stringifiedArgs: string = stringify(args);\n completeFieldName += `(${stringifiedArgs})`;\n }\n\n if (directives) {\n Object.keys(directives).forEach(key => {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += `@${key}(${JSON.stringify(directives[key])})`;\n } else {\n completeFieldName += `@${key}`;\n }\n });\n }\n\n return completeFieldName;\n}\n\nexport function argumentsObjectFromField(\n field: FieldNode | DirectiveNode,\n variables: Object,\n): Object {\n if (field.arguments && field.arguments.length) {\n const argObj: Object = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n return argObj;\n }\n\n return null;\n}\n\nexport function resultKeyNameFromField(field: FieldNode): string {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nexport function isField(selection: SelectionNode): selection is FieldNode {\n return selection.kind === 'Field';\n}\n\nexport function isInlineFragment(\n selection: SelectionNode,\n): selection is InlineFragmentNode {\n return selection.kind === 'InlineFragment';\n}\n\nexport function isIdValue(idObject: StoreValue): idObject is IdValue {\n return idObject &&\n (idObject as IdValue | JsonValue).type === 'id' &&\n typeof (idObject as IdValue).generated === 'boolean';\n}\n\nexport type IdConfig = {\n id: string;\n typename: string | undefined;\n};\n\nexport function toIdValue(\n idConfig: string | IdConfig,\n generated = false,\n): IdValue {\n return {\n type: 'id',\n generated,\n ...(typeof idConfig === 'string'\n ? { id: idConfig, typename: undefined }\n : idConfig),\n };\n}\n\nexport function isJsonValue(jsonObject: StoreValue): jsonObject is JsonValue {\n return (\n jsonObject != null &&\n typeof jsonObject === 'object' &&\n (jsonObject as IdValue | JsonValue).type === 'json'\n );\n}\n\nfunction defaultValueFromVariable(node: VariableNode) {\n throw new InvariantError(`Variable nodes are not supported by valueFromNode`);\n}\n\nexport type VariableValue = (node: VariableNode) => any;\n\n/**\n * Evaluate a ValueNode and yield its value in its natural JS form.\n */\nexport function valueFromNode(\n node: ValueNode,\n onVariable: VariableValue = defaultValueFromVariable,\n): any {\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'ListValue':\n return node.values.map(v => valueFromNode(v, onVariable));\n case 'ObjectValue': {\n const value: { [key: string]: any } = {};\n for (const field of node.fields) {\n value[field.name.value] = valueFromNode(field.value, onVariable);\n }\n return value;\n }\n default:\n return node.value;\n }\n}\n","// Provides the methods that allow QueryManager to handle the `skip` and\n// `include` directives within GraphQL.\nimport {\n FieldNode,\n SelectionNode,\n VariableNode,\n BooleanValueNode,\n DirectiveNode,\n DocumentNode,\n ArgumentNode,\n ValueNode,\n} from 'graphql';\n\nimport { visit } from 'graphql/language/visitor';\n\nimport { invariant } from 'ts-invariant';\n\nimport { argumentsObjectFromField } from './storeUtils';\n\nexport type DirectiveInfo = {\n [fieldName: string]: { [argName: string]: any };\n};\n\nexport function getDirectiveInfoFromField(\n field: FieldNode,\n variables: Object,\n): DirectiveInfo {\n if (field.directives && field.directives.length) {\n const directiveObj: DirectiveInfo = {};\n field.directives.forEach((directive: DirectiveNode) => {\n directiveObj[directive.name.value] = argumentsObjectFromField(\n directive,\n variables,\n );\n });\n return directiveObj;\n }\n return null;\n}\n\nexport function shouldInclude(\n selection: SelectionNode,\n variables: { [name: string]: any } = {},\n): boolean {\n return getInclusionDirectives(\n selection.directives,\n ).every(({ directive, ifArgument }) => {\n let evaledValue: boolean = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables[(ifArgument.value as VariableNode).name.value];\n invariant(\n evaledValue !== void 0,\n `Invalid variable referenced in @${directive.name.value} directive.`,\n );\n } else {\n evaledValue = (ifArgument.value as BooleanValueNode).value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\n\nexport function getDirectiveNames(doc: DocumentNode) {\n const names: string[] = [];\n\n visit(doc, {\n Directive(node) {\n names.push(node.name.value);\n },\n });\n\n return names;\n}\n\nexport function hasDirectives(names: string[], doc: DocumentNode) {\n return getDirectiveNames(doc).some(\n (name: string) => names.indexOf(name) > -1,\n );\n}\n\nexport function hasClientExports(document: DocumentNode) {\n return (\n document &&\n hasDirectives(['client'], document) &&\n hasDirectives(['export'], document)\n );\n}\n\nexport type InclusionDirectives = Array<{\n directive: DirectiveNode;\n ifArgument: ArgumentNode;\n}>;\n\nfunction isInclusionDirective({ name: { value } }: DirectiveNode): boolean {\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(\n directives: ReadonlyArray,\n): InclusionDirectives {\n return directives ? directives.filter(isInclusionDirective).map(directive => {\n const directiveArguments = directive.arguments;\n const directiveName = directive.name.value;\n\n invariant(\n directiveArguments && directiveArguments.length === 1,\n `Incorrect number of arguments for the @${directiveName} directive.`,\n );\n\n const ifArgument = directiveArguments[0];\n invariant(\n ifArgument.name && ifArgument.name.value === 'if',\n `Invalid argument for the @${directiveName} directive.`,\n );\n\n const ifValue: ValueNode = ifArgument.value;\n\n // means it has to be a variable value if this is a valid @skip or @include directive\n invariant(\n ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'),\n `Argument for the @${directiveName} directive must be a variable or a boolean value.`,\n );\n\n return { directive, ifArgument };\n }) : [];\n}\n\n","import { DocumentNode, FragmentDefinitionNode } from 'graphql';\nimport { invariant, InvariantError } from 'ts-invariant';\n\n/**\n * Returns a query document which adds a single query operation that only\n * spreads the target fragment inside of it.\n *\n * So for example a document of:\n *\n * ```graphql\n * fragment foo on Foo { a b c }\n * ```\n *\n * Turns into:\n *\n * ```graphql\n * { ...foo }\n *\n * fragment foo on Foo { a b c }\n * ```\n *\n * The target fragment will either be the only fragment in the document, or a\n * fragment specified by the provided `fragmentName`. If there is more than one\n * fragment, but a `fragmentName` was not defined then an error will be thrown.\n */\nexport function getFragmentQueryDocument(\n document: DocumentNode,\n fragmentName?: string,\n): DocumentNode {\n let actualFragmentName = fragmentName;\n\n // Build an array of all our fragment definitions that will be used for\n // validations. We also do some validations on the other definitions in the\n // document while building this list.\n const fragments: Array = [];\n document.definitions.forEach(definition => {\n // Throw an error if we encounter an operation definition because we will\n // define our own operation definition later on.\n if (definition.kind === 'OperationDefinition') {\n throw new InvariantError(\n `Found a ${definition.operation} operation${\n definition.name ? ` named '${definition.name.value}'` : ''\n }. ` +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.',\n );\n }\n // Add our definition to the fragments array if it is a fragment\n // definition.\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n\n // If the user did not give us a fragment name then let us try to get a\n // name from a single fragment in the definition.\n if (typeof actualFragmentName === 'undefined') {\n invariant(\n fragments.length === 1,\n `Found ${\n fragments.length\n } fragments. \\`fragmentName\\` must be provided when there is not exactly 1 fragment.`,\n );\n actualFragmentName = fragments[0].name.value;\n }\n\n // Generate a query document with an operation that simply spreads the\n // fragment inside of it.\n const query: DocumentNode = {\n ...document,\n definitions: [\n {\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName,\n },\n },\n ],\n },\n },\n ...document.definitions,\n ],\n };\n\n return query;\n}\n","/**\n * Adds the properties of one or more source objects to a target object. Works exactly like\n * `Object.assign`, but as a utility to maintain support for IE 11.\n *\n * @see https://github.com/apollostack/apollo-client/pull/1009\n */\nexport function assign(a: A, b: B): A & B;\nexport function assign(a: A, b: B, c: C): A & B & C;\nexport function assign(a: A, b: B, c: C, d: D): A & B & C & D;\nexport function assign(\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n): A & B & C & D & E;\nexport function assign(target: any, ...sources: Array): any;\nexport function assign(\n target: { [key: string]: any },\n ...sources: Array<{ [key: string]: any }>\n): { [key: string]: any } {\n sources.forEach(source => {\n if (typeof source === 'undefined' || source === null) {\n return;\n }\n Object.keys(source).forEach(key => {\n target[key] = source[key];\n });\n });\n return target;\n}\n","import {\n DocumentNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n ValueNode,\n} from 'graphql';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { assign } from './util/assign';\n\nimport { valueToObjectRepresentation, JsonValue } from './storeUtils';\n\nexport function getMutationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode {\n checkDocument(doc);\n\n let mutationDef: OperationDefinitionNode | null = doc.definitions.filter(\n definition =>\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'mutation',\n )[0] as OperationDefinitionNode;\n\n invariant(mutationDef, 'Must contain a mutation definition.');\n\n return mutationDef;\n}\n\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc: DocumentNode) {\n invariant(\n doc && doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n const operations = doc.definitions\n .filter(d => d.kind !== 'FragmentDefinition')\n .map(definition => {\n if (definition.kind !== 'OperationDefinition') {\n throw new InvariantError(\n `Schema type definitions not allowed in queries. Found: \"${\n definition.kind\n }\"`,\n );\n }\n return definition;\n });\n\n invariant(\n operations.length <= 1,\n `Ambiguous GraphQL document: contains ${operations.length} operations`,\n );\n\n return doc;\n}\n\nexport function getOperationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode | undefined {\n checkDocument(doc);\n return doc.definitions.filter(\n definition => definition.kind === 'OperationDefinition',\n )[0] as OperationDefinitionNode;\n}\n\nexport function getOperationDefinitionOrDie(\n document: DocumentNode,\n): OperationDefinitionNode {\n const def = getOperationDefinition(document);\n invariant(def, `GraphQL document is missing an operation`);\n return def;\n}\n\nexport function getOperationName(doc: DocumentNode): string | null {\n return (\n doc.definitions\n .filter(\n definition =>\n definition.kind === 'OperationDefinition' && definition.name,\n )\n .map((x: OperationDefinitionNode) => x.name.value)[0] || null\n );\n}\n\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(\n doc: DocumentNode,\n): FragmentDefinitionNode[] {\n return doc.definitions.filter(\n definition => definition.kind === 'FragmentDefinition',\n ) as FragmentDefinitionNode[];\n}\n\nexport function getQueryDefinition(doc: DocumentNode): OperationDefinitionNode {\n const queryDef = getOperationDefinition(doc) as OperationDefinitionNode;\n\n invariant(\n queryDef && queryDef.operation === 'query',\n 'Must contain a query definition.',\n );\n\n return queryDef;\n}\n\nexport function getFragmentDefinition(\n doc: DocumentNode,\n): FragmentDefinitionNode {\n invariant(\n doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n invariant(\n doc.definitions.length <= 1,\n 'Fragment must have exactly one definition.',\n );\n\n const fragmentDef = doc.definitions[0] as FragmentDefinitionNode;\n\n invariant(\n fragmentDef.kind === 'FragmentDefinition',\n 'Must be a fragment definition.',\n );\n\n return fragmentDef as FragmentDefinitionNode;\n}\n\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(\n queryDoc: DocumentNode,\n): OperationDefinitionNode | FragmentDefinitionNode {\n checkDocument(queryDoc);\n\n let fragmentDefinition;\n\n for (let definition of queryDoc.definitions) {\n if (definition.kind === 'OperationDefinition') {\n const operation = (definition as OperationDefinitionNode).operation;\n if (\n operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription'\n ) {\n return definition as OperationDefinitionNode;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n // we do this because we want to allow multiple fragment definitions\n // to precede an operation definition.\n fragmentDefinition = definition as FragmentDefinitionNode;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw new InvariantError(\n 'Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.',\n );\n}\n\n/**\n * This is an interface that describes a map from fragment names to fragment definitions.\n */\nexport interface FragmentMap {\n [fragmentName: string]: FragmentDefinitionNode;\n}\n\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\nexport function createFragmentMap(\n fragments: FragmentDefinitionNode[] = [],\n): FragmentMap {\n const symTable: FragmentMap = {};\n fragments.forEach(fragment => {\n symTable[fragment.name.value] = fragment;\n });\n\n return symTable;\n}\n\nexport function getDefaultValues(\n definition: OperationDefinitionNode | undefined,\n): { [key: string]: JsonValue } {\n if (\n definition &&\n definition.variableDefinitions &&\n definition.variableDefinitions.length\n ) {\n const defaultValues = definition.variableDefinitions\n .filter(({ defaultValue }) => defaultValue)\n .map(\n ({ variable, defaultValue }): { [key: string]: JsonValue } => {\n const defaultValueObj: { [key: string]: JsonValue } = {};\n valueToObjectRepresentation(\n defaultValueObj,\n variable.name,\n defaultValue as ValueNode,\n );\n\n return defaultValueObj;\n },\n );\n\n return assign({}, ...defaultValues);\n }\n\n return {};\n}\n\n/**\n * Returns the names of all variables declared by the operation.\n */\nexport function variablesInOperation(\n operation: OperationDefinitionNode,\n): Set {\n const names = new Set();\n if (operation.variableDefinitions) {\n for (const definition of operation.variableDefinitions) {\n names.add(definition.variable.name.value);\n }\n }\n\n return names;\n}\n","export function filterInPlace(\n array: T[],\n test: (elem: T) => boolean,\n context?: any,\n): T[] {\n let target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}\n","import {\n DocumentNode,\n SelectionNode,\n SelectionSetNode,\n OperationDefinitionNode,\n FieldNode,\n DirectiveNode,\n FragmentDefinitionNode,\n ArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n VariableNode,\n} from 'graphql';\nimport { visit } from 'graphql/language/visitor';\n\nimport {\n checkDocument,\n getOperationDefinition,\n getFragmentDefinition,\n getFragmentDefinitions,\n createFragmentMap,\n FragmentMap,\n getMainDefinition,\n} from './getFromAST';\nimport { filterInPlace } from './util/filterInPlace';\nimport { invariant } from 'ts-invariant';\nimport { isField, isInlineFragment } from './storeUtils';\n\nexport type RemoveNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n remove?: boolean;\n};\n\nexport type GetNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n};\n\nexport type RemoveDirectiveConfig = RemoveNodeConfig;\nexport type GetDirectiveConfig = GetNodeConfig;\nexport type RemoveArgumentsConfig = RemoveNodeConfig;\nexport type GetFragmentSpreadConfig = GetNodeConfig;\nexport type RemoveFragmentSpreadConfig = RemoveNodeConfig;\nexport type RemoveFragmentDefinitionConfig = RemoveNodeConfig<\n FragmentDefinitionNode\n>;\nexport type RemoveVariableDefinitionConfig = RemoveNodeConfig<\n VariableDefinitionNode\n>;\n\nconst TYPENAME_FIELD: FieldNode = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename',\n },\n};\n\nfunction isEmpty(\n op: OperationDefinitionNode | FragmentDefinitionNode,\n fragments: FragmentMap,\n): boolean {\n return op.selectionSet.selections.every(\n selection =>\n selection.kind === 'FragmentSpread' &&\n isEmpty(fragments[selection.name.value], fragments),\n );\n}\n\nfunction nullIfDocIsEmpty(doc: DocumentNode) {\n return isEmpty(\n getOperationDefinition(doc) || getFragmentDefinition(doc),\n createFragmentMap(getFragmentDefinitions(doc)),\n )\n ? null\n : doc;\n}\n\nfunction getDirectiveMatcher(\n directives: (RemoveDirectiveConfig | GetDirectiveConfig)[],\n) {\n return function directiveMatcher(directive: DirectiveNode) {\n return directives.some(\n dir =>\n (dir.name && dir.name === directive.name.value) ||\n (dir.test && dir.test(directive)),\n );\n };\n}\n\nexport function removeDirectivesFromDocument(\n directives: RemoveDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode | null {\n const variablesInUse: Record = Object.create(null);\n let variablesToRemove: RemoveArgumentsConfig[] = [];\n\n const fragmentSpreadsInUse: Record = Object.create(null);\n let fragmentSpreadsToRemove: RemoveFragmentSpreadConfig[] = [];\n\n let modifiedDoc = nullIfDocIsEmpty(\n visit(doc, {\n Variable: {\n enter(node, _key, parent) {\n // Store each variable that's referenced as part of an argument\n // (excluding operation definition variables), so we know which\n // variables are being used. If we later want to remove a variable\n // we'll fist check to see if it's being used, before continuing with\n // the removal.\n if (\n (parent as VariableDefinitionNode).kind !== 'VariableDefinition'\n ) {\n variablesInUse[node.name.value] = true;\n }\n },\n },\n\n Field: {\n enter(node) {\n if (directives && node.directives) {\n // If `remove` is set to true for a directive, and a directive match\n // is found for a field, remove the field as well.\n const shouldRemoveField = directives.some(\n directive => directive.remove,\n );\n\n if (\n shouldRemoveField &&\n node.directives &&\n node.directives.some(getDirectiveMatcher(directives))\n ) {\n if (node.arguments) {\n // Store field argument variables so they can be removed\n // from the operation definition.\n node.arguments.forEach(arg => {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: (arg.value as VariableNode).name.value,\n });\n }\n });\n }\n\n if (node.selectionSet) {\n // Store fragment spread names so they can be removed from the\n // docuemnt.\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(\n frag => {\n fragmentSpreadsToRemove.push({\n name: frag.name.value,\n });\n },\n );\n }\n\n // Remove the field.\n return null;\n }\n }\n },\n },\n\n FragmentSpread: {\n enter(node) {\n // Keep track of referenced fragment spreads. This is used to\n // determine if top level fragment definitions should be removed.\n fragmentSpreadsInUse[node.name.value] = true;\n },\n },\n\n Directive: {\n enter(node) {\n // If a matching directive is found, remove it.\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n },\n },\n }),\n );\n\n // If we've removed fields with arguments, make sure the associated\n // variables are also removed from the rest of the document, as long as they\n // aren't being used elsewhere.\n if (\n modifiedDoc &&\n filterInPlace(variablesToRemove, v => !variablesInUse[v.name]).length\n ) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n\n // If we've removed selection sets with fragment spreads, make sure the\n // associated fragment definitions are also removed from the rest of the\n // document, as long as they aren't being used elsewhere.\n if (\n modifiedDoc &&\n filterInPlace(fragmentSpreadsToRemove, fs => !fragmentSpreadsInUse[fs.name])\n .length\n ) {\n modifiedDoc = removeFragmentSpreadFromDocument(\n fragmentSpreadsToRemove,\n modifiedDoc,\n );\n }\n\n return modifiedDoc;\n}\n\nexport function addTypenameToDocument(doc: DocumentNode): DocumentNode {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter(node, _key, parent) {\n // Don't add __typename to OperationDefinitions.\n if (\n parent &&\n (parent as OperationDefinitionNode).kind === 'OperationDefinition'\n ) {\n return;\n }\n\n // No changes if no selections.\n const { selections } = node;\n if (!selections) {\n return;\n }\n\n // If selections already have a __typename, or are part of an\n // introspection query, do nothing.\n const skip = selections.some(selection => {\n return (\n isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0)\n );\n });\n if (skip) {\n return;\n }\n\n // If this SelectionSet is @export-ed as an input variable, it should\n // not have a __typename field (see issue #4691).\n const field = parent as FieldNode;\n if (\n isField(field) &&\n field.directives &&\n field.directives.some(d => d.name.value === 'export')\n ) {\n return;\n }\n\n // Create and return a new SelectionSet with a __typename Field.\n return {\n ...node,\n selections: [...selections, TYPENAME_FIELD],\n };\n },\n },\n });\n}\n\nconst connectionRemoveConfig = {\n test: (directive: DirectiveNode) => {\n const willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (\n !directive.arguments ||\n !directive.arguments.some(arg => arg.name.value === 'key')\n ) {\n invariant.warn(\n 'Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.',\n );\n }\n }\n\n return willRemove;\n },\n};\n\nexport function removeConnectionDirectiveFromDocument(doc: DocumentNode) {\n return removeDirectivesFromDocument(\n [connectionRemoveConfig],\n checkDocument(doc),\n );\n}\n\nfunction hasDirectivesInSelectionSet(\n directives: GetDirectiveConfig[],\n selectionSet: SelectionSetNode,\n nestedCheck = true,\n): boolean {\n return (\n selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(selection =>\n hasDirectivesInSelection(directives, selection, nestedCheck),\n )\n );\n}\n\nfunction hasDirectivesInSelection(\n directives: GetDirectiveConfig[],\n selection: SelectionNode,\n nestedCheck = true,\n): boolean {\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return (\n selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(\n directives,\n selection.selectionSet,\n nestedCheck,\n ))\n );\n}\n\nexport function getDirectivesFromDocument(\n directives: GetDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode {\n checkDocument(doc);\n\n let parentPath: string;\n\n return nullIfDocIsEmpty(\n visit(doc, {\n SelectionSet: {\n enter(node, _key, _parent, path) {\n const currentPath = path.join('-');\n\n if (\n !parentPath ||\n currentPath === parentPath ||\n !currentPath.startsWith(parentPath)\n ) {\n if (node.selections) {\n const selectionsWithDirectives = node.selections.filter(\n selection => hasDirectivesInSelection(directives, selection),\n );\n\n if (hasDirectivesInSelectionSet(directives, node, false)) {\n parentPath = currentPath;\n }\n\n return {\n ...node,\n selections: selectionsWithDirectives,\n };\n } else {\n return null;\n }\n }\n },\n },\n }),\n );\n}\n\nfunction getArgumentMatcher(config: RemoveArgumentsConfig[]) {\n return function argumentMatcher(argument: ArgumentNode) {\n return config.some(\n (aConfig: RemoveArgumentsConfig) =>\n argument.value &&\n argument.value.kind === 'Variable' &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument))),\n );\n };\n}\n\nexport function removeArgumentsFromDocument(\n config: RemoveArgumentsConfig[],\n doc: DocumentNode,\n): DocumentNode {\n const argMatcher = getArgumentMatcher(config);\n\n return nullIfDocIsEmpty(\n visit(doc, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n // Remove matching top level variables definitions.\n variableDefinitions: node.variableDefinitions.filter(\n varDef =>\n !config.some(arg => arg.name === varDef.variable.name.value),\n ),\n };\n },\n },\n\n Field: {\n enter(node) {\n // If `remove` is set to true for an argument, and an argument match\n // is found for a field, remove the field as well.\n const shouldRemoveField = config.some(argConfig => argConfig.remove);\n\n if (shouldRemoveField) {\n let argMatchCount = 0;\n node.arguments.forEach(arg => {\n if (argMatcher(arg)) {\n argMatchCount += 1;\n }\n });\n if (argMatchCount === 1) {\n return null;\n }\n }\n },\n },\n\n Argument: {\n enter(node) {\n // Remove all matching arguments.\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }),\n );\n}\n\nexport function removeFragmentSpreadFromDocument(\n config: RemoveFragmentSpreadConfig[],\n doc: DocumentNode,\n): DocumentNode {\n function enter(\n node: FragmentSpreadNode | FragmentDefinitionNode,\n ): null | void {\n if (config.some(def => def.name === node.name.value)) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(\n visit(doc, {\n FragmentSpread: { enter },\n FragmentDefinition: { enter },\n }),\n );\n}\n\nfunction getAllFragmentSpreadsFromSelectionSet(\n selectionSet: SelectionSetNode,\n): FragmentSpreadNode[] {\n const allFragments: FragmentSpreadNode[] = [];\n\n selectionSet.selections.forEach(selection => {\n if (\n (isField(selection) || isInlineFragment(selection)) &&\n selection.selectionSet\n ) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(\n frag => allFragments.push(frag),\n );\n } else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n\n return allFragments;\n}\n\n// If the incoming document is a query, return it as is. Otherwise, build a\n// new document containing a query operation based on the selection set\n// of the previous main operation.\nexport function buildQueryFromSelectionSet(\n document: DocumentNode,\n): DocumentNode {\n const definition = getMainDefinition(document);\n const definitionOperation = (definition).operation;\n\n if (definitionOperation === 'query') {\n // Already a query, so return the existing document.\n return document;\n }\n\n // Build a new query using the selection set of the main operation.\n const modifiedDoc = visit(document, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n operation: 'query',\n };\n },\n },\n });\n return modifiedDoc;\n}\n\n// Remove fields / selection sets that include an @client directive.\nexport function removeClientSetsFromDocument(\n document: DocumentNode,\n): DocumentNode | null {\n checkDocument(document);\n\n let modifiedDoc = removeDirectivesFromDocument(\n [\n {\n test: (directive: DirectiveNode) => directive.name.value === 'client',\n remove: true,\n },\n ],\n document,\n );\n\n // After a fragment definition has had its @client related document\n // sets removed, if the only field it has left is a __typename field,\n // remove the entire fragment operation to prevent it from being fired\n // on the server.\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter(node) {\n if (node.selectionSet) {\n const isTypenameOnly = node.selectionSet.selections.every(\n selection =>\n isField(selection) && selection.name.value === '__typename',\n );\n if (isTypenameOnly) {\n return null;\n }\n }\n },\n },\n });\n }\n\n return modifiedDoc;\n}\n","export const canUseWeakMap = typeof WeakMap === 'function' && !(\n typeof navigator === 'object' &&\n navigator.product === 'ReactNative'\n);\n","const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep(value: T): T {\n return cloneDeepHelper(value, new Map());\n}\n\nfunction cloneDeepHelper(val: T, seen: Map): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val).forEach(key => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n","export function getEnv(): string | undefined {\n if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n return process.env.NODE_ENV;\n }\n\n // default environment\n return 'development';\n}\n\nexport function isEnv(env: string): boolean {\n return getEnv() === env;\n}\n\nexport function isProduction(): boolean {\n return isEnv('production') === true;\n}\n\nexport function isDevelopment(): boolean {\n return isEnv('development') === true;\n}\n\nexport function isTest(): boolean {\n return isEnv('test') === true;\n}\n","import { ExecutionResult } from 'graphql';\n\nexport function tryFunctionOrLogError(f: Function) {\n try {\n return f();\n } catch (e) {\n if (console.error) {\n console.error(e);\n }\n }\n}\n\nexport function graphQLResultHasError(result: ExecutionResult) {\n return result.errors && result.errors.length;\n}\n","import { isDevelopment, isTest } from './environment';\n\n// Taken (mostly) from https://github.com/substack/deep-freeze to avoid\n// import hassles with rollup.\nfunction deepFreeze(o: any) {\n Object.freeze(o);\n\n Object.getOwnPropertyNames(o).forEach(function(prop) {\n if (\n o[prop] !== null &&\n (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n !Object.isFrozen(o[prop])\n ) {\n deepFreeze(o[prop]);\n }\n });\n\n return o;\n}\n\nexport function maybeDeepFreeze(obj: any) {\n if (isDevelopment() || isTest()) {\n // Polyfilled Symbols potentially cause infinite / very deep recursion while deep freezing\n // which is known to crash IE11 (https://github.com/apollographql/apollo-client/issues/3043).\n const symbolIsPolyfilled =\n typeof Symbol === 'function' && typeof Symbol('') === 'string';\n\n if (!symbolIsPolyfilled) {\n return deepFreeze(obj);\n }\n }\n return obj;\n}\n","const { hasOwnProperty } = Object.prototype;\n\n// These mergeDeep and mergeDeepArray utilities merge any number of objects\n// together, sharing as much memory as possible with the source objects, while\n// remaining careful to avoid modifying any source objects.\n\n// Logically, the return type of mergeDeep should be the intersection of\n// all the argument types. The binary call signature is by far the most\n// common, but we support 0- through 5-ary as well. After that, the\n// resulting type is just the inferred array element type. Note to nerds:\n// there is a more clever way of doing this that converts the tuple type\n// first to a union type (easy enough: T[number]) and then converts the\n// union to an intersection type using distributive conditional type\n// inference, but that approach has several fatal flaws (boolean becomes\n// true & false, and the inferred type ends up as unknown in many cases),\n// in addition to being nearly impossible to explain/understand.\nexport type TupleToIntersection =\n T extends [infer A] ? A :\n T extends [infer A, infer B] ? A & B :\n T extends [infer A, infer B, infer C] ? A & B & C :\n T extends [infer A, infer B, infer C, infer D] ? A & B & C & D :\n T extends [infer A, infer B, infer C, infer D, infer E] ? A & B & C & D & E :\n T extends (infer U)[] ? U : any;\n\nexport function mergeDeep(\n ...sources: T\n): TupleToIntersection {\n return mergeDeepArray(sources);\n}\n\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\nexport function mergeDeepArray(sources: T[]): T {\n let target = sources[0] || {} as T;\n const count = sources.length;\n if (count > 1) {\n const pastCopies: any[] = [];\n target = shallowCopyForMerge(target, pastCopies);\n for (let i = 1; i < count; ++i) {\n target = mergeHelper(target, sources[i], pastCopies);\n }\n }\n return target;\n}\n\nfunction isObject(obj: any): obj is Record {\n return obj !== null && typeof obj === 'object';\n}\n\nfunction mergeHelper(\n target: any,\n source: any,\n pastCopies: any[],\n) {\n if (isObject(source) && isObject(target)) {\n // In case the target has been frozen, make an extensible copy so that\n // we can merge properties into the copy.\n if (Object.isExtensible && !Object.isExtensible(target)) {\n target = shallowCopyForMerge(target, pastCopies);\n }\n\n Object.keys(source).forEach(sourceKey => {\n const sourceValue = source[sourceKey];\n if (hasOwnProperty.call(target, sourceKey)) {\n const targetValue = target[sourceKey];\n if (sourceValue !== targetValue) {\n // When there is a key collision, we need to make a shallow copy of\n // target[sourceKey] so the merge does not modify any source objects.\n // To avoid making unnecessary copies, we use a simple array to track\n // past copies, since it's safe to modify copies created earlier in\n // the merge. We use an array for pastCopies instead of a Map or Set,\n // since the number of copies should be relatively small, and some\n // Map/Set polyfills modify their keys.\n target[sourceKey] = mergeHelper(\n shallowCopyForMerge(targetValue, pastCopies),\n sourceValue,\n pastCopies,\n );\n }\n } else {\n // If there is no collision, the target can safely share memory with\n // the source, and the recursion can terminate here.\n target[sourceKey] = sourceValue;\n }\n });\n\n return target;\n }\n\n // If source (or target) is not an object, let source replace target.\n return source;\n}\n\nfunction shallowCopyForMerge(value: T, pastCopies: any[]): T {\n if (\n value !== null &&\n typeof value === 'object' &&\n pastCopies.indexOf(value) < 0\n ) {\n if (Array.isArray(value)) {\n value = (value as any).slice(0);\n } else {\n value = {\n __proto__: Object.getPrototypeOf(value),\n ...value,\n };\n }\n pastCopies.push(value);\n }\n return value;\n}\n","import { isProduction, isTest } from './environment';\n\nconst haveWarned = Object.create({});\n\n/**\n * Print a warning only once in development.\n * In production no warnings are printed.\n * In test all warnings are printed.\n *\n * @param msg The warning message\n * @param type warn or error (will call console.warn or console.error)\n */\nexport function warnOnceInDevelopment(msg: string, type = 'warn') {\n if (!isProduction() && !haveWarned[msg]) {\n if (!isTest()) {\n haveWarned[msg] = true;\n }\n if (type === 'error') {\n console.error(msg);\n } else {\n console.warn(msg);\n }\n }\n}\n","const genericMessage = \"Invariant Violation\";\nconst {\n setPrototypeOf = function (obj: any, proto: any) {\n obj.__proto__ = proto;\n return obj;\n },\n} = Object as any;\n\nexport class InvariantError extends Error {\n framesToPop = 1;\n name = genericMessage;\n constructor(message: string | number = genericMessage) {\n super(\n typeof message === \"number\"\n ? `${genericMessage}: ${message} (see https://github.com/apollographql/invariant-packages)`\n : message\n );\n setPrototypeOf(this, InvariantError.prototype);\n }\n}\n\nexport function invariant(condition: any, message?: string | number) {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nfunction wrapConsoleMethod(method: \"warn\" | \"error\") {\n return function () {\n return console[method].apply(console, arguments as any);\n } as (...args: any[]) => void;\n}\n\nexport namespace invariant {\n export const warn = wrapConsoleMethod(\"warn\");\n export const error = wrapConsoleMethod(\"error\");\n}\n\n// Code that uses ts-invariant with rollup-plugin-invariant may want to\n// import this process stub to avoid errors evaluating process.env.NODE_ENV.\n// However, because most ESM-to-CJS compilers will rewrite the process import\n// as tsInvariant.process, which prevents proper replacement by minifiers, we\n// also attempt to define the stub globally when it is not already defined.\nlet processStub: NodeJS.Process = { env: {} } as any;\nexport { processStub as process };\nif (typeof process === \"object\") {\n processStub = process;\n} else try {\n // Using Function to evaluate this assignment in global scope also escapes\n // the strict mode of the current module, thereby allowing the assignment.\n // Inspired by https://github.com/facebook/regenerator/pull/369.\n Function(\"stub\", \"process = stub\")(processStub);\n} catch (atLeastWeTried) {\n // The assignment can fail if a Content Security Policy heavy-handedly\n // forbids Function usage. In those environments, developers should take\n // extra care to replace process.env.NODE_ENV in their production builds,\n // or define an appropriate global.process polyfill.\n}\n\nexport default invariant;\n","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n 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}","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export function isDocumentVisible() {\n if (typeof document !== 'undefined' && typeof document.visibilityState !== 'undefined') {\n return document.visibilityState !== 'hidden';\n }\n\n return true;\n}\nexport function isOnline() {\n if (typeof navigator.onLine !== 'undefined') {\n return navigator.onLine;\n }\n\n return true;\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { useCallback, useRef, useEffect } from 'react';\n\nfunction usePersistFn(fn) {\n var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var ref = useRef(function () {\n throw new Error('Cannot call an event handler while rendering.');\n });\n useEffect(function () {\n ref.current = fn;\n }, [fn].concat(_toConsumableArray(dependencies)));\n var persist = useCallback(function () {\n var refFn = ref.current;\n\n if (refFn) {\n return refFn.apply(void 0, arguments);\n }\n }, [ref]);\n\n if (typeof fn === 'function') {\n return persist;\n }\n\n return undefined;\n}\n\nexport default usePersistFn;","// from swr\nimport { isDocumentVisible, isOnline } from './index';\nvar listeners = [];\n\nfunction subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n}\n\nvar eventsBinded = false;\n\nif (typeof window !== 'undefined' && window.addEventListener && !eventsBinded) {\n var revalidate = function revalidate() {\n if (!isDocumentVisible() || !isOnline()) return;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n };\n\n window.addEventListener('visibilitychange', revalidate, false);\n window.addEventListener('focus', revalidate, false); // only bind the events once\n\n eventsBinded = true;\n}\n\nexport default subscribe;","// from swr\nimport { isDocumentVisible } from './index';\nvar listeners = [];\n\nfunction subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n}\n\nvar eventsBinded = false;\n\nif (typeof window !== 'undefined' && window.addEventListener && !eventsBinded) {\n var revalidate = function revalidate() {\n if (!isDocumentVisible()) return;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n };\n\n window.addEventListener('visibilitychange', revalidate, false); // only bind the events once\n\n eventsBinded = true;\n}\n\nexport default subscribe;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\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 _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure 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 _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport useAsync from './useAsync';\nimport useUpdateEffect from './utils/useUpdateEffect';\n\nfunction usePaginated(service, options) {\n var paginated = options.paginated,\n _options$defaultPageS = options.defaultPageSize,\n defaultPageSize = _options$defaultPageS === void 0 ? 10 : _options$defaultPageS,\n _options$refreshDeps = options.refreshDeps,\n refreshDeps = _options$refreshDeps === void 0 ? [] : _options$refreshDeps,\n fetchKey = options.fetchKey,\n restOptions = _objectWithoutProperties(options, [\"paginated\", \"defaultPageSize\", \"refreshDeps\", \"fetchKey\"]);\n\n useEffect(function () {\n if (fetchKey) {\n console.error('useRequest pagination\\'s fetchKey will not work!');\n }\n }, []);\n\n var _useAsync = useAsync(service, _objectSpread({\n defaultParams: [{\n current: 1,\n pageSize: defaultPageSize\n }]\n }, restOptions)),\n data = _useAsync.data,\n params = _useAsync.params,\n run = _useAsync.run,\n loading = _useAsync.loading,\n rest = _objectWithoutProperties(_useAsync, [\"data\", \"params\", \"run\", \"loading\"]);\n\n var _ref = params && params[0] ? params[0] : {},\n _ref$current = _ref.current,\n current = _ref$current === void 0 ? 1 : _ref$current,\n _ref$pageSize = _ref.pageSize,\n pageSize = _ref$pageSize === void 0 ? defaultPageSize : _ref$pageSize,\n _ref$sorter = _ref.sorter,\n sorter = _ref$sorter === void 0 ? {} : _ref$sorter,\n _ref$filters = _ref.filters,\n filters = _ref$filters === void 0 ? {} : _ref$filters; // 只改变 pagination,其他参数原样传递\n\n\n var runChangePaination = useCallback(function (paginationParams) {\n var _params = _toArray(params),\n oldPaginationParams = _params[0],\n restParams = _params.slice(1);\n\n run.apply(void 0, [_objectSpread({}, oldPaginationParams, {}, paginationParams)].concat(_toConsumableArray(restParams)));\n }, [run, params]);\n var total = (data === null || data === void 0 ? void 0 : data.total) || 0;\n var totalPage = useMemo(function () {\n return Math.ceil(total / pageSize);\n }, [pageSize, total]);\n var onChange = useCallback(function (c, p) {\n var toCurrent = c <= 0 ? 1 : c;\n var toPageSize = p <= 0 ? 1 : p;\n var tempTotalPage = Math.ceil(total / toPageSize);\n\n if (toCurrent > tempTotalPage) {\n toCurrent = tempTotalPage;\n }\n\n runChangePaination({\n current: c,\n pageSize: p\n });\n }, [total, runChangePaination]);\n var changeCurrent = useCallback(function (c) {\n onChange(c, pageSize);\n }, [onChange, pageSize]);\n var changePageSize = useCallback(function (p) {\n onChange(current, p);\n }, [onChange, current]);\n var changeCurrentRef = useRef(changeCurrent);\n changeCurrentRef.current = changeCurrent;\n /* 分页场景下,如果 refreshDeps 变化,重置分页 */\n\n useUpdateEffect(function () {\n /* 只有自动执行的场景, refreshDeps 才有效 */\n if (!options.manual) {\n changeCurrentRef.current(1);\n }\n }, _toConsumableArray(refreshDeps)); // 表格翻页 排序 筛选等\n\n var changeTable = useCallback(function (p, f, s) {\n runChangePaination({\n current: p.current,\n pageSize: p.pageSize || defaultPageSize,\n filters: f,\n sorter: s\n });\n }, [filters, sorter, runChangePaination]);\n return _objectSpread({\n loading: loading,\n data: data,\n params: params,\n run: run,\n pagination: {\n current: current,\n pageSize: pageSize,\n total: total,\n totalPage: totalPage,\n onChange: onChange,\n changeCurrent: changeCurrent,\n changePageSize: changePageSize\n },\n tableProps: {\n dataSource: (data === null || data === void 0 ? void 0 : data.list) || [],\n loading: loading,\n onChange: changeTable,\n pagination: {\n current: current,\n pageSize: pageSize,\n total: total\n }\n },\n sorter: sorter,\n filters: filters\n }, rest);\n}\n\nexport default usePaginated;","import React from 'react';\nvar ConfigContext = React.createContext({});\nConfigContext.displayName = 'UseAPIConfigContext';\nexport default ConfigContext;","function _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\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { useRef, useContext } from 'react';\nimport request from 'umi-request';\nimport useAsync from './useAsync';\nimport useLoadMore from './useLoadMore';\nimport usePaginated from './usePaginated';\nimport ConfigContext from './configContext';\n\nfunction useRequest(service) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var contextConfig = useContext(ConfigContext);\n\n var finalOptions = _objectSpread({}, contextConfig, {}, options);\n\n var paginated = finalOptions.paginated,\n loadMore = finalOptions.loadMore,\n requestMethod = finalOptions.requestMethod;\n var paginatedRef = useRef(paginated);\n var loadMoreRef = useRef(loadMore);\n\n if (paginatedRef.current !== paginated) {\n throw Error('You should not modify the paginated of options');\n }\n\n if (loadMoreRef.current !== loadMore) {\n throw Error('You should not modify the loadMore of options');\n }\n\n paginatedRef.current = paginated;\n loadMoreRef.current = loadMore;\n var finalRequestMethod = requestMethod || request;\n var promiseService;\n\n if (typeof service === 'string') {\n promiseService = function promiseService() {\n return finalRequestMethod(service);\n };\n } else if (_typeof(service) === 'object') {\n var url = service.url,\n rest = _objectWithoutProperties(service, [\"url\"]);\n\n promiseService = function promiseService() {\n return requestMethod ? requestMethod(service) : request(url, rest);\n };\n } else {\n promiseService = function promiseService() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return new Promise(function (resolve, reject) {\n var result = service.apply(void 0, args);\n\n if (result.then) {\n result.then(function (data) {\n return resolve(data);\n }).catch(function (e) {\n return reject(e);\n });\n } else if (typeof result === 'string') {\n finalRequestMethod(result).then(function (data) {\n resolve(data);\n }).catch(function (e) {\n return reject(e);\n });\n } else if (_typeof(result) === 'object') {\n // umi-request 需要拆分下字段\n if (requestMethod) {\n finalRequestMethod(result).then(function (data) {\n resolve(data);\n }).catch(function (e) {\n return reject(e);\n });\n } else {\n var _url = result.url,\n _rest = _objectWithoutProperties(result, [\"url\"]);\n\n request(_url, _rest).then(function (data) {\n resolve(data);\n }).catch(function (e) {\n return reject(e);\n });\n }\n }\n });\n };\n }\n\n if (loadMore) {\n return useLoadMore(promiseService, finalOptions);\n }\n\n if (paginated) {\n return usePaginated(promiseService, finalOptions);\n }\n\n return useAsync(promiseService, finalOptions);\n}\n\nvar UseAPIProvider = ConfigContext.Provider;\nexport { useAsync, usePaginated, useLoadMore, UseAPIProvider };\nexport default useRequest;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { useCallback, useState, useRef, useEffect } from 'react';\n\nvar Timer = function Timer(cb, delay) {\n var _this = this;\n\n _classCallCheck(this, Timer);\n\n this.remaining = 0;\n this.delay = 0;\n this.cb = null;\n this.start = 0;\n this.timerId = 0;\n\n this.stop = function () {\n clearTimeout(_this.timerId);\n _this.timerId = 0;\n _this.remaining = _this.delay;\n };\n\n this.pause = function () {\n clearTimeout(_this.timerId);\n _this.remaining -= Date.now() - _this.start;\n };\n\n this.resume = function () {\n _this.start = Date.now();\n clearTimeout(_this.timerId);\n _this.timerId = setTimeout(_async(function () {\n if (_this.cb) {\n _this.cb();\n }\n\n return _await();\n }), _this.remaining);\n };\n\n this.remaining = delay;\n this.delay = delay;\n this.start = Date.now();\n this.cb = cb;\n};\n\nvar noop = function noop() {};\n\nvar promiseReturn = function promiseReturn() {\n return _await(null);\n};\n\nfunction useAsync(fn, deps, options) {\n var _deps = Array.isArray(deps) ? deps : [];\n\n var _options = _typeof(deps) === 'object' && !Array.isArray(deps) ? deps : options || {};\n\n var params = useRef([]);\n var _options$autoCancel = _options.autoCancel,\n autoCancel = _options$autoCancel === void 0 ? true : _options$autoCancel;\n var timer = useRef(undefined);\n var omitNextResume = useRef(false);\n var count = useRef(0);\n var fnRef = useRef(fn);\n fnRef.current = fn;\n var onSuccessRef = useRef(_options.onSuccess);\n onSuccessRef.current = _options.onSuccess;\n var onErrorRef = useRef(_options.onError);\n onErrorRef.current = _options.onError; // initial loading state is related to manual option\n\n var _useState = useState({\n data: undefined,\n error: undefined,\n loading: !_options.manual\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n set = _useState2[1];\n\n var run = useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // 确保不会返回被取消的结果\n var runCount = count.current;\n /* 当前参数保存一下 */\n\n params.current = args;\n set(function (s) {\n return _objectSpread({}, s, {\n loading: true\n });\n });\n return fnRef.current.apply(fnRef, args).then(function (data) {\n if (runCount === count.current) {\n set(function (s) {\n return _objectSpread({}, s, {\n data: data,\n loading: false\n });\n });\n\n if (onSuccessRef.current) {\n onSuccessRef.current(data, args || []);\n }\n }\n\n return data;\n }).catch(function (error) {\n if (runCount === count.current) {\n set(function (s) {\n return _objectSpread({}, s, {\n error: error,\n loading: false\n });\n });\n\n if (onErrorRef.current) {\n onErrorRef.current(error, args || []);\n }\n }\n\n throw error;\n });\n }, []);\n /* 软取消,由于竞态,需要取消上一次的请求 */\n\n var softCancel = useCallback(function () {\n if (autoCancel) {\n count.current += 1;\n set(function (s) {\n return _objectSpread({}, s, {\n loading: false\n });\n });\n }\n }, [autoCancel]);\n /* 强制取消,组件卸载,或者用户手工取消 */\n\n var forceCancel = useCallback(function () {\n count.current += 1;\n set(function (s) {\n return _objectSpread({}, s, {\n loading: false\n });\n });\n }, []);\n var stop = useCallback(function () {\n if (timer.current) {\n timer.current.stop();\n omitNextResume.current = true;\n }\n\n forceCancel();\n }, [forceCancel]);\n var resume = useCallback(function () {\n if (timer.current) {\n omitNextResume.current = false;\n timer.current.resume();\n }\n }, []);\n var pause = useCallback(function () {\n if (timer.current) {\n timer.current.pause();\n omitNextResume.current = true;\n }\n\n forceCancel();\n }, [forceCancel]);\n var start = useCallback(_async(function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n // 有定时器的延时逻辑\n if (_options.pollingInterval) {\n if (timer.current) {\n stop();\n }\n\n omitNextResume.current = false;\n timer.current = new Timer(function () {\n return start.apply(void 0, args);\n }, _options.pollingInterval);\n var ret = run.apply(void 0, args);\n ret.finally(function () {\n if (timer.current && !omitNextResume.current) {\n timer.current.resume();\n }\n });\n return ret;\n } // 如果上一次异步操作还在 loading,则会尝试取消掉上一次的异步操作。\n\n\n softCancel();\n return run.apply(void 0, args);\n }), [run, softCancel, stop, _options.pollingInterval]);\n useEffect(function () {\n if (!_options.manual) {\n // deps 变化时,重新执行\n start();\n }\n /* 如果 desp 变化,强制取消 */\n\n\n return function () {\n if (timer.current) {\n timer.current.stop();\n }\n\n forceCancel();\n };\n }, [].concat(_toConsumableArray(_deps), [forceCancel, start]));\n return {\n loading: state.loading,\n params: params.current,\n error: state.error,\n data: state.data,\n cancel: forceCancel,\n run: start,\n timer: {\n stop: stop,\n resume: resume,\n pause: pause\n }\n };\n}\n\nexport default useAsync;","import { useEffect, useRef } from 'react';\n\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n var isMounted = useRef(false);\n useEffect(function () {\n if (!isMounted.current) {\n isMounted.current = true;\n } else {\n return effect();\n }\n }, deps);\n};\n\nexport default useUpdateEffect;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { useCallback, useEffect, useRef } from 'react';\nimport useUpdateEffect from '../useUpdateEffect';\n\nfunction useDebounceFn(fn, deps, wait) {\n var _deps = Array.isArray(deps) ? deps : [];\n\n var _wait = typeof deps === 'number' ? deps : wait || 0;\n\n var timer = useRef();\n var fnRef = useRef(fn);\n fnRef.current = fn;\n var cancel = useCallback(function () {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n }, []);\n var run = useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timer.current = setTimeout(function () {\n fnRef.current.apply(fnRef, args);\n }, _wait);\n }, [_wait, cancel]);\n useUpdateEffect(function () {\n run();\n return cancel;\n }, [].concat(_toConsumableArray(_deps), [run]));\n useEffect(function () {\n return cancel;\n }, []);\n return {\n run: run,\n cancel: cancel\n };\n}\n\nexport default useDebounceFn;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useState, useRef, useLayoutEffect } from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nfunction useSize() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var hasPassedInElement = args.length === 1;\n var arg = useRef(args[0]);\n arg.current = args[0];\n var element = useRef();\n\n var _useState = useState(function () {\n var initDOM = typeof arg.current === 'function' ? arg.current() : arg.current;\n return {\n width: (initDOM || {}).clientWidth,\n height: (initDOM || {}).clientHeight\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n useLayoutEffect(function () {\n var passedInElement = typeof arg.current === 'function' ? arg.current() : arg.current;\n var targetElement = hasPassedInElement ? passedInElement : element.current;\n\n if (!targetElement) {\n return function () {};\n }\n\n var resizeObserver = new ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n setState({\n width: entry.target.clientWidth,\n height: entry.target.clientHeight\n });\n });\n });\n resizeObserver.observe(targetElement);\n return function () {\n resizeObserver.disconnect();\n };\n }, [element.current, typeof arg.current === 'function' ? undefined : arg.current]);\n\n if (hasPassedInElement) {\n return [state];\n }\n\n return [state, element];\n}\n\nexport default useSize;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useEffect, useState } from 'react';\nvar subscribers = new Set();\nvar info;\nvar responsiveConfig = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction init() {\n if (info) return;\n info = {};\n calculate();\n window.addEventListener('resize', function () {\n var oldInfo = info;\n calculate();\n if (oldInfo === info) return;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = subscribers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscriber = _step.value;\n subscriber();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n });\n}\n\nfunction calculate() {\n var width = window.innerWidth;\n var newInfo = {};\n var shouldUpdate = false;\n\n for (var _i = 0, _Object$keys = Object.keys(responsiveConfig); _i < _Object$keys.length; _i++) {\n var _key = _Object$keys[_i];\n newInfo[_key] = width >= responsiveConfig[_key];\n\n if (newInfo[_key] !== info[_key]) {\n shouldUpdate = true;\n }\n }\n\n if (shouldUpdate) {\n info = newInfo;\n }\n}\n\nexport function configResponsive(config) {\n responsiveConfig = config;\n if (info) calculate();\n}\nexport function useResponsive() {\n init();\n\n var _useState = useState(info),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n useEffect(function () {\n var subscriber = function subscriber() {\n setState(info);\n };\n\n subscribers.add(subscriber);\n return function () {\n subscribers.delete(subscriber);\n };\n }, []);\n return state;\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useCallback, useState, useMemo } from 'react';\n\nfunction useToggle() {\n var defaultValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var reverseValue = arguments.length > 1 ? arguments[1] : undefined;\n\n var _useState = useState(defaultValue),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var reverseValueOrigin = useMemo(function () {\n return reverseValue === undefined ? !defaultValue : reverseValue;\n }, [reverseValue]); // 切换返回值\n\n var toggle = useCallback(function (value) {\n setState(function (oldState) {\n // 强制返回状态值,适用于点击操作\n if (value !== undefined) {\n return value;\n }\n\n return oldState === defaultValue ? reverseValueOrigin : defaultValue;\n });\n }, []); // 设置默认值\n\n var setLeft = useCallback(function () {\n setState(defaultValue);\n }, [setState]); // 设置取反值\n\n var setRight = useCallback(function () {\n setState(reverseValueOrigin);\n }, [setState]);\n return {\n state: state,\n toggle: toggle,\n setLeft: setLeft,\n setRight: setRight\n };\n}\n\nexport default useToggle;","import { useCallback } from 'react';\nimport useToggle from '../useToggle';\n\nvar useBoolean = function useBoolean() {\n var defaultValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var _useToggle = useToggle(defaultValue),\n state = _useToggle.state,\n toggle = _useToggle.toggle;\n\n var setTrue = useCallback(function () {\n return toggle(true);\n }, [toggle]);\n var setFalse = useCallback(function () {\n return toggle(false);\n }, [toggle]);\n return {\n state: state,\n toggle: toggle,\n setTrue: setTrue,\n setFalse: setFalse\n };\n};\n\nexport default useBoolean;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useState } from 'react';\nimport useDebounceFn from '../useDebounceFn';\n\nfunction useDebounce(value, wait) {\n var _useState = useState(value),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n useDebounceFn(function () {\n setState(value);\n }, [value], wait);\n return state;\n}\n\nexport default useDebounce;","import { useRef } from 'react';\nexport default (function (state, compare) {\n var prevRef = useRef();\n var curRef = useRef();\n var needUpdate = typeof compare === 'function' ? compare(curRef.current, state) : true;\n\n if (needUpdate) {\n prevRef.current = curRef.current;\n curRef.current = state;\n }\n\n return prevRef.current;\n});","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useEffect, useState } from 'react';\nvar initState = {\n screenX: NaN,\n screenY: NaN,\n clientX: NaN,\n clientY: NaN,\n pageX: NaN,\n pageY: NaN\n};\nexport default (function () {\n var _useState = useState(initState),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n useEffect(function () {\n var moveHandler = function moveHandler(event) {\n var screenX = event.screenX,\n screenY = event.screenY,\n clientX = event.clientX,\n clientY = event.clientY,\n pageX = event.pageX,\n pageY = event.pageY;\n setState({\n screenX: screenX,\n screenY: screenY,\n clientX: clientX,\n clientY: clientY,\n pageX: pageX,\n pageY: pageY\n });\n };\n\n document.addEventListener('mousemove', moveHandler);\n return function () {\n document.removeEventListener('mousemove', moveHandler);\n };\n }, []);\n return state;\n});","import { useEffect, useRef } from 'react';\n\nfunction useEventListener(eventName, handler, options) {\n var ref = useRef();\n var savedHandler = useRef();\n useEffect(function () {\n savedHandler.current = handler;\n }, [handler]);\n useEffect(function () {\n var passedInElement = options && (typeof options.dom === 'function' ? options.dom() : options.dom);\n var element = passedInElement ? passedInElement : ref.current || window;\n var isSupported = element.addEventListener;\n if (!isSupported) return;\n\n var eventListener = function eventListener(event) {\n return savedHandler.current && savedHandler.current(event);\n };\n\n element.addEventListener(eventName, eventListener, {\n capture: options === null || options === void 0 ? void 0 : options.capture,\n once: options === null || options === void 0 ? void 0 : options.once,\n passive: options === null || options === void 0 ? void 0 : options.passive\n });\n return function () {\n element.removeEventListener(eventName, eventListener, {\n capture: options === null || options === void 0 ? void 0 : options.capture\n });\n };\n }, [eventName, options, ref.current]);\n return ref;\n}\n\nexport default useEventListener;","import { useEffect, useRef } from 'react';\nimport useBoolean from '../useBoolean';\nexport default (function (options) {\n var _ref = options || {},\n dom = _ref.dom,\n onEnter = _ref.onEnter,\n onLeave = _ref.onLeave;\n\n var element = useRef(null);\n var onEnterRef = useRef(onEnter);\n onEnterRef.current = onEnter;\n var onLeaveRef = useRef(onLeave);\n onLeaveRef.current = onLeave;\n\n var _useBoolean = useBoolean(false),\n state = _useBoolean.state,\n setTrue = _useBoolean.setTrue,\n setFalse = _useBoolean.setFalse;\n\n useEffect(function () {\n var onMouseEnter = function onMouseEnter() {\n if (onEnterRef.current) onEnterRef.current();\n setTrue();\n };\n\n var onMouseLeave = function onMouseLeave() {\n if (onLeaveRef.current) onLeaveRef.current();\n setFalse();\n };\n\n var passedInElement = typeof dom === 'function' ? dom() : dom; // 如果 传入dom\n\n if (passedInElement) {\n passedInElement.addEventListener('mouseenter', onMouseEnter);\n passedInElement.addEventListener('mouseleave', onMouseLeave);\n return function () {\n passedInElement.removeEventListener('mouseenter', onMouseEnter);\n passedInElement.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n\n var node = element.current;\n\n if (node) {\n node.addEventListener('mouseenter', onMouseEnter);\n node.addEventListener('mouseleave', onMouseLeave);\n return function () {\n node.removeEventListener('mouseenter', onMouseEnter);\n node.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [element.current, typeof dom === 'function' ? undefined : dom]);\n\n if (dom) {\n return [!!state];\n }\n\n return [!!state, element];\n});","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { useState, useEffect, useRef } from 'react';\nvar initRect = {\n top: NaN,\n left: NaN,\n bottom: NaN,\n right: NaN,\n height: NaN,\n width: NaN\n};\n\nvar initState = _objectSpread({\n text: ''\n}, initRect);\n\nfunction getRectFromSelection(selection) {\n if (!selection) {\n return initRect;\n }\n\n if (selection.rangeCount < 1) {\n return initRect;\n }\n\n var range = selection.getRangeAt(0);\n\n var _range$getBoundingCli = range.getBoundingClientRect(),\n height = _range$getBoundingCli.height,\n width = _range$getBoundingCli.width,\n top = _range$getBoundingCli.top,\n left = _range$getBoundingCli.left,\n right = _range$getBoundingCli.right,\n bottom = _range$getBoundingCli.bottom;\n\n return {\n height: height,\n width: width,\n top: top,\n left: left,\n right: right,\n bottom: bottom\n };\n}\n/**\n * 获取用户选取的文本或当前光标插入的位置\n * */\n\n\nfunction useTextSelection() {\n var hasPassedInArg = arguments.length === 1;\n var arg = useRef(arguments.length <= 0 ? undefined : arguments[0]);\n var ref = useRef();\n\n var _useState = useState(initState),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var stateRef = useRef(state);\n stateRef.current = state;\n useEffect(function () {\n // 获取 target 需要放在 useEffect 里,否则存在组件未加载好的情况而导致元素获取不到\n var passedInArg = typeof arg.current === 'function' ? arg.current() : arg.current;\n var target = hasPassedInArg ? passedInArg : ref.current;\n\n if (!target) {\n return function () {};\n }\n\n var mouseupHandler = function mouseupHandler() {\n var selObj = null;\n var text = '';\n var rect = initRect;\n if (!window.getSelection) return;\n selObj = window.getSelection();\n text = selObj ? selObj.toString() : '';\n\n if (text) {\n rect = getRectFromSelection(selObj);\n setState(_objectSpread({}, state, {\n text: text\n }, rect));\n }\n }; // 任意点击都需要清空之前的 range\n\n\n var mousedownHandler = function mousedownHandler() {\n if (!window.getSelection) return;\n\n if (stateRef.current.text) {\n setState(_objectSpread({}, initState));\n }\n\n var selObj = window.getSelection();\n if (!selObj) return;\n selObj.removeAllRanges();\n };\n\n target.addEventListener('mouseup', mouseupHandler);\n document.addEventListener('mousedown', mousedownHandler);\n return function () {\n target.removeEventListener('mouseup', mouseupHandler);\n document.removeEventListener('mousedown', mousedownHandler);\n };\n }, [ref.current, typeof arg.current === 'function' ? undefined : arg.current]);\n\n if (hasPassedInArg) {\n return [state];\n }\n\n return [state, ref];\n}\n\nexport default useTextSelection;","import { ApolloClient } from 'apollo-client';\nimport { equal as isEqual } from '@wry/equality';\nimport { invariant } from 'ts-invariant';\nimport {\n ApolloContextValue,\n parser,\n DocumentType,\n operationName\n} from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { CommonOptions } from '../types';\n\nexport abstract class OperationData {\n public isMounted: boolean = false;\n public previousOptions: CommonOptions = {} as CommonOptions<\n TOptions\n >;\n public context: ApolloContextValue = {};\n public client: ApolloClient | undefined;\n\n private options: CommonOptions = {} as CommonOptions;\n\n constructor(options?: CommonOptions, context?: ApolloContextValue) {\n this.options = options || ({} as CommonOptions);\n this.context = context || {};\n }\n\n public getOptions(): CommonOptions {\n return this.options;\n }\n\n public setOptions(\n newOptions: CommonOptions,\n storePrevious: boolean = false\n ) {\n if (storePrevious && !isEqual(this.options, newOptions)) {\n this.previousOptions = this.options;\n }\n this.options = newOptions;\n }\n\n public abstract execute(...args: any): any;\n public abstract afterExecute(...args: any): void | (() => void);\n public abstract cleanup(): void;\n\n protected unmount() {\n this.isMounted = false;\n }\n\n protected refreshClient() {\n const client =\n (this.options && this.options.client) ||\n (this.context && this.context.client);\n\n invariant(\n !!client,\n 'Could not find \"client\" in the context or passed in as an option. ' +\n 'Wrap the root component in an , or pass an ' +\n 'ApolloClient instance in via options.'\n );\n\n let isNew = false;\n if (client !== this.client) {\n isNew = true;\n this.client = client;\n this.cleanup();\n }\n return {\n client: this.client as ApolloClient,\n isNew\n };\n }\n\n protected verifyDocumentType(document: DocumentNode, type: DocumentType) {\n const operation = parser(document);\n const requiredOperationName = operationName(type);\n const usedOperationName = operationName(operation.type);\n invariant(\n operation.type === type,\n `Running a ${requiredOperationName} requires a graphql ` +\n `${requiredOperationName}, but a ${usedOperationName} was used instead.`\n );\n }\n}\n","import {\n ApolloQueryResult,\n ApolloError,\n NetworkStatus,\n FetchMoreOptions,\n FetchMoreQueryOptions,\n UpdateQueryOptions,\n SubscribeToMoreOptions,\n} from 'apollo-client';\nimport { equal as isEqual } from '@wry/equality';\nimport {\n ApolloContextValue,\n DocumentType,\n QueryResult,\n ObservableQueryFields,\n} from '@apollo/react-common';\n\nimport {\n QueryPreviousData,\n QueryOptions,\n QueryCurrentObservable,\n QueryTuple,\n QueryLazyOptions,\n} from '../types';\nimport { OperationData } from './OperationData';\n\nexport class QueryData extends OperationData {\n public onNewData: () => void;\n\n private previousData: QueryPreviousData = {};\n private currentObservable: QueryCurrentObservable = {};\n private runLazy: boolean = false;\n private lazyOptions?: QueryLazyOptions;\n\n constructor({\n options,\n context,\n onNewData,\n }: {\n options: QueryOptions;\n context: ApolloContextValue;\n onNewData: () => void;\n }) {\n super(options, context);\n this.onNewData = onNewData;\n }\n\n public execute(): QueryResult {\n this.refreshClient();\n\n const { skip, query } = this.getOptions();\n if (skip || query !== this.previousData.query) {\n this.removeQuerySubscription();\n this.previousData.query = query;\n }\n\n this.updateObservableQuery();\n\n if (this.isMounted) this.startQuerySubscription();\n\n return this.getExecuteSsrResult() || this.getExecuteResult();\n }\n\n public executeLazy(): QueryTuple {\n return !this.runLazy\n ? [\n this.runLazyQuery,\n {\n loading: false,\n networkStatus: NetworkStatus.ready,\n called: false,\n data: undefined,\n } as QueryResult,\n ]\n : [this.runLazyQuery, this.execute()];\n }\n\n // For server-side rendering\n public fetchData(): Promise> | boolean {\n const options = this.getOptions();\n if (options.skip || options.ssr === false) return false;\n\n // currentObservable.query is already assigned the registered SSR observable in initializeObservableQuery.\n const obs = this.currentObservable.query!;\n const currentResult = obs.getCurrentResult();\n return currentResult.loading ? obs.result() : false;\n }\n\n public afterExecute({ lazy = false }: { lazy?: boolean } = {}) {\n this.isMounted = true;\n\n if (!lazy || this.runLazy) {\n this.handleErrorOrCompleted();\n }\n\n this.previousOptions = this.getOptions();\n return this.unmount.bind(this);\n }\n\n public cleanup() {\n this.removeQuerySubscription();\n delete this.currentObservable.query;\n delete this.previousData.result;\n }\n\n public getOptions() {\n const options = super.getOptions();\n\n if (this.lazyOptions) {\n options.variables = {\n ...options.variables,\n ...this.lazyOptions.variables,\n };\n options.context = {\n ...options.context,\n ...this.lazyOptions.context,\n };\n }\n\n // skip is not supported when using lazy query execution.\n if (this.runLazy) {\n delete options.skip;\n }\n\n return options;\n }\n\n public ssrInitiated() {\n return this.context && this.context.renderPromises;\n }\n\n private runLazyQuery = (options?: QueryLazyOptions) => {\n this.cleanup();\n this.runLazy = true;\n this.lazyOptions = options;\n this.onNewData();\n };\n\n private getExecuteResult = (): QueryResult => {\n const result = this.getQueryResult();\n this.startQuerySubscription();\n return result;\n };\n\n private getExecuteSsrResult() {\n const ssrDisabled = this.getOptions().ssr === false;\n const fetchDisabled = this.refreshClient().client.disableNetworkFetches;\n\n const ssrLoading = {\n loading: true,\n networkStatus: NetworkStatus.loading,\n called: true,\n data: undefined,\n stale: false,\n client: this.client,\n ...this.observableQueryFields(),\n } as QueryResult;\n\n // If SSR has been explicitly disabled, and this function has been called\n // on the server side, return the default loading state.\n if (ssrDisabled && (this.ssrInitiated() || fetchDisabled)) {\n this.previousData.result = ssrLoading;\n return ssrLoading;\n }\n\n let result;\n if (this.ssrInitiated()) {\n result =\n this.context.renderPromises!.addQueryPromise(\n this,\n this.getExecuteResult\n ) || ssrLoading;\n }\n\n return result;\n }\n\n private prepareObservableQueryOptions() {\n const options = this.getOptions();\n this.verifyDocumentType(options.query, DocumentType.Query);\n const displayName = options.displayName || 'Query';\n\n // Set the fetchPolicy to cache-first for network-only and cache-and-network\n // fetches for server side renders.\n if (\n this.ssrInitiated() &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')\n ) {\n options.fetchPolicy = 'cache-first';\n }\n\n return {\n ...options,\n displayName,\n context: options.context,\n metadata: { reactComponent: { displayName } },\n };\n }\n\n private initializeObservableQuery() {\n // See if there is an existing observable that was used to fetch the same\n // data and if so, use it instead since it will contain the proper queryId\n // to fetch the result set. This is used during SSR.\n if (this.ssrInitiated()) {\n this.currentObservable.query = this.context!.renderPromises!.getSSRObservable(\n this.getOptions()\n );\n }\n\n if (!this.currentObservable.query) {\n const observableQueryOptions = this.prepareObservableQueryOptions();\n\n this.previousData.observableQueryOptions = {\n ...observableQueryOptions,\n children: null,\n };\n this.currentObservable.query = this.refreshClient().client.watchQuery({\n ...observableQueryOptions,\n });\n\n if (this.ssrInitiated()) {\n this.context?.renderPromises?.registerSSRObservable(\n this.currentObservable.query,\n observableQueryOptions\n );\n }\n }\n }\n\n private updateObservableQuery() {\n // If we skipped initially, we may not have yet created the observable\n if (!this.currentObservable.query) {\n this.initializeObservableQuery();\n return;\n }\n\n const newObservableQueryOptions = {\n ...this.prepareObservableQueryOptions(),\n children: null,\n };\n\n if (\n !isEqual(\n newObservableQueryOptions,\n this.previousData.observableQueryOptions\n )\n ) {\n this.previousData.observableQueryOptions = newObservableQueryOptions;\n this.currentObservable\n .query!.setOptions(newObservableQueryOptions)\n // The error will be passed to the child container, so we don't\n // need to log it here. We could conceivably log something if\n // an option was set. OTOH we don't log errors w/ the original\n // query. See https://github.com/apollostack/react-apollo/issues/404\n .catch(() => {});\n }\n }\n\n private startQuerySubscription() {\n if (this.currentObservable.subscription || this.getOptions().skip) return;\n\n const obsQuery = this.currentObservable.query!;\n this.currentObservable.subscription = obsQuery.subscribe({\n next: ({ loading, networkStatus, data }) => {\n const previousResult = this.previousData.result;\n\n // Make sure we're not attempting to re-render similar results\n if (\n previousResult &&\n previousResult.loading === loading &&\n previousResult.networkStatus === networkStatus &&\n isEqual(previousResult.data, data)\n ) {\n return;\n }\n\n this.onNewData();\n },\n error: (error) => {\n this.resubscribeToQuery();\n if (!error.hasOwnProperty('graphQLErrors')) throw error;\n\n const previousResult = this.previousData.result;\n if (\n (previousResult && previousResult.loading) ||\n !isEqual(error, this.previousData.error)\n ) {\n this.previousData.error = error;\n this.onNewData();\n }\n },\n });\n }\n\n private resubscribeToQuery() {\n this.removeQuerySubscription();\n\n // Unfortunately, if `lastError` is set in the current\n // `observableQuery` when the subscription is re-created,\n // the subscription will immediately receive the error, which will\n // cause it to terminate again. To avoid this, we first clear\n // the last error/result from the `observableQuery` before re-starting\n // the subscription, and restore it afterwards (so the subscription\n // has a chance to stay open).\n const lastError = this.currentObservable.query!.getLastError();\n const lastResult = this.currentObservable.query!.getLastResult();\n this.currentObservable.query!.resetLastResults();\n this.startQuerySubscription();\n Object.assign(this.currentObservable.query!, {\n lastError,\n lastResult,\n });\n }\n\n private getQueryResult(): QueryResult {\n let result: any = this.observableQueryFields();\n const options = this.getOptions();\n\n // When skipping a query (ie. we're not querying for data but still want\n // to render children), make sure the `data` is cleared out and\n // `loading` is set to `false` (since we aren't loading anything).\n if (options.skip) {\n result = {\n ...result,\n data: undefined,\n error: undefined,\n loading: false,\n called: true,\n };\n } else {\n // Fetch the current result (if any) from the store.\n const currentResult = this.currentObservable.query!.getCurrentResult();\n const { loading, partial, networkStatus, errors } = currentResult;\n let { error, data } = currentResult;\n\n // Until a set naming convention for networkError and graphQLErrors is\n // decided upon, we map errors (graphQLErrors) to the error options.\n if (errors && errors.length > 0) {\n error = new ApolloError({ graphQLErrors: errors });\n }\n\n result = {\n ...result,\n loading,\n networkStatus,\n error,\n called: true,\n };\n\n if (loading) {\n const previousData =\n this.previousData.result && this.previousData.result.data;\n result.data =\n previousData && data\n ? {\n ...previousData,\n ...data,\n }\n : previousData || data;\n } else if (error) {\n Object.assign(result, {\n data: (this.currentObservable.query!.getLastResult() || ({} as any))\n .data,\n });\n } else {\n const { fetchPolicy } = this.currentObservable.query!.options;\n const { partialRefetch } = options;\n if (\n partialRefetch &&\n !data &&\n partial &&\n fetchPolicy !== 'cache-only'\n ) {\n // When a `Query` component is mounted, and a mutation is executed\n // that returns the same ID as the mounted `Query`, but has less\n // fields in its result, Apollo Client's `QueryManager` returns the\n // data as `undefined` since a hit can't be found in the cache.\n // This can lead to application errors when the UI elements rendered by\n // the original `Query` component are expecting certain data values to\n // exist, and they're all of a sudden stripped away. To help avoid\n // this we'll attempt to refetch the `Query` data.\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.loading,\n });\n result.refetch();\n return result;\n }\n\n result.data = data;\n }\n }\n\n result.client = this.client;\n this.previousData.loading =\n (this.previousData.result && this.previousData.result.loading) || false;\n this.previousData.result = result;\n\n // Any query errors that exist are now available in `result`, so we'll\n // remove the original errors from the `ObservableQuery` query store to\n // make sure they aren't re-displayed on subsequent (potentially error\n // free) requests/responses.\n this.currentObservable.query &&\n this.currentObservable.query.resetQueryStoreErrors();\n\n return result;\n }\n\n private handleErrorOrCompleted() {\n const obsQuery = this.currentObservable.query;\n if (!obsQuery || !this.previousData.result) return;\n\n const { data, loading, error } = this.previousData.result;\n\n if (!loading) {\n const { query, variables, onCompleted, onError } = this.getOptions();\n\n // No changes, so we won't call onError/onCompleted.\n if (\n this.previousOptions &&\n !this.previousData.loading &&\n isEqual(this.previousOptions.query, query) &&\n isEqual(this.previousOptions.variables, variables)\n ) {\n return;\n }\n\n if (onCompleted && !error) {\n onCompleted(data);\n } else if (onError && error) {\n onError(error);\n }\n }\n }\n\n private removeQuerySubscription() {\n if (this.currentObservable.subscription) {\n this.currentObservable.subscription.unsubscribe();\n delete this.currentObservable.subscription;\n }\n }\n\n private obsRefetch = (variables?: TVariables) =>\n this.currentObservable.query!.refetch(variables);\n\n private obsFetchMore = (\n fetchMoreOptions: FetchMoreQueryOptions &\n FetchMoreOptions\n ) => this.currentObservable.query!.fetchMore(fetchMoreOptions);\n\n private obsUpdateQuery = (\n mapFn: (\n previousQueryResult: TData,\n options: UpdateQueryOptions\n ) => TData\n ) => this.currentObservable.query!.updateQuery(mapFn);\n\n private obsStartPolling = (pollInterval: number) => {\n this.currentObservable &&\n this.currentObservable.query! &&\n this.currentObservable.query!.startPolling(pollInterval);\n };\n\n private obsStopPolling = () => {\n this.currentObservable &&\n this.currentObservable.query! &&\n this.currentObservable.query!.stopPolling();\n };\n\n private obsSubscribeToMore = <\n TSubscriptionData = TData,\n TSubscriptionVariables = TVariables\n >(\n options: SubscribeToMoreOptions<\n TData,\n TSubscriptionVariables,\n TSubscriptionData\n >\n ) => this.currentObservable.query!.subscribeToMore(options);\n\n private observableQueryFields() {\n const observable = this.currentObservable.query!;\n return {\n variables: observable.variables,\n refetch: this.obsRefetch,\n fetchMore: this.obsFetchMore,\n updateQuery: this.obsUpdateQuery,\n startPolling: this.obsStartPolling,\n stopPolling: this.obsStopPolling,\n subscribeToMore: this.obsSubscribeToMore,\n } as ObservableQueryFields;\n }\n}\n","import { ApolloError } from 'apollo-client';\nimport { equal as isEqual } from '@wry/equality';\nimport {\n ApolloContextValue,\n DocumentType,\n OperationVariables,\n ExecutionResult,\n MutationFunctionOptions,\n MutationResult\n} from '@apollo/react-common';\n\nimport { MutationOptions, MutationTuple } from '../types';\nimport { OperationData } from './OperationData';\n\nexport class MutationData<\n TData = any,\n TVariables = OperationVariables\n> extends OperationData {\n private mostRecentMutationId: number;\n private result: MutationResult;\n private previousResult?: MutationResult;\n private setResult: (result: MutationResult) => any;\n\n constructor({\n options,\n context,\n result,\n setResult\n }: {\n options: MutationOptions;\n context: ApolloContextValue;\n result: MutationResult;\n setResult: (result: MutationResult) => any;\n }) {\n super(options, context);\n this.verifyDocumentType(options.mutation, DocumentType.Mutation);\n this.result = result;\n this.setResult = setResult;\n this.mostRecentMutationId = 0;\n }\n\n public execute(result: MutationResult) {\n this.isMounted = true;\n this.verifyDocumentType(this.getOptions().mutation, DocumentType.Mutation);\n result.client = this.refreshClient().client;\n return [this.runMutation, result] as MutationTuple;\n }\n\n public afterExecute() {\n this.isMounted = true;\n return this.unmount.bind(this);\n }\n\n public cleanup() {\n // No cleanup required.\n }\n\n private runMutation = (\n mutationFunctionOptions: MutationFunctionOptions<\n TData,\n TVariables\n > = {} as MutationFunctionOptions\n ) => {\n this.onMutationStart();\n const mutationId = this.generateNewMutationId();\n\n return this.mutate(mutationFunctionOptions)\n .then((response: ExecutionResult) => {\n this.onMutationCompleted(response, mutationId);\n return response;\n })\n .catch((error: ApolloError) => {\n this.onMutationError(error, mutationId);\n if (!this.getOptions().onError) throw error;\n });\n };\n\n private mutate(\n mutationFunctionOptions: MutationFunctionOptions\n ) {\n const {\n mutation,\n variables,\n optimisticResponse,\n update,\n context: mutationContext = {},\n awaitRefetchQueries = false,\n fetchPolicy\n } = this.getOptions();\n const mutateOptions = { ...mutationFunctionOptions };\n\n const mutateVariables = Object.assign(\n {},\n variables,\n mutateOptions.variables\n );\n delete mutateOptions.variables;\n\n return this.refreshClient().client.mutate({\n mutation,\n optimisticResponse,\n refetchQueries:\n mutateOptions.refetchQueries || this.getOptions().refetchQueries,\n awaitRefetchQueries,\n update,\n context: mutationContext,\n fetchPolicy,\n variables: mutateVariables,\n ...mutateOptions\n });\n }\n\n private onMutationStart() {\n if (!this.result.loading && !this.getOptions().ignoreResults) {\n this.updateResult({\n loading: true,\n error: undefined,\n data: undefined,\n called: true\n });\n }\n }\n\n private onMutationCompleted(\n response: ExecutionResult,\n mutationId: number\n ) {\n const { onCompleted, ignoreResults } = this.getOptions();\n\n const { data, errors } = response;\n const error =\n errors && errors.length > 0\n ? new ApolloError({ graphQLErrors: errors })\n : undefined;\n\n const callOncomplete = () =>\n onCompleted ? onCompleted(data as TData) : null;\n\n if (this.isMostRecentMutation(mutationId) && !ignoreResults) {\n this.updateResult({\n called: true,\n loading: false,\n data,\n error\n });\n }\n callOncomplete();\n }\n\n private onMutationError(error: ApolloError, mutationId: number) {\n const { onError } = this.getOptions();\n\n if (this.isMostRecentMutation(mutationId)) {\n this.updateResult({\n loading: false,\n error,\n data: undefined,\n called: true\n });\n }\n\n if (onError) {\n onError(error);\n }\n }\n\n private generateNewMutationId(): number {\n return ++this.mostRecentMutationId;\n }\n\n private isMostRecentMutation(mutationId: number) {\n return this.mostRecentMutationId === mutationId;\n }\n\n private updateResult(result: MutationResult) {\n if (\n this.isMounted &&\n (!this.previousResult || !isEqual(this.previousResult, result))\n ) {\n this.setResult(result);\n this.previousResult = result;\n }\n }\n}\n","import { useContext, useState, useRef, useEffect } from 'react';\nimport { getApolloContext, OperationVariables } from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { MutationHookOptions, MutationTuple } from './types';\nimport { MutationData } from './data/MutationData';\n\nexport function useMutation(\n mutation: DocumentNode,\n options?: MutationHookOptions\n): MutationTuple {\n const context = useContext(getApolloContext());\n const [result, setResult] = useState({ called: false, loading: false });\n const updatedOptions = options ? { ...options, mutation } : { mutation };\n\n const mutationDataRef = useRef>();\n function getMutationDataRef() {\n if (!mutationDataRef.current) {\n mutationDataRef.current = new MutationData({\n options: updatedOptions,\n context,\n result,\n setResult\n });\n }\n return mutationDataRef.current;\n }\n\n const mutationData = getMutationDataRef();\n mutationData.setOptions(updatedOptions);\n mutationData.context = context;\n\n useEffect(() => mutationData.afterExecute());\n\n return mutationData.execute(result);\n}\n","import { equal as isEqual } from '@wry/equality';\nimport { ApolloContextValue, SubscriptionResult } from '@apollo/react-common';\n\nimport { OperationData } from './OperationData';\nimport { SubscriptionCurrentObservable, SubscriptionOptions } from '../types';\n\nexport class SubscriptionData<\n TData = any,\n TVariables = any\n> extends OperationData> {\n private setResult: any;\n private currentObservable: SubscriptionCurrentObservable = {};\n\n constructor({\n options,\n context,\n setResult\n }: {\n options: SubscriptionOptions;\n context: ApolloContextValue;\n setResult: any;\n }) {\n super(options, context);\n this.setResult = setResult;\n this.initialize(options);\n }\n\n public execute(result: SubscriptionResult) {\n if (this.getOptions().skip === true) {\n this.cleanup();\n return {\n loading: false,\n error: undefined,\n data: undefined,\n variables: this.getOptions().variables\n };\n }\n\n let currentResult = result;\n if (this.refreshClient().isNew) {\n currentResult = this.getLoadingResult();\n }\n\n let { shouldResubscribe } = this.getOptions();\n if (typeof shouldResubscribe === 'function') {\n shouldResubscribe = !!shouldResubscribe(this.getOptions());\n }\n\n if (\n shouldResubscribe !== false &&\n this.previousOptions &&\n Object.keys(this.previousOptions).length > 0 &&\n (this.previousOptions.subscription !== this.getOptions().subscription ||\n !isEqual(this.previousOptions.variables, this.getOptions().variables) ||\n this.previousOptions.skip !== this.getOptions().skip)\n ) {\n this.cleanup();\n currentResult = this.getLoadingResult();\n }\n\n this.initialize(this.getOptions());\n this.startSubscription();\n\n this.previousOptions = this.getOptions();\n return { ...currentResult, variables: this.getOptions().variables };\n }\n\n public afterExecute() {\n this.isMounted = true;\n }\n\n public cleanup() {\n this.endSubscription();\n delete this.currentObservable.query;\n }\n\n private initialize(options: SubscriptionOptions) {\n if (this.currentObservable.query || this.getOptions().skip === true) return;\n this.currentObservable.query = this.refreshClient().client.subscribe({\n query: options.subscription,\n variables: options.variables,\n fetchPolicy: options.fetchPolicy\n });\n }\n\n private startSubscription() {\n if (this.currentObservable.subscription) return;\n this.currentObservable.subscription = this.currentObservable.query!.subscribe(\n {\n next: this.updateCurrentData.bind(this),\n error: this.updateError.bind(this),\n complete: this.completeSubscription.bind(this)\n }\n );\n }\n\n private getLoadingResult() {\n return {\n loading: true,\n error: undefined,\n data: undefined\n };\n }\n\n private updateResult(result: SubscriptionResult) {\n if (this.isMounted) {\n this.setResult(result);\n }\n }\n\n private updateCurrentData(result: SubscriptionResult) {\n const { onSubscriptionData } = this.getOptions();\n\n this.updateResult({\n data: result.data,\n loading: false,\n error: undefined\n });\n\n if (onSubscriptionData) {\n onSubscriptionData({\n client: this.refreshClient().client,\n subscriptionData: result\n });\n }\n }\n\n private updateError(error: any) {\n this.updateResult({\n error,\n loading: false\n });\n }\n\n private completeSubscription() {\n const { onSubscriptionComplete } = this.getOptions();\n if (onSubscriptionComplete) onSubscriptionComplete();\n this.endSubscription();\n }\n\n private endSubscription() {\n if (this.currentObservable.subscription) {\n this.currentObservable.subscription.unsubscribe();\n delete this.currentObservable.subscription;\n }\n }\n}\n","import { useContext, useState, useRef, useEffect } from 'react';\nimport { DocumentNode } from 'graphql';\nimport { getApolloContext, OperationVariables } from '@apollo/react-common';\n\nimport { SubscriptionHookOptions } from './types';\nimport { SubscriptionData } from './data/SubscriptionData';\n\nexport function useSubscription(\n subscription: DocumentNode,\n options?: SubscriptionHookOptions\n) {\n const context = useContext(getApolloContext());\n const updatedOptions = options\n ? { ...options, subscription }\n : { subscription };\n const [result, setResult] = useState({\n loading: !updatedOptions.skip,\n error: undefined,\n data: undefined\n });\n\n const subscriptionDataRef = useRef>();\n function getSubscriptionDataRef() {\n if (!subscriptionDataRef.current) {\n subscriptionDataRef.current = new SubscriptionData({\n options: updatedOptions,\n context,\n setResult\n });\n }\n return subscriptionDataRef.current;\n }\n\n const subscriptionData = getSubscriptionDataRef();\n subscriptionData.setOptions(updatedOptions, true);\n subscriptionData.context = context;\n\n useEffect(() => subscriptionData.afterExecute());\n useEffect(() => subscriptionData.cleanup.bind(subscriptionData), []);\n\n return subscriptionData.execute(result);\n}\n","import { ObservableQuery } from 'apollo-client';\nimport { QueryOptions } from '../types';\nimport { DocumentNode } from 'graphql';\nimport { QueryData } from '../data/QueryData';\n\ntype QueryInfo = {\n seen: boolean;\n observable: ObservableQuery | null;\n};\n\nfunction makeDefaultQueryInfo(): QueryInfo {\n return {\n seen: false,\n observable: null\n };\n}\n\nexport class RenderPromises {\n // Map from Query component instances to pending fetchData promises.\n private queryPromises = new Map, Promise>();\n\n // Two-layered map from (query document, stringified variables) to QueryInfo\n // objects. These QueryInfo objects are intended to survive through the whole\n // getMarkupFromTree process, whereas specific Query instances do not survive\n // beyond a single call to renderToStaticMarkup.\n private queryInfoTrie = new Map>();\n\n // Registers the server side rendered observable.\n public registerSSRObservable(\n observable: ObservableQuery,\n props: QueryOptions\n ) {\n this.lookupQueryInfo(props).observable = observable;\n }\n\n // Get's the cached observable that matches the SSR Query instances query and variables.\n public getSSRObservable(\n props: QueryOptions\n ) {\n return this.lookupQueryInfo(props).observable;\n }\n\n public addQueryPromise(\n queryInstance: QueryData,\n finish: () => React.ReactNode\n ): React.ReactNode {\n const info = this.lookupQueryInfo(queryInstance.getOptions());\n if (!info.seen) {\n this.queryPromises.set(\n queryInstance.getOptions(),\n new Promise(resolve => {\n resolve(queryInstance.fetchData());\n })\n );\n // Render null to abandon this subtree for this rendering, so that we\n // can wait for the data to arrive.\n return null;\n }\n return finish();\n }\n\n public hasPromises() {\n return this.queryPromises.size > 0;\n }\n\n public consumeAndAwaitPromises() {\n const promises: Promise[] = [];\n this.queryPromises.forEach((promise, queryInstance) => {\n // Make sure we never try to call fetchData for this query document and\n // these variables again. Since the queryInstance objects change with\n // every rendering, deduplicating them by query and variables is the\n // best we can do. If a different Query component happens to have the\n // same query document and variables, it will be immediately rendered\n // by calling finish() in addQueryPromise, which could result in the\n // rendering of an unwanted loading state, but that's not nearly as bad\n // as getting stuck in an infinite rendering loop because we kept calling\n // queryInstance.fetchData for the same Query component indefinitely.\n this.lookupQueryInfo(queryInstance).seen = true;\n promises.push(promise);\n });\n this.queryPromises.clear();\n return Promise.all(promises);\n }\n\n private lookupQueryInfo(\n props: QueryOptions\n ): QueryInfo {\n const { queryInfoTrie } = this;\n const { query, variables } = props;\n const varMap = queryInfoTrie.get(query) || new Map();\n if (!queryInfoTrie.has(query)) queryInfoTrie.set(query, varMap);\n const variablesString = JSON.stringify(variables);\n const info = varMap.get(variablesString) || makeDefaultQueryInfo();\n if (!varMap.has(variablesString)) varMap.set(variablesString, info);\n return info;\n }\n}\n","import Observable from 'zen-observable-ts';\n\nimport { GraphQLRequest, Operation } from './types';\nimport { ApolloLink } from './link';\n\nimport { getOperationName } from 'apollo-utilities';\nimport { invariant, InvariantError } from 'ts-invariant';\nexport { getOperationName };\n\nexport function validateOperation(operation: GraphQLRequest): GraphQLRequest {\n const OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (let key of Object.keys(operation)) {\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw new InvariantError(`illegal argument: ${key}`);\n }\n }\n\n return operation;\n}\n\nexport class LinkError extends Error {\n public link: ApolloLink;\n constructor(message?: string, link?: ApolloLink) {\n super(message);\n this.link = link;\n }\n}\n\nexport function isTerminating(link: ApolloLink): boolean {\n return link.request.length <= 1;\n}\n\nexport function toPromise(observable: Observable): Promise {\n let completed = false;\n return new Promise((resolve, reject) => {\n observable.subscribe({\n next: data => {\n if (completed) {\n invariant.warn(\n `Promise Wrapper does not support multiple results from Observable`,\n );\n } else {\n completed = true;\n resolve(data);\n }\n },\n error: reject,\n });\n });\n}\n\n// backwards compat\nexport const makePromise = toPromise;\n\nexport function fromPromise(promise: Promise): Observable {\n return new Observable(observer => {\n promise\n .then((value: T) => {\n observer.next(value);\n observer.complete();\n })\n .catch(observer.error.bind(observer));\n });\n}\n\nexport function fromError(errorValue: any): Observable {\n return new Observable(observer => {\n observer.error(errorValue);\n });\n}\n\nexport function transformOperation(operation: GraphQLRequest): GraphQLRequest {\n const transformedOperation: GraphQLRequest = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n\n // best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query)\n : '';\n }\n\n return transformedOperation as Operation;\n}\n\nexport function createOperation(\n starting: any,\n operation: GraphQLRequest,\n): Operation {\n let context = { ...starting };\n const setContext = next => {\n if (typeof next === 'function') {\n context = { ...context, ...next(context) };\n } else {\n context = { ...context, ...next };\n }\n };\n const getContext = () => ({ ...context });\n\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n\n Object.defineProperty(operation, 'toKey', {\n enumerable: false,\n value: () => getKey(operation),\n });\n\n return operation as Operation;\n}\n\nexport function getKey(operation: GraphQLRequest) {\n // XXX We're assuming here that query and variables will be serialized in\n // the same order, which might not always be true.\n const { query, variables, operationName } = operation;\n return JSON.stringify([operationName, query, variables]);\n}\n","import Observable from 'zen-observable-ts';\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport {\n GraphQLRequest,\n NextLink,\n Operation,\n RequestHandler,\n FetchResult,\n} from './types';\n\nimport {\n validateOperation,\n isTerminating,\n LinkError,\n transformOperation,\n createOperation,\n} from './linkUtils';\n\nfunction passthrough(op, forward) {\n return forward ? forward(op) : Observable.of();\n}\n\nfunction toLink(handler: RequestHandler | ApolloLink) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\n\nexport function empty(): ApolloLink {\n return new ApolloLink(() => Observable.of());\n}\n\nexport function from(links: ApolloLink[]): ApolloLink {\n if (links.length === 0) return empty();\n return links.map(toLink).reduce((x, y) => x.concat(y));\n}\n\nexport function split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n): ApolloLink {\n const leftLink = toLink(left);\n const rightLink = toLink(right || new ApolloLink(passthrough));\n\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(operation => {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n } else {\n return new ApolloLink((operation, forward) => {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n}\n\n// join two Links together\nexport const concat = (\n first: ApolloLink | RequestHandler,\n second: ApolloLink | RequestHandler,\n) => {\n const firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n invariant.warn(\n new LinkError(\n `You are calling concat on a terminating link, which will have no effect`,\n firstLink,\n ),\n );\n return firstLink;\n }\n const nextLink = toLink(second);\n\n if (isTerminating(nextLink)) {\n return new ApolloLink(\n operation =>\n firstLink.request(\n operation,\n op => nextLink.request(op) || Observable.of(),\n ) || Observable.of(),\n );\n } else {\n return new ApolloLink((operation, forward) => {\n return (\n firstLink.request(operation, op => {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of()\n );\n });\n }\n};\n\nexport class ApolloLink {\n public static empty = empty;\n public static from = from;\n public static split = split;\n public static execute = execute;\n\n constructor(request?: RequestHandler) {\n if (request) this.request = request;\n }\n\n public split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n ): ApolloLink {\n return this.concat(split(test, left, right || new ApolloLink(passthrough)));\n }\n\n public concat(next: ApolloLink | RequestHandler): ApolloLink {\n return concat(this, next);\n }\n\n public request(\n operation: Operation,\n forward?: NextLink,\n ): Observable | null {\n throw new InvariantError('request is not implemented');\n }\n}\n\nexport function execute(\n link: ApolloLink,\n operation: GraphQLRequest,\n): Observable {\n return (\n link.request(\n createOperation(\n operation.context,\n transformOperation(validateOperation(operation)),\n ),\n ) || Observable.of()\n );\n}\n","const { toString, hasOwnProperty } = Object.prototype;\nconst previousComparisons = new Map>();\n\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a: any, b: any): boolean {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\n// Allow default imports as well.\nexport default equal;\n\nfunction check(a: any, b: any): boolean {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n\n // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n if (aTag !== bTag) {\n return false;\n }\n\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length) return false;\n // Fall through to object case...\n case '[object Object]': {\n if (previouslyCompared(a, b)) return true;\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false;\n\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a) return b !== b;\n // Fall through to shared +a === +b case...\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n\n case '[object RegExp]':\n case '[object String]':\n return a == `${b}`;\n\n case '[object Map]':\n case '[object Set]': {\n if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n\n while (true) {\n const info = aIterator.next();\n if (info.done) break;\n\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n\n // However, we care about deep equality of values only when dealing\n // with Map structures.\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n // Otherwise the values are not equal.\n return false;\n}\n\nfunction previouslyCompared(a: object, b: object): boolean {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n let bSet = previousComparisons.get(a);\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b)) return true;\n } else {\n previousComparisons.set(a, bSet = new Set);\n }\n bSet.add(b);\n return false;\n}\n","/* tslint:disable */\n\nimport zenObservable from 'zen-observable';\n\nnamespace Observable {\n\n}\n\nimport { ZenObservable } from './types';\n\nexport { ZenObservable };\n\nexport type Observer = ZenObservable.Observer;\nexport type Subscriber = ZenObservable.Subscriber;\nexport type ObservableLike = ZenObservable.ObservableLike;\n\nexport const Observable: {\n new (subscriber: Subscriber): Observable;\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n} = zenObservable;\n\nexport interface Observable {\n subscribe(\n observerOrNext: ((value: T) => void) | ZenObservable.Observer,\n error?: (error: any) => void,\n complete?: () => void,\n ): ZenObservable.Subscription;\n\n forEach(fn: (value: T) => void): Promise;\n\n map(fn: (value: T) => R): Observable;\n\n filter(fn: (value: T) => boolean): Observable;\n\n reduce(\n fn: (previousValue: R | T, currentValue: T) => R | T,\n initialValue?: R | T,\n ): Observable;\n\n flatMap(fn: (value: T) => ZenObservable.ObservableLike): Observable;\n\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n}\n","import React from 'react';\nimport ApolloClient from 'apollo-client';\n\nexport interface ApolloContextValue {\n client?: ApolloClient;\n renderPromises?: Record;\n}\n\nlet apolloContext: React.Context;\n\nexport function getApolloContext() {\n if (!apolloContext) {\n apolloContext = React.createContext({});\n }\n return apolloContext;\n}\n\nexport function resetApolloContext() {\n apolloContext = React.createContext({});\n}\n","import {\n DocumentNode,\n DefinitionNode,\n VariableDefinitionNode,\n OperationDefinitionNode\n} from 'graphql';\nimport { invariant } from 'ts-invariant';\n\nexport enum DocumentType {\n Query,\n Mutation,\n Subscription\n}\n\nexport interface IDocumentDefinition {\n type: DocumentType;\n name: string;\n variables: ReadonlyArray;\n}\n\nconst cache = new Map();\n\nexport function operationName(type: DocumentType) {\n let name;\n switch (type) {\n case DocumentType.Query:\n name = 'Query';\n break;\n case DocumentType.Mutation:\n name = 'Mutation';\n break;\n case DocumentType.Subscription:\n name = 'Subscription';\n break;\n }\n return name;\n}\n\n// This parser is mostly used to saftey check incoming documents.\nexport function parser(document: DocumentNode): IDocumentDefinition {\n const cached = cache.get(document);\n if (cached) return cached;\n\n let variables, type, name;\n\n invariant(\n !!document && !!document.kind,\n `Argument of ${document} passed to parser was not a valid GraphQL ` +\n `DocumentNode. You may need to use 'graphql-tag' or another method ` +\n `to convert your operation into a document`\n );\n\n const fragments = document.definitions.filter(\n (x: DefinitionNode) => x.kind === 'FragmentDefinition'\n );\n\n const queries = document.definitions.filter(\n (x: DefinitionNode) =>\n x.kind === 'OperationDefinition' && x.operation === 'query'\n );\n\n const mutations = document.definitions.filter(\n (x: DefinitionNode) =>\n x.kind === 'OperationDefinition' && x.operation === 'mutation'\n );\n\n const subscriptions = document.definitions.filter(\n (x: DefinitionNode) =>\n x.kind === 'OperationDefinition' && x.operation === 'subscription'\n );\n\n invariant(\n !fragments.length ||\n (queries.length || mutations.length || subscriptions.length),\n `Passing only a fragment to 'graphql' is not yet supported. ` +\n `You must include a query, subscription or mutation as well`\n );\n\n invariant(\n queries.length + mutations.length + subscriptions.length <= 1,\n `react-apollo only supports a query, subscription, or a mutation per HOC. ` +\n `${document} had ${queries.length} queries, ${subscriptions.length} ` +\n `subscriptions and ${mutations.length} mutations. ` +\n `You can use 'compose' to join multiple operation types to a component`\n );\n\n type = queries.length ? DocumentType.Query : DocumentType.Mutation;\n if (!queries.length && !mutations.length) type = DocumentType.Subscription;\n\n const definitions = queries.length\n ? queries\n : mutations.length\n ? mutations\n : subscriptions;\n\n invariant(\n definitions.length === 1,\n `react-apollo only supports one definition per HOC. ${document} had ` +\n `${definitions.length} definitions. ` +\n `You can use 'compose' to join multiple operation types to a component`\n );\n\n const definition = definitions[0] as OperationDefinitionNode;\n variables = definition.variableDefinitions || [];\n\n if (definition.name && definition.name.kind === 'Name') {\n name = definition.name.value;\n } else {\n name = 'data'; // fallback to using data if no name\n }\n\n const payload = { name, type, variables };\n cache.set(document, payload);\n return payload;\n}\n","import React from 'react';\nimport ApolloClient from 'apollo-client';\nimport { invariant } from 'ts-invariant';\n\nimport { getApolloContext } from './ApolloContext';\n\nexport interface ApolloProviderProps {\n client: ApolloClient;\n children: React.ReactNode | React.ReactNode[] | null;\n}\n\nexport const ApolloProvider: React.FC> = ({\n client,\n children\n}) => {\n const ApolloContext = getApolloContext();\n return (\n \n {(context = {}) => {\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client });\n }\n\n invariant(\n context.client,\n 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.'\n );\n\n return (\n \n {children}\n \n );\n }}\n \n );\n};\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","var parser = require('graphql/language/parser');\n\nvar parse = parser.parse;\n\n// Strip insignificant whitespace\n// Note that this could do a lot more, such as reorder fields etc.\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\n\n// A map docString -> graphql document\nvar docCache = {};\n\n// A map fragmentName -> [normalized source]\nvar fragmentSourceMap = {};\n\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\n\n// For testing.\nfunction resetCaches() {\n docCache = {};\n fragmentSourceMap = {};\n}\n\n// Take a unstripped parsed document (query/mutation or even fragment), and\n// check all fragment definitions, checking for name->source uniqueness.\n// We also want to make sure only unique fragments exist in the document.\nvar printFragmentWarnings = true;\nfunction processFragments(ast) {\n var astFragmentMap = {};\n var definitions = [];\n\n for (var i = 0; i < ast.definitions.length; i++) {\n var fragmentDefinition = ast.definitions[i];\n\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n\n // We know something about this fragment\n if (fragmentSourceMap.hasOwnProperty(fragmentName) && !fragmentSourceMap[fragmentName][sourceKey]) {\n\n // this is a problem because the app developer is trying to register another fragment with\n // the same name as one previously registered. So, we tell them about it.\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n\n fragmentSourceMap[fragmentName][sourceKey] = true;\n\n } else if (!fragmentSourceMap.hasOwnProperty(fragmentName)) {\n fragmentSourceMap[fragmentName] = {};\n fragmentSourceMap[fragmentName][sourceKey] = true;\n }\n\n if (!astFragmentMap[sourceKey]) {\n astFragmentMap[sourceKey] = true;\n definitions.push(fragmentDefinition);\n }\n } else {\n definitions.push(fragmentDefinition);\n }\n }\n\n ast.definitions = definitions;\n return ast;\n}\n\nfunction disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\n\nfunction stripLoc(doc, removeLocAtThisLevel) {\n var docType = Object.prototype.toString.call(doc);\n\n if (docType === '[object Array]') {\n return doc.map(function (d) {\n return stripLoc(d, removeLocAtThisLevel);\n });\n }\n\n if (docType !== '[object Object]') {\n throw new Error('Unexpected input.');\n }\n\n // We don't want to remove the root loc field so we can use it\n // for fragment substitution (see below)\n if (removeLocAtThisLevel && doc.loc) {\n delete doc.loc;\n }\n\n // https://github.com/apollographql/graphql-tag/issues/40\n if (doc.loc) {\n delete doc.loc.startToken;\n delete doc.loc.endToken;\n }\n\n var keys = Object.keys(doc);\n var key;\n var value;\n var valueType;\n\n for (key in keys) {\n if (keys.hasOwnProperty(key)) {\n value = doc[keys[key]];\n valueType = Object.prototype.toString.call(value);\n\n if (valueType === '[object Object]' || valueType === '[object Array]') {\n doc[keys[key]] = stripLoc(value, true);\n }\n }\n }\n\n return doc;\n}\n\nvar experimentalFragmentVariables = false;\nfunction parseDocument(doc) {\n var cacheKey = normalize(doc);\n\n if (docCache[cacheKey]) {\n return docCache[cacheKey];\n }\n\n var parsed = parse(doc, { experimentalFragmentVariables: experimentalFragmentVariables });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n\n // check that all \"new\" fragments inside the documents are consistent with\n // existing fragments of the same name\n parsed = processFragments(parsed);\n parsed = stripLoc(parsed, false);\n docCache[cacheKey] = parsed;\n\n return parsed;\n}\n\nfunction enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\n\nfunction disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\n\n// XXX This should eventually disallow arbitrary string interpolation, like Relay does\nfunction gql(/* arguments */) {\n var args = Array.prototype.slice.call(arguments);\n\n var literals = args[0];\n\n // We always get literals[0] and then matching post literals for each arg given\n var result = (typeof(literals) === \"string\") ? literals : literals[0];\n\n for (var i = 1; i < args.length; i++) {\n if (args[i] && args[i].kind && args[i].kind === 'Document') {\n result += args[i].loc.source.body;\n } else {\n result += args[i];\n }\n\n result += literals[i];\n }\n\n return parseDocument(result);\n}\n\n// Support typescript, which isn't as nice as Babel about default exports\ngql.default = gql;\ngql.resetCaches = resetCaches;\ngql.disableFragmentWarnings = disableFragmentWarnings;\ngql.enableExperimentalFragmentVariables = enableExperimentalFragmentVariables;\ngql.disableExperimentalFragmentVariables = disableExperimentalFragmentVariables;\n\nmodule.exports = gql;\n","import inspect from '../jsutils/inspect';\nexport var QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n InterfaceTypeDefinition: ['description', 'name', 'directives', 'fields'],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node a specific kind.\n *\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n * a specific kind.\n *\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n * visit(ast, {\n * enter: {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * },\n * leave: {\n * Kind(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n */\n\nexport function visit(root, visitor) {\n var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n\n /* eslint-disable no-undef-init */\n var stack = undefined;\n var inArray = Array.isArray(root);\n var keys = [root];\n var index = -1;\n var edits = [];\n var node = undefined;\n var key = undefined;\n var parent = undefined;\n var path = [];\n var ancestors = [];\n var newRoot = root;\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n var isLeaving = index === keys.length;\n var isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n } else {\n var clone = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n clone[k] = node[k];\n }\n\n node = clone;\n }\n\n var editOffset = 0;\n\n for (var ii = 0; ii < edits.length; ii++) {\n var editKey = edits[ii][0];\n var editValue = edits[ii][1];\n\n if (inArray) {\n editKey -= editOffset;\n }\n\n if (inArray && editValue === null) {\n node.splice(editKey, 1);\n editOffset++;\n } else {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else {\n key = parent ? inArray ? index : keys[index] : undefined;\n node = parent ? parent[key] : newRoot;\n\n if (node === null || node === undefined) {\n continue;\n }\n\n if (parent) {\n path.push(key);\n }\n }\n\n var result = void 0;\n\n if (!Array.isArray(node)) {\n if (!isNode(node)) {\n throw new Error('Invalid AST Node: ' + inspect(node));\n }\n\n var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n if (visitFn) {\n result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n stack = {\n inArray: inArray,\n index: index,\n keys: keys,\n edits: edits,\n prev: stack\n };\n inArray = Array.isArray(node);\n keys = inArray ? node : visitorKeys[node.kind] || [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n newRoot = edits[edits.length - 1][1];\n }\n\n return newRoot;\n}\n\nfunction isNode(maybeNode) {\n return Boolean(maybeNode && typeof maybeNode.kind === 'string');\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\n\nexport function visitInParallel(visitors) {\n var skipping = new Array(visitors.length);\n return {\n enter: function enter(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (!skipping[i]) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n }\n },\n leave: function leave(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (!skipping[i]) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n true);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n }\n };\n}\n/**\n * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n */\n\nexport function visitWithTypeInfo(typeInfo, visitor) {\n return {\n enter: function enter(node) {\n typeInfo.enter(node);\n var fn = getVisitFn(visitor, node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitor, arguments);\n\n if (result !== undefined) {\n typeInfo.leave(node);\n\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n\n return result;\n }\n },\n leave: function leave(node) {\n var fn = getVisitFn(visitor, node.kind,\n /* isLeaving */\n true);\n var result;\n\n if (fn) {\n result = fn.apply(visitor, arguments);\n }\n\n typeInfo.leave(node);\n return result;\n }\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n var kindVisitor = visitor[kind];\n\n if (kindVisitor) {\n if (!isLeaving && typeof kindVisitor === 'function') {\n // { Kind() {} }\n return kindVisitor;\n }\n\n var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n if (typeof kindSpecificVisitor === 'function') {\n // { Kind: { enter() {}, leave() {} } }\n return kindSpecificVisitor;\n }\n } else {\n var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n if (specificVisitor) {\n if (typeof specificVisitor === 'function') {\n // { enter() {}, leave() {} }\n return specificVisitor;\n }\n\n var specificKindVisitor = specificVisitor[kind];\n\n if (typeof specificKindVisitor === 'function') {\n // { enter: { Kind() {} }, leave: { Kind() {} } }\n return specificKindVisitor;\n }\n }\n }\n}\n","export default function _defineProperty(obj, key, value) {\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\n return obj;\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","/*!\n* screenfull\n* v5.0.2 - 2020-02-13\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","/**\n * The current status of a query’s execution in our system.\n */\nexport enum NetworkStatus {\n /**\n * The query has never been run before and the query is now currently running. A query will still\n * have this network status even if a partial data result was returned from the cache, but a\n * query was dispatched anyway.\n */\n loading = 1,\n\n /**\n * If `setVariables` was called and a query was fired because of that then the network status\n * will be `setVariables` until the result of that query comes back.\n */\n setVariables = 2,\n\n /**\n * Indicates that `fetchMore` was called on this query and that the query created is currently in\n * flight.\n */\n fetchMore = 3,\n\n /**\n * Similar to the `setVariables` network status. It means that `refetch` was called on a query\n * and the refetch request is currently in flight.\n */\n refetch = 4,\n\n /**\n * Indicates that a polling query is currently in flight. So for example if you are polling a\n * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever\n * a poll request has been sent but not resolved.\n */\n poll = 6,\n\n /**\n * No request is in flight for this query, and no errors happened. Everything is OK.\n */\n ready = 7,\n\n /**\n * No request is in flight for this query, but one or more errors were detected.\n */\n error = 8,\n}\n\n/**\n * Returns true if there is currently a network request in flight according to a given network\n * status.\n */\nexport function isNetworkRequestInFlight(\n networkStatus: NetworkStatus,\n): boolean {\n return networkStatus < 7;\n}\n","// This simplified polyfill attempts to follow the ECMAScript Observable proposal.\n// See https://github.com/zenparsing/es-observable\nimport { Observable as LinkObservable } from 'apollo-link';\n\nexport type Subscription = ZenObservable.Subscription;\nexport type Observer = ZenObservable.Observer;\n\nimport $$observable from 'symbol-observable';\n\n// rxjs interopt\nexport class Observable extends LinkObservable {\n public [$$observable]() {\n return this;\n }\n\n public ['@@observable' as any]() {\n return this;\n }\n}\n","export function isNonEmptyArray(value?: ArrayLike): value is Array {\n return Array.isArray(value) && value.length > 0;\n}\n","import { GraphQLError } from 'graphql';\nimport { isNonEmptyArray } from '../util/arrays';\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty('graphQLErrors');\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n let message = '';\n // If we have GraphQL errors present, add that to the error message.\n if (isNonEmptyArray(err.graphQLErrors)) {\n err.graphQLErrors.forEach((graphQLError: GraphQLError) => {\n const errorMessage = graphQLError\n ? graphQLError.message\n : 'Error message not found.';\n message += `GraphQL error: ${errorMessage}\\n`;\n });\n }\n\n if (err.networkError) {\n message += 'Network error: ' + err.networkError.message + '\\n';\n }\n\n // strip newline from the end of the message\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nexport class ApolloError extends Error {\n public message: string;\n public graphQLErrors: ReadonlyArray;\n public networkError: Error | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: {\n graphQLErrors?: ReadonlyArray;\n networkError?: Error | null;\n errorMessage?: string;\n extraInfo?: any;\n }) {\n super(errorMessage);\n this.graphQLErrors = graphQLErrors || [];\n this.networkError = networkError || null;\n\n if (!errorMessage) {\n this.message = generateErrorMessage(this);\n } else {\n this.message = errorMessage;\n }\n\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n","import { FetchResult } from 'apollo-link';\nimport { DocumentNode, GraphQLError } from 'graphql';\n\nimport { QueryStoreValue } from '../data/queries';\nimport { NetworkStatus } from './networkStatus';\nimport { Resolver } from './LocalState';\n\nexport type QueryListener = (\n queryStoreValue: QueryStoreValue,\n newData?: any,\n forceResolvers?: boolean,\n) => void;\n\nexport type OperationVariables = { [key: string]: any };\n\nexport type PureQueryOptions = {\n query: DocumentNode;\n variables?: { [key: string]: any };\n context?: any;\n};\n\nexport type ApolloQueryResult = {\n data: T;\n errors?: ReadonlyArray;\n loading: boolean;\n networkStatus: NetworkStatus;\n stale: boolean;\n};\n\nexport enum FetchType {\n normal = 1,\n refetch = 2,\n poll = 3,\n}\n\n// This is part of the public API, people write these functions in `updateQueries`.\nexport type MutationQueryReducer = (\n previousResult: Record,\n options: {\n mutationResult: FetchResult;\n queryName: string | undefined;\n queryVariables: Record;\n },\n) => Record;\n\nexport type MutationQueryReducersMap = {\n [queryName: string]: MutationQueryReducer;\n};\n\nexport interface Resolvers {\n [key: string]: {\n [ field: string ]: Resolver;\n };\n}\n","import {\n isEqual,\n tryFunctionOrLogError,\n cloneDeep,\n getOperationDefinition,\n} from 'apollo-utilities';\nimport { GraphQLError } from 'graphql';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport { Observable, Observer, Subscription } from '../util/Observable';\nimport { ApolloError } from '../errors/ApolloError';\nimport { QueryManager } from './QueryManager';\nimport { ApolloQueryResult, FetchType, OperationVariables } from './types';\nimport {\n WatchQueryOptions,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n ErrorPolicy,\n} from './watchQueryOptions';\n\nimport { QueryStoreValue } from '../data/queries';\n\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { isNonEmptyArray } from '../util/arrays';\n\n// XXX remove in the next breaking semver change (3.0)\n// Deprecated, use ApolloCurrentQueryResult\nexport type ApolloCurrentResult = {\n data: T | {};\n errors?: ReadonlyArray;\n loading: boolean;\n networkStatus: NetworkStatus;\n error?: ApolloError;\n partial?: boolean;\n};\n\nexport type ApolloCurrentQueryResult = {\n data: T | undefined;\n errors?: ReadonlyArray;\n loading: boolean;\n networkStatus: NetworkStatus;\n error?: ApolloError;\n partial?: boolean;\n stale?: boolean;\n};\n\nexport interface FetchMoreOptions<\n TData = any,\n TVariables = OperationVariables\n> {\n updateQuery: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult?: TData;\n variables?: TVariables;\n },\n ) => TData;\n}\n\nexport interface UpdateQueryOptions {\n variables?: TVariables;\n}\n\nexport const hasError = (\n storeValue: QueryStoreValue,\n policy: ErrorPolicy = 'none',\n) => storeValue && (\n storeValue.networkError ||\n (policy === 'none' && isNonEmptyArray(storeValue.graphQLErrors))\n);\n\nexport class ObservableQuery<\n TData = any,\n TVariables = OperationVariables\n> extends Observable> {\n public options: WatchQueryOptions;\n public readonly queryId: string;\n public readonly queryName?: string;\n /**\n *\n * The current value of the variables for this query. Can change.\n */\n public variables: TVariables;\n\n private shouldSubscribe: boolean;\n private isTornDown: boolean;\n private queryManager: QueryManager;\n private observers = new Set>>();\n private subscriptions = new Set();\n\n private lastResult: ApolloQueryResult;\n private lastResultSnapshot: ApolloQueryResult;\n private lastError: ApolloError;\n\n constructor({\n queryManager,\n options,\n shouldSubscribe = true,\n }: {\n queryManager: QueryManager;\n options: WatchQueryOptions;\n shouldSubscribe?: boolean;\n }) {\n super((observer: Observer>) =>\n this.onSubscribe(observer),\n );\n\n // active state\n this.isTornDown = false;\n\n // query information\n this.options = options;\n this.variables = options.variables || ({} as TVariables);\n this.queryId = queryManager.generateQueryId();\n this.shouldSubscribe = shouldSubscribe;\n\n const opDef = getOperationDefinition(options.query);\n this.queryName = opDef && opDef.name && opDef.name.value;\n\n // related classes\n this.queryManager = queryManager;\n }\n\n public result(): Promise> {\n return new Promise((resolve, reject) => {\n const observer: Observer> = {\n next: (result: ApolloQueryResult) => {\n resolve(result);\n\n // Stop the query within the QueryManager if we can before\n // this function returns.\n //\n // We do this in order to prevent observers piling up within\n // the QueryManager. Notice that we only fully unsubscribe\n // from the subscription in a setTimeout(..., 0) call. This call can\n // actually be handled by the browser at a much later time. If queries\n // are fired in the meantime, observers that should have been removed\n // from the QueryManager will continue to fire, causing an unnecessary\n // performance hit.\n this.observers.delete(observer);\n if (!this.observers.size) {\n this.queryManager.removeQuery(this.queryId);\n }\n\n setTimeout(() => {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n const subscription = this.subscribe(observer);\n });\n }\n\n // XXX remove in the next breaking semver change (3.0)\n // Deprecated, use getCurrentResult()\n public currentResult(): ApolloCurrentResult {\n const result = this.getCurrentResult() as ApolloCurrentResult;\n if (result.data === undefined) {\n result.data = {};\n }\n return result;\n }\n\n /**\n * Return the result of the query from the local cache as well as some fetching status\n * `loading` and `networkStatus` allow to know if a request is in flight\n * `partial` lets you know if the result from the local cache is complete or partial\n * @return {data: Object, error: ApolloError, loading: boolean, networkStatus: number, partial: boolean}\n */\n public getCurrentResult(): ApolloCurrentQueryResult {\n if (this.isTornDown) {\n const { lastResult } = this;\n return {\n data: !this.lastError && lastResult && lastResult.data || void 0,\n error: this.lastError,\n loading: false,\n networkStatus: NetworkStatus.error,\n };\n }\n\n const { data, partial } = this.queryManager.getCurrentQueryResult(this);\n const queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n let result: ApolloQueryResult;\n\n const { fetchPolicy } = this.options;\n\n const isNetworkFetchPolicy =\n fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache';\n\n if (queryStoreValue) {\n const { networkStatus } = queryStoreValue;\n\n if (hasError(queryStoreValue, this.options.errorPolicy)) {\n return {\n data: void 0,\n loading: false,\n networkStatus,\n error: new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n }),\n };\n }\n\n // Variables might have been added dynamically at query time, when\n // using `@client @export(as: \"varname\")` for example. When this happens,\n // the variables have been updated in the query store, but not updated on\n // the original `ObservableQuery`. We'll update the observable query\n // variables here to match, so retrieving from the cache doesn't fail.\n if (queryStoreValue.variables) {\n this.options.variables = {\n ...this.options.variables,\n ...(queryStoreValue.variables as TVariables),\n };\n this.variables = this.options.variables;\n }\n\n result = {\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n } as ApolloQueryResult;\n\n if (queryStoreValue.graphQLErrors && this.options.errorPolicy === 'all') {\n result.errors = queryStoreValue.graphQLErrors;\n }\n\n } else {\n // We need to be careful about the loading state we show to the user, to try\n // and be vaguely in line with what the user would have seen from .subscribe()\n // but to still provide useful information synchronously when the query\n // will not end up hitting the server.\n // See more: https://github.com/apollostack/apollo-client/issues/707\n // Basically: is there a query in flight right now (modolo the next tick)?\n const loading = isNetworkFetchPolicy ||\n (partial && fetchPolicy !== 'cache-only');\n\n result = {\n data,\n loading,\n networkStatus: loading ? NetworkStatus.loading : NetworkStatus.ready,\n } as ApolloQueryResult;\n }\n\n if (!partial) {\n this.updateLastResult({ ...result, stale: false });\n }\n\n return { ...result, partial };\n }\n\n // Compares newResult to the snapshot we took of this.lastResult when it was\n // first received.\n public isDifferentFromLastResult(newResult: ApolloQueryResult) {\n const { lastResultSnapshot: snapshot } = this;\n return !(\n snapshot &&\n newResult &&\n snapshot.networkStatus === newResult.networkStatus &&\n snapshot.stale === newResult.stale &&\n isEqual(snapshot.data, newResult.data)\n );\n }\n\n // Returns the last result that observer.next was called with. This is not the same as\n // getCurrentResult! If you're not sure which you need, then you probably need getCurrentResult.\n public getLastResult(): ApolloQueryResult {\n return this.lastResult;\n }\n\n public getLastError(): ApolloError {\n return this.lastError;\n }\n\n public resetLastResults(): void {\n delete this.lastResult;\n delete this.lastResultSnapshot;\n delete this.lastError;\n this.isTornDown = false;\n }\n\n public resetQueryStoreErrors() {\n const queryStore = this.queryManager.queryStore.get(this.queryId);\n if (queryStore) {\n queryStore.networkError = null;\n queryStore.graphQLErrors = [];\n }\n }\n\n /**\n * Update the variables of this observable query, and fetch the new results.\n * This method should be preferred over `setVariables` in most use cases.\n *\n * @param variables: The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n public refetch(variables?: TVariables): Promise> {\n let { fetchPolicy } = this.options;\n // early return if trying to read from cache during refetch\n if (fetchPolicy === 'cache-only') {\n return Promise.reject(new InvariantError(\n 'cache-only fetchPolicy option should not be used together with query refetch.',\n ));\n }\n\n // Unless the provided fetchPolicy always consults the network\n // (no-cache, network-only, or cache-and-network), override it with\n // network-only to force the refetch for this fetchQuery call.\n if (fetchPolicy !== 'no-cache' &&\n fetchPolicy !== 'cache-and-network') {\n fetchPolicy = 'network-only';\n }\n\n if (!isEqual(this.variables, variables)) {\n // update observable variables\n this.variables = {\n ...this.variables,\n ...variables,\n };\n }\n\n if (!isEqual(this.options.variables, this.variables)) {\n // Update the existing options with new variables\n this.options.variables = {\n ...this.options.variables,\n ...this.variables,\n };\n }\n\n return this.queryManager.fetchQuery(\n this.queryId,\n { ...this.options, fetchPolicy },\n FetchType.refetch,\n ) as Promise>;\n }\n\n public fetchMore(\n fetchMoreOptions: FetchMoreQueryOptions &\n FetchMoreOptions,\n ): Promise> {\n // early return if no update Query\n invariant(\n fetchMoreOptions.updateQuery,\n 'updateQuery option is required. This function defines how to update the query data with the new results.',\n );\n\n const combinedOptions = {\n ...(fetchMoreOptions.query ? fetchMoreOptions : {\n ...this.options,\n ...fetchMoreOptions,\n variables: {\n ...this.variables,\n ...fetchMoreOptions.variables,\n },\n }),\n fetchPolicy: 'network-only',\n } as WatchQueryOptions;\n\n const qid = this.queryManager.generateQueryId();\n\n return this.queryManager\n .fetchQuery(\n qid,\n combinedOptions,\n FetchType.normal,\n this.queryId,\n )\n .then(\n fetchMoreResult => {\n this.updateQuery((previousResult: any) =>\n fetchMoreOptions.updateQuery(previousResult, {\n fetchMoreResult: fetchMoreResult.data as TData,\n variables: combinedOptions.variables as TVariables,\n }),\n );\n this.queryManager.stopQuery(qid);\n return fetchMoreResult as ApolloQueryResult;\n },\n error => {\n this.queryManager.stopQuery(qid);\n throw error;\n },\n );\n }\n\n // XXX the subscription variables are separate from the query variables.\n // if you want to update subscription variables, right now you have to do that separately,\n // and you can only do it by stopping the subscription and then subscribing again with new variables.\n public subscribeToMore<\n TSubscriptionData = TData,\n TSubscriptionVariables = TVariables\n >(\n options: SubscribeToMoreOptions<\n TData,\n TSubscriptionVariables,\n TSubscriptionData\n >,\n ) {\n const subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n })\n .subscribe({\n next: (subscriptionData: { data: TSubscriptionData }) => {\n const { updateQuery } = options;\n if (updateQuery) {\n this.updateQuery(\n (previous, { variables }) =>\n updateQuery(previous, {\n subscriptionData,\n variables,\n }),\n );\n }\n },\n error: (err: any) => {\n if (options.onError) {\n options.onError(err);\n return;\n }\n invariant.error('Unhandled GraphQL subscription error', err);\n },\n });\n\n this.subscriptions.add(subscription);\n\n return () => {\n if (this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n }\n\n // Note: if the query is not active (there are no subscribers), the promise\n // will return null immediately.\n public setOptions(\n opts: WatchQueryOptions,\n ): Promise | void> {\n const { fetchPolicy: oldFetchPolicy } = this.options;\n this.options = {\n ...this.options,\n ...opts,\n } as WatchQueryOptions;\n\n if (opts.pollInterval) {\n this.startPolling(opts.pollInterval);\n } else if (opts.pollInterval === 0) {\n this.stopPolling();\n }\n\n const { fetchPolicy } = opts;\n\n return this.setVariables(\n this.options.variables as TVariables,\n // Try to fetch the query if fetchPolicy changed from either cache-only\n // or standby to something else, or changed to network-only.\n oldFetchPolicy !== fetchPolicy && (\n oldFetchPolicy === 'cache-only' ||\n oldFetchPolicy === 'standby' ||\n fetchPolicy === 'network-only'\n ),\n opts.fetchResults,\n );\n }\n\n /**\n * This is for *internal* use only. Most users should instead use `refetch`\n * in order to be properly notified of results even when they come from cache.\n *\n * Update the variables of this observable query, and fetch the new results\n * if they've changed. If you want to force new results, use `refetch`.\n *\n * Note: the `next` callback will *not* fire if the variables have not changed\n * or if the result is coming from cache.\n *\n * Note: the promise will return the old results immediately if the variables\n * have not changed.\n *\n * Note: the promise will return null immediately if the query is not active\n * (there are no subscribers).\n *\n * @private\n *\n * @param variables: The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n *\n * @param tryFetch: Try and fetch new results even if the variables haven't\n * changed (we may still just hit the store, but if there's nothing in there\n * this will refetch)\n *\n * @param fetchResults: Option to ignore fetching results when updating variables\n */\n public setVariables(\n variables: TVariables,\n tryFetch: boolean = false,\n fetchResults = true,\n ): Promise | void> {\n // since setVariables restarts the subscription, we reset the tornDown status\n this.isTornDown = false;\n\n variables = variables || this.variables;\n\n if (!tryFetch && isEqual(variables, this.variables)) {\n // If we have no observers, then we don't actually want to make a network\n // request. As soon as someone observes the query, the request will kick\n // off. For now, we just store any changes. (See #1077)\n return this.observers.size && fetchResults\n ? this.result()\n : Promise.resolve();\n }\n\n this.variables = this.options.variables = variables;\n\n // See comment above\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n // Use the same options as before, but with new variables\n return this.queryManager.fetchQuery(\n this.queryId,\n this.options,\n ) as Promise>;\n }\n\n public updateQuery(\n mapFn: (\n previousQueryResult: TData,\n options: UpdateQueryOptions,\n ) => TData,\n ): void {\n const { queryManager } = this;\n const {\n previousResult,\n variables,\n document,\n } = queryManager.getQueryWithPreviousResult(\n this.queryId,\n );\n\n const newResult = tryFunctionOrLogError(() =>\n mapFn(previousResult, { variables }),\n );\n\n if (newResult) {\n queryManager.dataStore.markUpdateQueryResult(\n document,\n variables,\n newResult,\n );\n queryManager.broadcastQueries();\n }\n }\n\n public stopPolling() {\n this.queryManager.stopPollingQuery(this.queryId);\n this.options.pollInterval = undefined;\n }\n\n public startPolling(pollInterval: number) {\n assertNotCacheFirstOrOnly(this);\n this.options.pollInterval = pollInterval;\n this.queryManager.startPollingQuery(this.options, this.queryId);\n }\n\n private updateLastResult(newResult: ApolloQueryResult) {\n const previousResult = this.lastResult;\n this.lastResult = newResult;\n this.lastResultSnapshot = this.queryManager.assumeImmutableResults\n ? newResult\n : cloneDeep(newResult);\n return previousResult;\n }\n\n private onSubscribe(observer: Observer>) {\n // Zen Observable has its own error function, so in order to log correctly\n // we need to provide a custom error callback.\n try {\n var subObserver = (observer as any)._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch {}\n\n const first = !this.observers.size;\n this.observers.add(observer);\n\n // Deliver initial result\n if (observer.next && this.lastResult) observer.next(this.lastResult);\n if (observer.error && this.lastError) observer.error(this.lastError);\n\n // setup the query if it hasn't been done before\n if (first) {\n this.setUpQuery();\n }\n\n return () => {\n if (this.observers.delete(observer) && !this.observers.size) {\n this.tearDownQuery();\n }\n };\n }\n\n private setUpQuery() {\n const { queryManager, queryId } = this;\n\n if (this.shouldSubscribe) {\n queryManager.addObservableQuery(queryId, this);\n }\n\n if (this.options.pollInterval) {\n assertNotCacheFirstOrOnly(this);\n queryManager.startPollingQuery(this.options, queryId);\n }\n\n const onError = (error: ApolloError) => {\n // Since we don't get the current result on errors, only the error, we\n // must mirror the updates that occur in QueryStore.markQueryError here\n this.updateLastResult({\n ...this.lastResult,\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false,\n });\n iterateObserversSafely(this.observers, 'error', this.lastError = error);\n };\n\n queryManager.observeQuery(queryId, this.options, {\n next: (result: ApolloQueryResult) => {\n if (this.lastError || this.isDifferentFromLastResult(result)) {\n const previousResult = this.updateLastResult(result);\n const { query, variables, fetchPolicy } = this.options;\n\n // Before calling `next` on each observer, we need to first see if\n // the query is using `@client @export` directives, and update\n // any variables that might have changed. If `@export` variables have\n // changed, and the query is calling against both local and remote\n // data, a refetch is needed to pull in new data, using the\n // updated `@export` variables.\n if (queryManager.transform(query).hasClientExports) {\n queryManager.getLocalState().addExportedVariables(\n query,\n variables,\n ).then((variables: TVariables) => {\n const previousVariables = this.variables;\n this.variables = this.options.variables = variables;\n if (\n !result.loading &&\n previousResult &&\n fetchPolicy !== 'cache-only' &&\n queryManager.transform(query).serverQuery &&\n !isEqual(previousVariables, variables)\n ) {\n this.refetch();\n } else {\n iterateObserversSafely(this.observers, 'next', result);\n }\n });\n } else {\n iterateObserversSafely(this.observers, 'next', result);\n }\n }\n },\n error: onError,\n }).catch(onError);\n }\n\n private tearDownQuery() {\n const { queryManager } = this;\n\n this.isTornDown = true;\n queryManager.stopPollingQuery(this.queryId);\n\n // stop all active GraphQL subscriptions\n this.subscriptions.forEach(sub => sub.unsubscribe());\n this.subscriptions.clear();\n\n queryManager.removeObservableQuery(this.queryId);\n queryManager.stopQuery(this.queryId);\n\n this.observers.clear();\n }\n}\n\nfunction defaultSubscriptionObserverErrorCallback(error: ApolloError) {\n invariant.error('Unhandled error', error.message, error.stack);\n}\n\nfunction iterateObserversSafely(\n observers: Set>,\n method: keyof Observer,\n argument?: A,\n) {\n // In case observers is modified during iteration, we need to commit to the\n // original elements, which also provides an opportunity to filter them down\n // to just the observers with the given method.\n const observersWithMethod: Observer[] = [];\n observers.forEach(obs => obs[method] && observersWithMethod.push(obs));\n observersWithMethod.forEach(obs => (obs as any)[method](argument));\n}\n\nfunction assertNotCacheFirstOrOnly(\n obsQuery: ObservableQuery,\n) {\n const { fetchPolicy } = obsQuery.options;\n invariant(\n fetchPolicy !== 'cache-first' && fetchPolicy !== 'cache-only',\n 'Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.',\n );\n}\n","import { DocumentNode } from 'graphql';\n\nexport class MutationStore {\n private store: { [mutationId: string]: MutationStoreValue } = {};\n\n public getStore(): { [mutationId: string]: MutationStoreValue } {\n return this.store;\n }\n\n public get(mutationId: string): MutationStoreValue {\n return this.store[mutationId];\n }\n\n public initMutation(\n mutationId: string,\n mutation: DocumentNode,\n variables: Object | undefined,\n ) {\n this.store[mutationId] = {\n mutation,\n variables: variables || {},\n loading: true,\n error: null,\n };\n }\n\n public markMutationError(mutationId: string, error: Error) {\n const mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = error;\n }\n }\n\n public markMutationResult(mutationId: string) {\n const mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = null;\n }\n }\n\n public reset() {\n this.store = {};\n }\n}\n\nexport interface MutationStoreValue {\n mutation: DocumentNode;\n variables: Object;\n loading: boolean;\n error: Error | null;\n}\n","import { DocumentNode, GraphQLError, ExecutionResult } from 'graphql';\nimport { isEqual } from 'apollo-utilities';\nimport { invariant } from 'ts-invariant';\nimport { NetworkStatus } from '../core/networkStatus';\nimport { isNonEmptyArray } from '../util/arrays';\n\nexport type QueryStoreValue = {\n document: DocumentNode;\n variables: Object;\n previousVariables?: Object | null;\n networkStatus: NetworkStatus;\n networkError?: Error | null;\n graphQLErrors?: ReadonlyArray;\n metadata: any;\n};\n\nexport class QueryStore {\n private store: { [queryId: string]: QueryStoreValue } = {};\n\n public getStore(): { [queryId: string]: QueryStoreValue } {\n return this.store;\n }\n\n public get(queryId: string): QueryStoreValue {\n return this.store[queryId];\n }\n\n public initQuery(query: {\n queryId: string;\n document: DocumentNode;\n storePreviousVariables: boolean;\n variables: Object;\n isPoll: boolean;\n isRefetch: boolean;\n metadata: any;\n fetchMoreForQueryId: string | undefined;\n }) {\n const previousQuery = this.store[query.queryId];\n\n // XXX we're throwing an error here to catch bugs where a query gets overwritten by a new one.\n // we should implement a separate action for refetching so that QUERY_INIT may never overwrite\n // an existing query (see also: https://github.com/apollostack/apollo-client/issues/732)\n invariant(\n !previousQuery ||\n previousQuery.document === query.document ||\n isEqual(previousQuery.document, query.document),\n 'Internal Error: may not update existing query string in store',\n );\n\n let isSetVariables = false;\n\n let previousVariables: Object | null = null;\n if (\n query.storePreviousVariables &&\n previousQuery &&\n previousQuery.networkStatus !== NetworkStatus.loading\n // if the previous query was still loading, we don't want to remember it at all.\n ) {\n if (!isEqual(previousQuery.variables, query.variables)) {\n isSetVariables = true;\n previousVariables = previousQuery.variables;\n }\n }\n\n // TODO break this out into a separate function\n let networkStatus;\n if (isSetVariables) {\n networkStatus = NetworkStatus.setVariables;\n } else if (query.isPoll) {\n networkStatus = NetworkStatus.poll;\n } else if (query.isRefetch) {\n networkStatus = NetworkStatus.refetch;\n // TODO: can we determine setVariables here if it's a refetch and the variables have changed?\n } else {\n networkStatus = NetworkStatus.loading;\n }\n\n let graphQLErrors: ReadonlyArray = [];\n if (previousQuery && previousQuery.graphQLErrors) {\n graphQLErrors = previousQuery.graphQLErrors;\n }\n\n // XXX right now if QUERY_INIT is fired twice, like in a refetch situation, we just overwrite\n // the store. We probably want a refetch action instead, because I suspect that if you refetch\n // before the initial fetch is done, you'll get an error.\n this.store[query.queryId] = {\n document: query.document,\n variables: query.variables,\n previousVariables,\n networkError: null,\n graphQLErrors: graphQLErrors,\n networkStatus,\n metadata: query.metadata,\n };\n\n // If the action had a `moreForQueryId` property then we need to set the\n // network status on that query as well to `fetchMore`.\n //\n // We have a complement to this if statement in the query result and query\n // error action branch, but importantly *not* in the client result branch.\n // This is because the implementation of `fetchMore` *always* sets\n // `fetchPolicy` to `network-only` so we would never have a client result.\n if (\n typeof query.fetchMoreForQueryId === 'string' &&\n this.store[query.fetchMoreForQueryId]\n ) {\n this.store[query.fetchMoreForQueryId].networkStatus =\n NetworkStatus.fetchMore;\n }\n }\n\n public markQueryResult(\n queryId: string,\n result: ExecutionResult,\n fetchMoreForQueryId: string | undefined,\n ) {\n if (!this.store || !this.store[queryId]) return;\n\n this.store[queryId].networkError = null;\n this.store[queryId].graphQLErrors = isNonEmptyArray(result.errors) ? result.errors : [];\n this.store[queryId].previousVariables = null;\n this.store[queryId].networkStatus = NetworkStatus.ready;\n\n // If we have a `fetchMoreForQueryId` then we need to update the network\n // status for that query. See the branch for query initialization for more\n // explanation about this process.\n if (\n typeof fetchMoreForQueryId === 'string' &&\n this.store[fetchMoreForQueryId]\n ) {\n this.store[fetchMoreForQueryId].networkStatus = NetworkStatus.ready;\n }\n }\n\n public markQueryError(\n queryId: string,\n error: Error,\n fetchMoreForQueryId: string | undefined,\n ) {\n if (!this.store || !this.store[queryId]) return;\n\n this.store[queryId].networkError = error;\n this.store[queryId].networkStatus = NetworkStatus.error;\n\n // If we have a `fetchMoreForQueryId` then we need to update the network\n // status for that query. See the branch for query initialization for more\n // explanation about this process.\n if (typeof fetchMoreForQueryId === 'string') {\n this.markQueryResultClient(fetchMoreForQueryId, true);\n }\n }\n\n public markQueryResultClient(queryId: string, complete: boolean) {\n const storeValue = this.store && this.store[queryId];\n if (storeValue) {\n storeValue.networkError = null;\n storeValue.previousVariables = null;\n if (complete) {\n storeValue.networkStatus = NetworkStatus.ready;\n }\n }\n }\n\n public stopQuery(queryId: string) {\n delete this.store[queryId];\n }\n\n public reset(observableQueryIds: string[]) {\n Object.keys(this.store).forEach(queryId => {\n if (observableQueryIds.indexOf(queryId) < 0) {\n this.stopQuery(queryId);\n } else {\n // XXX set loading to true so listeners don't trigger unless they want results with partial data\n this.store[queryId].networkStatus = NetworkStatus.loading;\n }\n });\n }\n}\n","import {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n SelectionNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n FieldNode,\n ASTNode,\n} from 'graphql';\nimport { visit, BREAK } from 'graphql/language/visitor';\n\nimport { ApolloCache } from 'apollo-cache';\nimport {\n getMainDefinition,\n buildQueryFromSelectionSet,\n hasDirectives,\n removeClientSetsFromDocument,\n mergeDeep,\n mergeDeepArray,\n FragmentMap,\n argumentsObjectFromField,\n resultKeyNameFromField,\n getFragmentDefinitions,\n createFragmentMap,\n shouldInclude,\n isField,\n isInlineFragment,\n} from 'apollo-utilities';\nimport { FetchResult } from 'apollo-link';\n\nimport { invariant } from 'ts-invariant';\n\nimport ApolloClient from '../ApolloClient';\nimport { Resolvers, OperationVariables } from './types';\nimport { capitalizeFirstLetter } from '../util/capitalizeFirstLetter';\n\nexport type Resolver = (\n rootValue?: any,\n args?: any,\n context?: any,\n info?: {\n field: FieldNode;\n fragmentMap: FragmentMap;\n },\n) => any;\n\nexport type VariableMap = { [name: string]: any };\n\nexport type FragmentMatcher = (\n rootValue: any,\n typeCondition: string,\n context: any,\n) => boolean;\n\nexport type ExecContext = {\n fragmentMap: FragmentMap;\n context: any;\n variables: VariableMap;\n fragmentMatcher: FragmentMatcher;\n defaultOperationType: string;\n exportedVariables: Record;\n onlyRunForcedResolvers: boolean;\n};\n\nexport type LocalStateOptions = {\n cache: ApolloCache;\n client?: ApolloClient;\n resolvers?: Resolvers | Resolvers[];\n fragmentMatcher?: FragmentMatcher;\n};\n\nexport class LocalState {\n private cache: ApolloCache;\n private client: ApolloClient;\n private resolvers?: Resolvers;\n private fragmentMatcher: FragmentMatcher;\n\n constructor({\n cache,\n client,\n resolvers,\n fragmentMatcher,\n }: LocalStateOptions) {\n this.cache = cache;\n\n if (client) {\n this.client = client;\n }\n\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(resolverGroup => {\n this.resolvers = mergeDeep(this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n }\n\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n }\n\n public getResolvers() {\n return this.resolvers || {};\n }\n\n // Run local client resolvers against the incoming query and remote data.\n // Locally resolved field values are merged with the incoming remote data,\n // and returned. Note that locally resolved fields will overwrite\n // remote data using the same field name.\n public async runResolvers({\n document,\n remoteResult,\n context,\n variables,\n onlyRunForcedResolvers = false,\n }: {\n document: DocumentNode | null;\n remoteResult: FetchResult;\n context?: Record;\n variables?: Record;\n onlyRunForcedResolvers?: boolean;\n }): Promise> {\n if (document) {\n return this.resolveDocument(\n document,\n remoteResult.data,\n context,\n variables,\n this.fragmentMatcher,\n onlyRunForcedResolvers,\n ).then(localResult => ({\n ...remoteResult,\n data: localResult.result,\n }));\n }\n\n return remoteResult;\n }\n\n public setFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n }\n\n public getFragmentMatcher(): FragmentMatcher {\n return this.fragmentMatcher;\n }\n\n // Client queries contain everything in the incoming document (if a @client\n // directive is found).\n public clientQuery(document: DocumentNode) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n invariant.warn(\n 'Found @client directives in a query but no ApolloClient resolvers ' +\n 'were specified. This means ApolloClient local resolver handling ' +\n 'has been disabled, and @client directives will be passed through ' +\n 'to your link chain.',\n );\n }\n return null;\n }\n\n // Server queries are stripped of all @client based selection sets.\n public serverQuery(document: DocumentNode) {\n return this.resolvers ? removeClientSetsFromDocument(document) : document;\n }\n\n public prepareContext(context = {}) {\n const { cache } = this;\n\n const newContext = {\n ...context,\n cache,\n // Getting an entry's cache key is useful for local state resolvers.\n getCacheKey: (obj: { __typename: string; id: string | number }) => {\n if ((cache as any).config) {\n return (cache as any).config.dataIdFromObject(obj);\n } else {\n invariant(false,\n 'To use context.getCacheKey, you need to use a cache that has ' +\n 'a configurable dataIdFromObject, like apollo-cache-inmemory.',\n );\n }\n },\n };\n\n return newContext;\n }\n\n // To support `@client @export(as: \"someVar\")` syntax, we'll first resolve\n // @client @export fields locally, then pass the resolved values back to be\n // used alongside the original operation variables.\n public async addExportedVariables(\n document: DocumentNode,\n variables: OperationVariables = {},\n context = {},\n ) {\n if (document) {\n return this.resolveDocument(\n document,\n this.buildRootValueFromCache(document, variables) || {},\n this.prepareContext(context),\n variables,\n ).then(data => ({\n ...variables,\n ...data.exportedVariables,\n }));\n }\n\n return {\n ...variables,\n };\n }\n\n public shouldForceResolvers(document: ASTNode) {\n let forceResolvers = false;\n visit(document, {\n Directive: {\n enter(node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(\n arg =>\n arg.name.value === 'always' &&\n arg.value.kind === 'BooleanValue' &&\n arg.value.value === true,\n );\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n }\n\n // Query the cache and return matching data.\n private buildRootValueFromCache(\n document: DocumentNode,\n variables?: Record,\n ) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n }\n\n private async resolveDocument(\n document: DocumentNode,\n rootValue: TData,\n context: any = {},\n variables: VariableMap = {},\n fragmentMatcher: FragmentMatcher = () => true,\n onlyRunForcedResolvers: boolean = false,\n ) {\n const mainDefinition = getMainDefinition(document);\n const fragments = getFragmentDefinitions(document);\n const fragmentMap = createFragmentMap(fragments);\n\n const definitionOperation = (mainDefinition as OperationDefinitionNode)\n .operation;\n\n const defaultOperationType = definitionOperation\n ? capitalizeFirstLetter(definitionOperation)\n : 'Query';\n\n const { cache, client } = this;\n const execContext: ExecContext = {\n fragmentMap,\n context: {\n ...context,\n cache,\n client,\n },\n variables,\n fragmentMatcher,\n defaultOperationType,\n exportedVariables: {},\n onlyRunForcedResolvers,\n };\n\n return this.resolveSelectionSet(\n mainDefinition.selectionSet,\n rootValue,\n execContext,\n ).then(result => ({\n result,\n exportedVariables: execContext.exportedVariables,\n }));\n }\n\n private async resolveSelectionSet(\n selectionSet: SelectionSetNode,\n rootValue: TData,\n execContext: ExecContext,\n ) {\n const { fragmentMap, context, variables } = execContext;\n const resultsToMerge: TData[] = [rootValue];\n\n const execute = async (selection: SelectionNode): Promise => {\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely.\n return;\n }\n\n if (isField(selection)) {\n return this.resolveField(selection, rootValue, execContext).then(\n fieldResult => {\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push({\n [resultKeyNameFromField(selection)]: fieldResult,\n } as TData);\n }\n },\n );\n }\n\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // This is a named fragment.\n fragment = fragmentMap[selection.name.value];\n invariant(fragment, `No fragment named ${selection.name.value}`);\n }\n\n if (fragment && fragment.typeCondition) {\n const typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return this.resolveSelectionSet(\n fragment.selectionSet,\n rootValue,\n execContext,\n ).then(fragmentResult => {\n resultsToMerge.push(fragmentResult);\n });\n }\n }\n };\n\n return Promise.all(selectionSet.selections.map(execute)).then(function() {\n return mergeDeepArray(resultsToMerge);\n });\n }\n\n private async resolveField(\n field: FieldNode,\n rootValue: any,\n execContext: ExecContext,\n ): Promise {\n const { variables } = execContext;\n const fieldName = field.name.value;\n const aliasedFieldName = resultKeyNameFromField(field);\n const aliasUsed = fieldName !== aliasedFieldName;\n const defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n let resultPromise = Promise.resolve(defaultResult);\n\n // Usually all local resolvers are run when passing through here, but\n // if we've specifically identified that we only want to run forced\n // resolvers (that is, resolvers for fields marked with\n // `@client(always: true)`), then we'll skip running non-forced resolvers.\n if (\n !execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)\n ) {\n const resolverType =\n rootValue.__typename || execContext.defaultOperationType;\n const resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n const resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(resolve(\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field, fragmentMap: execContext.fragmentMap },\n ));\n }\n }\n }\n\n return resultPromise.then((result = defaultResult) => {\n // If an @export directive is associated with the current field, store\n // the `as` export variable name and current result for later use.\n if (field.directives) {\n field.directives.forEach(directive => {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(arg => {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n\n // Handle all scalar types here.\n if (!field.selectionSet) {\n return result;\n }\n\n // From here down, the field has a selection set, which means it's trying\n // to query a GraphQLObjectType.\n if (result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return result;\n }\n\n if (Array.isArray(result)) {\n return this.resolveSubSelectedArray(field, result, execContext);\n }\n\n // Returned value is an object, and the query has a sub-selection. Recurse.\n if (field.selectionSet) {\n return this.resolveSelectionSet(\n field.selectionSet,\n result,\n execContext,\n );\n }\n });\n }\n\n private resolveSubSelectedArray(\n field: FieldNode,\n result: any[],\n execContext: ExecContext,\n ): any {\n return Promise.all(\n result.map(item => {\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse.\n if (Array.isArray(item)) {\n return this.resolveSubSelectedArray(field, item, execContext);\n }\n\n // This is an object, run the selection set on it.\n if (field.selectionSet) {\n return this.resolveSelectionSet(field.selectionSet, item, execContext);\n }\n }),\n );\n }\n}\n","export function capitalizeFirstLetter(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n","import { Observable, Observer, Subscription } from './Observable';\n\n// Returns a normal Observable that can have any number of subscribers,\n// while ensuring the original Observable gets subscribed to at most once.\nexport function multiplex(inner: Observable): Observable {\n const observers = new Set>();\n let sub: Subscription | null = null;\n return new Observable(observer => {\n observers.add(observer);\n sub = sub || inner.subscribe({\n next(value) {\n observers.forEach(obs => obs.next && obs.next(value));\n },\n error(error) {\n observers.forEach(obs => obs.error && obs.error(error));\n },\n complete() {\n observers.forEach(obs => obs.complete && obs.complete());\n },\n });\n return () => {\n if (observers.delete(observer) && !observers.size && sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n });\n}\n\n// Like Observable.prototype.map, except that the mapping function can\n// optionally return a Promise (or be async).\nexport function asyncMap(\n observable: Observable,\n mapFn: (value: V) => R | Promise,\n): Observable {\n return new Observable(observer => {\n const { next, error, complete } = observer;\n let activeNextCount = 0;\n let completed = false;\n\n const handler: Observer = {\n next(value) {\n ++activeNextCount;\n new Promise(resolve => {\n resolve(mapFn(value));\n }).then(\n result => {\n --activeNextCount;\n next && next.call(observer, result);\n completed && handler.complete!();\n },\n e => {\n --activeNextCount;\n error && error.call(observer, e);\n },\n );\n },\n error(e) {\n error && error.call(observer, e);\n },\n complete() {\n completed = true;\n if (!activeNextCount) {\n complete && complete.call(observer);\n }\n },\n };\n\n const sub = observable.subscribe(handler);\n return () => sub.unsubscribe();\n });\n}\n","import { execute, ApolloLink, FetchResult } from 'apollo-link';\nimport { DocumentNode } from 'graphql';\nimport { Cache } from 'apollo-cache';\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasDirectives,\n graphQLResultHasError,\n hasClientExports,\n removeConnectionDirectiveFromDocument,\n canUseWeakMap,\n} from 'apollo-utilities';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { isApolloError, ApolloError } from '../errors/ApolloError';\nimport { Observer, Subscription, Observable } from '../util/Observable';\nimport { QueryWithUpdater, DataStore } from '../data/store';\nimport { MutationStore } from '../data/mutations';\nimport { QueryStore, QueryStoreValue } from '../data/queries';\n\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n ErrorPolicy,\n} from './watchQueryOptions';\nimport { ObservableQuery } from './ObservableQuery';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport {\n QueryListener,\n ApolloQueryResult,\n FetchType,\n OperationVariables,\n} from './types';\nimport { LocalState } from './LocalState';\nimport { asyncMap, multiplex } from '../util/observables';\nimport { isNonEmptyArray } from '../util/arrays';\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport interface QueryInfo {\n listeners: Set;\n invalidated: boolean;\n newData: Cache.DiffResult | null;\n document: DocumentNode | null;\n lastRequestId: number;\n // A map going from queryId to an observer for a query issued by watchQuery. We use\n // these to keep track of queries that are inflight and error on the observers associated\n // with them in case of some destabalizing action (e.g. reset of the Apollo store).\n observableQuery: ObservableQuery | null;\n subscriptions: Set;\n cancel?: () => void;\n}\n\nexport class QueryManager {\n public link: ApolloLink;\n public mutationStore: MutationStore = new MutationStore();\n public queryStore: QueryStore = new QueryStore();\n public dataStore: DataStore;\n public readonly assumeImmutableResults: boolean;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record = {};\n private localState: LocalState;\n\n private onBroadcast: () => void;\n\n private ssrMode: boolean;\n\n // let's not start at zero to avoid pain with bad checks\n private idCounter = 1;\n\n // XXX merge with ObservableQuery but that needs to be expanded to support mutations and\n // subscriptions as well\n private queries: Map = new Map();\n\n // A map of Promise reject functions for fetchQuery promises that have not\n // yet been resolved, used to keep track of in-flight queries so that we can\n // reject them in case a destabilizing event occurs (e.g. Apollo store reset).\n // The key is in the format of `query:${queryId}` or `fetchRequest:${queryId}`,\n // depending on where the promise's rejection function was created from.\n private fetchQueryRejectFns = new Map();\n\n constructor({\n link,\n queryDeduplication = false,\n store,\n onBroadcast = () => undefined,\n ssrMode = false,\n clientAwareness = {},\n localState,\n assumeImmutableResults,\n }: {\n link: ApolloLink;\n queryDeduplication?: boolean;\n store: DataStore;\n onBroadcast?: () => void;\n ssrMode?: boolean;\n clientAwareness?: Record;\n localState?: LocalState;\n assumeImmutableResults?: boolean;\n }) {\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.dataStore = store;\n this.onBroadcast = onBroadcast;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache: store.getCache() });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.fetchQueryRejectFns.forEach(reject => {\n reject(\n new InvariantError('QueryManager stopped while query was in flight'),\n );\n });\n }\n\n public async mutate({\n mutation,\n variables,\n optimisticResponse,\n updateQueries: updateQueriesByName,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n errorPolicy = 'none',\n fetchPolicy,\n context = {},\n }: MutationOptions): Promise> {\n invariant(\n mutation,\n 'mutation option is required. You must specify your GraphQL document in the mutation option.',\n );\n\n invariant(\n !fetchPolicy || fetchPolicy === 'no-cache',\n \"Mutations only support a 'no-cache' fetchPolicy. If you don't want to disable the cache, remove your fetchPolicy setting to proceed with the default mutation behavior.\"\n );\n\n const mutationId = this.generateQueryId();\n mutation = this.transform(mutation).document;\n\n this.setQuery(mutationId, () => ({ document: mutation }));\n\n variables = this.getVariables(mutation, variables);\n\n if (this.transform(mutation).hasClientExports) {\n variables = await this.localState.addExportedVariables(mutation, variables, context);\n }\n\n // Create a map of update queries by id to the query instead of by name.\n const generateUpdateQueriesInfo: () => {\n [queryId: string]: QueryWithUpdater;\n } = () => {\n const ret: { [queryId: string]: QueryWithUpdater } = {};\n\n if (updateQueriesByName) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery) {\n const { queryName } = observableQuery;\n if (\n queryName &&\n hasOwnProperty.call(updateQueriesByName, queryName)\n ) {\n ret[queryId] = {\n updater: updateQueriesByName[queryName],\n query: this.queryStore.get(queryId),\n };\n }\n }\n });\n }\n\n return ret;\n };\n\n this.mutationStore.initMutation(\n mutationId,\n mutation,\n variables,\n );\n\n this.dataStore.markMutationInit({\n mutationId,\n document: mutation,\n variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n optimisticResponse,\n });\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n let storeResult: FetchResult | null;\n let error: ApolloError;\n\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse,\n },\n variables,\n false,\n ).subscribe({\n next(result: FetchResult) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors,\n });\n return;\n }\n\n self.mutationStore.markMutationResult(mutationId);\n\n if (fetchPolicy !== 'no-cache') {\n self.dataStore.markMutationResult({\n mutationId,\n result,\n document: mutation,\n variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n });\n }\n\n storeResult = result;\n },\n\n error(err: Error) {\n self.mutationStore.markMutationError(mutationId, err);\n self.dataStore.markMutationComplete({\n mutationId,\n optimisticResponse,\n });\n self.broadcastQueries();\n self.setQuery(mutationId, () => ({ document: null }));\n reject(\n new ApolloError({\n networkError: err,\n }),\n );\n },\n\n complete() {\n if (error) {\n self.mutationStore.markMutationError(mutationId, error);\n }\n\n self.dataStore.markMutationComplete({\n mutationId,\n optimisticResponse,\n });\n\n self.broadcastQueries();\n\n if (error) {\n reject(error);\n return;\n }\n\n // allow for conditional refetches\n // XXX do we want to make this the only API one day?\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult!);\n }\n\n const refetchQueryPromises: Promise<\n ApolloQueryResult[] | ApolloQueryResult<{}>\n >[] = [];\n\n if (isNonEmptyArray(refetchQueries)) {\n refetchQueries.forEach(refetchQuery => {\n if (typeof refetchQuery === 'string') {\n self.queries.forEach(({ observableQuery }) => {\n if (\n observableQuery &&\n observableQuery.queryName === refetchQuery\n ) {\n refetchQueryPromises.push(observableQuery.refetch());\n }\n });\n } else {\n const queryOptions: QueryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only',\n };\n\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n\n refetchQueryPromises.push(self.query(queryOptions));\n }\n });\n }\n\n Promise.all(\n awaitRefetchQueries ? refetchQueryPromises : [],\n ).then(() => {\n self.setQuery(mutationId, () => ({ document: null }));\n\n if (\n errorPolicy === 'ignore' &&\n storeResult &&\n graphQLResultHasError(storeResult)\n ) {\n delete storeResult.errors;\n }\n\n resolve(storeResult!);\n });\n },\n });\n });\n }\n\n public async fetchQuery(\n queryId: string,\n options: WatchQueryOptions,\n fetchType?: FetchType,\n // This allows us to track if this is a query spawned by a `fetchMore`\n // call for another query. We need this data to compute the `fetchMore`\n // network status for the query this is fetching for.\n fetchMoreForQueryId?: string,\n ): Promise> {\n const {\n metadata = null,\n fetchPolicy = 'cache-first', // cache-first is the default fetch policy.\n context = {},\n } = options;\n\n const query = this.transform(options.query).document;\n\n let variables = this.getVariables(query, options.variables);\n\n if (this.transform(query).hasClientExports) {\n variables = await this.localState.addExportedVariables(query, variables, context);\n }\n\n options = { ...options, variables };\n\n let storeResult: any;\n const isNetworkOnly =\n fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n let needToFetch = isNetworkOnly;\n\n // Unless we are completely skipping the cache, we want to diff the query\n // against the cache before we fetch it from the network interface.\n if (!isNetworkOnly) {\n const { complete, result } = this.dataStore.getCache().diff({\n query,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n // If we're in here, only fetch if we have missing fields\n needToFetch = !complete || fetchPolicy === 'cache-and-network';\n storeResult = result;\n }\n\n let shouldFetch =\n needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n\n // we need to check to see if this is an operation that uses the @live directive\n if (hasDirectives(['live'], query)) shouldFetch = true;\n\n const requestId = this.idCounter++;\n\n // set up a watcher to listen to cache updates\n const cancel = fetchPolicy !== 'no-cache'\n ? this.updateQueryWatch(queryId, query, options)\n : undefined;\n\n // Initialize query in store with unique requestId\n this.setQuery(queryId, () => ({\n document: query,\n lastRequestId: requestId,\n invalidated: true,\n cancel,\n }));\n\n this.invalidate(fetchMoreForQueryId);\n\n this.queryStore.initQuery({\n queryId,\n document: query,\n storePreviousVariables: shouldFetch,\n variables,\n isPoll: fetchType === FetchType.poll,\n isRefetch: fetchType === FetchType.refetch,\n metadata,\n fetchMoreForQueryId,\n });\n\n this.broadcastQueries();\n\n if (shouldFetch) {\n const networkResult = this.fetchRequest({\n requestId,\n queryId,\n document: query,\n options,\n fetchMoreForQueryId,\n }).catch(error => {\n // This is for the benefit of `refetch` promises, which currently don't get their errors\n // through the store like watchQuery observers do\n if (isApolloError(error)) {\n throw error;\n } else {\n if (requestId >= this.getQuery(queryId).lastRequestId) {\n this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n this.broadcastQueries();\n }\n throw new ApolloError({ networkError: error });\n }\n });\n\n // we don't return the promise for cache-and-network since it is already\n // returned below from the cache\n if (fetchPolicy !== 'cache-and-network') {\n return networkResult;\n }\n\n // however we need to catch the error so it isn't unhandled in case of\n // network error\n networkResult.catch(() => {});\n }\n\n // If there is no part of the query we need to fetch from the server (or,\n // fetchPolicy is cache-only), we just write the store result as the final result.\n this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n\n if (this.transform(query).hasForcedResolvers) {\n return this.localState.runResolvers({\n document: query,\n remoteResult: { data: storeResult },\n context,\n variables,\n onlyRunForcedResolvers: true,\n }).then((result: FetchResult) => {\n this.markQueryResult(\n queryId,\n result,\n options,\n fetchMoreForQueryId,\n );\n this.broadcastQueries();\n return result;\n });\n }\n\n this.broadcastQueries();\n\n // If we have no query to send to the server, we should return the result\n // found within the store.\n return { data: storeResult };\n }\n\n private markQueryResult(\n queryId: string,\n result: FetchResult,\n {\n fetchPolicy,\n variables,\n errorPolicy,\n }: WatchQueryOptions,\n fetchMoreForQueryId?: string,\n ) {\n if (fetchPolicy === 'no-cache') {\n this.setQuery(queryId, () => ({\n newData: { result: result.data, complete: true },\n }));\n } else {\n this.dataStore.markQueryResult(\n result,\n this.getQuery(queryId).document!,\n variables,\n fetchMoreForQueryId,\n errorPolicy === 'ignore' || errorPolicy === 'all',\n );\n }\n }\n\n // Returns a query listener that will update the given observer based on the\n // results (or lack thereof) for a particular query.\n public queryListenerForObserver(\n queryId: string,\n options: WatchQueryOptions,\n observer: Observer>,\n ): QueryListener {\n function invoke(method: 'next' | 'error', argument: any) {\n if (observer[method]) {\n try {\n observer[method]!(argument);\n } catch (e) {\n invariant.error(e);\n }\n } else if (method === 'error') {\n invariant.error(argument);\n }\n }\n\n return (\n queryStoreValue: QueryStoreValue,\n newData?: Cache.DiffResult,\n ) => {\n // we're going to take a look at the data, so the query is no longer invalidated\n this.invalidate(queryId, false);\n\n // The query store value can be undefined in the event of a store\n // reset.\n if (!queryStoreValue) return;\n\n const { observableQuery, document } = this.getQuery(queryId);\n\n const fetchPolicy = observableQuery\n ? observableQuery.options.fetchPolicy\n : options.fetchPolicy;\n\n // don't watch the store for queries on standby\n if (fetchPolicy === 'standby') return;\n\n const loading = isNetworkRequestInFlight(queryStoreValue.networkStatus);\n const lastResult = observableQuery && observableQuery.getLastResult();\n\n const networkStatusChanged = !!(\n lastResult &&\n lastResult.networkStatus !== queryStoreValue.networkStatus\n );\n\n const shouldNotifyIfLoading =\n options.returnPartialData ||\n (!newData && queryStoreValue.previousVariables) ||\n (networkStatusChanged && options.notifyOnNetworkStatusChange) ||\n fetchPolicy === 'cache-only' ||\n fetchPolicy === 'cache-and-network';\n\n if (loading && !shouldNotifyIfLoading) {\n return;\n }\n\n const hasGraphQLErrors = isNonEmptyArray(queryStoreValue.graphQLErrors);\n\n const errorPolicy: ErrorPolicy = observableQuery\n && observableQuery.options.errorPolicy\n || options.errorPolicy\n || 'none';\n\n // If we have either a GraphQL error or a network error, we create\n // an error and tell the observer about it.\n if (errorPolicy === 'none' && hasGraphQLErrors || queryStoreValue.networkError) {\n return invoke('error', new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n }));\n }\n\n try {\n let data: any;\n let isMissing: boolean;\n\n if (newData) {\n // As long as we're using the cache, clear out the latest\n // `newData`, since it will now become the current data. We need\n // to keep the `newData` stored with the query when using\n // `no-cache` since `getCurrentQueryResult` attemps to pull from\n // `newData` first, following by trying the cache (which won't\n // find a hit for `no-cache`).\n if (fetchPolicy !== 'no-cache' && fetchPolicy !== 'network-only') {\n this.setQuery(queryId, () => ({ newData: null }));\n }\n\n data = newData.result;\n isMissing = !newData.complete;\n } else {\n const lastError = observableQuery && observableQuery.getLastError();\n const errorStatusChanged =\n errorPolicy !== 'none' &&\n (lastError && lastError.graphQLErrors) !==\n queryStoreValue.graphQLErrors;\n\n if (lastResult && lastResult.data && !errorStatusChanged) {\n data = lastResult.data;\n isMissing = false;\n } else {\n const diffResult = this.dataStore.getCache().diff({\n query: document as DocumentNode,\n variables:\n queryStoreValue.previousVariables ||\n queryStoreValue.variables,\n returnPartialData: true,\n optimistic: true,\n });\n\n data = diffResult.result;\n isMissing = !diffResult.complete;\n }\n }\n\n // If there is some data missing and the user has told us that they\n // do not tolerate partial data then we want to return the previous\n // result and mark it as stale.\n const stale = isMissing && !(\n options.returnPartialData ||\n fetchPolicy === 'cache-only'\n );\n\n const resultFromStore: ApolloQueryResult = {\n data: stale ? lastResult && lastResult.data : data,\n loading,\n networkStatus: queryStoreValue.networkStatus,\n stale,\n };\n\n // if the query wants updates on errors we need to add it to the result\n if (errorPolicy === 'all' && hasGraphQLErrors) {\n resultFromStore.errors = queryStoreValue.graphQLErrors;\n }\n\n invoke('next', resultFromStore);\n\n } catch (networkError) {\n invoke('error', new ApolloError({ networkError }));\n }\n };\n }\n\n private transformCache = new (canUseWeakMap ? WeakMap : Map)<\n DocumentNode,\n Readonly<{\n document: Readonly;\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n clientQuery: Readonly | null;\n serverQuery: Readonly | null;\n defaultVars: Readonly;\n }>\n >();\n\n public transform(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const cache = this.dataStore.getCache();\n const transformed = cache.transformDocument(document);\n const forLink = removeConnectionDirectiveFromDocument(\n cache.transformForLink(transformed));\n\n const clientQuery = this.localState.clientQuery(transformed);\n const serverQuery = this.localState.serverQuery(forLink);\n\n const cacheEntry = {\n document: transformed,\n // TODO These two calls (hasClientExports and shouldForceResolvers)\n // could probably be merged into a single traversal.\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery,\n serverQuery,\n defaultVars: getDefaultValues(\n getOperationDefinition(transformed)\n ) as OperationVariables,\n };\n\n const add = (doc: DocumentNode | null) => {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry);\n }\n }\n // Add cacheEntry to the transformCache using several different keys,\n // since any one of these documents could end up getting passed to the\n // transform method again in the future.\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables(\n document: DocumentNode,\n variables?: OperationVariables,\n ): OperationVariables {\n return {\n ...this.transform(document).defaultVars,\n ...variables,\n };\n }\n\n // The shouldSubscribe option is a temporary fix that tells us whether watchQuery was called\n // directly (i.e. through ApolloClient) or through the query method within QueryManager.\n // Currently, the query method uses watchQuery in order to handle non-network errors correctly\n // but we don't want to keep track observables issued for the query method since those aren't\n // supposed to be refetched in the event of a store reset. Once we unify error handling for\n // network errors and non-network errors, the shouldSubscribe option will go away.\n\n public watchQuery(\n options: WatchQueryOptions,\n shouldSubscribe = true,\n ): ObservableQuery {\n invariant(\n options.fetchPolicy !== 'standby',\n 'client.watchQuery cannot be called with fetchPolicy set to \"standby\"',\n );\n\n // assign variable default values if supplied\n options.variables = this.getVariables(options.query, options.variables);\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n let transformedOptions = { ...options } as WatchQueryOptions;\n\n return new ObservableQuery({\n queryManager: this,\n options: transformedOptions,\n shouldSubscribe: shouldSubscribe,\n });\n }\n\n public query(options: QueryOptions): Promise> {\n invariant(\n options.query,\n 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.',\n );\n\n invariant(\n options.query.kind === 'Document',\n 'You must wrap the query string in a \"gql\" tag.',\n );\n\n invariant(\n !(options as any).returnPartialData,\n 'returnPartialData option only supported on watchQuery.',\n );\n\n invariant(\n !(options as any).pollInterval,\n 'pollInterval option only supported on watchQuery.',\n );\n\n return new Promise>((resolve, reject) => {\n const watchedQuery = this.watchQuery(options, false);\n this.fetchQueryRejectFns.set(`query:${watchedQuery.queryId}`, reject);\n watchedQuery\n .result()\n .then(resolve, reject)\n // Since neither resolve nor reject throw or return a value, this .then\n // handler is guaranteed to execute. Note that it doesn't really matter\n // when we remove the reject function from this.fetchQueryRejectFns,\n // since resolve and reject are mutually idempotent. In fact, it would\n // not be incorrect to let reject functions accumulate over time; it's\n // just a waste of memory.\n .then(() =>\n this.fetchQueryRejectFns.delete(`query:${watchedQuery.queryId}`),\n );\n });\n }\n\n public generateQueryId() {\n return String(this.idCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n this.stopPollingQuery(queryId);\n this.queryStore.stopQuery(queryId);\n this.invalidate(queryId);\n }\n\n public addQueryListener(queryId: string, listener: QueryListener) {\n this.setQuery(queryId, ({ listeners }) => {\n listeners.add(listener);\n return { invalidated: false };\n });\n }\n\n public updateQueryWatch(\n queryId: string,\n document: DocumentNode,\n options: WatchQueryOptions,\n ) {\n const { cancel } = this.getQuery(queryId);\n if (cancel) cancel();\n const previousResult = () => {\n let previousResult = null;\n const { observableQuery } = this.getQuery(queryId);\n if (observableQuery) {\n const lastResult = observableQuery.getLastResult();\n if (lastResult) {\n previousResult = lastResult.data;\n }\n }\n\n return previousResult;\n };\n return this.dataStore.getCache().watch({\n query: document as DocumentNode,\n variables: options.variables,\n optimistic: true,\n previousResult,\n callback: newData => {\n this.setQuery(queryId, () => ({ invalidated: true, newData }));\n },\n });\n }\n\n // Adds an ObservableQuery to this.observableQueries and to this.observableQueriesByName.\n public addObservableQuery(\n queryId: string,\n observableQuery: ObservableQuery,\n ) {\n this.setQuery(queryId, () => ({ observableQuery }));\n }\n\n public removeObservableQuery(queryId: string) {\n const { cancel } = this.getQuery(queryId);\n this.setQuery(queryId, () => ({ observableQuery: null }));\n if (cancel) cancel();\n }\n\n public clearStore(): Promise {\n // Before we have sent the reset action to the store,\n // we can no longer rely on the results returned by in-flight\n // requests since these may depend on values that previously existed\n // in the data portion of the store. So, we cancel the promises and observers\n // that we have issued so far and not yet resolved (in the case of\n // queries).\n this.fetchQueryRejectFns.forEach(reject => {\n reject(new InvariantError(\n 'Store reset while query was in flight (not completed in link chain)',\n ));\n });\n\n const resetIds: string[] = [];\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery) resetIds.push(queryId);\n });\n\n this.queryStore.reset(resetIds);\n this.mutationStore.reset();\n\n // begin removing data from the store\n return this.dataStore.reset();\n }\n\n public resetStore(): Promise[]> {\n // Similarly, we have to have to refetch each of the queries currently being\n // observed. We refetch instead of error'ing on these since the assumption is that\n // resetting the store doesn't eliminate the need for the queries currently being\n // watched. If there is an existing query in flight when the store is reset,\n // the promise for it will be rejected and its results will not be written to the\n // store.\n return this.clearStore().then(() => {\n return this.reFetchObservableQueries();\n });\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false,\n ): Promise[]> {\n const observableQueryPromises: Promise>[] = [];\n\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery) {\n const fetchPolicy = observableQuery.options.fetchPolicy;\n\n observableQuery.resetLastResults();\n if (\n fetchPolicy !== 'cache-only' &&\n (includeStandby || fetchPolicy !== 'standby')\n ) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n\n this.setQuery(queryId, () => ({ newData: null }));\n this.invalidate(queryId);\n }\n });\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public observeQuery(\n queryId: string,\n options: WatchQueryOptions,\n observer: Observer>,\n ) {\n this.addQueryListener(\n queryId,\n this.queryListenerForObserver(queryId, options, observer),\n );\n return this.fetchQuery(queryId, options);\n }\n\n public startQuery(\n queryId: string,\n options: WatchQueryOptions,\n listener: QueryListener,\n ) {\n invariant.warn(\"The QueryManager.startQuery method has been deprecated\");\n\n this.addQueryListener(queryId, listener);\n\n this.fetchQuery(queryId, options)\n // `fetchQuery` returns a Promise. In case of a failure it should be caucht or else the\n // console will show an `Uncaught (in promise)` message. Ignore the error for now.\n .catch(() => undefined);\n\n return queryId;\n }\n\n public startGraphQLSubscription({\n query,\n fetchPolicy,\n variables,\n }: SubscriptionOptions): Observable> {\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink(\n query,\n {},\n variables,\n false,\n ).map(result => {\n if (!fetchPolicy || fetchPolicy !== 'no-cache') {\n this.dataStore.markSubscriptionResult(\n result,\n query,\n variables,\n );\n this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n\n return result;\n });\n\n if (this.transform(query).hasClientExports) {\n const observablePromise = this.localState.addExportedVariables(\n query,\n variables,\n ).then(makeObservable);\n\n return new Observable>(observer => {\n let sub: Subscription | null = null;\n observablePromise.then(\n observable => sub = observable.subscribe(observer),\n observer.error,\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchQueryRejectFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchQueryRejectFns.delete(`query:${queryId}`);\n this.fetchQueryRejectFns.delete(`fetchRequest:${queryId}`);\n this.getQuery(queryId).subscriptions.forEach(x => x.unsubscribe());\n this.queries.delete(queryId);\n }\n\n public getCurrentQueryResult(\n observableQuery: ObservableQuery,\n optimistic: boolean = true,\n ): {\n data: T | undefined;\n partial: boolean;\n } {\n const { variables, query, fetchPolicy, returnPartialData } = observableQuery.options;\n const lastResult = observableQuery.getLastResult();\n const { newData } = this.getQuery(observableQuery.queryId);\n\n if (newData && newData.complete) {\n return { data: newData.result, partial: false };\n }\n\n if (fetchPolicy === 'no-cache' || fetchPolicy === 'network-only') {\n return { data: undefined, partial: false };\n }\n\n const { result, complete } = this.dataStore.getCache().diff({\n query,\n variables,\n previousResult: lastResult ? lastResult.data : undefined,\n returnPartialData: true,\n optimistic,\n });\n\n return {\n data: (complete || returnPartialData) ? result : void 0,\n partial: !complete,\n };\n }\n\n public getQueryWithPreviousResult(\n queryIdOrObservable: string | ObservableQuery,\n ): {\n previousResult: any;\n variables: TVariables | undefined;\n document: DocumentNode;\n } {\n let observableQuery: ObservableQuery;\n if (typeof queryIdOrObservable === 'string') {\n const { observableQuery: foundObserveableQuery } = this.getQuery(\n queryIdOrObservable,\n );\n invariant(\n foundObserveableQuery,\n `ObservableQuery with this id doesn't exist: ${queryIdOrObservable}`\n );\n observableQuery = foundObserveableQuery!;\n } else {\n observableQuery = queryIdOrObservable;\n }\n\n const { variables, query } = observableQuery.options;\n return {\n previousResult: this.getCurrentQueryResult(observableQuery, false).data,\n variables,\n document: query,\n };\n }\n\n public broadcastQueries() {\n this.onBroadcast();\n this.queries.forEach((info, id) => {\n if (info.invalidated) {\n info.listeners.forEach(listener => {\n // it's possible for the listener to be undefined if the query is being stopped\n // See here for more detail: https://github.com/apollostack/apollo-client/issues/231\n if (listener) {\n listener(this.queryStore.get(id), info.newData);\n }\n });\n }\n });\n }\n\n public getLocalState(): LocalState {\n return this.localState;\n }\n\n private inFlightLinkObservables = new Map<\n DocumentNode,\n Map>\n >();\n\n private getObservableFromLink(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n deduplication: boolean = this.queryDeduplication,\n ): Observable> {\n let observable: Observable>;\n\n const { serverQuery } = this.transform(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication\n }),\n };\n\n context = operation.context;\n\n if (deduplication) {\n const byVariables = inFlightLinkObservables.get(serverQuery) || new Map();\n inFlightLinkObservables.set(serverQuery, byVariables);\n\n const varJson = JSON.stringify(variables);\n observable = byVariables.get(varJson);\n\n if (!observable) {\n byVariables.set(\n varJson,\n observable = multiplex(\n execute(link, operation) as Observable>\n )\n );\n\n const cleanup = () => {\n byVariables.delete(varJson);\n if (!byVariables.size) inFlightLinkObservables.delete(serverQuery);\n cleanupSub.unsubscribe();\n };\n\n const cleanupSub = observable.subscribe({\n next: cleanup,\n error: cleanup,\n complete: cleanup,\n });\n }\n\n } else {\n observable = multiplex(execute(link, operation) as Observable>);\n }\n } else {\n observable = Observable.of({ data: {} } as FetchResult);\n context = this.prepareContext(context);\n }\n\n const { clientQuery } = this.transform(query);\n if (clientQuery) {\n observable = asyncMap(observable, result => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n // Takes a request id, query id, a query document and information associated with the query\n // and send it to the network interface. Returns\n // a promise for the result associated with that request.\n private fetchRequest({\n requestId,\n queryId,\n document,\n options,\n fetchMoreForQueryId,\n }: {\n requestId: number;\n queryId: string;\n document: DocumentNode;\n options: WatchQueryOptions;\n fetchMoreForQueryId?: string;\n }): Promise> {\n const { variables, errorPolicy = 'none', fetchPolicy } = options;\n let resultFromStore: any;\n let errorsFromStore: any;\n\n return new Promise>((resolve, reject) => {\n const observable = this.getObservableFromLink(\n document,\n options.context,\n variables,\n );\n\n const fqrfId = `fetchRequest:${queryId}`;\n this.fetchQueryRejectFns.set(fqrfId, reject);\n\n const cleanup = () => {\n this.fetchQueryRejectFns.delete(fqrfId);\n this.setQuery(queryId, ({ subscriptions }) => {\n subscriptions.delete(subscription);\n });\n };\n\n const subscription = observable.map((result: FetchResult) => {\n if (requestId >= this.getQuery(queryId).lastRequestId) {\n this.markQueryResult(\n queryId,\n result,\n options,\n fetchMoreForQueryId,\n );\n\n this.queryStore.markQueryResult(\n queryId,\n result,\n fetchMoreForQueryId,\n );\n\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n\n this.broadcastQueries();\n }\n\n if (errorPolicy === 'none' && isNonEmptyArray(result.errors)) {\n return reject(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n\n if (errorPolicy === 'all') {\n errorsFromStore = result.errors;\n }\n\n if (fetchMoreForQueryId || fetchPolicy === 'no-cache') {\n // We don't write fetchMore results to the store because this would overwrite\n // the original result in case an @connection directive is used.\n resultFromStore = result.data;\n } else {\n // ensure result is combined with data already in store\n const { result, complete } = this.dataStore.getCache().diff({\n variables,\n query: document,\n optimistic: false,\n returnPartialData: true,\n });\n\n if (complete || options.returnPartialData) {\n resultFromStore = result;\n }\n }\n }).subscribe({\n error(error: ApolloError) {\n cleanup();\n reject(error);\n },\n\n complete() {\n cleanup();\n resolve({\n data: resultFromStore,\n errors: errorsFromStore,\n loading: false,\n networkStatus: NetworkStatus.ready,\n stale: false,\n });\n },\n });\n\n this.setQuery(queryId, ({ subscriptions }) => {\n subscriptions.add(subscription);\n });\n });\n }\n\n private getQuery(queryId: string) {\n return (\n this.queries.get(queryId) || {\n listeners: new Set(),\n invalidated: false,\n document: null,\n newData: null,\n lastRequestId: 1,\n observableQuery: null,\n subscriptions: new Set(),\n }\n );\n }\n\n private setQuery(\n queryId: string,\n updater: (prev: QueryInfo) => Pick | void,\n ) {\n const prev = this.getQuery(queryId);\n const newInfo = { ...prev, ...updater(prev) };\n this.queries.set(queryId, newInfo);\n }\n\n private invalidate(\n queryId: string | undefined,\n invalidated = true,\n ) {\n if (queryId) {\n this.setQuery(queryId, () => ({ invalidated }));\n }\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n\n public checkInFlight(queryId: string) {\n const query = this.queryStore.get(queryId);\n\n return (\n query &&\n query.networkStatus !== NetworkStatus.ready &&\n query.networkStatus !== NetworkStatus.error\n );\n }\n\n // Map from client ID to { interval, options }.\n private pollingInfoByQueryId = new Map();\n\n public startPollingQuery(\n options: WatchQueryOptions,\n queryId: string,\n listener?: QueryListener,\n ): string {\n const { pollInterval } = options;\n\n invariant(\n pollInterval,\n 'Attempted to start a polling query without a polling interval.',\n );\n\n // Do not poll in SSR mode\n if (!this.ssrMode) {\n let info = this.pollingInfoByQueryId.get(queryId)!;\n if (!info) {\n this.pollingInfoByQueryId.set(queryId, (info = {} as any));\n }\n\n info.interval = pollInterval!;\n info.options = {\n ...options,\n fetchPolicy: 'network-only',\n };\n\n const maybeFetch = () => {\n const info = this.pollingInfoByQueryId.get(queryId);\n if (info) {\n if (this.checkInFlight(queryId)) {\n poll();\n } else {\n this.fetchQuery(queryId, info.options, FetchType.poll).then(\n poll,\n poll,\n );\n }\n }\n };\n\n const poll = () => {\n const info = this.pollingInfoByQueryId.get(queryId);\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n\n if (listener) {\n this.addQueryListener(queryId, listener);\n }\n\n poll();\n }\n\n return queryId;\n }\n\n public stopPollingQuery(queryId: string) {\n this.pollingInfoByQueryId.delete(queryId);\n }\n}\n","import { ExecutionResult, DocumentNode } from 'graphql';\nimport { ApolloCache, Cache, DataProxy } from 'apollo-cache';\n\nimport { QueryStoreValue } from '../data/queries';\nimport {\n getOperationName,\n tryFunctionOrLogError,\n graphQLResultHasError,\n} from 'apollo-utilities';\nimport { MutationQueryReducer } from '../core/types';\n\nexport type QueryWithUpdater = {\n updater: MutationQueryReducer;\n query: QueryStoreValue;\n};\n\nexport interface DataWrite {\n rootId: string;\n result: any;\n document: DocumentNode;\n operationName: string | null;\n variables: Object;\n}\n\nexport class DataStore {\n private cache: ApolloCache;\n\n constructor(initialCache: ApolloCache) {\n this.cache = initialCache;\n }\n\n public getCache(): ApolloCache {\n return this.cache;\n }\n\n public markQueryResult(\n result: ExecutionResult,\n document: DocumentNode,\n variables: any,\n fetchMoreForQueryId: string | undefined,\n ignoreErrors: boolean = false,\n ) {\n let writeWithErrors = !graphQLResultHasError(result);\n if (ignoreErrors && graphQLResultHasError(result) && result.data) {\n writeWithErrors = true;\n }\n if (!fetchMoreForQueryId && writeWithErrors) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables,\n });\n }\n }\n\n public markSubscriptionResult(\n result: ExecutionResult,\n document: DocumentNode,\n variables: any,\n ) {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (!graphQLResultHasError(result)) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n query: document,\n variables: variables,\n });\n }\n }\n\n public markMutationInit(mutation: {\n mutationId: string;\n document: DocumentNode;\n variables: any;\n updateQueries: { [queryId: string]: QueryWithUpdater };\n update: ((proxy: DataProxy, mutationResult: Object) => void) | undefined;\n optimisticResponse: Object | Function | undefined;\n }) {\n if (mutation.optimisticResponse) {\n let optimistic: Object;\n if (typeof mutation.optimisticResponse === 'function') {\n optimistic = mutation.optimisticResponse(mutation.variables);\n } else {\n optimistic = mutation.optimisticResponse;\n }\n\n this.cache.recordOptimisticTransaction(c => {\n const orig = this.cache;\n this.cache = c;\n\n try {\n this.markMutationResult({\n mutationId: mutation.mutationId,\n result: { data: optimistic },\n document: mutation.document,\n variables: mutation.variables,\n updateQueries: mutation.updateQueries,\n update: mutation.update,\n });\n } finally {\n this.cache = orig;\n }\n }, mutation.mutationId);\n }\n }\n\n public markMutationResult(mutation: {\n mutationId: string;\n result: ExecutionResult;\n document: DocumentNode;\n variables: any;\n updateQueries: { [queryId: string]: QueryWithUpdater };\n update: ((proxy: DataProxy, mutationResult: Object) => void) | undefined;\n }) {\n // Incorporate the result from this mutation into the store\n if (!graphQLResultHasError(mutation.result)) {\n const cacheWrites: Cache.WriteOptions[] = [{\n result: mutation.result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n }];\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n Object.keys(updateQueries).forEach(id => {\n const { query, updater } = updateQueries[id];\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = this.cache.diff({\n query: query.document,\n variables: query.variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = tryFunctionOrLogError(() =>\n updater(currentQueryResult, {\n mutationResult: mutation.result,\n queryName: getOperationName(query.document) || undefined,\n queryVariables: query.variables,\n }),\n );\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: query.document,\n variables: query.variables,\n });\n }\n }\n });\n }\n\n this.cache.performTransaction(c => {\n cacheWrites.forEach(write => c.write(write));\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with a\n // write action.\n const { update } = mutation;\n if (update) {\n tryFunctionOrLogError(() => update(c, mutation.result));\n }\n });\n }\n }\n\n public markMutationComplete({\n mutationId,\n optimisticResponse,\n }: {\n mutationId: string;\n optimisticResponse?: any;\n }) {\n if (optimisticResponse) {\n this.cache.removeOptimistic(mutationId);\n }\n }\n\n public markUpdateQueryResult(\n document: DocumentNode,\n variables: any,\n newResult: any,\n ) {\n this.cache.write({\n result: newResult,\n dataId: 'ROOT_QUERY',\n variables,\n query: document,\n });\n }\n\n public reset(): Promise {\n return this.cache.reset();\n }\n}\n","import {\n ApolloLink,\n FetchResult,\n GraphQLRequest,\n execute,\n} from 'apollo-link';\nimport { ExecutionResult, DocumentNode } from 'graphql';\nimport { ApolloCache, DataProxy } from 'apollo-cache';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { QueryManager } from './core/QueryManager';\nimport {\n ApolloQueryResult,\n OperationVariables,\n Resolvers,\n} from './core/types';\nimport { ObservableQuery } from './core/ObservableQuery';\nimport { LocalState, FragmentMatcher } from './core/LocalState';\nimport { Observable } from './util/Observable';\n\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n WatchQueryFetchPolicy,\n} from './core/watchQueryOptions';\n\nimport { DataStore } from './data/store';\n\nimport { version } from './version';\n\nexport interface DefaultOptions {\n watchQuery?: Partial;\n query?: Partial;\n mutate?: Partial;\n}\n\nlet hasSuggestedDevtools = false;\n\nexport type ApolloClientOptions = {\n link?: ApolloLink;\n cache: ApolloCache;\n ssrForceFetchDelay?: number;\n ssrMode?: boolean;\n connectToDevTools?: boolean;\n queryDeduplication?: boolean;\n defaultOptions?: DefaultOptions;\n assumeImmutableResults?: boolean;\n resolvers?: Resolvers | Resolvers[];\n typeDefs?: string | string[] | DocumentNode | DocumentNode[];\n fragmentMatcher?: FragmentMatcher;\n name?: string;\n version?: string;\n};\n\n/**\n * This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries\n * and mutations) to a GraphQL spec-compliant server over a {@link NetworkInterface} instance,\n * receive results from the server and cache the results in a store. It also delivers updates\n * to GraphQL queries through {@link Observable} instances.\n */\nexport default class ApolloClient implements DataProxy {\n public link: ApolloLink;\n public store: DataStore;\n public cache: ApolloCache;\n public readonly queryManager: QueryManager;\n public disableNetworkFetches: boolean;\n public version: string;\n public queryDeduplication: boolean;\n public defaultOptions: DefaultOptions = {};\n public readonly typeDefs: ApolloClientOptions['typeDefs'];\n\n private devToolsHookCb: Function;\n private resetStoreCallbacks: Array<() => Promise> = [];\n private clearStoreCallbacks: Array<() => Promise> = [];\n private localState: LocalState;\n\n /**\n * Constructs an instance of {@link ApolloClient}.\n *\n * @param link The {@link ApolloLink} over which GraphQL documents will be resolved into a response.\n *\n * @param cache The initial cache to use in the data store.\n *\n * @param ssrMode Determines whether this is being run in Server Side Rendering (SSR) mode.\n *\n * @param ssrForceFetchDelay Determines the time interval before we force fetch queries for a\n * server side render.\n *\n * @param queryDeduplication If set to false, a query will still be sent to the server even if a query\n * with identical parameters (query, variables, operationName) is already in flight.\n *\n * @param defaultOptions Used to set application wide defaults for the\n * options supplied to `watchQuery`, `query`, or\n * `mutate`.\n *\n * @param assumeImmutableResults When this option is true, the client will assume results\n * read from the cache are never mutated by application code,\n * which enables substantial performance optimizations. Passing\n * `{ freezeResults: true }` to the `InMemoryCache` constructor\n * can help enforce this immutability.\n *\n * @param name A custom name that can be used to identify this client, when\n * using Apollo client awareness features. E.g. \"iOS\".\n *\n * @param version A custom version that can be used to identify this client,\n * when using Apollo client awareness features. This is the\n * version of your client, which you may want to increment on\n * new builds. This is NOT the version of Apollo Client that\n * you are using.\n */\n constructor(options: ApolloClientOptions) {\n const {\n cache,\n ssrMode = false,\n ssrForceFetchDelay = 0,\n connectToDevTools,\n queryDeduplication = true,\n defaultOptions,\n assumeImmutableResults = false,\n resolvers,\n typeDefs,\n fragmentMatcher,\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n } = options;\n\n let { link } = options;\n\n // If a link hasn't been defined, but local state resolvers have been set,\n // setup a default empty link.\n if (!link && resolvers) {\n link = ApolloLink.empty();\n }\n\n if (!link || !cache) {\n throw new InvariantError(\n \"In order to initialize Apollo Client, you must specify 'link' and 'cache' properties in the options object.\\n\" +\n \"These options are part of the upgrade requirements when migrating from Apollo Client 1.x to Apollo Client 2.x.\\n\" +\n \"For more information, please visit: https://www.apollographql.com/docs/tutorial/client.html#apollo-client-setup\"\n );\n }\n\n // remove apollo-client supported directives\n this.link = link;\n this.cache = cache;\n this.store = new DataStore(cache);\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || {};\n this.typeDefs = typeDefs;\n\n if (ssrForceFetchDelay) {\n setTimeout(\n () => (this.disableNetworkFetches = false),\n ssrForceFetchDelay,\n );\n }\n\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n\n // Attach the client instance to window to let us be found by chrome devtools, but only in\n // development mode\n const defaultConnectToDevTools =\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n !(window as any).__APOLLO_CLIENT__;\n\n if (\n typeof connectToDevTools === 'undefined'\n ? defaultConnectToDevTools\n : connectToDevTools && typeof window !== 'undefined'\n ) {\n (window as any).__APOLLO_CLIENT__ = this;\n }\n\n /**\n * Suggest installing the devtools for developers who don't have them\n */\n if (!hasSuggestedDevtools && process.env.NODE_ENV !== 'production') {\n hasSuggestedDevtools = true;\n if (\n typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self\n ) {\n // First check if devtools is not installed\n if (\n typeof (window as any).__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined'\n ) {\n // Only for Chrome\n if (\n window.navigator &&\n window.navigator.userAgent &&\n window.navigator.userAgent.indexOf('Chrome') > -1\n ) {\n // tslint:disable-next-line\n console.debug(\n 'Download the Apollo DevTools ' +\n 'for a better development experience: ' +\n 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm',\n );\n }\n }\n }\n }\n\n this.version = version;\n\n this.localState = new LocalState({\n cache,\n client: this,\n resolvers,\n fragmentMatcher,\n });\n\n this.queryManager = new QueryManager({\n link: this.link,\n store: this.store,\n queryDeduplication,\n ssrMode,\n clientAwareness: {\n name: clientAwarenessName!,\n version: clientAwarenessVersion!,\n },\n localState: this.localState,\n assumeImmutableResults,\n onBroadcast: () => {\n if (this.devToolsHookCb) {\n this.devToolsHookCb({\n action: {},\n state: {\n queries: this.queryManager.queryStore.getStore(),\n mutations: this.queryManager.mutationStore.getStore(),\n },\n dataWithOptimisticResults: this.cache.extract(true),\n });\n }\n },\n });\n }\n\n /**\n * Call this method to terminate any active client processes, making it safe\n * to dispose of this `ApolloClient` instance.\n */\n public stop() {\n this.queryManager.stop();\n }\n\n /**\n * This watches the cache store of the query according to the options specified and\n * returns an {@link ObservableQuery}. We can subscribe to this {@link ObservableQuery} and\n * receive updated results through a GraphQL observer when the cache store changes.\n *

\n * Note that this method is not an implementation of GraphQL subscriptions. Rather,\n * it uses Apollo's store in order to reactively deliver updates to your query results.\n *

\n * For example, suppose you call watchQuery on a GraphQL query that fetches a person's\n * first and last name and this person has a particular object identifer, provided by\n * dataIdFromObject. Later, a different query fetches that same person's\n * first and last name and the first name has now changed. Then, any observers associated\n * with the results of the first query will be updated with a new result object.\n *

\n * Note that if the cache does not change, the subscriber will *not* be notified.\n *

\n * See [here](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.3mb0cbcmc) for\n * a description of store reactivity.\n */\n public watchQuery(\n options: WatchQueryOptions,\n ): ObservableQuery {\n if (this.defaultOptions.watchQuery) {\n options = {\n ...this.defaultOptions.watchQuery,\n ...options,\n } as WatchQueryOptions;\n }\n\n // XXX Overwriting options is probably not the best way to do this long term...\n if (\n this.disableNetworkFetches &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')\n ) {\n options = { ...options, fetchPolicy: 'cache-first' };\n }\n\n return this.queryManager.watchQuery(options);\n }\n\n /**\n * This resolves a single query according to the options specified and\n * returns a {@link Promise} which is either resolved with the resulting data\n * or rejected with an error.\n *\n * @param options An object of type {@link QueryOptions} that allows us to\n * describe how this query should be treated e.g. whether it should hit the\n * server at all or just resolve from the cache, etc.\n */\n public query(\n options: QueryOptions,\n ): Promise> {\n if (this.defaultOptions.query) {\n options = { ...this.defaultOptions.query, ...options } as QueryOptions<\n TVariables\n >;\n }\n\n invariant(\n (options.fetchPolicy as WatchQueryFetchPolicy) !== 'cache-and-network',\n 'The cache-and-network fetchPolicy does not work with client.query, because ' +\n 'client.query can only return a single result. Please use client.watchQuery ' +\n 'to receive multiple results from the cache and the network, or consider ' +\n 'using a different fetchPolicy, such as cache-first or network-only.'\n );\n\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = { ...options, fetchPolicy: 'cache-first' };\n }\n\n return this.queryManager.query(options);\n }\n\n /**\n * This resolves a single mutation according to the options specified and returns a\n * {@link Promise} which is either resolved with the resulting data or rejected with an\n * error.\n *\n * It takes options as an object with the following keys and values:\n */\n public mutate(\n options: MutationOptions,\n ): Promise> {\n if (this.defaultOptions.mutate) {\n options = {\n ...this.defaultOptions.mutate,\n ...options,\n } as MutationOptions;\n }\n\n return this.queryManager.mutate(options);\n }\n\n /**\n * This subscribes to a graphql subscription according to the options specified and returns an\n * {@link Observable} which either emits received data or an error.\n */\n public subscribe(\n options: SubscriptionOptions,\n ): Observable> {\n return this.queryManager.startGraphQLSubscription(options);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL query without making a network request. This method will start at\n * the root query. To start at a specific id returned by `dataIdFromObject`\n * use `readFragment`.\n *\n * @param optimistic Set to `true` to allow `readQuery` to return\n * optimistic results. Is `false` by default.\n */\n public readQuery(\n options: DataProxy.Query,\n optimistic: boolean = false,\n ): T | null {\n return this.cache.readQuery(options, optimistic);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL fragment without making a network request. This method will read a\n * GraphQL fragment from any arbitrary id that is currently cached, unlike\n * `readQuery` which will only read from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are reading. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n *\n * @param optimistic Set to `true` to allow `readFragment` to return\n * optimistic results. Is `false` by default.\n */\n public readFragment(\n options: DataProxy.Fragment,\n optimistic: boolean = false,\n ): T | null {\n return this.cache.readFragment(options, optimistic);\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL query directly to\n * the store. This method will start at the root query. To start at a\n * specific id returned by `dataIdFromObject` then use `writeFragment`.\n */\n public writeQuery(\n options: DataProxy.WriteQueryOptions,\n ): void {\n const result = this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n return result;\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL fragment directly to\n * the store. This method will write to a GraphQL fragment from any arbitrary\n * id that is currently cached, unlike `writeQuery` which will only write\n * from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are writing. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n */\n public writeFragment(\n options: DataProxy.WriteFragmentOptions,\n ): void {\n const result = this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n return result;\n }\n\n /**\n * Sugar for writeQuery & writeFragment\n * This method will construct a query from the data object passed in.\n * If no id is supplied, writeData will write the data to the root.\n * If an id is supplied, writeData will write a fragment to the object\n * specified by the id in the store.\n *\n * Since you aren't passing in a query to check the shape of the data,\n * you must pass in an object that conforms to the shape of valid GraphQL data.\n */\n public writeData(\n options: DataProxy.WriteDataOptions,\n ): void {\n const result = this.cache.writeData(options);\n this.queryManager.broadcastQueries();\n return result;\n }\n\n public __actionHookForDevTools(cb: () => any) {\n this.devToolsHookCb = cb;\n }\n\n public __requestRaw(payload: GraphQLRequest): Observable {\n return execute(this.link, payload);\n }\n\n /**\n * This initializes the query manager that tracks queries and the cache\n */\n public initQueryManager(): QueryManager {\n invariant.warn(\n 'Calling the initQueryManager method is no longer necessary, ' +\n 'and it will be removed from ApolloClient in version 3.0.',\n );\n return this.queryManager;\n }\n\n /**\n * Resets your entire store by clearing out your cache and then re-executing\n * all of your active queries. This makes it so that you may guarantee that\n * there is no data left in your store from a time before you called this\n * method.\n *\n * `resetStore()` is useful when your user just logged out. You’ve removed the\n * user session, and you now want to make sure that any references to data you\n * might have fetched while the user session was active is gone.\n *\n * It is important to remember that `resetStore()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n public resetStore(): Promise[] | null> {\n return Promise.resolve()\n .then(() => this.queryManager.clearStore())\n .then(() => Promise.all(this.resetStoreCallbacks.map(fn => fn())))\n .then(() => this.reFetchObservableQueries());\n }\n\n /**\n * Remove all data from the store. Unlike `resetStore`, `clearStore` will\n * not refetch any active queries.\n */\n public clearStore(): Promise {\n return Promise.resolve()\n .then(() => this.queryManager.clearStore())\n .then(() => Promise.all(this.clearStoreCallbacks.map(fn => fn())));\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * reset. `onResetStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onResetStore(cb: () => Promise): () => void {\n this.resetStoreCallbacks.push(cb);\n return () => {\n this.resetStoreCallbacks = this.resetStoreCallbacks.filter(c => c !== cb);\n };\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * cleared. `onClearStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onClearStore(cb: () => Promise): () => void {\n this.clearStoreCallbacks.push(cb);\n return () => {\n this.clearStoreCallbacks = this.clearStoreCallbacks.filter(c => c !== cb);\n };\n }\n\n /**\n * Refetches all of your active queries.\n *\n * `reFetchObservableQueries()` is useful if you want to bring the client back to proper state in case of a network outage\n *\n * It is important to remember that `reFetchObservableQueries()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n * Takes optional parameter `includeStandby` which will include queries in standby-mode when refetching.\n */\n public reFetchObservableQueries(\n includeStandby?: boolean,\n ): Promise[]> {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n }\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public extract(optimistic?: boolean): TCacheShape {\n return this.cache.extract(optimistic);\n }\n\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public restore(serializedState: TCacheShape): ApolloCache {\n return this.cache.restore(serializedState);\n }\n\n /**\n * Add additional local resolvers.\n */\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.addResolvers(resolvers);\n }\n\n /**\n * Set (override existing) local resolvers.\n */\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.setResolvers(resolvers);\n }\n\n /**\n * Get all registered local resolvers.\n */\n public getResolvers() {\n return this.localState.getResolvers();\n }\n\n /**\n * Set a custom local state fragment matcher.\n */\n public setLocalStateFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n }\n}\n","export const version = \"2.6.10\"","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (typeof ArrayBuffer !== 'undefined') {\n base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n open: 0 // non-ws\n , close: 1 // non-ws\n , ping: 2\n , pong: 3\n , message: 4\n , upgrade: 5\n , noop: 6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n * [ ]\n *\n * Example:\n *\n * 5hello world\n * 3\n * 4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = false;\n }\n\n if (typeof utf8encode === 'function') {\n callback = utf8encode;\n utf8encode = null;\n }\n\n var data = (packet.data === undefined)\n ? undefined\n : packet.data.buffer || packet.data;\n\n if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) {\n return encodeArrayBuffer(packet, supportsBinary, callback);\n } else if (typeof Blob !== 'undefined' && data instanceof Blob) {\n return encodeBlob(packet, supportsBinary, callback);\n }\n\n // might be an object with { base64: true, data: dataAsBase64String }\n if (data && data.base64) {\n return encodeBase64Object(packet, callback);\n }\n\n // Sending data as a utf-8 string\n var encoded = packets[packet.type];\n\n // data fragment is optional\n if (undefined !== packet.data) {\n encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n }\n\n return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n // packet data is an object { base64: true, data: dataAsBase64String }\n var message = 'b' + exports.packets[packet.type] + packet.data.data;\n return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var data = packet.data;\n var contentArray = new Uint8Array(data);\n var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n resultBuffer[0] = packets[packet.type];\n for (var i = 0; i < contentArray.length; i++) {\n resultBuffer[i+1] = contentArray[i];\n }\n\n return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var fr = new FileReader();\n fr.onload = function() {\n exports.encodePacket({ type: packet.type, data: fr.result }, supportsBinary, true, callback);\n };\n return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n if (dontSendBlobs) {\n return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n }\n\n var length = new Uint8Array(1);\n length[0] = packets[packet.type];\n var blob = new Blob([length.buffer, packet.data]);\n\n return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n var message = 'b' + exports.packets[packet.type];\n if (typeof Blob !== 'undefined' && packet.data instanceof Blob) {\n var fr = new FileReader();\n fr.onload = function() {\n var b64 = fr.result.split(',')[1];\n callback(message + b64);\n };\n return fr.readAsDataURL(packet.data);\n }\n\n var b64data;\n try {\n b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n } catch (e) {\n // iPhone Safari doesn't let you apply with typed arrays\n var typed = new Uint8Array(packet.data);\n var basic = new Array(typed.length);\n for (var i = 0; i < typed.length; i++) {\n basic[i] = typed[i];\n }\n b64data = String.fromCharCode.apply(null, basic);\n }\n message += btoa(b64data);\n return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n if (data === undefined) {\n return err;\n }\n // String data\n if (typeof data === 'string') {\n if (data.charAt(0) === 'b') {\n return exports.decodeBase64Packet(data.substr(1), binaryType);\n }\n\n if (utf8decode) {\n data = tryDecode(data);\n if (data === false) {\n return err;\n }\n }\n var type = data.charAt(0);\n\n if (Number(type) != type || !packetslist[type]) {\n return err;\n }\n\n if (data.length > 1) {\n return { type: packetslist[type], data: data.substring(1) };\n } else {\n return { type: packetslist[type] };\n }\n }\n\n var asArray = new Uint8Array(data);\n var type = asArray[0];\n var rest = sliceBuffer(data, 1);\n if (Blob && binaryType === 'blob') {\n rest = new Blob([rest]);\n }\n return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n try {\n data = utf8.decode(data, { strict: false });\n } catch (e) {\n return false;\n }\n return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n var type = packetslist[msg.charAt(0)];\n if (!base64encoder) {\n return { type: type, data: { base64: true, data: msg.substr(1) } };\n }\n\n var data = base64encoder.decode(msg.substr(1));\n\n if (binaryType === 'blob' && Blob) {\n data = new Blob([data]);\n }\n\n return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n * :data\n *\n * Example:\n *\n * 11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = null;\n }\n\n var isBinary = hasBinary(packets);\n\n if (supportsBinary && isBinary) {\n if (Blob && !dontSendBlobs) {\n return exports.encodePayloadAsBlob(packets, callback);\n }\n\n return exports.encodePayloadAsArrayBuffer(packets, callback);\n }\n\n if (!packets.length) {\n return callback('0:');\n }\n\n function setLengthHeader(message) {\n return message.length + ':' + message;\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n doneCallback(null, setLengthHeader(message));\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(results.join(''));\n });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n var result = new Array(ary.length);\n var next = after(ary.length, done);\n\n var eachWithIndex = function(i, el, cb) {\n each(el, function(error, msg) {\n result[i] = msg;\n cb(error, result);\n });\n };\n\n for (var i = 0; i < ary.length; i++) {\n eachWithIndex(i, ary[i], next);\n }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n if (typeof data !== 'string') {\n return exports.decodePayloadAsBinary(data, binaryType, callback);\n }\n\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var packet;\n if (data === '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n var length = '', n, msg;\n\n for (var i = 0, l = data.length; i < l; i++) {\n var chr = data.charAt(i);\n\n if (chr !== ':') {\n length += chr;\n continue;\n }\n\n if (length === '' || (length != (n = Number(length)))) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n msg = data.substr(i + 1, n);\n\n if (length != msg.length) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n if (msg.length) {\n packet = exports.decodePacket(msg, binaryType, false);\n\n if (err.type === packet.type && err.data === packet.data) {\n // parser error in individual packet - ignoring payload\n return callback(err, 0, 1);\n }\n\n var ret = callback(packet, i + n, l);\n if (false === ret) return;\n }\n\n // advance cursor\n i += n;\n length = '';\n }\n\n if (length !== '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string>[...]\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n if (!packets.length) {\n return callback(new ArrayBuffer(0));\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(data) {\n return doneCallback(null, data);\n });\n }\n\n map(packets, encodeOne, function(err, encodedPackets) {\n var totalLength = encodedPackets.reduce(function(acc, p) {\n var len;\n if (typeof p === 'string'){\n len = p.length;\n } else {\n len = p.byteLength;\n }\n return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n }, 0);\n\n var resultArray = new Uint8Array(totalLength);\n\n var bufferIndex = 0;\n encodedPackets.forEach(function(p) {\n var isString = typeof p === 'string';\n var ab = p;\n if (isString) {\n var view = new Uint8Array(p.length);\n for (var i = 0; i < p.length; i++) {\n view[i] = p.charCodeAt(i);\n }\n ab = view.buffer;\n }\n\n if (isString) { // not true binary\n resultArray[bufferIndex++] = 0;\n } else { // true binary\n resultArray[bufferIndex++] = 1;\n }\n\n var lenStr = ab.byteLength.toString();\n for (var i = 0; i < lenStr.length; i++) {\n resultArray[bufferIndex++] = parseInt(lenStr[i]);\n }\n resultArray[bufferIndex++] = 255;\n\n var view = new Uint8Array(ab);\n for (var i = 0; i < view.length; i++) {\n resultArray[bufferIndex++] = view[i];\n }\n });\n\n return callback(resultArray.buffer);\n });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(encoded) {\n var binaryIdentifier = new Uint8Array(1);\n binaryIdentifier[0] = 1;\n if (typeof encoded === 'string') {\n var view = new Uint8Array(encoded.length);\n for (var i = 0; i < encoded.length; i++) {\n view[i] = encoded.charCodeAt(i);\n }\n encoded = view.buffer;\n binaryIdentifier[0] = 0;\n }\n\n var len = (encoded instanceof ArrayBuffer)\n ? encoded.byteLength\n : encoded.size;\n\n var lenStr = len.toString();\n var lengthAry = new Uint8Array(lenStr.length + 1);\n for (var i = 0; i < lenStr.length; i++) {\n lengthAry[i] = parseInt(lenStr[i]);\n }\n lengthAry[lenStr.length] = 255;\n\n if (Blob) {\n var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n doneCallback(null, blob);\n }\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(new Blob(results));\n });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var bufferTail = data;\n var buffers = [];\n\n while (bufferTail.byteLength > 0) {\n var tailArray = new Uint8Array(bufferTail);\n var isString = tailArray[0] === 0;\n var msgLength = '';\n\n for (var i = 1; ; i++) {\n if (tailArray[i] === 255) break;\n\n // 310 = char length of Number.MAX_VALUE\n if (msgLength.length > 310) {\n return callback(err, 0, 1);\n }\n\n msgLength += tailArray[i];\n }\n\n bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n msgLength = parseInt(msgLength);\n\n var msg = sliceBuffer(bufferTail, 0, msgLength);\n if (isString) {\n try {\n msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n } catch (e) {\n // iPhone Safari doesn't let you apply to typed arrays\n var typed = new Uint8Array(msg);\n msg = '';\n for (var i = 0; i < typed.length; i++) {\n msg += String.fromCharCode(typed[i]);\n }\n }\n }\n\n buffers.push(msg);\n bufferTail = sliceBuffer(bufferTail, msgLength);\n }\n\n var total = buffers.length;\n buffers.forEach(function(buffer, i) {\n callback(exports.decodePacket(buffer, binaryType, true), i, total);\n });\n};\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}","var nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\nfunction log(...args) {\n\t// This hackery is required for IE8/9, where\n\t// the `console.log` function doesn't have 'apply'\n\treturn typeof console === 'object' &&\n\t\tconsole.log &&\n\t\tconsole.log(...args);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","/**\r\n * Compiles a querystring\r\n * Returns string representation of the object\r\n *\r\n * @param {Object}\r\n * @api private\r\n */\r\n\r\nexports.encode = function (obj) {\r\n var str = '';\r\n\r\n for (var i in obj) {\r\n if (obj.hasOwnProperty(i)) {\r\n if (str.length) str += '&';\r\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n }\r\n }\r\n\r\n return str;\r\n};\r\n\r\n/**\r\n * Parses a simple querystring into an object\r\n *\r\n * @param {String} qs\r\n * @api private\r\n */\r\n\r\nexports.decode = function(qs){\r\n var qry = {};\r\n var pairs = qs.split('&');\r\n for (var i = 0, l = pairs.length; i < l; i++) {\r\n var pair = pairs[i].split('=');\r\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n }\r\n return qry;\r\n};\r\n","\nmodule.exports = function(a, b){\n var fn = function(){};\n fn.prototype = b.prototype;\n a.prototype = new fn;\n a.prototype.constructor = a;\n};","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\nfunction log(...args) {\n\t// This hackery is required for IE8/9, where\n\t// the `console.log` function doesn't have 'apply'\n\treturn typeof console === 'object' &&\n\t\tconsole.log &&\n\t\tconsole.log(...args);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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 = throttle;\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\nimport nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n // $FlowFixMe(>=0.90.0)\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(lines);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n while (lines.length > 0 && isBlank(lines[0])) {\n lines.shift();\n }\n\n while (lines.length > 0 && isBlank(lines[lines.length - 1])) {\n lines.pop();\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.join('\\n');\n} // @internal\n\nexport function getBlockStringIndentation(lines) {\n var commonIndent = null;\n\n for (var i = 1; i < lines.length; i++) {\n var line = lines[i];\n var indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n if (commonIndent === null || indent < commonIndent) {\n commonIndent = indent;\n\n if (commonIndent === 0) {\n break;\n }\n }\n }\n\n return commonIndent === null ? 0 : commonIndent;\n}\n\nfunction leadingWhitespace(str) {\n var i = 0;\n\n while (i < str.length && (str[i] === ' ' || str[i] === '\\t')) {\n i++;\n }\n\n return i;\n}\n\nfunction isBlank(str) {\n return leadingWhitespace(str) === str.length;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n */\n\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","import { parse, stringify } from 'qs';\nimport 'isomorphic-fetch';\n\nfunction _defineProperty(obj, key, value) {\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\n return obj;\n}\n\nvar defineProperty = _defineProperty;\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nvar objectSpread = _objectSpread;\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nvar arrayWithoutHoles = _arrayWithoutHoles;\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nvar iterableToArray = _iterableToArray;\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar nonIterableSpread = _nonIterableSpread;\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nvar toConsumableArray = _toConsumableArray;\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar classCallCheck = _classCallCheck;\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nvar createClass = _createClass;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar _typeof_1 = createCommonjsModule(function (module) {\nfunction _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\n});\n\n// 返回一个组合了所有插件的“插件”\nfunction compose(middlewares) {\n if (!Array.isArray(middlewares)) throw new TypeError('Middlewares must be an array!');\n var middlewaresLen = middlewares.length;\n\n for (var i = 0; i < middlewaresLen; i++) {\n if (typeof middlewares[i] !== 'function') {\n throw new TypeError('Middleware must be componsed of function');\n }\n }\n\n return function wrapMiddlewares(params, next) {\n var index = -1;\n\n function dispatch(i) {\n if (i <= index) {\n return Promise.reject(new Error('next() should not be called multiple times in one middleware!'));\n }\n\n index = i;\n var fn = middlewares[i] || next;\n if (!fn) return Promise.resolve();\n\n try {\n return Promise.resolve(fn(params, function () {\n return dispatch(i + 1);\n }));\n } catch (err) {\n return Promise.reject(err);\n }\n }\n\n return dispatch(0);\n };\n}\n\nvar Onion =\n/*#__PURE__*/\nfunction () {\n function Onion(defaultMiddlewares) {\n classCallCheck(this, Onion);\n\n if (!Array.isArray(defaultMiddlewares)) throw new TypeError('Default middlewares must be an array!');\n this.defaultMiddlewares = toConsumableArray(defaultMiddlewares);\n this.middlewares = [];\n }\n\n createClass(Onion, [{\n key: \"use\",\n // 内置内核中间件长度\n value: function use(newMiddleware) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n global: false,\n core: false,\n defaultInstance: false\n };\n var core = false;\n var global = false;\n var defaultInstance = false;\n\n if (typeof opts === 'number') {\n if (process && process.env && process.env.NODE_ENV === 'development') {\n console.warn('use() options should be object, number property would be deprecated in future,please update use() options to \"{ core: true }\".');\n }\n\n core = true;\n global = false;\n } else if (_typeof_1(opts) === 'object' && opts) {\n global = opts.global || false;\n core = opts.core || false;\n defaultInstance = opts.defaultInstance || false;\n } // 全局中间件\n\n\n if (global) {\n Onion.globalMiddlewares.splice(Onion.globalMiddlewares.length - Onion.defaultGlobalMiddlewaresLength, 0, newMiddleware);\n return;\n } // 内核中间件\n\n\n if (core) {\n Onion.coreMiddlewares.splice(Onion.coreMiddlewares.length - Onion.defaultCoreMiddlewaresLength, 0, newMiddleware);\n return;\n } // 默认实例中间件,供开发者使用\n\n\n if (defaultInstance) {\n this.defaultMiddlewares.push(newMiddleware);\n return;\n } // 实例中间件\n\n\n this.middlewares.push(newMiddleware);\n }\n }, {\n key: \"execute\",\n value: function execute() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var fn = compose([].concat(toConsumableArray(this.middlewares), toConsumableArray(this.defaultMiddlewares), toConsumableArray(Onion.globalMiddlewares), toConsumableArray(Onion.coreMiddlewares)));\n return fn(params);\n }\n }]);\n\n return Onion;\n}();\n\nOnion.globalMiddlewares = [];\nOnion.defaultGlobalMiddlewaresLength = 0;\nOnion.coreMiddlewares = [];\nOnion.defaultCoreMiddlewaresLength = 0;\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nvar assertThisInitialized = _assertThisInitialized;\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof_1(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nvar possibleConstructorReturn = _possibleConstructorReturn;\n\nvar getPrototypeOf = createCommonjsModule(function (module) {\nfunction _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\n});\n\nvar setPrototypeOf = createCommonjsModule(function (module) {\nfunction _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\n});\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nvar inherits = _inherits;\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nvar isNativeFunction = _isNativeFunction;\n\nvar construct = createCommonjsModule(function (module) {\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\n});\n\nvar wrapNativeSuper = createCommonjsModule(function (module) {\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\n});\n\nvar MapCache =\n/*#__PURE__*/\nfunction () {\n function MapCache(options) {\n classCallCheck(this, MapCache);\n\n this.cache = new Map();\n this.timer = {};\n this.extendOptions(options);\n }\n\n createClass(MapCache, [{\n key: \"extendOptions\",\n value: function extendOptions(options) {\n this.maxCache = options.maxCache || 0;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.cache.get(JSON.stringify(key));\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n var _this = this;\n\n var ttl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60000;\n\n // 如果超过最大缓存数, 删除头部的第一个缓存.\n if (this.maxCache > 0 && this.cache.size >= this.maxCache) {\n var deleteKey = toConsumableArray(this.cache.keys())[0];\n\n this.cache.delete(deleteKey);\n\n if (this.timer[deleteKey]) {\n clearTimeout(this.timer[deleteKey]);\n }\n }\n\n var cacheKey = JSON.stringify(key);\n this.cache.set(cacheKey, value);\n\n if (ttl > 0) {\n this.timer[cacheKey] = setTimeout(function () {\n _this.cache.delete(cacheKey);\n\n delete _this.timer[cacheKey];\n }, ttl);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n var cacheKey = JSON.stringify(key);\n delete this.timer[cacheKey];\n return this.cache.delete(cacheKey);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.timer = {};\n return this.cache.clear();\n }\n }]);\n\n return MapCache;\n}();\n/**\n * 请求异常\n */\n\nvar RequestError =\n/*#__PURE__*/\nfunction (_Error) {\n inherits(RequestError, _Error);\n\n function RequestError(text, request) {\n var _this2;\n\n var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'RequestError';\n\n classCallCheck(this, RequestError);\n\n _this2 = possibleConstructorReturn(this, getPrototypeOf(RequestError).call(this, text));\n _this2.name = 'RequestError';\n _this2.request = request;\n _this2.type = type;\n return _this2;\n }\n\n return RequestError;\n}(wrapNativeSuper(Error));\n/**\n * 响应异常\n */\n\nvar ResponseError =\n/*#__PURE__*/\nfunction (_Error2) {\n inherits(ResponseError, _Error2);\n\n function ResponseError(response, text, data, request) {\n var _this3;\n\n var type = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'ResponseError';\n\n classCallCheck(this, ResponseError);\n\n _this3 = possibleConstructorReturn(this, getPrototypeOf(ResponseError).call(this, text || response.statusText));\n _this3.name = 'ResponseError';\n _this3.data = data;\n _this3.response = response;\n _this3.request = request;\n _this3.type = type;\n return _this3;\n }\n\n return ResponseError;\n}(wrapNativeSuper(Error));\n/**\n * http://gitlab.alipay-inc.com/KBSJ/gxt/blob/release_gxt_S8928905_20180531/src/util/request.js#L63\n * 支持gbk\n */\n\nfunction readerGBK(file) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function () {\n resolve(reader.result);\n };\n\n reader.onerror = reject;\n reader.readAsText(file, 'GBK'); // setup GBK decoding\n });\n}\n/**\n * 安全的JSON.parse\n */\n\nfunction safeJsonParse(data) {\n var throwErrIfParseFail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var response = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var request = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (throwErrIfParseFail) {\n throw new ResponseError(response, 'JSON.parse fail', data, request, 'ParseError');\n }\n } // eslint-disable-line no-empty\n\n\n return data;\n}\nfunction timeout2Throw(msec, request) {\n return new Promise(function (_, reject) {\n setTimeout(function () {\n reject(new RequestError(\"timeout of \".concat(msec, \"ms exceeded\"), request, 'Timeout'));\n }, msec);\n });\n} // If request options contain 'cancelToken', reject request when token has been canceled\n\nfunction cancel2Throw(opt) {\n return new Promise(function (_, reject) {\n if (opt.cancelToken) {\n opt.cancelToken.promise.then(function (cancel) {\n reject(cancel);\n });\n }\n });\n}\nvar toString = Object.prototype.toString; // Check env is browser or node\n\nfunction getEnv() {\n var env; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n env = 'NODE';\n }\n\n if (typeof XMLHttpRequest !== 'undefined') {\n env = 'BROWSER';\n }\n\n return env;\n}\nfunction isArray(val) {\n return _typeof_1(val) === 'object' && Object.prototype.toString.call(val) === '[object Array]';\n}\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\nfunction isDate(val) {\n return _typeof_1(val) === 'object' && Object.prototype.toString.call(val) === '[object Date]';\n}\nfunction isObject(val) {\n return val !== null && _typeof_1(val) === 'object';\n}\nfunction forEach2ObjArr(target, callback) {\n if (!target) return;\n\n if (_typeof_1(target) !== 'object') {\n target = [target];\n }\n\n if (isArray(target)) {\n for (var i = 0; i < target.length; i++) {\n callback.call(null, target[i], i, target);\n }\n } else {\n for (var key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n callback.call(null, target[key], key, target);\n }\n }\n }\n}\nfunction getParamObject(val) {\n if (isURLSearchParams(val)) {\n return parse(val.toString(), {\n strictNullHandling: true\n });\n }\n\n if (typeof val === 'string') {\n return [val];\n }\n\n return val;\n}\nfunction reqStringify(val) {\n return stringify(val, {\n arrayFormat: 'repeat',\n strictNullHandling: true\n });\n}\nfunction mergeRequestOptions(options, options2Merge) {\n return objectSpread({}, options, options2Merge, {\n headers: objectSpread({}, options.headers, options2Merge.headers),\n params: objectSpread({}, getParamObject(options.params), getParamObject(options2Merge.params)),\n method: (options2Merge.method || options.method || 'get').toLowerCase()\n });\n}\n\n// 前后缀拦截\nvar addfix = function addfix(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var prefix = options.prefix,\n suffix = options.suffix;\n\n if (prefix) {\n url = \"\".concat(prefix).concat(url);\n }\n\n if (suffix) {\n url = \"\".concat(url).concat(suffix);\n }\n\n return {\n url: url,\n options: options\n };\n};\n\nvar warnedCoreType = false; // 默认缓存判断,开放缓存判断给非 get 请求使用\n\nfunction __defaultValidateCache(url, options) {\n var _options$method = options.method,\n method = _options$method === void 0 ? 'get' : _options$method;\n return method.toLowerCase() === 'get';\n}\n\nfunction fetchMiddleware(ctx, next) {\n if (!ctx) return next();\n var _ctx$req = ctx.req;\n _ctx$req = _ctx$req === void 0 ? {} : _ctx$req;\n var _ctx$req$options = _ctx$req.options,\n options = _ctx$req$options === void 0 ? {} : _ctx$req$options,\n _ctx$req$url = _ctx$req.url,\n url = _ctx$req$url === void 0 ? '' : _ctx$req$url,\n cache = ctx.cache,\n responseInterceptors = ctx.responseInterceptors;\n\n var _options$timeout = options.timeout,\n timeout = _options$timeout === void 0 ? 0 : _options$timeout,\n _options$__umiRequest = options.__umiRequestCoreType__,\n __umiRequestCoreType__ = _options$__umiRequest === void 0 ? 'normal' : _options$__umiRequest,\n _options$useCache = options.useCache,\n useCache = _options$useCache === void 0 ? false : _options$useCache,\n _options$method2 = options.method,\n method = _options$method2 === void 0 ? 'get' : _options$method2,\n params = options.params,\n ttl = options.ttl,\n _options$validateCach = options.validateCache,\n validateCache = _options$validateCach === void 0 ? __defaultValidateCache : _options$validateCach;\n\n if (__umiRequestCoreType__ !== 'normal') {\n if (process && process.env && process.env.NODE_ENV === 'development' && warnedCoreType === false) {\n warnedCoreType = true;\n console.warn('__umiRequestCoreType__ is a internal property that use in umi-request, change its value would affect the behavior of request! It only use when you want to extend or use request core.');\n }\n\n return next();\n }\n\n var adapter = fetch;\n\n if (!adapter) {\n throw new Error('Global fetch not exist!');\n } // 从缓存池检查是否有缓存数据\n\n\n var isBrowser = getEnv() === 'BROWSER';\n var needCache = validateCache(url, options) && useCache && isBrowser;\n\n if (needCache) {\n var responseCache = cache.get({\n url: url,\n params: params,\n method: method\n });\n\n if (responseCache) {\n responseCache = responseCache.clone();\n responseCache.useCache = true;\n ctx.res = responseCache;\n return next();\n }\n }\n\n var response; // 超时处理、取消请求处理\n\n if (timeout > 0) {\n response = Promise.race([cancel2Throw(options), adapter(url, options), timeout2Throw(timeout, ctx.req)]);\n } else {\n response = Promise.race([cancel2Throw(options), adapter(url, options)]);\n } // 兼容老版本 response.interceptor\n\n\n responseInterceptors.forEach(function (handler) {\n response = response.then(function (res) {\n // Fix multiple clones not working, issue: https://github.com/github/fetch/issues/504\n var clonedRes = typeof res.clone === 'function' ? res.clone() : res;\n return handler(clonedRes, options);\n });\n });\n return response.then(function (res) {\n // 是否存入缓存池\n if (needCache) {\n if (res.status === 200) {\n var copy = res.clone();\n copy.useCache = true;\n cache.set({\n url: url,\n params: params,\n method: method\n }, copy, ttl);\n }\n }\n\n ctx.res = res;\n return next();\n });\n}\n\nfunction parseResponseMiddleware(ctx, next) {\n var copy;\n return next().then(function () {\n if (!ctx) return;\n var _ctx$res = ctx.res,\n res = _ctx$res === void 0 ? {} : _ctx$res,\n _ctx$req = ctx.req,\n req = _ctx$req === void 0 ? {} : _ctx$req;\n\n var _ref = req || {},\n _ref$options = _ref.options;\n\n _ref$options = _ref$options === void 0 ? {} : _ref$options;\n var _ref$options$response = _ref$options.responseType,\n responseType = _ref$options$response === void 0 ? 'json' : _ref$options$response,\n _ref$options$charset = _ref$options.charset,\n charset = _ref$options$charset === void 0 ? 'utf8' : _ref$options$charset,\n _ref$options$getRespo = _ref$options.getResponse,\n _ref$options$throwErr = _ref$options.throwErrIfParseFail,\n throwErrIfParseFail = _ref$options$throwErr === void 0 ? false : _ref$options$throwErr,\n _ref$options$parseRes = _ref$options.parseResponse,\n parseResponse = _ref$options$parseRes === void 0 ? true : _ref$options$parseRes;\n\n if (!parseResponse) {\n return;\n }\n\n if (!res || !res.clone) {\n return;\n } // 只在浏览器环境对 response 做克隆, node 环境如果对 response 克隆会有问题:https://github.com/bitinn/node-fetch/issues/553\n\n\n copy = getEnv() === 'BROWSER' ? res.clone() : res;\n copy.useCache = res.useCache || false; // 解析数据\n\n if (charset === 'gbk') {\n try {\n return res.blob().then(readerGBK).then(function (d) {\n return safeJsonParse(d, false, copy, req);\n });\n } catch (e) {\n throw new ResponseError(copy, e.message, null, req, 'ParseError');\n }\n } else if (responseType === 'json') {\n return res.text().then(function (d) {\n return safeJsonParse(d, throwErrIfParseFail, copy, req);\n });\n }\n\n try {\n // 其他如text, blob, arrayBuffer, formData\n return res[responseType]();\n } catch (e) {\n throw new ResponseError(copy, 'responseType not support', null, req, 'ParseError');\n }\n }).then(function (body) {\n if (!ctx) return;\n var _ctx$res2 = ctx.res,\n _ctx$req2 = ctx.req,\n req = _ctx$req2 === void 0 ? {} : _ctx$req2;\n\n var _ref2 = req || {},\n _ref2$options = _ref2.options;\n\n _ref2$options = _ref2$options === void 0 ? {} : _ref2$options;\n var _ref2$options$getResp = _ref2$options.getResponse,\n getResponse = _ref2$options$getResp === void 0 ? false : _ref2$options$getResp;\n\n if (!copy) {\n return;\n }\n\n if (copy.status >= 200 && copy.status < 300) {\n // 提供源response, 以便自定义处理\n if (getResponse) {\n ctx.res = {\n data: body,\n response: copy\n };\n return;\n }\n\n ctx.res = body;\n return;\n }\n\n throw new ResponseError(copy, 'http error', body, req, 'HttpError');\n }).catch(function (e) {\n if (e instanceof RequestError || e instanceof ResponseError) {\n throw e;\n } // 对未知错误进行处理\n\n\n var req = ctx.req,\n res = ctx.res;\n e.request = e.request || req;\n e.response = e.response || res;\n e.type = e.type || e.name;\n e.data = e.data || undefined;\n throw e;\n });\n}\n\nfunction simplePostMiddleware(ctx, next) {\n if (!ctx) return next();\n var _ctx$req = ctx.req;\n _ctx$req = _ctx$req === void 0 ? {} : _ctx$req;\n var _ctx$req$options = _ctx$req.options,\n options = _ctx$req$options === void 0 ? {} : _ctx$req$options;\n var _options$method = options.method,\n method = _options$method === void 0 ? 'get' : _options$method;\n\n if (['post', 'put', 'patch', 'delete'].indexOf(method.toLowerCase()) === -1) {\n return next();\n }\n\n var _options$requestType = options.requestType,\n requestType = _options$requestType === void 0 ? 'json' : _options$requestType,\n data = options.data; // 数据使用类axios的新字段data, 避免引用后影响旧代码, 如将body stringify多次\n\n if (data) {\n var dataType = Object.prototype.toString.call(data);\n\n if (dataType === '[object Object]' || dataType === '[object Array]') {\n if (requestType === 'json') {\n options.headers = objectSpread({\n Accept: 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8'\n }, options.headers);\n options.body = JSON.stringify(data);\n } else if (requestType === 'form') {\n options.headers = objectSpread({\n Accept: 'application/json',\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\n }, options.headers);\n options.body = reqStringify(data);\n }\n } else {\n // 其他 requestType 自定义header\n options.headers = objectSpread({\n Accept: 'application/json'\n }, options.headers);\n options.body = data;\n }\n }\n\n ctx.req.options = options;\n return next();\n}\n\nfunction paramsSerialize(params, paramsSerializer) {\n var serializedParams;\n var jsonStringifiedParams; // 支持参数自动拼装,其他 method 也可用,不冲突\n\n if (params) {\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n if (isArray(params)) {\n jsonStringifiedParams = [];\n forEach2ObjArr(params, function (item) {\n if (item === null || typeof item === 'undefined') {\n jsonStringifiedParams.push(item);\n } else {\n jsonStringifiedParams.push(isObject(item) ? JSON.stringify(item) : item);\n }\n }); // a: [1,2,3] => a=1&a=2&a=3\n\n serializedParams = reqStringify(jsonStringifiedParams);\n } else {\n jsonStringifiedParams = {};\n forEach2ObjArr(params, function (value, key) {\n var jsonStringifiedValue = value;\n\n if (value === null || typeof value === 'undefined') {\n jsonStringifiedParams[key] = value;\n } else if (isDate(value)) {\n jsonStringifiedValue = value.toISOString();\n } else if (isArray(value)) {\n jsonStringifiedValue = value;\n } else if (isObject(value)) {\n jsonStringifiedValue = JSON.stringify(value);\n }\n\n jsonStringifiedParams[key] = jsonStringifiedValue;\n });\n var tmp = reqStringify(jsonStringifiedParams);\n serializedParams = tmp;\n }\n }\n }\n\n return serializedParams;\n} // 对请求参数做处理,实现 query 简化、 post 简化\n\nfunction simpleGetMiddleware(ctx, next) {\n if (!ctx) return next();\n var _ctx$req = ctx.req;\n _ctx$req = _ctx$req === void 0 ? {} : _ctx$req;\n var _ctx$req$options = _ctx$req.options,\n options = _ctx$req$options === void 0 ? {} : _ctx$req$options;\n var paramsSerializer = options.paramsSerializer,\n params = options.params;\n var _ctx$req2 = ctx.req;\n _ctx$req2 = _ctx$req2 === void 0 ? {} : _ctx$req2;\n var _ctx$req2$url = _ctx$req2.url,\n url = _ctx$req2$url === void 0 ? '' : _ctx$req2$url; // 将 method 改为大写\n\n options.method = options.method ? options.method.toUpperCase() : 'GET'; // 设置 credentials 默认值为 same-origin,确保当开发者没有设置时,各浏览器对请求是否发送 cookies 保持一致的行为\n // - omit: 从不发送cookies.\n // - same-origin: 只有当URL与响应脚本同源才发送 cookies、 HTTP Basic authentication 等验证信息.(浏览器默认值,在旧版本浏览器,例如safari 11依旧是omit,safari 12已更改)\n // - include: 不论是不是跨域的请求,总是发送请求资源域在本地的 cookies、 HTTP Basic authentication 等验证信息.\n\n options.credentials = options.credentials || 'same-origin'; // 支持类似axios 参数自动拼装, 其他method也可用, 不冲突.\n\n var serializedParams = paramsSerialize(params, paramsSerializer);\n ctx.req.originUrl = url;\n\n if (serializedParams) {\n var urlSign = url.indexOf('?') !== -1 ? '&' : '?';\n ctx.req.url = \"\".concat(url).concat(urlSign).concat(serializedParams);\n }\n\n ctx.req.options = options;\n return next();\n}\n\nvar globalMiddlewares = [simplePostMiddleware, simpleGetMiddleware, parseResponseMiddleware];\nvar coreMiddlewares = [fetchMiddleware];\nOnion.globalMiddlewares = globalMiddlewares;\nOnion.defaultGlobalMiddlewaresLength = globalMiddlewares.length;\nOnion.coreMiddlewares = coreMiddlewares;\nOnion.defaultCoreMiddlewaresLength = coreMiddlewares.length;\n\nvar Core =\n/*#__PURE__*/\nfunction () {\n function Core(initOptions) {\n classCallCheck(this, Core);\n\n this.onion = new Onion([]);\n this.fetchIndex = 0; // 【即将废弃】请求中间件位置\n\n this.mapCache = new MapCache(initOptions);\n this.initOptions = initOptions;\n this.instanceRequestInterceptors = [];\n this.instanceResponseInterceptors = [];\n } // 旧版拦截器为共享\n\n\n createClass(Core, [{\n key: \"use\",\n value: function use(newMiddleware) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n global: false,\n core: false\n };\n this.onion.use(newMiddleware, opt);\n return this;\n }\n }, {\n key: \"extendOptions\",\n value: function extendOptions(options) {\n this.initOptions = mergeRequestOptions(this.initOptions, options);\n this.mapCache.extendOptions(options);\n } // 执行请求前拦截器\n\n }, {\n key: \"dealRequestInterceptors\",\n value: function dealRequestInterceptors(ctx) {\n var reducer = function reducer(p1, p2) {\n return p1.then(function () {\n var ret = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n ctx.req.url = ret.url || ctx.req.url;\n ctx.req.options = ret.options || ctx.req.options;\n return p2(ctx.req.url, ctx.req.options);\n });\n };\n\n var allInterceptors = [].concat(toConsumableArray(Core.requestInterceptors), toConsumableArray(this.instanceRequestInterceptors));\n return allInterceptors.reduce(reducer, Promise.resolve()).then(function () {\n var ret = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n ctx.req.url = ret.url || ctx.req.url;\n ctx.req.options = ret.options || ctx.req.options;\n return Promise.resolve();\n });\n }\n }, {\n key: \"request\",\n value: function request(url, options) {\n var _this = this;\n\n var onion = this.onion;\n var obj = {\n req: {\n url: url,\n options: options\n },\n res: null,\n cache: this.mapCache,\n responseInterceptors: [].concat(toConsumableArray(Core.responseInterceptors), toConsumableArray(this.instanceResponseInterceptors))\n };\n\n if (typeof url !== 'string') {\n throw new Error('url MUST be a string');\n }\n\n return new Promise(function (resolve, reject) {\n _this.dealRequestInterceptors(obj).then(function () {\n return onion.execute(obj);\n }).then(function () {\n resolve(obj.res);\n }).catch(function (error) {\n var errorHandler = obj.req.options.errorHandler;\n\n if (errorHandler) {\n try {\n var data = errorHandler(error);\n resolve(data);\n } catch (e) {\n reject(e);\n }\n } else {\n reject(error);\n }\n });\n });\n }\n }], [{\n key: \"requestUse\",\n // 请求拦截器 默认 { global: true } 兼容旧版本拦截器\n value: function requestUse(handler) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n global: true\n };\n if (typeof handler !== 'function') throw new TypeError('Interceptor must be function!');\n\n if (opt.global) {\n Core.requestInterceptors.push(handler);\n } else {\n this.instanceRequestInterceptors.push(handler);\n }\n } // 响应拦截器 默认 { global: true } 兼容旧版本拦截器\n\n }, {\n key: \"responseUse\",\n value: function responseUse(handler) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n global: true\n };\n if (typeof handler !== 'function') throw new TypeError('Interceptor must be function!');\n\n if (opt.global) {\n Core.responseInterceptors.push(handler);\n } else {\n this.instanceResponseInterceptors.push(handler);\n }\n }\n }]);\n\n return Core;\n}();\n\nCore.requestInterceptors = [addfix];\nCore.responseInterceptors = [];\n\n/**\n * 当执行 “取消请求” 操作时会抛出 Cancel 对象作为一场\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return this.message ? \"Cancel: \".concat(this.message) : 'Cancel';\n};\n\nCancel.prototype.__CANCEL__ = true;\n\n/**\n * 通过 CancelToken 来取消请求操作\n *\n * @class\n * @param {Function} executor The executor function.\n */\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 var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // 取消操作已被调用过\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * 如果请求已经取消,抛出 Cancel 异常\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * 通过 source 来返回 CancelToken 实例和取消 CancelToken 的函数\n */\n\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\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\nvar request = function request() {\n var initOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var coreInstance = new Core(initOptions);\n\n var umiInstance = function umiInstance(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mergeOptions = mergeRequestOptions(coreInstance.initOptions, options);\n return coreInstance.request(url, mergeOptions);\n }; // 中间件\n\n\n umiInstance.use = coreInstance.use.bind(coreInstance);\n umiInstance.fetchIndex = coreInstance.fetchIndex; // 拦截器\n\n umiInstance.interceptors = {\n request: {\n use: Core.requestUse.bind(coreInstance)\n },\n response: {\n use: Core.responseUse.bind(coreInstance)\n }\n }; // 请求语法糖: reguest.get request.post ……\n\n var METHODS = ['get', 'post', 'delete', 'put', 'patch', 'head', 'options', 'rpc'];\n METHODS.forEach(function (method) {\n umiInstance[method] = function (url, options) {\n return umiInstance(url, objectSpread({}, options, {\n method: method\n }));\n };\n });\n umiInstance.Cancel = Cancel;\n umiInstance.CancelToken = CancelToken;\n umiInstance.isCancel = isCancel;\n umiInstance.extendOptions = coreInstance.extendOptions.bind(coreInstance); // 暴露各个实例的中间件,供开发者自由组合\n\n umiInstance.middlewares = {\n instance: coreInstance.onion.middlewares,\n defaultInstance: coreInstance.onion.defaultMiddlewares,\n global: Onion.globalMiddlewares,\n core: Onion.coreMiddlewares\n };\n return umiInstance;\n};\n/**\n * extend 方法参考了ky, 让用户可以定制配置.\n * initOpions 初始化参数\n * @param {number} maxCache 最大缓存数\n * @param {string} prefix url前缀\n * @param {function} errorHandler 统一错误处理方法\n * @param {object} headers 统一的headers\n */\n\n\nvar extend = function extend(initOptions) {\n return request(initOptions);\n};\n/**\n * 暴露 fetch 中间件,保障依旧可以使用\n */\n\nvar fetch$1 = request({\n parseResponse: false\n});\nvar request$1 = request({});\n\nexport default request$1;\nexport { Onion, RequestError, ResponseError, extend, fetch$1 as fetch };\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","\n/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar binary = require('./binary');\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n 'CONNECT',\n 'DISCONNECT',\n 'EVENT',\n 'ACK',\n 'ERROR',\n 'BINARY_EVENT',\n 'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\nvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n debug('encoding packet %j', obj);\n\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n encodeAsBinary(obj, callback);\n } else {\n var encoding = encodeAsString(obj);\n callback([encoding]);\n }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n // first is type\n var str = '' + obj.type;\n\n // attachments if we have them\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n str += obj.attachments + '-';\n }\n\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && '/' !== obj.nsp) {\n str += obj.nsp + ',';\n }\n\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n\n // json data\n if (null != obj.data) {\n var payload = tryStringify(obj.data);\n if (payload !== false) {\n str += payload;\n } else {\n return ERROR_PACKET;\n }\n }\n\n debug('encoded %j as %s', obj, str);\n return str;\n}\n\nfunction tryStringify(str) {\n try {\n return JSON.stringify(str);\n } catch(e){\n return false;\n }\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n function writeEncoding(bloblessData) {\n var deconstruction = binary.deconstructPacket(bloblessData);\n var pack = encodeAsString(deconstruction.packet);\n var buffers = deconstruction.buffers;\n\n buffers.unshift(pack); // add packet info to beginning of data list\n callback(buffers); // write all the buffers\n }\n\n binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n var packet;\n if (typeof obj === 'string') {\n packet = decodeString(obj);\n if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n\n // no attachments, labeled binary but no binary data to follow\n if (this.reconstructor.reconPack.attachments === 0) {\n this.emit('decoded', packet);\n }\n } else { // non-binary full packet\n this.emit('decoded', packet);\n }\n } else if (isBuf(obj) || obj.base64) { // raw binary data\n if (!this.reconstructor) {\n throw new Error('got binary data when not reconstructing a packet');\n } else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) { // received final buffer\n this.reconstructor = null;\n this.emit('decoded', packet);\n }\n }\n } else {\n throw new Error('Unknown type: ' + obj);\n }\n};\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n var i = 0;\n // look up type\n var p = {\n type: Number(str.charAt(0))\n };\n\n if (null == exports.types[p.type]) {\n return error('unknown packet type ' + p.type);\n }\n\n // look up attachments if type binary\n if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n var buf = '';\n while (str.charAt(++i) !== '-') {\n buf += str.charAt(i);\n if (i == str.length) break;\n }\n if (buf != Number(buf) || str.charAt(i) !== '-') {\n throw new Error('Illegal attachments');\n }\n p.attachments = Number(buf);\n }\n\n // look up namespace (if any)\n if ('/' === str.charAt(i + 1)) {\n p.nsp = '';\n while (++i) {\n var c = str.charAt(i);\n if (',' === c) break;\n p.nsp += c;\n if (i === str.length) break;\n }\n } else {\n p.nsp = '/';\n }\n\n // look up id\n var next = str.charAt(i + 1);\n if ('' !== next && Number(next) == next) {\n p.id = '';\n while (++i) {\n var c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n p.id += str.charAt(i);\n if (i === str.length) break;\n }\n p.id = Number(p.id);\n }\n\n // look up json data\n if (str.charAt(++i)) {\n var payload = tryParse(str.substr(i));\n var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));\n if (isPayloadValid) {\n p.data = payload;\n } else {\n return error('invalid payload');\n }\n }\n\n debug('decoded %s as %j', str, p);\n return p;\n}\n\nfunction tryParse(str) {\n try {\n return JSON.parse(str);\n } catch(e){\n return false;\n }\n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n this.reconPack = packet;\n this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n this.reconPack = null;\n this.buffers = [];\n};\n\nfunction error(msg) {\n return {\n type: exports.ERROR,\n data: 'parser error: ' + msg\n };\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\nvar globalThis = require('./globalThis');\n\nmodule.exports = function (opts) {\n var xdomain = opts.xdomain;\n\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n var xscheme = opts.xscheme;\n\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n var enablesXDR = opts.enablesXDR;\n\n // XMLHttpRequest can be disabled on IE\n try {\n if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) { }\n\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e) { }\n\n if (!xdomain) {\n try {\n return new globalThis[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n } catch (e) { }\n }\n};\n","module.exports = (function () {\n if (typeof self !== 'undefined') {\n return self;\n } else if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this')(); // eslint-disable-line no-new-func\n }\n})();\n","/**\n * Module dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n this.path = opts.path;\n this.hostname = opts.hostname;\n this.port = opts.port;\n this.secure = opts.secure;\n this.query = opts.query;\n this.timestampParam = opts.timestampParam;\n this.timestampRequests = opts.timestampRequests;\n this.readyState = '';\n this.agent = opts.agent || false;\n this.socket = opts.socket;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n this.forceNode = opts.forceNode;\n\n // results of ReactNative environment detection\n this.isReactNative = opts.isReactNative;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n var err = new Error(msg);\n err.type = 'TransportError';\n err.description = desc;\n this.emit('error', err);\n return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n if ('closed' === this.readyState || '' === this.readyState) {\n this.readyState = 'opening';\n this.doOpen();\n }\n\n return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.doClose();\n this.onClose();\n }\n\n return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n if ('open' === this.readyState) {\n this.write(packets);\n } else {\n throw new Error('Transport not open');\n }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n this.readyState = 'open';\n this.writable = true;\n this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n var packet = parser.decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n this.readyState = 'closed';\n this.emit('close');\n};\n","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n // Remove event specific arrays for event types that no\r\n // one is subscribed for to avoid memory leak.\r\n if (callbacks.length === 0) {\r\n delete this._callbacks['$' + event];\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n\r\n var args = new Array(arguments.length - 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n args[i - 1] = arguments[i];\r\n }\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import { visit } from './visitor';\nimport { printBlockString } from './blockString';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, {\n leave: printDocASTReducer\n });\n} // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n Name: function Name(node) {\n return node.value;\n },\n Variable: function Variable(node) {\n return '$' + node.name;\n },\n // Document\n Document: function Document(node) {\n return join(node.definitions, '\\n\\n') + '\\n';\n },\n OperationDefinition: function OperationDefinition(node) {\n var op = node.operation;\n var name = node.name;\n var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n var directives = join(node.directives, ' ');\n var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n },\n VariableDefinition: function VariableDefinition(_ref) {\n var variable = _ref.variable,\n type = _ref.type,\n defaultValue = _ref.defaultValue,\n directives = _ref.directives;\n return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n },\n SelectionSet: function SelectionSet(_ref2) {\n var selections = _ref2.selections;\n return block(selections);\n },\n Field: function Field(_ref3) {\n var alias = _ref3.alias,\n name = _ref3.name,\n args = _ref3.arguments,\n directives = _ref3.directives,\n selectionSet = _ref3.selectionSet;\n return join([wrap('', alias, ': ') + name + wrap('(', join(args, ', '), ')'), join(directives, ' '), selectionSet], ' ');\n },\n Argument: function Argument(_ref4) {\n var name = _ref4.name,\n value = _ref4.value;\n return name + ': ' + value;\n },\n // Fragments\n FragmentSpread: function FragmentSpread(_ref5) {\n var name = _ref5.name,\n directives = _ref5.directives;\n return '...' + name + wrap(' ', join(directives, ' '));\n },\n InlineFragment: function InlineFragment(_ref6) {\n var typeCondition = _ref6.typeCondition,\n directives = _ref6.directives,\n selectionSet = _ref6.selectionSet;\n return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n },\n FragmentDefinition: function FragmentDefinition(_ref7) {\n var name = _ref7.name,\n typeCondition = _ref7.typeCondition,\n variableDefinitions = _ref7.variableDefinitions,\n directives = _ref7.directives,\n selectionSet = _ref7.selectionSet;\n return (// Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n );\n },\n // Value\n IntValue: function IntValue(_ref8) {\n var value = _ref8.value;\n return value;\n },\n FloatValue: function FloatValue(_ref9) {\n var value = _ref9.value;\n return value;\n },\n StringValue: function StringValue(_ref10, key) {\n var value = _ref10.value,\n isBlockString = _ref10.block;\n return isBlockString ? printBlockString(value, key === 'description' ? '' : ' ') : JSON.stringify(value);\n },\n BooleanValue: function BooleanValue(_ref11) {\n var value = _ref11.value;\n return value ? 'true' : 'false';\n },\n NullValue: function NullValue() {\n return 'null';\n },\n EnumValue: function EnumValue(_ref12) {\n var value = _ref12.value;\n return value;\n },\n ListValue: function ListValue(_ref13) {\n var values = _ref13.values;\n return '[' + join(values, ', ') + ']';\n },\n ObjectValue: function ObjectValue(_ref14) {\n var fields = _ref14.fields;\n return '{' + join(fields, ', ') + '}';\n },\n ObjectField: function ObjectField(_ref15) {\n var name = _ref15.name,\n value = _ref15.value;\n return name + ': ' + value;\n },\n // Directive\n Directive: function Directive(_ref16) {\n var name = _ref16.name,\n args = _ref16.arguments;\n return '@' + name + wrap('(', join(args, ', '), ')');\n },\n // Type\n NamedType: function NamedType(_ref17) {\n var name = _ref17.name;\n return name;\n },\n ListType: function ListType(_ref18) {\n var type = _ref18.type;\n return '[' + type + ']';\n },\n NonNullType: function NonNullType(_ref19) {\n var type = _ref19.type;\n return type + '!';\n },\n // Type System Definitions\n SchemaDefinition: function SchemaDefinition(_ref20) {\n var directives = _ref20.directives,\n operationTypes = _ref20.operationTypes;\n return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n var operation = _ref21.operation,\n type = _ref21.type;\n return operation + ': ' + type;\n },\n ScalarTypeDefinition: addDescription(function (_ref22) {\n var name = _ref22.name,\n directives = _ref22.directives;\n return join(['scalar', name, join(directives, ' ')], ' ');\n }),\n ObjectTypeDefinition: addDescription(function (_ref23) {\n var name = _ref23.name,\n interfaces = _ref23.interfaces,\n directives = _ref23.directives,\n fields = _ref23.fields;\n return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n FieldDefinition: addDescription(function (_ref24) {\n var name = _ref24.name,\n args = _ref24.arguments,\n type = _ref24.type,\n directives = _ref24.directives;\n return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n }),\n InputValueDefinition: addDescription(function (_ref25) {\n var name = _ref25.name,\n type = _ref25.type,\n defaultValue = _ref25.defaultValue,\n directives = _ref25.directives;\n return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n }),\n InterfaceTypeDefinition: addDescription(function (_ref26) {\n var name = _ref26.name,\n directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, join(directives, ' '), block(fields)], ' ');\n }),\n UnionTypeDefinition: addDescription(function (_ref27) {\n var name = _ref27.name,\n directives = _ref27.directives,\n types = _ref27.types;\n return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n }),\n EnumTypeDefinition: addDescription(function (_ref28) {\n var name = _ref28.name,\n directives = _ref28.directives,\n values = _ref28.values;\n return join(['enum', name, join(directives, ' '), block(values)], ' ');\n }),\n EnumValueDefinition: addDescription(function (_ref29) {\n var name = _ref29.name,\n directives = _ref29.directives;\n return join([name, join(directives, ' ')], ' ');\n }),\n InputObjectTypeDefinition: addDescription(function (_ref30) {\n var name = _ref30.name,\n directives = _ref30.directives,\n fields = _ref30.fields;\n return join(['input', name, join(directives, ' '), block(fields)], ' ');\n }),\n DirectiveDefinition: addDescription(function (_ref31) {\n var name = _ref31.name,\n args = _ref31.arguments,\n repeatable = _ref31.repeatable,\n locations = _ref31.locations;\n return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n }),\n SchemaExtension: function SchemaExtension(_ref32) {\n var directives = _ref32.directives,\n operationTypes = _ref32.operationTypes;\n return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n var name = _ref33.name,\n directives = _ref33.directives;\n return join(['extend scalar', name, join(directives, ' ')], ' ');\n },\n ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n var name = _ref34.name,\n interfaces = _ref34.interfaces,\n directives = _ref34.directives,\n fields = _ref34.fields;\n return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n var name = _ref35.name,\n directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, join(directives, ' '), block(fields)], ' ');\n },\n UnionTypeExtension: function UnionTypeExtension(_ref36) {\n var name = _ref36.name,\n directives = _ref36.directives,\n types = _ref36.types;\n return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n },\n EnumTypeExtension: function EnumTypeExtension(_ref37) {\n var name = _ref37.name,\n directives = _ref37.directives,\n values = _ref37.values;\n return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n },\n InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n var name = _ref38.name,\n directives = _ref38.directives,\n fields = _ref38.fields;\n return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n }\n};\n\nfunction addDescription(cb) {\n return function (node) {\n return join([node.description, cb(node)], '\\n');\n };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray, separator) {\n return maybeArray ? maybeArray.filter(function (x) {\n return x;\n }).join(separator || '') : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n return array && array.length !== 0 ? '{\\n' + indent(join(array, '\\n')) + '\\n}' : '';\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise\n * print an empty string.\n */\n\n\nfunction wrap(start, maybeString, end) {\n return maybeString ? start + maybeString + (end || '') : '';\n}\n\nfunction indent(maybeString) {\n return maybeString && ' ' + maybeString.replace(/\\n/g, '\\n ');\n}\n\nfunction isMultiline(string) {\n return string.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray && maybeArray.some(isMultiline);\n}\n","// canvas-confetti v1.3.2 built on 2020-11-12T12:53:54.473Z\nvar module = {};\n\n// source content\n(function main(global, module, isWorker, workerSize) {\n var canUseWorker = !!(\n global.Worker &&\n global.Blob &&\n global.Promise &&\n global.OffscreenCanvas &&\n global.OffscreenCanvasRenderingContext2D &&\n global.HTMLCanvasElement &&\n global.HTMLCanvasElement.prototype.transferControlToOffscreen &&\n global.URL &&\n global.URL.createObjectURL);\n\n function noop() {}\n\n // create a promise if it exists, otherwise, just\n // call the function directly\n function promise(func) {\n var ModulePromise = module.exports.Promise;\n var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise;\n\n if (typeof Prom === 'function') {\n return new Prom(func);\n }\n\n func(noop, noop);\n\n return null;\n }\n\n var raf = (function () {\n var TIME = Math.floor(1000 / 60);\n var frame, cancel;\n var frames = {};\n var lastFrameTime = 0;\n\n if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') {\n frame = function (cb) {\n var id = Math.random();\n\n frames[id] = requestAnimationFrame(function onFrame(time) {\n if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) {\n lastFrameTime = time;\n delete frames[id];\n\n cb();\n } else {\n frames[id] = requestAnimationFrame(onFrame);\n }\n });\n\n return id;\n };\n cancel = function (id) {\n if (frames[id]) {\n cancelAnimationFrame(frames[id]);\n }\n };\n } else {\n frame = function (cb) {\n return setTimeout(cb, TIME);\n };\n cancel = function (timer) {\n return clearTimeout(timer);\n };\n }\n\n return { frame: frame, cancel: cancel };\n }());\n\n var getWorker = (function () {\n var worker;\n var prom;\n var resolves = {};\n\n function decorate(worker) {\n function execute(options, callback) {\n worker.postMessage({ options: options || {}, callback: callback });\n }\n worker.init = function initWorker(canvas) {\n var offscreen = canvas.transferControlToOffscreen();\n worker.postMessage({ canvas: offscreen }, [offscreen]);\n };\n\n worker.fire = function fireWorker(options, size, done) {\n if (prom) {\n execute(options, null);\n return prom;\n }\n\n var id = Math.random().toString(36).slice(2);\n\n prom = promise(function (resolve) {\n function workerDone(msg) {\n if (msg.data.callback !== id) {\n return;\n }\n\n delete resolves[id];\n worker.removeEventListener('message', workerDone);\n\n prom = null;\n done();\n resolve();\n }\n\n worker.addEventListener('message', workerDone);\n execute(options, id);\n\n resolves[id] = workerDone.bind(null, { data: { callback: id }});\n });\n\n return prom;\n };\n\n worker.reset = function resetWorker() {\n worker.postMessage({ reset: true });\n\n for (var id in resolves) {\n resolves[id]();\n delete resolves[id];\n }\n };\n }\n\n return function () {\n if (worker) {\n return worker;\n }\n\n if (!isWorker && canUseWorker) {\n var code = [\n 'var CONFETTI, SIZE = {}, module = {};',\n '(' + main.toString() + ')(this, module, true, SIZE);',\n 'onmessage = function(msg) {',\n ' if (msg.data.options) {',\n ' CONFETTI(msg.data.options).then(function () {',\n ' if (msg.data.callback) {',\n ' postMessage({ callback: msg.data.callback });',\n ' }',\n ' });',\n ' } else if (msg.data.reset) {',\n ' CONFETTI.reset();',\n ' } else if (msg.data.resize) {',\n ' SIZE.width = msg.data.resize.width;',\n ' SIZE.height = msg.data.resize.height;',\n ' } else if (msg.data.canvas) {',\n ' SIZE.width = msg.data.canvas.width;',\n ' SIZE.height = msg.data.canvas.height;',\n ' CONFETTI = module.exports.create(msg.data.canvas);',\n ' }',\n '}',\n ].join('\\n');\n try {\n worker = new Worker(URL.createObjectURL(new Blob([code])));\n } catch (e) {\n // eslint-disable-next-line no-console\n typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null;\n\n return null;\n }\n\n decorate(worker);\n }\n\n return worker;\n };\n })();\n\n var defaults = {\n particleCount: 50,\n angle: 90,\n spread: 45,\n startVelocity: 45,\n decay: 0.9,\n gravity: 1,\n ticks: 200,\n x: 0.5,\n y: 0.5,\n shapes: ['square', 'circle'],\n zIndex: 100,\n colors: [\n '#26ccff',\n '#a25afd',\n '#ff5e7e',\n '#88ff5a',\n '#fcff42',\n '#ffa62d',\n '#ff36ff'\n ],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1\n };\n\n function convert(val, transform) {\n return transform ? transform(val) : val;\n }\n\n function isOk(val) {\n return !(val === null || val === undefined);\n }\n\n function prop(options, name, transform) {\n return convert(\n options && isOk(options[name]) ? options[name] : defaults[name],\n transform\n );\n }\n\n function onlyPositiveInt(number){\n return number < 0 ? 0 : Math.floor(number);\n }\n\n function randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min;\n }\n\n function toDecimal(str) {\n return parseInt(str, 16);\n }\n\n function hexToRgb(str) {\n var val = String(str).replace(/[^0-9a-f]/gi, '');\n\n if (val.length < 6) {\n val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2];\n }\n\n return {\n r: toDecimal(val.substring(0,2)),\n g: toDecimal(val.substring(2,4)),\n b: toDecimal(val.substring(4,6))\n };\n }\n\n function getOrigin(options) {\n var origin = prop(options, 'origin', Object);\n origin.x = prop(origin, 'x', Number);\n origin.y = prop(origin, 'y', Number);\n\n return origin;\n }\n\n function setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth;\n canvas.height = document.documentElement.clientHeight;\n }\n\n function setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect();\n canvas.width = rect.width;\n canvas.height = rect.height;\n }\n\n function getCanvas(zIndex) {\n var canvas = document.createElement('canvas');\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0px';\n canvas.style.left = '0px';\n canvas.style.pointerEvents = 'none';\n canvas.style.zIndex = zIndex;\n\n return canvas;\n }\n\n function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n context.save();\n context.translate(x, y);\n context.rotate(rotation);\n context.scale(radiusX, radiusY);\n context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n context.restore();\n }\n\n function randomPhysics(opts) {\n var radAngle = opts.angle * (Math.PI / 180);\n var radSpread = opts.spread * (Math.PI / 180);\n\n return {\n x: opts.x,\n y: opts.y,\n wobble: Math.random() * 10,\n velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity),\n angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)),\n tiltAngle: Math.random() * Math.PI,\n color: hexToRgb(opts.color),\n shape: opts.shape,\n tick: 0,\n totalTicks: opts.ticks,\n decay: opts.decay,\n random: Math.random() + 5,\n tiltSin: 0,\n tiltCos: 0,\n wobbleX: 0,\n wobbleY: 0,\n gravity: opts.gravity * 3,\n ovalScalar: 0.6,\n scalar: opts.scalar\n };\n }\n\n function updateFetti(context, fetti) {\n fetti.x += Math.cos(fetti.angle2D) * fetti.velocity;\n fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity;\n fetti.wobble += 0.1;\n fetti.velocity *= fetti.decay;\n fetti.tiltAngle += 0.1;\n fetti.tiltSin = Math.sin(fetti.tiltAngle);\n fetti.tiltCos = Math.cos(fetti.tiltAngle);\n fetti.random = Math.random() + 5;\n fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble));\n fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble));\n\n var progress = (fetti.tick++) / fetti.totalTicks;\n\n var x1 = fetti.x + (fetti.random * fetti.tiltCos);\n var y1 = fetti.y + (fetti.random * fetti.tiltSin);\n var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos);\n var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin);\n\n context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n context.beginPath();\n\n if (fetti.shape === 'circle') {\n context.ellipse ?\n context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) :\n ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI);\n } else {\n context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y));\n context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1));\n context.lineTo(Math.floor(x2), Math.floor(y2));\n context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY));\n }\n\n context.closePath();\n context.fill();\n\n return fetti.tick < fetti.totalTicks;\n }\n\n function animate(canvas, fettis, resizer, size, done) {\n var animatingFettis = fettis.slice();\n var context = canvas.getContext('2d');\n var animationFrame;\n var destroy;\n\n var prom = promise(function (resolve) {\n function onDone() {\n animationFrame = destroy = null;\n\n context.clearRect(0, 0, size.width, size.height);\n\n done();\n resolve();\n }\n\n function update() {\n if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) {\n size.width = canvas.width = workerSize.width;\n size.height = canvas.height = workerSize.height;\n }\n\n if (!size.width && !size.height) {\n resizer(canvas);\n size.width = canvas.width;\n size.height = canvas.height;\n }\n\n context.clearRect(0, 0, size.width, size.height);\n\n animatingFettis = animatingFettis.filter(function (fetti) {\n return updateFetti(context, fetti);\n });\n\n if (animatingFettis.length) {\n animationFrame = raf.frame(update);\n } else {\n onDone();\n }\n }\n\n animationFrame = raf.frame(update);\n destroy = onDone;\n });\n\n return {\n addFettis: function (fettis) {\n animatingFettis = animatingFettis.concat(fettis);\n\n return prom;\n },\n canvas: canvas,\n promise: prom,\n reset: function () {\n if (animationFrame) {\n raf.cancel(animationFrame);\n }\n\n if (destroy) {\n destroy();\n }\n }\n };\n }\n\n function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas;\n var allowResize = !!prop(globalOpts || {}, 'resize');\n var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean);\n var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker');\n var worker = shouldUseWorker ? getWorker() : null;\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize;\n var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false;\n var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches;\n var animationObj;\n\n function fireLocal(options, size, done) {\n var particleCount = prop(options, 'particleCount', onlyPositiveInt);\n var angle = prop(options, 'angle', Number);\n var spread = prop(options, 'spread', Number);\n var startVelocity = prop(options, 'startVelocity', Number);\n var decay = prop(options, 'decay', Number);\n var gravity = prop(options, 'gravity', Number);\n var colors = prop(options, 'colors');\n var ticks = prop(options, 'ticks', Number);\n var shapes = prop(options, 'shapes');\n var scalar = prop(options, 'scalar');\n var origin = getOrigin(options);\n\n var temp = particleCount;\n var fettis = [];\n\n var startX = canvas.width * origin.x;\n var startY = canvas.height * origin.y;\n\n while (temp--) {\n fettis.push(\n randomPhysics({\n x: startX,\n y: startY,\n angle: angle,\n spread: spread,\n startVelocity: startVelocity,\n color: colors[temp % colors.length],\n shape: shapes[randomInt(0, shapes.length)],\n ticks: ticks,\n decay: decay,\n gravity: gravity,\n scalar: scalar\n })\n );\n }\n\n // if we have a previous canvas already animating,\n // add to it\n if (animationObj) {\n return animationObj.addFettis(fettis);\n }\n\n animationObj = animate(canvas, fettis, resizer, size , done);\n\n return animationObj.promise;\n }\n\n function fire(options) {\n var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean);\n var zIndex = prop(options, 'zIndex', Number);\n\n if (disableForReducedMotion && preferLessMotion) {\n return promise(function (resolve) {\n resolve();\n });\n }\n\n if (isLibCanvas && animationObj) {\n // use existing canvas from in-progress animation\n canvas = animationObj.canvas;\n } else if (isLibCanvas && !canvas) {\n // create and initialize a new canvas\n canvas = getCanvas(zIndex);\n document.body.appendChild(canvas);\n }\n\n if (allowResize && !initialized) {\n // initialize the size of a user-supplied canvas\n resizer(canvas);\n }\n\n var size = {\n width: canvas.width,\n height: canvas.height\n };\n\n if (worker && !initialized) {\n worker.init(canvas);\n }\n\n initialized = true;\n\n if (worker) {\n canvas.__confetti_initialized = true;\n }\n\n function onResize() {\n if (worker) {\n // TODO this really shouldn't be immediate, because it is expensive\n var obj = {\n getBoundingClientRect: function () {\n if (!isLibCanvas) {\n return canvas.getBoundingClientRect();\n }\n }\n };\n\n resizer(obj);\n\n worker.postMessage({\n resize: {\n width: obj.width,\n height: obj.height\n }\n });\n return;\n }\n\n // don't actually query the size here, since this\n // can execute frequently and rapidly\n size.width = size.height = null;\n }\n\n function done() {\n animationObj = null;\n\n if (allowResize) {\n global.removeEventListener('resize', onResize);\n }\n\n if (isLibCanvas && canvas) {\n document.body.removeChild(canvas);\n canvas = null;\n initialized = false;\n }\n }\n\n if (allowResize) {\n global.addEventListener('resize', onResize, false);\n }\n\n if (worker) {\n return worker.fire(options, size, done);\n }\n\n return fireLocal(options, size, done);\n }\n\n fire.reset = function () {\n if (worker) {\n worker.reset();\n }\n\n if (animationObj) {\n animationObj.reset();\n }\n };\n\n return fire;\n }\n\n module.exports = confettiCannon(null, { useWorker: true, resize: true });\n module.exports.create = confettiCannon;\n}((function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n return this;\n})(), module, false));\n\n// end source content\n\nexport default module.exports;\nexport var create = module.exports.create;\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","module.exports = require(\"regenerator-runtime\");\n","\"use strict\";\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});\nvar NativeWebSocket = _global.WebSocket || _global.MozWebSocket;\nvar Backoff = require(\"backo2\");\nvar eventemitter3_1 = require(\"eventemitter3\");\nvar is_string_1 = require(\"./utils/is-string\");\nvar is_object_1 = require(\"./utils/is-object\");\nvar printer_1 = require(\"graphql/language/printer\");\nvar getOperationAST_1 = require(\"graphql/utilities/getOperationAST\");\nvar symbol_observable_1 = require(\"symbol-observable\");\nvar protocol_1 = require(\"./protocol\");\nvar defaults_1 = require(\"./defaults\");\nvar message_types_1 = require(\"./message-types\");\nvar SubscriptionClient = (function () {\n function SubscriptionClient(url, options, webSocketImpl, webSocketProtocols) {\n var _a = (options || {}), _b = _a.connectionCallback, connectionCallback = _b === void 0 ? undefined : _b, _c = _a.connectionParams, connectionParams = _c === void 0 ? {} : _c, _d = _a.timeout, timeout = _d === void 0 ? defaults_1.WS_TIMEOUT : _d, _e = _a.reconnect, reconnect = _e === void 0 ? false : _e, _f = _a.reconnectionAttempts, reconnectionAttempts = _f === void 0 ? Infinity : _f, _g = _a.lazy, lazy = _g === void 0 ? false : _g, _h = _a.inactivityTimeout, inactivityTimeout = _h === void 0 ? 0 : _h;\n this.wsImpl = webSocketImpl || NativeWebSocket;\n if (!this.wsImpl) {\n throw new Error('Unable to find native implementation, or alternative implementation for WebSocket!');\n }\n this.wsProtocols = webSocketProtocols || protocol_1.GRAPHQL_WS;\n this.connectionCallback = connectionCallback;\n this.url = url;\n this.operations = {};\n this.nextOperationId = 0;\n this.wsTimeout = timeout;\n this.unsentMessagesQueue = [];\n this.reconnect = reconnect;\n this.reconnecting = false;\n this.reconnectionAttempts = reconnectionAttempts;\n this.lazy = !!lazy;\n this.inactivityTimeout = inactivityTimeout;\n this.closedByUser = false;\n this.backoff = new Backoff({ jitter: 0.5 });\n this.eventEmitter = new eventemitter3_1.EventEmitter();\n this.middlewares = [];\n this.client = null;\n this.maxConnectTimeGenerator = this.createMaxConnectTimeGenerator();\n this.connectionParams = this.getConnectionParams(connectionParams);\n if (!this.lazy) {\n this.connect();\n }\n }\n Object.defineProperty(SubscriptionClient.prototype, \"status\", {\n get: function () {\n if (this.client === null) {\n return this.wsImpl.CLOSED;\n }\n return this.client.readyState;\n },\n enumerable: true,\n configurable: true\n });\n SubscriptionClient.prototype.close = function (isForced, closedByUser) {\n if (isForced === void 0) { isForced = true; }\n if (closedByUser === void 0) { closedByUser = true; }\n this.clearInactivityTimeout();\n if (this.client !== null) {\n this.closedByUser = closedByUser;\n if (isForced) {\n this.clearCheckConnectionInterval();\n this.clearMaxConnectTimeout();\n this.clearTryReconnectTimeout();\n this.unsubscribeAll();\n this.sendMessage(undefined, message_types_1.default.GQL_CONNECTION_TERMINATE, null);\n }\n this.client.close();\n this.client = null;\n this.eventEmitter.emit('disconnected');\n if (!isForced) {\n this.tryReconnect();\n }\n }\n };\n SubscriptionClient.prototype.request = function (request) {\n var _a;\n var getObserver = this.getObserver.bind(this);\n var executeOperation = this.executeOperation.bind(this);\n var unsubscribe = this.unsubscribe.bind(this);\n var opId;\n this.clearInactivityTimeout();\n return _a = {},\n _a[symbol_observable_1.default] = function () {\n return this;\n },\n _a.subscribe = function (observerOrNext, onError, onComplete) {\n var observer = getObserver(observerOrNext, onError, onComplete);\n opId = executeOperation(request, function (error, result) {\n if (error === null && result === null) {\n if (observer.complete) {\n observer.complete();\n }\n }\n else if (error) {\n if (observer.error) {\n observer.error(error[0]);\n }\n }\n else {\n if (observer.next) {\n observer.next(result);\n }\n }\n });\n return {\n unsubscribe: function () {\n if (opId) {\n unsubscribe(opId);\n opId = null;\n }\n },\n };\n },\n _a;\n };\n SubscriptionClient.prototype.on = function (eventName, callback, context) {\n var handler = this.eventEmitter.on(eventName, callback, context);\n return function () {\n handler.off(eventName, callback, context);\n };\n };\n SubscriptionClient.prototype.onConnected = function (callback, context) {\n return this.on('connected', callback, context);\n };\n SubscriptionClient.prototype.onConnecting = function (callback, context) {\n return this.on('connecting', callback, context);\n };\n SubscriptionClient.prototype.onDisconnected = function (callback, context) {\n return this.on('disconnected', callback, context);\n };\n SubscriptionClient.prototype.onReconnected = function (callback, context) {\n return this.on('reconnected', callback, context);\n };\n SubscriptionClient.prototype.onReconnecting = function (callback, context) {\n return this.on('reconnecting', callback, context);\n };\n SubscriptionClient.prototype.onError = function (callback, context) {\n return this.on('error', callback, context);\n };\n SubscriptionClient.prototype.unsubscribeAll = function () {\n var _this = this;\n Object.keys(this.operations).forEach(function (subId) {\n _this.unsubscribe(subId);\n });\n };\n SubscriptionClient.prototype.applyMiddlewares = function (options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var queue = function (funcs, scope) {\n var next = function (error) {\n if (error) {\n reject(error);\n }\n else {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyMiddleware.apply(scope, [options, next]);\n }\n }\n else {\n resolve(options);\n }\n }\n };\n next();\n };\n queue(_this.middlewares.slice(), _this);\n });\n };\n SubscriptionClient.prototype.use = function (middlewares) {\n var _this = this;\n middlewares.map(function (middleware) {\n if (typeof middleware.applyMiddleware === 'function') {\n _this.middlewares.push(middleware);\n }\n else {\n throw new Error('Middleware must implement the applyMiddleware function.');\n }\n });\n return this;\n };\n SubscriptionClient.prototype.getConnectionParams = function (connectionParams) {\n return function () { return new Promise(function (resolve, reject) {\n if (typeof connectionParams === 'function') {\n try {\n return resolve(connectionParams.call(null));\n }\n catch (error) {\n return reject(error);\n }\n }\n resolve(connectionParams);\n }); };\n };\n SubscriptionClient.prototype.executeOperation = function (options, handler) {\n var _this = this;\n if (this.client === null) {\n this.connect();\n }\n var opId = this.generateOperationId();\n this.operations[opId] = { options: options, handler: handler };\n this.applyMiddlewares(options)\n .then(function (processedOptions) {\n _this.checkOperationOptions(processedOptions, handler);\n if (_this.operations[opId]) {\n _this.operations[opId] = { options: processedOptions, handler: handler };\n _this.sendMessage(opId, message_types_1.default.GQL_START, processedOptions);\n }\n })\n .catch(function (error) {\n _this.unsubscribe(opId);\n handler(_this.formatErrors(error));\n });\n return opId;\n };\n SubscriptionClient.prototype.getObserver = function (observerOrNext, error, complete) {\n if (typeof observerOrNext === 'function') {\n return {\n next: function (v) { return observerOrNext(v); },\n error: function (e) { return error && error(e); },\n complete: function () { return complete && complete(); },\n };\n }\n return observerOrNext;\n };\n SubscriptionClient.prototype.createMaxConnectTimeGenerator = function () {\n var minValue = 1000;\n var maxValue = this.wsTimeout;\n return new Backoff({\n min: minValue,\n max: maxValue,\n factor: 1.2,\n });\n };\n SubscriptionClient.prototype.clearCheckConnectionInterval = function () {\n if (this.checkConnectionIntervalId) {\n clearInterval(this.checkConnectionIntervalId);\n this.checkConnectionIntervalId = null;\n }\n };\n SubscriptionClient.prototype.clearMaxConnectTimeout = function () {\n if (this.maxConnectTimeoutId) {\n clearTimeout(this.maxConnectTimeoutId);\n this.maxConnectTimeoutId = null;\n }\n };\n SubscriptionClient.prototype.clearTryReconnectTimeout = function () {\n if (this.tryReconnectTimeoutId) {\n clearTimeout(this.tryReconnectTimeoutId);\n this.tryReconnectTimeoutId = null;\n }\n };\n SubscriptionClient.prototype.clearInactivityTimeout = function () {\n if (this.inactivityTimeoutId) {\n clearTimeout(this.inactivityTimeoutId);\n this.inactivityTimeoutId = null;\n }\n };\n SubscriptionClient.prototype.setInactivityTimeout = function () {\n var _this = this;\n if (this.inactivityTimeout > 0 && Object.keys(this.operations).length === 0) {\n this.inactivityTimeoutId = setTimeout(function () {\n if (Object.keys(_this.operations).length === 0) {\n _this.close();\n }\n }, this.inactivityTimeout);\n }\n };\n SubscriptionClient.prototype.checkOperationOptions = function (options, handler) {\n var query = options.query, variables = options.variables, operationName = options.operationName;\n if (!query) {\n throw new Error('Must provide a query.');\n }\n if (!handler) {\n throw new Error('Must provide an handler.');\n }\n if ((!is_string_1.default(query) && !getOperationAST_1.getOperationAST(query, operationName)) ||\n (operationName && !is_string_1.default(operationName)) ||\n (variables && !is_object_1.default(variables))) {\n throw new Error('Incorrect option types. query must be a string or a document,' +\n '`operationName` must be a string, and `variables` must be an object.');\n }\n };\n SubscriptionClient.prototype.buildMessage = function (id, type, payload) {\n var payloadToReturn = payload && payload.query ? __assign({}, payload, { query: typeof payload.query === 'string' ? payload.query : printer_1.print(payload.query) }) :\n payload;\n return {\n id: id,\n type: type,\n payload: payloadToReturn,\n };\n };\n SubscriptionClient.prototype.formatErrors = function (errors) {\n if (Array.isArray(errors)) {\n return errors;\n }\n if (errors && errors.errors) {\n return this.formatErrors(errors.errors);\n }\n if (errors && errors.message) {\n return [errors];\n }\n return [{\n name: 'FormatedError',\n message: 'Unknown error',\n originalError: errors,\n }];\n };\n SubscriptionClient.prototype.sendMessage = function (id, type, payload) {\n this.sendMessageRaw(this.buildMessage(id, type, payload));\n };\n SubscriptionClient.prototype.sendMessageRaw = function (message) {\n switch (this.status) {\n case this.wsImpl.OPEN:\n var serializedMessage = JSON.stringify(message);\n try {\n JSON.parse(serializedMessage);\n }\n catch (e) {\n this.eventEmitter.emit('error', new Error(\"Message must be JSON-serializable. Got: \" + message));\n }\n this.client.send(serializedMessage);\n break;\n case this.wsImpl.CONNECTING:\n this.unsentMessagesQueue.push(message);\n break;\n default:\n if (!this.reconnecting) {\n this.eventEmitter.emit('error', new Error('A message was not sent because socket is not connected, is closing or ' +\n 'is already closed. Message was: ' + JSON.stringify(message)));\n }\n }\n };\n SubscriptionClient.prototype.generateOperationId = function () {\n return String(++this.nextOperationId);\n };\n SubscriptionClient.prototype.tryReconnect = function () {\n var _this = this;\n if (!this.reconnect || this.backoff.attempts >= this.reconnectionAttempts) {\n return;\n }\n if (!this.reconnecting) {\n Object.keys(this.operations).forEach(function (key) {\n _this.unsentMessagesQueue.push(_this.buildMessage(key, message_types_1.default.GQL_START, _this.operations[key].options));\n });\n this.reconnecting = true;\n }\n this.clearTryReconnectTimeout();\n var delay = this.backoff.duration();\n this.tryReconnectTimeoutId = setTimeout(function () {\n _this.connect();\n }, delay);\n };\n SubscriptionClient.prototype.flushUnsentMessagesQueue = function () {\n var _this = this;\n this.unsentMessagesQueue.forEach(function (message) {\n _this.sendMessageRaw(message);\n });\n this.unsentMessagesQueue = [];\n };\n SubscriptionClient.prototype.checkConnection = function () {\n if (this.wasKeepAliveReceived) {\n this.wasKeepAliveReceived = false;\n return;\n }\n if (!this.reconnecting) {\n this.close(false, true);\n }\n };\n SubscriptionClient.prototype.checkMaxConnectTimeout = function () {\n var _this = this;\n this.clearMaxConnectTimeout();\n this.maxConnectTimeoutId = setTimeout(function () {\n if (_this.status !== _this.wsImpl.OPEN) {\n _this.reconnecting = true;\n _this.close(false, true);\n }\n }, this.maxConnectTimeGenerator.duration());\n };\n SubscriptionClient.prototype.connect = function () {\n var _this = this;\n this.client = new this.wsImpl(this.url, this.wsProtocols);\n this.checkMaxConnectTimeout();\n this.client.onopen = function () { return __awaiter(_this, void 0, void 0, function () {\n var connectionParams, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.status === this.wsImpl.OPEN)) return [3, 4];\n this.clearMaxConnectTimeout();\n this.closedByUser = false;\n this.eventEmitter.emit(this.reconnecting ? 'reconnecting' : 'connecting');\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4, this.connectionParams()];\n case 2:\n connectionParams = _a.sent();\n this.sendMessage(undefined, message_types_1.default.GQL_CONNECTION_INIT, connectionParams);\n this.flushUnsentMessagesQueue();\n return [3, 4];\n case 3:\n error_1 = _a.sent();\n this.sendMessage(undefined, message_types_1.default.GQL_CONNECTION_ERROR, error_1);\n this.flushUnsentMessagesQueue();\n return [3, 4];\n case 4: return [2];\n }\n });\n }); };\n this.client.onclose = function () {\n if (!_this.closedByUser) {\n _this.close(false, false);\n }\n };\n this.client.onerror = function (err) {\n _this.eventEmitter.emit('error', err);\n };\n this.client.onmessage = function (_a) {\n var data = _a.data;\n _this.processReceivedData(data);\n };\n };\n SubscriptionClient.prototype.processReceivedData = function (receivedData) {\n var parsedMessage;\n var opId;\n try {\n parsedMessage = JSON.parse(receivedData);\n opId = parsedMessage.id;\n }\n catch (e) {\n throw new Error(\"Message must be JSON-parseable. Got: \" + receivedData);\n }\n if ([message_types_1.default.GQL_DATA,\n message_types_1.default.GQL_COMPLETE,\n message_types_1.default.GQL_ERROR,\n ].indexOf(parsedMessage.type) !== -1 && !this.operations[opId]) {\n this.unsubscribe(opId);\n return;\n }\n switch (parsedMessage.type) {\n case message_types_1.default.GQL_CONNECTION_ERROR:\n if (this.connectionCallback) {\n this.connectionCallback(parsedMessage.payload);\n }\n break;\n case message_types_1.default.GQL_CONNECTION_ACK:\n this.eventEmitter.emit(this.reconnecting ? 'reconnected' : 'connected');\n this.reconnecting = false;\n this.backoff.reset();\n this.maxConnectTimeGenerator.reset();\n if (this.connectionCallback) {\n this.connectionCallback();\n }\n break;\n case message_types_1.default.GQL_COMPLETE:\n this.operations[opId].handler(null, null);\n delete this.operations[opId];\n break;\n case message_types_1.default.GQL_ERROR:\n this.operations[opId].handler(this.formatErrors(parsedMessage.payload), null);\n delete this.operations[opId];\n break;\n case message_types_1.default.GQL_DATA:\n var parsedPayload = !parsedMessage.payload.errors ?\n parsedMessage.payload : __assign({}, parsedMessage.payload, { errors: this.formatErrors(parsedMessage.payload.errors) });\n this.operations[opId].handler(null, parsedPayload);\n break;\n case message_types_1.default.GQL_CONNECTION_KEEP_ALIVE:\n var firstKA = typeof this.wasKeepAliveReceived === 'undefined';\n this.wasKeepAliveReceived = true;\n if (firstKA) {\n this.checkConnection();\n }\n if (this.checkConnectionIntervalId) {\n clearInterval(this.checkConnectionIntervalId);\n this.checkConnection();\n }\n this.checkConnectionIntervalId = setInterval(this.checkConnection.bind(this), this.wsTimeout);\n break;\n default:\n throw new Error('Invalid message type!');\n }\n };\n SubscriptionClient.prototype.unsubscribe = function (opId) {\n if (this.operations[opId]) {\n delete this.operations[opId];\n this.setInactivityTimeout();\n this.sendMessage(opId, message_types_1.default.GQL_STOP, undefined);\n }\n };\n return SubscriptionClient;\n}());\nexports.SubscriptionClient = SubscriptionClient;\n//# sourceMappingURL=client.js.map","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = util.assign(\n {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n }\n },\n Format\n);\n","/**\r\n * Parses an URI\r\n *\r\n * @author Steven Levithan (MIT license)\r\n * @api private\r\n */\r\n\r\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\r\nvar parts = [\r\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n];\r\n\r\nmodule.exports = function parseuri(str) {\r\n var src = str,\r\n b = str.indexOf('['),\r\n e = str.indexOf(']');\r\n\r\n if (b != -1 && e != -1) {\r\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n }\r\n\r\n var m = re.exec(str || ''),\r\n uri = {},\r\n i = 14;\r\n\r\n while (i--) {\r\n uri[parts[i]] = m[i] || '';\r\n }\r\n\r\n if (b != -1 && e != -1) {\r\n uri.source = src;\r\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n uri.ipv6uri = true;\r\n }\r\n\r\n return uri;\r\n};\r\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\nmodule.exports = isBuf;\n\nvar withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function';\nvar withNativeArrayBuffer = typeof ArrayBuffer === 'function';\n\nvar isView = function (obj) {\n return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer);\n};\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n return (withNativeBuffer && Buffer.isBuffer(obj)) ||\n (withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj)));\n}\n","\n/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n if (!(this instanceof Manager)) return new Manager(uri, opts);\n if (uri && ('object' === typeof uri)) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n\n opts.path = opts.path || '/socket.io';\n this.nsps = {};\n this.subs = [];\n this.opts = opts;\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor(opts.randomizationFactor || 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this.readyState = 'closed';\n this.uri = uri;\n this.connecting = [];\n this.lastPing = null;\n this.encoding = false;\n this.packetBuffer = [];\n var _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this.autoConnect = opts.autoConnect !== false;\n if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n this.emit.apply(this, arguments);\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n }\n }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].id = this.generateId(nsp);\n }\n }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n if (!arguments.length) return this._reconnection;\n this._reconnection = !!v;\n return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n if (!arguments.length) return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n if (!arguments.length) return this._reconnectionDelay;\n this._reconnectionDelay = v;\n this.backoff && this.backoff.setMin(v);\n return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n if (!arguments.length) return this._randomizationFactor;\n this._randomizationFactor = v;\n this.backoff && this.backoff.setJitter(v);\n return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n if (!arguments.length) return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n this.backoff && this.backoff.setMax(v);\n return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n if (!arguments.length) return this._timeout;\n this._timeout = v;\n return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n // Only try to reconnect if it's the first time we're connecting\n if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n debug('readyState %s', this.readyState);\n if (~this.readyState.indexOf('open')) return this;\n\n debug('opening %s', this.uri);\n this.engine = eio(this.uri, this.opts);\n var socket = this.engine;\n var self = this;\n this.readyState = 'opening';\n this.skipReconnect = false;\n\n // emit `open`\n var openSub = on(socket, 'open', function () {\n self.onopen();\n fn && fn();\n });\n\n // emit `connect_error`\n var errorSub = on(socket, 'error', function (data) {\n debug('connect_error');\n self.cleanup();\n self.readyState = 'closed';\n self.emitAll('connect_error', data);\n if (fn) {\n var err = new Error('Connection error');\n err.data = data;\n fn(err);\n } else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n\n // emit `connect_timeout`\n if (false !== this._timeout) {\n var timeout = this._timeout;\n debug('connect attempt will timeout after %d', timeout);\n\n // set timer\n var timer = setTimeout(function () {\n debug('connect attempt timed out after %d', timeout);\n openSub.destroy();\n socket.close();\n socket.emit('error', 'timeout');\n self.emitAll('connect_timeout', timeout);\n }, timeout);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n\n this.subs.push(openSub);\n this.subs.push(errorSub);\n\n return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n debug('open');\n\n // clear old subs\n this.cleanup();\n\n // mark as open\n this.readyState = 'open';\n this.emit('open');\n\n // add new subs\n var socket = this.engine;\n this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n this.lastPing = new Date();\n this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n debug('error', err);\n this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n var socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n var self = this;\n socket.on('connecting', onConnecting);\n socket.on('connect', function () {\n socket.id = self.generateId(nsp);\n });\n\n if (this.autoConnect) {\n // manually call here since connecting event is fired before listening\n onConnecting();\n }\n }\n\n function onConnecting () {\n if (!~indexOf(self.connecting, socket)) {\n self.connecting.push(socket);\n }\n }\n\n return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n var index = indexOf(this.connecting, socket);\n if (~index) this.connecting.splice(index, 1);\n if (this.connecting.length) return;\n\n this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n debug('writing packet %j', packet);\n var self = this;\n if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n if (!self.encoding) {\n // encode, then write to engine with result\n self.encoding = true;\n this.encoder.encode(packet, function (encodedPackets) {\n for (var i = 0; i < encodedPackets.length; i++) {\n self.engine.write(encodedPackets[i], packet.options);\n }\n self.encoding = false;\n self.processPacketQueue();\n });\n } else { // add packet to the queue\n self.packetBuffer.push(packet);\n }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n if (this.packetBuffer.length > 0 && !this.encoding) {\n var pack = this.packetBuffer.shift();\n this.packet(pack);\n }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n debug('cleanup');\n\n var subsLength = this.subs.length;\n for (var i = 0; i < subsLength; i++) {\n var sub = this.subs.shift();\n sub.destroy();\n }\n\n this.packetBuffer = [];\n this.encoding = false;\n this.lastPing = null;\n\n this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n debug('disconnect');\n this.skipReconnect = true;\n this.reconnecting = false;\n if ('opening' === this.readyState) {\n // `onclose` will not fire because\n // an open event never happened\n this.cleanup();\n }\n this.backoff.reset();\n this.readyState = 'closed';\n if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n debug('onclose');\n\n this.cleanup();\n this.backoff.reset();\n this.readyState = 'closed';\n this.emit('close', reason);\n\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n if (this.reconnecting || this.skipReconnect) return this;\n\n var self = this;\n\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n debug('reconnect failed');\n this.backoff.reset();\n this.emitAll('reconnect_failed');\n this.reconnecting = false;\n } else {\n var delay = this.backoff.duration();\n debug('will wait %dms before reconnect attempt', delay);\n\n this.reconnecting = true;\n var timer = setTimeout(function () {\n if (self.skipReconnect) return;\n\n debug('attempting reconnect');\n self.emitAll('reconnect_attempt', self.backoff.attempts);\n self.emitAll('reconnecting', self.backoff.attempts);\n\n // check again for the case socket closed in above events\n if (self.skipReconnect) return;\n\n self.open(function (err) {\n if (err) {\n debug('reconnect attempt error');\n self.reconnecting = false;\n self.reconnect();\n self.emitAll('reconnect_error', err.data);\n } else {\n debug('reconnect success');\n self.onreconnect();\n }\n });\n }, delay);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n var attempt = this.backoff.attempts;\n this.reconnecting = false;\n this.backoff.reset();\n this.updateSocketIds();\n this.emitAll('reconnect', attempt);\n};\n","/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n var xhr;\n var xd = false;\n var xs = false;\n var jsonp = false !== opts.jsonp;\n\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n xd = opts.hostname !== location.hostname || port !== opts.port;\n xs = opts.secure !== isSSL;\n }\n\n opts.xdomain = xd;\n opts.xscheme = xs;\n xhr = new XMLHttpRequest(opts);\n\n if ('open' in xhr && !opts.forceJSONP) {\n return new XHR(opts);\n } else {\n if (!jsonp) throw new Error('JSONP disabled');\n return new JSONP(opts);\n }\n}\n","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n var XMLHttpRequest = require('xmlhttprequest-ssl');\n var xhr = new XMLHttpRequest({ xdomain: false });\n return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n var self = this;\n\n this.readyState = 'pausing';\n\n function pause () {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n\n if (this.polling || !this.writable) {\n var total = 0;\n\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function () {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function () {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function (packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState) {\n self.onOpen();\n }\n\n // if its a close packet, we close the ongoing requests\n if ('close' === packet.type) {\n self.onClose();\n return false;\n }\n\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n\n // decode payload\n parser.decodePayload(data, this.socket.binaryType, callback);\n\n // if an event did not trigger closing\n if ('closed' !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit('pollComplete');\n\n if ('open' === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n var self = this;\n\n function close () {\n debug('writing close packet');\n self.write([{ type: 'close' }]);\n }\n\n if ('open' === this.readyState) {\n debug('transport open - closing');\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug('transport not open - deferring close');\n this.once('open', close);\n }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n var callbackfn = function () {\n self.writable = true;\n self.emit('drain');\n };\n\n parser.encodePayload(packets, this.supportsBinary, function (data) {\n self.doWrite(data, callbackfn);\n });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'https' : 'http';\n var port = '';\n\n // cache busting is forced\n if (false !== this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // avoid port if default for schema\n if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n ('http' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' ||\n typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof File === 'function' ||\n typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (isArray(obj)) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n\n if ((typeof Buffer === 'function' && Buffer.isBuffer && Buffer.isBuffer(obj)) ||\n (typeof ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)\n ) {\n return true;\n }\n\n // see: https://github.com/Automattic/has-binary/pull/4\n if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n , length = 64\n , map = {}\n , seed = 0\n , i = 0\n , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n var encoded = '';\n\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n\n return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n var decoded = 0;\n\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n\n return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n var now = encode(+new Date());\n\n if (now !== prev) return seed = 0, prev = now;\n return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\nvar hasBin = require('has-binary2');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n connecting: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1,\n ping: 1,\n pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n this.io = io;\n this.nsp = nsp;\n this.json = this; // compat\n this.ids = 0;\n this.acks = {};\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.connected = false;\n this.disconnected = true;\n this.flags = {};\n if (opts && opts.query) {\n this.query = opts.query;\n }\n if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n if (this.subs) return;\n\n var io = this.io;\n this.subs = [\n on(io, 'open', bind(this, 'onopen')),\n on(io, 'packet', bind(this, 'onpacket')),\n on(io, 'close', bind(this, 'onclose'))\n ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n if (this.connected) return this;\n\n this.subEvents();\n this.io.open(); // ensure open\n if ('open' === this.io.readyState) this.onopen();\n this.emit('connecting');\n return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n var args = toArray(arguments);\n args.unshift('message');\n this.emit.apply(this, args);\n return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n if (events.hasOwnProperty(ev)) {\n emit.apply(this, arguments);\n return this;\n }\n\n var args = toArray(arguments);\n var packet = {\n type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n data: args\n };\n\n packet.options = {};\n packet.options.compress = !this.flags || false !== this.flags.compress;\n\n // event ack callback\n if ('function' === typeof args[args.length - 1]) {\n debug('emitting packet with ack id %d', this.ids);\n this.acks[this.ids] = args.pop();\n packet.id = this.ids++;\n }\n\n if (this.connected) {\n this.packet(packet);\n } else {\n this.sendBuffer.push(packet);\n }\n\n this.flags = {};\n\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n packet.nsp = this.nsp;\n this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n debug('transport is open - connecting');\n\n // write connect packet if necessary\n if ('/' !== this.nsp) {\n if (this.query) {\n var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n debug('sending connect packet with query %s', query);\n this.packet({type: parser.CONNECT, query: query});\n } else {\n this.packet({type: parser.CONNECT});\n }\n }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n debug('close (%s)', reason);\n this.connected = false;\n this.disconnected = true;\n delete this.id;\n this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n var sameNamespace = packet.nsp === this.nsp;\n var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\n if (!sameNamespace && !rootNamespaceError) return;\n\n switch (packet.type) {\n case parser.CONNECT:\n this.onconnect();\n break;\n\n case parser.EVENT:\n this.onevent(packet);\n break;\n\n case parser.BINARY_EVENT:\n this.onevent(packet);\n break;\n\n case parser.ACK:\n this.onack(packet);\n break;\n\n case parser.BINARY_ACK:\n this.onack(packet);\n break;\n\n case parser.DISCONNECT:\n this.ondisconnect();\n break;\n\n case parser.ERROR:\n this.emit('error', packet.data);\n break;\n }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n var args = packet.data || [];\n debug('emitting event %j', args);\n\n if (null != packet.id) {\n debug('attaching ack callback to event');\n args.push(this.ack(packet.id));\n }\n\n if (this.connected) {\n emit.apply(this, args);\n } else {\n this.receiveBuffer.push(args);\n }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n var self = this;\n var sent = false;\n return function () {\n // prevent double callbacks\n if (sent) return;\n sent = true;\n var args = toArray(arguments);\n debug('sending ack %j', args);\n\n self.packet({\n type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n id: id,\n data: args\n });\n };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n var ack = this.acks[packet.id];\n if ('function' === typeof ack) {\n debug('calling ack %s with %j', packet.id, packet.data);\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n } else {\n debug('bad ack %s', packet.id);\n }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n this.connected = true;\n this.disconnected = false;\n this.emit('connect');\n this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n var i;\n for (i = 0; i < this.receiveBuffer.length; i++) {\n emit.apply(this, this.receiveBuffer[i]);\n }\n this.receiveBuffer = [];\n\n for (i = 0; i < this.sendBuffer.length; i++) {\n this.packet(this.sendBuffer[i]);\n }\n this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n debug('server disconnect (%s)', this.nsp);\n this.destroy();\n this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n for (var i = 0; i < this.subs.length; i++) {\n this.subs[i].destroy();\n }\n this.subs = null;\n }\n\n this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n if (this.connected) {\n debug('performing disconnect (%s)', this.nsp);\n this.packet({ type: parser.DISCONNECT });\n }\n\n // remove socket from pool\n this.destroy();\n\n if (this.connected) {\n // fire events\n this.onclose('io client disconnect');\n }\n return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n this.flags.compress = compress;\n return this;\n};\n\n/**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.binary = function (binary) {\n this.flags.binary = binary;\n return this;\n};\n","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n","\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n obj.on(ev, fn);\n return {\n destroy: function () {\n obj.removeListener(ev, fn);\n }\n };\n}\n","/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(obj, fn){\n if ('string' == typeof fn) fn = obj[fn];\n if ('function' != typeof fn) throw new Error('bind() requires a function');\n var args = slice.call(arguments, 2);\n return function(){\n return fn.apply(obj, args.concat(slice.call(arguments)));\n }\n};\n","\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n this.jitter = jitter;\n};\n\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import { useReducer, useRef, useEffect, useLayoutEffect } from 'react';\n\nconst useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\nfunction create(createState) {\n let state;\n let listeners = new Set();\n\n const setState = partial => {\n const partialState = typeof partial === 'function' ? partial(state) : partial;\n\n if (partialState !== state) {\n state = Object.assign({}, state, partialState);\n listeners.forEach(listener => listener());\n }\n };\n\n const getState = () => state;\n\n const getSubscriber = (listener, selector = getState, equalityFn = Object.is) => ({\n currentSlice: selector(state),\n equalityFn,\n errored: false,\n listener,\n selector,\n unsubscribe: () => {}\n });\n\n const subscribe = subscriber => {\n function listener() {\n // Selector or equality function could throw but we don't want to stop\n // the listener from being called.\n // https://github.com/react-spring/zustand/pull/37\n try {\n const newStateSlice = subscriber.selector(state);\n\n if (!subscriber.equalityFn(subscriber.currentSlice, newStateSlice)) {\n subscriber.listener(subscriber.currentSlice = newStateSlice);\n }\n } catch (error) {\n subscriber.errored = true;\n subscriber.listener(null, error);\n }\n }\n\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n };\n\n const apiSubscribe = (listener, selector, equalityFn) => subscribe(getSubscriber(listener, selector, equalityFn));\n\n const destroy = () => listeners.clear();\n\n const useStore = (selector = getState, equalityFn = Object.is) => {\n const forceUpdate = useReducer(c => c + 1, 0)[1];\n const subscriberRef = useRef();\n\n if (!subscriberRef.current) {\n subscriberRef.current = getSubscriber(forceUpdate, selector, equalityFn);\n subscriberRef.current.unsubscribe = subscribe(subscriberRef.current);\n }\n\n const subscriber = subscriberRef.current;\n let newStateSlice;\n let hasNewStateSlice = false; // The selector or equalityFn need to be called during the render phase if\n // they change. We also want legitimate errors to be visible so we re-run\n // them if they errored in the subscriber.\n\n if (subscriber.selector !== selector || subscriber.equalityFn !== equalityFn || subscriber.errored) {\n // Using local variables to avoid mutations in the render phase.\n newStateSlice = selector(state);\n hasNewStateSlice = !equalityFn(subscriber.currentSlice, newStateSlice);\n } // Syncing changes in useEffect.\n\n\n useIsoLayoutEffect(() => {\n if (hasNewStateSlice) {\n subscriber.currentSlice = newStateSlice;\n }\n\n subscriber.selector = selector;\n subscriber.equalityFn = equalityFn;\n subscriber.errored = false;\n });\n useIsoLayoutEffect(() => subscriber.unsubscribe, []);\n return hasNewStateSlice ? newStateSlice : subscriber.currentSlice;\n };\n\n const api = {\n setState,\n getState,\n subscribe: apiSubscribe,\n destroy\n };\n state = createState(setState, getState, api);\n return [useStore, api];\n}\n\nexport default create;\nexport { create };\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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 = debounce;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\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 nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\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/**\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 to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\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\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\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\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\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\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\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\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\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\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\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\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 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 * 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/** 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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\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/** 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 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/**\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\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\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\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\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\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\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/**\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\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\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\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\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\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\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/**\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\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\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\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\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\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\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/**\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\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\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\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/**\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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 // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\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\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\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 // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\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\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\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\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\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\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\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\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 length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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 = isEqual;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","module.exports = require('./lib/Observable.js').Observable;\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n * `io('http://localhost/a');`\n * `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n if (typeof uri === 'object') {\n opts = uri;\n uri = undefined;\n }\n\n opts = opts || {};\n\n var parsed = url(uri);\n var source = parsed.source;\n var id = parsed.id;\n var path = parsed.path;\n var sameNamespace = cache[id] && path in cache[id].nsps;\n var newConnection = opts.forceNew || opts['force new connection'] ||\n false === opts.multiplex || sameNamespace;\n\n var io;\n\n if (newConnection) {\n debug('ignoring socket cache for %s', source);\n io = Manager(source, opts);\n } else {\n if (!cache[id]) {\n debug('new io instance for %s', source);\n cache[id] = Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.query;\n }\n return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import { Operation } from 'apollo-link';\nimport { print } from 'graphql/language/printer';\nimport { InvariantError } from 'ts-invariant';\n\n/*\n * Http Utilities: shared across links that make http requests\n */\n\n// XXX replace with actual typings when available\ndeclare var AbortController: any;\n\n//Used for any Error for data from the server\n//on a request with a Status >= 300\n//response contains no data or errors\nexport type ServerError = Error & {\n response: Response;\n result: Record;\n statusCode: number;\n};\n\n//Thrown when server's resonse is cannot be parsed\nexport type ServerParseError = Error & {\n response: Response;\n statusCode: number;\n bodyText: string;\n};\n\nexport type ClientParseError = InvariantError & {\n parseError: Error;\n};\n\nexport interface HttpQueryOptions {\n includeQuery?: boolean;\n includeExtensions?: boolean;\n}\n\nexport interface HttpConfig {\n http?: HttpQueryOptions;\n options?: any;\n headers?: any; //overrides headers in options\n credentials?: any;\n}\n\nexport interface UriFunction {\n (operation: Operation): string;\n}\n\n// The body of a GraphQL-over-HTTP-POST request.\nexport interface Body {\n query?: string;\n operationName?: string;\n variables?: Record;\n extensions?: Record;\n}\n\nexport interface HttpOptions {\n /**\n * The URI to use when fetching operations.\n *\n * Defaults to '/graphql'.\n */\n uri?: string | UriFunction;\n\n /**\n * Passes the extensions field to your graphql server.\n *\n * Defaults to false.\n */\n includeExtensions?: boolean;\n\n /**\n * A `fetch`-compatible API to use when making requests.\n */\n fetch?: WindowOrWorkerGlobalScope['fetch'];\n\n /**\n * An object representing values to be sent as headers on the request.\n */\n headers?: any;\n\n /**\n * The credentials policy you want to use for the fetch call.\n */\n credentials?: string;\n\n /**\n * Any overrides of the fetch options argument to pass to the fetch call.\n */\n fetchOptions?: any;\n}\n\nconst defaultHttpOptions: HttpQueryOptions = {\n includeQuery: true,\n includeExtensions: false,\n};\n\nconst defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: '*/*',\n 'content-type': 'application/json',\n};\n\nconst defaultOptions = {\n method: 'POST',\n};\n\nexport const fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\n\nexport const throwServerError = (response, result, message) => {\n const error = new Error(message) as ServerError;\n\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n\n throw error;\n};\n\n//TODO: when conditional types come in ts 2.8, operations should be a generic type that extends Operation | Array\nexport const parseAndCheckHttpResponse = operations => (response: Response) => {\n return (\n response\n .text()\n .then(bodyText => {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n const parseError = err as ServerParseError;\n parseError.name = 'ServerParseError';\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n return Promise.reject(parseError);\n }\n })\n //TODO: when conditional types come out then result should be T extends Array ? Array : FetchResult\n .then((result: any) => {\n if (response.status >= 300) {\n //Network error\n throwServerError(\n response,\n result,\n `Response not successful: Received status code ${response.status}`,\n );\n }\n //TODO should really error per response in a Batch based on properties\n // - could be done in a validation link\n if (\n !Array.isArray(result) &&\n !result.hasOwnProperty('data') &&\n !result.hasOwnProperty('errors')\n ) {\n //Data error\n throwServerError(\n response,\n result,\n `Server response was missing for query '${\n Array.isArray(operations)\n ? operations.map(op => op.operationName)\n : operations.operationName\n }'.`,\n );\n }\n return result;\n })\n );\n};\n\nexport const checkFetcher = (fetcher: WindowOrWorkerGlobalScope['fetch']) => {\n if (!fetcher && typeof fetch === 'undefined') {\n let library: string = 'unfetch';\n if (typeof window === 'undefined') library = 'node-fetch';\n throw new InvariantError(`\nfetch is not found globally and no fetcher passed, to fix pass a fetch for\nyour environment like https://www.npmjs.com/package/${library}.\n\nFor example:\nimport fetch from '${library}';\nimport { createHttpLink } from 'apollo-link-http';\n\nconst link = createHttpLink({ uri: '/graphql', fetch: fetch });`);\n }\n};\n\nexport const createSignalIfSupported = () => {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n\n const controller = new AbortController();\n const signal = controller.signal;\n return { controller, signal };\n};\n\nexport const selectHttpOptionsAndBody = (\n operation: Operation,\n fallbackConfig: HttpConfig,\n ...configs: Array\n) => {\n let options: HttpConfig & Record = {\n ...fallbackConfig.options,\n headers: fallbackConfig.headers,\n credentials: fallbackConfig.credentials,\n };\n let http: HttpQueryOptions = fallbackConfig.http;\n\n /*\n * use the rest of the configs to populate the options\n * configs later in the list will overwrite earlier fields\n */\n configs.forEach(config => {\n options = {\n ...options,\n ...config.options,\n headers: {\n ...options.headers,\n ...config.headers,\n },\n };\n if (config.credentials) options.credentials = config.credentials;\n\n http = {\n ...http,\n ...config.http,\n };\n });\n\n //The body depends on the http options\n const { operationName, extensions, variables, query } = operation;\n const body: Body = { operationName, variables };\n\n if (http.includeExtensions) (body as any).extensions = extensions;\n\n // not sending the query (i.e persisted queries)\n if (http.includeQuery) (body as any).query = print(query);\n\n return {\n options,\n body,\n };\n};\n\nexport const serializeFetchParameter = (p, label) => {\n let serialized;\n try {\n serialized = JSON.stringify(p);\n } catch (e) {\n const parseError = new InvariantError(\n `Network request failed. ${label} is not serializable: ${e.message}`,\n ) as ClientParseError;\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n\n//selects \"/graphql\" by default\nexport const selectURI = (\n operation,\n fallbackURI?: string | ((operation: Operation) => string),\n) => {\n const context = operation.getContext();\n const contextURI = context.uri;\n\n if (contextURI) {\n return contextURI;\n } else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n } else {\n return (fallbackURI as string) || '/graphql';\n }\n};\n","import { ApolloLink, Operation, FetchResult, Observable } from 'apollo-link';\n\nimport { SubscriptionClient, ClientOptions } from 'subscriptions-transport-ws';\n\nexport namespace WebSocketLink {\n /**\n * Configuration to use when constructing the subscription client (subscriptions-transport-ws).\n */\n export interface Configuration {\n /**\n * The endpoint to connect to.\n */\n uri: string;\n\n /**\n * Options to pass when constructing the subscription client.\n */\n options?: ClientOptions;\n\n /**\n * A custom WebSocket implementation to use.\n */\n webSocketImpl?: any;\n }\n}\n\n// For backwards compatibility.\nexport import WebSocketParams = WebSocketLink.Configuration;\n\nexport class WebSocketLink extends ApolloLink {\n private subscriptionClient: SubscriptionClient;\n\n constructor(\n paramsOrClient: WebSocketLink.Configuration | SubscriptionClient,\n ) {\n super();\n\n if (paramsOrClient instanceof SubscriptionClient) {\n this.subscriptionClient = paramsOrClient;\n } else {\n this.subscriptionClient = new SubscriptionClient(\n paramsOrClient.uri,\n paramsOrClient.options,\n paramsOrClient.webSocketImpl,\n );\n }\n }\n\n public request(operation: Operation): Observable | null {\n return this.subscriptionClient.request(operation) as Observable<\n FetchResult\n >;\n }\n}\n","import {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n FieldNode,\n FragmentDefinitionNode,\n} from 'graphql';\n\nexport function queryFromPojo(obj: any): DocumentNode {\n const op: OperationDefinitionNode = {\n kind: 'OperationDefinition',\n operation: 'query',\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery',\n },\n selectionSet: selectionSetFromObj(obj),\n };\n\n const out: DocumentNode = {\n kind: 'Document',\n definitions: [op],\n };\n\n return out;\n}\n\nexport function fragmentFromPojo(obj: any, typename?: string): DocumentNode {\n const frag: FragmentDefinitionNode = {\n kind: 'FragmentDefinition',\n typeCondition: {\n kind: 'NamedType',\n name: {\n kind: 'Name',\n value: typename || '__FakeType',\n },\n },\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery',\n },\n selectionSet: selectionSetFromObj(obj),\n };\n\n const out: DocumentNode = {\n kind: 'Document',\n definitions: [frag],\n };\n\n return out;\n}\n\nfunction selectionSetFromObj(obj: any): SelectionSetNode {\n if (\n typeof obj === 'number' ||\n typeof obj === 'boolean' ||\n typeof obj === 'string' ||\n typeof obj === 'undefined' ||\n obj === null\n ) {\n // No selection set here\n return null;\n }\n\n if (Array.isArray(obj)) {\n // GraphQL queries don't include arrays\n return selectionSetFromObj(obj[0]);\n }\n\n // Now we know it's an object\n const selections: FieldNode[] = [];\n\n Object.keys(obj).forEach(key => {\n const nestedSelSet: SelectionSetNode = selectionSetFromObj(obj[key]);\n\n const field: FieldNode = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: key,\n },\n selectionSet: nestedSelSet || undefined,\n };\n\n selections.push(field);\n });\n\n const selectionSet: SelectionSetNode = {\n kind: 'SelectionSet',\n selections,\n };\n\n return selectionSet;\n}\n\nexport const justTypenameQuery: DocumentNode = {\n kind: 'Document',\n definitions: [\n {\n kind: 'OperationDefinition',\n operation: 'query',\n name: null,\n variableDefinitions: null,\n directives: [],\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'Field',\n alias: null,\n name: {\n kind: 'Name',\n value: '__typename',\n },\n arguments: [],\n directives: [],\n selectionSet: null,\n },\n ],\n },\n },\n ],\n};\n","import { DataProxy } from './DataProxy';\n\nexport namespace Cache {\n export type WatchCallback = (newData: any) => void;\n export interface EvictionResult {\n success: Boolean;\n }\n\n export interface ReadOptions\n extends DataProxy.Query {\n rootId?: string;\n previousResult?: any;\n optimistic: boolean;\n }\n\n export interface WriteOptions\n extends DataProxy.Query {\n dataId: string;\n result: TResult;\n }\n\n export interface DiffOptions extends ReadOptions {\n returnPartialData?: boolean;\n }\n\n export interface WatchOptions extends ReadOptions {\n callback: WatchCallback;\n }\n\n export interface EvictOptions\n extends DataProxy.Query {\n rootId?: string;\n }\n\n export import DiffResult = DataProxy.DiffResult;\n export import WriteQueryOptions = DataProxy.WriteQueryOptions;\n export import WriteFragmentOptions = DataProxy.WriteFragmentOptions;\n export import WriteDataOptions = DataProxy.WriteDataOptions;\n export import Fragment = DataProxy.Fragment;\n}\n","interface Node {\n key: K;\n value: V;\n newer: Node | null;\n older: Node | null;\n}\n\nfunction defaultDispose() {}\n\nexport class Cache {\n private map = new Map>();\n private newest: Node | null = null;\n private oldest: Node | null = null;\n\n constructor(\n private max = Infinity,\n public dispose: (value: V, key: K) => void = defaultDispose,\n ) {}\n\n public has(key: K) {\n return this.map.has(key);\n }\n\n public get(key: K) {\n const entry = this.getEntry(key);\n return entry && entry.value;\n }\n\n private getEntry(key: K): Node | void {\n const entry = this.map.get(key);\n\n if (entry && entry !== this.newest) {\n const { older, newer } = entry;\n\n if (newer) {\n newer.older = older;\n }\n\n if (older) {\n older.newer = newer;\n }\n\n entry.older = this.newest;\n entry.older!.newer = entry;\n\n entry.newer = null;\n this.newest = entry;\n\n if (entry === this.oldest) {\n this.oldest = newer;\n }\n }\n\n return entry;\n }\n\n public set(key: K, value: V) {\n let entry = this.getEntry(key);\n if (entry) {\n return entry.value = value;\n }\n\n entry = {\n key: key,\n value: value,\n newer: null,\n older: this.newest\n };\n\n if (this.newest) {\n this.newest.newer = entry;\n }\n\n this.newest = entry;\n this.oldest = this.oldest || entry;\n\n this.map.set(key, entry);\n\n return entry.value;\n }\n\n public clean() {\n while (this.oldest && this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n }\n\n public delete(key: K) {\n const entry = this.map.get(key);\n if (entry) {\n if (entry === this.newest) {\n this.newest = entry.older;\n }\n\n if (entry === this.oldest) {\n this.oldest = entry.newer;\n }\n\n if (entry.newer) {\n entry.newer.older = entry.older;\n }\n\n if (entry.older) {\n entry.older.newer = entry.newer;\n }\n\n this.map.delete(key);\n this.dispose(entry.value, key);\n\n return true;\n }\n\n return false;\n }\n}\n","type Context = {\n parent: Context | null;\n slots: { [slotId: string]: any };\n}\n\n// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nlet currentContext: Context | null = null;\n\n// This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\nconst MISSING_VALUE: any = {};\n\nlet idCounter = 1;\n\n// Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\nconst makeSlotClass = () => class Slot {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n public readonly id = [\n \"slot\",\n idCounter++,\n Date.now(),\n Math.random().toString(36).slice(2),\n ].join(\":\");\n\n public hasValue() {\n for (let context = currentContext; context; context = context.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context.slots) {\n const value = context.slots[this.id];\n if (value === MISSING_VALUE) break;\n if (context !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext!.slots[this.id] = value;\n }\n return true;\n }\n }\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n return false;\n }\n\n public getValue(): TValue | undefined {\n if (this.hasValue()) {\n return currentContext!.slots[this.id] as TValue;\n }\n }\n\n public withValue(\n value: TValue,\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ): TResult {\n const slots = {\n __proto__: null,\n [this.id]: value,\n };\n const parent = currentContext;\n currentContext = { parent, slots };\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg!, args!);\n } finally {\n currentContext = parent;\n }\n }\n\n // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n static bind(\n callback: (...args: TArgs) => TResult,\n ) {\n const context = currentContext;\n return function (this: any) {\n const saved = currentContext;\n try {\n currentContext = context;\n return callback.apply(this, arguments as any);\n } finally {\n currentContext = saved;\n }\n } as typeof callback;\n }\n\n // Immediately run a callback function without any captured context.\n static noContext(\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ) {\n if (currentContext) {\n const saved = currentContext;\n try {\n currentContext = null;\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg!, args!);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg!, args!);\n }\n }\n};\n\n// We store a single global implementation of the Slot class as a permanent\n// non-enumerable symbol property of the Array constructor. This obfuscation\n// does nothing to prevent access to the Slot class, but at least it ensures\n// the implementation (i.e. currentContext) cannot be tampered with, and all\n// copies of the @wry/context package (hopefully just one) will share the\n// same Slot implementation. Since the first copy of the @wry/context package\n// to be imported wins, this technique imposes a very high cost for any\n// future breaking changes to the Slot class.\nconst globalKey = \"@wry/context:Slot\";\nconst host = Array as any;\n\nexport const Slot: ReturnType = host[globalKey] || function () {\n const Slot = makeSlotClass();\n try {\n Object.defineProperty(host, globalKey, {\n value: host[globalKey] = Slot,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n } finally {\n return Slot;\n }\n}();\n","import { AnyEntry } from \"./entry\";\nimport { Slot } from \"@wry/context\";\n\nexport const parentEntrySlot = new Slot();\n\nexport {\n bind as bindContext,\n noContext,\n setTimeout,\n asyncFromGen,\n} from \"@wry/context\";\n","import { parentEntrySlot } from \"./context\";\nimport { OptimisticWrapOptions } from \"./index\";\n\nconst reusableEmptyArray: AnyEntry[] = [];\nconst emptySetPool: Set[] = [];\nconst POOL_TARGET_SIZE = 100;\n\n// Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\nfunction assert(condition: any, optionalMessage?: string) {\n if (! condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\n// Since exceptions are cached just like normal values, we need an efficient\n// way of representing unknown, ordinary, and exceptional values.\ntype Value =\n | [] // unknown\n | [T] // known value\n | [void, any]; // known exception\n\nfunction valueIs(a: Value, b: Value) {\n const len = a.length;\n return (\n // Unknown values are not equal to each other.\n len > 0 &&\n // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length &&\n // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet(value: Value): T {\n switch (value.length) {\n case 0: throw new Error(\"unknown value\");\n case 1: return value[0];\n case 2: throw value[1];\n }\n}\n\nfunction valueCopy(value: Value): Value {\n return value.slice(0) as Value;\n}\n\nexport type AnyEntry = Entry;\n\nexport class Entry {\n public static count = 0;\n\n public subscribe: OptimisticWrapOptions[\"subscribe\"];\n public unsubscribe?: () => any;\n public reportOrphan?: (this: Entry) => any;\n\n public readonly parents = new Set();\n public readonly childValues = new Map>();\n\n // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n public dirtyChildren: Set | null = null;\n\n public dirty = true;\n public recomputing = false;\n public readonly value: Value = [];\n\n constructor(\n public readonly fn: (...args: TArgs) => TValue,\n public args: TArgs,\n ) {\n ++Entry.count;\n }\n\n // This is the most important method of the Entry API, because it\n // determines whether the cached this.value can be returned immediately,\n // or must be recomputed. The overall performance of the caching system\n // depends on the truth of the following observations: (1) this.dirty is\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n // (3) valueGet(this.value) is usually returned without recomputation.\n public recompute(): TValue {\n assert(! this.recomputing, \"already recomputing\");\n\n if (! rememberParent(this) && maybeReportOrphan(this)) {\n // The recipient of the entry.reportOrphan callback decided to dispose\n // of this orphan entry by calling entry.dispose(), so we don't need to\n // (and should not) proceed with the recomputation.\n return void 0 as any;\n }\n\n return mightBeDirty(this)\n ? reallyRecompute(this)\n : valueGet(this.value);\n }\n\n public setDirty() {\n if (this.dirty) return;\n this.dirty = true;\n this.value.length = 0;\n reportDirty(this);\n // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n maybeUnsubscribe(this);\n }\n\n public dispose() {\n forgetChildren(this).forEach(maybeReportOrphan);\n maybeUnsubscribe(this);\n\n // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n this.parents.forEach(parent => {\n parent.setDirty();\n forgetChild(parent, this);\n });\n }\n}\n\nfunction rememberParent(child: AnyEntry) {\n const parent = parentEntrySlot.getValue();\n if (parent) {\n child.parents.add(parent);\n\n if (! parent.childValues.has(child)) {\n parent.childValues.set(child, []);\n }\n\n if (mightBeDirty(child)) {\n reportDirtyChild(parent, child);\n } else {\n reportCleanChild(parent, child);\n }\n\n return parent;\n }\n}\n\nfunction reallyRecompute(entry: AnyEntry) {\n // Since this recomputation is likely to re-remember some of this\n // entry's children, we forget our children here but do not call\n // maybeReportOrphan until after the recomputation finishes.\n const originalChildren = forgetChildren(entry);\n\n // Set entry as the parent entry while calling recomputeNewValue(entry).\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry]);\n\n if (maybeSubscribe(entry)) {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n }\n\n // Now that we've had a chance to re-remember any children that were\n // involved in the recomputation, we can safely report any orphan\n // children that remain.\n originalChildren.forEach(maybeReportOrphan);\n\n return valueGet(entry.value);\n}\n\nfunction recomputeNewValue(entry: AnyEntry) {\n entry.recomputing = true;\n // Set entry.value as unknown.\n entry.value.length = 0;\n try {\n // If entry.fn succeeds, entry.value will become a normal Value.\n entry.value[0] = entry.fn.apply(null, entry.args);\n } catch (e) {\n // If entry.fn throws, entry.value will become exceptional.\n entry.value[1] = e;\n }\n // Either way, this line is always reached.\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry: AnyEntry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry: AnyEntry) {\n entry.dirty = false;\n\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n\n reportClean(entry);\n}\n\nfunction reportDirty(child: AnyEntry) {\n child.parents.forEach(parent => reportDirtyChild(parent, child));\n}\n\nfunction reportClean(child: AnyEntry) {\n child.parents.forEach(parent => reportCleanChild(parent, child));\n}\n\n// Let a parent Entry know that one of its children may be dirty.\nfunction reportDirtyChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n\n if (! parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set;\n\n } else if (parent.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n\n parent.dirtyChildren.add(child);\n reportDirty(parent);\n}\n\n// Let a parent Entry know that one of its children is no longer dirty.\nfunction reportCleanChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(! mightBeDirty(child));\n\n const childValue = parent.childValues.get(child)!;\n if (childValue.length === 0) {\n parent.childValues.set(child, valueCopy(child.value));\n } else if (! valueIs(childValue, child.value)) {\n parent.setDirty();\n }\n\n removeDirtyChild(parent, child);\n\n if (mightBeDirty(parent)) {\n return;\n }\n\n reportClean(parent);\n}\n\nfunction removeDirtyChild(parent: AnyEntry, child: AnyEntry) {\n const dc = parent.dirtyChildren;\n if (dc) {\n dc.delete(child);\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n parent.dirtyChildren = null;\n }\n }\n}\n\n// If the given entry has a reportOrphan method, and no remaining parents,\n// call entry.reportOrphan and return true iff it returns true. The\n// reportOrphan function should return true to indicate entry.dispose()\n// has been called, and the entry has been removed from any other caches\n// (see index.js for the only current example).\nfunction maybeReportOrphan(entry: AnyEntry) {\n return entry.parents.size === 0 &&\n typeof entry.reportOrphan === \"function\" &&\n entry.reportOrphan() === true;\n}\n\n// Removes all children from this entry and returns an array of the\n// removed children.\nfunction forgetChildren(parent: AnyEntry) {\n let children = reusableEmptyArray;\n\n if (parent.childValues.size > 0) {\n children = [];\n parent.childValues.forEach((_value, child) => {\n forgetChild(parent, child);\n children.push(child);\n });\n }\n\n // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n assert(parent.dirtyChildren === null);\n\n return children;\n}\n\nfunction forgetChild(parent: AnyEntry, child: AnyEntry) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry: AnyEntry) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\n entry.unsubscribe = entry.subscribe.apply(null, entry.args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n }\n\n // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n return true;\n}\n\nfunction maybeUnsubscribe(entry: AnyEntry) {\n const { unsubscribe } = entry;\n if (typeof unsubscribe === \"function\") {\n entry.unsubscribe = void 0;\n unsubscribe();\n }\n}\n","// A trie data structure that holds object keys weakly, yet can also hold\n// non-object keys, unlike the native `WeakMap`.\nexport class KeyTrie {\n // Since a `WeakMap` cannot hold primitive values as keys, we need a\n // backup `Map` instance to hold primitive keys. Both `this._weakMap`\n // and `this._strongMap` are lazily initialized.\n private weak?: WeakMap>;\n private strong?: Map>;\n private data?: K;\n\n constructor(private readonly weakness: boolean) {}\n\n public lookup(...array: T): K {\n return this.lookupArray(array);\n }\n\n public lookupArray(array: T): K {\n let node: KeyTrie = this;\n array.forEach(key => node = node.getChildTrie(key));\n return node.data || (node.data = Object.create(null));\n }\n\n private getChildTrie(key: any) {\n const map = this.weakness && isObjRef(key)\n ? this.weak || (this.weak = new WeakMap>())\n : this.strong || (this.strong = new Map>());\n let child = map.get(key);\n if (!child) map.set(key, child = new KeyTrie(this.weakness));\n return child;\n }\n}\n\nfunction isObjRef(value: any) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n","import { isTest, IdValue } from 'apollo-utilities';\nimport { invariant } from 'ts-invariant';\n\nimport {\n ReadStoreContext,\n FragmentMatcherInterface,\n PossibleTypesMap,\n IntrospectionResultData,\n} from './types';\n\nlet haveWarned = false;\n\nfunction shouldWarn() {\n const answer = !haveWarned;\n /* istanbul ignore if */\n if (!isTest()) {\n haveWarned = true;\n }\n return answer;\n}\n\n/**\n * This fragment matcher is very basic and unable to match union or interface type conditions\n */\nexport class HeuristicFragmentMatcher implements FragmentMatcherInterface {\n constructor() {\n // do nothing\n }\n\n public ensureReady() {\n return Promise.resolve();\n }\n\n public canBypassInit() {\n return true; // we don't need to initialize this fragment matcher.\n }\n\n public match(\n idValue: IdValue,\n typeCondition: string,\n context: ReadStoreContext,\n ): boolean | 'heuristic' {\n const obj = context.store.get(idValue.id);\n const isRootQuery = idValue.id === 'ROOT_QUERY';\n\n if (!obj) {\n // https://github.com/apollographql/apollo-client/pull/3507\n return isRootQuery;\n }\n\n const { __typename = isRootQuery && 'Query' } = obj;\n\n if (!__typename) {\n if (shouldWarn()) {\n invariant.warn(`You're using fragments in your queries, but either don't have the addTypename:\n true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.\n Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client\n can accurately match fragments.`);\n invariant.warn(\n 'Could not find __typename on Fragment ',\n typeCondition,\n obj,\n );\n invariant.warn(\n `DEPRECATION WARNING: using fragments without __typename is unsupported behavior ` +\n `and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.`,\n );\n }\n\n return 'heuristic';\n }\n\n if (__typename === typeCondition) {\n return true;\n }\n\n // At this point we don't know if this fragment should match or not. It's\n // either:\n //\n // 1. (GOOD) A fragment on a matching interface or union.\n // 2. (BAD) A fragment on a non-matching concrete type or interface or union.\n //\n // If it's 2, we don't want it to match. If it's 1, we want it to match. We\n // can't tell the difference, so we warn the user, but still try to match\n // it (for backwards compatibility reasons). This unfortunately means that\n // using the `HeuristicFragmentMatcher` with unions and interfaces is\n // very unreliable. This will be addressed in a future major version of\n // Apollo Client, but for now the recommendation is to use the\n // `IntrospectionFragmentMatcher` when working with unions/interfaces.\n\n if (shouldWarn()) {\n invariant.error(\n 'You are using the simple (heuristic) fragment matcher, but your ' +\n 'queries contain union or interface types. Apollo Client will not be ' +\n 'able to accurately map fragments. To make this error go away, use ' +\n 'the `IntrospectionFragmentMatcher` as described in the docs: ' +\n 'https://www.apollographql.com/docs/react/advanced/fragments.html#fragment-matcher',\n );\n }\n\n return 'heuristic';\n }\n}\n\nexport class IntrospectionFragmentMatcher implements FragmentMatcherInterface {\n private isReady: boolean;\n private possibleTypesMap: PossibleTypesMap;\n\n constructor(options?: {\n introspectionQueryResultData?: IntrospectionResultData;\n }) {\n if (options && options.introspectionQueryResultData) {\n this.possibleTypesMap = this.parseIntrospectionResult(\n options.introspectionQueryResultData,\n );\n this.isReady = true;\n } else {\n this.isReady = false;\n }\n\n this.match = this.match.bind(this);\n }\n\n public match(\n idValue: IdValue,\n typeCondition: string,\n context: ReadStoreContext,\n ) {\n invariant(\n this.isReady,\n 'FragmentMatcher.match() was called before FragmentMatcher.init()',\n );\n\n const obj = context.store.get(idValue.id);\n const isRootQuery = idValue.id === 'ROOT_QUERY';\n\n if (!obj) {\n // https://github.com/apollographql/apollo-client/pull/4620\n return isRootQuery;\n }\n\n const { __typename = isRootQuery && 'Query' } = obj;\n\n invariant(\n __typename,\n `Cannot match fragment because __typename property is missing: ${JSON.stringify(\n obj,\n )}`,\n );\n\n if (__typename === typeCondition) {\n return true;\n }\n\n const implementingTypes = this.possibleTypesMap[typeCondition];\n if (\n __typename &&\n implementingTypes &&\n implementingTypes.indexOf(__typename) > -1\n ) {\n return true;\n }\n\n return false;\n }\n\n private parseIntrospectionResult(\n introspectionResultData: IntrospectionResultData,\n ): PossibleTypesMap {\n const typeMap: PossibleTypesMap = {};\n introspectionResultData.__schema.types.forEach(type => {\n if (type.kind === 'UNION' || type.kind === 'INTERFACE') {\n typeMap[type.name] = type.possibleTypes.map(\n implementingType => implementingType.name,\n );\n }\n });\n return typeMap;\n }\n}\n","import { NormalizedCache, NormalizedCacheObject, StoreObject } from './types';\nimport { wrap, OptimisticWrapperFunction } from 'optimism';\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nexport class DepTrackingCache implements NormalizedCache {\n // Wrapper function produced by the optimism library, used to depend on\n // dataId strings, for easy invalidation of specific IDs.\n private depend: OptimisticWrapperFunction<[string], StoreObject | undefined>;\n\n constructor(private data: NormalizedCacheObject = Object.create(null)) {\n this.depend = wrap((dataId: string) => this.data[dataId], {\n disposable: true,\n makeCacheKey(dataId: string) {\n return dataId;\n },\n });\n }\n\n public toObject(): NormalizedCacheObject {\n return this.data;\n }\n\n public get(dataId: string): StoreObject {\n this.depend(dataId);\n return this.data[dataId]!;\n }\n\n public set(dataId: string, value?: StoreObject) {\n const oldValue = this.data[dataId];\n if (value !== oldValue) {\n this.data[dataId] = value;\n this.depend.dirty(dataId);\n }\n }\n\n public delete(dataId: string): void {\n if (hasOwn.call(this.data, dataId)) {\n delete this.data[dataId];\n this.depend.dirty(dataId);\n }\n }\n\n public clear(): void {\n this.replace(null);\n }\n\n public replace(newData: NormalizedCacheObject | null): void {\n if (newData) {\n Object.keys(newData).forEach(dataId => {\n this.set(dataId, newData[dataId]);\n });\n Object.keys(this.data).forEach(dataId => {\n if (!hasOwn.call(newData, dataId)) {\n this.delete(dataId);\n }\n });\n } else {\n Object.keys(this.data).forEach(dataId => {\n this.delete(dataId);\n });\n }\n }\n}\n\nexport function defaultNormalizedCacheFactory(\n seed?: NormalizedCacheObject,\n): NormalizedCache {\n return new DepTrackingCache(seed);\n}\n","import {\n argumentsObjectFromField,\n assign,\n canUseWeakMap,\n createFragmentMap,\n DirectiveInfo,\n FragmentMap,\n getDefaultValues,\n getDirectiveInfoFromField,\n getFragmentDefinitions,\n getMainDefinition,\n getQueryDefinition,\n getStoreKeyName,\n IdValue,\n isEqual,\n isField,\n isIdValue,\n isInlineFragment,\n isJsonValue,\n maybeDeepFreeze,\n mergeDeepArray,\n resultKeyNameFromField,\n shouldInclude,\n StoreValue,\n toIdValue,\n} from 'apollo-utilities';\n\nimport { Cache } from 'apollo-cache';\n\nimport {\n ReadStoreContext,\n DiffQueryAgainstStoreOptions,\n ReadQueryOptions,\n StoreObject,\n} from './types';\n\nimport {\n DocumentNode,\n FieldNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n SelectionSetNode,\n} from 'graphql';\n\nimport { wrap, KeyTrie } from 'optimism';\nimport { DepTrackingCache } from './depTrackingCache';\nimport { invariant, InvariantError } from 'ts-invariant';\n\nexport type VariableMap = { [name: string]: any };\n\nexport type FragmentMatcher = (\n rootValue: any,\n typeCondition: string,\n context: ReadStoreContext,\n) => boolean | 'heuristic';\n\ntype ExecContext = {\n query: DocumentNode;\n fragmentMap: FragmentMap;\n contextValue: ReadStoreContext;\n variableValues: VariableMap;\n fragmentMatcher: FragmentMatcher;\n};\n\ntype ExecInfo = {\n resultKey: string;\n directives: DirectiveInfo;\n};\n\nexport type ExecResultMissingField = {\n object: StoreObject;\n fieldName: string;\n tolerable: boolean;\n};\n\nexport type ExecResult = {\n result: R;\n // Empty array if no missing fields encountered while computing result.\n missing?: ExecResultMissingField[];\n};\n\ntype ExecStoreQueryOptions = {\n query: DocumentNode;\n rootValue: IdValue;\n contextValue: ReadStoreContext;\n variableValues: VariableMap;\n // Default matcher always matches all fragments\n fragmentMatcher?: FragmentMatcher;\n};\n\ntype ExecSelectionSetOptions = {\n selectionSet: SelectionSetNode;\n rootValue: any;\n execContext: ExecContext;\n};\n\ntype ExecSubSelectedArrayOptions = {\n field: FieldNode;\n array: any[];\n execContext: ExecContext;\n};\n\nexport interface StoreReaderConfig {\n cacheKeyRoot?: KeyTrie;\n freezeResults?: boolean;\n}\n\nexport class StoreReader {\n private freezeResults: boolean;\n\n constructor({\n cacheKeyRoot = new KeyTrie(canUseWeakMap),\n freezeResults = false,\n }: StoreReaderConfig = {}) {\n const {\n executeStoreQuery,\n executeSelectionSet,\n executeSubSelectedArray,\n } = this;\n\n this.freezeResults = freezeResults;\n\n this.executeStoreQuery = wrap((options: ExecStoreQueryOptions) => {\n return executeStoreQuery.call(this, options);\n }, {\n makeCacheKey({\n query,\n rootValue,\n contextValue,\n variableValues,\n fragmentMatcher,\n }: ExecStoreQueryOptions) {\n // The result of executeStoreQuery can be safely cached only if the\n // underlying store is capable of tracking dependencies and invalidating\n // the cache when relevant data have changed.\n if (contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(\n contextValue.store,\n query,\n fragmentMatcher,\n JSON.stringify(variableValues),\n rootValue.id,\n );\n }\n }\n });\n\n this.executeSelectionSet = wrap((options: ExecSelectionSetOptions) => {\n return executeSelectionSet.call(this, options);\n }, {\n makeCacheKey({\n selectionSet,\n rootValue,\n execContext,\n }: ExecSelectionSetOptions) {\n if (execContext.contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(\n execContext.contextValue.store,\n selectionSet,\n execContext.fragmentMatcher,\n JSON.stringify(execContext.variableValues),\n rootValue.id,\n );\n }\n }\n });\n\n this.executeSubSelectedArray = wrap((options: ExecSubSelectedArrayOptions) => {\n return executeSubSelectedArray.call(this, options);\n }, {\n makeCacheKey({ field, array, execContext }) {\n if (execContext.contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(\n execContext.contextValue.store,\n field,\n array,\n JSON.stringify(execContext.variableValues),\n );\n }\n }\n });\n }\n\n /**\n * Resolves the result of a query solely from the store (i.e. never hits the server).\n *\n * @param {Store} store The {@link NormalizedCache} used by Apollo for the `data` portion of the\n * store.\n *\n * @param {DocumentNode} query The query document to resolve from the data available in the store.\n *\n * @param {Object} [variables] A map from the name of a variable to its value. These variables can\n * be referenced by the query document.\n *\n * @param {any} previousResult The previous result returned by this function for the same query.\n * If nothing in the store changed since that previous result then values from the previous result\n * will be returned to preserve referential equality.\n */\n public readQueryFromStore(\n options: ReadQueryOptions,\n ): QueryType | undefined {\n return this.diffQueryAgainstStore({\n ...options,\n returnPartialData: false,\n }).result;\n }\n\n /**\n * Given a store and a query, return as much of the result as possible and\n * identify if any data was missing from the store.\n * @param {DocumentNode} query A parsed GraphQL query document\n * @param {Store} store The Apollo Client store object\n * @param {any} previousResult The previous result returned by this function for the same query\n * @return {result: Object, complete: [boolean]}\n */\n public diffQueryAgainstStore({\n store,\n query,\n variables,\n previousResult,\n returnPartialData = true,\n rootId = 'ROOT_QUERY',\n fragmentMatcherFunction,\n config,\n }: DiffQueryAgainstStoreOptions): Cache.DiffResult {\n // Throw the right validation error by trying to find a query in the document\n const queryDefinition = getQueryDefinition(query);\n\n variables = assign({}, getDefaultValues(queryDefinition), variables);\n\n const context: ReadStoreContext = {\n // Global settings\n store,\n dataIdFromObject: config && config.dataIdFromObject,\n cacheRedirects: (config && config.cacheRedirects) || {},\n };\n\n const execResult = this.executeStoreQuery({\n query,\n rootValue: {\n type: 'id',\n id: rootId,\n generated: true,\n typename: 'Query',\n },\n contextValue: context,\n variableValues: variables,\n fragmentMatcher: fragmentMatcherFunction,\n });\n\n const hasMissingFields =\n execResult.missing && execResult.missing.length > 0;\n\n if (hasMissingFields && ! returnPartialData) {\n execResult.missing!.forEach(info => {\n if (info.tolerable) return;\n throw new InvariantError(\n `Can't find field ${info.fieldName} on object ${JSON.stringify(\n info.object,\n null,\n 2,\n )}.`,\n );\n });\n }\n\n if (previousResult) {\n if (isEqual(previousResult, execResult.result)) {\n execResult.result = previousResult;\n }\n }\n\n return {\n result: execResult.result,\n complete: !hasMissingFields,\n };\n }\n\n /**\n * Based on graphql function from graphql-js:\n *\n * graphql(\n * schema: GraphQLSchema,\n * requestString: string,\n * rootValue?: ?any,\n * contextValue?: ?any,\n * variableValues?: ?{[key: string]: any},\n * operationName?: ?string\n * ): Promise\n *\n * The default export as of graphql-anywhere is sync as of 4.0,\n * but below is an exported alternative that is async.\n * In the 5.0 version, this will be the only export again\n * and it will be async\n *\n */\n private executeStoreQuery({\n query,\n rootValue,\n contextValue,\n variableValues,\n // Default matcher always matches all fragments\n fragmentMatcher = defaultFragmentMatcher,\n }: ExecStoreQueryOptions): ExecResult {\n const mainDefinition = getMainDefinition(query);\n const fragments = getFragmentDefinitions(query);\n const fragmentMap = createFragmentMap(fragments);\n const execContext: ExecContext = {\n query,\n fragmentMap,\n contextValue,\n variableValues,\n fragmentMatcher,\n };\n\n return this.executeSelectionSet({\n selectionSet: mainDefinition.selectionSet,\n rootValue,\n execContext,\n });\n }\n\n private executeSelectionSet({\n selectionSet,\n rootValue,\n execContext,\n }: ExecSelectionSetOptions): ExecResult {\n const { fragmentMap, contextValue, variableValues: variables } = execContext;\n const finalResult: ExecResult = { result: null };\n\n const objectsToMerge: { [key: string]: any }[] = [];\n\n const object: StoreObject = contextValue.store.get(rootValue.id);\n\n const typename =\n (object && object.__typename) ||\n (rootValue.id === 'ROOT_QUERY' && 'Query') ||\n void 0;\n\n function handleMissing(result: ExecResult): T {\n if (result.missing) {\n finalResult.missing = finalResult.missing || [];\n finalResult.missing.push(...result.missing);\n }\n return result.result;\n }\n\n selectionSet.selections.forEach(selection => {\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely\n return;\n }\n\n if (isField(selection)) {\n const fieldResult = handleMissing(\n this.executeField(object, typename, selection, execContext),\n );\n\n if (typeof fieldResult !== 'undefined') {\n objectsToMerge.push({\n [resultKeyNameFromField(selection)]: fieldResult,\n });\n }\n\n } else {\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // This is a named fragment\n fragment = fragmentMap[selection.name.value];\n\n if (!fragment) {\n throw new InvariantError(`No fragment named ${selection.name.value}`);\n }\n }\n\n const typeCondition =\n fragment.typeCondition && fragment.typeCondition.name.value;\n\n const match =\n !typeCondition ||\n execContext.fragmentMatcher(rootValue, typeCondition, contextValue);\n\n if (match) {\n let fragmentExecResult = this.executeSelectionSet({\n selectionSet: fragment.selectionSet,\n rootValue,\n execContext,\n });\n\n if (match === 'heuristic' && fragmentExecResult.missing) {\n fragmentExecResult = {\n ...fragmentExecResult,\n missing: fragmentExecResult.missing.map(info => {\n return { ...info, tolerable: true };\n }),\n };\n }\n\n objectsToMerge.push(handleMissing(fragmentExecResult));\n }\n }\n });\n\n // Perform a single merge at the end so that we can avoid making more\n // defensive shallow copies than necessary.\n finalResult.result = mergeDeepArray(objectsToMerge);\n\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(finalResult.result);\n }\n\n return finalResult;\n }\n\n private executeField(\n object: StoreObject,\n typename: string | void,\n field: FieldNode,\n execContext: ExecContext,\n ): ExecResult {\n const { variableValues: variables, contextValue } = execContext;\n const fieldName = field.name.value;\n const args = argumentsObjectFromField(field, variables);\n\n const info: ExecInfo = {\n resultKey: resultKeyNameFromField(field),\n directives: getDirectiveInfoFromField(field, variables),\n };\n\n const readStoreResult = readStoreResolver(\n object,\n typename,\n fieldName,\n args,\n contextValue,\n info,\n );\n\n if (Array.isArray(readStoreResult.result)) {\n return this.combineExecResults(\n readStoreResult,\n this.executeSubSelectedArray({\n field,\n array: readStoreResult.result,\n execContext,\n }),\n );\n }\n\n // Handle all scalar types here\n if (!field.selectionSet) {\n assertSelectionSetForIdValue(field, readStoreResult.result);\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n maybeDeepFreeze(readStoreResult);\n }\n return readStoreResult;\n }\n\n // From here down, the field has a selection set, which means it's trying to\n // query a GraphQLObjectType\n if (readStoreResult.result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return readStoreResult;\n }\n\n // Returned value is an object, and the query has a sub-selection. Recurse.\n return this.combineExecResults(\n readStoreResult,\n this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: readStoreResult.result,\n execContext,\n }),\n );\n }\n\n private combineExecResults(\n ...execResults: ExecResult[]\n ): ExecResult {\n let missing: ExecResultMissingField[] | undefined;\n execResults.forEach(execResult => {\n if (execResult.missing) {\n missing = missing || [];\n missing.push(...execResult.missing);\n }\n });\n return {\n result: execResults.pop()!.result,\n missing,\n };\n }\n\n private executeSubSelectedArray({\n field,\n array,\n execContext,\n }: ExecSubSelectedArrayOptions): ExecResult {\n let missing: ExecResultMissingField[] | undefined;\n\n function handleMissing(childResult: ExecResult): T {\n if (childResult.missing) {\n missing = missing || [];\n missing.push(...childResult.missing);\n }\n\n return childResult.result;\n }\n\n array = array.map(item => {\n // null value in array\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse\n if (Array.isArray(item)) {\n return handleMissing(this.executeSubSelectedArray({\n field,\n array: item,\n execContext,\n }));\n }\n\n // This is an object, run the selection set on it\n if (field.selectionSet) {\n return handleMissing(this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: item,\n execContext,\n }));\n }\n\n assertSelectionSetForIdValue(field, item);\n\n return item;\n });\n\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(array);\n }\n\n return { result: array, missing };\n }\n}\n\nfunction assertSelectionSetForIdValue(\n field: FieldNode,\n value: any,\n) {\n if (!field.selectionSet && isIdValue(value)) {\n throw new InvariantError(\n `Missing selection set for object of type ${\n value.typename\n } returned for query field ${field.name.value}`\n );\n }\n}\n\nfunction defaultFragmentMatcher() {\n return true;\n}\n\nexport function assertIdValue(idValue: IdValue) {\n invariant(isIdValue(idValue), `\\\nEncountered a sub-selection on the query, but the store doesn't have \\\nan object reference. This should never happen during normal use unless you have custom code \\\nthat is directly manipulating the store; please file an issue.`);\n}\n\nfunction readStoreResolver(\n object: StoreObject,\n typename: string | void,\n fieldName: string,\n args: any,\n context: ReadStoreContext,\n { resultKey, directives }: ExecInfo,\n): ExecResult {\n let storeKeyName = fieldName;\n if (args || directives) {\n // We happen to know here that getStoreKeyName returns its first\n // argument unmodified if there are no args or directives, so we can\n // avoid calling the function at all in that case, as a small but\n // important optimization to this frequently executed code.\n storeKeyName = getStoreKeyName(storeKeyName, args, directives);\n }\n\n let fieldValue: StoreValue | void = void 0;\n\n if (object) {\n fieldValue = object[storeKeyName];\n\n if (\n typeof fieldValue === 'undefined' &&\n context.cacheRedirects &&\n typeof typename === 'string'\n ) {\n // Look for the type in the custom resolver map\n const type = context.cacheRedirects[typename];\n if (type) {\n // Look for the field in the custom resolver map\n const resolver = type[fieldName];\n if (resolver) {\n fieldValue = resolver(object, args, {\n getCacheKey(storeObj: StoreObject) {\n const id = context.dataIdFromObject!(storeObj);\n return id && toIdValue({\n id,\n typename: storeObj.__typename,\n });\n },\n });\n }\n }\n }\n }\n\n if (typeof fieldValue === 'undefined') {\n return {\n result: fieldValue,\n missing: [{\n object,\n fieldName: storeKeyName,\n tolerable: false,\n }],\n };\n }\n\n if (isJsonValue(fieldValue)) {\n fieldValue = fieldValue.json;\n }\n\n return {\n result: fieldValue,\n };\n}\n","import { NormalizedCache, NormalizedCacheObject, StoreObject } from './types';\n\nexport class ObjectCache implements NormalizedCache {\n constructor(protected data: NormalizedCacheObject = Object.create(null)) {}\n\n public toObject() {\n return this.data;\n }\n\n public get(dataId: string) {\n return this.data[dataId]!;\n }\n\n public set(dataId: string, value: StoreObject) {\n this.data[dataId] = value;\n }\n\n public delete(dataId: string) {\n this.data[dataId] = void 0;\n }\n\n public clear() {\n this.data = Object.create(null);\n }\n\n public replace(newData: NormalizedCacheObject) {\n this.data = newData || Object.create(null);\n }\n}\n\nexport function defaultNormalizedCacheFactory(\n seed?: NormalizedCacheObject,\n): NormalizedCache {\n return new ObjectCache(seed);\n}\n","import {\n SelectionSetNode,\n FieldNode,\n DocumentNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n} from 'graphql';\nimport { FragmentMatcher } from './readFromStore';\n\nimport {\n assign,\n createFragmentMap,\n FragmentMap,\n getDefaultValues,\n getFragmentDefinitions,\n getOperationDefinition,\n IdValue,\n isField,\n isIdValue,\n isInlineFragment,\n isProduction,\n resultKeyNameFromField,\n shouldInclude,\n storeKeyNameFromField,\n StoreValue,\n toIdValue,\n isEqual,\n} from 'apollo-utilities';\n\nimport { invariant } from 'ts-invariant';\n\nimport { ObjectCache } from './objectCache';\nimport { defaultNormalizedCacheFactory } from './depTrackingCache';\n\nimport {\n IdGetter,\n NormalizedCache,\n ReadStoreContext,\n StoreObject,\n} from './types';\n\nexport class WriteError extends Error {\n public type = 'WriteError';\n}\n\nexport function enhanceErrorWithDocument(error: Error, document: DocumentNode) {\n // XXX A bit hacky maybe ...\n const enhancedError = new WriteError(\n `Error writing result to store for query:\\n ${JSON.stringify(document)}`,\n );\n enhancedError.message += '\\n' + error.message;\n enhancedError.stack = error.stack;\n return enhancedError;\n}\n\nexport type WriteContext = {\n readonly store: NormalizedCache;\n readonly processedData?: { [x: string]: FieldNode[] };\n readonly variables?: any;\n readonly dataIdFromObject?: IdGetter;\n readonly fragmentMap?: FragmentMap;\n readonly fragmentMatcherFunction?: FragmentMatcher;\n};\n\nexport class StoreWriter {\n /**\n * Writes the result of a query to the store.\n *\n * @param result The result object returned for the query document.\n *\n * @param query The query document whose result we are writing to the store.\n *\n * @param store The {@link NormalizedCache} used by Apollo for the `data` portion of the store.\n *\n * @param variables A map from the name of a variable to its value. These variables can be\n * referenced by the query document.\n *\n * @param dataIdFromObject A function that returns an object identifier given a particular result\n * object. See the store documentation for details and an example of this function.\n *\n * @param fragmentMatcherFunction A function to use for matching fragment conditions in GraphQL documents\n */\n public writeQueryToStore({\n query,\n result,\n store = defaultNormalizedCacheFactory(),\n variables,\n dataIdFromObject,\n fragmentMatcherFunction,\n }: {\n query: DocumentNode;\n result: Object;\n store?: NormalizedCache;\n variables?: Object;\n dataIdFromObject?: IdGetter;\n fragmentMatcherFunction?: FragmentMatcher;\n }): NormalizedCache {\n return this.writeResultToStore({\n dataId: 'ROOT_QUERY',\n result,\n document: query,\n store,\n variables,\n dataIdFromObject,\n fragmentMatcherFunction,\n });\n }\n\n public writeResultToStore({\n dataId,\n result,\n document,\n store = defaultNormalizedCacheFactory(),\n variables,\n dataIdFromObject,\n fragmentMatcherFunction,\n }: {\n dataId: string;\n result: any;\n document: DocumentNode;\n store?: NormalizedCache;\n variables?: Object;\n dataIdFromObject?: IdGetter;\n fragmentMatcherFunction?: FragmentMatcher;\n }): NormalizedCache {\n // XXX TODO REFACTOR: this is a temporary workaround until query normalization is made to work with documents.\n const operationDefinition = getOperationDefinition(document)!;\n\n try {\n return this.writeSelectionSetToStore({\n result,\n dataId,\n selectionSet: operationDefinition.selectionSet,\n context: {\n store,\n processedData: {},\n variables: assign(\n {},\n getDefaultValues(operationDefinition),\n variables,\n ),\n dataIdFromObject,\n fragmentMap: createFragmentMap(getFragmentDefinitions(document)),\n fragmentMatcherFunction,\n },\n });\n } catch (e) {\n throw enhanceErrorWithDocument(e, document);\n }\n }\n\n public writeSelectionSetToStore({\n result,\n dataId,\n selectionSet,\n context,\n }: {\n dataId: string;\n result: any;\n selectionSet: SelectionSetNode;\n context: WriteContext;\n }): NormalizedCache {\n const { variables, store, fragmentMap } = context;\n\n selectionSet.selections.forEach(selection => {\n if (!shouldInclude(selection, variables)) {\n return;\n }\n\n if (isField(selection)) {\n const resultFieldKey: string = resultKeyNameFromField(selection);\n const value: any = result[resultFieldKey];\n\n if (typeof value !== 'undefined') {\n this.writeFieldToStore({\n dataId,\n value,\n field: selection,\n context,\n });\n } else {\n let isDefered = false;\n let isClient = false;\n if (selection.directives && selection.directives.length) {\n // If this is a defered field we don't need to throw / warn.\n isDefered = selection.directives.some(\n directive => directive.name && directive.name.value === 'defer',\n );\n\n // When using the @client directive, it might be desirable in\n // some cases to want to write a selection set to the store,\n // without having all of the selection set values available.\n // This is because the @client field values might have already\n // been written to the cache separately (e.g. via Apollo\n // Cache's `writeData` capabilities). Because of this, we'll\n // skip the missing field warning for fields with @client\n // directives.\n isClient = selection.directives.some(\n directive => directive.name && directive.name.value === 'client',\n );\n }\n\n if (!isDefered && !isClient && context.fragmentMatcherFunction) {\n // XXX We'd like to throw an error, but for backwards compatibility's sake\n // we just print a warning for the time being.\n //throw new WriteError(`Missing field ${resultFieldKey} in ${JSON.stringify(result, null, 2).substring(0, 100)}`);\n invariant.warn(\n `Missing field ${resultFieldKey} in ${JSON.stringify(\n result,\n null,\n 2,\n ).substring(0, 100)}`,\n );\n }\n }\n } else {\n // This is not a field, so it must be a fragment, either inline or named\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // Named fragment\n fragment = (fragmentMap || {})[selection.name.value];\n invariant(fragment, `No fragment named ${selection.name.value}.`);\n }\n\n let matches = true;\n if (context.fragmentMatcherFunction && fragment.typeCondition) {\n // TODO we need to rewrite the fragment matchers for this to work properly and efficiently\n // Right now we have to pretend that we're passing in an idValue and that there's a store\n // on the context.\n const id = dataId || 'self';\n const idValue = toIdValue({ id, typename: undefined });\n const fakeContext: ReadStoreContext = {\n // NOTE: fakeContext always uses ObjectCache\n // since this is only to ensure the return value of 'matches'\n store: new ObjectCache({ [id]: result }),\n cacheRedirects: {},\n };\n const match = context.fragmentMatcherFunction(\n idValue,\n fragment.typeCondition.name.value,\n fakeContext,\n );\n if (!isProduction() && match === 'heuristic') {\n invariant.error('WARNING: heuristic fragment matching going on!');\n }\n matches = !!match;\n }\n\n if (matches) {\n this.writeSelectionSetToStore({\n result,\n selectionSet: fragment.selectionSet,\n dataId,\n context,\n });\n }\n }\n });\n\n return store;\n }\n\n private writeFieldToStore({\n field,\n value,\n dataId,\n context,\n }: {\n field: FieldNode;\n value: any;\n dataId: string;\n context: WriteContext;\n }) {\n const { variables, dataIdFromObject, store } = context;\n\n let storeValue: StoreValue;\n let storeObject: StoreObject;\n\n const storeFieldName: string = storeKeyNameFromField(field, variables);\n\n // If this is a scalar value...\n if (!field.selectionSet || value === null) {\n storeValue =\n value != null && typeof value === 'object'\n ? // If the scalar value is a JSON blob, we have to \"escape\" it so it can’t pretend to be\n // an id.\n { type: 'json', json: value }\n : // Otherwise, just store the scalar directly in the store.\n value;\n } else if (Array.isArray(value)) {\n const generatedId = `${dataId}.${storeFieldName}`;\n\n storeValue = this.processArrayValue(\n value,\n generatedId,\n field.selectionSet,\n context,\n );\n } else {\n // It's an object\n let valueDataId = `${dataId}.${storeFieldName}`;\n let generated = true;\n\n // We only prepend the '$' if the valueDataId isn't already a generated\n // id.\n if (!isGeneratedId(valueDataId)) {\n valueDataId = '$' + valueDataId;\n }\n\n if (dataIdFromObject) {\n const semanticId = dataIdFromObject(value);\n\n // We throw an error if the first character of the id is '$. This is\n // because we use that character to designate an Apollo-generated id\n // and we use the distinction between user-desiginated and application-provided\n // ids when managing overwrites.\n invariant(\n !semanticId || !isGeneratedId(semanticId),\n 'IDs returned by dataIdFromObject cannot begin with the \"$\" character.',\n );\n\n if (\n semanticId ||\n (typeof semanticId === 'number' && semanticId === 0)\n ) {\n valueDataId = semanticId;\n generated = false;\n }\n }\n\n if (!isDataProcessed(valueDataId, field, context.processedData)) {\n this.writeSelectionSetToStore({\n dataId: valueDataId,\n result: value,\n selectionSet: field.selectionSet,\n context,\n });\n }\n\n // We take the id and escape it (i.e. wrap it with an enclosing object).\n // This allows us to distinguish IDs from normal scalars.\n const typename = value.__typename;\n storeValue = toIdValue({ id: valueDataId, typename }, generated);\n\n // check if there was a generated id at the location where we're\n // about to place this new id. If there was, we have to merge the\n // data from that id with the data we're about to write in the store.\n storeObject = store.get(dataId);\n const escapedId =\n storeObject && (storeObject[storeFieldName] as IdValue | undefined);\n if (escapedId !== storeValue && isIdValue(escapedId)) {\n const hadTypename = escapedId.typename !== undefined;\n const hasTypename = typename !== undefined;\n const typenameChanged =\n hadTypename && hasTypename && escapedId.typename !== typename;\n\n // If there is already a real id in the store and the current id we\n // are dealing with is generated, we throw an error.\n // One exception we allow is when the typename has changed, which occurs\n // when schema defines a union, both with and without an ID in the same place.\n // checks if we \"lost\" the read id\n invariant(\n !generated || escapedId.generated || typenameChanged,\n `Store error: the application attempted to write an object with no provided id but the store already contains an id of ${\n escapedId.id\n } for this object. The selectionSet that was trying to be written is:\\n${\n JSON.stringify(field)\n }`,\n );\n\n // checks if we \"lost\" the typename\n invariant(\n !hadTypename || hasTypename,\n `Store error: the application attempted to write an object with no provided typename but the store already contains an object with typename of ${\n escapedId.typename\n } for the object of id ${escapedId.id}. The selectionSet that was trying to be written is:\\n${\n JSON.stringify(field)\n }`,\n );\n\n if (escapedId.generated) {\n // We should only merge if it's an object of the same type,\n // otherwise we should delete the generated object\n if (typenameChanged) {\n // Only delete the generated object when the old object was\n // inlined, and the new object is not. This is indicated by\n // the old id being generated, and the new id being real.\n if (!generated) {\n store.delete(escapedId.id);\n }\n } else {\n mergeWithGenerated(escapedId.id, (storeValue as IdValue).id, store);\n }\n }\n }\n }\n\n storeObject = store.get(dataId);\n if (!storeObject || !isEqual(storeValue, storeObject[storeFieldName])) {\n store.set(dataId, {\n ...storeObject,\n [storeFieldName]: storeValue,\n });\n }\n }\n\n private processArrayValue(\n value: any[],\n generatedId: string,\n selectionSet: SelectionSetNode,\n context: WriteContext,\n ): any[] {\n return value.map((item: any, index: any) => {\n if (item === null) {\n return null;\n }\n\n let itemDataId = `${generatedId}.${index}`;\n\n if (Array.isArray(item)) {\n return this.processArrayValue(item, itemDataId, selectionSet, context);\n }\n\n let generated = true;\n\n if (context.dataIdFromObject) {\n const semanticId = context.dataIdFromObject(item);\n\n if (semanticId) {\n itemDataId = semanticId;\n generated = false;\n }\n }\n\n if (!isDataProcessed(itemDataId, selectionSet, context.processedData)) {\n this.writeSelectionSetToStore({\n dataId: itemDataId,\n result: item,\n selectionSet,\n context,\n });\n }\n\n return toIdValue(\n { id: itemDataId, typename: item.__typename },\n generated,\n );\n });\n }\n}\n\n// Checks if the id given is an id that was generated by Apollo\n// rather than by dataIdFromObject.\nfunction isGeneratedId(id: string): boolean {\n return id[0] === '$';\n}\n\nfunction mergeWithGenerated(\n generatedKey: string,\n realKey: string,\n cache: NormalizedCache,\n): boolean {\n if (generatedKey === realKey) {\n return false;\n }\n\n const generated = cache.get(generatedKey);\n const real = cache.get(realKey);\n let madeChanges = false;\n\n Object.keys(generated).forEach(key => {\n const value = generated[key];\n const realValue = real[key];\n\n if (\n isIdValue(value) &&\n isGeneratedId(value.id) &&\n isIdValue(realValue) &&\n !isEqual(value, realValue) &&\n mergeWithGenerated(value.id, realValue.id, cache)\n ) {\n madeChanges = true;\n }\n });\n\n cache.delete(generatedKey);\n const newRealValue = { ...generated, ...real };\n\n if (isEqual(newRealValue, real)) {\n return madeChanges;\n }\n\n cache.set(realKey, newRealValue);\n return true;\n}\n\nfunction isDataProcessed(\n dataId: string,\n field: FieldNode | SelectionSetNode,\n processedData?: { [x: string]: (FieldNode | SelectionSetNode)[] },\n): boolean {\n if (!processedData) {\n return false;\n }\n\n if (processedData[dataId]) {\n if (processedData[dataId].indexOf(field) >= 0) {\n return true;\n } else {\n processedData[dataId].push(field);\n }\n } else {\n processedData[dataId] = [field];\n }\n\n return false;\n}\n","// Make builtins like Map and Set safe to use with non-extensible objects.\nimport './fixPolyfills';\n\nimport { DocumentNode } from 'graphql';\n\nimport { Cache, ApolloCache, Transaction } from 'apollo-cache';\n\nimport { addTypenameToDocument, canUseWeakMap } from 'apollo-utilities';\n\nimport { wrap } from 'optimism';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { HeuristicFragmentMatcher } from './fragmentMatcher';\nimport {\n ApolloReducerConfig,\n NormalizedCache,\n NormalizedCacheObject,\n} from './types';\n\nimport { StoreReader } from './readFromStore';\nimport { StoreWriter } from './writeToStore';\nimport { DepTrackingCache } from './depTrackingCache';\nimport { KeyTrie } from 'optimism';\nimport { ObjectCache } from './objectCache';\n\nexport interface InMemoryCacheConfig extends ApolloReducerConfig {\n resultCaching?: boolean;\n freezeResults?: boolean;\n}\n\nconst defaultConfig: InMemoryCacheConfig = {\n fragmentMatcher: new HeuristicFragmentMatcher(),\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n freezeResults: false,\n};\n\nexport function defaultDataIdFromObject(result: any): string | null {\n if (result.__typename) {\n if (result.id !== undefined) {\n return `${result.__typename}:${result.id}`;\n }\n if (result._id !== undefined) {\n return `${result.__typename}:${result._id}`;\n }\n }\n return null;\n}\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nexport class OptimisticCacheLayer extends ObjectCache {\n constructor(\n public readonly optimisticId: string,\n // OptimisticCacheLayer objects always wrap some other parent cache, so\n // this.parent should never be null.\n public readonly parent: NormalizedCache,\n public readonly transaction: Transaction,\n ) {\n super(Object.create(null));\n }\n\n public toObject(): NormalizedCacheObject {\n return {\n ...this.parent.toObject(),\n ...this.data,\n };\n }\n\n // All the other accessor methods of ObjectCache work without knowing about\n // this.parent, but the get method needs to be overridden to implement the\n // fallback this.parent.get(dataId) behavior.\n public get(dataId: string) {\n return hasOwn.call(this.data, dataId)\n ? this.data[dataId]\n : this.parent.get(dataId);\n }\n}\n\nexport class InMemoryCache extends ApolloCache {\n private data: NormalizedCache;\n private optimisticData: NormalizedCache;\n\n protected config: InMemoryCacheConfig;\n private watches = new Set();\n private addTypename: boolean;\n private typenameDocumentCache = new Map();\n private storeReader: StoreReader;\n private storeWriter: StoreWriter;\n private cacheKeyRoot = new KeyTrie(canUseWeakMap);\n\n // Set this while in a transaction to prevent broadcasts...\n // don't forget to turn it back on!\n private silenceBroadcast: boolean = false;\n\n constructor(config: InMemoryCacheConfig = {}) {\n super();\n this.config = { ...defaultConfig, ...config };\n\n // backwards compat\n if ((this.config as any).customResolvers) {\n invariant.warn(\n 'customResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating customResolvers in the next major version.',\n );\n this.config.cacheRedirects = (this.config as any).customResolvers;\n }\n\n if ((this.config as any).cacheResolvers) {\n invariant.warn(\n 'cacheResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating cacheResolvers in the next major version.',\n );\n this.config.cacheRedirects = (this.config as any).cacheResolvers;\n }\n\n this.addTypename = !!this.config.addTypename;\n\n // Passing { resultCaching: false } in the InMemoryCache constructor options\n // will completely disable dependency tracking, which will improve memory\n // usage but worsen the performance of repeated reads.\n this.data = this.config.resultCaching\n ? new DepTrackingCache()\n : new ObjectCache();\n\n // When no optimistic writes are currently active, cache.optimisticData ===\n // cache.data, so there are no additional layers on top of the actual data.\n // When an optimistic update happens, this.optimisticData will become a\n // linked list of OptimisticCacheLayer objects that terminates with the\n // original this.data cache object.\n this.optimisticData = this.data;\n\n this.storeWriter = new StoreWriter();\n this.storeReader = new StoreReader({\n cacheKeyRoot: this.cacheKeyRoot,\n freezeResults: config.freezeResults,\n });\n\n const cache = this;\n const { maybeBroadcastWatch } = cache;\n this.maybeBroadcastWatch = wrap((c: Cache.WatchOptions) => {\n return maybeBroadcastWatch.call(this, c);\n }, {\n makeCacheKey(c: Cache.WatchOptions) {\n if (c.optimistic) {\n // If we're reading optimistic data, it doesn't matter if this.data\n // is a DepTrackingCache, since it will be ignored.\n return;\n }\n\n if (c.previousResult) {\n // If a previousResult was provided, assume the caller would prefer\n // to compare the previous data to the new data to determine whether\n // to broadcast, so we should disable caching by returning here, to\n // give maybeBroadcastWatch a chance to do that comparison.\n return;\n }\n\n if (cache.data instanceof DepTrackingCache) {\n // Return a cache key (thus enabling caching) only if we're currently\n // using a data store that can track cache dependencies.\n return cache.cacheKeyRoot.lookup(\n c.query,\n JSON.stringify(c.variables),\n );\n }\n }\n });\n }\n\n public restore(data: NormalizedCacheObject): this {\n if (data) this.data.replace(data);\n return this;\n }\n\n public extract(optimistic: boolean = false): NormalizedCacheObject {\n return (optimistic ? this.optimisticData : this.data).toObject();\n }\n\n public read(options: Cache.ReadOptions): T | null {\n if (typeof options.rootId === 'string' &&\n typeof this.data.get(options.rootId) === 'undefined') {\n return null;\n }\n\n const { fragmentMatcher } = this.config;\n const fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n\n return this.storeReader.readQueryFromStore({\n store: options.optimistic ? this.optimisticData : this.data,\n query: this.transformDocument(options.query),\n variables: options.variables,\n rootId: options.rootId,\n fragmentMatcherFunction,\n previousResult: options.previousResult,\n config: this.config,\n }) || null;\n }\n\n public write(write: Cache.WriteOptions): void {\n const { fragmentMatcher } = this.config;\n const fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n\n this.storeWriter.writeResultToStore({\n dataId: write.dataId,\n result: write.result,\n variables: write.variables,\n document: this.transformDocument(write.query),\n store: this.data,\n dataIdFromObject: this.config.dataIdFromObject,\n fragmentMatcherFunction,\n });\n\n this.broadcastWatches();\n }\n\n public diff(query: Cache.DiffOptions): Cache.DiffResult {\n const { fragmentMatcher } = this.config;\n const fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n\n return this.storeReader.diffQueryAgainstStore({\n store: query.optimistic ? this.optimisticData : this.data,\n query: this.transformDocument(query.query),\n variables: query.variables,\n returnPartialData: query.returnPartialData,\n previousResult: query.previousResult,\n fragmentMatcherFunction,\n config: this.config,\n });\n }\n\n public watch(watch: Cache.WatchOptions): () => void {\n this.watches.add(watch);\n\n return () => {\n this.watches.delete(watch);\n };\n }\n\n public evict(query: Cache.EvictOptions): Cache.EvictionResult {\n throw new InvariantError(`eviction is not implemented on InMemory Cache`);\n }\n\n public reset(): Promise {\n this.data.clear();\n this.broadcastWatches();\n\n return Promise.resolve();\n }\n\n public removeOptimistic(idToRemove: string) {\n const toReapply: OptimisticCacheLayer[] = [];\n let removedCount = 0;\n let layer = this.optimisticData;\n\n while (layer instanceof OptimisticCacheLayer) {\n if (layer.optimisticId === idToRemove) {\n ++removedCount;\n } else {\n toReapply.push(layer);\n }\n layer = layer.parent;\n }\n\n if (removedCount > 0) {\n // Reset this.optimisticData to the first non-OptimisticCacheLayer object,\n // which is almost certainly this.data.\n this.optimisticData = layer;\n\n // Reapply the layers whose optimistic IDs do not match the removed ID.\n while (toReapply.length > 0) {\n const layer = toReapply.pop()!;\n this.performTransaction(layer.transaction, layer.optimisticId);\n }\n\n this.broadcastWatches();\n }\n }\n\n public performTransaction(\n transaction: Transaction,\n // This parameter is not part of the performTransaction signature inherited\n // from the ApolloCache abstract class, but it's useful because it saves us\n // from duplicating this implementation in recordOptimisticTransaction.\n optimisticId?: string,\n ) {\n const { data, silenceBroadcast } = this;\n this.silenceBroadcast = true;\n\n if (typeof optimisticId === 'string') {\n // Add a new optimistic layer and temporarily make this.data refer to\n // that layer for the duration of the transaction.\n this.data = this.optimisticData = new OptimisticCacheLayer(\n // Note that there can be multiple layers with the same optimisticId.\n // When removeOptimistic(id) is called for that id, all matching layers\n // will be removed, and the remaining layers will be reapplied.\n optimisticId,\n this.optimisticData,\n transaction,\n );\n }\n\n try {\n transaction(this);\n } finally {\n this.silenceBroadcast = silenceBroadcast;\n this.data = data;\n }\n\n // This broadcast does nothing if this.silenceBroadcast is true.\n this.broadcastWatches();\n }\n\n public recordOptimisticTransaction(\n transaction: Transaction,\n id: string,\n ) {\n return this.performTransaction(transaction, id);\n }\n\n public transformDocument(document: DocumentNode): DocumentNode {\n if (this.addTypename) {\n let result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n // If someone calls transformDocument and then mistakenly passes the\n // result back into an API that also calls transformDocument, make sure\n // we don't keep creating new query documents.\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n }\n\n protected broadcastWatches() {\n if (!this.silenceBroadcast) {\n this.watches.forEach(c => this.maybeBroadcastWatch(c));\n }\n }\n\n // This method is wrapped in the constructor so that it will be called only\n // if the data that would be broadcast has changed.\n private maybeBroadcastWatch(c: Cache.WatchOptions) {\n c.callback(\n this.diff({\n query: c.query,\n variables: c.variables,\n previousResult: c.previousResult && c.previousResult(),\n optimistic: c.optimistic,\n }),\n );\n }\n}\n","/* tslint:disable */\n\nimport { ApolloLink, Observable, RequestHandler, fromError } from 'apollo-link';\nimport {\n serializeFetchParameter,\n selectURI,\n parseAndCheckHttpResponse,\n checkFetcher,\n selectHttpOptionsAndBody,\n createSignalIfSupported,\n fallbackHttpConfig,\n Body,\n HttpOptions,\n UriFunction as _UriFunction,\n} from 'apollo-link-http-common';\nimport { DefinitionNode } from 'graphql';\n\nexport namespace HttpLink {\n //TODO Would much rather be able to export directly\n export interface UriFunction extends _UriFunction {}\n export interface Options extends HttpOptions {\n /**\n * If set to true, use the HTTP GET method for query operations. Mutations\n * will still use the method specified in fetchOptions.method (which defaults\n * to POST).\n */\n useGETForQueries?: boolean;\n }\n}\n\n// For backwards compatibility.\nexport import FetchOptions = HttpLink.Options;\nexport import UriFunction = HttpLink.UriFunction;\n\nexport const createHttpLink = (linkOptions: HttpLink.Options = {}) => {\n let {\n uri = '/graphql',\n // use default global fetch if nothing passed in\n fetch: fetcher,\n includeExtensions,\n useGETForQueries,\n ...requestOptions\n } = linkOptions;\n\n // dev warnings to ensure fetch is present\n checkFetcher(fetcher);\n\n //fetcher is set here rather than the destructuring to ensure fetch is\n //declared before referencing it. Reference in the destructuring would cause\n //a ReferenceError\n if (!fetcher) {\n fetcher = fetch;\n }\n\n const linkConfig = {\n http: { includeExtensions },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n return new ApolloLink(operation => {\n let chosenURI = selectURI(operation, uri);\n\n const context = operation.getContext();\n\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n const clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders['apollographql-client-name'] = name;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n const contextHeaders = { ...clientAwarenessHeaders, ...context.headers };\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n\n //uses fallback, link, and then context to build options\n const { options, body } = selectHttpOptionsAndBody(\n operation,\n fallbackHttpConfig,\n linkConfig,\n contextConfig,\n );\n\n let controller;\n if (!(options as any).signal) {\n const { controller: _controller, signal } = createSignalIfSupported();\n controller = _controller;\n if (controller) (options as any).signal = signal;\n }\n\n // If requested, set method to GET if there are no mutations.\n const definitionIsMutation = (d: DefinitionNode) => {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (\n useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)\n ) {\n options.method = 'GET';\n }\n\n if (options.method === 'GET') {\n const { newURI, parseError } = rewriteURIForGET(chosenURI, body);\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n } else {\n try {\n (options as any).body = serializeFetchParameter(body, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable(observer => {\n fetcher(chosenURI, options)\n .then(response => {\n operation.setContext({ response });\n return response;\n })\n .then(parseAndCheckHttpResponse(operation))\n .then(result => {\n // we have data and can send it to back up the link chain\n observer.next(result);\n observer.complete();\n return result;\n })\n .catch(err => {\n // fetch was cancelled so it's already been cleaned up in the unsubscribe\n if (err.name === 'AbortError') return;\n // if it is a network error, BUT there is graphql result info\n // fire the next observer before calling error\n // this gives apollo-client (and react-apollo) the `graphqlErrors` and `networErrors`\n // to pass to UI\n // this should only happen if we *also* have data as part of the response key per\n // the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we don't call next, the UI can only show networkError because AC didn't\n // get any graphqlErrors\n // this is graphql execution result info (i.e errors and possibly data)\n // this is because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n observer.error(err);\n });\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n });\n};\n\n// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nfunction rewriteURIForGET(chosenURI: string, body: Body) {\n // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n // the extra level of JSON serialization!\n const queryParams = [];\n const addQueryParam = (key: string, value: string) => {\n queryParams.push(`${key}=${encodeURIComponent(value)}`);\n };\n\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n let serializedVariables;\n try {\n serializedVariables = serializeFetchParameter(\n body.variables,\n 'Variables map',\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n let serializedExtensions;\n try {\n serializedExtensions = serializeFetchParameter(\n body.extensions,\n 'Extensions map',\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n\n // Reconstruct the URI with added query params.\n // XXX This assumes that the URI is well-formed and that it doesn't\n // already contain any of these query params. We could instead use the\n // URL API and take a polyfill (whatwg-url@6) for older browsers that\n // don't support URLSearchParams. Note that some browsers (and\n // versions of whatwg-url) support URL but not URLSearchParams!\n let fragment = '',\n preFragment = chosenURI;\n const fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n const queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n const newURI =\n preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI };\n}\n\nexport class HttpLink extends ApolloLink {\n public requester: RequestHandler;\n constructor(opts?: HttpLink.Options) {\n super(createHttpLink(opts).request);\n }\n}\n","// This file replaces `index.js` in bundlers like webpack or Rollup,\n// according to `browser` config in `package.json`.\n\nimport { urlAlphabet } from './url-alphabet/index.js'\n\nif (process.env.NODE_ENV !== 'production') {\n // All bundlers will remove this block in the production bundle.\n if (\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative' &&\n typeof crypto === 'undefined'\n ) {\n throw new Error(\n 'React Native does not have a built-in secure random generator. ' +\n 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' +\n 'For secure IDs, import `react-native-get-random-values` ' +\n 'before Nano ID. If you use Expo, install `expo-random` ' +\n 'and use `nanoid/async`.'\n )\n }\n if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') {\n throw new Error(\n 'Add `if (!window.crypto) window.crypto = window.msCrypto` ' +\n 'before Nano ID to fix IE 11 support'\n )\n }\n if (typeof crypto === 'undefined') {\n throw new Error(\n 'Your browser does not have secure random generator. ' +\n 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.'\n )\n }\n}\n\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\n\nlet customRandom = (alphabet, size, getRandom) => {\n // First, a bitmask is necessary to generate the ID. The bitmask makes bytes\n // values closer to the alphabet size. The bitmask calculates the closest\n // `2^31 - 1` number, which exceeds the alphabet size.\n // For example, the bitmask for the alphabet size 30 is 31 (00011111).\n // `Math.clz32` is not used, because it is not available in browsers.\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n // Though, the bitmask solution is not perfect since the bytes exceeding\n // the alphabet size are refused. Therefore, to reliably generate the ID,\n // the random bytes redundancy has to be satisfied.\n\n // Note: every hardware random generator call is performance expensive,\n // because the system call for entropy collection takes a lot of time.\n // So, to avoid additional system calls, extra bytes are requested in advance.\n\n // Next, a step determines how many random bytes to generate.\n // The number of random bytes gets decided upon the ID size, mask,\n // alphabet size, and magic number 1.6 (using 1.6 peaks at performance\n // according to benchmarks).\n\n // `-~f => Math.ceil(f)` if f is a float\n // `-~i => i + 1` if i is an integer\n let step = -~((1.6 * mask * size) / alphabet.length)\n\n return () => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let j = step\n while (j--) {\n // Adding `|| ''` refuses a random byte that exceeds the alphabet size.\n id += alphabet[bytes[j] & mask] || ''\n // `id.length + 1 === size` is a more compact option.\n if (id.length === +size) return id\n }\n }\n }\n}\n\nlet customAlphabet = (alphabet, size) => customRandom(alphabet, size, random)\n\nlet nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array(size))\n\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n while (size--) {\n // It is incorrect to use bytes exceeding the alphabet size.\n // The following mask reduces the random byte in the 0-255 value\n // range to the 0-63 value range. Therefore, adding hacks, such\n // as empty string fallback or magic numbers, is unneccessary because\n // the bitmask trims bytes down to the alphabet size.\n let byte = bytes[size] & 63\n if (byte < 36) {\n // `0-9a-z`\n id += byte.toString(36)\n } else if (byte < 62) {\n // `A-Z`\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte < 63) {\n id += '_'\n } else {\n id += '-'\n }\n }\n return id\n}\n\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","/** @license React v16.13.1\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\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){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}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(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(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=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=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();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=td(a.document)}return b}\nfunction yd(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)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!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=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;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}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(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===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))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}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n","var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.onabort = function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n self.fetch = fetch\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * A local reference to the document.\n */\nvar document = window.document;\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function() {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(\n this._checkForIntersections, this.POLL_INTERVAL);\n }\n else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function() {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n this._domObserver = null;\n }\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, rootRect) {\n\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body &&\n parent != document.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n\n if (!intersectionRect) break;\n }\n parent = getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n return containsDeep(this.root || document, target);\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n if (parent && parent.assignedSlot) {\n // If the parent is distributed in a , return the parent of a slot.\n return parent.assignedSlot.parentNode;\n }\n\n return parent;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Observable = void 0;\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\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(observer, subscriber) {\n _classCallCheck(this, Subscription);\n\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n _createClass(Subscription, [{\n key: \"unsubscribe\",\n value: function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n }\n }, {\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver =\n/*#__PURE__*/\nfunction () {\n function SubscriptionObserver(subscription) {\n _classCallCheck(this, SubscriptionObserver);\n\n this._subscription = subscription;\n }\n\n _createClass(SubscriptionObserver, [{\n key: \"next\",\n value: function next(value) {\n onNotify(this._subscription, 'next', value);\n }\n }, {\n key: \"error\",\n value: function error(value) {\n onNotify(this._subscription, 'error', value);\n }\n }, {\n key: \"complete\",\n value: function complete() {\n onNotify(this._subscription, 'complete');\n }\n }, {\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable =\n/*#__PURE__*/\nfunction () {\n function Observable(subscriber) {\n _classCallCheck(this, Observable);\n\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n _createClass(Observable, [{\n key: \"subscribe\",\n value: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n }\n }, {\n key: \"forEach\",\n value: function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n }, {\n key: \"map\",\n value: function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"filter\",\n value: function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"reduce\",\n value: function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"concat\",\n value: function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n }\n }, {\n key: \"flatMap\",\n value: function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n }\n }, {\n key: SymbolObservable,\n value: function () {\n return this;\n }\n }], [{\n key: \"from\",\n value: function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = method.call(x)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _item = _step.value;\n observer.next(_item);\n if (observer.closed) return;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n }\n }, {\n key: \"of\",\n value: function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }, {\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nexports.Observable = Observable;\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n * Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n var obj = uri;\n\n // default to window.location\n loc = loc || (typeof location !== 'undefined' && location);\n if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n // relative path support\n if ('string' === typeof uri) {\n if ('/' === uri.charAt(0)) {\n if ('/' === uri.charAt(1)) {\n uri = loc.protocol + uri;\n } else {\n uri = loc.host + uri;\n }\n }\n\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n debug('protocol-less url %s', uri);\n if ('undefined' !== typeof loc) {\n uri = loc.protocol + '//' + uri;\n } else {\n uri = 'https://' + uri;\n }\n }\n\n // parse\n debug('parse %s', uri);\n obj = parseuri(uri);\n }\n\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = '80';\n } else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = '443';\n }\n }\n\n obj.path = obj.path || '/';\n\n var ipv6 = obj.host.indexOf(':') !== -1;\n var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n // define unique id\n obj.id = obj.protocol + '://' + host + ':' + obj.port;\n // define href\n obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n return obj;\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* Active `debug` instances.\n\t*/\n\tcreateDebug.instances = [];\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.enabled = createDebug.enabled(namespace);\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = selectColor(namespace);\n\t\tdebug.destroy = destroy;\n\t\tdebug.extend = extend;\n\t\t// Debug.formatArgs = formatArgs;\n\t\t// debug.rawLog = rawLog;\n\n\t\t// env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\tcreateDebug.instances.push(debug);\n\n\t\treturn debug;\n\t}\n\n\tfunction destroy() {\n\t\tconst index = createDebug.instances.indexOf(this);\n\t\tif (index !== -1) {\n\t\t\tcreateDebug.instances.splice(index, 1);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < createDebug.instances.length; i++) {\n\t\t\tconst instance = createDebug.instances[i];\n\t\t\tinstance.enabled = createDebug.enabled(instance.namespace);\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy () {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' || (typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]');\nvar withNativeFile = typeof File === 'function' || (typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]');\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n var buffers = [];\n var packetData = packet.data;\n var pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (isBuf(data)) {\n var placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n } else if (isArray(data)) {\n var newData = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n } else if (typeof data === 'object' && !(data instanceof Date)) {\n var newData = {};\n for (var key in data) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n return newData;\n }\n return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (data && data._placeholder) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else if (isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n } else if (typeof data === 'object') {\n for (var key in data) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n\n return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n function _removeBlobs(obj, curKey, containingObject) {\n if (!obj) return obj;\n\n // convert any blob\n if ((withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)) {\n pendingBlobs++;\n\n // async filereader\n var fileReader = new FileReader();\n fileReader.onload = function() { // this.result == arraybuffer\n if (containingObject) {\n containingObject[curKey] = this.result;\n }\n else {\n bloblessData = this.result;\n }\n\n // if nothing pending its callback time\n if(! --pendingBlobs) {\n callback(bloblessData);\n }\n };\n\n fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n } else if (isArray(obj)) { // handle array\n for (var i = 0; i < obj.length; i++) {\n _removeBlobs(obj[i], i, obj);\n }\n } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n for (var key in obj) {\n _removeBlobs(obj[key], key, obj);\n }\n }\n }\n\n var pendingBlobs = 0;\n var bloblessData = data;\n _removeBlobs(bloblessData);\n if (!pendingBlobs) {\n callback(bloblessData);\n }\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\nmodule.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');\n","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n opts = opts || {};\n\n if (uri && 'object' === typeof uri) {\n opts = uri;\n uri = null;\n }\n\n if (uri) {\n uri = parseuri(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n opts.port = uri.port;\n if (uri.query) opts.query = uri.query;\n } else if (opts.host) {\n opts.hostname = parseuri(opts.host).host;\n }\n\n this.secure = null != opts.secure ? opts.secure\n : (typeof location !== 'undefined' && 'https:' === location.protocol);\n\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? '443' : '80';\n }\n\n this.agent = opts.agent || false;\n this.hostname = opts.hostname ||\n (typeof location !== 'undefined' ? location.hostname : 'localhost');\n this.port = opts.port || (typeof location !== 'undefined' && location.port\n ? location.port\n : (this.secure ? 443 : 80));\n this.query = opts.query || {};\n if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n this.upgrade = false !== opts.upgrade;\n this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n this.forceJSONP = !!opts.forceJSONP;\n this.jsonp = false !== opts.jsonp;\n this.forceBase64 = !!opts.forceBase64;\n this.enablesXDR = !!opts.enablesXDR;\n this.withCredentials = false !== opts.withCredentials;\n this.timestampParam = opts.timestampParam || 't';\n this.timestampRequests = opts.timestampRequests;\n this.transports = opts.transports || ['polling', 'websocket'];\n this.transportOptions = opts.transportOptions || {};\n this.readyState = '';\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.policyPort = opts.policyPort || 843;\n this.rememberUpgrade = opts.rememberUpgrade || false;\n this.binaryType = null;\n this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n this.perMessageDeflate.threshold = 1024;\n }\n\n // SSL options for Node.js client\n this.pfx = opts.pfx || null;\n this.key = opts.key || null;\n this.passphrase = opts.passphrase || null;\n this.cert = opts.cert || null;\n this.ca = opts.ca || null;\n this.ciphers = opts.ciphers || null;\n this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n this.forceNode = !!opts.forceNode;\n\n // detect ReactNative environment\n this.isReactNative = (typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative');\n\n // other options for Node.js or ReactNative client\n if (typeof self === 'undefined' || this.isReactNative) {\n if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n this.extraHeaders = opts.extraHeaders;\n }\n\n if (opts.localAddress) {\n this.localAddress = opts.localAddress;\n }\n }\n\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n\n // set on heartbeat\n this.pingIntervalTimer = null;\n this.pingTimeoutTimer = null;\n\n this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n debug('creating transport \"%s\"', name);\n var query = clone(this.query);\n\n // append engine.io protocol identifier\n query.EIO = parser.protocol;\n\n // transport name\n query.transport = name;\n\n // per-transport options\n var options = this.transportOptions[name] || {};\n\n // session id if we already have one\n if (this.id) query.sid = this.id;\n\n var transport = new transports[name]({\n query: query,\n socket: this,\n agent: options.agent || this.agent,\n hostname: options.hostname || this.hostname,\n port: options.port || this.port,\n secure: options.secure || this.secure,\n path: options.path || this.path,\n forceJSONP: options.forceJSONP || this.forceJSONP,\n jsonp: options.jsonp || this.jsonp,\n forceBase64: options.forceBase64 || this.forceBase64,\n enablesXDR: options.enablesXDR || this.enablesXDR,\n withCredentials: options.withCredentials || this.withCredentials,\n timestampRequests: options.timestampRequests || this.timestampRequests,\n timestampParam: options.timestampParam || this.timestampParam,\n policyPort: options.policyPort || this.policyPort,\n pfx: options.pfx || this.pfx,\n key: options.key || this.key,\n passphrase: options.passphrase || this.passphrase,\n cert: options.cert || this.cert,\n ca: options.ca || this.ca,\n ciphers: options.ciphers || this.ciphers,\n rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n extraHeaders: options.extraHeaders || this.extraHeaders,\n forceNode: options.forceNode || this.forceNode,\n localAddress: options.localAddress || this.localAddress,\n requestTimeout: options.requestTimeout || this.requestTimeout,\n protocols: options.protocols || void (0),\n isReactNative: this.isReactNative\n });\n\n return transport;\n};\n\nfunction clone (obj) {\n var o = {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n o[i] = obj[i];\n }\n }\n return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n var transport;\n if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n transport = 'websocket';\n } else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n var self = this;\n setTimeout(function () {\n self.emit('error', 'No transports available');\n }, 0);\n return;\n } else {\n transport = this.transports[0];\n }\n this.readyState = 'opening';\n\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n } catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n\n transport.open();\n this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n debug('setting transport %s', transport.name);\n var self = this;\n\n if (this.transport) {\n debug('clearing existing transport %s', this.transport.name);\n this.transport.removeAllListeners();\n }\n\n // set up transport\n this.transport = transport;\n\n // set up transport listeners\n transport\n .on('drain', function () {\n self.onDrain();\n })\n .on('packet', function (packet) {\n self.onPacket(packet);\n })\n .on('error', function (e) {\n self.onError(e);\n })\n .on('close', function () {\n self.onClose('transport close');\n });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n debug('probing transport \"%s\"', name);\n var transport = this.createTransport(name, { probe: 1 });\n var failed = false;\n var self = this;\n\n Socket.priorWebsocketSuccess = false;\n\n function onTransportOpen () {\n if (self.onlyBinaryUpgrades) {\n var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n failed = failed || upgradeLosesBinary;\n }\n if (failed) return;\n\n debug('probe transport \"%s\" opened', name);\n transport.send([{ type: 'ping', data: 'probe' }]);\n transport.once('packet', function (msg) {\n if (failed) return;\n if ('pong' === msg.type && 'probe' === msg.data) {\n debug('probe transport \"%s\" pong', name);\n self.upgrading = true;\n self.emit('upgrading', transport);\n if (!transport) return;\n Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n debug('pausing current transport \"%s\"', self.transport.name);\n self.transport.pause(function () {\n if (failed) return;\n if ('closed' === self.readyState) return;\n debug('changing transport and sending upgrade packet');\n\n cleanup();\n\n self.setTransport(transport);\n transport.send([{ type: 'upgrade' }]);\n self.emit('upgrade', transport);\n transport = null;\n self.upgrading = false;\n self.flush();\n });\n } else {\n debug('probe transport \"%s\" failed', name);\n var err = new Error('probe error');\n err.transport = transport.name;\n self.emit('upgradeError', err);\n }\n });\n }\n\n function freezeTransport () {\n if (failed) return;\n\n // Any callback called by transport should be ignored since now\n failed = true;\n\n cleanup();\n\n transport.close();\n transport = null;\n }\n\n // Handle any error that happens while probing\n function onerror (err) {\n var error = new Error('probe error: ' + err);\n error.transport = transport.name;\n\n freezeTransport();\n\n debug('probe transport \"%s\" failed because of error: %s', name, err);\n\n self.emit('upgradeError', error);\n }\n\n function onTransportClose () {\n onerror('transport closed');\n }\n\n // When the socket is closed while we're probing\n function onclose () {\n onerror('socket closed');\n }\n\n // When the socket is upgraded while we're probing\n function onupgrade (to) {\n if (transport && to.name !== transport.name) {\n debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n freezeTransport();\n }\n }\n\n // Remove all listeners on the transport and on self\n function cleanup () {\n transport.removeListener('open', onTransportOpen);\n transport.removeListener('error', onerror);\n transport.removeListener('close', onTransportClose);\n self.removeListener('close', onclose);\n self.removeListener('upgrading', onupgrade);\n }\n\n transport.once('open', onTransportOpen);\n transport.once('error', onerror);\n transport.once('close', onTransportClose);\n\n this.once('close', onclose);\n this.once('upgrading', onupgrade);\n\n transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n debug('socket open');\n this.readyState = 'open';\n Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n this.emit('open');\n this.flush();\n\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n debug('starting upgrade probes');\n for (var i = 0, l = this.upgrades.length; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n if ('opening' === this.readyState || 'open' === this.readyState ||\n 'closing' === this.readyState) {\n debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\n this.emit('packet', packet);\n\n // Socket is live - any packet counts\n this.emit('heartbeat');\n\n switch (packet.type) {\n case 'open':\n this.onHandshake(JSON.parse(packet.data));\n break;\n\n case 'pong':\n this.setPing();\n this.emit('pong');\n break;\n\n case 'error':\n var err = new Error('server error');\n err.code = packet.data;\n this.onError(err);\n break;\n\n case 'message':\n this.emit('data', packet.data);\n this.emit('message', packet.data);\n break;\n }\n } else {\n debug('packet received with socket readyState \"%s\"', this.readyState);\n }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n this.emit('handshake', data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.onOpen();\n // In case open handler closes socket\n if ('closed' === this.readyState) return;\n this.setPing();\n\n // Prolong liveness of socket on heartbeat\n this.removeListener('heartbeat', this.onHeartbeat);\n this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n clearTimeout(this.pingTimeoutTimer);\n var self = this;\n self.pingTimeoutTimer = setTimeout(function () {\n if ('closed' === self.readyState) return;\n self.onClose('ping timeout');\n }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n var self = this;\n clearTimeout(self.pingIntervalTimer);\n self.pingIntervalTimer = setTimeout(function () {\n debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n self.ping();\n self.onHeartbeat(self.pingTimeout);\n }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n var self = this;\n this.sendPacket('ping', function () {\n self.emit('ping');\n });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n this.writeBuffer.splice(0, this.prevBufferLen);\n\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n\n if (0 === this.writeBuffer.length) {\n this.emit('drain');\n } else {\n this.flush();\n }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n if ('closed' !== this.readyState && this.transport.writable &&\n !this.upgrading && this.writeBuffer.length) {\n debug('flushing %d packets in socket', this.writeBuffer.length);\n this.transport.send(this.writeBuffer);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = this.writeBuffer.length;\n this.emit('flush');\n }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n this.sendPacket('message', msg, options, fn);\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n if ('function' === typeof data) {\n fn = data;\n data = undefined;\n }\n\n if ('function' === typeof options) {\n fn = options;\n options = null;\n }\n\n if ('closing' === this.readyState || 'closed' === this.readyState) {\n return;\n }\n\n options = options || {};\n options.compress = false !== options.compress;\n\n var packet = {\n type: type,\n data: data,\n options: options\n };\n this.emit('packetCreate', packet);\n this.writeBuffer.push(packet);\n if (fn) this.once('flush', fn);\n this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.readyState = 'closing';\n\n var self = this;\n\n if (this.writeBuffer.length) {\n this.once('drain', function () {\n if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n });\n } else if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n }\n\n function close () {\n self.onClose('forced close');\n debug('socket closing - telling transport to close');\n self.transport.close();\n }\n\n function cleanupAndClose () {\n self.removeListener('upgrade', cleanupAndClose);\n self.removeListener('upgradeError', cleanupAndClose);\n close();\n }\n\n function waitForUpgrade () {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n self.once('upgrade', cleanupAndClose);\n self.once('upgradeError', cleanupAndClose);\n }\n\n return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n debug('socket error %j', err);\n Socket.priorWebsocketSuccess = false;\n this.emit('error', err);\n this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n debug('socket close with reason: \"%s\"', reason);\n var self = this;\n\n // clear timers\n clearTimeout(this.pingIntervalTimer);\n clearTimeout(this.pingTimeoutTimer);\n\n // stop event from firing again for transport\n this.transport.removeAllListeners('close');\n\n // ensure transport won't stay open\n this.transport.close();\n\n // ignore further transport communication\n this.transport.removeAllListeners();\n\n // set ready state\n this.readyState = 'closed';\n\n // clear session id\n this.id = null;\n\n // emit close event\n this.emit('close', reason, desc);\n\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n self.writeBuffer = [];\n self.prevBufferLen = 0;\n }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n var filteredUpgrades = [];\n for (var i = 0, j = upgrades.length; i < j; i++) {\n if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n};\n","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n module.exports = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n}\n","/* global attachEvent */\n\n/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n this.xd = (typeof location !== 'undefined' && opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n opts.withCredentials = this.withCredentials;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n\n return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n var self = this;\n req.on('success', fn);\n req.on('error', function (err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function (data) {\n self.onData(data);\n });\n req.on('error', function (err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n this.requestTimeout = opts.requestTimeout;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n\n this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (var i in this.extraHeaders) {\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e) {}\n\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = this.withCredentials;\n }\n\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n\n if (this.hasXDR()) {\n xhr.onload = function () {\n self.onLoad();\n };\n xhr.onerror = function () {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n try {\n var contentType = xhr.getResponseHeader('Content-Type');\n if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n xhr.responseType = 'arraybuffer';\n }\n } catch (e) {}\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function () {\n self.onError(typeof xhr.status === 'number' ? xhr.status : 0);\n }, 0);\n }\n };\n }\n\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function () {\n self.onError(e);\n }, 0);\n return;\n }\n\n if (typeof document !== 'undefined') {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n this.emit('success');\n this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n this.emit('data', data);\n this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n this.emit('error', err);\n this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (typeof document !== 'undefined') {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (typeof document !== 'undefined') {\n if (typeof attachEvent === 'function') {\n attachEvent('onunload', unloadHandler);\n } else if (typeof addEventListener === 'function') {\n var terminationEvent = 'onpagehide' in globalThis ? 'pagehide' : 'unload';\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\n\nfunction unloadHandler () {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n var arr = [];\n var has = Object.prototype.hasOwnProperty;\n\n for (var i in obj) {\n if (has.call(obj, i)) {\n arr.push(i);\n }\n }\n return arr;\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n var bytes = arraybuffer.byteLength;\n start = start || 0;\n end = end || bytes;\n\n if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n if (start < 0) { start += bytes; }\n if (end < 0) { end += bytes; }\n if (end > bytes) { end = bytes; }\n\n if (start >= bytes || start >= end || bytes === 0) {\n return new ArrayBuffer(0);\n }\n\n var abv = new Uint8Array(arraybuffer);\n var result = new Uint8Array(end - start);\n for (var i = start, ii = 0; i < end; i++, ii++) {\n result[ii] = abv[i];\n }\n return result.buffer;\n};\n","module.exports = after\n\nfunction after(count, callback, err_cb) {\n var bail = false\n err_cb = err_cb || noop\n proxy.count = count\n\n return (count === 0) ? callback() : proxy\n\n function proxy(err, result) {\n if (proxy.count <= 0) {\n throw new Error('after called too many times')\n }\n --proxy.count\n\n // after first error, rest are passed to err_cb\n if (err) {\n bail = true\n callback(err)\n // future error callbacks will go to error handler\n callback = err_cb\n } else if (proxy.count === 0 && !bail) {\n callback(null, result)\n }\n }\n}\n\nfunction noop() {}\n","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n\nvar stringFromCharCode = String.fromCharCode;\n\n// Taken from https://mths.be/punycode\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\tvar value;\n\tvar extra;\n\twhile (counter < length) {\n\t\tvalue = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// high surrogate, and there is a next character\n\t\t\textra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n// Taken from https://mths.be/punycode\nfunction ucs2encode(array) {\n\tvar length = array.length;\n\tvar index = -1;\n\tvar value;\n\tvar output = '';\n\twhile (++index < length) {\n\t\tvalue = array[index];\n\t\tif (value > 0xFFFF) {\n\t\t\tvalue -= 0x10000;\n\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(value);\n\t}\n\treturn output;\n}\n\nfunction checkScalarValue(codePoint, strict) {\n\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\tif (strict) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t}\n\treturn true;\n}\n/*--------------------------------------------------------------------------*/\n\nfunction createByte(codePoint, shift) {\n\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n}\n\nfunction encodeCodePoint(codePoint, strict) {\n\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\treturn stringFromCharCode(codePoint);\n\t}\n\tvar symbol = '';\n\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t}\n\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\tcodePoint = 0xFFFD;\n\t\t}\n\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\tsymbol += createByte(codePoint, 6);\n\t}\n\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\tsymbol += createByte(codePoint, 12);\n\t\tsymbol += createByte(codePoint, 6);\n\t}\n\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\treturn symbol;\n}\n\nfunction utf8encode(string, opts) {\n\topts = opts || {};\n\tvar strict = false !== opts.strict;\n\n\tvar codePoints = ucs2decode(string);\n\tvar length = codePoints.length;\n\tvar index = -1;\n\tvar codePoint;\n\tvar byteString = '';\n\twhile (++index < length) {\n\t\tcodePoint = codePoints[index];\n\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t}\n\treturn byteString;\n}\n\n/*--------------------------------------------------------------------------*/\n\nfunction readContinuationByte() {\n\tif (byteIndex >= byteCount) {\n\t\tthrow Error('Invalid byte index');\n\t}\n\n\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\tbyteIndex++;\n\n\tif ((continuationByte & 0xC0) == 0x80) {\n\t\treturn continuationByte & 0x3F;\n\t}\n\n\t// If we end up here, it’s not a continuation byte\n\tthrow Error('Invalid continuation byte');\n}\n\nfunction decodeSymbol(strict) {\n\tvar byte1;\n\tvar byte2;\n\tvar byte3;\n\tvar byte4;\n\tvar codePoint;\n\n\tif (byteIndex > byteCount) {\n\t\tthrow Error('Invalid byte index');\n\t}\n\n\tif (byteIndex == byteCount) {\n\t\treturn false;\n\t}\n\n\t// Read first byte\n\tbyte1 = byteArray[byteIndex] & 0xFF;\n\tbyteIndex++;\n\n\t// 1-byte sequence (no continuation bytes)\n\tif ((byte1 & 0x80) == 0) {\n\t\treturn byte1;\n\t}\n\n\t// 2-byte sequence\n\tif ((byte1 & 0xE0) == 0xC0) {\n\t\tbyte2 = readContinuationByte();\n\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\tif (codePoint >= 0x80) {\n\t\t\treturn codePoint;\n\t\t} else {\n\t\t\tthrow Error('Invalid continuation byte');\n\t\t}\n\t}\n\n\t// 3-byte sequence (may include unpaired surrogates)\n\tif ((byte1 & 0xF0) == 0xE0) {\n\t\tbyte2 = readContinuationByte();\n\t\tbyte3 = readContinuationByte();\n\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\tif (codePoint >= 0x0800) {\n\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t} else {\n\t\t\tthrow Error('Invalid continuation byte');\n\t\t}\n\t}\n\n\t// 4-byte sequence\n\tif ((byte1 & 0xF8) == 0xF0) {\n\t\tbyte2 = readContinuationByte();\n\t\tbyte3 = readContinuationByte();\n\t\tbyte4 = readContinuationByte();\n\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t(byte3 << 0x06) | byte4;\n\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\treturn codePoint;\n\t\t}\n\t}\n\n\tthrow Error('Invalid UTF-8 detected');\n}\n\nvar byteArray;\nvar byteCount;\nvar byteIndex;\nfunction utf8decode(byteString, opts) {\n\topts = opts || {};\n\tvar strict = false !== opts.strict;\n\n\tbyteArray = ucs2decode(byteString);\n\tbyteCount = byteArray.length;\n\tbyteIndex = 0;\n\tvar codePoints = [];\n\tvar tmp;\n\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\tcodePoints.push(tmp);\n\t}\n\treturn ucs2encode(codePoints);\n}\n\nmodule.exports = {\n\tversion: '2.1.2',\n\tencode: utf8encode,\n\tdecode: utf8decode\n};\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(function(){\n \"use strict\";\n\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n // Use a lookup table to find the index.\n var lookup = new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(i+3)];\n\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\n return arraybuffer;\n };\n})();\n","/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\r\n\r\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :\r\n typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :\r\n typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :\r\n typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : \r\n false;\r\n\r\n/**\r\n * Check if Blob constructor is supported\r\n */\r\n\r\nvar blobSupported = (function() {\r\n try {\r\n var a = new Blob(['hi']);\r\n return a.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\r\n\r\nvar blobSupportsArrayBufferView = blobSupported && (function() {\r\n try {\r\n var b = new Blob([new Uint8Array([1,2])]);\r\n return b.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if BlobBuilder is supported\r\n */\r\n\r\nvar blobBuilderSupported = BlobBuilder\r\n && BlobBuilder.prototype.append\r\n && BlobBuilder.prototype.getBlob;\r\n\r\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\r\n\r\nfunction mapArrayBufferViews(ary) {\r\n return ary.map(function(chunk) {\r\n if (chunk.buffer instanceof ArrayBuffer) {\r\n var buf = chunk.buffer;\r\n\r\n // if this is a subarray, make a copy so we only\r\n // include the subarray region from the underlying buffer\r\n if (chunk.byteLength !== buf.byteLength) {\r\n var copy = new Uint8Array(chunk.byteLength);\r\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\r\n buf = copy.buffer;\r\n }\r\n\r\n return buf;\r\n }\r\n\r\n return chunk;\r\n });\r\n}\r\n\r\nfunction BlobBuilderConstructor(ary, options) {\r\n options = options || {};\r\n\r\n var bb = new BlobBuilder();\r\n mapArrayBufferViews(ary).forEach(function(part) {\r\n bb.append(part);\r\n });\r\n\r\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\r\n};\r\n\r\nfunction BlobConstructor(ary, options) {\r\n return new Blob(mapArrayBufferViews(ary), options || {});\r\n};\r\n\r\nif (typeof Blob !== 'undefined') {\r\n BlobBuilderConstructor.prototype = Blob.prototype;\r\n BlobConstructor.prototype = Blob.prototype;\r\n}\r\n\r\nmodule.exports = (function() {\r\n if (blobSupported) {\r\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\r\n } else if (blobBuilderSupported) {\r\n return BlobBuilderConstructor;\r\n } else {\r\n return undefined;\r\n }\r\n})();\r\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* Active `debug` instances.\n\t*/\n\tcreateDebug.instances = [];\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.enabled = createDebug.enabled(namespace);\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = selectColor(namespace);\n\t\tdebug.destroy = destroy;\n\t\tdebug.extend = extend;\n\t\t// Debug.formatArgs = formatArgs;\n\t\t// debug.rawLog = rawLog;\n\n\t\t// env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\tcreateDebug.instances.push(debug);\n\n\t\treturn debug;\n\t}\n\n\tfunction destroy() {\n\t\tconst index = createDebug.instances.indexOf(this);\n\t\tif (index !== -1) {\n\t\t\tcreateDebug.instances.splice(index, 1);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < createDebug.instances.length; i++) {\n\t\t\tconst instance = createDebug.instances[i];\n\t\t\tinstance.enabled = createDebug.enabled(instance.namespace);\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n Polling.call(this, opts);\n\n this.query = this.query || {};\n\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n callbacks = globalThis.___eio = (globalThis.___eio || []);\n }\n\n // callback identifier\n this.index = callbacks.length;\n\n // add callback to jsonp global\n var self = this;\n callbacks.push(function (msg) {\n self.onData(msg);\n });\n\n // append to query string\n this.query.j = this.index;\n\n // prevent spurious errors from being emitted when the window is unloaded\n if (typeof addEventListener === 'function') {\n addEventListener('beforeunload', function () {\n if (self.script) self.script.onerror = empty;\n }, false);\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n\n Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n var self = this;\n var script = document.createElement('script');\n\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n script.async = true;\n script.src = this.uri();\n script.onerror = function (e) {\n self.onError('jsonp poll error', e);\n };\n\n var insertAt = document.getElementsByTagName('script')[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n\n var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n if (isUAgecko) {\n setTimeout(function () {\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n var self = this;\n\n if (!this.form) {\n var form = document.createElement('form');\n var area = document.createElement('textarea');\n var id = this.iframeId = 'eio_iframe_' + this.index;\n var iframe;\n\n form.className = 'socketio';\n form.style.position = 'absolute';\n form.style.top = '-1000px';\n form.style.left = '-1000px';\n form.target = id;\n form.method = 'POST';\n form.setAttribute('accept-charset', 'utf-8');\n area.name = 'd';\n form.appendChild(area);\n document.body.appendChild(form);\n\n this.form = form;\n this.area = area;\n }\n\n this.form.action = this.uri();\n\n function complete () {\n initIframe();\n fn();\n }\n\n function initIframe () {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError('jsonp polling iframe removal error', e);\n }\n }\n\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n var html = '