diff --git a/build/fhir-client.js b/build/fhir-client.js index 1121d5e6..ea0f4f8e 100644 --- a/build/fhir-client.js +++ b/build/fhir-client.js @@ -8126,89 +8126,87 @@ function () { function () { var _ref = _asyncToGenerator( /*#__PURE__*/ - regeneratorRuntime.mark(function _callee2(data) { - var resolve; - return regeneratorRuntime.wrap(function _callee2$(_context2) { + regeneratorRuntime.mark(function _callee(data) { + var getRef, resolve; + return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { - switch (_context2.prev = _context2.next) { + switch (_context.prev = _context.next) { case 0: - resolve = - /*#__PURE__*/ - function () { - var _ref2 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee(obj) { - return regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return Promise.all(fhirOptions.resolveReferences.map(function (path) { - return new Promise(function (resolve2, reject) { - var ref = _getPath(obj, path + ".reference"); - - if (ref) { - var sub = _resolvedRefs[ref]; - - if (!sub) { - return _this2.request(ref).then(function (sub) { - _resolvedRefs[ref] = sub; - - if (fhirOptions.graph) { - setPath(obj, path, sub); - } - }).then(resolve2, reject); - } - - if (fhirOptions.graph) { - setPath(obj, path, sub); - } - } - - resolve2(); - }); - })); - - case 2: - case "end": - return _context.stop(); + /** + * Gets single reference by id. Caches the result in _resolvedRefs + * @param {String} refId + */ + getRef = function getRef(refId) { + var sub = _resolvedRefs[refId]; + + if (!sub) { + return _this2.request(refId).then(function (sub) { + _resolvedRefs[refId] = sub; + return sub; + }); + } + + return sub; + }; + /** + * Resolve all refs (specified in fhirOptions.resolveReferences) + * in the given resource. + * @param {Object} obj FHIR Resource + */ + + + resolve = function resolve(obj) { + return Promise.all(fhirOptions.resolveReferences.map(function (path) { + var node = _getPath(obj, path); + + if (node) { + var isArray = Array.isArray(node); + return Promise.all(makeArray(node).map(function (item, i) { + var ref = item.reference; + + if (ref) { + return getRef(ref).then(function (sub) { + if (fhirOptions.graph) { + if (isArray) { + setPath(obj, "".concat(path, ".").concat(i), sub); + } else { + setPath(obj, path, sub); + } + } + }); } - } - }, _callee); + })); + } })); - - return function resolve(_x2) { - return _ref2.apply(this, arguments); - }; - }(); + }; if (!(data && data.resourceType == "Bundle")) { - _context2.next = 6; + _context.next = 7; break; } - _context2.next = 4; + _context.next = 5; return Promise.all((data.entry || []).map(function (item) { return resolve(item.resource); })); - case 4: - _context2.next = 8; + case 5: + _context.next = 9; break; - case 6: - _context2.next = 8; + case 7: + _context.next = 9; return resolve(data); - case 8: - return _context2.abrupt("return", data); - case 9: + return _context.abrupt("return", data); + + case 10: case "end": - return _context2.stop(); + return _context.stop(); } } - }, _callee2); + }, _callee); })); return function (_x) { @@ -8218,30 +8216,30 @@ function () { .then( /*#__PURE__*/ function () { - var _ref3 = _asyncToGenerator( + var _ref2 = _asyncToGenerator( /*#__PURE__*/ - regeneratorRuntime.mark(function _callee3(data) { + regeneratorRuntime.mark(function _callee2(data) { var links, next, nextPage; - return regeneratorRuntime.wrap(function _callee3$(_context3) { + return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { - switch (_context3.prev = _context3.next) { + switch (_context2.prev = _context2.next) { case 0: if (!(data && data.resourceType == "Bundle")) { - _context3.next = 18; + _context2.next = 18; break; } if (!hasPageCallback) { - _context3.next = 4; + _context2.next = 4; break; } - _context3.next = 4; + _context2.next = 4; return fhirOptions.onPage(data, _objectSpread({}, _resolvedRefs)); case 4: if (! --fhirOptions.pageLimit) { - _context3.next = 18; + _context2.next = 18; break; } @@ -8252,49 +8250,49 @@ function () { data = makeArray(data); // console.log("===>", data); if (!(next && next.url)) { - _context3.next = 18; + _context2.next = 18; break; } - _context3.next = 11; + _context2.next = 11; return _this2.request(next.url, fhirOptions, _resolvedRefs); case 11: - nextPage = _context3.sent; + nextPage = _context2.sent; if (!hasPageCallback) { - _context3.next = 14; + _context2.next = 14; break; } - return _context3.abrupt("return", null); + return _context2.abrupt("return", null); case 14: if (!fhirOptions.resolveReferences.length) { - _context3.next = 17; + _context2.next = 17; break; } Object.assign(_resolvedRefs, nextPage.references); // console.log("===>", nextPage); - return _context3.abrupt("return", data.concat(makeArray(nextPage.data || nextPage))); + return _context2.abrupt("return", data.concat(makeArray(nextPage.data || nextPage))); case 17: - return _context3.abrupt("return", data.concat(makeArray(nextPage))); + return _context2.abrupt("return", data.concat(makeArray(nextPage))); case 18: - return _context3.abrupt("return", data); + return _context2.abrupt("return", data); case 19: case "end": - return _context3.stop(); + return _context2.stop(); } } - }, _callee3); + }, _callee2); })); - return function (_x3) { - return _ref3.apply(this, arguments); + return function (_x2) { + return _ref2.apply(this, arguments); }; }()) // Finalize -------------------------------------------------------- .then(function (data) { diff --git a/build/fhir-client.js.map b/build/fhir-client.js.map index 81a6b161..593b2b4c 100644 --- a/build/fhir-client.js.map +++ b/build/fhir-client.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/es/array/find.js","webpack:///./node_modules/core-js/es/object/assign.js","webpack:///./node_modules/core-js/es/promise/index.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/array-methods.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/bind-context.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/entry-unbind.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/function-to-string.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/hide.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/punycode-to-ascii.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/string-at.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/user-agent.js","webpack:///./node_modules/core-js/internals/validate-set-prototype-of-arguments.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/modules/web.url.to-json.js","webpack:///./node_modules/core-js/stable/array/find.js","webpack:///./node_modules/core-js/stable/object/assign.js","webpack:///./node_modules/core-js/stable/promise/index.js","webpack:///./node_modules/core-js/stable/url-search-params/index.js","webpack:///./node_modules/core-js/stable/url/index.js","webpack:///./node_modules/core-js/web/url-search-params.js","webpack:///./node_modules/core-js/web/url.js","webpack:///./node_modules/debug/node_modules/ms/index.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/debug/src/common.js","webpack:///./node_modules/isomorphic-fetch/fetch-npm-browserify.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./src/Client.js","webpack:///./src/HttpError.js","webpack:///./src/adapters/BaseAdapter.js","webpack:///./src/adapters/BrowserAdapter.js","webpack:///./src/adapters/NodeAdapter.js","webpack:///./src/entry.js","webpack:///./src/lib.js","webpack:///./src/polyfills.js","webpack:///./src/smart.js","webpack:///./src/storage/BrowserStorage.js","webpack:///./src/storage/ServerStorage.js"],"names":["require","entryUnbind","module","exports","path","Object","assign","Promise","it","TypeError","String","wellKnownSymbol","create","hide","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","key","Constructor","name","isObject","bind","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","toLength","createProperty","getIteratorMethod","from","arrayLike","O","C","argumentsLength","arguments","length","mapfn","mapping","index","iteratorMethod","result","step","iterator","call","next","done","value","toIndexedObject","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","IndexedObject","arraySpeciesCreate","TYPE","specificCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","self","boundFunction","target","push","isArray","SPECIES","originalArray","constructor","aFunction","fn","a","b","c","apply","anObject","ENTRIES","error","returnMethod","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","toString","slice","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","tag","callee","has","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","source","keys","defineProperty","f","getOwnPropertyDescriptor","i","fails","F","getPrototypeOf","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","bitmap","enumerable","configurable","writable","toPrimitive","propertyKey","$","createIteratorConstructor","setPrototypeOf","redefine","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","getIterationMethod","KIND","defaultIterator","IterablePrototype","values","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","proto","forced","get","global","document","exist","createElement","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","Function","CONSTRUCTOR","METHOD","setGlobal","copyConstructorProperties","isForced","options","TARGET","GLOBAL","STATIC","stat","targetProperty","sourceProperty","descriptor","noTargetGet","sham","shared","variable","namespace","method","classof","check","Math","globalThis","window","hasOwnProperty","DESCRIPTORS","console","documentElement","split","propertyIsEnumerable","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","set","enforce","getterFor","state","type","store","wmget","wmhas","wmset","metadata","STATE","arg","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","BREAK","iterable","iterFn","PrototypeOfArrayIteratorPrototype","arrayIterator","macrotask","userAgent","MutationObserver","WebKitMutationObserver","process","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","notify","toggle","node","promise","parent","domain","exit","enter","nextTick","test","createTextNode","observe","characterData","resolve","then","task","getOwnPropertySymbols","Symbol","url","URL","searchParams","pathname","toJSON","sort","href","URLSearchParams","username","host","hash","nativeFunctionToString","PromiseCapability","reject","$$resolve","$$reject","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","nativeAssign","A","B","symbol","alphabet","forEach","chr","join","T","S","concat","j","defineProperties","enumBugKeys","html","documentCreateElement","IE_PROTO","PROTOTYPE","Empty","createDict","iframe","lt","script","gt","js","iframeDocument","style","display","appendChild","src","contentWindow","open","write","close","Properties","IE8_DOM_DEFINE","nativeDefineProperty","P","Attributes","nativeGetOwnPropertyDescriptor","internalObjectKeys","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","arrayIncludes","arrayIndexOf","names","nativePropertyIsEnumerable","NASHORN_BUG","V","validateSetPrototypeOfArguments","correctSetter","setter","__proto__","getOwnPropertyNamesModule","Reflect","newPromiseCapability","x","promiseCapability","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","floor","stringFromCharCode","fromCharCode","ucs2decode","output","counter","charCodeAt","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","input","inputLength","n","bias","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","encoded","labels","label","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","getBuiltIn","CONSTRUCTOR_NAME","TAG","uid","SHARED","version","mode","copyright","defaultConstructor","toInteger","requireObjectCoercible","pos","CONVERT_TO_STRING","position","size","first","second","charAt","location","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","defer","channel","port","run","id","runner","listener","event","post","postMessage","protocol","args","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","max","min","integer","ceil","argument","isNaN","val","valueOf","postfix","random","navigator","NATIVE_SYMBOL","arrayMethods","addToUnscopables","internalFind","FIND","SKIPS_HOLES","find","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","speciesConstructor","promiseResolve","real","onFinally","isFunction","e","redefineAll","setSpecies","anInstance","iterate","checkCorrectnessOfIteration","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","fetch","versions","v8","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","empty","FakePromise","PromiseRejectionEvent","indexOf","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","ok","reaction","handler","fail","exited","rejection","onHandleUnhandled","onUnhandled","reason","initEvent","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","wrap","r","capability","$promiseResolve","remaining","alreadyCalled","race","codePointAt","STRING_ITERATOR","point","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","USE_NATIVE_URL","hasOwn","getIterator","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","RegExp","percentDecode","sequence","decodeURIComponent","deserialize","replacer","match","serialize","encodeURIComponent","parseSearchParams","query","attributes","attribute","entry","shift","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","Iterator","params","URLSearchParamsConstructor","init","entryIterator","updateURL","URLSearchParamsPrototype","append","splice","getAll","found","callback","getState","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseHost","codePoints","parseIPv6","isSpecial","percentEncode","C0ControlPercentEncodeSet","parseIPv4","parts","partsLength","numbers","part","R","ipv4","pop","parseInt","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","number","swaps","swap","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","specialSchemes","ftp","file","gopher","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","buffer","seenAt","seenBracket","seenPasswordToken","bufferCodePoints","failure","fragment","codePoint","encodedCodePoints","URLConstructor","urlString","baseState","searchParamsState","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","s","h","d","w","y","parse","long","fmtLong","fmtShort","Error","JSON","stringify","str","parseFloat","ms","msAbs","abs","round","plural","isPlural","log","formatArgs","save","load","useColors","storage","localstorage","colors","__nwjs","WebkitAppearance","firebug","exception","table","$1","humanize","diff","color","lastC","namespaces","setItem","removeItem","getItem","env","DEBUG","localStorage","formatters","v","message","setup","createDebug","debug","default","coerce","disable","enable","enabled","instances","skips","selectColor","prevTime","curr","Number","Date","prev","format","formatter","logFn","destroy","extend","newDebug","len","substr","instance","map","toNamespace","regexp","substring","stack","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","clearTimeout","runTimeout","fun","runClearTimeout","marker","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","Item","array","title","browser","argv","noop","on","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","runtime","regeneratorRuntime","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","obj","err","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","displayName","defineIteratorMethods","isGeneratorFunction","genFun","ctor","mark","awrap","__await","AsyncIterator","invoke","record","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","async","iter","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","reverse","skipTempReset","stop","rootEntry","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","g","webpackPolyfill","deprecate","paths","children","l","support","Blob","formData","arrayBuffer","isDataView","DataView","isPrototypeOf","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","normalizeValue","iteratorFor","items","Headers","headers","header","oldValue","thisArg","consumed","body","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","bufferClone","byteLength","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","_bodyArrayBuffer","rejected","text","decode","json","normalizeMethod","upcased","toUpperCase","Request","credentials","signal","referrer","clone","form","trim","parseHeaders","rawHeaders","preProcessedHeaders","line","Response","bodyInit","status","statusText","response","redirectStatuses","redirect","DOMException","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","removeEventListener","send","polyfill","fetchJSON","absolute","getPath","setPath","jwtDecode","makeArray","responseToJSON","btoa","byCode","byCodes","units","FhirClient","environment","serverUrl","client","patient","getPatientId","read","encounter","getEncounterId","user","fhirUser","getFhirUser","getUserId","resourceType","getUserType","fhir","connect","fhirJs","baseUrl","accessToken","auth","token","pass","api","patientId","tokenResponse","scope","authorizeUri","idToken","id_token","hasOpenid","hasProfile","hasFhirUser","getIdToken","profile","requestOptions","fhirOptions","_resolvedRefs","authHeader","getAuthorizationHeader","Authorization","resolveReferences","filter","Boolean","graph","pageLimit","hasPageCallback","onPage","catch","useRefreshToken","hasRefreshToken","refresh","resolve2","ref","sub","item","resource","links","link","relation","nextPage","references","refreshToken","tokenUri","scopes","access_token","refresh_token","finally","getStorage","observations","property","HttpError","statusCode","smart","Client","BaseAdapter","getUrl","ready","authorize","BrowserStorage","BrowserAdapter","_url","to","_storage","getSmartApi","Adapter","ServerStorage","NodeAdapter","req","orig","originalUrl","writeHead","end","res","FHIR","oauth2","settings","replaceBrowserHistory","fullSessionStorageSupport","isBrowser","checkResponse","resp","humanizeError","msg","error_description","stripTrailingSlash","reduce","out","idx","arr","randomString","strLength","charSet","atob","Buffer","payload","ret","handleCodeableConcept","concept","observation","coding","o","bank","codes","ensureNumerical","cm","kg","any","pq","SMART_KEY","fetchConformanceStatement","ex","fetchWellKnownJson","getSecurityExtensions","meta","authorization_endpoint","token_endpoint","registrationUri","registration_endpoint","nsUri","extensions","extension","ext","valueUri","_noRedirect","iss","launch","fhirServiceUrl","redirect_uri","redirectUri","clientSecret","fakeTokenResponse","encounterId","client_id","clientId","relative","unset","stateKey","redirectUrl","redirectParams","completeAuth","Storage","authError","authErrorDescription","hasState","delete","history","replaceState","buildTokenRequest","onSuccess","onError","cached","sessionStorage","session"],"mappings":"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","file":"fhir-client.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/entry.js\");\n","require('../../modules/es.array.find');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'find');\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar hide = require('../internals/hide');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n hide(ArrayPrototype, UNSCOPABLES, create(null));\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar bind = require('../internals/bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iteratorMethod = getIteratorMethod(O);\n var length, result, step, iterator;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n result = new C();\n for (;!(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping\n ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)\n : step.value\n );\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\n// false -> Array#indexOf\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n// true -> Array#includes\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var bind = require('../internals/bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\n// 0 -> Array#forEach\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n// 1 -> Array#map\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// 2 -> Array#filter\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// 3 -> Array#some\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n// 4 -> Array#every\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n// 5 -> Array#find\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n// 6 -> Array#findIndex\n// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\nmodule.exports = function (TYPE, specificCreate) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = specificCreate || arraySpeciesCreate;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: target.push(value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n hide(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n hide(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar exist = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return exist ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/bind-context');\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n hide(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var shared = require('../internals/shared');\n\nmodule.exports = shared('native-function-to-string', Function.toString);\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","var O = 'object';\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == O && globalThis) ||\n check(typeof window == O && window) ||\n check(typeof self == O && self) ||\n check(typeof global == O && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var global = require('../internals/global');\n\nvar document = global.document;\n\nmodule.exports = document && document.documentElement;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar hide = require('../internals/hide');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n hide(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar BREAK = {};\n\nvar exports = module.exports = function (iterable, fn, that, ENTRIES, ITERATOR) {\n var boundFunction = bind(fn, that, ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, step;\n\n if (ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = ENTRIES ? boundFunction(anObject(step = iterable[index])[0], step[1]) : boundFunction(iterable[index]);\n if (result === BREAK) return BREAK;\n } return;\n }\n iterator = iterFn.call(iterable);\n }\n\n while (!(step = iterator.next()).done) {\n if (callWithSafeIterationClosing(iterator, boundFunction, step.value, ENTRIES) === BREAK) return BREAK;\n }\n};\n\nexports.BREAK = BREAK;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar userAgent = require('../internals/user-agent');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?e=1', 'http://a');\n var searchParams = url.searchParams;\n url.pathname = 'c%20d';\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?e=1'\n || searchParams.get('e') !== '1'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1';\n});\n","var global = require('../internals/global');\nvar nativeFunctionToString = require('../internals/function-to-string');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap));\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\n\n// 19.1.2.1 Object.assign(target, source, ...)\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !nativeAssign || fails(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var length = enumBugKeys.length;\n var lt = '<';\n var script = 'script';\n var gt = '>';\n var js = 'java' + script + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(js);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n return createDict();\n};\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var i = 0;\n var key;\n while (length > i) definePropertyModule.f(O, key = keys[i++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayIncludes = require('../internals/array-includes');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar arrayIndexOf = arrayIncludes(false);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var validateSetPrototypeOfArguments = require('../internals/validate-set-prototype-of-arguments');\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var correctSetter = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n correctSetter = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n validateSetPrototypeOfArguments(O, proto);\n if (correctSetter) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar classof = require('../internals/classof');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = String(test) !== '[object z]' ? function toString() {\n return '[object ' + classof(this) + ']';\n} : test.toString;\n","var global = require('../internals/global');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar Reflect = global.Reflect;\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","module.exports = require('../internals/global');\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) {\n break;\n }\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nshared('inspectSource', function (it) {\n return nativeFunctionToString.call(it);\n});\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else hide(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar hide = require('../internals/hide');\n\nmodule.exports = function (key, value) {\n try {\n hide(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var C = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n if (DESCRIPTORS && C && !C[SPECIES]) defineProperty(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\nvar IS_PURE = require('../internals/is-pure');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.1.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// CONVERT_TO_STRING: true -> String#at\n// CONVERT_TO_STRING: false -> String#codePointAt\nmodule.exports = function (that, pos, CONVERT_TO_STRING) {\n var S = String(requireObjectCoercible(that));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + postfix).toString(36));\n};\n","var global = require('../internals/global');\n\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\n\nmodule.exports = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) {\n throw TypeError(\"Can't set \" + String(proto) + ' as a prototype');\n }\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar Symbol = global.Symbol;\nvar store = shared('wks');\n\nmodule.exports = function (name) {\n return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar arrayMethods = require('../internals/array-methods');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar internalFind = arrayMethods(5);\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return internalFind(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\nvar ObjectPrototype = Object.prototype;\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (toString !== ObjectPrototype.toString) {\n redefine(ObjectPrototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar userAgent = require('../internals/user-agent');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = global[PROMISE];\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = global.fetch;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper;\n\nvar FORCED = isForced(PROMISE, function () {\n // correct subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var empty = function () { /* empty */ };\n var FakePromise = (promise.constructor = {})[SPECIES] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !((IS_NODE || typeof PromiseRejectionEvent == 'function')\n && (!IS_PURE || promise['finally'])\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n // wrap fetch result\n if (!IS_PURE && typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = path[PROMISE];\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar codePointAt = require('../internals/string-at');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = codePointAt(string, index, true);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar hide = require('../internals/hide');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n hide(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) hide(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n hide(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","'use strict';\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/bind-context');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var i = 0;\n var attribute, entry;\n while (i < attributes.length) {\n attribute = attributes[i++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n } return result;\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, step, entryIterator, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: null,\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n while (!(step = iterator.next()).done) {\n entryIterator = getIterator(anObject(step.value));\n if (\n (first = entryIterator.next()).done ||\n (second = entryIterator.next()).done ||\n !entryIterator.next().done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n if (state.updateURL) state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var i = 0;\n while (i < entries.length) {\n if (entries[i].key === key) entries.splice(i, 1);\n else i++;\n }\n if (state.updateURL) state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var i = 0;\n for (; i < entries.length; i++) if (entries[i].key === key) return entries[i].value;\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var i = 0;\n for (; i < entries.length; i++) if (entries[i].key === key) result.push(entries[i].value);\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var i = 0;\n while (i < entries.length) if (entries[i++].key === key) return true;\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var i = 0;\n var entry;\n for (; i < entries.length; i++) {\n entry = entries[i];\n if (entry.key === key) {\n if (found) entries.splice(i--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n if (state.updateURL) state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, i, j;\n entries.length = 0;\n for (i = 0; i < slice.length; i++) {\n entry = slice[i];\n for (j = 0; j < i; j++) if (entries[j].key > entry.key) {\n entries.splice(j, 0, entry);\n break;\n }\n if (j === i) entries.push(entry);\n }\n if (state.updateURL) state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var i = 0;\n var entry;\n while (i < entries.length) {\n entry = entries[i++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var i = 0;\n var entry;\n while (i < entries.length) {\n entry = entries[i++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codePointAt = require('../internals/string-at');\nvar toASCII = require('../internals/punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+\\-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, i;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (i = 0; i < codePoints.length; i++) result += percentEncode(codePoints[i], C0ControlPercentEncodeSet);\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, i, part, R, n, ipv4;\n if (parts[parts.length - 1] == '') {\n if (parts.length) parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (i = 0; i < partsLength; i++) {\n part = parts[i];\n if (part == '') return input;\n R = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n R = HEX_START.test(part) ? 16 : 8;\n part = part.slice(R == 8 ? 1 : 2);\n }\n if (part === '') {\n n = 0;\n } else {\n if (!(R == 10 ? DEC : R == 8 ? OCT : HEX).test(part)) return input;\n n = parseInt(part, R);\n }\n numbers.push(n);\n }\n for (i = 0; i < partsLength; i++) {\n n = numbers[i];\n if (i == partsLength - 1) {\n if (n >= pow(256, 5 - partsLength)) return null;\n } else if (n > 255) return null;\n }\n ipv4 = numbers.pop();\n for (i = 0; i < numbers.length; i++) {\n ipv4 += numbers[i] * pow(256, 3 - i);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var i = 0;\n for (; i < 8; i++) {\n if (ipv6[i] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = i;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, i, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (i = 0; i < 4; i++) {\n result.unshift(host % 256);\n host = Math.floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (i = 0; i < 8; i++) {\n if (ignore0 && host[i] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === i) {\n result += i ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[i].toString(16);\n if (i < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codePointAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride) {\n if (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n ) return;\n }\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\n});\n","module.exports = require('../../es/array/find');\n","module.exports = require('../../es/object/assign');\n","module.exports = require('../../es/promise');\n","module.exports = require('../../web/url-search-params');\n","module.exports = require('../../web/url');\n","require('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URLSearchParams;\n","require('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\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' && 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?\\.?\\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","/* 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/**\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","// 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","// 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 * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * https://raw.github.com/facebook/regenerator/master/LICENSE file. An\n * additional grant of patent rights can be found in the PATENTS file in\n * the same directory.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n if (typeof global.process === \"object\" && global.process.domain) {\n invoke = global.process.domain.bind(invoke);\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // Among the various tricks for obtaining a reference to the global\n // object, this seems to be the most reliable technique that does not\n // use indirect eval (which violates Content Security Policy).\n typeof global === \"object\" ? global :\n typeof window === \"object\" ? window :\n typeof self === \"object\" ? self : this\n);\n","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","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","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","const {\n fetchJSON,\n absolute,\n debug,\n getPath,\n setPath,\n jwtDecode,\n makeArray,\n request,\n responseToJSON,\n btoa,\n byCode,\n byCodes,\n units\n} = require(\"./lib\");\n\nclass FhirClient\n{\n /**\n * @param {Object} state \n * @param {String} state.clientId\n * @param {String} state.clientSecret\n * @param {String} state.key\n * @param {String} state.scope\n * @param {String} state.serverUrl\n * @param {String} state.tokenUri\n * @param {String} state.username\n * @param {String} state.password\n * @param {Object} state.tokenResponse\n * @param {String} state.tokenResponse.access_token\n * @param {String} state.tokenResponse.encounter\n * @param {Number} state.tokenResponse.expires_in\n * @param {Boolean} state.tokenResponse.need_patient_banner\n * @param {String} state.tokenResponse.patient\n * @param {String} state.tokenResponse.refresh_token\n * @param {String} state.tokenResponse.scope\n * @param {String} state.tokenResponse.smart_style_url\n * @param {String} state.tokenResponse.token_type\n */\n constructor(environment, state)\n {\n // Accept string as argument\n if (typeof state == \"string\") {\n state = { serverUrl: state };\n }\n\n // Valid serverUrl is required!\n if (!state.serverUrl || !state.serverUrl.match(/https?:\\/\\/.+/)) {\n throw new Error(\n \"A `serverUrl` option is required and must begin with 'http(s)'\"\n );\n }\n\n this.state = state;\n this.environment = environment;\n\n const client = this;\n\n // patient api ---------------------------------------------------------\n this.patient = {\n get id() { return client.getPatientId(); },\n read: () => {\n const id = this.patient.id;\n return id ?\n this.request(`Patient/${id}`) :\n Promise.reject(new Error(\"Patient is not available\"));\n }\n };\n\n // encounter api -------------------------------------------------------\n this.encounter = {\n get id() { return client.getEncounterId(); },\n read: () => {\n const id = this.encounter.id;\n return id ?\n this.request(`Encounter/${id}`) :\n Promise.reject(new Error(\"Encounter is not available\"));\n }\n };\n\n // user api ------------------------------------------------------------\n this.user = {\n get fhirUser() { return client.getFhirUser(); },\n get id() { return client.getUserId(); },\n get resourceType() { return client.getUserType(); },\n read: () => {\n const fhirUser = this.user.fhirUser;\n return fhirUser ?\n this.request(fhirUser) :\n Promise.reject(new Error(\"User is not available\"));\n }\n };\n\n // fhir.js api (attached automatically in browser)\n // ---------------------------------------------------------------------\n if (environment.fhir) {\n this.connect(environment.fhir);\n }\n }\n\n connect(fhirJs)\n {\n if (typeof fhirJs == \"function\") {\n const options = {\n baseUrl: this.state.serverUrl.replace(/\\/$/, \"\")\n };\n\n const accessToken = getPath(this, \"state.tokenResponse.access_token\");\n if (accessToken) {\n options.auth = { token: accessToken };\n }\n else {\n const { username, password } = this.state;\n if (username && password) {\n options.auth = {\n user: username,\n pass: password\n };\n }\n }\n this.api = fhirJs(options);\n\n const patientId = getPath(this, \"state.tokenResponse.patient\");\n if (patientId) {\n this.patient.api = fhirJs({\n ...options,\n patient: patientId\n });\n }\n }\n }\n\n /**\n * Returns the ID of the selected patient or null. You should have requested\n * \"launch/patient\" scope. Otherwise this will return null.\n */\n getPatientId()\n {\n const tokenResponse = this.state.tokenResponse;\n if (tokenResponse) {\n // We have been authorized against this server but we don't know\n // the patient. This should be a scope issue.\n if (!tokenResponse.patient) {\n if (!(this.state.scope || \"\").match(/\\blaunch(\\/patient)?\\b/)) {\n debug(\n \"You are trying to get the ID of the selected patient \" +\n \"but you have not used the right scopes. Please add \" +\n \"'launch' or 'launch/patient' to the scopes you are \" +\n \"requesting and try again.\"\n );\n }\n else {\n // The server should have returned the patient!\n debug(\n \"The ID of the selected patient is not available. \" +\n \"Please check if your server supports that.\"\n );\n }\n return null;\n }\n return tokenResponse.patient;\n }\n\n if (this.state.authorizeUri) {\n debug(\n \"You are trying to get the ID of the selected patient \" +\n \"but your app is not authorized yet.\"\n );\n }\n else {\n debug(\n \"You are trying to get the ID of the selected patient \" +\n \"but your app needs to be authorized first. Please don't use \" +\n \"open fhir servers if you need to access launch context items \" +\n \"like the selected patient.\"\n );\n }\n return null;\n }\n\n /**\n * Returns the ID of the selected encounter or null. You should have\n * requested \"launch/encounter\" scope. Otherwise this will return null.\n * Note that not all servers support the \"launch/encounter\" scope so this\n * will be null if they don't.\n */\n getEncounterId()\n {\n const tokenResponse = this.state.tokenResponse;\n if (tokenResponse) {\n // We have been authorized against this server but we don't know\n // the encounter. This should be a scope issue.\n if (!tokenResponse.encounter) {\n if (!(this.state.scope || \"\").match(/\\blaunch(\\/encounter)?\\b/)) {\n debug(\n \"You are trying to get the ID of the selected encounter \" +\n \"but you have not used the right scopes. Please add \" +\n \"'launch' or 'launch/encounter' to the scopes you \" +\n \"are requesting and try again.\"\n );\n }\n else {\n // The server should have returned the patient!\n debug(\n \"The ID of the selected encounter is not available. \" +\n \"Please check if your server supports that, and that \" +\n \"the selected patient has any recorded encounters.\"\n );\n }\n return null;\n }\n return tokenResponse.encounter;\n }\n\n if (this.state.authorizeUri) {\n debug(\n \"You are trying to get the ID of the selected encounter \" +\n \"but your app is not authorized yet.\"\n );\n }\n else {\n debug(\n \"You are trying to get the ID of the selected encounter \" +\n \"but your app needs to be authorized first. Please don't use \" +\n \"open fhir servers if you need to access launch context items \" +\n \"like the selected encounter.\"\n );\n }\n return null;\n }\n\n /**\n * Returns the (decoded) id_token if any. You need to request \"openid\" and\n * \"profile\" scopes if you need to receive an id_token (if you need to know\n * who the logged-in user is).\n */\n getIdToken()\n {\n const tokenResponse = this.state.tokenResponse;\n if (tokenResponse) {\n const idToken = tokenResponse.id_token;\n const scope = this.state.scope || \"\";\n\n // We have been authorized against this server but we don't have\n // the id_token. This should be a scope issue.\n if (!idToken) {\n const hasOpenid = scope.match(/\\bopenid\\b/);\n const hasProfile = scope.match(/\\bprofile\\b/);\n const hasFhirUser = scope.match(/\\bfhirUser\\b/);\n if (!hasOpenid || !(hasFhirUser || hasProfile)) {\n debug(\n \"You are trying to get the id_token but you are not \" +\n \"using the right scopes. Please add 'openid' and \" +\n \"'fhirUser' or 'profile' to the scopes you are \" +\n \"requesting and try again.\"\n );\n }\n else {\n // The server should have returned the id_token!\n debug(\n \"The id_token is not available. Please check if your \" +\n \"server supports that.\"\n );\n }\n return null;\n }\n return jwtDecode(idToken);\n }\n if (this.state.authorizeUri) {\n debug(\n \"You are trying to get the id_token \" +\n \"but your app is not authorized yet.\"\n );\n }\n else {\n debug(\n \"You are trying to get the id_token but your app needs to be \" +\n \"authorized first. Please don't use open fhir servers if you \" +\n \"need to access launch context items like the id_token.\"\n );\n }\n return null;\n }\n\n /**\n * Returns the profile of the logged_in user (if any). This is a string\n * having the following shape \"{user type}/{user id}\". For example:\n * \"Practitioner/abc\" or \"Patient/xyz\".\n */\n getFhirUser()\n {\n const idToken = this.getIdToken();\n if (idToken) {\n return idToken.profile;\n }\n return null;\n }\n\n /**\n * Returns the user ID or null.\n */\n getUserId()\n {\n const profile = this.getFhirUser();\n if (profile) {\n return profile.split(\"/\")[1];\n }\n return null;\n }\n\n /**\n * Returns the type of the logged-in user or null. The result can be\n * \"Practitioner\", \"Patient\" or \"RelatedPerson\".\n */\n getUserType()\n {\n const profile = this.getFhirUser();\n if (profile) {\n return profile.split(\"/\")[0];\n }\n return null;\n }\n\n getAuthorizationHeader()\n {\n const accessToken = getPath(this, \"state.tokenResponse.access_token\");\n if (accessToken) {\n return \"Bearer \" + accessToken;\n }\n const { username, password } = this.state;\n if (username && password) {\n return \"Basic \" + btoa(username + \":\" + password);\n }\n return null;\n }\n\n /**\n * @param {Object|String} requestOptions Can be a string URL (relative to\n * the serviceUrl), or an object which will be passed to fetch()\n * @param {Object} fhirOptions Additional options to control the behavior\n * @param {Boolean} fhirOptions.useRefreshToken If false, the request will\n * fail if your access token is expired. If true (default), when you receive\n * a 401 response and you have a refresh token, the client will attempt to\n * re-authorize and try again.\n * @param {String|String[]} fhirOptions.resolveReferences One or more\n * references to resolve.\n * @param {Function} fhirOptions.onPage\n * @param {Boolean} fhirOptions.graph Ignored if `fhirOptions.resolveReferences`\n * is not used. If you use `fhirOptions.resolveReferences` and set \n * `fhirOptions.graph` to false, the result promise will be resolved with an\n * object like `{ data: Bundle, references: [ ...Resource ] }`.\n * If you set `fhirOptions.graph` to true, the resolved references will be\n * mounted in place and you just get the data property: `{ data: Bundle }`.\n */\n request(requestOptions, fhirOptions = {}, _resolvedRefs = {})\n {\n if (!requestOptions) {\n throw new Error(\"client.request requires an url or request options as argument\");\n }\n\n // url -----------------------------------------------------------------\n let url;\n if (typeof requestOptions == \"string\" || requestOptions instanceof URL) {\n url = String(requestOptions);\n requestOptions = {};\n }\n else {\n url = String(requestOptions.url);\n }\n \n url = absolute(url, this.state.serverUrl);\n\n // authentication ------------------------------------------------------\n const authHeader = this.getAuthorizationHeader();\n if (authHeader) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Authorization: authHeader\n };\n }\n\n // fhirOptions.resolveReferences ---------------------------------------\n if (!Array.isArray(fhirOptions.resolveReferences)) {\n fhirOptions.resolveReferences = [fhirOptions.resolveReferences];\n }\n fhirOptions.resolveReferences = fhirOptions.resolveReferences.filter(Boolean).map(String);\n\n // fhirOptions.graph ---------------------------------------------------\n fhirOptions.graph = (fhirOptions.graph !== false);\n\n // fhirOptions.pageLimit -----------------------------------------------\n if (!fhirOptions.pageLimit && fhirOptions.pageLimit !== 0) {\n fhirOptions.pageLimit = 1;\n }\n\n const hasPageCallback = typeof fhirOptions.onPage == \"function\";\n\n debug(\"[client.request] Request url: %s, options: %O, fhirOptions: %O\", url, requestOptions, fhirOptions);\n return fetchJSON(url, requestOptions)\n\n // Automatic re-auth via refresh token -----------------------------\n .catch(error => {\n debug(\"failed %o\", error);\n if (error.status == 401 && fhirOptions.useRefreshToken !== false) {\n const hasRefreshToken = getPath(this, \"state.tokenResponse.refresh_token\");\n if (hasRefreshToken) {\n return this.refresh().then(() => this.request(\n { ...requestOptions, url },\n fhirOptions,\n _resolvedRefs\n ));\n }\n }\n throw error;\n })\n\n // Resolve References ----------------------------------------------\n .then(async (data) => {\n\n const resolve = async obj => {\n await Promise.all(fhirOptions.resolveReferences.map(path => {\n return new Promise((resolve2, reject) => {\n const ref = getPath(obj, path + \".reference\");\n if (ref) {\n let sub = _resolvedRefs[ref];\n if (!sub) {\n return this.request(ref).then(sub => {\n _resolvedRefs[ref] = sub;\n if (fhirOptions.graph) {\n setPath(obj, path, sub);\n }\n }).then(resolve2, reject);\n }\n\n if (fhirOptions.graph) {\n setPath(obj, path, sub);\n }\n }\n resolve2();\n });\n }));\n };\n\n if (data && data.resourceType == \"Bundle\") {\n await Promise.all((data.entry || []).map(item => resolve(item.resource)));\n } else {\n await resolve(data);\n }\n\n return data;\n })\n\n // Pagination ------------------------------------------------------\n .then(async (data) => {\n if (data && data.resourceType == \"Bundle\") {\n if (hasPageCallback) {\n await fhirOptions.onPage(data, { ..._resolvedRefs });\n }\n\n if (--fhirOptions.pageLimit) {\n const links = data.link || [];\n const next = links.find(l => l.relation == \"next\");\n data = makeArray(data);\n // console.log(\"===>\", data);\n if (next && next.url) {\n const nextPage = await this.request(\n next.url,\n fhirOptions,\n _resolvedRefs\n );\n\n if (hasPageCallback) {\n return null;\n }\n // console.log(\"===>\", nextPage);\n if (fhirOptions.resolveReferences.length) {\n Object.assign(_resolvedRefs, nextPage.references);\n // console.log(\"===>\", nextPage);\n return data.concat(makeArray(nextPage.data || nextPage));\n }\n return data.concat(makeArray(nextPage));\n }\n }\n }\n return data;\n })\n\n // Finalize --------------------------------------------------------\n .then(data => {\n if (fhirOptions.graph) {\n _resolvedRefs = {};\n }\n else if (!hasPageCallback && fhirOptions.resolveReferences.length) {\n return {\n data,\n references: _resolvedRefs\n };\n }\n return data;\n });\n }\n\n /**\n * Use the refresh token to obtain new access token. If the refresh token is\n * expired (or this fails for any other reason) it will be deleted from the\n * state, so that we don't enter into loops trying to re-authorize.\n */\n refresh()\n {\n debug(\"[refresh] Attempting to refresh using a refresh_token...\");\n\n const refreshToken = getPath(this, \"state.tokenResponse.refresh_token\");\n if (!refreshToken) {\n throw new Error(\"Unable to refresh. No refresh_token found in state\");\n }\n\n const tokenUri = this.state.tokenUri;\n if (!tokenUri) {\n throw new Error(\"Unable to refresh. No tokenUri found in storage\");\n }\n\n const scopes = getPath(this, \"state.tokenResponse.scope\") || \"\";\n if (scopes.indexOf(\"online_access\") == -1) {\n throw new Error(\"Trying to refresh but no `online_access` scope was granted\");\n }\n\n return request(tokenUri, {\n mode : \"cors\",\n method : \"POST\",\n headers: {\n \"content-type\": \"application/x-www-form-urlencoded\"\n },\n body: `grant_type=refresh_token&refresh_token=${encodeURIComponent(refreshToken)}`\n }).then(responseToJSON).then(data => {\n if (!data.access_token) {\n throw new Error(\"No access token received\");\n }\n return data;\n }).then(data => {\n debug(\"[refresh] Received new access token %O\", data);\n Object.assign(this.state.tokenResponse, data);\n return this.state;\n }).catch(error => {\n debug(\"[refresh] Deleting the expired or invalid refresh token\");\n delete this.state.tokenResponse.refresh_token;\n throw error;\n }).finally(() => {\n this.environment.getStorage().set(this.state.key, this.state);\n });\n }\n\n // utils -------------------------------------------------------------------\n byCode(observations, property) {\n return byCode(observations, property);\n }\n\n byCodes(observations, property) {\n return byCodes(observations, property);\n }\n\n get units() {\n return units;\n }\n\n getPath(object, path) {\n return getPath(object, path);\n }\n}\n\nmodule.exports = FhirClient;\n","\nclass HttpError extends Error\n{\n constructor(message, statusCode, statusText) {\n super(message);\n this.message = message;\n this.name = \"HttpError\";\n this.statusCode = statusCode;\n this.status = statusCode;\n this.statusText = statusText;\n }\n\n toJSON() {\n return {\n name : this.name,\n statusCode: this.statusCode,\n status : this.status,\n statusText: this.statusText,\n message : this.message\n };\n }\n\n static create(failure) {\n // start with generic values\n var status = 0;\n var statusText = \"Error\";\n var message = \"Unknown error\";\n\n if (failure) {\n if (typeof failure == \"object\") {\n if (failure instanceof Error) {\n message = failure.message;\n // console.log(failure.stack);\n }\n else if (failure.error) {\n status = failure.error.status || 0;\n statusText = failure.error.statusText || \"Error\";\n if (failure.error.responseText) {\n message = failure.error.responseText;\n }\n }\n }\n else if (typeof failure == \"string\") {\n message = failure;\n }\n }\n\n return new HttpError(message, status, statusText);\n }\n}\n\nmodule.exports = HttpError;\n","const smart = require(\"../smart\");\nconst Client = require(\"../Client\");\n\n/**\n * This is the abstract base class that adapters must inherit. It just a\n * collection of environment-specific methods that subclasses have to implement.\n */\nclass BaseAdapter\n{\n /**\n * Given the current environment, this method must return the current url\n * as URL instance\n * @returns {URL}\n */\n getUrl() {}\n\n /**\n * Given the current environment, this method must redirect to the given\n * path\n * @param {String} to The path to redirect to\n * @returns {*}\n */\n redirect(/*to*/) {}\n\n /**\n * This must return a Storage object\n * @returns {Storage}\n */\n getStorage() {}\n\n /**\n * Given a relative path, compute and return the full url, assuming that it\n * is relative to the current location\n * @param {String} path The path to convert to absolute\n * @returns {String}\n */\n relative(path)\n {\n return new URL(path, this.getUrl().href).href;\n }\n\n /**\n * Creates and returns adapter-aware SMART api. Not that while the shape of\n * the returned object is well known, the arguments to this function are not.\n * Those who override this method are free to require any environment-specific\n * arguments. For example in node we will need a request, a response and\n * optionally a storage or storage factory function.\n */\n getSmartApi()\n {\n return {\n ready : (...args) => smart.ready(this, ...args),\n authorize: (...args) => smart.authorize(this, ...args),\n init : (...args) => smart.init(this, ...args),\n client : (...args) => new Client(this, ...args),\n };\n }\n}\n\nmodule.exports = BaseAdapter;\n","/* global fhir */\nrequire(\"../polyfills\");\nconst BrowserStorage = require(\"../storage/BrowserStorage\");\nconst BaseAdapter = require(\"./BaseAdapter\");\n\n/**\n * Browser Adapter\n */\nclass BrowserAdapter extends BaseAdapter\n{\n /**\n * In browsers we need to be able to (dynamically) check if fhir.js is\n * included in the page. If it is, it should have created a \"fhir\" variable\n * in the global scope.\n */\n get fhir()\n {\n return typeof fhir === \"function\" ? fhir : null;\n }\n\n /**\n * Given the current environment, this method must return the current url\n * as URL instance\n * @returns {URL}\n */\n getUrl()\n {\n if (!this._url) {\n this._url = new URL(location + \"\");\n }\n return this._url;\n }\n\n /**\n * Given the current environment, this method must redirect to the given\n * path\n * @param {String} to The path to redirect to\n * @returns {void}\n */\n redirect(to)\n {\n location.href = to;\n }\n\n /**\n * Returns a BrowserStorage object which is just a wrapper around\n * sessionStorage\n * @returns {BrowserStorage}\n */\n getStorage()\n {\n if (!this._storage) {\n this._storage = new BrowserStorage();\n }\n return this._storage;\n }\n\n static smart()\n {\n return new BrowserAdapter().getSmartApi();\n }\n}\n\nmodule.exports = BrowserAdapter.smart;\nmodule.exports.Adapter = BrowserAdapter;\n","require(\"isomorphic-fetch\");\nconst ServerStorage = require(\"../storage/ServerStorage\");\nconst BaseAdapter = require(\"./BaseAdapter\");\n\n/**\n * Node Adapter - works with native NodeJS and with Express\n */\nclass NodeAdapter extends BaseAdapter\n{\n /**\n * @param {Object} options \n * @param {Object} options.request required\n * @param {Object} options.response required\n * @param {Object} options.storage optional\n */\n constructor(options)\n {\n super();\n this.options = options;\n }\n\n /**\n * Given the current environment, this method must return the current url\n * as URL instance. In Node we might be behind a proxy!\n * @returns {URL}\n */\n getUrl()\n {\n const req = this.options.request;\n\n let host = req.headers.host;\n if (req.headers[\"x-forwarded-host\"]) {\n host = req.headers[\"x-forwarded-host\"];\n if (req.headers[\"x-forwarded-port\"]) {\n host += \":\" + req.headers[\"x-forwarded-port\"];\n }\n }\n\n const protocol = req.headers[\"x-forwarded-proto\"] || req.protocol || \"http\";\n const orig = req.originalUrl || req.headers[\"x-original-uri\"] || req.url;\n return new URL(orig, protocol + \"://\" + host);\n }\n\n /**\n * Given the current environment, this method must redirect to the given\n * path\n * @param {String} location The path to redirect to\n * @returns {void}\n */\n redirect(location)\n {\n this.options.response.writeHead(302, { location });\n this.options.response.end();\n }\n\n /**\n * Returns a ServerStorage instance\n * @returns {ServerStorage}\n */\n getStorage()\n {\n if (!this._storage) {\n if (this.options.storage) {\n if (typeof this.options.storage == \"function\") {\n this._storage = this.options.storage(this.options);\n } else {\n this._storage = this.options.storage;\n }\n } else {\n this._storage = new ServerStorage(this.options.request);\n }\n }\n return this._storage;\n }\n\n /**\n * This is the static entry point and MUST be provided\n * @param {Object} req The http request \n * @param {Object} res The http response\n * @param {Object|Function} storage Custom storage instance or a storage\n * factory function\n */\n static smart(req, res, storage)\n {\n return new NodeAdapter({\n request: req,\n response: res,\n storage\n }).getSmartApi();\n }\n}\n\nmodule.exports = NodeAdapter.smart;\nmodule.exports.Adapter = NodeAdapter;\n","// In Browsers we create an adapter, get the SMART api from it and build the\n// global FHIR object\nif (typeof window == \"object\") {\n const smart = require(\"./adapters/BrowserAdapter\");\n console.log(\"smart:\", smart, smart.Adapter);\n const { ready, authorize, init, client } = smart();\n\n // $lab:coverage:off$\n const FHIR = {\n client,\n oauth2: {\n settings: {\n // Replaces the browser's current URL\n // using window.history.replaceState API or by reloading.\n replaceBrowserHistory: true,\n \n // When set to true, this variable will fully utilize\n // HTML5 sessionStorage API.\n // This variable can be overridden to false by setting\n // FHIR.oauth2.settings.fullSessionStorageSupport = false.\n // When set to false, the sessionStorage will be keyed \n // by a state variable. This is to allow the embedded IE browser\n // instances instantiated on a single thread to continue to\n // function without having sessionStorage data shared \n // across the embedded IE instances.\n fullSessionStorageSupport: true\n },\n ready,\n authorize,\n init\n }\n };\n // $lab:coverage:on$\n window.FHIR = FHIR;\n module.exports = FHIR;\n}\n\n// In node we return the node adapter by default, meaning that one could do:\n// require(\"fhirclient\").smart({ request, response }).authorize(options)\n// Other adapters can be included directly (E.g.: require(\"fhirclient/src/adapters/hapi\"))\nelse {\n module.exports = require(\"./adapters/NodeAdapter\");\n}\n\n\n","/*\n * This file contains some shared functions. The are used by other modules, but\n * are defined here so that tests can import this library and test them.\n */\n\nconst HttpError = require(\"./HttpError\");\nconst debug = require(\"debug\")(\"FHIRClient\");\n\nfunction isBrowser() {\n return typeof window === \"object\";\n}\n\n/**\n * Used in fetch Promise chains to reject if the \"ok\" property is not true\n */\nasync function checkResponse(resp) {\n if (!resp.ok) {\n throw (await humanizeError(resp));\n }\n return resp;\n}\n\n/**\n * Used in fetch Promise chains to return the JSON version of the response\n */\nfunction responseToJSON(resp) {\n // return resp.json();\n return resp.text().then(text => text.length ? JSON.parse(text) : \"\");\n}\n\nfunction fetchJSON(url, options) {\n return request(url, {\n mode: \"cors\",\n ...options\n }).then(responseToJSON);\n}\n\nfunction request(url, options) {\n return fetch(url, options).then(checkResponse);\n}\n\nasync function humanizeError(resp) {\n let msg = `${resp.status} ${resp.statusText}\\nURL: ${resp.url}`;\n\n try {\n const json = await resp.json();\n if (json.error) {\n msg += \"\\n\" + json.error;\n if (json.error_description) {\n msg += \": \" + json.error_description;\n }\n }\n else {\n msg += \"\\n\\n\" + JSON.stringify(json, null, 4);\n }\n } catch (_) {\n try {\n const text = await resp.text();\n if (text) {\n msg += \"\\n\\n\" + text;\n }\n } catch (_) {\n // ignore\n }\n }\n\n throw new HttpError(msg, resp.status, resp.statusText);\n}\n\nfunction stripTrailingSlash(str) {\n return String(str || \"\").replace(/\\/+$/, \"\");\n}\n\n/**\n * Walks through an object (or array) and returns the value found at the\n * provided path. This function is very simple so it intentionally does not\n * support any argument polymorphism, meaning that the path can only be a\n * dot-separated string. If the path is invalid returns undefined.\n * @param {Object} obj The object (or Array) to walk through\n * @param {String} path The path (eg. \"a.b.4.c\")\n * @returns {*} Whatever is found in the path or undefined\n */\nfunction getPath(obj, path = \"\") {\n path = path.trim();\n if (!path) {\n return obj;\n }\n return path.split(\".\").reduce(\n (out, key) => out ? out[key] : undefined,\n obj\n );\n}\n\n/**\n * Like getPath, but if the node is found, its value is set to @value\n * @param {Object} obj The object (or Array) to walk through\n * @param {String} path The path (eg. \"a.b.4.c\")\n * @param {*} value The value to set\n * @returns {Object} The modified object\n */\nfunction setPath(obj, path, value) {\n path.trim().split(\".\").reduce(\n (out, key, idx, arr) => {\n if (out && idx === arr.length - 1) {\n out[key] = value;\n } else {\n return out ? out[key] : undefined;\n }\n },\n obj\n );\n return obj;\n}\n\nfunction makeArray(arg) {\n if (Array.isArray(arg)) {\n return arg;\n }\n return [arg];\n}\n\nfunction absolute(path, baseUrl) {\n if (path.match(/^http/)) return path;\n if (path.match(/^urn/)) return path;\n return baseUrl.replace(/\\/+$/, \"\") + \"/\" + path.replace(/^\\/+/, \"\");\n}\n\n/**\n * Generates random strings. By default this returns random 8 characters long\n * alphanumeric strings.\n * @param {Number} strLength The length of the output string. Defaults to 8.\n * @param {String} charSet A string containing all the possible characters.\n * Defaults to all the upper and lower-case letters plus digits.\n */\nfunction randomString(strLength = 8, charSet = null) {\n const result = [];\n\n charSet = charSet || \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" +\n \"abcdefghijklmnopqrstuvwxyz\" +\n \"0123456789\";\n\n const len = charSet.length;\n while (strLength--) {\n result.push(charSet.charAt(Math.floor(Math.random() * len)));\n }\n return result.join(\"\");\n}\n\nfunction atob(str)\n{\n if (isBrowser()) {\n return window.atob(str);\n }\n\n // The \"global.\" makes Webpack understand that it doesn't have to include\n // the Buffer code in the bundle\n return global.Buffer.from(str, \"base64\").toString(\"ascii\");\n}\n\nfunction btoa(str)\n{\n if (isBrowser()) {\n return window.btoa(str);\n }\n\n // The \"global.\" makes Webpack understand that it doesn't have to include\n // the Buffer code in the bundle\n return global.Buffer.from(str).toString(\"base64\");\n}\n\nfunction jwtDecode(token)\n{\n const payload = token.split(\".\")[1];\n return JSON.parse(atob(payload));\n}\n\n/**\n * Groups the observations by code. Returns a map that will look like:\n * {\n * \"55284-4\": [ observation1, observation2 ],\n * \"6082-2\" : [ observation3 ]\n * }\n * @param {Object|Object[]} observations Array of observations \n * @param {String} property The name of a CodeableConcept property to group by\n * @returns {Object}\n */\nfunction byCode(observations, property)\n{\n const ret = {};\n\n function handleCodeableConcept(concept, observation) {\n if (concept && Array.isArray(concept.coding)) {\n concept.coding.forEach(({ code }) => {\n ret[code] = ret[code] || [];\n ret[code].push(observation);\n });\n }\n }\n\n makeArray(observations).forEach(o => {\n if (o.resourceType === \"Observation\" && o[property]) {\n if (Array.isArray(o[property])) {\n o[property].forEach(concept => handleCodeableConcept(concept, o));\n } else {\n handleCodeableConcept(o[property], o);\n }\n }\n });\n\n return ret;\n}\n\n/**\n * First groups the observations by code using `byCode`. Then returns a function\n * that accepts codes as arguments and will return a flat array of observations\n * having that codes\n * @param {Object|Object[]} observations Array of observations \n * @param {String} property The name of a CodeableConcept property to group by\n * @returns {Function}\n */\nfunction byCodes(observations, property)\n{\n const bank = byCode(observations, property);\n return (...codes) => codes\n .filter(code => code in bank)\n .reduce((prev, code) => [...prev, ...bank[code]], []);\n}\n\nfunction ensureNumerical({ value, code }) {\n if (typeof value !== \"number\") {\n throw new Error(\"Found a non-numerical unit: \" + value + \" \" + code);\n }\n}\n\nconst units = {\n cm({ code, value }) {\n ensureNumerical({ code, value });\n if (code == \"cm\" ) return value;\n if (code == \"m\" ) return value * 100;\n if (code == \"in\" ) return value * 2.54;\n if (code == \"[in_us]\") return value * 2.54;\n if (code == \"[in_i]\" ) return value * 2.54;\n if (code == \"ft\" ) return value * 30.48;\n if (code == \"[ft_us]\") return value * 30.48;\n throw new Error(\"Unrecognized length unit: \" + code);\n },\n kg({ code, value }){\n ensureNumerical({ code, value });\n if(code == \"kg\" ) return value;\n if(code == \"g\" ) return value / 1000;\n if(code.match(/lb/)) return value / 2.20462;\n if(code.match(/oz/)) return value / 35.274;\n throw new Error(\"Unrecognized weight unit: \" + code);\n },\n any(pq){\n ensureNumerical(pq);\n return pq.value;\n }\n};\n\n\nmodule.exports = {\n stripTrailingSlash,\n absolute,\n getPath,\n setPath,\n makeArray,\n randomString,\n isBrowser,\n debug,\n checkResponse,\n responseToJSON,\n fetchJSON,\n humanizeError,\n jwtDecode,\n request,\n atob,\n btoa,\n byCode,\n byCodes,\n units\n};\n","require(\"../node_modules/core-js/stable/promise\");\nrequire(\"../node_modules/core-js/stable/object/assign\");\nrequire(\"../node_modules/core-js/stable/url\");\nrequire(\"../node_modules/core-js/stable/url-search-params\");\nrequire(\"../node_modules/core-js/stable/array/find\");\n\nrequire(\"regenerator-runtime/runtime\");\n\nif (typeof window.fetch != \"function\") {\n window.fetch = require(\"isomorphic-fetch\");\n}","const Client = require(\"./Client\");\nconst {\n isBrowser,\n debug,\n fetchJSON,\n getPath,\n randomString,\n btoa\n} = require(\"./lib\");\n\nconst SMART_KEY = \"SMART_KEY\";\n\nfunction fetchConformanceStatement(baseUrl = \"/\")\n{\n const url = String(baseUrl).replace(/\\/*$/, \"/\") + \"metadata\";\n return fetchJSON(url).catch(ex => {\n throw new Error(`Failed to fetch the conformance statement from \"${url}\". ${ex}`);\n });\n}\n\nfunction fetchWellKnownJson(baseUrl = \"/\")\n{\n const url = String(baseUrl).replace(/\\/*$/, \"/\") + \".well-known/smart-configuration\";\n return fetchJSON(url).catch(ex => {\n throw new Error(`Failed to fetch the well-known json \"${url}\". ${ex.message}`);\n });\n}\n\n/**\n * Given a fhir server returns an object with it's Oauth security endpoints that\n * we are interested in\n * @param baseUrl Fhir server base URL\n */\nfunction getSecurityExtensions(baseUrl = \"/\")\n{\n return fetchWellKnownJson(baseUrl).then(meta => {\n if (!meta.authorization_endpoint || !meta.token_endpoint) {\n throw new Error(\"Invalid wellKnownJson\");\n }\n return {\n registrationUri: meta.registration_endpoint || \"\",\n authorizeUri : meta.authorization_endpoint,\n tokenUri : meta.token_endpoint\n };\n }).catch(() => fetchConformanceStatement(baseUrl).then(metadata => {\n const nsUri = \"http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris\";\n const extensions = (getPath(metadata || {}, \"rest.0.security.extension\") || [])\n .filter(e => e.url === nsUri)\n .map(o => o.extension)[0];\n\n const out = {\n registrationUri : \"\",\n authorizeUri : \"\",\n tokenUri : \"\"\n };\n\n if (extensions) {\n extensions.forEach(ext => {\n if (ext.url === \"register\") {\n out.registrationUri = ext.valueUri;\n }\n if (ext.url === \"authorize\") {\n out.authorizeUri = ext.valueUri;\n }\n if (ext.url === \"token\") {\n out.tokenUri = ext.valueUri;\n }\n });\n }\n\n return out;\n }));\n}\n\n/**\n * @param {Object} params\n * @param {String} params.iss This should come as url parameter but can also be\n * passed as an option for testing\n * @param {String} params.launch This should come as url parameter but can also\n * be passed as an option for testing\n * @param {String} params.fhirServiceUrl Can be passed as an option or as an URL param.\n * If present (and if `iss` is not present), it will make the client bypass the\n * authorization\n * @param {String} params.redirectUri (or redirect_uri) redirect_uri Defaults to the current directory (it's index file)\n * @param {String} params.clientId // or \"client_id\"\n * @param {String} params.scope\n * @param {String} params.patientId\n * @param {String} params.encounterId\n * @param {Object} params.fakeTokenResponse\n * @param {Boolean} _noRedirect If true, resolve with the redirect url without\n * trying to redirect to it\n */\nasync function authorize(env, params = {}, _noRedirect)\n{\n // Obtain input\n let {\n iss,\n launch,\n fhirServiceUrl,\n redirect_uri,\n redirectUri,\n scope = \"\",\n clientSecret,\n fakeTokenResponse,\n patientId,\n encounterId,\n client_id,\n clientId\n } = params;\n\n const url = env.getUrl();\n \n // For these three an url param takes precedence over inline option\n iss = url.searchParams.get(\"iss\") || iss; \n fhirServiceUrl = url.searchParams.get(\"fhirServiceUrl\") || fhirServiceUrl;\n launch = url.searchParams.get(\"launch\") || launch;\n\n if (!clientId) {\n clientId = client_id;\n }\n\n if (!redirectUri) {\n redirectUri = redirect_uri;\n }\n\n if (!redirectUri) {\n redirectUri = env.relative(\".\");\n } else {\n redirectUri = env.relative(redirectUri);\n }\n\n const serverUrl = String(iss || fhirServiceUrl || \"\");\n\n // Validate input\n if (!serverUrl) {\n throw new Error(\n \"No server url found. It must be specified as `iss` or as \" +\n \"`fhirServiceUrl` parameter\"\n );\n }\n\n if (iss) {\n debug(\"[authorize] Making %s launch...\", launch ? \"EHR\" : \"standalone\");\n }\n\n // append launch scope if needed\n if (launch && !scope.match(/launch/)) {\n scope += \" launch\";\n }\n\n // prevent inheritance of tokenResponse from parent window\n await env.getStorage().unset(SMART_KEY);\n\n // create initial state\n const stateKey = randomString(16);\n const state = {\n clientId,\n scope,\n redirectUri,\n serverUrl,\n clientSecret,\n tokenResponse: {},\n key: stateKey\n };\n\n // fakeTokenResponse to override stuff (useful in development)\n if (fakeTokenResponse) {\n Object.assign(state.tokenResponse, fakeTokenResponse);\n }\n\n // Fixed patientId (useful in development)\n if (patientId) {\n Object.assign(state.tokenResponse, { patient: patientId });\n }\n\n // Fixed encounterId (useful in development)\n if (encounterId) {\n Object.assign(state.tokenResponse, { encounter: encounterId });\n }\n\n let redirectUrl = redirectUri + \"?state=\" + encodeURIComponent(stateKey);\n\n // bypass oauth if fhirServiceUrl is used (but iss takes precedence)\n if (fhirServiceUrl && !iss) {\n debug(\"[authorize] Making fake launch...\");\n // Storage.set(stateKey, state);\n await env.getStorage().set(stateKey, state);\n if (_noRedirect) {\n return redirectUrl;\n }\n return await env.redirect(redirectUrl);\n }\n\n // Get oauth endpoints and add them to the state\n const extensions = await getSecurityExtensions(serverUrl);\n Object.assign(state, extensions);\n await env.getStorage().set(stateKey, state);\n\n // If this happens to be an open server and there is no authorizeUri\n if (!state.authorizeUri) {\n if (_noRedirect) {\n return redirectUrl;\n }\n return await env.redirect(redirectUrl);\n }\n\n // build the redirect uri\n const redirectParams = [\n \"response_type=code\",\n \"client_id=\" + encodeURIComponent(clientId),\n \"scope=\" + encodeURIComponent(scope),\n \"redirect_uri=\" + encodeURIComponent(redirectUri),\n \"aud=\" + encodeURIComponent(serverUrl),\n \"state=\" + encodeURIComponent(stateKey)\n ];\n\n // also pass this in case of EHR launch\n if (launch) {\n redirectParams.push(\"launch=\" + encodeURIComponent(launch));\n }\n\n redirectUrl = state.authorizeUri + \"?\" + redirectParams.join(\"&\");\n\n if (_noRedirect) {\n return redirectUrl;\n }\n\n return await env.redirect(redirectUrl);\n}\n\n/**\n * The completeAuth function should only be called on the page that represents\n * the redirectUri. We typically land there after a redirect from the\n * authorization server..\n */\nasync function completeAuth(env)\n{\n const url = env.getUrl();\n const Storage = env.getStorage();\n\n let key = url.searchParams.get(\"state\");\n const code = url.searchParams.get(\"code\");\n const authError = url.searchParams.get(\"error\");\n const authErrorDescription = url.searchParams.get(\"error_description\");\n\n if (!key) {\n key = await Storage.get(SMART_KEY);\n }\n\n // Start by checking the url for `error` and `error_description` parameters.\n // This happens when the auth server rejects our authorization attempt. In\n // this case it has no other way to tell us what the error was, other than\n // appending these parameters to the redirect url.\n // From client's point of view, this is not very reliable (because we can't\n // know how we have landed on this page - was it a redirect or was it loaded\n // manually). However, if `completeAuth()` is being called, we can assume\n // that the url comes from the auth server (otherwise the app won't work\n // anyway).\n if (authError || authErrorDescription) {\n let msg = [authError, authErrorDescription].filter(Boolean).join(\": \");\n throw new Error(msg);\n }\n\n debug(\"[completeAuth] key: %s, code: %O\", key, code);\n\n // key might be coming from the page url so it might be empty or missing\n if (!key) {\n throw new Error(\"No 'state' parameter found.\");\n }\n\n // Check if we have a previous state\n let state = await Storage.get(key);\n\n const fullSessionStorageSupport = isBrowser() ?\n getPath(window, \"FHIR.oauth2.settings.fullSessionStorageSupport\") :\n true;\n\n // Do we have to remove the `code` and `state` params from the URL?\n if (isBrowser()) {\n const { settings } = window.FHIR.oauth2;\n const hasState = url.searchParams.has(\"state\");\n\n if (settings.replaceBrowserHistory && (code || hasState)) {\n\n // `code` is the flag that tell us to request an access token.\n // We have to remove it, otherwise the page will authorize on\n // every load!\n if (code) {\n debug(\"[completeAuth] Removing code parameter from the url...\");\n url.searchParams.delete(\"code\");\n }\n\n // If we have `fullSessionStorageSupport` it means we no longer\n // need the `state` key. It will be stored to a well know\n // location - sessionStorage[SMART_KEY]. However, no\n // fullSessionStorageSupport means that this \"well know location\"\n // might be shared between windows and tabs. In this case we\n // MUST keep the `state` url parameter.\n if (hasState && fullSessionStorageSupport) {\n debug(\"[completeAuth] Removing state parameter from the url...\");\n url.searchParams.delete(\"state\");\n }\n\n // If the browser does not support the replaceState method for the\n // History Web API, the \"code\" parameter cannot be removed. As a\n // consequence, the page will (re)authorize on every load. The\n // workaround is to reload the page to new location without those\n // parameters. If that is not acceptable replaceBrowserHistory\n // should be set to false.\n if (window.history.replaceState) {\n window.history.replaceState({}, \"\", url.href);\n }\n else {\n await env.redirect(url.href);\n }\n }\n }\n\n // If the state does not exist, it means the page has been loaded directly.\n if (!state) {\n throw new Error(\"No state found! Please (re)launch the app.\");\n }\n\n // If we have state, then check to see if we got a `code`. If we don't,\n // then this is just a reload. Otherwise, we have to complete the code flow\n if (code) {\n debug(\"[completeAuth] Preparing to exchange the code for access token...\");\n const requestOptions = await buildTokenRequest(code, state);\n debug(\"[completeAuth] Token request options: %O\", requestOptions);\n // The EHR authorization server SHALL return a JSON structure that\n // includes an access token or a message indicating that the\n // authorization request has been denied.\n let tokenResponse = await fetchJSON(state.tokenUri, requestOptions);\n debug(\"[completeAuth] Token response: %O\", tokenResponse);\n if (!tokenResponse.access_token) {\n throw new Error(\"Failed to obtain access token.\");\n }\n // save the tokenResponse so that we don't have to re-authorize on\n // every page reload\n state = { ...state, tokenResponse };\n await Storage.set(key, state);\n if (fullSessionStorageSupport) {\n await Storage.set(SMART_KEY, key);\n }\n debug(\"[completeAuth] Authorization successful!\");\n }\n else {\n debug(\"[completeAuth] %s\", state.tokenResponse.access_token ?\n \"Already authorized\" :\n \"No authorization needed\"\n );\n }\n\n const client = new Client(env, state);\n debug(\"[completeAuth] Created client instance: %O\", client);\n return client;\n}\n\n/**\n * Builds the token request options. Does not make the request, just\n * creates it's configuration and returns it in a Promise.\n */\nfunction buildTokenRequest(code, state)\n{\n const { redirectUri, clientSecret, tokenUri, clientId } = state;\n\n if (!redirectUri) {\n throw new Error(\"Missing state.redirectUri\");\n }\n\n if (!tokenUri) {\n throw new Error(\"Missing state.tokenUri\");\n }\n\n if (!clientId) {\n throw new Error(\"Missing state.clientId\");\n }\n\n const requestOptions = {\n method: \"POST\",\n headers: { \"content-type\": \"application/x-www-form-urlencoded\" },\n body: `code=${code}&grant_type=authorization_code&redirect_uri=${\n encodeURIComponent(redirectUri)}`\n };\n\n // For public apps, authentication is not possible (and thus not required),\n // since a client with no secret cannot prove its identity when it issues a\n // call. (The end-to-end system can still be secure because the client comes\n // from a known, https protected endpoint specified and enforced by the\n // redirect uri.) For confidential apps, an Authorization header using HTTP\n // Basic authentication is required, where the username is the app’s\n // client_id and the password is the app’s client_secret (see example).\n if (clientSecret) {\n requestOptions.headers.Authorization = \"Basic \" + btoa(\n clientId + \":\" + clientSecret\n );\n debug(\n \"[buildTokenRequest] Using state.clientSecret to construct the \" +\n \"authorization header: %s\",\n requestOptions.headers.Authorization\n );\n } else {\n debug(\n \"[buildTokenRequest] No clientSecret found in state. Adding \" +\n \"the client_id to the POST body\"\n );\n requestOptions.body += `&client_id=${encodeURIComponent(clientId)}`;\n }\n\n return requestOptions;\n}\n\nasync function ready(env, onSuccess, onError)\n{\n let task = completeAuth(env);\n if (onSuccess) {\n task = task.then(onSuccess);\n }\n if (onError) {\n task = task.catch(onError);\n }\n return task;\n}\n\nasync function init(env, options)\n{\n const url = env.getUrl();\n const code = url.searchParams.get(\"code\");\n const state = url.searchParams.get(\"state\");\n\n // if `code` and `state` params are present we need to complete the auth flow\n if (code && state) {\n return completeAuth(env);\n }\n\n // Check for existing client state. If state is found, it means a client\n // instance have already been created in this session and we should try to\n // \"revive\" it.\n const storage = env.getStorage();\n const key = state || await storage.get(SMART_KEY);\n const cached = await storage.get(key);\n if (cached) {\n return Promise.resolve(new Client(env, cached));\n }\n\n // Otherwise try to launch\n return authorize(env, options).then(() => {\n // `init` promises a Client but that cannot happen in this case. The\n // browser will be redirected (unload the page and be redirected back\n // to it later and the same init function will be called again). On\n // success, authorize will resolve with the redirect url but we don't\n // want to return that from this promise chain because it is not a\n // Client instance. At the same time, if authorize fails, we do want to\n // pass the error to those waiting for a client instance.\n return new Promise(() => { /* leave it pending!!! */ });\n });\n}\n\nmodule.exports = {\n fetchConformanceStatement,\n fetchWellKnownJson,\n getSecurityExtensions,\n buildTokenRequest,\n authorize,\n completeAuth,\n ready,\n init,\n KEY: SMART_KEY\n};\n","class Storage\n{\n async get(key)\n {\n const value = sessionStorage[key];\n if (value) {\n return JSON.parse(value);\n }\n return null;\n }\n\n async set(key, value)\n {\n sessionStorage[key] = JSON.stringify(value);\n return value;\n }\n\n async unset(key)\n {\n if (key in sessionStorage) {\n delete sessionStorage[key];\n return true;\n }\n return false;\n }\n\n}\n\nmodule.exports = Storage;\n","class ServerStorage\n{\n constructor(request)\n {\n this.request = request;\n }\n\n async get(key)\n {\n return this.request.session[key];\n }\n\n async set(key, value)\n {\n this.request.session[key] = value;\n return value;\n }\n\n async unset(key)\n {\n if (this.request.session.hasOwnProperty(key)) {\n delete this.request.session[key];\n return true;\n }\n return false;\n }\n\n}\n\nmodule.exports = ServerStorage;\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/es/array/find.js","webpack:///./node_modules/core-js/es/object/assign.js","webpack:///./node_modules/core-js/es/promise/index.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/array-methods.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/bind-context.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/entry-unbind.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/function-to-string.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/hide.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/punycode-to-ascii.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/string-at.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/user-agent.js","webpack:///./node_modules/core-js/internals/validate-set-prototype-of-arguments.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/modules/web.url.to-json.js","webpack:///./node_modules/core-js/stable/array/find.js","webpack:///./node_modules/core-js/stable/object/assign.js","webpack:///./node_modules/core-js/stable/promise/index.js","webpack:///./node_modules/core-js/stable/url-search-params/index.js","webpack:///./node_modules/core-js/stable/url/index.js","webpack:///./node_modules/core-js/web/url-search-params.js","webpack:///./node_modules/core-js/web/url.js","webpack:///./node_modules/debug/node_modules/ms/index.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/debug/src/common.js","webpack:///./node_modules/isomorphic-fetch/fetch-npm-browserify.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./src/Client.js","webpack:///./src/HttpError.js","webpack:///./src/adapters/BaseAdapter.js","webpack:///./src/adapters/BrowserAdapter.js","webpack:///./src/adapters/NodeAdapter.js","webpack:///./src/entry.js","webpack:///./src/lib.js","webpack:///./src/polyfills.js","webpack:///./src/smart.js","webpack:///./src/storage/BrowserStorage.js","webpack:///./src/storage/ServerStorage.js"],"names":["require","entryUnbind","module","exports","path","Object","assign","Promise","it","TypeError","String","wellKnownSymbol","create","hide","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","key","Constructor","name","isObject","bind","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","toLength","createProperty","getIteratorMethod","from","arrayLike","O","C","argumentsLength","arguments","length","mapfn","mapping","index","iteratorMethod","result","step","iterator","call","next","done","value","toIndexedObject","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","IndexedObject","arraySpeciesCreate","TYPE","specificCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","self","boundFunction","target","push","isArray","SPECIES","originalArray","constructor","aFunction","fn","a","b","c","apply","anObject","ENTRIES","error","returnMethod","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","toString","slice","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","tag","callee","has","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","source","keys","defineProperty","f","getOwnPropertyDescriptor","i","fails","F","getPrototypeOf","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","bitmap","enumerable","configurable","writable","toPrimitive","propertyKey","$","createIteratorConstructor","setPrototypeOf","redefine","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","getIterationMethod","KIND","defaultIterator","IterablePrototype","values","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","proto","forced","get","global","document","exist","createElement","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","Function","CONSTRUCTOR","METHOD","setGlobal","copyConstructorProperties","isForced","options","TARGET","GLOBAL","STATIC","stat","targetProperty","sourceProperty","descriptor","noTargetGet","sham","shared","variable","namespace","method","classof","check","Math","globalThis","window","hasOwnProperty","DESCRIPTORS","console","documentElement","split","propertyIsEnumerable","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","set","enforce","getterFor","state","type","store","wmget","wmhas","wmset","metadata","STATE","arg","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","BREAK","iterable","iterFn","PrototypeOfArrayIteratorPrototype","arrayIterator","macrotask","userAgent","MutationObserver","WebKitMutationObserver","process","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","notify","toggle","node","promise","parent","domain","exit","enter","nextTick","test","createTextNode","observe","characterData","resolve","then","task","getOwnPropertySymbols","Symbol","url","URL","searchParams","pathname","toJSON","sort","href","URLSearchParams","username","host","hash","nativeFunctionToString","PromiseCapability","reject","$$resolve","$$reject","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","nativeAssign","A","B","symbol","alphabet","forEach","chr","join","T","S","concat","j","defineProperties","enumBugKeys","html","documentCreateElement","IE_PROTO","PROTOTYPE","Empty","createDict","iframe","lt","script","gt","js","iframeDocument","style","display","appendChild","src","contentWindow","open","write","close","Properties","IE8_DOM_DEFINE","nativeDefineProperty","P","Attributes","nativeGetOwnPropertyDescriptor","internalObjectKeys","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","arrayIncludes","arrayIndexOf","names","nativePropertyIsEnumerable","NASHORN_BUG","V","validateSetPrototypeOfArguments","correctSetter","setter","__proto__","getOwnPropertyNamesModule","Reflect","newPromiseCapability","x","promiseCapability","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","floor","stringFromCharCode","fromCharCode","ucs2decode","output","counter","charCodeAt","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","input","inputLength","n","bias","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","encoded","labels","label","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","getBuiltIn","CONSTRUCTOR_NAME","TAG","uid","SHARED","version","mode","copyright","defaultConstructor","toInteger","requireObjectCoercible","pos","CONVERT_TO_STRING","position","size","first","second","charAt","location","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","defer","channel","port","run","id","runner","listener","event","post","postMessage","protocol","args","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","max","min","integer","ceil","argument","isNaN","val","valueOf","postfix","random","navigator","NATIVE_SYMBOL","arrayMethods","addToUnscopables","internalFind","FIND","SKIPS_HOLES","find","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","speciesConstructor","promiseResolve","real","onFinally","isFunction","e","redefineAll","setSpecies","anInstance","iterate","checkCorrectnessOfIteration","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","fetch","versions","v8","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","empty","FakePromise","PromiseRejectionEvent","indexOf","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","ok","reaction","handler","fail","exited","rejection","onHandleUnhandled","onUnhandled","reason","initEvent","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","wrap","r","capability","$promiseResolve","remaining","alreadyCalled","race","codePointAt","STRING_ITERATOR","point","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","USE_NATIVE_URL","hasOwn","getIterator","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","RegExp","percentDecode","sequence","decodeURIComponent","deserialize","replacer","match","serialize","encodeURIComponent","parseSearchParams","query","attributes","attribute","entry","shift","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","Iterator","params","URLSearchParamsConstructor","init","entryIterator","updateURL","URLSearchParamsPrototype","append","splice","getAll","found","callback","getState","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseHost","codePoints","parseIPv6","isSpecial","percentEncode","C0ControlPercentEncodeSet","parseIPv4","parts","partsLength","numbers","part","R","ipv4","pop","parseInt","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","number","swaps","swap","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","specialSchemes","ftp","file","gopher","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","buffer","seenAt","seenBracket","seenPasswordToken","bufferCodePoints","failure","fragment","codePoint","encodedCodePoints","URLConstructor","urlString","baseState","searchParamsState","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","s","h","d","w","y","parse","long","fmtLong","fmtShort","Error","JSON","stringify","str","parseFloat","ms","msAbs","abs","round","plural","isPlural","log","formatArgs","save","load","useColors","storage","localstorage","colors","__nwjs","WebkitAppearance","firebug","exception","table","$1","humanize","diff","color","lastC","namespaces","setItem","removeItem","getItem","env","DEBUG","localStorage","formatters","v","message","setup","createDebug","debug","default","coerce","disable","enable","enabled","instances","skips","selectColor","prevTime","curr","Number","Date","prev","format","formatter","logFn","destroy","extend","newDebug","len","substr","instance","map","toNamespace","regexp","substring","stack","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","clearTimeout","runTimeout","fun","runClearTimeout","marker","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","Item","array","title","browser","argv","noop","on","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","runtime","regeneratorRuntime","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","obj","err","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","displayName","defineIteratorMethods","isGeneratorFunction","genFun","ctor","mark","awrap","__await","AsyncIterator","invoke","record","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","async","iter","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","reverse","skipTempReset","stop","rootEntry","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","g","webpackPolyfill","deprecate","paths","children","l","support","Blob","formData","arrayBuffer","isDataView","DataView","isPrototypeOf","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","normalizeValue","iteratorFor","items","Headers","headers","header","oldValue","thisArg","consumed","body","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","bufferClone","byteLength","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","_bodyArrayBuffer","rejected","text","decode","json","normalizeMethod","upcased","toUpperCase","Request","credentials","signal","referrer","clone","form","trim","parseHeaders","rawHeaders","preProcessedHeaders","line","Response","bodyInit","status","statusText","response","redirectStatuses","redirect","DOMException","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","removeEventListener","send","polyfill","fetchJSON","absolute","getPath","setPath","jwtDecode","makeArray","responseToJSON","btoa","byCode","byCodes","units","FhirClient","environment","serverUrl","client","patient","getPatientId","read","encounter","getEncounterId","user","fhirUser","getFhirUser","getUserId","resourceType","getUserType","fhir","connect","fhirJs","baseUrl","accessToken","auth","token","pass","api","patientId","tokenResponse","scope","authorizeUri","idToken","id_token","hasOpenid","hasProfile","hasFhirUser","getIdToken","profile","requestOptions","fhirOptions","_resolvedRefs","authHeader","getAuthorizationHeader","Authorization","resolveReferences","filter","Boolean","graph","pageLimit","hasPageCallback","onPage","catch","useRefreshToken","hasRefreshToken","refresh","getRef","refId","sub","item","ref","reference","resource","links","link","relation","nextPage","references","refreshToken","tokenUri","scopes","access_token","refresh_token","finally","getStorage","observations","property","HttpError","statusCode","smart","Client","BaseAdapter","getUrl","ready","authorize","BrowserStorage","BrowserAdapter","_url","to","_storage","getSmartApi","Adapter","ServerStorage","NodeAdapter","req","orig","originalUrl","writeHead","end","res","FHIR","oauth2","settings","replaceBrowserHistory","fullSessionStorageSupport","isBrowser","checkResponse","resp","humanizeError","msg","error_description","stripTrailingSlash","reduce","out","idx","arr","randomString","strLength","charSet","atob","Buffer","payload","ret","handleCodeableConcept","concept","observation","coding","o","bank","codes","ensureNumerical","cm","kg","any","pq","SMART_KEY","fetchConformanceStatement","ex","fetchWellKnownJson","getSecurityExtensions","meta","authorization_endpoint","token_endpoint","registrationUri","registration_endpoint","nsUri","extensions","extension","ext","valueUri","_noRedirect","iss","launch","fhirServiceUrl","redirect_uri","redirectUri","clientSecret","fakeTokenResponse","encounterId","client_id","clientId","relative","unset","stateKey","redirectUrl","redirectParams","completeAuth","Storage","authError","authErrorDescription","hasState","delete","history","replaceState","buildTokenRequest","onSuccess","onError","cached","sessionStorage","session"],"mappings":"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","file":"fhir-client.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/entry.js\");\n","require('../../modules/es.array.find');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'find');\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar hide = require('../internals/hide');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n hide(ArrayPrototype, UNSCOPABLES, create(null));\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar bind = require('../internals/bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iteratorMethod = getIteratorMethod(O);\n var length, result, step, iterator;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n result = new C();\n for (;!(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping\n ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)\n : step.value\n );\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\n// false -> Array#indexOf\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n// true -> Array#includes\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var bind = require('../internals/bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\n// 0 -> Array#forEach\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n// 1 -> Array#map\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// 2 -> Array#filter\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// 3 -> Array#some\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n// 4 -> Array#every\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n// 5 -> Array#find\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n// 6 -> Array#findIndex\n// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\nmodule.exports = function (TYPE, specificCreate) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = specificCreate || arraySpeciesCreate;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: target.push(value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n hide(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n hide(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar exist = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return exist ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/bind-context');\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n hide(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var shared = require('../internals/shared');\n\nmodule.exports = shared('native-function-to-string', Function.toString);\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","var O = 'object';\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == O && globalThis) ||\n check(typeof window == O && window) ||\n check(typeof self == O && self) ||\n check(typeof global == O && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var global = require('../internals/global');\n\nvar document = global.document;\n\nmodule.exports = document && document.documentElement;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar hide = require('../internals/hide');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n hide(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar BREAK = {};\n\nvar exports = module.exports = function (iterable, fn, that, ENTRIES, ITERATOR) {\n var boundFunction = bind(fn, that, ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, step;\n\n if (ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = ENTRIES ? boundFunction(anObject(step = iterable[index])[0], step[1]) : boundFunction(iterable[index]);\n if (result === BREAK) return BREAK;\n } return;\n }\n iterator = iterFn.call(iterable);\n }\n\n while (!(step = iterator.next()).done) {\n if (callWithSafeIterationClosing(iterator, boundFunction, step.value, ENTRIES) === BREAK) return BREAK;\n }\n};\n\nexports.BREAK = BREAK;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar userAgent = require('../internals/user-agent');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?e=1', 'http://a');\n var searchParams = url.searchParams;\n url.pathname = 'c%20d';\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?e=1'\n || searchParams.get('e') !== '1'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1';\n});\n","var global = require('../internals/global');\nvar nativeFunctionToString = require('../internals/function-to-string');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap));\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\n\n// 19.1.2.1 Object.assign(target, source, ...)\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !nativeAssign || fails(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var length = enumBugKeys.length;\n var lt = '<';\n var script = 'script';\n var gt = '>';\n var js = 'java' + script + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(js);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n return createDict();\n};\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var i = 0;\n var key;\n while (length > i) definePropertyModule.f(O, key = keys[i++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayIncludes = require('../internals/array-includes');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar arrayIndexOf = arrayIncludes(false);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var validateSetPrototypeOfArguments = require('../internals/validate-set-prototype-of-arguments');\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var correctSetter = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n correctSetter = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n validateSetPrototypeOfArguments(O, proto);\n if (correctSetter) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar classof = require('../internals/classof');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = String(test) !== '[object z]' ? function toString() {\n return '[object ' + classof(this) + ']';\n} : test.toString;\n","var global = require('../internals/global');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar Reflect = global.Reflect;\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","module.exports = require('../internals/global');\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) {\n break;\n }\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nshared('inspectSource', function (it) {\n return nativeFunctionToString.call(it);\n});\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else hide(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar hide = require('../internals/hide');\n\nmodule.exports = function (key, value) {\n try {\n hide(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var C = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n if (DESCRIPTORS && C && !C[SPECIES]) defineProperty(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\nvar IS_PURE = require('../internals/is-pure');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.1.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// CONVERT_TO_STRING: true -> String#at\n// CONVERT_TO_STRING: false -> String#codePointAt\nmodule.exports = function (that, pos, CONVERT_TO_STRING) {\n var S = String(requireObjectCoercible(that));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + postfix).toString(36));\n};\n","var global = require('../internals/global');\n\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\n\nmodule.exports = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) {\n throw TypeError(\"Can't set \" + String(proto) + ' as a prototype');\n }\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar Symbol = global.Symbol;\nvar store = shared('wks');\n\nmodule.exports = function (name) {\n return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar arrayMethods = require('../internals/array-methods');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar internalFind = arrayMethods(5);\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return internalFind(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\nvar ObjectPrototype = Object.prototype;\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (toString !== ObjectPrototype.toString) {\n redefine(ObjectPrototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar userAgent = require('../internals/user-agent');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = global[PROMISE];\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = global.fetch;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper;\n\nvar FORCED = isForced(PROMISE, function () {\n // correct subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var empty = function () { /* empty */ };\n var FakePromise = (promise.constructor = {})[SPECIES] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !((IS_NODE || typeof PromiseRejectionEvent == 'function')\n && (!IS_PURE || promise['finally'])\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n // wrap fetch result\n if (!IS_PURE && typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = path[PROMISE];\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar codePointAt = require('../internals/string-at');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = codePointAt(string, index, true);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar hide = require('../internals/hide');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n hide(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) hide(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n hide(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","'use strict';\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/bind-context');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var i = 0;\n var attribute, entry;\n while (i < attributes.length) {\n attribute = attributes[i++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n } return result;\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, step, entryIterator, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: null,\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n while (!(step = iterator.next()).done) {\n entryIterator = getIterator(anObject(step.value));\n if (\n (first = entryIterator.next()).done ||\n (second = entryIterator.next()).done ||\n !entryIterator.next().done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n if (state.updateURL) state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var i = 0;\n while (i < entries.length) {\n if (entries[i].key === key) entries.splice(i, 1);\n else i++;\n }\n if (state.updateURL) state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var i = 0;\n for (; i < entries.length; i++) if (entries[i].key === key) return entries[i].value;\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var i = 0;\n for (; i < entries.length; i++) if (entries[i].key === key) result.push(entries[i].value);\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var i = 0;\n while (i < entries.length) if (entries[i++].key === key) return true;\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var i = 0;\n var entry;\n for (; i < entries.length; i++) {\n entry = entries[i];\n if (entry.key === key) {\n if (found) entries.splice(i--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n if (state.updateURL) state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, i, j;\n entries.length = 0;\n for (i = 0; i < slice.length; i++) {\n entry = slice[i];\n for (j = 0; j < i; j++) if (entries[j].key > entry.key) {\n entries.splice(j, 0, entry);\n break;\n }\n if (j === i) entries.push(entry);\n }\n if (state.updateURL) state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var i = 0;\n var entry;\n while (i < entries.length) {\n entry = entries[i++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var i = 0;\n var entry;\n while (i < entries.length) {\n entry = entries[i++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codePointAt = require('../internals/string-at');\nvar toASCII = require('../internals/punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+\\-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, i;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (i = 0; i < codePoints.length; i++) result += percentEncode(codePoints[i], C0ControlPercentEncodeSet);\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, i, part, R, n, ipv4;\n if (parts[parts.length - 1] == '') {\n if (parts.length) parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (i = 0; i < partsLength; i++) {\n part = parts[i];\n if (part == '') return input;\n R = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n R = HEX_START.test(part) ? 16 : 8;\n part = part.slice(R == 8 ? 1 : 2);\n }\n if (part === '') {\n n = 0;\n } else {\n if (!(R == 10 ? DEC : R == 8 ? OCT : HEX).test(part)) return input;\n n = parseInt(part, R);\n }\n numbers.push(n);\n }\n for (i = 0; i < partsLength; i++) {\n n = numbers[i];\n if (i == partsLength - 1) {\n if (n >= pow(256, 5 - partsLength)) return null;\n } else if (n > 255) return null;\n }\n ipv4 = numbers.pop();\n for (i = 0; i < numbers.length; i++) {\n ipv4 += numbers[i] * pow(256, 3 - i);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var i = 0;\n for (; i < 8; i++) {\n if (ipv6[i] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = i;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, i, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (i = 0; i < 4; i++) {\n result.unshift(host % 256);\n host = Math.floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (i = 0; i < 8; i++) {\n if (ignore0 && host[i] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === i) {\n result += i ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[i].toString(16);\n if (i < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codePointAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride) {\n if (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n ) return;\n }\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\n});\n","module.exports = require('../../es/array/find');\n","module.exports = require('../../es/object/assign');\n","module.exports = require('../../es/promise');\n","module.exports = require('../../web/url-search-params');\n","module.exports = require('../../web/url');\n","require('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URLSearchParams;\n","require('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\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' && 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?\\.?\\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","/* 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/**\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","// 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","// 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 * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * https://raw.github.com/facebook/regenerator/master/LICENSE file. An\n * additional grant of patent rights can be found in the PATENTS file in\n * the same directory.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n if (typeof global.process === \"object\" && global.process.domain) {\n invoke = global.process.domain.bind(invoke);\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // Among the various tricks for obtaining a reference to the global\n // object, this seems to be the most reliable technique that does not\n // use indirect eval (which violates Content Security Policy).\n typeof global === \"object\" ? global :\n typeof window === \"object\" ? window :\n typeof self === \"object\" ? self : this\n);\n","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","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","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","const {\n fetchJSON,\n absolute,\n debug,\n getPath,\n setPath,\n jwtDecode,\n makeArray,\n request,\n responseToJSON,\n btoa,\n byCode,\n byCodes,\n units\n} = require(\"./lib\");\n\nclass FhirClient\n{\n /**\n * @param {Object} state \n * @param {String} state.clientId\n * @param {String} state.clientSecret\n * @param {String} state.key\n * @param {String} state.scope\n * @param {String} state.serverUrl\n * @param {String} state.tokenUri\n * @param {String} state.username\n * @param {String} state.password\n * @param {Object} state.tokenResponse\n * @param {String} state.tokenResponse.access_token\n * @param {String} state.tokenResponse.encounter\n * @param {Number} state.tokenResponse.expires_in\n * @param {Boolean} state.tokenResponse.need_patient_banner\n * @param {String} state.tokenResponse.patient\n * @param {String} state.tokenResponse.refresh_token\n * @param {String} state.tokenResponse.scope\n * @param {String} state.tokenResponse.smart_style_url\n * @param {String} state.tokenResponse.token_type\n */\n constructor(environment, state)\n {\n // Accept string as argument\n if (typeof state == \"string\") {\n state = { serverUrl: state };\n }\n\n // Valid serverUrl is required!\n if (!state.serverUrl || !state.serverUrl.match(/https?:\\/\\/.+/)) {\n throw new Error(\n \"A `serverUrl` option is required and must begin with 'http(s)'\"\n );\n }\n\n this.state = state;\n this.environment = environment;\n\n const client = this;\n\n // patient api ---------------------------------------------------------\n this.patient = {\n get id() { return client.getPatientId(); },\n read: () => {\n const id = this.patient.id;\n return id ?\n this.request(`Patient/${id}`) :\n Promise.reject(new Error(\"Patient is not available\"));\n }\n };\n\n // encounter api -------------------------------------------------------\n this.encounter = {\n get id() { return client.getEncounterId(); },\n read: () => {\n const id = this.encounter.id;\n return id ?\n this.request(`Encounter/${id}`) :\n Promise.reject(new Error(\"Encounter is not available\"));\n }\n };\n\n // user api ------------------------------------------------------------\n this.user = {\n get fhirUser() { return client.getFhirUser(); },\n get id() { return client.getUserId(); },\n get resourceType() { return client.getUserType(); },\n read: () => {\n const fhirUser = this.user.fhirUser;\n return fhirUser ?\n this.request(fhirUser) :\n Promise.reject(new Error(\"User is not available\"));\n }\n };\n\n // fhir.js api (attached automatically in browser)\n // ---------------------------------------------------------------------\n if (environment.fhir) {\n this.connect(environment.fhir);\n }\n }\n\n connect(fhirJs)\n {\n if (typeof fhirJs == \"function\") {\n const options = {\n baseUrl: this.state.serverUrl.replace(/\\/$/, \"\")\n };\n\n const accessToken = getPath(this, \"state.tokenResponse.access_token\");\n if (accessToken) {\n options.auth = { token: accessToken };\n }\n else {\n const { username, password } = this.state;\n if (username && password) {\n options.auth = {\n user: username,\n pass: password\n };\n }\n }\n this.api = fhirJs(options);\n\n const patientId = getPath(this, \"state.tokenResponse.patient\");\n if (patientId) {\n this.patient.api = fhirJs({\n ...options,\n patient: patientId\n });\n }\n }\n }\n\n /**\n * Returns the ID of the selected patient or null. You should have requested\n * \"launch/patient\" scope. Otherwise this will return null.\n */\n getPatientId()\n {\n const tokenResponse = this.state.tokenResponse;\n if (tokenResponse) {\n // We have been authorized against this server but we don't know\n // the patient. This should be a scope issue.\n if (!tokenResponse.patient) {\n if (!(this.state.scope || \"\").match(/\\blaunch(\\/patient)?\\b/)) {\n debug(\n \"You are trying to get the ID of the selected patient \" +\n \"but you have not used the right scopes. Please add \" +\n \"'launch' or 'launch/patient' to the scopes you are \" +\n \"requesting and try again.\"\n );\n }\n else {\n // The server should have returned the patient!\n debug(\n \"The ID of the selected patient is not available. \" +\n \"Please check if your server supports that.\"\n );\n }\n return null;\n }\n return tokenResponse.patient;\n }\n\n if (this.state.authorizeUri) {\n debug(\n \"You are trying to get the ID of the selected patient \" +\n \"but your app is not authorized yet.\"\n );\n }\n else {\n debug(\n \"You are trying to get the ID of the selected patient \" +\n \"but your app needs to be authorized first. Please don't use \" +\n \"open fhir servers if you need to access launch context items \" +\n \"like the selected patient.\"\n );\n }\n return null;\n }\n\n /**\n * Returns the ID of the selected encounter or null. You should have\n * requested \"launch/encounter\" scope. Otherwise this will return null.\n * Note that not all servers support the \"launch/encounter\" scope so this\n * will be null if they don't.\n */\n getEncounterId()\n {\n const tokenResponse = this.state.tokenResponse;\n if (tokenResponse) {\n // We have been authorized against this server but we don't know\n // the encounter. This should be a scope issue.\n if (!tokenResponse.encounter) {\n if (!(this.state.scope || \"\").match(/\\blaunch(\\/encounter)?\\b/)) {\n debug(\n \"You are trying to get the ID of the selected encounter \" +\n \"but you have not used the right scopes. Please add \" +\n \"'launch' or 'launch/encounter' to the scopes you \" +\n \"are requesting and try again.\"\n );\n }\n else {\n // The server should have returned the patient!\n debug(\n \"The ID of the selected encounter is not available. \" +\n \"Please check if your server supports that, and that \" +\n \"the selected patient has any recorded encounters.\"\n );\n }\n return null;\n }\n return tokenResponse.encounter;\n }\n\n if (this.state.authorizeUri) {\n debug(\n \"You are trying to get the ID of the selected encounter \" +\n \"but your app is not authorized yet.\"\n );\n }\n else {\n debug(\n \"You are trying to get the ID of the selected encounter \" +\n \"but your app needs to be authorized first. Please don't use \" +\n \"open fhir servers if you need to access launch context items \" +\n \"like the selected encounter.\"\n );\n }\n return null;\n }\n\n /**\n * Returns the (decoded) id_token if any. You need to request \"openid\" and\n * \"profile\" scopes if you need to receive an id_token (if you need to know\n * who the logged-in user is).\n */\n getIdToken()\n {\n const tokenResponse = this.state.tokenResponse;\n if (tokenResponse) {\n const idToken = tokenResponse.id_token;\n const scope = this.state.scope || \"\";\n\n // We have been authorized against this server but we don't have\n // the id_token. This should be a scope issue.\n if (!idToken) {\n const hasOpenid = scope.match(/\\bopenid\\b/);\n const hasProfile = scope.match(/\\bprofile\\b/);\n const hasFhirUser = scope.match(/\\bfhirUser\\b/);\n if (!hasOpenid || !(hasFhirUser || hasProfile)) {\n debug(\n \"You are trying to get the id_token but you are not \" +\n \"using the right scopes. Please add 'openid' and \" +\n \"'fhirUser' or 'profile' to the scopes you are \" +\n \"requesting and try again.\"\n );\n }\n else {\n // The server should have returned the id_token!\n debug(\n \"The id_token is not available. Please check if your \" +\n \"server supports that.\"\n );\n }\n return null;\n }\n return jwtDecode(idToken);\n }\n if (this.state.authorizeUri) {\n debug(\n \"You are trying to get the id_token \" +\n \"but your app is not authorized yet.\"\n );\n }\n else {\n debug(\n \"You are trying to get the id_token but your app needs to be \" +\n \"authorized first. Please don't use open fhir servers if you \" +\n \"need to access launch context items like the id_token.\"\n );\n }\n return null;\n }\n\n /**\n * Returns the profile of the logged_in user (if any). This is a string\n * having the following shape \"{user type}/{user id}\". For example:\n * \"Practitioner/abc\" or \"Patient/xyz\".\n */\n getFhirUser()\n {\n const idToken = this.getIdToken();\n if (idToken) {\n return idToken.profile;\n }\n return null;\n }\n\n /**\n * Returns the user ID or null.\n */\n getUserId()\n {\n const profile = this.getFhirUser();\n if (profile) {\n return profile.split(\"/\")[1];\n }\n return null;\n }\n\n /**\n * Returns the type of the logged-in user or null. The result can be\n * \"Practitioner\", \"Patient\" or \"RelatedPerson\".\n */\n getUserType()\n {\n const profile = this.getFhirUser();\n if (profile) {\n return profile.split(\"/\")[0];\n }\n return null;\n }\n\n getAuthorizationHeader()\n {\n const accessToken = getPath(this, \"state.tokenResponse.access_token\");\n if (accessToken) {\n return \"Bearer \" + accessToken;\n }\n const { username, password } = this.state;\n if (username && password) {\n return \"Basic \" + btoa(username + \":\" + password);\n }\n return null;\n }\n\n /**\n * @param {Object|String} requestOptions Can be a string URL (relative to\n * the serviceUrl), or an object which will be passed to fetch()\n * @param {Object} fhirOptions Additional options to control the behavior\n * @param {Boolean} fhirOptions.useRefreshToken If false, the request will\n * fail if your access token is expired. If true (default), when you receive\n * a 401 response and you have a refresh token, the client will attempt to\n * re-authorize and try again.\n * @param {String|String[]} fhirOptions.resolveReferences One or more\n * references to resolve.\n * @param {Function} fhirOptions.onPage\n * @param {Boolean} fhirOptions.graph Ignored if `fhirOptions.resolveReferences`\n * is not used. If you use `fhirOptions.resolveReferences` and set \n * `fhirOptions.graph` to false, the result promise will be resolved with an\n * object like `{ data: Bundle, references: [ ...Resource ] }`.\n * If you set `fhirOptions.graph` to true, the resolved references will be\n * mounted in place and you just get the data property: `{ data: Bundle }`.\n */\n request(requestOptions, fhirOptions = {}, _resolvedRefs = {})\n {\n if (!requestOptions) {\n throw new Error(\"client.request requires an url or request options as argument\");\n }\n\n // url -----------------------------------------------------------------\n let url;\n if (typeof requestOptions == \"string\" || requestOptions instanceof URL) {\n url = String(requestOptions);\n requestOptions = {};\n }\n else {\n url = String(requestOptions.url);\n }\n \n url = absolute(url, this.state.serverUrl);\n\n // authentication ------------------------------------------------------\n const authHeader = this.getAuthorizationHeader();\n if (authHeader) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Authorization: authHeader\n };\n }\n\n // fhirOptions.resolveReferences ---------------------------------------\n if (!Array.isArray(fhirOptions.resolveReferences)) {\n fhirOptions.resolveReferences = [fhirOptions.resolveReferences];\n }\n fhirOptions.resolveReferences = fhirOptions.resolveReferences.filter(Boolean).map(String);\n\n // fhirOptions.graph ---------------------------------------------------\n fhirOptions.graph = (fhirOptions.graph !== false);\n\n // fhirOptions.pageLimit -----------------------------------------------\n if (!fhirOptions.pageLimit && fhirOptions.pageLimit !== 0) {\n fhirOptions.pageLimit = 1;\n }\n\n const hasPageCallback = typeof fhirOptions.onPage == \"function\";\n\n debug(\"[client.request] Request url: %s, options: %O, fhirOptions: %O\", url, requestOptions, fhirOptions);\n return fetchJSON(url, requestOptions)\n\n // Automatic re-auth via refresh token -----------------------------\n .catch(error => {\n debug(\"failed %o\", error);\n if (error.status == 401 && fhirOptions.useRefreshToken !== false) {\n const hasRefreshToken = getPath(this, \"state.tokenResponse.refresh_token\");\n if (hasRefreshToken) {\n return this.refresh().then(() => this.request(\n { ...requestOptions, url },\n fhirOptions,\n _resolvedRefs\n ));\n }\n }\n throw error;\n })\n\n // Resolve References ----------------------------------------------\n .then(async (data) => {\n\n /**\n * Gets single reference by id. Caches the result in _resolvedRefs\n * @param {String} refId \n */\n const getRef = refId => {\n let sub = _resolvedRefs[refId];\n if (!sub) {\n return this.request(refId).then(sub => {\n _resolvedRefs[refId] = sub;\n return sub;\n });\n }\n return sub;\n };\n\n /**\n * Resolve all refs (specified in fhirOptions.resolveReferences)\n * in the given resource.\n * @param {Object} obj FHIR Resource \n */\n const resolve = obj => {\n return Promise.all(fhirOptions.resolveReferences.map(path => {\n const node = getPath(obj, path);\n if (node) {\n const isArray = Array.isArray(node);\n return Promise.all(makeArray(node).map((item, i) => {\n const ref = item.reference;\n if (ref) {\n return getRef(ref).then(sub => {\n if (fhirOptions.graph) {\n if (isArray) {\n setPath(obj, `${path}.${i}`, sub);\n } else {\n setPath(obj, path, sub);\n }\n }\n });\n }\n }));\n }\n }));\n };\n\n if (data && data.resourceType == \"Bundle\") {\n await Promise.all((data.entry || []).map(item => resolve(item.resource)));\n } else {\n await resolve(data);\n }\n\n return data;\n })\n\n // Pagination ------------------------------------------------------\n .then(async (data) => {\n if (data && data.resourceType == \"Bundle\") {\n if (hasPageCallback) {\n await fhirOptions.onPage(data, { ..._resolvedRefs });\n }\n\n if (--fhirOptions.pageLimit) {\n const links = data.link || [];\n const next = links.find(l => l.relation == \"next\");\n data = makeArray(data);\n // console.log(\"===>\", data);\n if (next && next.url) {\n const nextPage = await this.request(\n next.url,\n fhirOptions,\n _resolvedRefs\n );\n\n if (hasPageCallback) {\n return null;\n }\n // console.log(\"===>\", nextPage);\n if (fhirOptions.resolveReferences.length) {\n Object.assign(_resolvedRefs, nextPage.references);\n // console.log(\"===>\", nextPage);\n return data.concat(makeArray(nextPage.data || nextPage));\n }\n return data.concat(makeArray(nextPage));\n }\n }\n }\n return data;\n })\n\n // Finalize --------------------------------------------------------\n .then(data => {\n if (fhirOptions.graph) {\n _resolvedRefs = {};\n }\n else if (!hasPageCallback && fhirOptions.resolveReferences.length) {\n return {\n data,\n references: _resolvedRefs\n };\n }\n return data;\n });\n }\n\n /**\n * Use the refresh token to obtain new access token. If the refresh token is\n * expired (or this fails for any other reason) it will be deleted from the\n * state, so that we don't enter into loops trying to re-authorize.\n */\n refresh()\n {\n debug(\"[refresh] Attempting to refresh using a refresh_token...\");\n\n const refreshToken = getPath(this, \"state.tokenResponse.refresh_token\");\n if (!refreshToken) {\n throw new Error(\"Unable to refresh. No refresh_token found in state\");\n }\n\n const tokenUri = this.state.tokenUri;\n if (!tokenUri) {\n throw new Error(\"Unable to refresh. No tokenUri found in storage\");\n }\n\n const scopes = getPath(this, \"state.tokenResponse.scope\") || \"\";\n if (scopes.indexOf(\"online_access\") == -1) {\n throw new Error(\"Trying to refresh but no `online_access` scope was granted\");\n }\n\n return request(tokenUri, {\n mode : \"cors\",\n method : \"POST\",\n headers: {\n \"content-type\": \"application/x-www-form-urlencoded\"\n },\n body: `grant_type=refresh_token&refresh_token=${encodeURIComponent(refreshToken)}`\n }).then(responseToJSON).then(data => {\n if (!data.access_token) {\n throw new Error(\"No access token received\");\n }\n return data;\n }).then(data => {\n debug(\"[refresh] Received new access token %O\", data);\n Object.assign(this.state.tokenResponse, data);\n return this.state;\n }).catch(error => {\n debug(\"[refresh] Deleting the expired or invalid refresh token\");\n delete this.state.tokenResponse.refresh_token;\n throw error;\n }).finally(() => {\n this.environment.getStorage().set(this.state.key, this.state);\n });\n }\n\n // utils -------------------------------------------------------------------\n byCode(observations, property) {\n return byCode(observations, property);\n }\n\n byCodes(observations, property) {\n return byCodes(observations, property);\n }\n\n get units() {\n return units;\n }\n\n getPath(object, path) {\n return getPath(object, path);\n }\n}\n\nmodule.exports = FhirClient;\n","\nclass HttpError extends Error\n{\n constructor(message, statusCode, statusText) {\n super(message);\n this.message = message;\n this.name = \"HttpError\";\n this.statusCode = statusCode;\n this.status = statusCode;\n this.statusText = statusText;\n }\n\n toJSON() {\n return {\n name : this.name,\n statusCode: this.statusCode,\n status : this.status,\n statusText: this.statusText,\n message : this.message\n };\n }\n\n static create(failure) {\n // start with generic values\n var status = 0;\n var statusText = \"Error\";\n var message = \"Unknown error\";\n\n if (failure) {\n if (typeof failure == \"object\") {\n if (failure instanceof Error) {\n message = failure.message;\n // console.log(failure.stack);\n }\n else if (failure.error) {\n status = failure.error.status || 0;\n statusText = failure.error.statusText || \"Error\";\n if (failure.error.responseText) {\n message = failure.error.responseText;\n }\n }\n }\n else if (typeof failure == \"string\") {\n message = failure;\n }\n }\n\n return new HttpError(message, status, statusText);\n }\n}\n\nmodule.exports = HttpError;\n","const smart = require(\"../smart\");\nconst Client = require(\"../Client\");\n\n/**\n * This is the abstract base class that adapters must inherit. It just a\n * collection of environment-specific methods that subclasses have to implement.\n */\nclass BaseAdapter\n{\n /**\n * Given the current environment, this method must return the current url\n * as URL instance\n * @returns {URL}\n */\n getUrl() {}\n\n /**\n * Given the current environment, this method must redirect to the given\n * path\n * @param {String} to The path to redirect to\n * @returns {*}\n */\n redirect(/*to*/) {}\n\n /**\n * This must return a Storage object\n * @returns {Storage}\n */\n getStorage() {}\n\n /**\n * Given a relative path, compute and return the full url, assuming that it\n * is relative to the current location\n * @param {String} path The path to convert to absolute\n * @returns {String}\n */\n relative(path)\n {\n return new URL(path, this.getUrl().href).href;\n }\n\n /**\n * Creates and returns adapter-aware SMART api. Not that while the shape of\n * the returned object is well known, the arguments to this function are not.\n * Those who override this method are free to require any environment-specific\n * arguments. For example in node we will need a request, a response and\n * optionally a storage or storage factory function.\n */\n getSmartApi()\n {\n return {\n ready : (...args) => smart.ready(this, ...args),\n authorize: (...args) => smart.authorize(this, ...args),\n init : (...args) => smart.init(this, ...args),\n client : (...args) => new Client(this, ...args),\n };\n }\n}\n\nmodule.exports = BaseAdapter;\n","/* global fhir */\nrequire(\"../polyfills\");\nconst BrowserStorage = require(\"../storage/BrowserStorage\");\nconst BaseAdapter = require(\"./BaseAdapter\");\n\n/**\n * Browser Adapter\n */\nclass BrowserAdapter extends BaseAdapter\n{\n /**\n * In browsers we need to be able to (dynamically) check if fhir.js is\n * included in the page. If it is, it should have created a \"fhir\" variable\n * in the global scope.\n */\n get fhir()\n {\n return typeof fhir === \"function\" ? fhir : null;\n }\n\n /**\n * Given the current environment, this method must return the current url\n * as URL instance\n * @returns {URL}\n */\n getUrl()\n {\n if (!this._url) {\n this._url = new URL(location + \"\");\n }\n return this._url;\n }\n\n /**\n * Given the current environment, this method must redirect to the given\n * path\n * @param {String} to The path to redirect to\n * @returns {void}\n */\n redirect(to)\n {\n location.href = to;\n }\n\n /**\n * Returns a BrowserStorage object which is just a wrapper around\n * sessionStorage\n * @returns {BrowserStorage}\n */\n getStorage()\n {\n if (!this._storage) {\n this._storage = new BrowserStorage();\n }\n return this._storage;\n }\n\n static smart()\n {\n return new BrowserAdapter().getSmartApi();\n }\n}\n\nmodule.exports = BrowserAdapter.smart;\nmodule.exports.Adapter = BrowserAdapter;\n","require(\"isomorphic-fetch\");\nconst ServerStorage = require(\"../storage/ServerStorage\");\nconst BaseAdapter = require(\"./BaseAdapter\");\n\n/**\n * Node Adapter - works with native NodeJS and with Express\n */\nclass NodeAdapter extends BaseAdapter\n{\n /**\n * @param {Object} options \n * @param {Object} options.request required\n * @param {Object} options.response required\n * @param {Object} options.storage optional\n */\n constructor(options)\n {\n super();\n this.options = options;\n }\n\n /**\n * Given the current environment, this method must return the current url\n * as URL instance. In Node we might be behind a proxy!\n * @returns {URL}\n */\n getUrl()\n {\n const req = this.options.request;\n\n let host = req.headers.host;\n if (req.headers[\"x-forwarded-host\"]) {\n host = req.headers[\"x-forwarded-host\"];\n if (req.headers[\"x-forwarded-port\"]) {\n host += \":\" + req.headers[\"x-forwarded-port\"];\n }\n }\n\n const protocol = req.headers[\"x-forwarded-proto\"] || req.protocol || \"http\";\n const orig = req.originalUrl || req.headers[\"x-original-uri\"] || req.url;\n return new URL(orig, protocol + \"://\" + host);\n }\n\n /**\n * Given the current environment, this method must redirect to the given\n * path\n * @param {String} location The path to redirect to\n * @returns {void}\n */\n redirect(location)\n {\n this.options.response.writeHead(302, { location });\n this.options.response.end();\n }\n\n /**\n * Returns a ServerStorage instance\n * @returns {ServerStorage}\n */\n getStorage()\n {\n if (!this._storage) {\n if (this.options.storage) {\n if (typeof this.options.storage == \"function\") {\n this._storage = this.options.storage(this.options);\n } else {\n this._storage = this.options.storage;\n }\n } else {\n this._storage = new ServerStorage(this.options.request);\n }\n }\n return this._storage;\n }\n\n /**\n * This is the static entry point and MUST be provided\n * @param {Object} req The http request \n * @param {Object} res The http response\n * @param {Object|Function} storage Custom storage instance or a storage\n * factory function\n */\n static smart(req, res, storage)\n {\n return new NodeAdapter({\n request: req,\n response: res,\n storage\n }).getSmartApi();\n }\n}\n\nmodule.exports = NodeAdapter.smart;\nmodule.exports.Adapter = NodeAdapter;\n","// In Browsers we create an adapter, get the SMART api from it and build the\n// global FHIR object\nif (typeof window == \"object\") {\n const smart = require(\"./adapters/BrowserAdapter\");\n console.log(\"smart:\", smart, smart.Adapter);\n const { ready, authorize, init, client } = smart();\n\n // $lab:coverage:off$\n const FHIR = {\n client,\n oauth2: {\n settings: {\n // Replaces the browser's current URL\n // using window.history.replaceState API or by reloading.\n replaceBrowserHistory: true,\n \n // When set to true, this variable will fully utilize\n // HTML5 sessionStorage API.\n // This variable can be overridden to false by setting\n // FHIR.oauth2.settings.fullSessionStorageSupport = false.\n // When set to false, the sessionStorage will be keyed \n // by a state variable. This is to allow the embedded IE browser\n // instances instantiated on a single thread to continue to\n // function without having sessionStorage data shared \n // across the embedded IE instances.\n fullSessionStorageSupport: true\n },\n ready,\n authorize,\n init\n }\n };\n // $lab:coverage:on$\n window.FHIR = FHIR;\n module.exports = FHIR;\n}\n\n// In node we return the node adapter by default, meaning that one could do:\n// require(\"fhirclient\").smart({ request, response }).authorize(options)\n// Other adapters can be included directly (E.g.: require(\"fhirclient/src/adapters/hapi\"))\nelse {\n module.exports = require(\"./adapters/NodeAdapter\");\n}\n\n\n","/*\n * This file contains some shared functions. The are used by other modules, but\n * are defined here so that tests can import this library and test them.\n */\n\nconst HttpError = require(\"./HttpError\");\nconst debug = require(\"debug\")(\"FHIRClient\");\n\nfunction isBrowser() {\n return typeof window === \"object\";\n}\n\n/**\n * Used in fetch Promise chains to reject if the \"ok\" property is not true\n */\nasync function checkResponse(resp) {\n if (!resp.ok) {\n throw (await humanizeError(resp));\n }\n return resp;\n}\n\n/**\n * Used in fetch Promise chains to return the JSON version of the response\n */\nfunction responseToJSON(resp) {\n // return resp.json();\n return resp.text().then(text => text.length ? JSON.parse(text) : \"\");\n}\n\nfunction fetchJSON(url, options) {\n return request(url, {\n mode: \"cors\",\n ...options\n }).then(responseToJSON);\n}\n\nfunction request(url, options) {\n return fetch(url, options).then(checkResponse);\n}\n\nasync function humanizeError(resp) {\n let msg = `${resp.status} ${resp.statusText}\\nURL: ${resp.url}`;\n\n try {\n const json = await resp.json();\n if (json.error) {\n msg += \"\\n\" + json.error;\n if (json.error_description) {\n msg += \": \" + json.error_description;\n }\n }\n else {\n msg += \"\\n\\n\" + JSON.stringify(json, null, 4);\n }\n } catch (_) {\n try {\n const text = await resp.text();\n if (text) {\n msg += \"\\n\\n\" + text;\n }\n } catch (_) {\n // ignore\n }\n }\n\n throw new HttpError(msg, resp.status, resp.statusText);\n}\n\nfunction stripTrailingSlash(str) {\n return String(str || \"\").replace(/\\/+$/, \"\");\n}\n\n/**\n * Walks through an object (or array) and returns the value found at the\n * provided path. This function is very simple so it intentionally does not\n * support any argument polymorphism, meaning that the path can only be a\n * dot-separated string. If the path is invalid returns undefined.\n * @param {Object} obj The object (or Array) to walk through\n * @param {String} path The path (eg. \"a.b.4.c\")\n * @returns {*} Whatever is found in the path or undefined\n */\nfunction getPath(obj, path = \"\") {\n path = path.trim();\n if (!path) {\n return obj;\n }\n return path.split(\".\").reduce(\n (out, key) => out ? out[key] : undefined,\n obj\n );\n}\n\n/**\n * Like getPath, but if the node is found, its value is set to @value\n * @param {Object} obj The object (or Array) to walk through\n * @param {String} path The path (eg. \"a.b.4.c\")\n * @param {*} value The value to set\n * @returns {Object} The modified object\n */\nfunction setPath(obj, path, value) {\n path.trim().split(\".\").reduce(\n (out, key, idx, arr) => {\n if (out && idx === arr.length - 1) {\n out[key] = value;\n } else {\n return out ? out[key] : undefined;\n }\n },\n obj\n );\n return obj;\n}\n\nfunction makeArray(arg) {\n if (Array.isArray(arg)) {\n return arg;\n }\n return [arg];\n}\n\nfunction absolute(path, baseUrl) {\n if (path.match(/^http/)) return path;\n if (path.match(/^urn/)) return path;\n return baseUrl.replace(/\\/+$/, \"\") + \"/\" + path.replace(/^\\/+/, \"\");\n}\n\n/**\n * Generates random strings. By default this returns random 8 characters long\n * alphanumeric strings.\n * @param {Number} strLength The length of the output string. Defaults to 8.\n * @param {String} charSet A string containing all the possible characters.\n * Defaults to all the upper and lower-case letters plus digits.\n */\nfunction randomString(strLength = 8, charSet = null) {\n const result = [];\n\n charSet = charSet || \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" +\n \"abcdefghijklmnopqrstuvwxyz\" +\n \"0123456789\";\n\n const len = charSet.length;\n while (strLength--) {\n result.push(charSet.charAt(Math.floor(Math.random() * len)));\n }\n return result.join(\"\");\n}\n\nfunction atob(str)\n{\n if (isBrowser()) {\n return window.atob(str);\n }\n\n // The \"global.\" makes Webpack understand that it doesn't have to include\n // the Buffer code in the bundle\n return global.Buffer.from(str, \"base64\").toString(\"ascii\");\n}\n\nfunction btoa(str)\n{\n if (isBrowser()) {\n return window.btoa(str);\n }\n\n // The \"global.\" makes Webpack understand that it doesn't have to include\n // the Buffer code in the bundle\n return global.Buffer.from(str).toString(\"base64\");\n}\n\nfunction jwtDecode(token)\n{\n const payload = token.split(\".\")[1];\n return JSON.parse(atob(payload));\n}\n\n/**\n * Groups the observations by code. Returns a map that will look like:\n * {\n * \"55284-4\": [ observation1, observation2 ],\n * \"6082-2\" : [ observation3 ]\n * }\n * @param {Object|Object[]} observations Array of observations \n * @param {String} property The name of a CodeableConcept property to group by\n * @returns {Object}\n */\nfunction byCode(observations, property)\n{\n const ret = {};\n\n function handleCodeableConcept(concept, observation) {\n if (concept && Array.isArray(concept.coding)) {\n concept.coding.forEach(({ code }) => {\n ret[code] = ret[code] || [];\n ret[code].push(observation);\n });\n }\n }\n\n makeArray(observations).forEach(o => {\n if (o.resourceType === \"Observation\" && o[property]) {\n if (Array.isArray(o[property])) {\n o[property].forEach(concept => handleCodeableConcept(concept, o));\n } else {\n handleCodeableConcept(o[property], o);\n }\n }\n });\n\n return ret;\n}\n\n/**\n * First groups the observations by code using `byCode`. Then returns a function\n * that accepts codes as arguments and will return a flat array of observations\n * having that codes\n * @param {Object|Object[]} observations Array of observations \n * @param {String} property The name of a CodeableConcept property to group by\n * @returns {Function}\n */\nfunction byCodes(observations, property)\n{\n const bank = byCode(observations, property);\n return (...codes) => codes\n .filter(code => code in bank)\n .reduce((prev, code) => [...prev, ...bank[code]], []);\n}\n\nfunction ensureNumerical({ value, code }) {\n if (typeof value !== \"number\") {\n throw new Error(\"Found a non-numerical unit: \" + value + \" \" + code);\n }\n}\n\nconst units = {\n cm({ code, value }) {\n ensureNumerical({ code, value });\n if (code == \"cm\" ) return value;\n if (code == \"m\" ) return value * 100;\n if (code == \"in\" ) return value * 2.54;\n if (code == \"[in_us]\") return value * 2.54;\n if (code == \"[in_i]\" ) return value * 2.54;\n if (code == \"ft\" ) return value * 30.48;\n if (code == \"[ft_us]\") return value * 30.48;\n throw new Error(\"Unrecognized length unit: \" + code);\n },\n kg({ code, value }){\n ensureNumerical({ code, value });\n if(code == \"kg\" ) return value;\n if(code == \"g\" ) return value / 1000;\n if(code.match(/lb/)) return value / 2.20462;\n if(code.match(/oz/)) return value / 35.274;\n throw new Error(\"Unrecognized weight unit: \" + code);\n },\n any(pq){\n ensureNumerical(pq);\n return pq.value;\n }\n};\n\n\nmodule.exports = {\n stripTrailingSlash,\n absolute,\n getPath,\n setPath,\n makeArray,\n randomString,\n isBrowser,\n debug,\n checkResponse,\n responseToJSON,\n fetchJSON,\n humanizeError,\n jwtDecode,\n request,\n atob,\n btoa,\n byCode,\n byCodes,\n units\n};\n","require(\"../node_modules/core-js/stable/promise\");\nrequire(\"../node_modules/core-js/stable/object/assign\");\nrequire(\"../node_modules/core-js/stable/url\");\nrequire(\"../node_modules/core-js/stable/url-search-params\");\nrequire(\"../node_modules/core-js/stable/array/find\");\n\nrequire(\"regenerator-runtime/runtime\");\n\nif (typeof window.fetch != \"function\") {\n window.fetch = require(\"isomorphic-fetch\");\n}","const Client = require(\"./Client\");\nconst {\n isBrowser,\n debug,\n fetchJSON,\n getPath,\n randomString,\n btoa\n} = require(\"./lib\");\n\nconst SMART_KEY = \"SMART_KEY\";\n\nfunction fetchConformanceStatement(baseUrl = \"/\")\n{\n const url = String(baseUrl).replace(/\\/*$/, \"/\") + \"metadata\";\n return fetchJSON(url).catch(ex => {\n throw new Error(`Failed to fetch the conformance statement from \"${url}\". ${ex}`);\n });\n}\n\nfunction fetchWellKnownJson(baseUrl = \"/\")\n{\n const url = String(baseUrl).replace(/\\/*$/, \"/\") + \".well-known/smart-configuration\";\n return fetchJSON(url).catch(ex => {\n throw new Error(`Failed to fetch the well-known json \"${url}\". ${ex.message}`);\n });\n}\n\n/**\n * Given a fhir server returns an object with it's Oauth security endpoints that\n * we are interested in\n * @param baseUrl Fhir server base URL\n */\nfunction getSecurityExtensions(baseUrl = \"/\")\n{\n return fetchWellKnownJson(baseUrl).then(meta => {\n if (!meta.authorization_endpoint || !meta.token_endpoint) {\n throw new Error(\"Invalid wellKnownJson\");\n }\n return {\n registrationUri: meta.registration_endpoint || \"\",\n authorizeUri : meta.authorization_endpoint,\n tokenUri : meta.token_endpoint\n };\n }).catch(() => fetchConformanceStatement(baseUrl).then(metadata => {\n const nsUri = \"http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris\";\n const extensions = (getPath(metadata || {}, \"rest.0.security.extension\") || [])\n .filter(e => e.url === nsUri)\n .map(o => o.extension)[0];\n\n const out = {\n registrationUri : \"\",\n authorizeUri : \"\",\n tokenUri : \"\"\n };\n\n if (extensions) {\n extensions.forEach(ext => {\n if (ext.url === \"register\") {\n out.registrationUri = ext.valueUri;\n }\n if (ext.url === \"authorize\") {\n out.authorizeUri = ext.valueUri;\n }\n if (ext.url === \"token\") {\n out.tokenUri = ext.valueUri;\n }\n });\n }\n\n return out;\n }));\n}\n\n/**\n * @param {Object} params\n * @param {String} params.iss This should come as url parameter but can also be\n * passed as an option for testing\n * @param {String} params.launch This should come as url parameter but can also\n * be passed as an option for testing\n * @param {String} params.fhirServiceUrl Can be passed as an option or as an URL param.\n * If present (and if `iss` is not present), it will make the client bypass the\n * authorization\n * @param {String} params.redirectUri (or redirect_uri) redirect_uri Defaults to the current directory (it's index file)\n * @param {String} params.clientId // or \"client_id\"\n * @param {String} params.scope\n * @param {String} params.patientId\n * @param {String} params.encounterId\n * @param {Object} params.fakeTokenResponse\n * @param {Boolean} _noRedirect If true, resolve with the redirect url without\n * trying to redirect to it\n */\nasync function authorize(env, params = {}, _noRedirect)\n{\n // Obtain input\n let {\n iss,\n launch,\n fhirServiceUrl,\n redirect_uri,\n redirectUri,\n scope = \"\",\n clientSecret,\n fakeTokenResponse,\n patientId,\n encounterId,\n client_id,\n clientId\n } = params;\n\n const url = env.getUrl();\n \n // For these three an url param takes precedence over inline option\n iss = url.searchParams.get(\"iss\") || iss; \n fhirServiceUrl = url.searchParams.get(\"fhirServiceUrl\") || fhirServiceUrl;\n launch = url.searchParams.get(\"launch\") || launch;\n\n if (!clientId) {\n clientId = client_id;\n }\n\n if (!redirectUri) {\n redirectUri = redirect_uri;\n }\n\n if (!redirectUri) {\n redirectUri = env.relative(\".\");\n } else {\n redirectUri = env.relative(redirectUri);\n }\n\n const serverUrl = String(iss || fhirServiceUrl || \"\");\n\n // Validate input\n if (!serverUrl) {\n throw new Error(\n \"No server url found. It must be specified as `iss` or as \" +\n \"`fhirServiceUrl` parameter\"\n );\n }\n\n if (iss) {\n debug(\"[authorize] Making %s launch...\", launch ? \"EHR\" : \"standalone\");\n }\n\n // append launch scope if needed\n if (launch && !scope.match(/launch/)) {\n scope += \" launch\";\n }\n\n // prevent inheritance of tokenResponse from parent window\n await env.getStorage().unset(SMART_KEY);\n\n // create initial state\n const stateKey = randomString(16);\n const state = {\n clientId,\n scope,\n redirectUri,\n serverUrl,\n clientSecret,\n tokenResponse: {},\n key: stateKey\n };\n\n // fakeTokenResponse to override stuff (useful in development)\n if (fakeTokenResponse) {\n Object.assign(state.tokenResponse, fakeTokenResponse);\n }\n\n // Fixed patientId (useful in development)\n if (patientId) {\n Object.assign(state.tokenResponse, { patient: patientId });\n }\n\n // Fixed encounterId (useful in development)\n if (encounterId) {\n Object.assign(state.tokenResponse, { encounter: encounterId });\n }\n\n let redirectUrl = redirectUri + \"?state=\" + encodeURIComponent(stateKey);\n\n // bypass oauth if fhirServiceUrl is used (but iss takes precedence)\n if (fhirServiceUrl && !iss) {\n debug(\"[authorize] Making fake launch...\");\n // Storage.set(stateKey, state);\n await env.getStorage().set(stateKey, state);\n if (_noRedirect) {\n return redirectUrl;\n }\n return await env.redirect(redirectUrl);\n }\n\n // Get oauth endpoints and add them to the state\n const extensions = await getSecurityExtensions(serverUrl);\n Object.assign(state, extensions);\n await env.getStorage().set(stateKey, state);\n\n // If this happens to be an open server and there is no authorizeUri\n if (!state.authorizeUri) {\n if (_noRedirect) {\n return redirectUrl;\n }\n return await env.redirect(redirectUrl);\n }\n\n // build the redirect uri\n const redirectParams = [\n \"response_type=code\",\n \"client_id=\" + encodeURIComponent(clientId),\n \"scope=\" + encodeURIComponent(scope),\n \"redirect_uri=\" + encodeURIComponent(redirectUri),\n \"aud=\" + encodeURIComponent(serverUrl),\n \"state=\" + encodeURIComponent(stateKey)\n ];\n\n // also pass this in case of EHR launch\n if (launch) {\n redirectParams.push(\"launch=\" + encodeURIComponent(launch));\n }\n\n redirectUrl = state.authorizeUri + \"?\" + redirectParams.join(\"&\");\n\n if (_noRedirect) {\n return redirectUrl;\n }\n\n return await env.redirect(redirectUrl);\n}\n\n/**\n * The completeAuth function should only be called on the page that represents\n * the redirectUri. We typically land there after a redirect from the\n * authorization server..\n */\nasync function completeAuth(env)\n{\n const url = env.getUrl();\n const Storage = env.getStorage();\n\n let key = url.searchParams.get(\"state\");\n const code = url.searchParams.get(\"code\");\n const authError = url.searchParams.get(\"error\");\n const authErrorDescription = url.searchParams.get(\"error_description\");\n\n if (!key) {\n key = await Storage.get(SMART_KEY);\n }\n\n // Start by checking the url for `error` and `error_description` parameters.\n // This happens when the auth server rejects our authorization attempt. In\n // this case it has no other way to tell us what the error was, other than\n // appending these parameters to the redirect url.\n // From client's point of view, this is not very reliable (because we can't\n // know how we have landed on this page - was it a redirect or was it loaded\n // manually). However, if `completeAuth()` is being called, we can assume\n // that the url comes from the auth server (otherwise the app won't work\n // anyway).\n if (authError || authErrorDescription) {\n let msg = [authError, authErrorDescription].filter(Boolean).join(\": \");\n throw new Error(msg);\n }\n\n debug(\"[completeAuth] key: %s, code: %O\", key, code);\n\n // key might be coming from the page url so it might be empty or missing\n if (!key) {\n throw new Error(\"No 'state' parameter found.\");\n }\n\n // Check if we have a previous state\n let state = await Storage.get(key);\n\n const fullSessionStorageSupport = isBrowser() ?\n getPath(window, \"FHIR.oauth2.settings.fullSessionStorageSupport\") :\n true;\n\n // Do we have to remove the `code` and `state` params from the URL?\n if (isBrowser()) {\n const { settings } = window.FHIR.oauth2;\n const hasState = url.searchParams.has(\"state\");\n\n if (settings.replaceBrowserHistory && (code || hasState)) {\n\n // `code` is the flag that tell us to request an access token.\n // We have to remove it, otherwise the page will authorize on\n // every load!\n if (code) {\n debug(\"[completeAuth] Removing code parameter from the url...\");\n url.searchParams.delete(\"code\");\n }\n\n // If we have `fullSessionStorageSupport` it means we no longer\n // need the `state` key. It will be stored to a well know\n // location - sessionStorage[SMART_KEY]. However, no\n // fullSessionStorageSupport means that this \"well know location\"\n // might be shared between windows and tabs. In this case we\n // MUST keep the `state` url parameter.\n if (hasState && fullSessionStorageSupport) {\n debug(\"[completeAuth] Removing state parameter from the url...\");\n url.searchParams.delete(\"state\");\n }\n\n // If the browser does not support the replaceState method for the\n // History Web API, the \"code\" parameter cannot be removed. As a\n // consequence, the page will (re)authorize on every load. The\n // workaround is to reload the page to new location without those\n // parameters. If that is not acceptable replaceBrowserHistory\n // should be set to false.\n if (window.history.replaceState) {\n window.history.replaceState({}, \"\", url.href);\n }\n else {\n await env.redirect(url.href);\n }\n }\n }\n\n // If the state does not exist, it means the page has been loaded directly.\n if (!state) {\n throw new Error(\"No state found! Please (re)launch the app.\");\n }\n\n // If we have state, then check to see if we got a `code`. If we don't,\n // then this is just a reload. Otherwise, we have to complete the code flow\n if (code) {\n debug(\"[completeAuth] Preparing to exchange the code for access token...\");\n const requestOptions = await buildTokenRequest(code, state);\n debug(\"[completeAuth] Token request options: %O\", requestOptions);\n // The EHR authorization server SHALL return a JSON structure that\n // includes an access token or a message indicating that the\n // authorization request has been denied.\n let tokenResponse = await fetchJSON(state.tokenUri, requestOptions);\n debug(\"[completeAuth] Token response: %O\", tokenResponse);\n if (!tokenResponse.access_token) {\n throw new Error(\"Failed to obtain access token.\");\n }\n // save the tokenResponse so that we don't have to re-authorize on\n // every page reload\n state = { ...state, tokenResponse };\n await Storage.set(key, state);\n if (fullSessionStorageSupport) {\n await Storage.set(SMART_KEY, key);\n }\n debug(\"[completeAuth] Authorization successful!\");\n }\n else {\n debug(\"[completeAuth] %s\", state.tokenResponse.access_token ?\n \"Already authorized\" :\n \"No authorization needed\"\n );\n }\n\n const client = new Client(env, state);\n debug(\"[completeAuth] Created client instance: %O\", client);\n return client;\n}\n\n/**\n * Builds the token request options. Does not make the request, just\n * creates it's configuration and returns it in a Promise.\n */\nfunction buildTokenRequest(code, state)\n{\n const { redirectUri, clientSecret, tokenUri, clientId } = state;\n\n if (!redirectUri) {\n throw new Error(\"Missing state.redirectUri\");\n }\n\n if (!tokenUri) {\n throw new Error(\"Missing state.tokenUri\");\n }\n\n if (!clientId) {\n throw new Error(\"Missing state.clientId\");\n }\n\n const requestOptions = {\n method: \"POST\",\n headers: { \"content-type\": \"application/x-www-form-urlencoded\" },\n body: `code=${code}&grant_type=authorization_code&redirect_uri=${\n encodeURIComponent(redirectUri)}`\n };\n\n // For public apps, authentication is not possible (and thus not required),\n // since a client with no secret cannot prove its identity when it issues a\n // call. (The end-to-end system can still be secure because the client comes\n // from a known, https protected endpoint specified and enforced by the\n // redirect uri.) For confidential apps, an Authorization header using HTTP\n // Basic authentication is required, where the username is the app’s\n // client_id and the password is the app’s client_secret (see example).\n if (clientSecret) {\n requestOptions.headers.Authorization = \"Basic \" + btoa(\n clientId + \":\" + clientSecret\n );\n debug(\n \"[buildTokenRequest] Using state.clientSecret to construct the \" +\n \"authorization header: %s\",\n requestOptions.headers.Authorization\n );\n } else {\n debug(\n \"[buildTokenRequest] No clientSecret found in state. Adding \" +\n \"the client_id to the POST body\"\n );\n requestOptions.body += `&client_id=${encodeURIComponent(clientId)}`;\n }\n\n return requestOptions;\n}\n\nasync function ready(env, onSuccess, onError)\n{\n let task = completeAuth(env);\n if (onSuccess) {\n task = task.then(onSuccess);\n }\n if (onError) {\n task = task.catch(onError);\n }\n return task;\n}\n\nasync function init(env, options)\n{\n const url = env.getUrl();\n const code = url.searchParams.get(\"code\");\n const state = url.searchParams.get(\"state\");\n\n // if `code` and `state` params are present we need to complete the auth flow\n if (code && state) {\n return completeAuth(env);\n }\n\n // Check for existing client state. If state is found, it means a client\n // instance have already been created in this session and we should try to\n // \"revive\" it.\n const storage = env.getStorage();\n const key = state || await storage.get(SMART_KEY);\n const cached = await storage.get(key);\n if (cached) {\n return Promise.resolve(new Client(env, cached));\n }\n\n // Otherwise try to launch\n return authorize(env, options).then(() => {\n // `init` promises a Client but that cannot happen in this case. The\n // browser will be redirected (unload the page and be redirected back\n // to it later and the same init function will be called again). On\n // success, authorize will resolve with the redirect url but we don't\n // want to return that from this promise chain because it is not a\n // Client instance. At the same time, if authorize fails, we do want to\n // pass the error to those waiting for a client instance.\n return new Promise(() => { /* leave it pending!!! */ });\n });\n}\n\nmodule.exports = {\n fetchConformanceStatement,\n fetchWellKnownJson,\n getSecurityExtensions,\n buildTokenRequest,\n authorize,\n completeAuth,\n ready,\n init,\n KEY: SMART_KEY\n};\n","class Storage\n{\n async get(key)\n {\n const value = sessionStorage[key];\n if (value) {\n return JSON.parse(value);\n }\n return null;\n }\n\n async set(key, value)\n {\n sessionStorage[key] = JSON.stringify(value);\n return value;\n }\n\n async unset(key)\n {\n if (key in sessionStorage) {\n delete sessionStorage[key];\n return true;\n }\n return false;\n }\n\n}\n\nmodule.exports = Storage;\n","class ServerStorage\n{\n constructor(request)\n {\n this.request = request;\n }\n\n async get(key)\n {\n return this.request.session[key];\n }\n\n async set(key, value)\n {\n this.request.session[key] = value;\n return value;\n }\n\n async unset(key)\n {\n if (this.request.session.hasOwnProperty(key)) {\n delete this.request.session[key];\n return true;\n }\n return false;\n }\n\n}\n\nmodule.exports = ServerStorage;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/build/fhir-client.min.js b/build/fhir-client.min.js index 0cfc8981..c808f0c0 100644 --- a/build/fhir-client.min.js +++ b/build/fhir-client.min.js @@ -1 +1 @@ -!function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="/",r(r.s=73)}([function(t,e,r){(function(e){function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var n="object",o=function(t){return t&&t.Math==Math&&t};t.exports=o(("undefined"==typeof globalThis?"undefined":r(globalThis))==n&&globalThis)||o(("undefined"==typeof window?"undefined":r(window))==n&&window)||o(("undefined"==typeof self?"undefined":r(self))==n&&self)||o((void 0===e?"undefined":r(e))==n&&e)||Function("return this")()}).call(this,r(25))},function(t,e,r){var n=r(0),o=r(18),i=r(40),a=r(81),u=n.Symbol,s=o("wks");t.exports=function(t){return s[t]||(s[t]=a&&u[t]||(a?u:i)("Symbol."+t))}},function(t,e,r){var n=r(5);t.exports=function(t){if(!n(t))throw TypeError(String(t)+" is not an object");return t}},function(t,e){var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}t.exports=function(t){return"object"===r(t)?null!==t:"function"==typeof t}},function(t,e,r){var n=r(7),o=r(10),i=r(19);t.exports=n?function(t,e,r){return o.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}},function(t,e,r){var n=r(4);t.exports=!n(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,r){function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var o=r(0),i=r(33).f,a=r(6),u=r(9),s=r(26),c=r(82),f=r(48);t.exports=function(t,e){var r,l,p,h,y,d=t.target,v=t.global,g=t.stat;if(r=v?o:g?o[d]||s(d,{}):(o[d]||{}).prototype)for(l in e){if(h=e[l],p=t.noTargetGet?(y=i(r,l))&&y.value:r[l],!f(v?l:d+(g?".":"#")+l,t.forced)&&void 0!==p){if(n(h)===n(p))continue;c(h,p)}(t.sham||p&&p.sham)&&a(h,"sham",!0),u(r,l,h,t)}}},function(t,e,r){var n=r(0),o=r(18),i=r(6),a=r(3),u=r(26),s=r(39),c=r(11),f=c.get,l=c.enforce,p=String(s).split("toString");o("inspectSource",function(t){return s.call(t)}),(t.exports=function(t,e,r,o){var s=!!o&&!!o.unsafe,c=!!o&&!!o.enumerable,f=!!o&&!!o.noTargetGet;"function"==typeof r&&("string"!=typeof e||a(r,"name")||i(r,"name",e),l(r).source=p.join("string"==typeof e?e:"")),t!==n?(s?!f&&t[e]&&(c=!0):delete t[e],c?t[e]=r:i(t,e,r)):c?t[e]=r:u(e,r)})(Function.prototype,"toString",function(){return"function"==typeof this&&f(this).source||s.call(this)})},function(t,e,r){var n=r(7),o=r(38),i=r(2),a=r(28),u=Object.defineProperty;e.f=n?u:function(t,e,r){if(i(t),e=a(e,!0),i(r),o)try{return u(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},function(t,e,r){var n,o,i,a=r(79),u=r(0),s=r(5),c=r(6),f=r(3),l=r(29),p=r(30),h=u.WeakMap;if(a){var y=new h,d=y.get,v=y.has,g=y.set;n=function(t,e){return g.call(y,t,e),e},o=function(t){return d.call(y,t)||{}},i=function(t){return v.call(y,t)}}else{var m=l("state");p[m]=!0,n=function(t,e){return c(t,m,e),e},o=function(t){return f(t,m)?t[m]:{}},i=function(t){return f(t,m)}}t.exports={set:n,get:o,has:i,enforce:function(t){return i(t)?o(t):n(t,{})},getterFor:function(t){return function(e){var r;if(!s(e)||(r=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}}},function(t,e){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,e,r){t.exports=r(0)},function(t,e,r){var n=r(23);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=!1},function(t,e,r){var n=r(10).f,o=r(3),i=r(1)("toStringTag");t.exports=function(t,e,r){t&&!o(t=r?t:t.prototype,i)&&n(t,i,{configurable:!0,value:e})}},function(t,e){t.exports={}},function(t,e,r){var n=r(0),o=r(26),i=r(15),a=n["__core-js_shared__"]||o("__core-js_shared__",{});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.1.3",mode:i?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,r){var n=r(34),o=r(32);t.exports=function(t){return n(o(t))}},function(t,e,r){var n=r(31),o=Math.min;t.exports=function(t){return t>0?o(n(t),9007199254740991):0}},function(t,e,r){var n=r(32);t.exports=function(t){return Object(n(t))}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,e,r){var n=r(41),o=r(17),i=r(1)("iterator");t.exports=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[n(t)]}},function(t,e){function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"===("undefined"==typeof window?"undefined":r(window))&&(n=window)}t.exports=n},function(t,e,r){var n=r(0),o=r(6);t.exports=function(t,e){try{o(n,t,e)}catch(r){n[t]=e}return e}},function(t,e,r){var n=r(0),o=r(5),i=n.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},function(t,e,r){var n=r(5);t.exports=function(t,e){if(!n(t))return t;var r,o;if(e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!n(o=r.call(t)))return o;if(!e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,r){var n=r(18),o=r(40),i=n("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e){t.exports={}},function(t,e){var r=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?n:r)(t)}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,r){var n=r(7),o=r(45),i=r(19),a=r(20),u=r(28),s=r(3),c=r(38),f=Object.getOwnPropertyDescriptor;e.f=n?f:function(t,e){if(t=a(t),e=u(e,!0),c)try{return f(t,e)}catch(t){}if(s(t,e))return i(!o.f.call(t,e),t[e])}},function(t,e,r){var n=r(4),o=r(12),i="".split;t.exports=n(function(){return!Object("z").propertyIsEnumerable(0)})?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e){t.exports=function(t,e,r){if(!(t instanceof e))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return t}},function(t,e,r){"use strict";r(56);var n=r(8),o=r(68),i=r(9),a=r(58),u=r(16),s=r(49),c=r(11),f=r(36),l=r(3),p=r(14),h=r(2),y=r(5),d=r(109),v=r(24),g=r(1)("iterator"),m=c.set,b=c.getterFor("URLSearchParams"),w=c.getterFor("URLSearchParamsIterator"),x=/\+/g,S=Array(4),k=function(t){return S[t-1]||(S[t-1]=RegExp("((?:%[\\da-f]{2}){"+t+"})","gi"))},O=function(t){try{return decodeURIComponent(t)}catch(e){return t}},P=function(t){var e=t.replace(x," "),r=4;try{return decodeURIComponent(e)}catch(t){for(;r;)e=e.replace(k(r--),O);return e}},R=/[!'()~]|%20/g,j={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},C=function(t){return j[t]},E=function(t){return encodeURIComponent(t).replace(R,C)},A=function(t,e){if(e)for(var r,n,o=e.split("&"),i=0;i0?arguments[0]:void 0,s=[];if(m(this,{type:"URLSearchParams",entries:s,updateURL:null,updateSearchParams:_}),void 0!==u)if(y(u))if("function"==typeof(t=v(u)))for(e=t.call(u);!(r=e.next()).done;){if((o=(n=d(h(r.value))).next()).done||(i=n.next()).done||!n.next().done)throw TypeError("Expected sequence with length 2");s.push({key:o.value+"",value:i.value+""})}else for(a in u)l(u,a)&&s.push({key:a,value:u[a]+""});else A(s,"string"==typeof u?"?"===u.charAt(0)?u.slice(1):u:u+"")},F=L.prototype;a(F,{append:function(t,e){U(arguments.length,2);var r=b(this);r.entries.push({key:t+"",value:e+""}),r.updateURL&&r.updateURL()},delete:function(t){U(arguments.length,1);for(var e=b(this),r=e.entries,n=t+"",o=0;ot.key){o.splice(r,0,t);break}r===e&&o.push(t)}n.updateURL&&n.updateURL()},forEach:function(t){for(var e,r=b(this).entries,n=p(t,arguments.length>1?arguments[1]:void 0,3),o=0;o=r.length?{value:void 0,done:!0}:(t=n(r,o,!0),e.index+=t.length,{value:t,done:!1})})},function(t,e,r){var n=r(31),o=r(32);t.exports=function(t,e,r){var i,a,u=String(o(t)),s=n(e),c=u.length;return s<0||s>=c?r?"":void 0:(i=u.charCodeAt(s))<55296||i>56319||s+1===c||(a=u.charCodeAt(s+1))<56320||a>57343?r?u.charAt(s):i:r?u.slice(s,s+2):a-56320+(i-55296<<10)+65536}},function(t,e,r){"use strict";var n=r(8),o=r(49),i=r(51),a=r(88),u=r(16),s=r(6),c=r(9),f=r(1),l=r(15),p=r(17),h=r(50),y=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,v=f("iterator"),g=function(){return this};t.exports=function(t,e,r,f,h,m,b){o(r,e,f);var w,x,S,k=function(t){if(t===h&&C)return C;if(!d&&t in R)return R[t];switch(t){case"keys":case"values":case"entries":return function(){return new r(this,t)}}return function(){return new r(this)}},O=e+" Iterator",P=!1,R=t.prototype,j=R[v]||R["@@iterator"]||h&&R[h],C=!d&&j||k(h),E="Array"==e&&R.entries||j;if(E&&(w=i(E.call(new t)),y!==Object.prototype&&w.next&&(l||i(w)===y||(a?a(w,y):"function"!=typeof w[v]&&s(w,v,g)),u(w,O,!0,!0),l&&(p[O]=g))),"values"==h&&j&&"values"!==j.name&&(P=!0,C=function(){return j.call(this)}),l&&!b||R[v]===C||s(R,v,C),p[e]=C,h)if(x={values:k("values"),keys:m?C:k("keys"),entries:k("entries")},b)for(S in x)!d&&!P&&S in R||c(R,S,x[S]);else n({target:e,proto:!0,forced:d||P},x);return x}},function(t,e,r){"use strict";var n={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!n.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:n},function(t,e,r){var n=r(3),o=r(20),i=r(85),a=r(30),u=i(!1);t.exports=function(t,e){var r,i=o(t),s=0,c=[];for(r in i)!n(a,r)&&n(i,r)&&c.push(r);for(;e.length>s;)n(i,r=e[s++])&&(~u(c,r)||c.push(r));return c}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,r){var n=r(4),o=/#|\.prototype\./,i=function(t,e){var r=u[a(t)];return r==c||r!=s&&("function"==typeof e?n(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,".").toLowerCase()},u=i.data={},s=i.NATIVE="N",c=i.POLYFILL="P";t.exports=i},function(t,e,r){"use strict";var n=r(50).IteratorPrototype,o=r(52),i=r(19),a=r(16),u=r(17),s=function(){return this};t.exports=function(t,e,r){var c=e+" Iterator";return t.prototype=o(n,{next:i(1,r)}),a(t,c,!1,!0),u[c]=s,t}},function(t,e,r){"use strict";var n,o,i,a=r(51),u=r(6),s=r(3),c=r(1),f=r(15),l=c("iterator"),p=!1;[].keys&&("next"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(n=o):p=!0),null==n&&(n={}),f||s(n,l)||u(n,l,function(){return this}),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:p}},function(t,e,r){var n=r(3),o=r(22),i=r(29),a=r(87),u=i("IE_PROTO"),s=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),n(t,u)?t[u]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,r){var n=r(2),o=r(53),i=r(35),a=r(30),u=r(55),s=r(27),c=r(29)("IE_PROTO"),f=function(){},l=function(){var t,e=s("iframe"),r=i.length;for(e.style.display="none",u.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(" diff --git a/docs/README.md b/docs/README.md index 7ef21976..51b3533b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -5,7 +5,7 @@ SMART on FHIR JavaScript Library This is a JavaScript library for connecting SMART apps to Fhir servers. It works both in browsers (IE10+) and on the server (NodeJS). -> This is the documentation for the new version. If you want to migrate from older versions, make sure you check out **[what's new in v2](http://docs.smarthealthit.org/client-js/v2.html)**. For older versions see http://docs.smarthealthit.org/clients/javascript/ +> This is the documentation for version 2.0.0.+. If you want to migrate from older versions, make sure you check out **[what's new in v2](http://docs.smarthealthit.org/client-js/v2.html)**. For older versions see [http://docs.smarthealthit.org/clients/javascript/](http://docs.smarthealthit.org/clients/javascript/). [![CircleCI](https://circleci.com/gh/smart-on-fhir/client-js/tree/master.svg?style=svg)](https://circleci.com/gh/smart-on-fhir/client-js/tree/master) [![Coverage Status](https://coveralls.io/repos/github/smart-on-fhir/client-js/badge.svg?branch=master)](https://coveralls.io/github/smart-on-fhir/client-js?branch=master) [![npm version](https://badge.fury.io/js/fhirclient.svg)](https://badge.fury.io/js/fhirclient) diff --git a/src/Client.js b/src/Client.js index 6a31b10b..6d16cf52 100644 --- a/src/Client.js +++ b/src/Client.js @@ -417,27 +417,46 @@ class FhirClient // Resolve References ---------------------------------------------- .then(async (data) => { - const resolve = async obj => { - await Promise.all(fhirOptions.resolveReferences.map(path => { - return new Promise((resolve2, reject) => { - const ref = getPath(obj, path + ".reference"); - if (ref) { - let sub = _resolvedRefs[ref]; - if (!sub) { - return this.request(ref).then(sub => { - _resolvedRefs[ref] = sub; + /** + * Gets single reference by id. Caches the result in _resolvedRefs + * @param {String} refId + */ + const getRef = refId => { + let sub = _resolvedRefs[refId]; + if (!sub) { + return this.request(refId).then(sub => { + _resolvedRefs[refId] = sub; + return sub; + }); + } + return sub; + }; + + /** + * Resolve all refs (specified in fhirOptions.resolveReferences) + * in the given resource. + * @param {Object} obj FHIR Resource + */ + const resolve = obj => { + return Promise.all(fhirOptions.resolveReferences.map(path => { + const node = getPath(obj, path); + if (node) { + const isArray = Array.isArray(node); + return Promise.all(makeArray(node).map((item, i) => { + const ref = item.reference; + if (ref) { + return getRef(ref).then(sub => { if (fhirOptions.graph) { - setPath(obj, path, sub); + if (isArray) { + setPath(obj, `${path}.${i}`, sub); + } else { + setPath(obj, path, sub); + } } - }).then(resolve2, reject); + }); } - - if (fhirOptions.graph) { - setPath(obj, path, sub); - } - } - resolve2(); - }); + })); + } })); }; diff --git a/test/Client.test.js b/test/Client.test.js index 8ca13d9f..370ebf82 100644 --- a/test/Client.test.js +++ b/test/Client.test.js @@ -1030,8 +1030,53 @@ describe("FHIR.client", () => { ]); }); }); - // it ("can refresh"); - // it ("can not refresh if useRefreshToken is false"); + + describe ("resolve all refs if it points to an array", () => { + crossPlatformTest(async (env) => { + const client = new Client(env, mockUrl); + + // Main page + mockServer.mock({ + headers: { "content-type": "application/json" }, + status: 200, + body: { + resourceType: "Patient", + id: "id", + ref1: [ + { reference: "whatever-1" }, + { reference: "whatever-2" } + ] + } + }); + + // Referenced page 1 + mockServer.mock({ + headers: { "content-type": "application/json" }, + status: 200, + body: { resourceType: "Ref", id: "Ref-id-1" } + }); + + // Referenced page 2 + mockServer.mock({ + headers: { "content-type": "application/json" }, + status: 200, + body: { resourceType: "Ref", id: "Ref-id-2" } + }); + + const result = await client.request( + "/Patient/id", + { resolveReferences: "ref1" } + ); + expect(result).to.equal({ + resourceType: "Patient", + id: "id", + ref1: [ + { resourceType: "Ref", id: "Ref-id-1" }, + { resourceType: "Ref", id: "Ref-id-2" } + ] + }); + }); + }); }); describe ("client.user", () => { diff --git a/test/coverage.html b/test/coverage.html index de692638..bda0e2f1 100644 --- a/test/coverage.html +++ b/test/coverage.html @@ -540,7 +540,7 @@ lib/nativeFhir.js
  • - 87.86 + 88.37 src/Client.js
  • @@ -574,8 +574,8 @@

    Test Report

    0
    0
    -
    108
    -
    1450
    +
    110
    +
    1316
    @@ -637,6 +637,8 @@

    Test Report

    + + @@ -690,14 +692,14 @@

    Test Report

    FHIR.client client.refresh validates state and throws if needed - 49 + 55 2 FHIR.client client.refresh - 23 + 15 3 @@ -725,7 +727,7 @@

    Test Report

    FHIR.client constructor accepts string as second argument - 0 + 1 7 @@ -767,7 +769,7 @@

    Test Report

    FHIR.client encounter.read rejects with no encounter works on the server - 0 + 1 13 @@ -781,28 +783,28 @@

    Test Report

    FHIR.client user.read rejects with no user works on the server - 1 + 0 15 FHIR.client fhir.js api works in the browser - 661 + 529 16 FHIR.client client.request can fetch single resource works in the browser - 4 + 3 17 FHIR.client client.request can fetch single resource works on the server - 3 + 2 18 @@ -823,70 +825,70 @@

    Test Report

    FHIR.client client.request can fetch a bundle works in the browser - 3 + 2 21 FHIR.client client.request can fetch a bundle works on the server - 3 + 2 22 FHIR.client client.request does not return an array if pageLimit is 1 works in the browser - 3 + 2 23 FHIR.client client.request does not return an array if pageLimit is 1 works on the server - 3 + 2 24 FHIR.client client.request can fetch multiple pages works in the browser - 6 + 5 25 FHIR.client client.request can fetch multiple pages works on the server - 6 + 4 26 FHIR.client client.request returns aan array if pageLimit is different than 1, even if there is only one page works in the browser - 3 + 2 27 FHIR.client client.request returns aan array if pageLimit is different than 1, even if there is only one page works on the server - 4 + 2 28 FHIR.client client.request can fetch all pages works in the browser - 7 + 4 29 FHIR.client client.request can fetch all pages works on the server - 7 + 4 30 @@ -900,14 +902,14 @@

    Test Report

    FHIR.client client.request onPage callback works on the server - 3 + 4 32 FHIR.client client.request stops fetching pages if onPage throws works in the browser - 3 + 2 33 @@ -928,28 +930,28 @@

    Test Report

    FHIR.client client.request stops fetching pages if onPage rejects works on the server - 3 + 2 36 FHIR.client client.request awaits for the onPage callback works in the browser - 206 + 205 37 FHIR.client client.request awaits for the onPage callback works on the server - 207 + 209 38 FHIR.client client.request can resolve refs on single resource works in the browser - 10 + 16 39 @@ -977,7 +979,7 @@

    Test Report

    FHIR.client client.request can resolve refs on pages works in the browser - 8 + 7 43 @@ -998,7 +1000,7 @@

    Test Report

    FHIR.client client.request can resolve refs on pages with `graph: false` works on the server - 6 + 7 46 @@ -1012,14 +1014,14 @@

    Test Report

    FHIR.client client.request can resolve refs on pages with `onPage` works on the server - 8 + 7 48 FHIR.client client.request can resolve refs on pages with `onPage` and `graph: false` works in the browser - 9 + 8 49 @@ -1028,414 +1030,428 @@

    Test Report

    7 - + 50 + FHIR.client client.request resolve all refs if it points to an array works in the browser + + + 6 + + + 51 + FHIR.client client.request resolve all refs if it points to an array works on the server + + + 5 + + + 52 FHIR.client client.user works in the browser 3 - 51 + 53 FHIR.client client.user works on the server 2 - 52 + 54 FHIR.client client.getAuthorizationHeader works in the browser - 1 + 2 - 53 + 55 FHIR.client client.getAuthorizationHeader works on the server - 1 + 0 - 54 + 56 HttpError create with no args - 0 + 1 - 55 + 57 HttpError create from string - 0 + 1 - 56 + 58 HttpError create from Error 1 - 57 + 59 HttpError create from response object having error property - 1 + 0 - 58 + 60 HttpError create from incompatible object - 0 + 1 - 59 + 61 HttpError create from empty object - 0 + 1 - 60 + 62 HttpError create from incompatible argument 1 - 61 + 63 Complete authorization code flow - 10 + 12 - 62 + 64 Complete authorization code flow with fullSessionStorageSupport = false - 5 + 6 - 63 + 65 Complete authorization refresh an authorized page 1 - 64 + 66 Complete authorization refresh an authorized page with fullSessionStorageSupport = false 1 - 65 + 67 Complete authorization can bypass oauth by passing `fhirServiceUrl` 0 - 66 + 68 Complete authorization appends 'launch' to the scopes if needed 1 - 67 + 69 Complete authorization can do standalone launch 5 - 68 + 70 smart fetchConformanceStatement rejects bad baseUrl values 1 - 69 + 71 smart fetchConformanceStatement works - 3 + 2 - 70 + 72 smart fetchConformanceStatement rejects on error 2 - 71 + 73 smart fetchWellKnownJson works 2 - 72 + 74 smart fetchWellKnownJson rejects on error - 2 + 3 - 73 + 75 smart getSecurityExtensions works with .well-known/smart-configuration 2 - 74 + 76 smart getSecurityExtensions fails back to conformance if .well-known/smart-configuration is bad 4 - 75 + 77 smart getSecurityExtensions works with conformance statement 3 - 76 + 78 smart getSecurityExtensions returns empty endpoints for open servers - 4 + 3 - 77 + 79 smart getSecurityExtensions returns empty endpoints for missing conformance 3 - 78 + 80 smart getSecurityExtensions rejects on error 3 - 79 + 81 smart authorize throws if no serverUrl 0 - 80 + 82 smart authorize accepts encounterId parameter - 1 + 0 - 81 + 83 smart authorize accepts patientId parameter 1 - 82 + 84 smart authorize accepts fakeTokenResponse parameter 1 - 83 + 85 smart completeAuth rejects with error and error_description from the url 1 - 84 + 86 smart completeAuth rejects with missing key 0 - 85 + 87 smart completeAuth rejects with empty state - 1 + 0 - 86 + 88 smart buildTokenRequest rejects with missing state.redirectUri 0 - 87 + 89 smart buildTokenRequest rejects with missing state.tokenUri - 1 + 0 - 88 + 90 smart buildTokenRequest rejects with missing state.clientId 0 - 89 + 91 smart init works in standalone mode - 6 + 5 - 90 + 92 smart init works in EHR mode 5 - 91 + 93 Lib getPath returns the first arg if no path - 0 + 1 - 92 + 94 Lib getPath returns the first arg for empty path - 1 + 0 - 93 + 95 Lib getPath works as expected - 0 + 1 - 94 + 96 Lib setPath works as expected - 1 + 0 - 95 + 97 Lib setPath does nothing if the first argument is null - 0 + 1 - 96 + 98 Lib stripTrailingSlash returns the same string if it does not end with slash 0 - 97 + 99 Lib stripTrailingSlash removes the trailing slash 0 - 98 + 100 Lib stripTrailingSlash removes repeated trailing slashes - 0 + 1 - 99 + 101 Lib stripTrailingSlash works with non-string argument - 1 + 0 - 100 + 102 Lib absolute returns http, https or urn URI as is 0 - 101 + 103 Lib absolute returns URLs mounted to the given domain 1 - 102 + 104 Lib units cm - 2 + 1 - 103 + 105 Lib units kg - 1 + 2 - 104 + 106 Lib units any 0 - 105 + 107 Complete authorization [SERVER] code flow authorization - 7 + 6 - 106 + 108 Complete authorization [SERVER] refresh an authorized page 1 - 107 + 109 Complete authorization [SERVER] can bypass oauth by passing `fhirServiceUrl` to `authorize` - 1 + 0 - 108 + 110 Complete authorization [SERVER] appends 'launch' to the scopes if needed @@ -1447,10 +1463,10 @@

    Test Report

    Code Coverage Report

    -
    95.36%
    -
    2111
    -
    2013
    -
    98
    +
    95.43%
    +
    2121
    +
    2024
    +
    97
    @@ -10368,10 +10384,10 @@

    lib/nativeFhir.js

    src/Client.js

    -
    87.86%
    -
    420
    -
    369
    -
    51
    +
    88.37%
    +
    430
    +
    380
    +
    50
    @@ -10645,7 +10661,7 @@

    src/Client.js

    - + @@ -10669,7 +10685,7 @@

    src/Client.js

    - + @@ -10705,13 +10721,13 @@

    src/Client.js

    - + - + @@ -10723,7 +10739,7 @@

    src/Client.js

    - + @@ -10741,7 +10757,7 @@

    src/Client.js

    - + @@ -10807,7 +10823,7 @@

    src/Client.js

    - + @@ -10873,7 +10889,7 @@

    src/Client.js

    - + @@ -10957,7 +10973,7 @@

    src/Client.js

    - + @@ -12343,7 +12359,7 @@

    src/Client.js

    - + @@ -12361,13 +12377,13 @@

    src/Client.js

    - + - + @@ -12385,7 +12401,7 @@

    src/Client.js

    - + @@ -12553,7 +12569,7 @@

    src/Client.js

    - + @@ -12565,13 +12581,13 @@

    src/Client.js

    - + - + @@ -12607,7 +12623,7 @@

    src/Client.js

    - + @@ -12625,13 +12641,13 @@

    src/Client.js

    - + - + @@ -12679,13 +12695,13 @@

    src/Client.js

    - + - + @@ -12697,7 +12713,7 @@

    src/Client.js

    - + @@ -12715,7 +12731,7 @@

    src/Client.js

    - + @@ -12733,13 +12749,13 @@

    src/Client.js

    - + - + @@ -12757,7 +12773,7 @@

    src/Client.js

    - + @@ -12769,13 +12785,13 @@

    src/Client.js

    - + - + @@ -12902,85 +12918,85 @@

    src/Client.js

    - + - + - + - + - + - + - - + + - + - - + + - + - - + + - - + + - + - + - + - + @@ -12988,221 +13004,221 @@

    src/Client.js

    - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - - + + - - + + - + - - + + - - + + - + - - + + - + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - + - - + + - + - + - + - + - - + + - + - + - - + + - + @@ -13213,296 +13229,296 @@

    src/Client.js

    - - + + - - + + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + @@ -13513,301 +13529,415 @@

    src/Client.js

    - - + + - - + + - - + + - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - - + + - + - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14271,7 +14401,7 @@

    src/lib.js

    - + @@ -14289,7 +14419,7 @@

    src/lib.js

    - + @@ -14337,7 +14467,7 @@

    src/lib.js

    - + @@ -14361,7 +14491,7 @@

    src/lib.js

    - + @@ -14403,7 +14533,7 @@

    src/lib.js

    - + @@ -14673,13 +14803,13 @@

    src/lib.js

    - + - + @@ -14697,7 +14827,7 @@

    src/lib.js

    - + @@ -14781,7 +14911,7 @@

    src/lib.js

    - + @@ -14799,7 +14929,7 @@

    src/lib.js

    - + @@ -14811,7 +14941,7 @@

    src/lib.js

    - + @@ -14841,7 +14971,7 @@

    src/lib.js

    - + @@ -14865,13 +14995,13 @@

    src/lib.js

    - + - + @@ -14883,7 +15013,7 @@

    src/lib.js

    - + @@ -14907,19 +15037,19 @@

    src/lib.js

    - + - + - + diff --git a/test/lcov.info b/test/lcov.info index 95a60948..cbadac21 100644 --- a/test/lcov.info +++ b/test/lcov.info @@ -1529,23 +1529,23 @@ DA:40,1 DA:41,1 DA:42,1 DA:43,1 -DA:44,2 +DA:44,4 DA:45,1 DA:46,1 DA:47,1 -DA:48,70 +DA:48,72 DA:49,2 DA:50,1 DA:51,1 DA:52,1 DA:53,1 -DA:54,67 -DA:55,67 +DA:54,69 +DA:55,69 DA:56,1 -DA:57,67 +DA:57,69 DA:58,1 DA:59,1 -DA:60,67 +DA:60,69 DA:61,1 DA:62,1 DA:63,1 @@ -1556,7 +1556,7 @@ DA:67,1 DA:68,1 DA:69,1 DA:70,1 -DA:71,67 +DA:71,69 DA:72,1 DA:73,1 DA:74,1 @@ -1567,7 +1567,7 @@ DA:78,1 DA:79,1 DA:80,1 DA:81,1 -DA:82,67 +DA:82,69 DA:83,1 DA:84,1 DA:85,1 @@ -1581,7 +1581,7 @@ DA:92,1 DA:93,1 DA:94,1 DA:95,1 -DA:96,67 +DA:96,69 DA:97,1 DA:98,1 DA:99,1 @@ -1812,14 +1812,14 @@ DA:323,1 DA:324,1 DA:325,1 DA:326,1 -DA:327,82 +DA:327,88 DA:328,4 DA:329,1 -DA:330,78 -DA:331,78 +DA:330,84 +DA:331,84 DA:332,2 DA:333,1 -DA:334,76 +DA:334,82 DA:335,1 DA:336,1 DA:337,1 @@ -1847,20 +1847,20 @@ DA:358,0 DA:359,1 DA:360,1 DA:361,1 -DA:362,74 +DA:362,80 DA:363,0 -DA:364,73 -DA:365,73 +DA:364,79 +DA:365,79 DA:366,1 DA:367,1 DA:368,1 DA:369,1 DA:370,1 -DA:371,74 +DA:371,80 DA:372,1 DA:373,1 -DA:374,74 -DA:375,74 +DA:374,80 +DA:375,80 DA:376,2 DA:377,1 DA:378,1 @@ -1868,23 +1868,23 @@ DA:379,1 DA:380,1 DA:381,1 DA:382,1 -DA:383,74 -DA:384,57 +DA:383,80 +DA:384,63 DA:385,1 -DA:386,74 +DA:386,80 DA:387,1 DA:388,1 -DA:389,74 +DA:389,80 DA:390,1 DA:391,1 -DA:392,74 -DA:393,31 +DA:392,80 +DA:393,37 DA:394,1 DA:395,1 -DA:396,74 +DA:396,80 DA:397,1 -DA:398,74 -DA:399,74 +DA:398,80 +DA:399,80 DA:400,1 DA:401,1 DA:402,1 @@ -1909,129 +1909,129 @@ DA:420,1 DA:421,1 DA:422,1 DA:423,1 -DA:424,0 -DA:425,20 +DA:424,1 +DA:425,1 DA:426,0 -DA:427,20 +DA:427,24 DA:428,1 -DA:429,20 -DA:430,10 +DA:429,24 +DA:430,1 DA:431,1 -DA:432,1 +DA:432,0 DA:433,1 DA:434,1 -DA:435,0 -DA:436,0 +DA:435,1 +DA:436,1 DA:437,1 DA:438,1 -DA:439,0 -DA:440,1 +DA:439,1 +DA:440,80 DA:441,1 DA:442,1 -DA:443,1 -DA:444,0 -DA:445,0 +DA:443,0 +DA:444,22 +DA:445,22 DA:446,1 -DA:447,32 -DA:448,1 +DA:447,0 +DA:448,24 DA:449,1 -DA:450,74 -DA:451,1 +DA:450,14 +DA:451,4 DA:452,1 -DA:453,1 +DA:453,10 DA:454,1 -DA:455,0 -DA:456,42 -DA:457,20 +DA:455,1 +DA:456,1 +DA:457,1 DA:458,1 DA:459,1 -DA:460,38 -DA:461,32 -DA:462,32 -DA:463,32 -DA:464,1 -DA:465,0 -DA:466,16 +DA:460,1 +DA:461,1 +DA:462,1 +DA:463,0 +DA:464,0 +DA:465,1 +DA:466,38 DA:467,1 DA:468,1 -DA:469,1 +DA:469,80 DA:470,1 DA:471,1 -DA:472,16 -DA:473,8 -DA:474,1 -DA:475,1 -DA:476,8 -DA:477,4 +DA:472,1 +DA:473,1 +DA:474,0 +DA:475,42 +DA:476,20 +DA:477,1 DA:478,1 -DA:479,4 -DA:480,1 -DA:481,4 -DA:482,1 +DA:479,38 +DA:480,32 +DA:481,32 +DA:482,32 DA:483,1 -DA:484,1 -DA:485,54 +DA:484,0 +DA:485,16 DA:486,1 DA:487,1 DA:488,1 DA:489,1 DA:490,1 -DA:491,60 -DA:492,1 -DA:493,0 -DA:494,6 -DA:495,1 -DA:496,1 +DA:491,16 +DA:492,8 +DA:493,1 +DA:494,1 +DA:495,8 +DA:496,4 DA:497,1 -DA:498,1 -DA:499,64 -DA:500,1 +DA:498,4 +DA:499,1 +DA:500,4 DA:501,1 DA:502,1 DA:503,1 -DA:504,1 +DA:504,60 DA:505,1 DA:506,1 DA:507,1 DA:508,1 DA:509,1 -DA:510,1 +DA:510,66 DA:511,1 -DA:512,7 -DA:513,7 +DA:512,0 +DA:513,6 DA:514,1 DA:515,1 DA:516,1 -DA:517,6 -DA:518,6 +DA:517,1 +DA:518,70 DA:519,1 DA:520,1 DA:521,1 -DA:522,5 -DA:523,5 -DA:524,2 +DA:522,1 +DA:523,1 +DA:524,1 DA:525,1 DA:526,1 -DA:527,3 +DA:527,1 DA:528,1 DA:529,1 DA:530,1 -DA:531,1 -DA:532,1 +DA:531,7 +DA:532,7 DA:533,1 DA:534,1 DA:535,1 -DA:536,1 -DA:537,1 -DA:538,2 +DA:536,6 +DA:537,6 +DA:538,1 DA:539,1 DA:540,1 -DA:541,2 -DA:542,2 -DA:543,1 +DA:541,5 +DA:542,5 +DA:543,2 DA:544,1 DA:545,1 -DA:546,1 +DA:546,3 DA:547,1 DA:548,1 DA:549,1 @@ -2039,26 +2039,45 @@ DA:550,1 DA:551,1 DA:552,1 DA:553,1 -DA:554,0 +DA:554,1 DA:555,1 DA:556,1 -DA:557,1 -DA:558,0 +DA:557,2 +DA:558,1 DA:559,1 -DA:560,1 -DA:561,1 -DA:562,0 +DA:560,2 +DA:561,2 +DA:562,1 DA:563,1 DA:564,1 DA:565,1 -DA:566,0 +DA:566,1 DA:567,1 DA:568,1 DA:569,1 DA:570,1 DA:571,1 -LF:420 -LH:369 +DA:572,1 +DA:573,0 +DA:574,1 +DA:575,1 +DA:576,1 +DA:577,0 +DA:578,1 +DA:579,1 +DA:580,1 +DA:581,0 +DA:582,1 +DA:583,1 +DA:584,1 +DA:585,0 +DA:586,1 +DA:587,1 +DA:588,1 +DA:589,1 +DA:590,1 +LF:430 +LH:380 end_of_record TN: SF:/media/vlad/Data/dev/client-js/src/HttpError.js @@ -2136,10 +2155,10 @@ DA:13,1 DA:14,1 DA:15,1 DA:16,1 -DA:17,104 +DA:17,110 DA:18,7 DA:19,1 -DA:20,97 +DA:20,103 DA:21,1 DA:22,1 DA:23,1 @@ -2147,18 +2166,18 @@ DA:24,1 DA:25,1 DA:26,1 DA:27,1 -DA:28,97 +DA:28,103 DA:29,1 DA:30,1 DA:31,1 -DA:32,104 +DA:32,110 DA:33,1 DA:34,1 DA:35,1 DA:36,1 DA:37,1 DA:38,1 -DA:39,107 +DA:39,113 DA:40,1 DA:41,1 DA:42,1 @@ -2203,11 +2222,11 @@ DA:80,1 DA:81,1 DA:82,1 DA:83,1 -DA:84,133 -DA:85,133 +DA:84,141 +DA:85,141 DA:86,2 DA:87,1 -DA:88,131 +DA:88,139 DA:89,1 DA:90,1 DA:91,1 @@ -2221,30 +2240,30 @@ DA:98,1 DA:99,1 DA:100,1 DA:101,1 -DA:102,13 +DA:102,17 DA:103,1 DA:104,1 -DA:105,12 +DA:105,16 DA:106,1 -DA:107,6 +DA:107,10 DA:108,1 DA:109,1 DA:110,1 DA:111,1 -DA:112,13 +DA:112,17 DA:113,1 DA:114,1 DA:115,1 -DA:116,46 -DA:117,12 +DA:116,68 +DA:117,14 DA:118,1 -DA:119,34 +DA:119,54 DA:120,1 DA:121,1 DA:122,1 -DA:123,83 -DA:124,78 -DA:125,76 +DA:123,89 +DA:124,84 +DA:125,82 DA:126,1 DA:127,1 DA:128,1
    44 24 state = { serverUrl: state };
    48 7072 if (!state.serverUrl || !state.serverUrl.match(/https?:\/\/.+/)) {
    54 6769 this.state = state;
    55 6769 this.environment = environment;
    57 6769 const client = this;
    60 6769 this.patient = {
    71 6769 this.encounter = {
    82 6769 this.user = {
    96 6769 if (environment.fhir) {
    327 8288 if (accessToken) {
    330 7884 const { username, password } = this.state;
    331 7884 if (username && password) {
    334 7682 return null;
    362 7480 let url;
    364 7379 url = String(requestOptions);
    365 7379 requestOptions = {};
    371 7480 url = absolute(url, this.state.serverUrl);
    374 7480 const authHeader = this.getAuthorizationHeader();
    375 7480 if (authHeader) {
    383 7480 if (!Array.isArray(fhirOptions.resolveReferences)) {
    384 5763 fhirOptions.resolveReferences = [fhirOptions.resolveReferences];
    386 7480 fhirOptions.resolveReferences = fhirOptions.resolveReferences.filter(Boolean).map(String);
    389 7480 fhirOptions.graph = (fhirOptions.graph !== false);
    392 7480 if (!fhirOptions.pageLimit && fhirOptions.pageLimit !== 0) {
    393 3137 fhirOptions.pageLimit = 1;
    396 7480 const hasPageCallback = typeof fhirOptions.onPage == "function";
    398 7480 debug("[client.request] Request url: %s, options: %O, fhirOptions: %O", url, requestOptions, fhirOptions);
    399 7480 return fetchJSON(url, requestOptions)
    420 const resolve = async obj => { /**
    421 await Promise.all(fhirOptions.resolveReferences.map(path => { * Gets single reference by id. Caches the result in _resolvedRefs
    422 return new Promise((resolve2, reject) => { * @param {String} refId
    423 const ref = getPath(obj, path + ".reference"); */
    424
    if (
    ref
    ) {
    const getRef = refId => {
    425 20 let sub = _resolvedRefs[ref]; let sub = _resolvedRefs[refId];
    426
    if (
    !sub
    ) {
    if (
    !sub
    ) {
    427 20 return this.request(ref).then(sub => {24 return this.request(refId).then(sub => {
    428 _resolvedRefs[ref] = sub; _resolvedRefs[refId] = sub;
    429 20 if (fhirOptions.graph) {24 return sub;
    430 10 setPath(obj, path, sub); });
    431 } }
    432 }).then(resolve2, reject); return sub;
    433 } };
    434
    435 if (fhirOptions.graph) { /**
    436 setPath(obj, path, sub); * Resolve all refs (specified in fhirOptions.resolveReferences)
    437 } * in the given resource.
    438 } * @param {Object} obj FHIR Resource
    439 resolve2(); */
    440 });80 const resolve = obj => {
    441 })); return Promise.all(fhirOptions.resolveReferences.map(path => {
    442 }; const node = getPath(obj, path);
    443
    if (
    node
    ) {
    444
    if (
    data
    && data.resourceType == "Bundle") {
    22 const isArray = Array.isArray(node);
    445
    await Promise.all((
    data.entry
    ||
    []
    ).map(item => resolve(item.resource)));
    22 return Promise.all(makeArray(node).map((item, i) => {
    446 } else { const ref = item.reference;
    447 32 await resolve(data);
    if (
    ref
    ) {
    448 }24 return getRef(ref).then(sub => {
    449 if (fhirOptions.graph) {
    450 74 return data;14 if (isArray) {
    451 })4 setPath(obj, `${path}.${i}`, sub);
    452 } else {
    453 // Pagination ------------------------------------------------------10 setPath(obj, path, sub);
    454 .then(async (data) => { }
    455
    if (
    data
    && data.resourceType == "Bundle") {
    }
    456 42 if (hasPageCallback) { });
    457 20 await fhirOptions.onPage(data, { ..._resolvedRefs }); }
    458 } }));
    459 }
    460 38 if (--fhirOptions.pageLimit) { }));
    461 32 const links = data.link || []; };
    462 32 const next = links.find(l => l.relation == "next");
    463 32 data = makeArray(data);
    if (
    data
    && data.resourceType == "Bundle") {
    464 // console.log("===>", data);
    await Promise.all((
    data.entry
    ||
    []
    ).map(item => resolve(item.resource)));
    465
    if (next &&
    next.url
    ) {
    } else {
    466 16 const nextPage = await this.request(38 await resolve(data);
    467 next.url, }
    468 fhirOptions,
    469 _resolvedRefs80 return data;
    470 ); })
    471
    472 16 if (hasPageCallback) { // Pagination ------------------------------------------------------
    473 8 return null; .then(async (data) => {
    474 }
    if (
    data
    && data.resourceType == "Bundle") {
    475 // console.log("===>", nextPage);42 if (hasPageCallback) {
    476 8 if (fhirOptions.resolveReferences.length) {20 await fhirOptions.onPage(data, { ..._resolvedRefs });
    477 4 Object.assign(_resolvedRefs, nextPage.references); }
    478 // console.log("===>", nextPage);
    479 4 return data.concat(makeArray(nextPage.data || nextPage));38 if (--fhirOptions.pageLimit) {
    480 }32 const links = data.link || [];
    481 4 return data.concat(makeArray(nextPage));32 const next = links.find(l => l.relation == "next");
    482 }32 data = makeArray(data);
    483 } // console.log("===>", data);
    484 }
    if (next &&
    next.url
    ) {
    485 54 return data;16 const nextPage = await this.request(
    486 }) next.url,
    487 fhirOptions,
    488 // Finalize -------------------------------------------------------- _resolvedRefs
    489 .then(data => { );
    490 if (fhirOptions.graph) {
    491 60 _resolvedRefs = {};16 if (hasPageCallback) {
    492 }8 return null;
    493
    else if (!hasPageCallback &&
    fhirOptions.resolveReferences.length
    ) {
    }
    494 6 return { // console.log("===>", nextPage);
    495 data,8 if (fhirOptions.resolveReferences.length) {
    496 references: _resolvedRefs4 Object.assign(_resolvedRefs, nextPage.references);
    497 }; // console.log("===>", nextPage);
    498 }4 return data.concat(makeArray(nextPage.data || nextPage));
    499 64 return data; }
    500 });4 return data.concat(makeArray(nextPage));
    501 } }
    502 }
    503 /** }
    504 * Use the refresh token to obtain new access token. If the refresh token is60 return data;
    505 * expired (or this fails for any other reason) it will be deleted from the })
    506 * state, so that we don't enter into loops trying to re-authorize.
    507 */ // Finalize --------------------------------------------------------
    508 refresh() .then(data => {
    509 { if (fhirOptions.graph) {
    510 debug("[refresh] Attempting to refresh using a refresh_token...");66 _resolvedRefs = {};
    511 }
    512 7 const refreshToken = getPath(this, "state.tokenResponse.refresh_token");
    else if (!hasPageCallback &&
    fhirOptions.resolveReferences.length
    ) {
    513 7 if (!refreshToken) {6 return {
    514 1 throw new Error("Unable to refresh. No refresh_token found in state"); data,
    515 } references: _resolvedRefs
    516 };
    517 6 const tokenUri = this.state.tokenUri; }
    518 6 if (!tokenUri) {70 return data;
    519 1 throw new Error("Unable to refresh. No tokenUri found in storage"); });
    520 } }
    521
    522 5 const scopes = getPath(this, "state.tokenResponse.scope") || ""; /**
    523 5 if (scopes.indexOf("online_access") == -1) { * Use the refresh token to obtain new access token. If the refresh token is
    524 2 throw new Error("Trying to refresh but no `online_access` scope was granted"); * expired (or this fails for any other reason) it will be deleted from the
    525 } * state, so that we don't enter into loops trying to re-authorize.
    526 */
    527 3 return request(tokenUri, { refresh()
    528 mode : "cors", {
    529 method : "POST", debug("[refresh] Attempting to refresh using a refresh_token...");
    530 headers: {
    531 "content-type": "application/x-www-form-urlencoded"7 const refreshToken = getPath(this, "state.tokenResponse.refresh_token");
    532 },7 if (!refreshToken) {
    533 body: `grant_type=refresh_token&refresh_token=${encodeURIComponent(refreshToken)}`1 throw new Error("Unable to refresh. No refresh_token found in state");
    534 }).then(responseToJSON).then(data => { }
    535 if (!data.access_token) {
    536 1 throw new Error("No access token received");6 const tokenUri = this.state.tokenUri;
    537 }6 if (!tokenUri) {
    538 2 return data;1 throw new Error("Unable to refresh. No tokenUri found in storage");
    539 }).then(data => { }
    540 debug("[refresh] Received new access token %O", data);
    541 2 Object.assign(this.state.tokenResponse, data);5 const scopes = getPath(this, "state.tokenResponse.scope") || "";
    542 2 return this.state;5 if (scopes.indexOf("online_access") == -1) {
    543 }).catch(error => {2 throw new Error("Trying to refresh but no `online_access` scope was granted");
    544 debug("[refresh] Deleting the expired or invalid refresh token"); }
    545 1 delete this.state.tokenResponse.refresh_token;
    546 1 throw error;3 return request(tokenUri, {
    547 }).finally(() => { mode : "cors",
    548 this.environment.getStorage().set(this.state.key, this.state); method : "POST",
    549 }); headers: {
    550 } "content-type": "application/x-www-form-urlencoded"
    551 },
    552 // utils ------------------------------------------------------------------- body: `grant_type=refresh_token&refresh_token=${encodeURIComponent(refreshToken)}`
    553 byCode(observations, property) { }).then(responseToJSON).then(data => {
    554
    return byCode(observations, property);
    if (!data.access_token) {
    555 }1 throw new Error("No access token received");
    556 }
    557 byCodes(observations, property) {2 return data;
    558
    return byCodes(observations, property);
    }).then(data => {
    559 } debug("[refresh] Received new access token %O", data);
    560 2 Object.assign(this.state.tokenResponse, data);
    561 get units() {2 return this.state;
    562
    return units;
    }).catch(error => {
    563 } debug("[refresh] Deleting the expired or invalid refresh token");
    564 1 delete this.state.tokenResponse.refresh_token;
    565 getPath(object, path) {1 throw error;
    566
    return getPath(object, path);
    }).finally(() => {
    567 } this.environment.getStorage().set(this.state.key, this.state);
    568 } });
    569 }
    570 1module.exports = FhirClient;
    571 // utils -------------------------------------------------------------------
    572 byCode(observations, property) {
    573
    return byCode(observations, property);
    574 }
    575
    576 byCodes(observations, property) {
    577
    return byCodes(observations, property);
    578 }
    579
    580 get units() {
    581
    return units;
    582 }
    583
    584 getPath(object, path) {
    585
    return getPath(object, path);
    586 }
    587}
    588
    5891module.exports = FhirClient;
    590
    17 104110 if (!resp.ok) {
    20 97103 return resp;
    28 97103 return resp.text().then(text => text.length ? JSON.parse(text) : "");
    32 104110 return request(url, {
    39 107113 return fetch(url, options).then(checkResponse);
    84 133141 path = path.trim();
    85 133141 if (!path) {
    88 131139 return path.split(".").reduce(
    102 1317 path.trim().split(".").reduce(
    105 1216 out[key] = value;
    107 610 return out ? out[key] : undefined;
    112 1317 return obj;
    116 4668 if (Array.isArray(arg)) {
    117 1214 return arg;
    119 3454 return [arg];
    123 8389 if (path.match(/^http/)) return path;
    124 7884 if (path.match(/^urn/)) return path;
    125 7682 return baseUrl.replace(/\/+$/, "") + "/" + path.replace(/^\/+/, "");