{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js-pure/internals/fails.js","webpack:///./node_modules/core-js-pure/internals/function-uncurry-this.js","webpack:///./node_modules/core-js-pure/internals/is-callable.js","webpack:///./node_modules/core-js-pure/internals/well-known-symbol.js","webpack:///./node_modules/core-js-pure/stable/string/starts-with.js","webpack:///./node_modules/core-js-pure/internals/descriptors.js","webpack:///./node_modules/core-js-pure/internals/export.js","webpack:///./node_modules/core-js-pure/internals/global.js","webpack:///./node_modules/core-js-pure/stable/array/includes.js","webpack:///./node_modules/core-js-pure/internals/is-object.js","webpack:///./node_modules/core-js-pure/internals/function-call.js","webpack:///./node_modules/core-js-pure/internals/has-own-property.js","webpack:///./node_modules/core-js-pure/stable/object/entries.js","webpack:///./node_modules/core-js-pure/internals/object-define-property.js","webpack:///./node_modules/core-js-pure/internals/an-object.js","webpack:///./node_modules/core-js-pure/internals/path.js","webpack:///./node_modules/core-js-pure/stable/array/find.js","webpack:///./node_modules/core-js-pure/internals/to-indexed-object.js","webpack:///./node_modules/core-js-pure/internals/classof-raw.js","webpack:///./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js-pure/internals/to-object.js","webpack:///./node_modules/core-js-pure/internals/length-of-array-like.js","webpack:///./node_modules/core-js-pure/stable/array/from.js","webpack:///./node_modules/core-js-pure/internals/iterators.js","webpack:///./node_modules/core-js-pure/internals/function-bind-context.js","webpack:///./node_modules/core-js-pure/stable/object/assign.js","webpack:///./node_modules/core-js-pure/internals/require-object-coercible.js","webpack:///./node_modules/core-js-pure/internals/get-built-in.js","webpack:///./node_modules/core-js-pure/internals/a-callable.js","webpack:///./node_modules/core-js-pure/internals/is-pure.js","webpack:///./node_modules/core-js-pure/internals/classof.js","webpack:///./node_modules/core-js-pure/internals/entry-unbind.js","webpack:///./node_modules/core-js-pure/stable/string/includes.js","webpack:///./node_modules/core-js-pure/internals/function-bind-native.js","webpack:///./node_modules/core-js-pure/internals/is-null-or-undefined.js","webpack:///./node_modules/core-js-pure/internals/add-to-unscopables.js","webpack:///./node_modules/core-js-pure/internals/internal-state.js","webpack:///./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack:///./node_modules/core-js-pure/internals/hidden-keys.js","webpack:///./node_modules/core-js-pure/internals/object-keys.js","webpack:///./node_modules/core-js-pure/internals/to-string.js","webpack:///./node_modules/core-js-pure/stable/object/keys.js","webpack:///./node_modules/core-js-pure/internals/indexed-object.js","webpack:///./node_modules/core-js-pure/internals/to-property-key.js","webpack:///./node_modules/core-js-pure/internals/object-is-prototype-of.js","webpack:///./node_modules/core-js-pure/internals/get-method.js","webpack:///./node_modules/core-js-pure/internals/try-to-string.js","webpack:///./node_modules/core-js-pure/internals/shared-store.js","webpack:///./node_modules/core-js-pure/internals/uid.js","webpack:///./node_modules/core-js-pure/internals/shared-key.js","webpack:///./node_modules/core-js-pure/internals/iterator-define.js","webpack:///./node_modules/core-js-pure/internals/function-uncurry-this-clause.js","webpack:///./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js-pure/internals/object-create.js","webpack:///./node_modules/core-js-pure/internals/to-integer-or-infinity.js","webpack:///./node_modules/core-js-pure/internals/enum-bug-keys.js","webpack:///./node_modules/core-js-pure/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js-pure/internals/define-built-in.js","webpack:///./node_modules/core-js-pure/internals/set-to-string-tag.js","webpack:///./node_modules/core-js-pure/internals/to-string-tag-support.js","webpack:///./node_modules/core-js-pure/internals/create-iter-result-object.js","webpack:///./node_modules/core-js-pure/internals/get-iterator-method.js","webpack:///./node_modules/core-js-pure/modules/es.array.iterator.js","webpack:///./node_modules/core-js-pure/internals/document-all.js","webpack:///./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack:///./node_modules/core-js-pure/internals/document-create-element.js","webpack:///./node_modules/core-js-pure/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js-pure/internals/is-symbol.js","webpack:///./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js-pure/internals/symbol-constructor-detection.js","webpack:///./node_modules/core-js-pure/internals/shared.js","webpack:///./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js-pure/internals/iterators-core.js","webpack:///./node_modules/core-js-pure/internals/object-keys-internal.js","webpack:///./node_modules/core-js-pure/internals/array-includes.js","webpack:///./node_modules/core-js-pure/internals/to-absolute-index.js","webpack:///./node_modules/core-js-pure/internals/to-length.js","webpack:///./node_modules/core-js-pure/internals/internal-metadata.js","webpack:///./node_modules/core-js-pure/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js-pure/internals/create-property.js","webpack:///./node_modules/core-js-pure/internals/iterate.js","webpack:///./node_modules/core-js-pure/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js-pure/internals/get-iterator.js","webpack:///./node_modules/core-js-pure/internals/iterator-close.js","webpack:///./node_modules/core-js-pure/internals/an-instance.js","webpack:///./node_modules/core-js-pure/internals/array-iteration.js","webpack:///./node_modules/core-js-pure/internals/array-species-create.js","webpack:///./node_modules/core-js-pure/internals/is-array.js","webpack:///./node_modules/core-js-pure/internals/is-constructor.js","webpack:///./node_modules/core-js-pure/internals/define-built-in-accessor.js","webpack:///./node_modules/core-js-pure/modules/es.string.iterator.js","webpack:///./node_modules/core-js-pure/internals/not-a-regexp.js","webpack:///./node_modules/core-js-pure/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js-pure/stable/map/index.js","webpack:///./node_modules/core-js-pure/stable/array/flat-map.js","webpack:///./node_modules/core-js-pure/stable/number/is-nan.js","webpack:///./node_modules/@paypal/sdk-constants/index.js","webpack:///./node_modules/@paypal/common-components/dist/ui.js","webpack:///./node_modules/core-js-pure/es/map/index.js","webpack:///./node_modules/core-js-pure/internals/weak-map-basic-detection.js","webpack:///./node_modules/core-js-pure/internals/to-primitive.js","webpack:///./node_modules/core-js-pure/internals/engine-v8-version.js","webpack:///./node_modules/core-js-pure/internals/engine-user-agent.js","webpack:///./node_modules/core-js-pure/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js-pure/internals/define-global-property.js","webpack:///./node_modules/core-js-pure/internals/function-apply.js","webpack:///./node_modules/core-js-pure/internals/is-forced.js","webpack:///./node_modules/core-js-pure/internals/function-name.js","webpack:///./node_modules/core-js-pure/internals/iterator-create-constructor.js","webpack:///./node_modules/core-js-pure/internals/object-define-properties.js","webpack:///./node_modules/core-js-pure/internals/math-trunc.js","webpack:///./node_modules/core-js-pure/internals/html.js","webpack:///./node_modules/core-js-pure/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js-pure/internals/object-to-string.js","webpack:///./node_modules/core-js-pure/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js-pure/internals/function-uncurry-this-accessor.js","webpack:///./node_modules/core-js-pure/internals/a-possible-prototype.js","webpack:///./node_modules/core-js-pure/modules/es.map.js","webpack:///./node_modules/core-js-pure/modules/es.map.constructor.js","webpack:///./node_modules/core-js-pure/internals/collection.js","webpack:///./node_modules/core-js-pure/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js-pure/internals/array-slice-simple.js","webpack:///./node_modules/core-js-pure/internals/object-is-extensible.js","webpack:///./node_modules/core-js-pure/internals/array-buffer-non-extensible.js","webpack:///./node_modules/core-js-pure/internals/freezing.js","webpack:///./node_modules/core-js-pure/internals/array-species-constructor.js","webpack:///./node_modules/core-js-pure/internals/inspect-source.js","webpack:///./node_modules/core-js-pure/internals/collection-strong.js","webpack:///./node_modules/core-js-pure/internals/define-built-ins.js","webpack:///./node_modules/core-js-pure/internals/set-species.js","webpack:///./node_modules/core-js-pure/internals/string-multibyte.js","webpack:///./node_modules/core-js-pure/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js-pure/internals/dom-iterables.js","webpack:///./node_modules/core-js-pure/es/object/assign.js","webpack:///./node_modules/core-js-pure/modules/es.object.assign.js","webpack:///./node_modules/core-js-pure/internals/object-assign.js","webpack:///./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js-pure/es/array/find.js","webpack:///./node_modules/core-js-pure/modules/es.array.find.js","webpack:///./node_modules/core-js-pure/es/array/includes.js","webpack:///./node_modules/core-js-pure/modules/es.array.includes.js","webpack:///./node_modules/core-js-pure/es/string/includes.js","webpack:///./node_modules/core-js-pure/modules/es.string.includes.js","webpack:///./node_modules/core-js-pure/internals/is-regexp.js","webpack:///./node_modules/core-js-pure/es/object/entries.js","webpack:///./node_modules/core-js-pure/modules/es.object.entries.js","webpack:///./node_modules/core-js-pure/internals/object-to-array.js","webpack:///./node_modules/core-js-pure/es/object/keys.js","webpack:///./node_modules/core-js-pure/modules/es.object.keys.js","webpack:///./node_modules/core-js-pure/es/string/starts-with.js","webpack:///./node_modules/core-js-pure/modules/es.string.starts-with.js","webpack:///./node_modules/core-js-pure/es/array/from.js","webpack:///./node_modules/core-js-pure/modules/es.array.from.js","webpack:///./node_modules/core-js-pure/internals/array-from.js","webpack:///./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js-pure/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js-pure/es/array/flat-map.js","webpack:///./node_modules/core-js-pure/modules/es.array.flat-map.js","webpack:///./node_modules/core-js-pure/internals/flatten-into-array.js","webpack:///./node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","webpack:///./node_modules/core-js-pure/modules/es.array.unscopables.flat-map.js","webpack:///./node_modules/core-js-pure/es/number/is-nan.js","webpack:///./node_modules/core-js-pure/modules/es.number.is-nan.js","webpack:///./node_modules/@paypal/sdk-constants/dist/paypal-sdk-constants.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@krakenjs/zalgo-promise/src/utils.js","webpack:///./node_modules/@krakenjs/zalgo-promise/src/exceptions.js","webpack:///./node_modules/@krakenjs/zalgo-promise/src/flush.js","webpack:///./node_modules/@krakenjs/zalgo-promise/src/promise.js","webpack:///./node_modules/@krakenjs/cross-domain-utils/src/util.js","webpack:///./node_modules/@krakenjs/cross-domain-utils/src/constants.js","webpack:///./node_modules/@krakenjs/cross-domain-utils/src/utils.js","webpack:///./node_modules/@krakenjs/cross-domain-safe-weakmap/src/util.js","webpack:///./node_modules/@krakenjs/cross-domain-safe-weakmap/src/weakmap.js","webpack:///./node_modules/@krakenjs/belter/src/util.js","webpack:///./node_modules/@krakenjs/cross-domain-safe-weakmap/src/native.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/construct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack:///./node_modules/@krakenjs/belter/src/dom.js","webpack:///./node_modules/@krakenjs/belter/src/constants.js","webpack:///./node_modules/@krakenjs/belter/src/storage.js","webpack:///./node_modules/@krakenjs/belter/src/http.js","webpack:///./node_modules/@krakenjs/belter/src/css.js","webpack:///./node_modules/@krakenjs/post-robot/src/global.js","webpack:///./node_modules/@krakenjs/post-robot/src/lib/hello.js","webpack:///./node_modules/@krakenjs/post-robot/src/conf/constants.js","webpack:///./node_modules/@krakenjs/post-robot/src/lib/windows.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/common.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/constants.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serialize.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/function.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/error.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/promise.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/regex.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/date.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/array.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/object.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/string.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/number.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/boolean.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/null.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/serializers/undefined.js","webpack:///./node_modules/@krakenjs/universal-serialize/src/deserialize.js","webpack:///./node_modules/@krakenjs/post-robot/src/serialize/window.js","webpack:///./node_modules/@krakenjs/post-robot/src/bridge/common.js","webpack:///./node_modules/@krakenjs/post-robot/src/serialize/function.js","webpack:///./node_modules/@krakenjs/post-robot/src/serialize/serialize.js","webpack:///./node_modules/@krakenjs/post-robot/src/serialize/promise.js","webpack:///./node_modules/@krakenjs/post-robot/src/drivers/send/strategies.js","webpack:///./node_modules/@krakenjs/post-robot/src/drivers/send/index.js","webpack:///./node_modules/@krakenjs/post-robot/src/drivers/listeners.js","webpack:///./node_modules/@krakenjs/post-robot/src/drivers/receive/index.js","webpack:///./node_modules/@krakenjs/post-robot/src/drivers/receive/types.js","webpack:///./node_modules/@krakenjs/post-robot/src/public/on.js","webpack:///./node_modules/@krakenjs/post-robot/src/lib/compat.js","webpack:///./node_modules/@krakenjs/post-robot/src/public/send.js","webpack:///./node_modules/@krakenjs/post-robot/src/conf/config.js","webpack:///./node_modules/@krakenjs/post-robot/src/setup.js","webpack:///./node_modules/@krakenjs/post-robot/src/clean.js","webpack:///./node_modules/@krakenjs/zoid/src/lib/global.js","webpack:///./node_modules/@krakenjs/zoid/src/lib/serialize.js","webpack:///./node_modules/@krakenjs/post-robot/src/index.js","webpack:///./node_modules/@krakenjs/zoid/src/constants.js","webpack:///./node_modules/@krakenjs/zoid/src/lib/window.js","webpack:///./node_modules/@krakenjs/zoid/src/child/props.js","webpack:///./node_modules/@krakenjs/zoid/src/child/child.js","webpack:///./node_modules/@krakenjs/zoid/src/component/props.js","webpack:///./node_modules/@krakenjs/zoid/src/parent/props.js","webpack:///./node_modules/@krakenjs/zoid/src/parent/parent.js","webpack:///./node_modules/@krakenjs/zoid/src/drivers/react.js","webpack:///./node_modules/@krakenjs/zoid/src/drivers/vue.js","webpack:///./node_modules/@krakenjs/zoid/src/drivers/vue3.js","webpack:///./node_modules/@krakenjs/zoid/src/drivers/angular.js","webpack:///./node_modules/@krakenjs/zoid/src/drivers/angular2.js","webpack:///./node_modules/@krakenjs/zoid/src/component/templates/container.js","webpack:///./node_modules/@krakenjs/zoid/src/component/templates/component.js","webpack:///./node_modules/@krakenjs/zoid/src/component/component.js","webpack:///./node_modules/@paypal/sdk-client/src/script.js","webpack:///./node_modules/@paypal/sdk-client/src/global.js","webpack:///./node_modules/@krakenjs/beaver-logger/src/constants.js","webpack:///./node_modules/@krakenjs/beaver-logger/src/config.js","webpack:///./node_modules/@krakenjs/beaver-logger/src/util.js","webpack:///./node_modules/@krakenjs/beaver-logger/src/logger.js","webpack:///./node_modules/@krakenjs/beaver-logger/src/http.js","webpack:///./node_modules/@paypal/sdk-client/src/logger.js","webpack:///./node_modules/@paypal/sdk-client/src/domains.js","webpack:///./node_modules/@paypal/sdk-client/src/config.js","webpack:///./node_modules/@paypal/sdk-constants/src/observability.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@paypal/sdk-client/src/constants.js","webpack:///./node_modules/@paypal/sdk-client/src/fraudnet.js","webpack:///./node_modules/@paypal/sdk-constants/src/env.js","webpack:///./node_modules/@paypal/sdk-client/src/api.js","webpack:///./node_modules/@paypal/sdk-client/src/events.js","webpack:///./node_modules/@paypal/sdk-client/src/dpop.js","webpack:///./src/utils/constants.js","webpack:///./src/utils/sdk.js","webpack:///./node_modules/@krakenjs/jsx-pragmatic/src/node.js","webpack:///./node_modules/@krakenjs/jsx-pragmatic/src/constants.js","webpack:///./node_modules/@krakenjs/jsx-pragmatic/src/renderers/dom.js","webpack:///./node_modules/@krakenjs/jsx-pragmatic/src/util.js","webpack:///./src/utils/functional.js","webpack:///./src/utils/miscellaneous.js","webpack:///./src/utils/debug.js","webpack:///./src/utils/objects.js","webpack:///./src/utils/elements.js","webpack:///./src/utils/global.js","webpack:///./src/utils/events.js","webpack:///./src/utils/logger.js","webpack:///./src/utils/observers.js","webpack:///./src/library/zoid/treatments/component.js","webpack:///./src/utils/experiments.js","webpack:///./src/utils/performance.js","webpack:///./node_modules/@krakenjs/belter/src/device.js","webpack:///./src/utils/adblock.js","webpack:///./src/utils/stats.js","webpack:///./src/library/zoid/message/validation.js","webpack:///./src/library/zoid/message/containerTemplate.jsx","webpack:///./src/library/zoid/message/component.js","webpack:///./node_modules/@paypal/sdk-constants/src/params.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./src/library/zoid/modal/containerTemplate.jsx","webpack:///./src/library/zoid/modal/prerenderTemplate.jsx","webpack:///./src/library/zoid/modal/component.js","webpack:///./src/library/controllers/modal/interface.js","webpack:///./src/library/controllers/message/interface.js","webpack:///./src/library/controllers/message/adapter.js","webpack:///./src/library/interface/index.js","webpack:///./src/library/controllers/message/setup.js","webpack:///./src/library/controllers/modal/setup.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","hasOwnProperty","p","s","exec","error","NATIVE_BIND","require","FunctionPrototype","Function","prototype","uncurryThisWithBind","fn","apply","arguments","$documentAll","documentAll","all","IS_HTMLDDA","argument","global","shared","hasOwn","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","parent","fails","uncurryThis","isCallable","getOwnPropertyDescriptor","f","isForced","path","createNonEnumerableProperty","wrapConstructor","NativeConstructor","Wrapper","a","b","this","length","options","source","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","descriptor","TARGET","target","GLOBAL","STATIC","stat","PROTO","proto","nativeSource","targetPrototype","forced","dontCallGetSet","wrap","sham","real","check","it","Math","globalThis","window","self","toObject","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$TypeError","TypeError","$defineProperty","$getOwnPropertyDescriptor","O","P","Attributes","current","configurable","writable","isObject","$String","String","IndexedObject","requireObjectCoercible","toString","stringSlice","slice","definePropertyModule","createPropertyDescriptor","$Object","toLength","obj","aCallable","that","undefined","isNullOrUndefined","aFunction","variable","namespace","method","tryToString","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","wellKnownSymbol","CORRECT_ARGUMENTS","tag","result","tryGet","callee","getBuiltIn","test","set","has","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","state","store","WeakMap","metadata","facade","STATE","enforce","getterFor","TYPE","type","bitmap","internalObjectKeys","enumBugKeys","keys","classof","split","propertyIsEnumerable","toPrimitive","isSymbol","isPrototypeOf","V","func","defineGlobalProperty","id","postfix","random","$","IS_PURE","FunctionName","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","defineBuiltIn","Iterators","IteratorsCore","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","returnThis","Iterable","NAME","IteratorConstructor","next","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","$propertyIsEnumerable","NASHORN_BUG","1","activeXDocument","definePropertiesModule","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","document","domain","style","display","appendChild","src","contentWindow","open","F","Properties","trunc","number","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","constructor","TAG","SET_METHOD","done","getMethod","toIndexedObject","addToUnscopables","InternalStateModule","defineIterator","createIterResultObject","setInternalState","getInternalState","Array","iterated","kind","index","Arguments","createElement","EXISTS","$Symbol","iterator","V8_VERSION","getOwnPropertySymbols","symbol","push","version","copyright","license","propertyIsEnumerableModule","PrototypeOfArrayIteratorPrototype","arrayIterator","indexOf","names","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","toIntegerOrInfinity","max","min","integer","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","isExtensible","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","enable","getOwnPropertyNames","splice","fastKey","getWeakData","onFreeze","concat","propertyKey","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","ArrayPrototype","usingIterator","iteratorMethod","innerResult","innerError","Prototype","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","forEach","map","filter","some","every","find","findIndex","filterReject","arraySpeciesConstructor","originalArray","isArray","inspectSource","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","charAt","string","point","isRegExp","MATCH","METHOD_NAME","regexp","error1","error2","default","__webpack_exports__","_renderChildren","children","renderer","_i2","renderedChild","render","_i4","subchild","Spinner","SpinnerPage","VenmoSpinner","VenmoSpinnerPage","node_ElementNode","ElementNode","props","onRender","_proto","renderChildren","node_FragmentNode","FragmentNode","node_TextNode","TextNode","text","node_ComponentNode","ComponentNode","component","_proto4","renderComponent","child","normalizeChildren","_i6","_i8","_normalizeChildren2","_ELEMENT_DEFAULT_XML_","_ATTRIBUTE_DEFAULT_XM","_ADD_CHILDREN","node_node","element","_len","_key","Fragment","ELEMENT_DEFAULT_XML_NAMESPACE","svg","ATTRIBUTE_DEFAULT_XML_NAMESPACE","createTextElement","doc","node","createTextNode","addProps","_Object$keys2","prop","val","match","addEventListener","toLowerCase","xmlNamespace","setAttributeNS","setAttribute","tagName","replace","floor","ADD_CHILDREN","firstChild","Error","win","docElement","documentElement","removeChild","opts","_opts$doc","_xmlNamespaceDomRenderer","childNode","createElementNS","addChildren","_domRenderer","script","_node$renderChildren2","innerHTML","_el$querySelectorAll2","querySelectorAll","parentNode","newScript","textContent","replaceChild","_ref","class","nonce","_ref2","Map","ordinaryToPrimitive","TO_PRIMITIVE","input","pref","exoticToPrim","userAgent","process","Deno","versions","v8","navigator","valueOf","Reflect","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","getDescriptor","ENUMERABLE_NEXT","objectKeys","defineProperties","ceil","x","uncurryThisAccessor","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","collection","init","InternalMetadataModule","iterate","anInstance","internalStateGetterFor","CONSTRUCTOR_NAME","wrapper","common","Constructor","IS_WEAK","ADDER","NativePrototype","exported","IS_ADDER","size","getConstructor","setStrong","$getOwnPropertyNames","arraySlice","windowNames","getWindowNames","createProperty","$Array","start","end","k","fin","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","ArrayBuffer","buffer","preventExtensions","isConstructor","SPECIES","C","functionToString","defineBuiltInAccessor","defineBuiltIns","setSpecies","first","last","define","previous","entry","getEntry","removed","clear","prev","add","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","unsafe","charCodeAt","CONVERT_TO_STRING","pos","second","S","position","codeAt","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","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","assign","arity","getOwnPropertySymbolsModule","$assign","A","B","chr","join","T","argumentsLength","j","entryUnbind","$find","SKIPS_HOLES","$includes","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","$entries","objectGetPrototypeOf","IE_BUG","TO_ENTRIES","IE_WORKAROUND","nativeKeys","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","search","from","checkCorrectnessOfIteration","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","ENTRIES","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","flattenIntoArray","flatMap","sourceLen","doesNotExceedSafeInteger","original","depth","mapper","thisArg","elementLen","targetIndex","sourceIndex","mapFn","Number","isNaN","E","N","R","G","K","Y","y","W","g","J","h","v","e","_","D","X","I","M","H","u","L","Z","U","Q","PAYPAL","VENMO","APPLEPAY","ITAU","CREDIT","PAYLATER","CARD","IDEAL","SEPA","BANCONTACT","GIROPAY","SOFORT","EPS","MYBANK","P24","PAYU","BLIK","TRUSTLY","OXXO","BOLETO","BOLETOBANCARIO","WECHATPAY","MERCADOPAGO","MULTIBANCO","SATISPAY","PAIDY","ZIMPLER","MAXIMA","VISA","MASTERCARD","AMEX","DISCOVER","HIPER","ELO","JCB","CUP","DINERS","MAESTRO","EFTPOS","CB_NATIONALE","BALANCE","BANK","PAY_IN_3","PAY_IN_4","AD","AE","AG","AI","AL","AM","AN","AO","AR","AT","AU","AW","AZ","BA","BB","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CG","CH","CI","CK","CL","CM","CN","CO","CR","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GI","GL","GM","GN","GP","GR","GT","GW","GY","HK","HN","HR","HU","ID","IE","IL","IN","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LC","LI","LK","LS","LU","LV","MA","MC","MD","ME","MG","MH","MK","ML","MN","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PL","PM","PN","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SZ","TC","TD","TG","TH","TJ","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","VA","VC","VE","VG","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","CS","DA","EL","EN","HE","JA","KO","SQ","TL","VI","ZH","ZH_HANT","CAPTURE","AUTHORIZE","ORDER","TOKENIZE","SUBSCRIPTION","TRUE","FALSE","AED","AFN","ALL","AMD","ANG","ARS","AOA","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BZD","CAD","CDF","CHF","CLP","COP","CRC","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ETB","ERN","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","ISK","JMD","JOD","JPY","KGS","KES","KHR","KMF","KRW","KWD","KYD","KZT","LAK","LKR","LRD","LSL","MAD","MDL","MGA","MKD","MNT","MOP","MRO","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SEK","SGD","SHP","SLE","SLL","SOS","SRD","STN","SVC","SZL","THB","TMT","TJS","TND","TOP","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","AMOUNT","API_STAGE_HOST","CLIENT_METADATA_ID","CLIENT_TOKEN","CSP_NONCE","ENABLE_3DS","JS_SDK_LIBRARY","MERCHANT_ID","NAMESPACE","PAGE_TYPE","PARTNER_ATTRIBUTION_ID","POPUPS_DISABLED","SDK_INTEGRATION_SOURCE","SDK_TOKEN","SHOPPER_SESSION_ID","STAGE_HOST","USER_EXPERIENCE_FLOW","USER_ID_TOKEN","COMPONENTS","ENV","DEBUG","CACHEBUST","CLIENT_ID","LOCALE","CURRENCY","INTENT","COMMIT","VAULT","BUYER_COUNTRY","ENABLE_FUNDING","DISABLE_FUNDING","DISABLE_CARD","INTEGRATION_DATE","STAGE_ALIAS","CDN_REGISTRY","VERSION","BUTTONS","CARD_FIELDS","HOSTED_BUTTONS","HOSTED_FIELDS","HTTP","HTTPS","HOME","PRODUCT","CART","CHECKOUT","PRODUCT_LISTING","SEARCH_RESULTS","PRODUCT_DETAILS","MINI_CART","VAULTABLE","LOCAL","STAGE","SANDBOX","PRODUCTION","TEST","ANDROID","IOS","VALIDATION_ERROR","BUTTON_LAYOUT","BUTTON_MESSAGE_AMOUNT","BUTTON_MESSAGE_CREDIT_PRODUCT_IDENTIFIER","BUTTON_MESSAGE_COLOR","BUTTON_MESSAGE_CURRENCY","BUTTON_MESSAGE_ALIGN","BUTTON_MESSAGE_POSITION","BUTTON_MESSAGE_OFFER_COUNTRY","BUTTON_MESSAGE_OFFER_TYPE","BUTTON_MESSAGE_TYPE","BUTTON_SESSION_UID","BUTTON_SOURCE","BUTTON_TYPE","BUTTON_VERSION","CHECKOUT_APP","CHOSEN_FI_TYPE","CHOSEN_FUNDING","CONTEXT_CORRID","CONTEXT_ID","CONTEXT_TYPE","CPL_CHUNK_METRICS","CPL_COMP_METRICS","CPL_QUERY_METRICS","DATA_SOURCE","ERROR_CODE","ERROR_DESC","EVENT_NAME","EXPERIMENT_EXPERIENCE","EXPERIMENT_NAME","EXPERIMENT_TREATMENT","FEED","FI_ID","FI_LIST","FIELDS_COMPONENT_SESSION_ID","FUNDING_COUNT","FUNDING_LIST","HOSTED_BUTTON_ID","INTEGRATION_IDENTIFIER","IS_VAULT","MERCHANT_DOMAIN","MOBILE_APP_VERSION","MOBILE_BUNDLE_IDENTIFIER","OPTION_SELECTED","PAGE","PAGE_LOAD_TIME","PAY_ID","PAY_NOW","PAYMENT_FLOW","POTENTIAL_PAYMENT_METHODS","RECOMMENDED_PAYMENT","REFERER","REFERRER_DOMAIN","RESPONSE_DURATION","SDK_CACHE","SDK_ENVIRONMENT","SDK_LOAD_TIME","SDK_NAME","SDK_VERSION","SELECTED_FI","SELLER_ID","SESSION_UID","STICKINESS_ID","TIMESTAMP","TOKEN","TRANSITION","TRANSITION_TIME","TREATMENT_NAME","USER_ACTION","USER_AGENT","USER_IDENTITY_METHOD","AVAILABLE_PAYMENT_NETWORKS","SELECTED_CARD_TYPE","CONTINUE","PAYMENTS_SDK","sdk_platform","major_version","DESKTOP","MOBILE","_setPrototypeOf","_inheritsLoose","subClass","superClass","_extends","isPromise","item","Promise","Window","then","err","flushPromise","dispatchedErrors","possiblyUnhandledPromiseHandlers","activeCount","flushActive","promise","resolve","startActive","endActive","ZalgoPromise","handler","_this","resolved","rejected","errorHandled","handlers","dispatching","stack","isAsync","res","reject","dispatch","_this2","setTimeout","dispatchPossiblyUnhandledError","asyncReject","chain","firstPromise","secondPromise","_handlers$i","onSuccess","onError","promiseResult","catch","finally","onFinally","try","timeout","time","_this3","clearTimeout","toPromise","lazy","promises","count","results","prom","hash","awaitPromises","_loop","items","onPossiblyUnhandledException","cancel","context","args","delay","flush","isRegex","WINDOW_TYPE","IFRAME","POPUP","IE_WIN_ACCESS_ERROR","getActualProtocol","location","protocol","getProtocol","mockDomain","isAboutProtocol","getParent","getOpener","opener","canReadFromWindow","getActualDomain","PROTOCOL","host","getDomain","isSameDomain","desc","isMockProtocol","isActuallySameDomain","assertSameDomain","isAncestorParent","childParent","getParents","getFrames","frames","len","frame","getAllChildFrames","_i3","_getFrames2","_i5","_getAllChildFrames2","getTop","top","_i7","_getAllChildFrames4","getAllFramesInWindow","iframeWindows","iframeFrames","isWindowClosed","allowMock","closed","message","mockclosed","iframeIndex","safeIndexOf","ownerDocument","contains","isFrameWindowClosed","getFrameByName","winFrames","_i9","childFrame","getAncestor","anyMatch","collection1","collection2","_i17","item1","_i19","getDistanceFromTop","distance","isSameTopWindow","win1","win2","top1","top2","allFrames1","allFrames2","opener1","opener2","matchDomain","pattern","origin","Boolean","JSON","stringify","subpattern","getDomainFromUrl","url","onCloseWindow","callback","maxtime","Infinity","isWindow","__cross_domain_utils_window_check__","getFrameForWindow","frameElement","_i21","_document$querySelect2","closeWindow","isIframe","parentElement","objectIDs","CrossDomainSafeWeakMap","weakmap","freeze","testWeakMap","testKey","hasNativeWeakMap","_cleanupClosedWindows","delete","isSafeToReadWrite","getOrSet","_getPrototypeOf","_isNativeReflectConstruct","Proxy","Date","_construct","Parent","Class","isNativeReflectConstruct","instance","_wrapNativeSuper","_cache","isElement","passed","Element","nodeType","getFunctionName","__name__","displayName","setFunctionName","base64encode","str","btoa","encodeURIComponent","p1","fromCharCode","parseInt","Buffer","uniqueID","chars","toISOString","getGlobal","__GLOBAL__","serializeArgs","subkey","getObjectID","getEmptyObject","memoizeGlobalIndex","memoizeGlobalIndexValidFrom","memoize","simpleCache","thisCache","_options$thisNamespac","thisNamespace","cacheTime","memoizeIndex","memoizedFunction","cache","cacheKey","_unused","cacheResult","now","reset","memoizePromise","memoizedPromiseFunction","_arguments","_len2","_key2","inlineMemoize","logic","__inline_memoize_cache__","once","stringifyError","level","newErr","extend","objFilter","identity","safeInterval","loop","eventEmitter","triggered","emitter","on","eventName","handlerList","cancelled","listener","trigger","_len3","_key3","triggerOnce","_len4","_key4","dasherizeToCamel","toUpperCase","defineLazyProp","arrayFrom","isObjectObject","isPlainObject","replaceObject","replacer","fullKey","_loop2","itemKey","_loop3","isDefined","cleanup","cleanErr","tasks","cleaned","cleaner","register","task","shift","assertExists","thing","ExtendableError","_Error","_this6","captureStackTrace","getBody","body","isDocumentReady","readyState","isDocumentInteractive","urlEncode","parseQuery","queryString","params","_queryString$split2","pair","decodeURIComponent","extendQuery","originalQuery","isBrowser","isLocalStorageEnabled","localStorage","setItem","getItem","removeItem","container","getElementSafe","querySelector","elementReady","interval","setInterval","clearInterval","awaitFrameLoadPromises","PopupOpenError","_ExtendableError","awaitFrameLoad","cleanIframes","linkFrameWindow","awaitFrameWindow","loadedFrame","styleText","className","attributes","_i10","styleSheet","cssText","allowTransparency","backgroundColor","border","isIE","hasAttribute","getElement","event","removeEventListener","showElement","setProperty","hideElement","destroyElement","isElementClosed","onResize","_temp","_ref2$width","width","_ref2$height","height","_ref2$interval","_ref2$win","currentWidth","offsetWidth","currentHeight","offsetHeight","canceled","observer","getClientRects","isElementVisible","newWidth","newHeight","ResizeObserver","observe","MutationObserver","childList","subtree","characterData","disconnect","isShadowElement","currentScript","getCurrentScript","getStackTrace","stackDetails","scriptLocation","_i22","_Array$prototype$slic2","getElementsByTagName","reverse","inferCurrentScript","currentUID","getCurrentScriptUID","getAttribute","ATTRIBUTES","hashedString","total","abs","strHashStr","dataset","getStorage","_ref$lifetime","lifetime","stickySessionId","accessedStorage","STORAGE_KEY","newStateID","getState","storage","localStorageEnabled","rawStorage","parse","getID","getSession","session","__session__","created","guid","isStateFresh","getSessionState","getSessionID","headerBuilders","request","_ref$method","_ref$headers","headers","json","_ref$win","_ref$timeout","normalizedHeaders","builtHeaders","headerBuilder","_Object$keys4","xhr","XMLHttpRequest","responseHeaders","rawHeaders","_rawHeaders$trim$spli2","trim","_line$split","parseHeaders","getAllResponseHeaders","status","contentType","isJSON","responseBody","responseText","evt","setRequestHeader","ontimeout","send","isPerc","toNum","toPx","toCSS","normalizeDimension","dim","getGlobalKey","__POST_ROBOT__","globalKey","getObj","globalStore","defStore","storeKey","defVal","del","WildCard","getWildcard","WINDOW_WILDCARD","windowStore","winStore","getStore","getInstanceID","resolveHelloPromise","helloPromises","existingPromise","newPromise","sayHello","_ref4","instanceID","_ref5","getWindowInstanceID","_ref6","_ref7","markWindowKnown","isSerializedType","__type__","determineType","serializeType","__val__","SERIALIZER","_SERIALIZER","code","toJSON","defaultSerializers","DESERIALIZER","_DESERIALIZER","RegExp","defaultDeserializers","cleanupProxyWindows","idToProxyWindow","_idToProxyWindow$keys2","shouldClean","getSerializedWindow","winPromise","_ref$id","windowNamePromise","windowTypePromise","getName","getType","focus","isClosed","setLocation","href","_opts$method","_ref3","_ref3$method","form","_i24","_body$key","submit","submitForm","setName","sameDomain","ProxyWindow","serializedWindow","isProxyWindow","actualWindow","actualWindowPromise","setWindow","isPopup","_this4","isPopupPromise","getNamePromise","reopenPromise","focusPromise","getWindow","awaitWindow","matchWindow","_this5","proxyInstanceID","knownWindowInstanceID","unwrap","serialize","toProxyWindow","deserialize","_ref8","_ref9","addMethod","methodStore","proxyWindowMethods","lookupMethod","serializeFunction","destination","meth","methodSource","arg","listenForFunctionCalls","__id__","serializeMessage","_serialize","serializers","serializer","serializePromise","deserializeMessage","_deserialize","deserializers","deserializer","serializedPromise","deserializePromise","serializedFunction","getDeserializedFunction","crossDomainFunctionWrapper","fireAndForget","__origin__","__source__","deserializeFunction","SEND_MESSAGE_STRATEGIES","sendMessage","domainBuffer","messages","serializedMessage","strategies","errors","strategyName","getResponseListener","deleteResponseListener","isResponseListenerErrored","getRequestListener","requestListeners","winQualifier","nameListeners","domainListeners","_domainListeners$__DO2","_domainListeners$__DO3","regex","receiveMessage","receivedMessages","parsedMessage","parseMessages","deserializeMessages","_ret","logName","sendResponse","ack","pathname","handleError","handleRequest","handleResponse","handleAck","requestListener","addRequestListener","winCandidate","requestListenerPromise","actualWin","listenersCollection","_win2","_i12","_domain2","_i14","existingListener","strDomain","winNameDomainRegexListeners","winNameDomainRegexListener","winNameListeners","winNameDomainListeners","errorHandler","postMessage","mockUserAgent","getUserAgent","foreignGlobal","winOrProxyWin","domainMatcher","responseTimeout","childTimeout","validateOptions","actualParent","_i15","_getFrames8","isAncestor","getHelloPromise","awaitWindowHello","targetDomain","actualDomain","normalizedDomain","normalizeDomain","responseListener","addResponseListener","reqPromises","markResponseListenerErrored","totalAckTimeout","isWindowKnown","totalResTimeout","ackTimeout","resTimeout","setup","initialized","setupGlobalReceiveMessage","sourceElement","originalEvent","messageListener","listenForMessages","cleanUpWindow","_requestPromises$get2","__ZOID__","tryGlobal","getProxyObject","basicSerialize","getUIDRefStore","references","crossDomainSerialize","metaData","sender","receiver","_ref$passByReference","passByReference","_ref$basic","basic","proxyWin","internalSerializeMessage","reference","getRawRef","serializedData","cleanReference","ref","crossDomainDeserialize","_ref2$basic","atob","base64decode","basicDeserialize","getRefValue","internalDeserializeMessage","COMPONENT_ERROR","NAVIGATED_AWAY","COMPONENT_DESTROYED","COMPONENT_CLOSED","WINDOW_CLOSED","IFRAME_CLOSE","CONTEXT","buildChildWindowName","serializedPayload","parseWindowName","windowName","_windowName$split","zoidcomp","serializedInitialPayload","parseInitialParentPayload","_crossDomainDeseriali","windowRef","getNthParent","getNthParentFromTop","ancestor","_getAllFramesInWindow2","windows","findChildFrameByName","_i11","_getFrames4","namedFrame","findFrameByName","getWindowByRef","payload","getInitialParentPayload","getWindowRef","targetWindow","currentWindow","normalizeChildProp","propsDef","helpers","childDecorate","onProps","resize","getParentDomain","show","hide","export","getSiblings","destroy","defaultNoop","decorateOnce","eachProp","serializeProps","propDef","_METHOD$GET$METHOD$PO","_METHOD$GET$METHOD$PO2","getParam","queryParam","bodyParam","getValue","queryValue","bodyValue","finalParam","finalValue","serialization","dotify","prefix","newobj","dotkey","mapProps","parentComponent","currentProxyWin","currentProxyContainer","childComponent","currentChildDomain","currentContainer","_ref$overrides","overrides","_ref$parentWin","parentWin","containerTemplate","prerenderTemplate","dimensions","autoResize","domainMatch","xports","initPromise","handledErrors","clean","inputProps","internalState","visible","isRenderFinished","onErrorOverride","getProxyContainerOverride","getProxyContainer","showOverride","hideOverride","closeOverride","renderContainerOverride","renderContainer","getProxyWindowOverride","getProxyWindow","setProxyWinOverride","setProxyWin","openFrameOverride","openFrame","openPrerenderFrameOverride","openPrerenderFrame","prerenderOverride","prerender","openOverride","openPrerenderOverride","openPrerender","watchForUnloadOverride","watchForUnload","getInternalStateOverride","setInternalStateOverride","getDimensions","resolveInitPromise","rejectInitPromise","getPropsForChild","initialChildDomain","sendToChild","trustedChild","trustedDomains","reduce","acc","newInternalState","windowProp","setState","getUrl","getAttributes","getInitialChildDomain","title","proxyPrerenderFrame","prerenderFrame","prerenderFrameWindow","getCurrentWindowReferenceUID","actualComponentWindow","initChild","childDomain","childExports","_currentProxyWin","_currentProxyWin2","proxyFrame","_getDimensions","_getDimensions$width","_getDimensions$height","outerWidth","_options$closeOnUnloa","closeOnUnload","_options$name","left","round","screenX","screen","outerHeight","screenY","toolbar","menubar","resizable","scrollbars","popup","unloadWindowListener","closeParentWindowListener","watchForClose","isCurrentContainerClosed","checkWindowClose","secondIsClosed","exportsPromise","xport","actualExports","renderTemplate","proxyPrerenderWin","prerenderWindow","isBlankDomain","_arrayFrom2","_arrayFrom4","writeElementToWindow","_autoResize$width","_autoResize$height","_autoResize$element","prerenderResizeListener","_ref10","proxyContainer","_ref11","rerender","_ref12","innerContainer","containerWatcher","sacrificialFrame","sacrificialFrameWin","mutationObservers","_i18","elementClosed","mutationElement","mutationObserver","frameWin","watchElementForClose","removeError","getHelpers","updateProps","setProps","newInputProps","existingProps","valueDetermined","alias","required","decorate","getDerivedValue","extendProps","newProps","childProps","containerElement","insertShadowSlot","shadowHost","shadowRoot","getShadowRoot","getShadowHost","slotName","slot","slotProvider","onPrerender","onDisplay","onRendered","onPrerendered","onClose","onDestroy","onFocus","_ref14","childDomainMatch","checkAllowRender","delegatePromise","delegateProps","propName","allowDelegate","childOverridesPromise","POST_MESSAGE","_ref13","parentComp","getDelegateOverrides","childOverrides","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","_len11","_key11","_len12","_key12","delegate","watchForUnloadPromise","buildBodyPromise","onRenderPromise","getProxyContainerPromise","getProxyWindowPromise","finalSetPropsPromise","buildUrlPromise","query","originalUrl","originalHash","_url$split","_originalUrl$split","hashString","extendUrl","normalizeMockUrl","buildWindowNamePromise","_temp2","_ref6$target","checkClose","buildInitialChildPayload","childPayload","_crossDomainSerialize","buildSerializedChildPayload","openFramePromise","openPrerenderFramePromise","renderContainerPromise","_ref15","openPromise","_ref16","openPrerenderPromise","_ref17","setStatePromise","prerenderPromise","_ref18","setWindowNamePromise","_ref19","getMethodPromise","_ref20","loadUrlPromise","windowUrl","_ref21","watchForClosePromise","onDisplayPromise","openBridgePromise","runTimeoutPromise","onRenderedPromise","getProps","getExports","react","React","ReactDOM","_React$Component","_class","componentDidMount","findDOMNode","componentDidUpdate","Component","vue","Vue","inheritAttrs","mounted","$el","$attrs","styleObject","watch","deep","vue3","template","angular","ng","directive","scope","restrict","controller","$scope","$element","safeApply","$root","$$phase","$apply","$watch","angular2","AngularComponent","NgModule","ElementRef","NgZone","Inject","ComponentInstance","elementRef","zone","internalProps","_props","run","ngOnInit","targetElement","nativeElement","ngDoCheck","obj1","obj2","checked","equals","annotations","parameters","selector","inputs","ModuleInstance","declarations","defaultContainerTemplate","div","cspNonce","classList","remove","defaultPrerenderTemplate","spinner","cleanInstances","cleanZoid","allowDelegateListener","delegateListener","bridgeUrl","_options$props","_options$getExtension","getExtensions","_options$dimensions","_options$autoResize","_options$allowedParen","allowedParentDomains","_options$attributes","_options$defaultConte","defaultContext","_options$containerTem","_options$prerenderTem","validate","_options$eligible","eligible","_options$logger","logger","info","_options$exports","xportsDefinition","_options$children","valuePromise","normalizeOptions","driverCache","instances","isChild","isChildComponentWindow","registerChild","xprops","components","onPropHandlers","_getInitialParentPayl","parentComponentWindow","parentDomain","parentExports","initialProps","version1","version2","versionCompatabilityCheck","parentExport","parentResize","parentInit","anyParent","currentParent","winParent","isUpdate","normalizedProps","normalizeChildProps","updatedChildName","componentName","_crossDomainDeseriali2","childWindowName","updateChildWindowNameWithRef","checkParentDomain","ZOID","_eligible","eligibility","reason","clone","_ref4$decorate","getDefaultContext","finalContext","getDefaultContainer","newInstance","renderTo","childComponents","childName","Child","childInputProps","parentProps","getChildren","isEligible","_ref2$data","driver","driverName","dep","drivers","canRenderTo","setupPostRobot","comp","getSDKScript","errorString","buildScriptNotFoundError","__SDK_HOST__","__PATH__","_sdkScript$attributes2","attr","token","_JSON$parse$options","customer_id","AUTO_FLUSH_LEVEL","LOG_LEVEL_PRIORITY","extendIfDefined","Logger","metricNamespacePrefix","_ref$logLevel","logLevel","_ref$transport","transport","_ref$enableSendBeacon","enableSendBeacon","httpWindow","beaconResult","hasHeaders","sendBeacon","Blob","canUseSendBeacon","_ref2$useBlob","useBlob","blob","_ref$flushInterval","flushInterval","events","tracking","metrics","payloadBuilders","metaBuilders","trackingBuilders","metricDimensionBuilders","print","console","log","warning","immediateFlush","builder","localPromise","logPayload","timestamp","enqueue","addBuilder","builders","metric","metricPayload","metricNamespace","debug","warn","track","trackingPayload","metricCounter","_metricPayload$value","metricEventName","metricValue","metricType","metricGauge","metricHistogram","addPayloadBuilder","addMetaBuilder","addMetricDimensionBuilder","addTrackingBuilder","addHeaderBuilder","setTransport","newTransport","configure","__buffer__","getLogger","__PAYPAL_DOMAIN__","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","FRAUDNET_URL","_FRAUDNET_URL","env","_ref3$queryStringPara","queryStringParams","_ref$cspNonce","clientMetadataID","appName","_document$body","config","io","cb1","sandbox","configScript","createConfigScript","_collect","fraudnetPromise","_ref2$queryStringPara","_document$body2","fraudnetScript","fraudnetUrl","fnCallback","createFraudnetScript","collect","asyncData","clientID","basicAuth","__PAYPAL_API_DOMAIN__","Authorization","grant_type","access_token","keyPair","KEY_OPTIONS","alg","modulusLength","publicExponent","Uint8Array","extractable","sign","usages","generateKeyPair","_yield$window$crypto$","crypto","subtle","generateKey","publicKey","privateKey","stringToBytes","bytesToString","bytes","base64encodeUrlSafe","sha256","digest","binaryString","_x","jsonWebKeyThumbprint","jwk","crv","kty","_x2","createJWT","accessToken","uri","exportKey","encodedHeader","typ","ath","cnf","jkt","htm","htu","iat","jti","randomUUID","encodedPayload","signature","_x3","OFFER","_yield$generateKeyPai","DPoP","PAY_LATER_LONG_TERM","PAY_LATER_SHORT_TERM","PAY_LATER_PAY_IN_1","PAYPAL_CREDIT_NO_INTEREST","PAY_LATER","REWARDS","MESSAGE","MODAL","TREATEMENTS","getDisableSetCookie","getEnv","__ENV__","getMerchantConfig","getNonce","getScript","getMeta","getDefaultNamespace","getNamespace","_getScript","getLibraryVersion","__MESSAGES__","isZoidComponent","getBelterStorage","getOrCreateDeviceID","updateStorage","getStageTag","getDevTouchpoint","getFeatures","featureProps","staticFeatures","newFeatures","normalizeChild","dom","ELEMENT_PROP","fixScripts","xmlNamespaceDomRenderer","createElementWithXMLNamespace","domRenderer","partial","intialArgs","nextArgs","curry","curried","dynamicImport","getCurrentTime","getTime","viewportHijack","viewport","head","_viewport$getAttribut","_document$body$style$","_document$body$style$2","__pp_prev_content__","__pp_prev_overflow__","overflow","__pp_prev_msOverflowStyle__","msOverflowStyle","getStandardProductOffer","offer","getTsCookieFromStorage","_getStorage$getState","_document$cookie$spli","_document$cookie$spli2","cookieVal","ts","cookie","cookieStr","fromEntries","URLSearchParams","ppDebug","inZoid","debugObj","objectClone","objectEntries","accumulator","_extends9","_extends7","_extends8","objectMerge","deepMerge","targetObject","mergingObject","_extends13","_extends10","_extends11","_extends12","flattenedToObject","option","attributeValue","delimiter","firstIndex","getWindowFromElement","_node$ownerDocument","defaultView","getTopWindow","HTMLElement","nodeName","getInlineOptions","attributeNameOverride","buyercountry","merchantid","cspnonce","ectoken","contextualcomponents","customerid","fontfamily","fontsource","onclick","onapply","onrender","pagetype","inlineEventHandlers","dataOptions","stringStartsWith","nodeValue","_attributeNameOverrid","attributeName","arrayIncludes","getOptionValue","firstElementChild","markup","getElementsByClassName","elem","insertBefore","span","appendImage","alt","srcset","logo","Image","_url$dimensions","svgWrapper","canvas","isInViewport","containerRect","getBoundingClientRect","containerWindow","bannerY","bottom","bannerX","right","innerHeight","innerWidth","isHidden","getComputedStyle","containerStyles","getPropertyValue","scrollWidth","scrollHeight","getAllBySelector","arrayFlatMap","elementContains","parentEl","childEl","Node","ELEMENT_NODE","parentBounds","childBounds","getGlobalState","_window$NAMESPACE","_createState","globalState","initialState","objectAssign","createState","messagesMap","setGlobalState","newState","nextIndex","currentIndex","createTitleGenerator","getGlobalUrl","getPayPalDomain","createGlobalVariableGetter","_setGlobalState","globalEvent","setupGlobalState","inlineScriptOptions","account","getAccount","merchantId","getPartnerAccount","currency","getCurrency","pageType","getPageType","awaitTreatments","awaitFirstRender","awaitWindowLoad","awaitDOMContentLoaded","generateLogPayload","_meta$global","merchant_profile_hash","merchant_profile_valid","buyer_profile_hash","buyer_profile_valid","partner_attribution_id","partner_client_id","bizEvents","deviceID","sessionID","integration_type","messaging_version","_componentEvents$find","partnerClientId","buttonSessionId","messageRequestId","_component$stats","stats","trackingDetails","clickUrl","MERCHANT_PROFILE_HASH","MERCHANT_PROFILE_VALID","BUYER_PROFILE_HASH","BUYER_PROFILE_VALID","bn_code","componentEvents","render_duration","request_duration","component_type","instance_id","button_session_id","fdata","merchant_events","_event$payload","component_events","event_type","specversion","datacontenttype","dataschema","client_id","merchant_id","device_id","session_id","integration_version","eventsIndexes","_ref9$payload","refIndex","trackingIndexes","activeIndexes","trimmedMeta","_extends2","trimmedLog","urlWithCookieParams","Set","payloads","uniqueAccount","withCredentials","xhttp","onreadystatechange","header","_header$trim$split","stringIncludes","getInsertionObserver","mutationList","newMessageContainers","mutation","addedNodes","targetedChildNode","_window$getNamespace","Messages","_auto","getAttributeObserver","containersToUpdate","_window$getNamespace2","getIntersectionObserverPolyfill","IntersectionObserver","getViewportIntersectionObserver","isIntersecting","et","unobserve","threshold","getOverflowObserver","root","baseElement","elementWindow","domPath","_el","biggestEl","computedRoot","arrayFind","elements","_elements","getRoot","_entry$rootBounds","renderStart","isIntersectingFallback","minWidth","minHeight","duration","rootBounds","intersectionRatio","elementOutside","renderComplete","description","intersectionRect","disableSetCookie","features","onReady","experiments","treatmentsHash","expiration","sdkMeta","stageTag","scriptUID","integrationType","fetchTreatments","getTreatmentsComponent","getLocalTreatments","namespaced","performance","getPerformance","timing","connectEnd","navigationStart","getPerformanceMeasure","_performance$getEntri","_performance$getEntri2","getEntriesByName","getNavigationTiming","_entry$name","getEntriesByType","addPerformanceMeasure","startMark","endMark","repeat","clearMeasures","clearMarks","documentMode","measure","mark","checkAdblock","bait","baitStyles","checkBait","offsetParent","offsetLeft","offsetTop","clientHeight","clientWidth","formatStat","script_load_delay","dom_load_delay","page_load_delay","validateType","expectedType","numberIsNaN","logInvalid","logInvalidType","valType","validateOffer","offerType","customerId","amount","numberAmount","validatedOffer","validatedOffers","offr","sort","styleInput","layout","preset","logInvalidOption","buyerCountry","language","ignoreCache","channel","ecToken","contextualComponents","typesArray","allButtons","endsWith","allMarks","merchantConfig","getTitle","baseStyles","styles","messageTitle","__hasResizedBefore__","_getScriptAttributes2","scrolling","onClick","modal","onApply","offerCountry","lander","refId","page_view_link_source","page_view_link_name","onHover","hasHovered","activeTags","requestDuration","getContainer","ppDebugId","tsCookie","existingMeta","_existingMeta$global","existingGlobal","renderDuration","firstRenderDelay","topWindow","sdkMetaAttributes","_extractRenderedParts","part","extractRenderedParts","headline","subHeadline","disclaimer","detected","ad_blocker","blocked","position_in_page_x","position_in_page_y","browser_width","browser_height","in_viewport","sub_headline","buildStatsPayload","statsPayload","metaMutation","newMetaForIndex","addLoggerMetaMutator","first_render_delay","runStats","onMarkup","warnings","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","_excluded","_messagesMap$get$clon","payerId","clientId","merchantConfigHash","messageLocation","partnerAttributionId","_SDK_SETTINGS$PARTNER","_getScriptAttributes","devTouchpoint","_ref$props","TRANSITION_DELAY","transitionPercent","_viewportHijack","hijackViewport","replaceViewport","CLASS","HIDDEN","MODAL_SHOW","modalTitle","overlay","handleShow","previousFocus","activeElement","requestAnimationFrame","renderedModal","handleHide","charCode","closeBtn","useNewCheckoutDesign","handleClose","linkName","_closeBtn2","lang","httpEquiv","_closeBtn","modalStatus","checkForErrors","onKeyUp","aria-errormessage","aria-keyshortcuts","aria-label","tabindex","fill","xmlns","fill-rule","clip-rule","aria-hidden","viewBox","transform","stroke","stroke-width","stroke-linecap","aria-live","integrationIdentifier","onCalculate","calculator_input","onShow","_props$src","products","firstModalRenderDelay","SDK_SETTINGS","first_modal_render_delay","memoizedModal","renderProm","zoidComponent","getModalComponent","renderModal","intent","modalReady","renderDelay","showModal","_options","_options$id","_options$constructor","newOptions","requestedProduct","productState","supportedProduct","hideModal","containers","validContainers","mapIndex","renderOrUpdateMessage","merchantOptions","jsOptions","globalOptions","inlineOptions","mergedOptions","placement","getMerchantOptions","commonProps","modalProps","messageProps","Modal","_getMessageComponent","getMessageComponent","toLocaleString","_messagesMap$get","totalStyle","_Object$assign","requestIdleCallback","setGlobalConfig","_window$namespace","Message","handleContentLoaded","attributeFilter","setupMessages","MessagesModal","attachEls","setupModal"],"mappings":"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KC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKplB,GAAG,KAAKqlB,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,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","file":"messaging.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 = 171);\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var parent = require('../../es/string/starts-with');\n\nmodule.exports = parent;\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\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.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (USE_NATIVE && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind methods to global for calling from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changes in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","var 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 es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var parent = require('../../es/array/includes');\n\nmodule.exports = parent;\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var parent = require('../../es/object/entries');\n\nmodule.exports = parent;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(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 isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","module.exports = {};\n","var parent = require('../../es/array/find');\n\nmodule.exports = parent;\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 uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\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 requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var parent = require('../../es/array/from');\n\nmodule.exports = parent;\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var parent = require('../../es/object/assign');\n\nmodule.exports = parent;\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? 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 isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","module.exports = true;\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\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 = TO_STRING_TAG_SUPPORT ? classofRaw : 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' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn;\n","var parent = require('../../es/string/includes');\n\nmodule.exports = parent;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","module.exports = function () { /* empty */ };\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\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 || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\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","module.exports = {};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var parent = require('../../es/object/keys');\n\nmodule.exports = parent;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\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 -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\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","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-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 createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\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 (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(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.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\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 defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = 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');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\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 hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\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 $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n if (options && options.enumerable) target[key] = value;\n else createNonEnumerableProperty(target, key, value);\n return target;\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n if (it) {\n var target = STATIC ? it : it.prototype;\n if (!hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n createNonEnumerableProperty(target, 'toString', toString);\n }\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\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 defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\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.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/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.es/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 createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).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 EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.31.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\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\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\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\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\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) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\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 call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\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 IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? 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: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\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.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/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 createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var parent = require('../../es/map');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","var parent = require('../../es/array/flat-map');\n\nmodule.exports = parent;\n","var parent = require('../../es/number/is-nan');\n\nmodule.exports = parent;\n","/* @flow */\n\n// $FlowFixMe\nmodule.exports = require(\"./dist/paypal-sdk-constants\"); // eslint-disable-line import/no-commonjs\n","module.exports = function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.r = function(exports) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n };\n __webpack_require__.t = function(value, mode) {\n 1 & mode && (value = __webpack_require__(value));\n if (8 & mode) return value;\n if (4 & mode && \"object\" == typeof value && value && value.__esModule) return value;\n var ns = Object.create(null);\n __webpack_require__.r(ns);\n Object.defineProperty(ns, \"default\", {\n enumerable: !0,\n value: value\n });\n if (2 & mode && \"string\" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {\n return value[key];\n }.bind(null, key));\n return ns;\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return {}.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = 0);\n}([ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n __webpack_require__.d(__webpack_exports__, \"Spinner\", (function() {\n return Spinner;\n }));\n __webpack_require__.d(__webpack_exports__, \"SpinnerPage\", (function() {\n return SpinnerPage;\n }));\n __webpack_require__.d(__webpack_exports__, \"VenmoSpinner\", (function() {\n return VenmoSpinner;\n }));\n __webpack_require__.d(__webpack_exports__, \"VenmoSpinnerPage\", (function() {\n return VenmoSpinnerPage;\n }));\n function _renderChildren(children, renderer) {\n var result = [];\n for (var _i2 = 0; _i2 < children.length; _i2++) {\n var renderedChild = children[_i2].render(renderer);\n if (renderedChild) if (Array.isArray(renderedChild)) for (var _i4 = 0; _i4 < renderedChild.length; _i4++) {\n var subchild = renderedChild[_i4];\n subchild && result.push(subchild);\n } else result.push(renderedChild);\n }\n return result;\n }\n var node_ElementNode = function() {\n function ElementNode(name, props, children) {\n this.type = \"element\";\n this.name = void 0;\n this.props = void 0;\n this.children = void 0;\n this.onRender = void 0;\n this.name = name;\n this.props = props || {};\n this.children = children;\n var onRender = this.props.onRender;\n if (\"function\" == typeof onRender) {\n this.onRender = onRender;\n delete props.onRender;\n }\n }\n var _proto = ElementNode.prototype;\n _proto.render = function(renderer) {\n var el = renderer(this);\n this.onRender && this.onRender(el);\n return el;\n };\n _proto.renderChildren = function(renderer) {\n return _renderChildren(this.children, renderer);\n };\n return ElementNode;\n }();\n var node_FragmentNode = function() {\n function FragmentNode(children) {\n this.type = \"fragment\";\n this.children = void 0;\n this.children = children;\n }\n FragmentNode.prototype.render = function(renderer) {\n return _renderChildren(this.children, renderer);\n };\n return FragmentNode;\n }();\n var node_TextNode = function() {\n function TextNode(text) {\n this.type = \"text\";\n this.text = void 0;\n this.text = text;\n }\n TextNode.prototype.render = function(renderer) {\n return renderer(this);\n };\n return TextNode;\n }();\n var node_ComponentNode = function() {\n function ComponentNode(component, props, children) {\n this.type = \"component\";\n this.component = void 0;\n this.props = void 0;\n this.children = void 0;\n this.component = component;\n this.props = props || {};\n this.children = children;\n this.props.children = children;\n }\n var _proto4 = ComponentNode.prototype;\n _proto4.renderComponent = function(renderer) {\n var child = function(child) {\n var children = normalizeChildren(Array.isArray(child) ? child : [ child ]);\n return 1 === children.length ? children[0] : children.length > 1 ? new node_FragmentNode(children) : void 0;\n }(this.component(this.props, this.children));\n if (child) return child.render(renderer);\n };\n _proto4.render = function(renderer) {\n return renderer(this);\n };\n _proto4.renderChildren = function(renderer) {\n return _renderChildren(this.children, renderer);\n };\n return ComponentNode;\n }();\n function normalizeChildren(children) {\n var result = [];\n for (var _i6 = 0; _i6 < children.length; _i6++) {\n var child = children[_i6];\n if (child) if (\"string\" == typeof child || \"number\" == typeof child) result.push(new node_TextNode(child.toString())); else {\n if (\"boolean\" == typeof child) continue;\n if (Array.isArray(child)) for (var _i8 = 0, _normalizeChildren2 = normalizeChildren(child); _i8 < _normalizeChildren2.length; _i8++) result.push(_normalizeChildren2[_i8]); else {\n if (!child || \"element\" !== child.type && \"text\" !== child.type && \"component\" !== child.type) throw new TypeError(\"Unrecognized node type: \" + typeof child);\n result.push(child);\n }\n }\n }\n return result;\n }\n var node_node = function(element, props) {\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) children[_key - 2] = arguments[_key];\n children = normalizeChildren(children);\n if (\"string\" == typeof element) return new node_ElementNode(element, props, children);\n if (\"function\" == typeof element) return new node_ComponentNode(element, props, children);\n throw new TypeError(\"Expected jsx element to be a string or a function\");\n };\n var Fragment = function(props, children) {\n return children;\n };\n var _ELEMENT_DEFAULT_XML_, _ATTRIBUTE_DEFAULT_XM, _ADD_CHILDREN;\n var ELEMENT_DEFAULT_XML_NAMESPACE = ((_ELEMENT_DEFAULT_XML_ = {}).svg = \"http://www.w3.org/2000/svg\", \n _ELEMENT_DEFAULT_XML_);\n var ATTRIBUTE_DEFAULT_XML_NAMESPACE = ((_ATTRIBUTE_DEFAULT_XM = {})[\"xlink:href\"] = \"http://www.w3.org/1999/xlink\", \n _ATTRIBUTE_DEFAULT_XM);\n function createTextElement(doc, node) {\n return doc.createTextNode(node.text);\n }\n function addProps(el, node) {\n var props = node.props;\n for (var _i4 = 0, _Object$keys2 = Object.keys(props); _i4 < _Object$keys2.length; _i4++) {\n var prop = _Object$keys2[_i4];\n var val = props[prop];\n if (null != val && \"el\" !== prop && \"innerHTML\" !== prop) if (prop.match(/^on[A-Z][a-z]/) && \"function\" == typeof val) el.addEventListener(prop.slice(2).toLowerCase(), val); else if (\"string\" == typeof val || \"number\" == typeof val) {\n var xmlNamespace = ATTRIBUTE_DEFAULT_XML_NAMESPACE[prop];\n xmlNamespace ? el.setAttributeNS(xmlNamespace, prop, val.toString()) : el.setAttribute(prop, val.toString());\n } else \"boolean\" == typeof val && !0 === val && el.setAttribute(prop, \"\");\n }\n \"iframe\" !== el.tagName.toLowerCase() || props.id || el.setAttribute(\"id\", \"jsx-iframe-\" + \"xxxxxxxxxx\".replace(/./g, (function() {\n return \"0123456789abcdef\".charAt(Math.floor(Math.random() * \"0123456789abcdef\".length));\n })));\n }\n var ADD_CHILDREN = ((_ADD_CHILDREN = {}).iframe = function(el, node) {\n var firstChild = node.children[0];\n if (1 !== node.children.length || !firstChild || \"element\" !== firstChild.type || \"html\" !== firstChild.name) throw new Error(\"Expected only single html element node as child of iframe element\");\n el.addEventListener(\"load\", (function() {\n var win = el.contentWindow;\n if (!win) throw new Error(\"Expected frame to have contentWindow\");\n var doc = win.document;\n var docElement = doc.documentElement;\n for (;docElement.children && docElement.children.length; ) docElement.removeChild(docElement.children[0]);\n var child = firstChild.render(function(opts) {\n void 0 === opts && (opts = {});\n var _opts$doc = opts.doc, doc = void 0 === _opts$doc ? document : _opts$doc;\n var _xmlNamespaceDomRenderer = function(node, xmlNamespace) {\n if (\"component\" === node.type) return node.renderComponent((function(childNode) {\n return _xmlNamespaceDomRenderer(childNode, xmlNamespace);\n }));\n if (\"text\" === node.type) return createTextElement(doc, node);\n if (\"element\" === node.type) {\n var el = function(doc, node, xmlNamespace) {\n return doc.createElementNS(xmlNamespace, node.name);\n }(doc, node, xmlNamespace);\n addProps(el, node);\n addChildren(el, node, doc, (function(childNode) {\n return _xmlNamespaceDomRenderer(childNode, xmlNamespace);\n }));\n return el;\n }\n throw new TypeError(\"Unhandleable node\");\n };\n var _domRenderer = function(node) {\n if (\"component\" === node.type) return node.renderComponent(_domRenderer);\n if (\"text\" === node.type) return createTextElement(doc, node);\n if (\"element\" === node.type) {\n var xmlNamespace = ELEMENT_DEFAULT_XML_NAMESPACE[node.name.toLowerCase()];\n if (xmlNamespace) return _xmlNamespaceDomRenderer(node, xmlNamespace);\n var el = function(doc, node) {\n return node.props.el ? node.props.el : doc.createElement(node.name);\n }(doc, node);\n addProps(el, node);\n addChildren(el, node, doc, _domRenderer);\n return el;\n }\n throw new TypeError(\"Unhandleable node\");\n };\n return _domRenderer;\n }({\n doc: doc\n }));\n for (;child.children.length; ) docElement.appendChild(child.children[0]);\n }));\n }, _ADD_CHILDREN.script = function(el, node) {\n var firstChild = node.children[0];\n if (1 !== node.children.length || !firstChild || \"text\" !== firstChild.type) throw new Error(\"Expected only single text node as child of script element\");\n el.text = firstChild.text;\n }, _ADD_CHILDREN.default = function(el, node, renderer) {\n for (var _i6 = 0, _node$renderChildren2 = node.renderChildren(renderer); _i6 < _node$renderChildren2.length; _i6++) el.appendChild(_node$renderChildren2[_i6]);\n }, _ADD_CHILDREN);\n function addChildren(el, node, doc, renderer) {\n if (node.props.hasOwnProperty(\"innerHTML\")) {\n if (node.children.length) throw new Error(\"Expected no children to be passed when innerHTML prop is set\");\n var html = node.props.innerHTML;\n if (\"string\" != typeof html) throw new TypeError(\"innerHTML prop must be string\");\n if (\"script\" === node.name) el.text = html; else {\n el.innerHTML = html;\n !function(el, doc) {\n void 0 === doc && (doc = window.document);\n for (var _i2 = 0, _el$querySelectorAll2 = el.querySelectorAll(\"script\"); _i2 < _el$querySelectorAll2.length; _i2++) {\n var script = _el$querySelectorAll2[_i2];\n var parentNode = script.parentNode;\n if (parentNode) {\n var newScript = doc.createElement(\"script\");\n newScript.text = script.textContent;\n parentNode.replaceChild(newScript, script);\n }\n }\n }(el, doc);\n }\n } else (ADD_CHILDREN[node.name] || ADD_CHILDREN.default)(el, node, renderer);\n }\n function Spinner(_ref) {\n return node_node(\"div\", {\n class: \"preloader spinner\"\n }, node_node(\"style\", {\n nonce: _ref.nonce,\n innerHTML: \"\\n\\n body {\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n position: fixed;\\n top: 0;\\n left: 0;\\n margin: 0;\\n }\\n\\n .spinner {\\n height: 100%;\\n width: 100%;\\n position: absolute;\\n z-index: 10\\n }\\n\\n .spinner .spinWrap {\\n width: 200px;\\n height: 100px;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n margin-left: -100px;\\n margin-top: -50px\\n }\\n\\n .spinner .loader,\\n .spinner .spinnerImage {\\n height: 100px;\\n width: 100px;\\n position: absolute;\\n top: 0;\\n left: 50%;\\n opacity: 1;\\n filter: alpha(opacity=100)\\n }\\n\\n .spinner .spinnerImage {\\n margin: 28px 0 0 -25px;\\n background: url(https://www.paypalobjects.com/images/checkout/hermes/icon_ot_spin_lock_skinny.png) no-repeat\\n }\\n\\n .spinner .loader {\\n margin: 0 0 0 -55px;\\n background-color: transparent;\\n animation: rotation .7s infinite linear;\\n border-left: 5px solid #cbcbca;\\n border-right: 5px solid #cbcbca;\\n border-bottom: 5px solid #cbcbca;\\n border-top: 5px solid #2380be;\\n border-radius: 100%\\n }\\n\\n @keyframes rotation {\\n from {\\n transform: rotate(0deg)\\n }\\n to {\\n transform: rotate(359deg)\\n }\\n }\\n\"\n }), node_node(\"div\", {\n class: \"spinWrap\"\n }, node_node(\"p\", {\n class: \"spinnerImage\"\n }), node_node(\"p\", {\n class: \"loader\"\n })));\n }\n function SpinnerPage(_ref2, children) {\n var nonce = _ref2.nonce;\n return node_node(\"html\", null, node_node(\"head\", null, node_node(\"title\", null, \"PayPal\"), node_node(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width, initial-scale=1\"\n })), node_node(\"body\", null, node_node(Spinner, {\n nonce: nonce\n }), children));\n }\n function VenmoSpinner(_ref) {\n return node_node(Fragment, null, node_node(\"style\", {\n nonce: _ref.nonce,\n innerHTML: '\\n body {\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n position: fixed;\\n top: 0;\\n left: 0;\\n margin: 0;\\n }\\n .spinner {\\n color: official;\\n display: inline-block;\\n width: 80px;\\n height: 80px;\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n }\\n .spinner div {\\n transform-origin: 40px 40px;\\n animation: spinner 1.2s linear infinite;\\n }\\n .spinner div:after {\\n content: \" \";\\n display: block;\\n position: absolute;\\n top: 20px;\\n left: 37px;\\n width: 3px;\\n height: 10px;\\n border-radius: 30%;\\n background: #808080;\\n }\\n .spinner div:nth-child(1) {\\n transform: rotate(0deg);\\n animation-delay: -1.1s;\\n }\\n .spinner div:nth-child(2) {\\n transform: rotate(30deg);\\n animation-delay: -1s;\\n }\\n .spinner div:nth-child(3) {\\n transform: rotate(60deg);\\n animation-delay: -0.9s;\\n }\\n .spinner div:nth-child(4) {\\n transform: rotate(90deg);\\n animation-delay: -0.8s;\\n }\\n .spinner div:nth-child(5) {\\n transform: rotate(120deg);\\n animation-delay: -0.7s;\\n }\\n .spinner div:nth-child(6) {\\n transform: rotate(150deg);\\n animation-delay: -0.6s;\\n }\\n .spinner div:nth-child(7) {\\n transform: rotate(180deg);\\n animation-delay: -0.5s;\\n }\\n .spinner div:nth-child(8) {\\n transform: rotate(210deg);\\n animation-delay: -0.4s;\\n }\\n .spinner div:nth-child(9) {\\n transform: rotate(240deg);\\n animation-delay: -0.3s;\\n }\\n .spinner div:nth-child(10) {\\n transform: rotate(270deg);\\n animation-delay: -0.2s;\\n }\\n .spinner div:nth-child(11) {\\n transform: rotate(300deg);\\n animation-delay: -0.1s;\\n }\\n .spinner div:nth-child(12) {\\n transform: rotate(330deg);\\n animation-delay: 0s;\\n }\\n @keyframes spinner {\\n 0% {\\n opacity: 1;\\n }\\n 100% {\\n opacity: 0;\\n }\\n }\\n'\n }), node_node(\"div\", {\n class: \"spinner\"\n }, node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null), node_node(\"div\", null)));\n }\n function VenmoSpinnerPage(_ref2, children) {\n var nonce = _ref2.nonce;\n return node_node(\"html\", null, node_node(\"head\", null, node_node(\"title\", null, \"Venmo\"), node_node(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width, initial-scale=1\"\n })), node_node(\"body\", null, node_node(VenmoSpinner, {\n nonce: nonce\n }), children));\n }\n} ]);","require('../../modules/es.array.iterator');\nrequire('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\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 : isCallable(detection) ? 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","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\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, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar fails = require('../internals/fails');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar defineProperty = require('../internals/object-define-property').f;\nvar forEach = require('../internals/array-iteration').forEach;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var exported = {};\n var Constructor;\n\n if (!DESCRIPTORS || !isCallable(NativeConstructor)\n || !(IS_WEAK || NativePrototype.forEach && !fails(function () { new NativeConstructor().entries().next(); }))\n ) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else {\n Constructor = wrapper(function (target, iterable) {\n setInternalState(anInstance(target, Prototype), {\n type: CONSTRUCTOR_NAME,\n collection: new NativeConstructor()\n });\n if (iterable != undefined) iterate(iterable, target[ADDER], { that: target, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n forEach(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) {\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if (KEY in NativePrototype && !(IS_WEAK && KEY == 'clear')) {\n createNonEnumerableProperty(Prototype, KEY, function (a, b) {\n var collection = getInternalState(this).collection;\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n var result = collection[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n }\n });\n\n IS_WEAK || defineProperty(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).collection.size;\n }\n });\n }\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME, false, true);\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: true }, exported);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (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 C === undefined ? $Array : C;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) {\n if (options && options.unsafe && target[key]) target[key] = src[key];\n else defineBuiltIn(target, key, src[key], options);\n } return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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 Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","require('../modules/es.array.iterator');\nvar DOMIterables = require('../internals/dom-iterables');\nvar global = require('../internals/global');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n Iterators[COLLECTION_NAME] = Iterators.Array;\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","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\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\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\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 ? concat(objectKeys(S), 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 || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","require('../../modules/es.array.find');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'find');\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","require('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","require('../../modules/es.string.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","require('../../modules/es.object.entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.entries;\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","require('../../modules/es.object.keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.keys;\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","require('../../modules/es.string.starts-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'startsWith');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\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 } catch (error) {\n iteratorClose(iterator, '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 es/no-array-from, no-throw-literal -- required for testing\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","require('../../modules/es.array.flat-map');\nrequire('../../modules/es.array.unscopables.flat-map');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'flatMap');\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","require('../../modules/es.number.is-nan');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isNaN;\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number != number;\n }\n});\n","!function(E,N){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=N():\"function\"==typeof define&&define.amd?define(\"ppsdkconstants\",[],N):\"object\"==typeof exports?exports.ppsdkconstants=N():E.ppsdkconstants=N()}(\"undefined\"!=typeof self?self:this,(function(){return function(E){var N={};function S(R){if(N[R])return N[R].exports;var t=N[R]={i:R,l:!1,exports:{}};return E[R].call(t.exports,t,t.exports,S),t.l=!0,t.exports}return S.m=E,S.c=N,S.d=function(E,N,R){S.o(E,N)||Object.defineProperty(E,N,{enumerable:!0,get:R})},S.r=function(E){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(E,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(E,\"__esModule\",{value:!0})},S.t=function(E,N){if(1&N&&(E=S(E)),8&N)return E;if(4&N&&\"object\"==typeof E&&E&&E.__esModule)return E;var R=Object.create(null);if(S.r(R),Object.defineProperty(R,\"default\",{enumerable:!0,value:E}),2&N&&\"string\"!=typeof E)for(var t in E)S.d(R,t,function(N){return E[N]}.bind(null,t));return R},S.n=function(E){var N=E&&E.__esModule?function(){return E.default}:function(){return E};return S.d(N,\"a\",N),N},S.o=function(E,N){return{}.hasOwnProperty.call(E,N)},S.p=\"\",S(S.s=0)}([function(E,N,S){\"use strict\";S.r(N),S.d(N,\"APM_LIST\",(function(){return A})),S.d(N,\"DEFAULT_COUNTRY\",(function(){return B})),S.d(N,\"DEFAULT_CURRENCY\",(function(){return G})),S.d(N,\"DEFAULT_INTENT\",(function(){return K})),S.d(N,\"DEFAULT_COMMIT\",(function(){return p})),S.d(N,\"DEFAULT_SALE_COMMIT\",(function(){return l})),S.d(N,\"DEFAULT_NONSALE_COMMIT\",(function(){return f})),S.d(N,\"DEFAULT_VAULT\",(function(){return Y})),S.d(N,\"DEFAULT_COMPONENTS\",(function(){return m})),S.d(N,\"DEFAULT_DEBUG\",(function(){return V})),S.d(N,\"ENV\",(function(){return b})),S.d(N,\"MOBILE_ENV\",(function(){return y})),S.d(N,\"ERROR_CODE\",(function(){return W})),S.d(N,\"FPTI_KEY\",(function(){return g})),S.d(N,\"FPTI_USER_ACTION\",(function(){return J})),S.d(N,\"FPTI_DATA_SOURCE\",(function(){return k})),S.d(N,\"FPTI_FEED\",(function(){return h})),S.d(N,\"FPTI_SDK_NAME\",(function(){return v})),S.d(N,\"FUNDING\",(function(){return R})),S.d(N,\"FUNDING_BRAND_LABEL\",(function(){return t})),S.d(N,\"CARD\",(function(){return T})),S.d(N,\"WALLET_INSTRUMENT\",(function(){return e})),S.d(N,\"FUNDING_PRODUCTS\",(function(){return n})),S.d(N,\"COUNTRY\",(function(){return _})),S.d(N,\"LANG\",(function(){return r})),S.d(N,\"COUNTRY_LANGS\",(function(){return D})),S.d(N,\"BASE_SDK_METRIC_NAMESPACE\",(function(){return X})),S.d(N,\"payPalWebV5Dimensions\",(function(){return x})),S.d(N,\"INTENT\",(function(){return o})),S.d(N,\"COMMIT\",(function(){return O})),S.d(N,\"VAULT\",(function(){return I})),S.d(N,\"CURRENCY\",(function(){return F})),S.d(N,\"SDK_PATH\",(function(){return M})),S.d(N,\"WEB_SDK_BRIDGE_PATH\",(function(){return i})),S.d(N,\"SDK_SETTINGS\",(function(){return H})),S.d(N,\"SDK_DATA_ATTRIBUTES\",(function(){return a})),S.d(N,\"SDK_QUERY_KEYS\",(function(){return C})),S.d(N,\"COMPONENTS\",(function(){return u})),S.d(N,\"DEBUG\",(function(){return P})),S.d(N,\"QUERY_BOOL\",(function(){return L})),S.d(N,\"UNKNOWN\",(function(){return d})),S.d(N,\"PROTOCOL\",(function(){return Z})),S.d(N,\"PAGE_TYPES\",(function(){return s})),S.d(N,\"MERCHANT_ID_MAX\",(function(){return U})),S.d(N,\"DISPLAY_ONLY_VALUES\",(function(){return c})),S.d(N,\"PLATFORM\",(function(){return j})),S.d(N,\"TYPES\",(function(){return Q}));var R={PAYPAL:\"paypal\",VENMO:\"venmo\",APPLEPAY:\"applepay\",ITAU:\"itau\",CREDIT:\"credit\",PAYLATER:\"paylater\",CARD:\"card\",IDEAL:\"ideal\",SEPA:\"sepa\",BANCONTACT:\"bancontact\",GIROPAY:\"giropay\",SOFORT:\"sofort\",EPS:\"eps\",MYBANK:\"mybank\",P24:\"p24\",PAYU:\"payu\",BLIK:\"blik\",TRUSTLY:\"trustly\",OXXO:\"oxxo\",BOLETO:\"boleto\",BOLETOBANCARIO:\"boletobancario\",WECHATPAY:\"wechatpay\",MERCADOPAGO:\"mercadopago\",MULTIBANCO:\"multibanco\",SATISPAY:\"satispay\",PAIDY:\"paidy\",ZIMPLER:\"zimpler\",MAXIMA:\"maxima\"},t={PAYPAL:\"PayPal\",CREDIT:\"PayPal Credit\"},T={VISA:\"visa\",MASTERCARD:\"mastercard\",AMEX:\"amex\",DISCOVER:\"discover\",HIPER:\"hiper\",ELO:\"elo\",JCB:\"jcb\",CUP:\"cup\",DINERS:\"diners\",MAESTRO:\"maestro\",EFTPOS:\"eftpos\",CB_NATIONALE:\"cb_nationale\"},e={BALANCE:\"balance\",CARD:\"card\",BANK:\"bank\",CREDIT:\"credit\"},n={PAY_IN_3:\"payIn3\",PAY_IN_4:\"payIn4\",PAYLATER:\"paylater\",CREDIT:\"credit\"},A=[R.IDEAL,R.BANCONTACT,R.GIROPAY,R.SOFORT,R.EPS,R.MYBANK,R.P24,R.PAYU,R.BLIK,R.TRUSTLY,R.OXXO,R.BOLETO,R.BOLETOBANCARIO,R.WECHATPAY,R.MERCADOPAGO,R.MULTIBANCO,R.SATISPAY,R.PAIDY,R.MAXIMA,R.ZIMPLER],_={AD:\"AD\",AE:\"AE\",AG:\"AG\",AI:\"AI\",AL:\"AL\",AM:\"AM\",AN:\"AN\",AO:\"AO\",AR:\"AR\",AT:\"AT\",AU:\"AU\",AW:\"AW\",AZ:\"AZ\",BA:\"BA\",BB:\"BB\",BE:\"BE\",BF:\"BF\",BG:\"BG\",BH:\"BH\",BI:\"BI\",BJ:\"BJ\",BM:\"BM\",BN:\"BN\",BO:\"BO\",BR:\"BR\",BS:\"BS\",BT:\"BT\",BW:\"BW\",BY:\"BY\",BZ:\"BZ\",CA:\"CA\",CD:\"CD\",CG:\"CG\",CH:\"CH\",CI:\"CI\",CK:\"CK\",CL:\"CL\",CM:\"CM\",CN:\"CN\",CO:\"CO\",CR:\"CR\",CV:\"CV\",CY:\"CY\",CZ:\"CZ\",DE:\"DE\",DJ:\"DJ\",DK:\"DK\",DM:\"DM\",DO:\"DO\",DZ:\"DZ\",EC:\"EC\",EE:\"EE\",EG:\"EG\",ER:\"ER\",ES:\"ES\",ET:\"ET\",FI:\"FI\",FJ:\"FJ\",FK:\"FK\",FM:\"FM\",FO:\"FO\",FR:\"FR\",GA:\"GA\",GB:\"GB\",GD:\"GD\",GE:\"GE\",GF:\"GF\",GI:\"GI\",GL:\"GL\",GM:\"GM\",GN:\"GN\",GP:\"GP\",GR:\"GR\",GT:\"GT\",GW:\"GW\",GY:\"GY\",HK:\"HK\",HN:\"HN\",HR:\"HR\",HU:\"HU\",ID:\"ID\",IE:\"IE\",IL:\"IL\",IN:\"IN\",IS:\"IS\",IT:\"IT\",JM:\"JM\",JO:\"JO\",JP:\"JP\",KE:\"KE\",KG:\"KG\",KH:\"KH\",KI:\"KI\",KM:\"KM\",KN:\"KN\",KR:\"KR\",KW:\"KW\",KY:\"KY\",KZ:\"KZ\",LA:\"LA\",LC:\"LC\",LI:\"LI\",LK:\"LK\",LS:\"LS\",LT:\"LT\",LU:\"LU\",LV:\"LV\",MA:\"MA\",MC:\"MC\",MD:\"MD\",ME:\"ME\",MG:\"MG\",MH:\"MH\",MK:\"MK\",ML:\"ML\",MN:\"MN\",MQ:\"MQ\",MR:\"MR\",MS:\"MS\",MT:\"MT\",MU:\"MU\",MV:\"MV\",MW:\"MW\",MX:\"MX\",MY:\"MY\",MZ:\"MZ\",NA:\"NA\",NC:\"NC\",NE:\"NE\",NF:\"NF\",NG:\"NG\",NI:\"NI\",NL:\"NL\",NO:\"NO\",NP:\"NP\",NR:\"NR\",NU:\"NU\",NZ:\"NZ\",OM:\"OM\",PA:\"PA\",PE:\"PE\",PF:\"PF\",PG:\"PG\",PH:\"PH\",PL:\"PL\",PM:\"PM\",PN:\"PN\",PT:\"PT\",PW:\"PW\",PY:\"PY\",QA:\"QA\",RE:\"RE\",RO:\"RO\",RS:\"RS\",RU:\"RU\",RW:\"RW\",SA:\"SA\",SB:\"SB\",SC:\"SC\",SE:\"SE\",SG:\"SG\",SH:\"SH\",SI:\"SI\",SJ:\"SJ\",SK:\"SK\",SL:\"SL\",SM:\"SM\",SN:\"SN\",SO:\"SO\",SR:\"SR\",ST:\"ST\",SV:\"SV\",SZ:\"SZ\",TC:\"TC\",TD:\"TD\",TG:\"TG\",TH:\"TH\",TJ:\"TJ\",TM:\"TM\",TN:\"TN\",TO:\"TO\",TR:\"TR\",TT:\"TT\",TV:\"TV\",TW:\"TW\",TZ:\"TZ\",UA:\"UA\",UG:\"UG\",US:\"US\",UY:\"UY\",VA:\"VA\",VC:\"VC\",VE:\"VE\",VG:\"VG\",VN:\"VN\",VU:\"VU\",WF:\"WF\",WS:\"WS\",YE:\"YE\",YT:\"YT\",ZA:\"ZA\",ZM:\"ZM\",ZW:\"ZW\"},r={AR:\"ar\",BG:\"bg\",CS:\"cs\",DA:\"da\",DE:\"de\",EL:\"el\",EN:\"en\",ES:\"es\",ET:\"et\",FI:\"fi\",FR:\"fr\",HE:\"he\",HU:\"hu\",ID:\"id\",IT:\"it\",JA:\"ja\",KO:\"ko\",LT:\"lt\",LV:\"lv\",MS:\"ms\",NL:\"nl\",NO:\"no\",PL:\"pl\",PT:\"pt\",RO:\"ro\",RU:\"ru\",SI:\"si\",SK:\"sk\",SL:\"sl\",SQ:\"sq\",SV:\"sv\",TH:\"th\",TL:\"tl\",TR:\"tr\",VI:\"vi\",ZH:\"zh\",ZH_HANT:\"zh_Hant\"},D={AD:[r.EN,r.FR,r.ES,r.ZH],AE:[r.EN,r.FR,r.ES,r.ZH,r.AR],AG:[r.EN,r.FR,r.ES,r.ZH],AI:[r.EN,r.FR,r.ES,r.ZH],AL:[r.SQ,r.EN],AM:[r.EN,r.FR,r.ES,r.ZH],AN:[r.EN,r.FR,r.ES,r.ZH],AO:[r.EN,r.FR,r.ES,r.ZH],AR:[r.ES,r.EN],AT:[r.DE,r.EN],AU:[r.EN],AW:[r.EN,r.FR,r.ES,r.ZH],AZ:[r.EN,r.FR,r.ES,r.ZH],BA:[r.EN],BB:[r.EN,r.FR,r.ES,r.ZH],BE:[r.EN,r.NL,r.FR],BF:[r.FR,r.EN,r.ES,r.ZH],BG:[r.BG,r.EN],BH:[r.AR,r.EN,r.FR,r.ES,r.ZH],BI:[r.FR,r.EN,r.ES,r.ZH],BJ:[r.FR,r.EN,r.ES,r.ZH],BM:[r.EN,r.FR,r.ES,r.ZH],BN:[r.MS,r.EN],BO:[r.ES,r.EN,r.FR,r.ZH],BR:[r.PT,r.EN],BS:[r.EN,r.FR,r.ES,r.ZH],BT:[r.EN],BW:[r.EN,r.FR,r.ES,r.ZH],BY:[r.EN],BZ:[r.EN,r.ES,r.FR,r.ZH],CA:[r.EN,r.FR],CD:[r.FR,r.EN,r.ES,r.ZH],CG:[r.EN,r.FR,r.ES,r.ZH],CH:[r.DE,r.FR,r.EN],CI:[r.FR,r.EN],CK:[r.EN,r.FR,r.ES,r.ZH],CL:[r.ES,r.EN,r.FR,r.ZH],CM:[r.FR,r.EN],CN:[r.ZH],CO:[r.ES,r.EN,r.FR,r.ZH],CR:[r.ES,r.EN,r.FR,r.ZH],CV:[r.EN,r.FR,r.ES,r.ZH],CY:[r.EN],CZ:[r.CS,r.EN],DE:[r.DE,r.EN],DJ:[r.FR,r.EN,r.ES,r.ZH],DK:[r.DA,r.EN],DM:[r.EN,r.FR,r.ES,r.ZH],DO:[r.ES,r.EN,r.FR,r.ZH],DZ:[r.AR,r.EN,r.FR,r.ES,r.ZH],EC:[r.ES,r.EN,r.FR,r.ZH],EE:[r.ET,r.EN,r.RU],EG:[r.AR,r.EN,r.FR,r.ES,r.ZH],ER:[r.EN,r.FR,r.ES,r.ZH],ES:[r.ES,r.EN],ET:[r.EN,r.FR,r.ES,r.ZH],FI:[r.FI,r.EN],FJ:[r.EN,r.FR,r.ES,r.ZH],FK:[r.EN,r.FR,r.ES,r.ZH],FM:[r.EN],FO:[r.DA,r.EN,r.FR,r.ES,r.ZH],FR:[r.FR,r.EN],GA:[r.FR,r.EN,r.ES,r.ZH],GB:[r.EN],GD:[r.EN,r.FR,r.ES,r.ZH],GE:[r.EN,r.FR,r.ES,r.ZH],GF:[r.EN,r.FR,r.ES,r.ZH],GI:[r.EN,r.FR,r.ES,r.ZH],GL:[r.DA,r.EN,r.FR,r.ES,r.ZH],GM:[r.EN,r.FR,r.ES,r.ZH],GN:[r.FR,r.EN,r.ES,r.ZH],GP:[r.EN,r.FR,r.ES,r.ZH],GR:[r.EL,r.EN],GT:[r.ES,r.EN,r.FR,r.ZH],GW:[r.EN,r.FR,r.ES,r.ZH],GY:[r.EN,r.FR,r.ES,r.ZH],HK:[r.EN,r.ZH_HANT,r.ZH],HN:[r.ES,r.EN,r.FR,r.ZH],HR:[r.EN],HU:[r.HU,r.EN],ID:[r.ID,r.EN],IE:[r.EN,r.FR,r.ES,r.ZH],IL:[r.HE,r.EN],IN:[r.EN],IS:[r.EN],IT:[r.IT,r.EN],JM:[r.EN,r.ES,r.FR,r.ZH],JO:[r.AR,r.EN,r.FR,r.ES,r.ZH],JP:[r.JA,r.EN],KE:[r.EN,r.FR,r.ES,r.ZH],KG:[r.EN,r.FR,r.ES,r.ZH],KH:[r.EN],KI:[r.EN,r.FR,r.ES,r.ZH],KM:[r.FR,r.EN,r.ES,r.ZH],KN:[r.EN,r.FR,r.ES,r.ZH],KR:[r.KO,r.EN],KW:[r.AR,r.EN,r.FR,r.ES,r.ZH],KY:[r.EN,r.FR,r.ES,r.ZH],KZ:[r.EN,r.FR,r.ES,r.ZH],LA:[r.EN],LC:[r.EN,r.FR,r.ES,r.ZH],LI:[r.EN,r.FR,r.ES,r.ZH],LK:[r.SI,r.EN],LS:[r.EN,r.FR,r.ES,r.ZH],LT:[r.LT,r.EN,r.RU,r.ZH],LU:[r.EN,r.DE,r.FR,r.ES,r.ZH],LV:[r.LV,r.EN,r.RU],MA:[r.AR,r.EN,r.FR,r.ES,r.ZH],MC:[r.FR,r.EN],MD:[r.EN],ME:[r.EN],MG:[r.EN,r.FR,r.ES,r.ZH],MH:[r.EN,r.FR,r.ES,r.ZH],MK:[r.EN],ML:[r.FR,r.EN,r.ES,r.ZH],MN:[r.EN],MQ:[r.EN,r.FR,r.ES,r.ZH],MR:[r.EN,r.FR,r.ES,r.ZH],MS:[r.EN,r.FR,r.ES,r.ZH],MT:[r.EN],MU:[r.EN,r.FR,r.ES,r.ZH],MV:[r.EN],MW:[r.EN,r.FR,r.ES,r.ZH],MX:[r.ES,r.EN],MY:[r.MS,r.EN],MZ:[r.EN,r.FR,r.ES,r.ZH],NA:[r.EN,r.FR,r.ES,r.ZH],NC:[r.EN,r.FR,r.ES,r.ZH],NE:[r.FR,r.EN,r.ES,r.ZH],NF:[r.EN,r.FR,r.ES,r.ZH],NG:[r.EN],NI:[r.ES,r.EN,r.FR,r.ZH],NL:[r.NL,r.EN],NO:[r.NO,r.EN],NP:[r.EN],NR:[r.EN,r.FR,r.ES,r.ZH],NU:[r.EN,r.FR,r.ES,r.ZH],NZ:[r.EN,r.FR,r.ES,r.ZH],OM:[r.AR,r.EN,r.FR,r.ES,r.ZH],PA:[r.ES,r.EN,r.FR,r.ZH],PE:[r.ES,r.EN,r.FR,r.ZH],PF:[r.EN,r.FR,r.ES,r.ZH],PG:[r.EN,r.FR,r.ES,r.ZH],PH:[r.TL,r.EN],PL:[r.PL,r.EN],PM:[r.EN,r.FR,r.ES,r.ZH],PN:[r.EN,r.FR,r.ES,r.ZH],PT:[r.PT,r.EN],PW:[r.EN,r.FR,r.ES,r.ZH],PY:[r.ES,r.EN],QA:[r.EN,r.FR,r.ES,r.ZH,r.AR],RE:[r.EN,r.FR,r.ES,r.ZH],RO:[r.RO,r.EN],RS:[r.EN,r.FR,r.ES,r.ZH],RU:[r.RU,r.EN],RW:[r.FR,r.EN,r.ES,r.ZH],SA:[r.AR,r.EN,r.FR,r.ES,r.ZH],SB:[r.EN,r.FR,r.ES,r.ZH],SC:[r.FR,r.EN,r.ES,r.ZH],SE:[r.SV,r.EN],SG:[r.EN],SH:[r.EN,r.FR,r.ES,r.ZH],SI:[r.SL,r.EN],SJ:[r.EN,r.FR,r.ES,r.ZH],SK:[r.SK,r.EN],SL:[r.EN,r.FR,r.ES,r.ZH],SM:[r.EN,r.FR,r.ES,r.ZH],SN:[r.FR,r.EN,r.ES,r.ZH],SO:[r.EN,r.FR,r.ES,r.ZH],SR:[r.EN,r.FR,r.ES,r.ZH],ST:[r.EN,r.FR,r.ES,r.ZH],SV:[r.ES,r.EN,r.FR,r.ZH],SZ:[r.EN,r.FR,r.ES,r.ZH],TC:[r.EN,r.FR,r.ES,r.ZH],TD:[r.FR,r.EN,r.ES,r.ZH],TG:[r.FR,r.EN,r.ES,r.ZH],TH:[r.TH,r.EN],TJ:[r.EN,r.FR,r.ES,r.ZH],TM:[r.EN,r.FR,r.ES,r.ZH],TN:[r.AR,r.EN,r.FR,r.ES,r.ZH],TO:[r.EN],TR:[r.TR,r.EN],TT:[r.EN,r.FR,r.ES,r.ZH],TV:[r.EN,r.FR,r.ES,r.ZH],TW:[r.ZH_HANT,r.ZH,r.EN],TZ:[r.EN,r.FR,r.ES,r.ZH],UA:[r.EN,r.RU,r.FR,r.ES,r.ZH],UG:[r.EN,r.FR,r.ES,r.ZH],US:[r.EN,r.FR,r.ES,r.ZH],UY:[r.ES,r.EN,r.FR,r.ZH],VA:[r.EN,r.FR,r.ES,r.ZH],VC:[r.EN,r.FR,r.ES,r.ZH],VE:[r.ES,r.EN,r.FR,r.ZH],VG:[r.EN,r.FR,r.ES,r.ZH],VN:[r.VI,r.EN],VU:[r.EN,r.FR,r.ES,r.ZH],WF:[r.EN,r.FR,r.ES,r.ZH],WS:[r.EN],YE:[r.AR,r.EN,r.FR,r.ES,r.ZH],YT:[r.EN,r.FR,r.ES,r.ZH],ZA:[r.EN,r.FR,r.ES,r.ZH],ZM:[r.EN,r.FR,r.ES,r.ZH],ZW:[r.EN]},o={CAPTURE:\"capture\",AUTHORIZE:\"authorize\",ORDER:\"order\",TOKENIZE:\"tokenize\",SUBSCRIPTION:\"subscription\"},O={TRUE:!0,FALSE:!1},I={TRUE:!0,FALSE:!1},F={AED:\"AED\",AFN:\"AFN\",ALL:\"ALL\",AMD:\"AMD\",ANG:\"ANG\",ARS:\"ARS\",AOA:\"AOA\",AUD:\"AUD\",AWG:\"AWG\",AZN:\"AZN\",BAM:\"BAM\",BBD:\"BBD\",BDT:\"BDT\",BGN:\"BGN\",BHD:\"BHD\",BIF:\"BIF\",BMD:\"BMD\",BND:\"BND\",BOB:\"BOB\",BRL:\"BRL\",BSD:\"BSD\",BTN:\"BTN\",BWP:\"BWP\",BZD:\"BZD\",CAD:\"CAD\",CDF:\"CDF\",CHF:\"CHF\",CLP:\"CLP\",COP:\"COP\",CRC:\"CRC\",CVE:\"CVE\",CZK:\"CZK\",DJF:\"DJF\",DKK:\"DKK\",DOP:\"DOP\",DZD:\"DZD\",EGP:\"EGP\",ETB:\"ETB\",ERN:\"ERN\",EUR:\"EUR\",FJD:\"FJD\",FKP:\"FKP\",GBP:\"GBP\",GEL:\"GEL\",GHS:\"GHS\",GIP:\"GIP\",GMD:\"GMD\",GNF:\"GNF\",GTQ:\"GTQ\",GYD:\"GYD\",HKD:\"HKD\",HNL:\"HNL\",HRK:\"HRK\",HTG:\"HTG\",HUF:\"HUF\",IDR:\"IDR\",ILS:\"ILS\",INR:\"INR\",ISK:\"ISK\",JMD:\"JMD\",JOD:\"JOD\",JPY:\"JPY\",KGS:\"KGS\",KES:\"KES\",KHR:\"KHR\",KMF:\"KMF\",KRW:\"KRW\",KWD:\"KWD\",KYD:\"KYD\",KZT:\"KZT\",LAK:\"LAK\",LKR:\"LKR\",LRD:\"LRD\",LSL:\"LSL\",MAD:\"MAD\",MDL:\"MDL\",MGA:\"MGA\",MKD:\"MKD\",MNT:\"MNT\",MOP:\"MOP\",MRO:\"MRO\",MRU:\"MRU\",MUR:\"MUR\",MVR:\"MVR\",MWK:\"MWK\",MXN:\"MXN\",MYR:\"MYR\",MZN:\"MZN\",NAD:\"NAD\",NGN:\"NGN\",NIO:\"NIO\",NOK:\"NOK\",NPR:\"NPR\",NZD:\"NZD\",OMR:\"OMR\",PAB:\"PAB\",PEN:\"PEN\",PGK:\"PGK\",PHP:\"PHP\",PKR:\"PKR\",PLN:\"PLN\",PYG:\"PYG\",QAR:\"QAR\",RON:\"RON\",RSD:\"RSD\",RUB:\"RUB\",RWF:\"RWF\",SAR:\"SAR\",SBD:\"SBD\",SCR:\"SCR\",SEK:\"SEK\",SGD:\"SGD\",SHP:\"SHP\",SLE:\"SLE\",SLL:\"SLL\",SOS:\"SOS\",SRD:\"SRD\",STN:\"STN\",SVC:\"SVC\",SZL:\"SZL\",THB:\"THB\",TMT:\"TMT\",TJS:\"TJS\",TND:\"TND\",TOP:\"TOP\",TTD:\"TTD\",TWD:\"TWD\",TZS:\"TZS\",UAH:\"UAH\",UGX:\"UGX\",USD:\"USD\",UYU:\"UYU\",UZS:\"UZS\",VES:\"VES\",VND:\"VND\",VUV:\"VUV\",WST:\"WST\",XAF:\"XAF\",XCD:\"XCD\",XOF:\"XOF\",XPF:\"XPF\",YER:\"YER\",ZAR:\"ZAR\",ZMW:\"ZMW\"},M=\"/sdk/js\",i=\"/web-sdk/v6/bridge\",H={AMOUNT:\"data-amount\",API_STAGE_HOST:\"data-api-stage-host\",CLIENT_METADATA_ID:\"data-client-metadata-id\",CLIENT_TOKEN:\"data-client-token\",CSP_NONCE:\"data-csp-nonce\",ENABLE_3DS:\"data-enable-3ds\",JS_SDK_LIBRARY:\"data-js-sdk-library\",MERCHANT_ID:\"data-merchant-id\",NAMESPACE:\"data-namespace\",PAGE_TYPE:\"data-page-type\",PARTNER_ATTRIBUTION_ID:\"data-partner-attribution-id\",POPUPS_DISABLED:\"data-popups-disabled\",SDK_INTEGRATION_SOURCE:\"data-sdk-integration-source\",SDK_TOKEN:\"data-sdk-client-token\",SHOPPER_SESSION_ID:\"data-shopper-session-id\",STAGE_HOST:\"data-stage-host\",USER_EXPERIENCE_FLOW:\"data-user-experience-flow\",USER_ID_TOKEN:\"data-user-id-token\"},a=H,C={COMPONENTS:\"components\",ENV:\"env\",DEBUG:\"debug\",CACHEBUST:\"cachebust\",CLIENT_ID:\"client-id\",MERCHANT_ID:\"merchant-id\",LOCALE:\"locale\",CURRENCY:\"currency\",INTENT:\"intent\",COMMIT:\"commit\",VAULT:\"vault\",BUYER_COUNTRY:\"buyer-country\",ENABLE_FUNDING:\"enable-funding\",DISABLE_FUNDING:\"disable-funding\",DISABLE_CARD:\"disable-card\",INTEGRATION_DATE:\"integration-date\",STAGE_HOST:\"stage-host\",STAGE_ALIAS:\"stage-alias\",CDN_REGISTRY:\"cdn-registry\",VERSION:\"version\"},u={BUTTONS:\"buttons\",CARD_FIELDS:\"card-fields\",HOSTED_BUTTONS:\"hosted-buttons\",HOSTED_FIELDS:\"hosted-fields\"},P={TRUE:!0,FALSE:!1},L={TRUE:\"true\",FALSE:\"false\"},d=\"unknown\",Z={HTTP:\"http\",HTTPS:\"https\"},s={HOME:\"home\",PRODUCT:\"product\",CART:\"cart\",CHECKOUT:\"checkout\",PRODUCT_LISTING:\"product-listing\",SEARCH_RESULTS:\"search-results\",PRODUCT_DETAILS:\"product-details\",MINI_CART:\"mini-cart\"},U=10,c={VAULTABLE:\"vaultable\"},B=_.US,G=F.USD,K=o.CAPTURE,p=O.TRUE,l=O.TRUE,f=O.TRUE,Y=I.FALSE,m=u.BUTTONS,V=P.FALSE,b={LOCAL:\"local\",STAGE:\"stage\",SANDBOX:\"sandbox\",PRODUCTION:\"production\",TEST:\"test\"},y={ANDROID:\"android\",IOS:\"iOS\"},W={VALIDATION_ERROR:\"validation_error\"},g={BUTTON_LAYOUT:\"button_layout\",BUTTON_MESSAGE_AMOUNT:\"button_message_amount\",BUTTON_MESSAGE_CREDIT_PRODUCT_IDENTIFIER:\"button_message_credit_product_identifier\",BUTTON_MESSAGE_COLOR:\"button_message_color\",BUTTON_MESSAGE_CURRENCY:\"button_message_currency\",BUTTON_MESSAGE_ALIGN:\"button_message_align\",BUTTON_MESSAGE_POSITION:\"button_message_position\",BUTTON_MESSAGE_OFFER_COUNTRY:\"button_message_offer_country\",BUTTON_MESSAGE_OFFER_TYPE:\"button_message_offer_type\",BUTTON_MESSAGE_TYPE:\"button_message_type\",BUTTON_SESSION_UID:\"button_session_id\",BUTTON_SOURCE:\"button_source\",BUTTON_TYPE:\"button_type\",BUTTON_VERSION:\"button_version\",BUYER_COUNTRY:\"buyer_cntry\",CHECKOUT_APP:\"checkout_app\",CHOSEN_FI_TYPE:\"chosen_fi_type\",CHOSEN_FUNDING:\"selected_payment_method\",CLIENT_ID:\"client_id\",CONTEXT_CORRID:\"context_correlation_id\",CONTEXT_ID:\"context_id\",CONTEXT_TYPE:\"context_type\",CPL_CHUNK_METRICS:\"cpl_chunk_metrics\",CPL_COMP_METRICS:\"cpl_comp_metrics\",CPL_QUERY_METRICS:\"cpl_query_metrics\",DATA_SOURCE:\"serverside_data_source\",DISABLE_CARD:\"disable_card\",DISABLE_FUNDING:\"disable_funding\",ERROR_CODE:\"ext_error_code\",ERROR_DESC:\"ext_error_desc\",EVENT_NAME:\"event_name\",EXPERIMENT_EXPERIENCE:\"experimentation_experience\",EXPERIMENT_NAME:\"pxp_exp_id\",EXPERIMENT_TREATMENT:\"experimentation_treatment\",FEED:\"feed_name\",FI_ID:\"fi_id\",FI_LIST:\"fi_list\",FIELDS_COMPONENT_SESSION_ID:\"fields_component_session_id\",FUNDING_COUNT:\"eligible_payment_count\",FUNDING_LIST:\"eligible_payment_methods\",HOSTED_BUTTON_ID:\"hosted_button_id\",INTEGRATION_IDENTIFIER:\"integration_identifier\",IS_VAULT:\"is_vault\",JS_SDK_LIBRARY:\"js_sdk_library\",LOCALE:\"locale\",MERCHANT_DOMAIN:\"merchant_domain\",MOBILE_APP_VERSION:\"mobile_app_version\",MOBILE_BUNDLE_IDENTIFIER:\"mapv\",OPTION_SELECTED:\"optsel\",PAGE:\"page_name\",PAGE_LOAD_TIME:\"page_load_time\",PAGE_TYPE:\"pp_placement\",PARTNER_ATTRIBUTION_ID:\"bn_code\",PAY_ID:\"pay_id\",PAY_NOW:\"pay_now\",PAYMENT_FLOW:\"payment_flow\",POTENTIAL_PAYMENT_METHODS:\"potential_payment_methods\",PRODUCT:\"product\",RECOMMENDED_PAYMENT:\"recommended_payment\",REFERER:\"referer_url\",REFERRER_DOMAIN:\"referrer_domain\",RESPONSE_DURATION:\"response_duration\",SDK_CACHE:\"sdk_cache\",SDK_ENVIRONMENT:\"sdk_environment\",SDK_INTEGRATION_SOURCE:\"sdk_integration_source\",SDK_LOAD_TIME:\"sdk_load_time\",SDK_NAME:\"sdk_name\",SDK_VERSION:\"sdk_version\",SELECTED_FI:\"merchant_selected_funding_source\",SELLER_ID:\"seller_id\",SESSION_UID:\"page_session_id\",STATE:\"state_name\",STICKINESS_ID:\"stickiness_id\",TIMESTAMP:\"t\",TOKEN:\"token\",TRANSITION:\"transition_name\",TRANSITION_TIME:\"transition_time\",TREATMENT_NAME:\"pxp_trtmnt_id\",USER_ACTION:\"user_action\",USER_AGENT:\"user_agent\",USER_IDENTITY_METHOD:\"user_identity_method\",VERSION:\"checkoutjs_version\",AVAILABLE_PAYMENT_NETWORKS:\"available_payment_networks\",SELECTED_CARD_TYPE:\"selected_card_type\",CURRENCY:\"currency\",AMOUNT:\"amount\"},J={COMMIT:\"commit\",CONTINUE:\"continue\"},k={PAYMENTS_SDK:\"checkout\"},h={PAYMENTS_SDK:\"payments_sdk\"},v={PAYMENTS_SDK:\"payments_sdk\"},X=\"pp.sdks.ppcp\",x={sdk_platform:\"web\",major_version:\"5\"},j={DESKTOP:\"desktop\",MOBILE:\"mobile\"},Q=!0}])}));\n//# sourceMappingURL=paypal-sdk-constants.js.map","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","/* @flow */\n\nexport function isPromise(item : mixed) : boolean {\n try {\n if (!item) {\n return false;\n }\n\n if (typeof Promise !== 'undefined' && item instanceof Promise) {\n return true;\n }\n\n if (typeof window !== 'undefined' && typeof window.Window === 'function' && item instanceof window.Window) {\n return false;\n }\n\n if (typeof window !== 'undefined' && typeof window.constructor === 'function' && item instanceof window.constructor) {\n return false;\n }\n\n const toString = ({}).toString;\n\n if (toString) {\n const name = toString.call(item);\n\n if (name === '[object Window]' || name === '[object global]' || name === '[object DOMWindow]') {\n return false;\n }\n }\n\n if (typeof item.then === 'function') {\n return true;\n }\n } catch (err) {\n return false;\n }\n\n return false;\n}\n","/* @flow */\n\nimport type { ZalgoPromise } from './promise';\n\nconst dispatchedErrors = [];\nconst possiblyUnhandledPromiseHandlers : Array<(mixed, promise? : ZalgoPromise) => void> = [];\n\nexport function dispatchPossiblyUnhandledError(err : mixed, promise : ZalgoPromise) {\n\n if (dispatchedErrors.indexOf(err) !== -1) {\n return;\n }\n\n dispatchedErrors.push(err);\n\n setTimeout(() => {\n if (__DEBUG__) {\n // $FlowFixMe\n throw new Error(`${ err.stack || err.toString() }\\n\\nFrom promise:\\n\\n${ promise.stack }`);\n }\n\n throw err;\n }, 1);\n\n for (let j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) {\n // $FlowFixMe\n possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n}\n\nexport function onPossiblyUnhandledException(handler : (mixed, promise? : ZalgoPromise) => void) : {| cancel : () => void |} {\n possiblyUnhandledPromiseHandlers.push(handler);\n\n return {\n cancel() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n}\n","/* @flow */\n\nimport type { ZalgoPromise } from './promise';\n\nlet activeCount = 0;\nlet flushPromise;\n\nfunction flushActive() {\n if (!activeCount && flushPromise) {\n const promise = flushPromise;\n flushPromise = null;\n promise.resolve();\n }\n}\n\nexport function startActive() {\n activeCount += 1;\n}\n\nexport function endActive() {\n activeCount -= 1;\n flushActive();\n}\n\nexport function awaitActive(Zalgo : Class>) : ZalgoPromise { // eslint-disable-line no-undef\n const promise = flushPromise = flushPromise || new Zalgo();\n flushActive();\n return promise;\n}\n","/* @flow */\n/* eslint no-use-before-define: off */\n\nimport { isPromise } from './utils';\nimport { onPossiblyUnhandledException, dispatchPossiblyUnhandledError } from './exceptions';\nimport { startActive, endActive, awaitActive } from './flush';\n\nexport class ZalgoPromise {\n\n resolved : boolean;\n rejected : boolean;\n errorHandled : boolean;\n value : R;\n error : mixed;\n // eslint-disable-next-line flowtype/no-mutable-array\n handlers : Array<{|\n promise : ZalgoPromise<*>,\n onSuccess : void | (result : R) => mixed,\n onError : void | (error : mixed) => mixed\n |}>;\n dispatching : boolean;\n stack : string;\n\n constructor(handler : ?(resolve : (result : R) => void, reject : (error : mixed) => void) => void) {\n\n this.resolved = false;\n this.rejected = false;\n this.errorHandled = false;\n\n this.handlers = [];\n\n if (handler) {\n\n let result;\n let error;\n let resolved = false;\n let rejected = false;\n let isAsync = false;\n\n startActive();\n\n try {\n handler(res => {\n if (isAsync) {\n this.resolve(res);\n } else {\n resolved = true;\n result = res;\n }\n\n }, err => {\n if (isAsync) {\n this.reject(err);\n } else {\n rejected = true;\n error = err;\n }\n });\n\n } catch (err) {\n endActive();\n this.reject(err);\n return;\n }\n\n endActive();\n\n isAsync = true;\n\n if (resolved) {\n // $FlowFixMe\n this.resolve(result);\n } else if (rejected) {\n this.reject(error);\n }\n }\n\n if (__DEBUG__) {\n try {\n throw new Error(`ZalgoPromise`);\n } catch (err) {\n this.stack = err.stack;\n }\n }\n }\n\n resolve(result : R) : ZalgoPromise {\n if (this.resolved || this.rejected) {\n return this;\n }\n\n if (isPromise(result)) {\n throw new Error('Can not resolve promise with another promise');\n }\n\n this.resolved = true;\n this.value = result;\n this.dispatch();\n\n return this;\n }\n\n reject(error : mixed) : ZalgoPromise {\n if (this.resolved || this.rejected) {\n return this;\n }\n\n if (isPromise(error)) {\n throw new Error('Can not reject promise with another promise');\n }\n\n if (!error) {\n // $FlowFixMe\n const err = (error && typeof error.toString === 'function' ? error.toString() : Object.prototype.toString.call(error));\n error = new Error(`Expected reject to be called with Error, got ${ err }`);\n }\n\n this.rejected = true;\n this.error = error;\n\n if (!this.errorHandled) {\n setTimeout(() => {\n if (!this.errorHandled) {\n dispatchPossiblyUnhandledError(error, this);\n }\n }, 1);\n }\n\n this.dispatch();\n\n return this;\n }\n\n asyncReject(error : mixed) : ZalgoPromise {\n this.errorHandled = true;\n this.reject(error);\n return this;\n }\n\n dispatch() {\n\n const { dispatching, resolved, rejected, handlers } = this;\n\n if (dispatching) {\n return;\n }\n\n if (!resolved && !rejected) {\n return;\n }\n\n this.dispatching = true;\n startActive();\n\n const chain = (firstPromise : ZalgoPromise, secondPromise : ZalgoPromise) => {\n return firstPromise.then(res => {\n secondPromise.resolve(res);\n }, err => {\n secondPromise.reject(err);\n });\n };\n\n for (let i = 0; i < handlers.length; i++) {\n\n const { onSuccess, onError, promise } = handlers[i];\n\n let result;\n\n if (resolved) {\n\n try {\n result = onSuccess ? onSuccess(this.value) : this.value;\n } catch (err) {\n promise.reject(err);\n continue;\n }\n\n } else if (rejected) {\n\n if (!onError) {\n promise.reject(this.error);\n continue;\n }\n\n try {\n result = onError(this.error);\n } catch (err) {\n promise.reject(err);\n continue;\n }\n }\n\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n const promiseResult : ZalgoPromise<*> = result;\n\n if (promiseResult.resolved) {\n promise.resolve(promiseResult.value);\n } else {\n promise.reject(promiseResult.error);\n }\n\n promiseResult.errorHandled = true;\n\n } else if (isPromise(result)) {\n\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n if (result.resolved) {\n promise.resolve(result.value);\n } else {\n promise.reject(result.error);\n }\n\n } else {\n // $FlowFixMe\n chain(result, promise);\n }\n\n } else {\n\n promise.resolve(result);\n }\n }\n\n handlers.length = 0;\n this.dispatching = false;\n endActive();\n }\n\n then(onSuccess : void | (result : R) => (ZalgoPromise | Y), onError : void | (error : mixed) => (ZalgoPromise | Y)) : ZalgoPromise {\n\n if (onSuccess && typeof onSuccess !== 'function' && !onSuccess.call) {\n throw new Error('Promise.then expected a function for success handler');\n }\n\n if (onError && typeof onError !== 'function' && !onError.call) {\n throw new Error('Promise.then expected a function for error handler');\n }\n\n const promise = new ZalgoPromise();\n\n this.handlers.push({\n promise,\n onSuccess,\n onError\n });\n\n this.errorHandled = true;\n\n this.dispatch();\n\n return promise;\n }\n\n catch(onError : (error : mixed) => ZalgoPromise | Y) : ZalgoPromise {\n // $FlowFixMe incompatible-call\n const resultPromise : ZalgoPromise = this.then(undefined, onError);\n return resultPromise;\n }\n\n finally(onFinally : () => mixed) : ZalgoPromise {\n\n if (onFinally && typeof onFinally !== 'function' && !onFinally.call) {\n throw new Error('Promise.finally expected a function');\n }\n\n return this.then((result) => {\n return ZalgoPromise.try(onFinally)\n .then(() => {\n return result;\n });\n }, (err) => {\n return ZalgoPromise.try(onFinally)\n .then(() => {\n throw err;\n });\n });\n }\n\n timeout(time : number, err : ?Error) : ZalgoPromise {\n\n if (this.resolved || this.rejected) {\n return this;\n }\n\n const timeout = setTimeout(() => {\n\n if (this.resolved || this.rejected) {\n return;\n }\n\n this.reject(err || new Error(`Promise timed out after ${ time }ms`));\n\n }, time);\n\n return this.then(result => {\n clearTimeout(timeout);\n return result;\n });\n }\n\n // $FlowFixMe\n toPromise() : Promise {\n // $FlowFixMe\n if (typeof Promise === 'undefined') {\n throw new TypeError(`Could not find Promise`);\n }\n // $FlowFixMe\n return Promise.resolve(this); // eslint-disable-line compat/compat\n }\n\n lazy() : ZalgoPromise {\n this.errorHandled = true;\n return this;\n }\n\n static resolve(value : ZalgoPromise | Y) : ZalgoPromise {\n\n if (value instanceof ZalgoPromise) {\n // $FlowFixMe incompatible-type-arg\n const result : ZalgoPromise = value;\n return result;\n }\n\n if (isPromise(value)) {\n // $FlowFixMe\n return new ZalgoPromise((resolve, reject) => value.then(resolve, reject));\n }\n\n return new ZalgoPromise().resolve(value);\n }\n\n static reject(error : mixed) : ZalgoPromise {\n return new ZalgoPromise().reject(error);\n }\n\n static asyncReject(error : mixed) : ZalgoPromise {\n return new ZalgoPromise().asyncReject(error);\n }\n\n static all>(promises : X) : ZalgoPromise<$TupleMap(ZalgoPromise | Y) => Y>> { // eslint-disable-line no-undef\n\n const promise = new ZalgoPromise();\n let count = promises.length;\n // eslint-disable-next-line no-undef, unicorn/prefer-spread\n const results = ([] : $TupleMap(ZalgoPromise | Y) => Y>).slice();\n\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n\n const chain = (i : number, firstPromise : ZalgoPromise, secondPromise : ZalgoPromise) => {\n return firstPromise.then(res => {\n results[i] = res;\n count -= 1;\n if (count === 0) {\n promise.resolve(results);\n }\n }, err => {\n secondPromise.reject(err);\n });\n };\n\n for (let i = 0; i < promises.length; i++) {\n const prom = promises[i];\n\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n continue;\n }\n } else if (!isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n continue;\n }\n\n chain(i, ZalgoPromise.resolve(prom), promise);\n }\n\n if (count === 0) {\n promise.resolve(results);\n }\n\n return promise;\n }\n\n static hash(promises : O) : ZalgoPromise<$ObjMap(ZalgoPromise | Y) => Y>> { // eslint-disable-line no-undef\n const result = {};\n const awaitPromises = [];\n\n for (const key in promises) {\n if (promises.hasOwnProperty(key)) {\n const value = promises[key];\n\n if (isPromise(value)) {\n awaitPromises.push(value.then(res => {\n result[key] = res;\n }));\n } else {\n result[key] = value;\n }\n }\n }\n\n return ZalgoPromise.all(awaitPromises).then(() => result);\n }\n\n static map(items : $ReadOnlyArray, method : (T) => (ZalgoPromise | X)) : ZalgoPromise<$ReadOnlyArray> {\n // $FlowFixMe\n return ZalgoPromise.all(items.map(method));\n }\n\n static onPossiblyUnhandledException(handler : (err : mixed) => void) : {| cancel : () => void |} {\n return onPossiblyUnhandledException(handler);\n }\n\n static try>(method : (...args : $ReadOnlyArray) => (ZalgoPromise | Y), context? : C, args? : A) : ZalgoPromise {\n\n if (method && typeof method !== 'function' && !method.call) {\n throw new Error('Promise.try expected a function');\n }\n\n let result : ZalgoPromise | Y;\n\n startActive();\n\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n endActive();\n return ZalgoPromise.reject(err);\n }\n\n endActive();\n\n // $FlowFixMe incompatible-call\n const resultPromise = ZalgoPromise.resolve(result);\n\n return resultPromise;\n }\n\n static delay(delay : number) : ZalgoPromise {\n return new ZalgoPromise(resolve => {\n setTimeout(resolve, delay);\n });\n }\n\n static isPromise(value : mixed) : boolean {\n\n if (value && value instanceof ZalgoPromise) {\n return true;\n }\n\n return isPromise(value);\n }\n\n static flush() : ZalgoPromise {\n return awaitActive(ZalgoPromise);\n }\n}\n","/* @flow */\n\nexport function isRegex(item: mixed): boolean {\n // $FlowFixMe method-unbinding\n return Object.prototype.toString.call(item) === \"[object RegExp]\";\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function noop(...args: $ReadOnlyArray) {\n // pass\n}\n","/* @flow */\n\nexport const PROTOCOL = {\n MOCK: (\"mock:\": \"mock:\"),\n FILE: (\"file:\": \"file:\"),\n ABOUT: (\"about:\": \"about:\"),\n};\n\nexport const WILDCARD = \"*\";\n\nexport const WINDOW_TYPE = {\n IFRAME: (\"iframe\": \"iframe\"),\n POPUP: (\"popup\": \"popup\"),\n};\n","/* @flow */\n/* eslint max-lines: 0 */\n\nimport { isRegex, noop } from \"./util\";\nimport type {\n CrossDomainWindowType,\n SameDomainWindowType,\n DomainMatcher,\n} from \"./types\";\nimport { PROTOCOL, WILDCARD } from \"./constants\";\n\nconst IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n\nexport function getActualProtocol(win: SameDomainWindowType = window): ?string {\n return win.location.protocol;\n}\n\nexport function getProtocol(win: SameDomainWindowType = window): ?string {\n if (win.mockDomain) {\n const protocol = win.mockDomain.split(\"//\")[0];\n\n if (protocol) {\n return protocol;\n }\n }\n\n return getActualProtocol(win);\n}\n\nexport function isFileProtocol(win: SameDomainWindowType = window): boolean {\n return getProtocol(win) === PROTOCOL.FILE;\n}\n\nexport function isAboutProtocol(win: SameDomainWindowType = window): boolean {\n return getProtocol(win) === PROTOCOL.ABOUT;\n}\n\nexport function isMockProtocol(win: SameDomainWindowType = window): boolean {\n return getProtocol(win) === PROTOCOL.MOCK;\n}\n\nexport function getParent(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n if (!win) {\n return;\n }\n\n try {\n if (win.parent && win.parent !== win) {\n return win.parent;\n }\n } catch (err) {\n // pass\n }\n}\n\nexport function getOpener(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n if (!win) {\n return;\n }\n\n // Make sure we're not actually an iframe which has had window.open() called on us\n if (getParent(win)) {\n return;\n }\n\n try {\n return win.opener;\n } catch (err) {\n // pass\n }\n}\n\nexport function canReadFromWindow(\n win: CrossDomainWindowType | SameDomainWindowType\n): boolean {\n try {\n // $FlowFixMe\n noop(win && win.location && win.location.href);\n return true;\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function getActualDomain(win?: SameDomainWindowType = window): string {\n const location = win.location;\n\n if (!location) {\n throw new Error(`Can not read window location`);\n }\n\n const protocol = getActualProtocol(win);\n\n if (!protocol) {\n throw new Error(`Can not read window protocol`);\n }\n\n if (protocol === PROTOCOL.FILE) {\n return `${PROTOCOL.FILE}//`;\n }\n\n if (protocol === PROTOCOL.ABOUT) {\n const parent = getParent(win);\n if (parent && canReadFromWindow(parent)) {\n // $FlowFixMe\n return getActualDomain(parent);\n }\n\n return `${PROTOCOL.ABOUT}//`;\n }\n\n const host = location.host;\n\n if (!host) {\n throw new Error(`Can not read window host`);\n }\n\n return `${protocol}//${host}`;\n}\n\nexport function getDomain(win?: SameDomainWindowType = window): string {\n const domain = getActualDomain(win);\n\n if (domain && win.mockDomain && win.mockDomain.indexOf(PROTOCOL.MOCK) === 0) {\n return win.mockDomain;\n }\n\n return domain;\n}\n\nexport function isBlankDomain(win: CrossDomainWindowType): boolean {\n try {\n // $FlowFixMe\n if (!win.location.href) {\n return true;\n }\n\n if (win.location.href === \"about:blank\") {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isActuallySameDomain(win: CrossDomainWindowType): boolean {\n try {\n if (win === window) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n try {\n const desc = Object.getOwnPropertyDescriptor(win, \"location\");\n\n if (desc && desc.enumerable === false) {\n return false;\n }\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (isMockProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (getActualDomain(win) === getActualDomain(window)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isSameDomain(\n win: CrossDomainWindowType | SameDomainWindowType\n): boolean {\n if (!isActuallySameDomain(win)) {\n return false;\n }\n\n try {\n if (win === window) {\n return true;\n }\n\n // $FlowFixMe\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n\n // $FlowFixMe\n if (getDomain(window) === getDomain(win)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function assertSameDomain(\n win: CrossDomainWindowType | SameDomainWindowType\n): SameDomainWindowType {\n if (!isSameDomain(win)) {\n throw new Error(`Expected window to be same domain`);\n }\n\n // $FlowFixMe\n return win;\n}\n\nexport function getParents(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const result = [];\n\n try {\n while (win.parent !== win) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {\n // pass\n }\n\n return result;\n}\n\nexport function isAncestorParent(\n parent: CrossDomainWindowType,\n child: CrossDomainWindowType\n): boolean {\n if (!parent || !child) {\n return false;\n }\n\n const childParent = getParent(child);\n\n if (childParent) {\n return childParent === parent;\n }\n\n if (getParents(child).indexOf(parent) !== -1) {\n return true;\n }\n\n return false;\n}\n\nexport function getFrames(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const result = [];\n\n let frames;\n\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n\n let len;\n\n try {\n len = frames.length;\n } catch (err) {\n // pass\n }\n\n if (len === 0) {\n return result;\n }\n\n if (len) {\n for (let i = 0; i < len; i++) {\n let frame;\n\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n\n result.push(frame);\n }\n\n return result;\n }\n\n for (let i = 0; i < 100; i++) {\n let frame;\n\n try {\n frame = frames[i];\n } catch (err) {\n return result;\n }\n\n if (!frame) {\n return result;\n }\n\n result.push(frame);\n }\n\n return result;\n}\n\nexport function getAllChildFrames(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const result = [];\n\n for (const frame of getFrames(win)) {\n result.push(frame);\n\n for (const childFrame of getAllChildFrames(frame)) {\n result.push(childFrame);\n }\n }\n\n return result;\n}\n\nexport function getTop(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n try {\n if (win.top) {\n return win.top;\n }\n } catch (err) {\n // pass\n }\n\n if (getParent(win) === win) {\n return win;\n }\n\n try {\n if (isAncestorParent(window, win) && window.top) {\n return window.top;\n }\n } catch (err) {\n // pass\n }\n\n try {\n if (isAncestorParent(win, window) && window.top) {\n return window.top;\n }\n } catch (err) {\n // pass\n }\n\n for (const frame of getAllChildFrames(win)) {\n try {\n if (frame.top) {\n return frame.top;\n }\n } catch (err) {\n // pass\n }\n\n if (getParent(frame) === frame) {\n return frame;\n }\n }\n}\n\nexport function getNextOpener(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n return getOpener(getTop(win) || win);\n}\n\nexport function getUltimateTop(\n win?: CrossDomainWindowType = window\n): CrossDomainWindowType {\n const opener = getNextOpener(win);\n\n if (opener) {\n return getUltimateTop(opener);\n }\n\n return top;\n}\n\nexport function getAllFramesInWindow(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const top = getTop(win);\n\n if (!top) {\n throw new Error(`Can not determine top window`);\n }\n\n let result = [...getAllChildFrames(top), top];\n\n // Win may be in shadow dom\n if (result.indexOf(win) === -1) {\n result = [...result, win, ...getAllChildFrames(win)];\n }\n\n return result;\n}\n\nexport function getAllWindows(\n win?: CrossDomainWindowType = window\n): $ReadOnlyArray {\n const frames = getAllFramesInWindow(win);\n const opener = getNextOpener(win);\n\n if (opener) {\n return [...getAllWindows(opener), ...frames];\n } else {\n return frames;\n }\n}\n\nexport function isTop(win: CrossDomainWindowType): boolean {\n return win === getTop(win);\n}\n\nexport function isFrameWindowClosed(frame: HTMLIFrameElement): boolean {\n if (!frame.contentWindow) {\n return true;\n }\n\n if (!frame.parentNode) {\n return true;\n }\n\n const doc = frame.ownerDocument;\n\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\n let parent = frame;\n\n while (parent.parentNode && parent.parentNode !== parent) {\n parent = parent.parentNode;\n }\n\n // $FlowFixMe\n if (!parent.host || !doc.documentElement.contains(parent.host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction safeIndexOf(collection: $ReadOnlyArray, item: T): number {\n for (let i = 0; i < collection.length; i++) {\n try {\n if (collection[i] === item) {\n return i;\n }\n } catch (err) {\n // pass\n }\n }\n\n return -1;\n}\n\nconst iframeWindows = [];\nconst iframeFrames = [];\n\nexport function isWindowClosed(\n win: CrossDomainWindowType,\n allowMock: boolean = true\n): boolean {\n try {\n if (win === window) {\n return false;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (!win) {\n return true;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (win.closed) {\n return true;\n }\n } catch (err) {\n // I love you so much IE\n\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return false;\n }\n\n return true;\n }\n\n if (allowMock && isSameDomain(win)) {\n try {\n // $FlowFixMe\n if (win.mockclosed) {\n return true;\n }\n } catch (err) {\n // pass\n }\n }\n\n // Mobile safari\n\n try {\n if (!win.parent || !win.top) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n // Yes, this actually happens in IE. win === win errors out when the window\n // is from an iframe, and the iframe was removed from the page.\n\n try {\n noop(win === win); // eslint-disable-line no-self-compare\n } catch (err) {\n return true;\n }\n\n // IE orphaned frame\n\n const iframeIndex = safeIndexOf(iframeWindows, win);\n\n if (iframeIndex !== -1) {\n const frame = iframeFrames[iframeIndex];\n\n if (frame && isFrameWindowClosed(frame)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction cleanIframes() {\n for (let i = 0; i < iframeWindows.length; i++) {\n let closed = false;\n\n try {\n closed = iframeWindows[i].closed;\n } catch (err) {\n // pass\n }\n\n if (closed) {\n iframeFrames.splice(i, 1);\n iframeWindows.splice(i, 1);\n }\n }\n}\n\nexport function linkFrameWindow(frame: HTMLIFrameElement) {\n cleanIframes();\n\n if (frame && frame.contentWindow) {\n try {\n iframeWindows.push(frame.contentWindow);\n iframeFrames.push(frame);\n } catch (err) {\n // pass\n }\n }\n}\n\nexport function getUserAgent(win: ?SameDomainWindowType): string {\n win = win || window;\n return win.navigator.mockUserAgent || win.navigator.userAgent;\n}\n\nexport function getFrameByName(\n win: CrossDomainWindowType,\n name: string\n): ?CrossDomainWindowType {\n const winFrames = getFrames(win);\n\n for (const childFrame of winFrames) {\n try {\n if (\n isSameDomain(childFrame) &&\n // $FlowFixMe\n childFrame.name === name &&\n winFrames.indexOf(childFrame) !== -1\n ) {\n return childFrame;\n }\n } catch (err) {\n // pass\n }\n }\n\n try {\n // $FlowFixMe\n if (winFrames.indexOf(win.frames[name]) !== -1) {\n // $FlowFixMe\n return win.frames[name];\n }\n } catch (err) {\n // pass\n }\n\n try {\n if (winFrames.indexOf(win[name]) !== -1) {\n return win[name];\n }\n } catch (err) {\n // pass\n }\n}\n\nexport function findChildFrameByName(\n win: CrossDomainWindowType,\n name: string\n): ?CrossDomainWindowType {\n const frame = getFrameByName(win, name);\n\n if (frame) {\n return frame;\n }\n\n for (const childFrame of getFrames(win)) {\n const namedFrame = findChildFrameByName(childFrame, name);\n\n if (namedFrame) {\n return namedFrame;\n }\n }\n}\n\nexport function findFrameByName(\n win: CrossDomainWindowType,\n name: string\n): ?CrossDomainWindowType {\n const frame = getFrameByName(win, name);\n\n if (frame) {\n return frame;\n }\n\n const top = getTop(win) || win;\n\n return findChildFrameByName(top, name);\n}\n\nexport function isParent(\n win: CrossDomainWindowType,\n frame: CrossDomainWindowType\n): boolean {\n const frameParent = getParent(frame);\n\n if (frameParent) {\n return frameParent === win;\n }\n\n for (const childFrame of getFrames(win)) {\n if (childFrame === frame) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isOpener(\n parent: CrossDomainWindowType,\n child: CrossDomainWindowType\n): boolean {\n return parent === getOpener(child);\n}\n\nexport function getAncestor(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n win = win || window;\n\n const opener = getOpener(win);\n\n if (opener) {\n return opener;\n }\n\n const parent = getParent(win);\n\n if (parent) {\n return parent;\n }\n}\n\nexport function getAncestors(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const results = [];\n\n let ancestor = win;\n\n while (ancestor) {\n ancestor = getAncestor(ancestor);\n if (ancestor) {\n results.push(ancestor);\n }\n }\n\n return results;\n}\n\nexport function isAncestor(\n parent: CrossDomainWindowType,\n child: CrossDomainWindowType\n): boolean {\n const actualParent = getAncestor(child);\n\n if (actualParent) {\n if (actualParent === parent) {\n return true;\n }\n\n return false;\n }\n\n if (child === parent) {\n return false;\n }\n\n if (getTop(child) === child) {\n return false;\n }\n\n for (const frame of getFrames(parent)) {\n if (frame === child) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isPopup(win?: CrossDomainWindowType = window): boolean {\n return Boolean(getOpener(win));\n}\n\nexport function isIframe(win?: CrossDomainWindowType = window): boolean {\n return Boolean(getParent(win));\n}\n\nexport function isFullpage(win?: CrossDomainWindowType = window): boolean {\n return Boolean(!isIframe(win) && !isPopup(win));\n}\n\nfunction anyMatch(collection1, collection2): boolean {\n for (const item1 of collection1) {\n for (const item2 of collection2) {\n if (item1 === item2) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function getDistanceFromTop(\n win: CrossDomainWindowType = window\n): number {\n let distance = 0;\n let parent = win;\n\n while (parent) {\n parent = getParent(parent);\n if (parent) {\n distance += 1;\n }\n }\n\n return distance;\n}\n\nexport function getNthParent(\n win: CrossDomainWindowType,\n n: number = 1\n): ?CrossDomainWindowType {\n let parent = win;\n\n for (let i = 0; i < n; i++) {\n if (!parent) {\n return;\n }\n\n parent = getParent(parent);\n }\n\n return parent;\n}\n\nexport function getNthParentFromTop(\n win: CrossDomainWindowType,\n n: number = 1\n): ?CrossDomainWindowType {\n return getNthParent(win, getDistanceFromTop(win) - n);\n}\n\nexport function isSameTopWindow(\n win1: CrossDomainWindowType,\n win2: CrossDomainWindowType\n): boolean {\n const top1 = getTop(win1) || win1;\n const top2 = getTop(win2) || win2;\n\n try {\n if (top1 && top2) {\n if (top1 === top2) {\n return true;\n }\n\n return false;\n }\n } catch (err) {\n // pass\n }\n\n const allFrames1 = getAllFramesInWindow(win1);\n const allFrames2 = getAllFramesInWindow(win2);\n\n if (anyMatch(allFrames1, allFrames2)) {\n return true;\n }\n\n const opener1 = getOpener(top1);\n const opener2 = getOpener(top2);\n\n if (opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2)) {\n return false;\n }\n\n if (opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1)) {\n return false;\n }\n\n return false;\n}\n\nexport function matchDomain(\n pattern: DomainMatcher,\n origin: DomainMatcher\n): boolean {\n if (typeof pattern === \"string\") {\n if (typeof origin === \"string\") {\n return pattern === WILDCARD || origin === pattern;\n }\n\n if (isRegex(origin)) {\n return false;\n }\n\n if (Array.isArray(origin)) {\n return false;\n }\n }\n\n if (isRegex(pattern)) {\n if (isRegex(origin)) {\n return pattern.toString() === origin.toString();\n }\n\n if (Array.isArray(origin)) {\n return false;\n }\n\n // $FlowFixMe\n return Boolean(origin.match(pattern));\n }\n\n if (Array.isArray(pattern)) {\n if (Array.isArray(origin)) {\n return JSON.stringify(pattern) === JSON.stringify(origin);\n }\n\n if (isRegex(origin)) {\n return false;\n }\n\n return pattern.some((subpattern) => matchDomain(subpattern, origin));\n }\n\n return false;\n}\n\nexport function stringifyDomainPattern(pattern: DomainMatcher): string {\n if (Array.isArray(pattern)) {\n return `(${pattern.join(\" | \")})`;\n } else if (isRegex(pattern)) {\n return `RegExp(${pattern.toString()})`;\n } else {\n return pattern.toString();\n }\n}\n\nexport function getDomainFromUrl(url: string): string {\n let domain;\n\n if (url.match(/^(https?|mock|file):\\/\\//)) {\n domain = url;\n } else {\n return getDomain();\n }\n\n domain = domain.split(\"/\").slice(0, 3).join(\"/\");\n\n return domain;\n}\n\nexport function onCloseWindow(\n win: CrossDomainWindowType,\n callback: Function,\n delay: number = 1000,\n maxtime: number = Infinity\n): {| cancel: () => void |} {\n let timeout;\n\n const check = () => {\n if (isWindowClosed(win)) {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n return callback();\n }\n\n if (maxtime <= 0) {\n clearTimeout(timeout);\n } else {\n maxtime -= delay;\n timeout = setTimeout(check, delay);\n }\n };\n\n check();\n\n return {\n cancel() {\n if (timeout) {\n clearTimeout(timeout);\n }\n },\n };\n}\n\n// eslint-disable-next-line complexity\nexport function isWindow(obj: Object): boolean {\n try {\n if (obj === window) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n // $FlowFixMe method-unbinding\n if (Object.prototype.toString.call(obj) === \"[object Window]\") {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (window.Window && obj instanceof window.Window) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.self === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.parent === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.top === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n // eslint-disable-next-line no-self-compare\n if (noop(obj === obj) === \"__unlikely_value__\") {\n return false;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (\n obj &&\n obj.__cross_domain_utils_window_check__ === \"__unlikely_value__\"\n ) {\n return false;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (\"postMessage\" in obj && \"self\" in obj && \"location\" in obj) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isBrowser(): boolean {\n return (\n typeof window !== \"undefined\" && typeof window.location !== \"undefined\"\n );\n}\n\nexport function isCurrentDomain(domain: string): boolean {\n if (!isBrowser()) {\n return false;\n }\n\n return getDomain() === domain;\n}\n\nexport function isMockDomain(domain: string): boolean {\n return domain.indexOf(PROTOCOL.MOCK) === 0;\n}\n\nexport function normalizeMockUrl(url: string): string {\n if (!isMockDomain(getDomainFromUrl(url))) {\n return url;\n }\n\n if (!__TEST__) {\n throw new Error(`Mock urls not supported out of test mode`);\n }\n\n return url.replace(/^mock:\\/\\/[^/]+/, getActualDomain(window));\n}\n\nexport function getFrameForWindow(win: CrossDomainWindowType): ?HTMLElement {\n if (isSameDomain(win)) {\n return assertSameDomain(win).frameElement;\n }\n\n for (const frame of document.querySelectorAll(\"iframe\")) {\n if (frame && frame.contentWindow && frame.contentWindow === win) {\n return frame;\n }\n }\n}\n\nexport function closeWindow(win: CrossDomainWindowType) {\n if (isIframe(win)) {\n const frame = getFrameForWindow(win);\n if (frame && frame.parentElement) {\n frame.parentElement.removeChild(frame);\n return;\n }\n }\n\n try {\n win.close();\n } catch (err) {\n // pass\n }\n}\n","/* @flow */\n\nexport function safeIndexOf(collection : $ReadOnlyArray, item : T) : number {\n for (let i = 0; i < collection.length; i++) {\n\n try {\n if (collection[i] === item) {\n return i;\n }\n } catch (err) {\n // pass\n }\n }\n\n return -1;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function noop(...args : $ReadOnlyArray) {\n // pass\n}\n","/* @flow */\n\nimport { isWindow, isWindowClosed } from '@krakenjs/cross-domain-utils/src';\n\nimport { hasNativeWeakMap } from './native';\nimport { noop, safeIndexOf } from './util';\n\nexport class CrossDomainSafeWeakMap {\n\n name : string;\n weakmap : ?WeakMap;\n // eslint-disable-next-line flowtype/no-mutable-array\n keys : Array;\n // eslint-disable-next-line flowtype/no-mutable-array\n values : Array;\n\n constructor() {\n // eslint-disable-next-line no-bitwise\n this.name = `__weakmap_${ Math.random() * 1e9 >>> 0 }__`;\n\n if (hasNativeWeakMap()) {\n try {\n this.weakmap = new WeakMap();\n } catch (err) {\n // pass\n }\n }\n\n this.keys = [];\n this.values = [];\n }\n\n _cleanupClosedWindows() {\n\n const weakmap = this.weakmap;\n const keys = this.keys;\n\n for (let i = 0; i < keys.length; i++) {\n const value = keys[i];\n\n if (isWindow(value) && isWindowClosed(value)) {\n\n if (weakmap) {\n try {\n weakmap.delete(value);\n } catch (err) {\n // pass\n }\n }\n\n keys.splice(i, 1);\n this.values.splice(i, 1);\n\n i -= 1;\n }\n }\n }\n\n isSafeToReadWrite(key : K) : boolean {\n\n if (isWindow(key)) {\n return false;\n }\n\n try {\n noop(key && key.self);\n noop(key && key[this.name]);\n } catch (err) {\n return false;\n }\n\n return true;\n }\n\n set(key : K, value : V) {\n\n if (!key) {\n throw new Error(`WeakMap expected key`);\n }\n\n const weakmap = this.weakmap;\n\n if (weakmap) {\n try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n }\n\n if (this.isSafeToReadWrite(key)) {\n try {\n const name = this.name;\n const entry = key[name];\n\n if (entry && entry[0] === key) {\n entry[1] = value;\n } else {\n Object.defineProperty(key, name, {\n value: [ key, value ],\n writable: true\n });\n }\n\n return;\n\n } catch (err) {\n // pass\n }\n }\n\n this._cleanupClosedWindows();\n\n const keys = this.keys;\n const values = this.values;\n const index = safeIndexOf(keys, key);\n\n if (index === -1) {\n keys.push(key);\n values.push(value);\n } else {\n values[index] = value;\n }\n }\n\n get(key : K) : V | void {\n\n if (!key) {\n throw new Error(`WeakMap expected key`);\n }\n\n const weakmap = this.weakmap;\n\n if (weakmap) {\n try {\n if (weakmap.has(key)) {\n return weakmap.get(key);\n }\n\n } catch (err) {\n delete this.weakmap;\n }\n }\n\n if (this.isSafeToReadWrite(key)) {\n try {\n const entry = key[this.name];\n\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return;\n } catch (err) {\n // pass\n }\n }\n\n this._cleanupClosedWindows();\n\n const keys = this.keys;\n const index = safeIndexOf(keys, key);\n\n if (index === -1) {\n return;\n }\n\n return this.values[index];\n }\n\n delete(key : K) {\n\n if (!key) {\n throw new Error(`WeakMap expected key`);\n }\n\n const weakmap = this.weakmap;\n\n if (weakmap) {\n try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n }\n\n if (this.isSafeToReadWrite(key)) {\n try {\n const entry = key[this.name];\n\n if (entry && entry[0] === key) {\n entry[0] = entry[1] = undefined;\n }\n } catch (err) {\n // pass\n }\n }\n\n this._cleanupClosedWindows();\n\n const keys = this.keys;\n const index = safeIndexOf(keys, key);\n\n if (index !== -1) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n }\n\n has(key : K) : boolean {\n\n if (!key) {\n throw new Error(`WeakMap expected key`);\n }\n\n const weakmap = this.weakmap;\n\n if (weakmap) {\n try {\n if (weakmap.has(key)) {\n return true;\n }\n } catch (err) {\n delete this.weakmap;\n }\n }\n\n if (this.isSafeToReadWrite(key)) {\n try {\n const entry = key[this.name];\n\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n } catch (err) {\n // pass\n }\n }\n\n this._cleanupClosedWindows();\n\n const index = safeIndexOf(this.keys, key);\n return index !== -1;\n }\n\n getOrSet(key : K, getter : () => V) : V {\n if (this.has(key)) {\n // $FlowFixMe\n return this.get(key);\n }\n\n const value = getter();\n this.set(key, value);\n return value;\n }\n}\n","/* @flow */\n/* eslint max-lines: 0 */\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport { WeakMap } from \"@krakenjs/cross-domain-safe-weakmap/src\";\n\nimport {\n BLANK_URL,\n ctrlCharactersRegex,\n htmlCtrlEntityRegex,\n htmlEntitiesRegex,\n invalidProtocolRegex,\n relativeFirstCharacters,\n urlSchemeRegex,\n} from \"./constants\";\nimport type { CancelableType } from \"./types\";\n\nexport function isElement(element: mixed): boolean {\n let passed = false;\n\n try {\n if (element instanceof window.Element) {\n passed = true;\n } else if (\n element !== null &&\n typeof element === \"object\" &&\n element.nodeType === 1 &&\n typeof element.style === \"object\" &&\n typeof element.ownerDocument === \"object\"\n ) {\n passed = true;\n }\n } catch (_) {\n // we don't have an element\n }\n\n return passed;\n}\n\nexport function getFunctionName(fn: T): string {\n return fn.name || fn.__name__ || fn.displayName || \"anonymous\";\n}\n\nexport function setFunctionName(fn: T, name: string): T {\n try {\n delete fn.name;\n fn.name = name;\n } catch (err) {\n // pass\n }\n\n fn.__name__ = fn.displayName = name;\n return fn;\n}\n\nexport function base64encode(str: string): string {\n if (typeof btoa === \"function\") {\n return btoa(\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (m, p1) => {\n return String.fromCharCode(parseInt(p1, 16));\n })\n ).replace(/[=]/g, \"\");\n }\n\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(str, \"utf8\").toString(\"base64\").replace(/[=]/g, \"\");\n }\n\n throw new Error(`Can not find window.btoa or Buffer`);\n}\n\nexport function base64decode(str: string): string {\n if (typeof atob === \"function\") {\n return decodeURIComponent(\n // $FlowFixMe[method-unbinding]\n Array.prototype.map\n .call(atob(str), (c) => {\n // eslint-disable-next-line prefer-template\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\")\n );\n }\n\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(str, \"base64\").toString(\"utf8\");\n }\n\n throw new Error(`Can not find window.atob or Buffer`);\n}\n\nexport function uniqueID(): string {\n const chars = \"0123456789abcdef\";\n\n const randomID = \"xxxxxxxxxx\".replace(/./g, () => {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n });\n\n const timeID = base64encode(\n new Date().toISOString().slice(11, 19).replace(\"T\", \".\")\n )\n .replace(/[^a-zA-Z0-9]/g, \"\")\n .toLowerCase();\n\n return `uid_${randomID}_${timeID}`;\n}\n\nexport function getGlobal(): Object {\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof __GLOBAL__ !== \"undefined\") {\n return __GLOBAL__;\n }\n throw new Error(`No global found`);\n}\n\nlet objectIDs;\n\nexport function getObjectID(obj: Object): string {\n objectIDs = objectIDs || new WeakMap();\n\n if (\n obj === null ||\n obj === undefined ||\n (typeof obj !== \"object\" && typeof obj !== \"function\")\n ) {\n throw new Error(`Invalid object`);\n }\n\n let uid = objectIDs.get(obj);\n\n if (!uid) {\n uid = `${typeof obj}:${uniqueID()}`;\n objectIDs.set(obj, uid);\n }\n\n return uid;\n}\n\nfunction serializeArgs(args: $ReadOnlyArray): string {\n try {\n // $FlowFixMe[method-unbinding]\n return JSON.stringify(Array.prototype.slice.call(args), (subkey, val) => {\n // Treat each distinct function as unique for purposes of memoization\n // e.g. even if someFunction.stringify() is the same, we may use a different memoize cache\n // if the actual function is different.\n if (typeof val === \"function\") {\n return `memoize[${getObjectID(val)}]`;\n }\n\n // By default JSON.stringify(domElement) returns '{}'. This ensures that stays true even for non-standard\n // elements (e.g. React-rendered dom elements) with custom properties\n if (isElement(val)) {\n return {};\n }\n\n return val;\n });\n } catch (err) {\n throw new Error(`Arguments not serializable -- can not be used to memoize`);\n }\n}\n\nexport function getEmptyObject(): {||} {\n // $FlowFixMe\n return {};\n}\n\ntype MemoizeOptions = {|\n name?: string,\n time?: number,\n thisNamespace?: boolean,\n|};\n\nconst getDefaultMemoizeOptions = (): MemoizeOptions => {\n // $FlowFixMe\n return {};\n};\n\nexport type Memoized = F & {| reset: () => void |};\n\nlet memoizeGlobalIndex = 0;\nlet memoizeGlobalIndexValidFrom = 0;\n\nexport function memoize(\n method: F,\n options?: MemoizeOptions = getDefaultMemoizeOptions()\n): Memoized {\n const { thisNamespace = false, time: cacheTime } = options;\n\n let simpleCache;\n let thisCache;\n\n let memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n\n const memoizedFunction = function memoizedFunction(...args): mixed {\n if (memoizeIndex < memoizeGlobalIndexValidFrom) {\n simpleCache = null;\n thisCache = null;\n memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n }\n\n let cache;\n\n if (thisNamespace) {\n thisCache = thisCache || new WeakMap();\n cache = thisCache.getOrSet(this, getEmptyObject);\n } else {\n cache = simpleCache = simpleCache || {};\n }\n\n let cacheKey;\n\n try {\n cacheKey = serializeArgs(args);\n } catch {\n return method.apply(this, arguments);\n }\n\n let cacheResult = cache[cacheKey];\n\n if (cacheResult && cacheTime && Date.now() - cacheResult.time < cacheTime) {\n delete cache[cacheKey];\n cacheResult = null;\n }\n\n if (cacheResult) {\n return cacheResult.value;\n }\n\n const time = Date.now();\n const value = method.apply(this, arguments);\n\n cache[cacheKey] = { time, value };\n\n return value;\n };\n\n memoizedFunction.reset = () => {\n simpleCache = null;\n thisCache = null;\n };\n\n // $FlowFixMe\n const result: F = memoizedFunction;\n\n return setFunctionName(\n result,\n `${options.name || getFunctionName(method)}::memoized`\n );\n}\n\nmemoize.clear = () => {\n memoizeGlobalIndexValidFrom = memoizeGlobalIndex;\n};\n\nexport function promiseIdentity(\n item: ZalgoPromise | T\n): ZalgoPromise {\n // $FlowFixMe\n return ZalgoPromise.resolve(item);\n}\n\nexport function memoizePromise(\n // eslint-disable-next-line flowtype/no-weak-types\n method: (...args: $ReadOnlyArray) => ZalgoPromise\n // eslint-disable-next-line flowtype/no-weak-types\n): (...args: $ReadOnlyArray) => ZalgoPromise {\n let cache = {};\n\n function memoizedPromiseFunction(\n // eslint-disable-next-line flowtype/no-weak-types\n ...args: $ReadOnlyArray\n ): ZalgoPromise {\n const key: string = serializeArgs(args);\n\n if (cache.hasOwnProperty(key)) {\n return cache[key];\n }\n\n cache[key] = ZalgoPromise.try(() => method.apply(this, arguments)).finally(\n () => {\n delete cache[key];\n }\n );\n\n return cache[key];\n }\n\n memoizedPromiseFunction.reset = () => {\n cache = {};\n };\n\n return setFunctionName(\n memoizedPromiseFunction,\n `${getFunctionName(method)}::promiseMemoized`\n );\n}\n\ntype PromisifyOptions = {|\n name?: string,\n|};\n\nconst getDefaultPromisifyOptions = (): PromisifyOptions => {\n // $FlowFixMe\n return {};\n};\n\nexport function promisify(\n // eslint-disable-next-line flowtype/no-weak-types\n method: (...args: $ReadOnlyArray) => R,\n options: PromisifyOptions = getDefaultPromisifyOptions()\n // eslint-disable-next-line flowtype/no-weak-types\n): (...args: $ReadOnlyArray) => ZalgoPromise {\n function promisifiedFunction(): ZalgoPromise {\n return ZalgoPromise.try(method, this, arguments);\n }\n\n if (options.name) {\n promisifiedFunction.displayName = `${options.name}:promisified`;\n }\n\n return setFunctionName(\n promisifiedFunction,\n `${getFunctionName(method)}::promisified`\n );\n}\n\nexport function inlineMemoize(\n // eslint-disable-next-line flowtype/no-weak-types\n method: (...args: $ReadOnlyArray) => R,\n // eslint-disable-next-line flowtype/no-weak-types\n logic: (...args: $ReadOnlyArray) => R,\n // eslint-disable-next-line flowtype/no-weak-types\n args: $ReadOnlyArray = []\n): R {\n // $FlowFixMe\n const cache: {| [string]: R |} = (method.__inline_memoize_cache__ =\n // $FlowFixMe\n method.__inline_memoize_cache__ || {});\n const key = serializeArgs(args);\n\n if (cache.hasOwnProperty(key)) {\n return cache[key];\n }\n\n const result = (cache[key] = logic(...args));\n\n return result;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function noop(...args: $ReadOnlyArray) {\n // pass\n}\n\nexport function once(method: Function): Function {\n let called = false;\n\n const onceFunction = function (): mixed {\n if (!called) {\n called = true;\n return method.apply(this, arguments);\n }\n };\n\n return setFunctionName(onceFunction, `${getFunctionName(method)}::once`);\n}\n\nexport function hashStr(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash += str[i].charCodeAt(0) * Math.pow((i % 10) + 1, 5);\n }\n return Math.floor(Math.pow(Math.sqrt(hash), 5));\n}\n\nexport function strHashStr(str: string): string {\n let hash = \"\";\n\n for (let i = 0; i < str.length; i++) {\n let total = str[i].charCodeAt(0) * i;\n\n if (str[i + 1]) {\n total += str[i + 1].charCodeAt(0) * (i - 1);\n }\n\n hash += String.fromCharCode(97 + (Math.abs(total) % 26));\n }\n\n return hash;\n}\n\nexport function match(str: string, pattern: RegExp): ?string {\n const regmatch = str.match(pattern);\n if (regmatch) {\n return regmatch[1];\n }\n}\n\nexport function awaitKey(obj: Object, key: string): ZalgoPromise {\n return new ZalgoPromise((resolve) => {\n let value = obj[key];\n\n if (value) {\n return resolve(value);\n }\n\n delete obj[key];\n\n Object.defineProperty(obj, key, {\n configurable: true,\n\n set(item) {\n value = item;\n\n if (value) {\n resolve(value);\n }\n },\n\n get(): T {\n return value;\n },\n });\n });\n}\n\nexport function stringifyError(err: mixed, level: number = 1): string {\n if (level >= 3) {\n return \"stringifyError stack overflow\";\n }\n\n try {\n if (!err) {\n // $FlowFixMe[method-unbinding]\n return ``;\n }\n\n if (typeof err === \"string\") {\n return err;\n }\n\n if (err instanceof Error) {\n const stack = err && err.stack;\n const message = err && err.message;\n\n if (stack && message) {\n if (stack.indexOf(message) !== -1) {\n return stack;\n } else {\n return `${message}\\n${stack}`;\n }\n } else if (stack) {\n return stack;\n } else if (message) {\n return message;\n }\n }\n\n if (err && err.toString && typeof err.toString === \"function\") {\n // $FlowFixMe\n return err.toString();\n }\n\n // $FlowFixMe[method-unbinding]\n return Object.prototype.toString.call(err);\n } catch (newErr) {\n return `Error while stringifying error: ${stringifyError(\n newErr,\n level + 1\n )}`;\n }\n}\n\nexport function stringifyErrorMessage(err: mixed): string {\n // $FlowFixMe[method-unbinding]\n const defaultMessage = ``;\n\n if (!err) {\n return defaultMessage;\n }\n\n if (err instanceof Error) {\n return err.message || defaultMessage;\n }\n\n if (typeof err.message === \"string\") {\n return err.message || defaultMessage;\n }\n\n return defaultMessage;\n}\n\nexport function stringify(item: mixed): string {\n if (typeof item === \"string\") {\n return item;\n }\n\n if (item && item.toString && typeof item.toString === \"function\") {\n // $FlowFixMe\n return item.toString();\n }\n\n // $FlowFixMe[method-unbinding]\n return Object.prototype.toString.call(item);\n}\n\nexport function domainMatches(hostname: string, domain: string): boolean {\n hostname = hostname.split(\"://\")[1];\n const index = hostname.indexOf(domain);\n return index !== -1 && hostname.slice(index) === domain;\n}\n\nexport function patchMethod(obj: Object, name: string, handler: Function) {\n const original = obj[name];\n\n obj[name] = function patchedMethod(): mixed {\n return handler({\n context: this,\n // $FlowFixMe[method-unbinding]\n args: Array.prototype.slice.call(arguments),\n original,\n callOriginal: () => original.apply(this, arguments),\n });\n };\n}\n\nexport function extend(obj: T, source: Object): T {\n if (!source) {\n return obj;\n }\n\n if (Object.assign) {\n return Object.assign(obj, source);\n }\n\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n obj[key] = source[key];\n }\n }\n\n return obj;\n}\n\nexport function values(obj: { [string]: T }): $ReadOnlyArray {\n if (Object.values) {\n // $FlowFixMe\n return Object.values(obj);\n }\n\n const result: Array = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n // $FlowFixMe[escaped-generic]\n result.push(obj[key]);\n }\n }\n\n // $FlowFixMe\n return result;\n}\n\n// eslint-disable-next-line no-undef\nexport const memoizedValues: ({ [string]: T }) => $ReadOnlyArray =\n memoize(values);\n\nexport function perc(pixels: number, percentage: number): number {\n return Math.round((pixels * percentage) / 100);\n}\n\nexport function min(...args: $ReadOnlyArray): number {\n return Math.min(...args);\n}\n\nexport function max(...args: $ReadOnlyArray): number {\n return Math.max(...args);\n}\n\nexport function roundUp(num: number, nearest: number): number {\n const remainder = num % nearest;\n return remainder ? num - remainder + nearest : num;\n}\n\nexport function regexMap(\n str: string,\n regexp: RegExp,\n handler: () => T\n): $ReadOnlyArray {\n const results = [];\n\n // $FlowFixMe\n str.replace(regexp, function regexMapMatcher(item) {\n results.push(handler ? handler.apply(null, arguments) : item);\n });\n\n // $FlowFixMe\n return results;\n}\n\nexport function svgToBase64(svg: string): string {\n return `data:image/svg+xml;base64,${base64encode(svg)}`;\n}\n\nexport function objFilter(\n obj: { [string]: T },\n filter?: (T, ?string) => mixed = Boolean\n): { [string]: R } {\n const result = {};\n\n for (const key in obj) {\n if (!obj.hasOwnProperty(key) || !filter(obj[key], key)) {\n continue;\n }\n\n result[key] = obj[key];\n }\n\n return result;\n}\n\nexport function identity(item: T): T {\n return item;\n}\n\nexport function regexTokenize(\n text: string,\n regexp: RegExp\n): $ReadOnlyArray {\n const result = [];\n text.replace(regexp, (token) => {\n result.push(token);\n return \"\";\n });\n return result;\n}\n\nexport function promiseDebounce(\n method: () => ZalgoPromise | T,\n delay: number = 50\n): () => ZalgoPromise {\n let promise;\n let timeout;\n\n const promiseDebounced = function (): ZalgoPromise {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n const localPromise = (promise = promise || new ZalgoPromise());\n\n timeout = setTimeout(() => {\n promise = null;\n timeout = null;\n\n ZalgoPromise.try(method).then(\n (result) => {\n localPromise.resolve(result);\n },\n (err) => {\n localPromise.reject(err);\n }\n );\n }, delay);\n\n return localPromise;\n };\n\n return setFunctionName(\n promiseDebounced,\n `${getFunctionName(method)}::promiseDebounced`\n );\n}\n\nexport function safeInterval(\n method: Function,\n time: number\n): {| cancel: () => void |} {\n let timeout;\n\n function loop() {\n timeout = setTimeout(() => {\n method();\n loop();\n }, time);\n }\n\n loop();\n\n return {\n cancel() {\n clearTimeout(timeout);\n },\n };\n}\n\nexport function isInteger(str: string): boolean {\n return Boolean(str.match(/^[0-9]+$/));\n}\n\nexport function isFloat(str: string): boolean {\n return Boolean(str.match(/^[0-9]+\\.[0-9]+$/));\n}\n\nexport function serializePrimitive(value: string | number | boolean): string {\n return value.toString();\n}\n\nexport function deserializePrimitive(value: string): string | number | boolean {\n if (value === \"true\") {\n return true;\n } else if (value === \"false\") {\n return false;\n } else if (isInteger(value)) {\n return parseInt(value, 10);\n } else if (isFloat(value)) {\n return parseFloat(value);\n } else {\n return value;\n }\n}\n\nexport function dotify(\n obj: Object,\n prefix: string = \"\",\n newobj: Object = {}\n): { [string]: string } {\n prefix = prefix ? `${prefix}.` : prefix;\n for (const key in obj) {\n if (\n !obj.hasOwnProperty(key) ||\n obj[key] === undefined ||\n obj[key] === null ||\n typeof obj[key] === \"function\"\n ) {\n continue;\n } else if (\n obj[key] &&\n Array.isArray(obj[key]) &&\n obj[key].length &&\n obj[key].every((val) => typeof val !== \"object\")\n ) {\n newobj[`${prefix}${key}[]`] = obj[key].join(\",\");\n } else if (obj[key] && typeof obj[key] === \"object\") {\n newobj = dotify(obj[key], `${prefix}${key}`, newobj);\n } else {\n newobj[`${prefix}${key}`] = serializePrimitive(obj[key]);\n }\n }\n return newobj;\n}\n\nexport function undotify(obj: { [string]: string }): Object {\n const result = {};\n\n for (let key in obj) {\n if (!obj.hasOwnProperty(key) || typeof obj[key] !== \"string\") {\n continue;\n }\n\n let value = obj[key];\n\n if (key.match(/^.+\\[\\]$/)) {\n key = key.slice(0, -2);\n value = value.split(\",\").map(deserializePrimitive);\n } else {\n value = deserializePrimitive(value);\n }\n\n let keyResult = result;\n const parts = key.split(\".\");\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isLast = i + 1 === parts.length;\n const isIndex = !isLast && isInteger(parts[i + 1]);\n\n if (\n part === \"constructor\" ||\n part === \"prototype\" ||\n part === \"__proto__\"\n ) {\n throw new Error(`Disallowed key: ${part}`);\n }\n\n if (isLast) {\n // $FlowFixMe\n keyResult[part] = value;\n } else {\n // $FlowFixMe\n keyResult = keyResult[part] = keyResult[part] || (isIndex ? [] : {});\n }\n }\n }\n\n return result;\n}\n\nexport type EventEmitterType = {|\n on: (eventName: string, handler: Function) => CancelableType,\n once: (eventName: string, handler: Function) => CancelableType,\n trigger: (\n eventName: string,\n ...args: $ReadOnlyArray\n ) => ZalgoPromise,\n triggerOnce: (\n eventName: string,\n ...args: $ReadOnlyArray\n ) => ZalgoPromise,\n reset: () => void,\n|};\n\nexport function eventEmitter(): EventEmitterType {\n const triggered = {};\n let handlers = {};\n\n const emitter = {\n on(eventName: string, handler: Function): CancelableType {\n const handlerList = (handlers[eventName] = handlers[eventName] || []);\n\n handlerList.push(handler);\n\n let cancelled = false;\n\n return {\n cancel() {\n if (!cancelled) {\n cancelled = true;\n handlerList.splice(handlerList.indexOf(handler), 1);\n }\n },\n };\n },\n\n once(eventName: string, handler: Function): CancelableType {\n const listener = emitter.on(eventName, () => {\n listener.cancel();\n handler();\n });\n\n return listener;\n },\n\n trigger(\n eventName: string,\n ...args: $ReadOnlyArray\n ): ZalgoPromise {\n const handlerList = handlers[eventName];\n const promises = [];\n\n if (handlerList) {\n for (const handler of handlerList) {\n promises.push(ZalgoPromise.try(() => handler(...args)));\n }\n }\n\n return ZalgoPromise.all(promises).then(noop);\n },\n\n triggerOnce(\n eventName: string,\n ...args: $ReadOnlyArray\n ): ZalgoPromise {\n if (triggered[eventName]) {\n return ZalgoPromise.resolve();\n }\n\n triggered[eventName] = true;\n return emitter.trigger(eventName, ...args);\n },\n\n reset() {\n handlers = {};\n },\n };\n\n return emitter;\n}\n\nexport function camelToDasherize(string: string): string {\n return string.replace(/([A-Z])/g, (g) => {\n return `-${g.toLowerCase()}`;\n });\n}\n\nexport function dasherizeToCamel(string: string): string {\n return string.replace(/-([a-z])/g, (g) => {\n return g[1].toUpperCase();\n });\n}\n\nexport function capitalizeFirstLetter(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n}\n\nexport function get(item: Object, path: string, def: mixed): mixed {\n if (!path) {\n return def;\n }\n\n const pathParts = path.split(\".\");\n\n // Loop through each section of our key path\n\n for (let i = 0; i < pathParts.length; i++) {\n // If we have an object, we can get the key\n if (typeof item === \"object\" && item !== null) {\n item = item[pathParts[i]];\n\n // Otherwise, we should return the default (undefined if not provided)\n } else {\n return def;\n }\n }\n\n // If our final result is undefined, we should return the default\n\n return item === undefined ? def : item;\n}\n\nexport function safeTimeout(method: Function, time: number) {\n const interval = safeInterval(() => {\n time -= 100;\n if (time <= 0) {\n interval.cancel();\n method();\n }\n }, 100);\n}\n\nexport function defineLazyProp(\n obj: Object | $ReadOnlyArray,\n key: string | number,\n getter: () => T\n) {\n if (Array.isArray(obj)) {\n if (typeof key !== \"number\") {\n throw new TypeError(`Array key must be number`);\n }\n } else if (typeof obj === \"object\" && obj !== null) {\n if (typeof key !== \"string\") {\n throw new TypeError(`Object key must be string`);\n }\n }\n\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: true,\n get: () => {\n // $FlowFixMe\n delete obj[key];\n const value = getter();\n // $FlowFixMe\n obj[key] = value;\n return value;\n },\n set: (value: T) => {\n // $FlowFixMe\n delete obj[key];\n // $FlowFixMe\n obj[key] = value;\n },\n });\n}\n\n// eslint-disable-next-line no-undef\nexport function arrayFrom(item: Iterable): $ReadOnlyArray {\n // $FlowFixMe[method-unbinding]\n return Array.prototype.slice.call(item);\n}\n\nexport function isObject(item: mixed): boolean {\n return typeof item === \"object\" && item !== null;\n}\n\nexport function isObjectObject(obj: mixed): boolean {\n return (\n // $FlowFixMe[method-unbinding]\n isObject(obj) && Object.prototype.toString.call(obj) === \"[object Object]\"\n );\n}\n\nexport function isPlainObject(obj: mixed): boolean {\n if (!isObjectObject(obj)) {\n return false;\n }\n\n // $FlowFixMe\n const constructor = obj.constructor;\n\n if (typeof constructor !== \"function\") {\n return false;\n }\n\n const prototype = constructor.prototype;\n\n if (!isObjectObject(prototype)) {\n return false;\n }\n\n if (!prototype.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n\n return true;\n}\n\nexport function replaceObject | Object>(\n item: T,\n replacer: (mixed, string | number, string) => mixed,\n fullKey: string = \"\"\n): T {\n if (Array.isArray(item)) {\n const length = item.length;\n const result: Array = [];\n\n for (let i = 0; i < length; i++) {\n defineLazyProp(result, i, () => {\n const itemKey = fullKey ? `${fullKey}.${i}` : `${i}`;\n const el = item[i];\n\n let child = replacer(el, i, itemKey);\n\n if (isPlainObject(child) || Array.isArray(child)) {\n // $FlowFixMe\n child = replaceObject(child, replacer, itemKey);\n }\n\n return child;\n });\n }\n\n // $FlowFixMe\n return result;\n } else if (isPlainObject(item)) {\n const result = {};\n\n for (const key in item) {\n if (!item.hasOwnProperty(key)) {\n continue;\n }\n\n defineLazyProp(result, key, () => {\n const itemKey = fullKey ? `${fullKey}.${key}` : `${key}`;\n // $FlowFixMe\n const el = item[key];\n\n let child = replacer(el, key, itemKey);\n\n if (isPlainObject(child) || Array.isArray(child)) {\n // $FlowFixMe\n child = replaceObject(child, replacer, itemKey);\n }\n\n return child;\n });\n }\n\n // $FlowFixMe\n return result;\n } else {\n throw new Error(`Pass an object or array`);\n }\n}\n\nexport function copyProp(\n source: Object,\n target: Object,\n name: string,\n def: mixed\n) {\n if (source.hasOwnProperty(name)) {\n const descriptor = Object.getOwnPropertyDescriptor(source, name);\n // $FlowFixMe\n Object.defineProperty(target, name, descriptor);\n } else {\n target[name] = def;\n }\n}\n\ntype RegexResultType = {|\n text: string,\n groups: $ReadOnlyArray,\n start: number,\n end: number,\n length: number,\n replace: (text: string) => string,\n|};\n\nexport function regex(\n pattern: string | RegExp,\n string: string,\n start: number = 0\n): ?RegexResultType {\n if (typeof pattern === \"string\") {\n // eslint-disable-next-line security/detect-non-literal-regexp\n pattern = new RegExp(pattern);\n }\n\n const result = string.slice(start).match(pattern);\n\n if (!result) {\n return;\n }\n\n // $FlowFixMe\n const index: number = result.index;\n const regmatch = result[0];\n\n return {\n text: regmatch,\n groups: result.slice(1),\n start: start + index,\n end: start + index + regmatch.length,\n length: regmatch.length,\n\n replace(text: string): string {\n if (!regmatch) {\n return \"\";\n }\n\n return `${regmatch.slice(0, start + index)}${text}${regmatch.slice(\n index + regmatch.length\n )}`;\n },\n };\n}\n\nexport function regexAll(\n pattern: string | RegExp,\n string: string\n): $ReadOnlyArray {\n const matches = [];\n let start = 0;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const regmatch = regex(pattern, string, start);\n\n if (!regmatch) {\n break;\n }\n\n matches.push(regmatch);\n start = match.end;\n }\n\n return matches;\n}\n\nexport function isDefined(value: ?mixed): boolean {\n return value !== null && value !== undefined;\n}\n\nexport function cycle(method: Function): ZalgoPromise {\n return ZalgoPromise.try(method).then(() => cycle(method));\n}\n\nexport function debounce(\n method: (...args: $ReadOnlyArray) => T,\n time: number = 100\n): (...args: $ReadOnlyArray) => void {\n let timeout;\n\n const debounceWrapper = function () {\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n return method.apply(this, arguments);\n }, time);\n };\n\n return setFunctionName(\n debounceWrapper,\n `${getFunctionName(method)}::debounced`\n );\n}\n\nexport function isRegex(item: mixed): boolean {\n // $FlowFixMe[method-unbinding]\n return Object.prototype.toString.call(item) === \"[object RegExp]\";\n}\n\ntype FunctionProxy = (method: T) => T;\n\nexport const weakMapMemoize: FunctionProxy<*> = (\n // eslint-disable-next-line flowtype/no-weak-types\n method: (arg: any) => R\n // eslint-disable-next-line flowtype/no-weak-types\n): ((...args: $ReadOnlyArray) => R) => {\n const weakmap = new WeakMap();\n\n // eslint-disable-next-line flowtype/no-weak-types\n return function weakmapMemoized(arg: any): R {\n return weakmap.getOrSet(arg, () => method.call(this, arg));\n };\n};\n\ntype FunctionPromiseProxy<\n R: mixed,\n T: (...args: $ReadOnlyArray) => ZalgoPromise\n> = (T) => T;\n\nexport const weakMapMemoizePromise: FunctionPromiseProxy<*, *> = (\n // eslint-disable-next-line flowtype/no-weak-types\n method: (arg: any) => ZalgoPromise\n // eslint-disable-next-line flowtype/no-weak-types\n): ((...args: $ReadOnlyArray) => ZalgoPromise) => {\n const weakmap = new WeakMap();\n\n // eslint-disable-next-line flowtype/no-weak-types\n return function weakmapMemoizedPromise(arg: any): ZalgoPromise {\n return weakmap.getOrSet(arg, () =>\n method.call(this, arg).finally(() => {\n weakmap.delete(arg);\n })\n );\n };\n};\n\nexport function getOrSet(\n obj: O,\n key: string,\n getter: () => T\n): T {\n if (obj.hasOwnProperty(key)) {\n return obj[key];\n }\n\n const val = getter();\n obj[key] = val;\n return val;\n}\n\nexport type CleanupType = {|\n set: (string, T) => T, // eslint-disable-line no-undef\n register: (Function) => {| cancel: () => void |},\n all: (err?: mixed) => ZalgoPromise,\n|};\n\nexport function cleanup(obj: Object): CleanupType {\n const tasks = [];\n let cleaned = false;\n let cleanErr;\n\n const cleaner = {\n set(name: string, item: T): T {\n if (!cleaned) {\n obj[name] = item;\n cleaner.register(() => {\n delete obj[name];\n });\n }\n return item;\n },\n\n register(method: Function): {| cancel: () => void |} {\n const task = once(() => method(cleanErr));\n\n if (cleaned) {\n method(cleanErr);\n } else {\n tasks.push(task);\n }\n\n return {\n cancel: () => {\n const index = tasks.indexOf(task);\n if (index !== -1) {\n tasks.splice(index, 1);\n }\n },\n };\n },\n\n all(err?: mixed): ZalgoPromise {\n cleanErr = err;\n\n const results = [];\n cleaned = true;\n\n while (tasks.length) {\n const task = tasks.shift();\n results.push(task());\n }\n\n return ZalgoPromise.all(results).then(noop);\n },\n };\n\n return cleaner;\n}\n\nexport function tryCatch(\n fn: () => T\n): {| result: T, error: void |} | {| result: void, error: mixed |} {\n let result;\n let error;\n\n try {\n result = fn();\n } catch (err) {\n error = err;\n }\n\n // $FlowFixMe\n return { result, error };\n}\n\n// eslint-disable-next-line flowtype/no-mutable-array\nexport function removeFromArray>(arr: T, item: X) {\n const index = arr.indexOf(item);\n if (index !== -1) {\n arr.splice(index, 1);\n }\n}\n\nexport function assertExists(name: string, thing: void | null | T): T {\n if (thing === null || typeof thing === \"undefined\") {\n throw new Error(`Expected ${name} to be present`);\n }\n\n return thing;\n}\n\nexport function unique(arr: $ReadOnlyArray): $ReadOnlyArray {\n const result = {};\n for (const item of arr) {\n result[item] = true;\n }\n return Object.keys(result);\n}\n\nexport const constHas = (\n constant: T,\n value: X\n): boolean => {\n return memoizedValues(constant).indexOf(value) !== -1;\n};\n\nexport function dedupeErrors(handler: (mixed) => T): (mixed) => T | void {\n const seenErrors = [];\n const seenStringifiedErrors = {};\n\n return (err) => {\n if (seenErrors.indexOf(err) !== -1) {\n return;\n }\n\n seenErrors.push(err);\n\n const stringifiedError = stringifyError(err);\n if (seenStringifiedErrors[stringifiedError]) {\n return;\n }\n\n seenStringifiedErrors[stringifiedError] = true;\n return handler(err);\n };\n}\n\nexport class ExtendableError extends Error {\n constructor(message: string) {\n super(message);\n // eslint-disable-next-line unicorn/custom-error-definition\n this.name = this.constructor.name;\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error(message).stack;\n }\n }\n}\n\nfunction isRelativeUrlWithoutProtocol(url: string): boolean {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n\nfunction decodeHtmlCharacters(str: string): string {\n const removedNullByte: string = str.replace(ctrlCharactersRegex, \"\");\n return removedNullByte.replace(htmlEntitiesRegex, (matchRegex, dec) => {\n return String.fromCharCode(dec);\n });\n}\n\nexport function sanitizeUrl(url?: string): string {\n if (!url) {\n return BLANK_URL;\n }\n\n const sanitizedUrl = decodeHtmlCharacters(url)\n .replace(htmlCtrlEntityRegex, \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n\n if (!sanitizedUrl) {\n return BLANK_URL;\n }\n\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n\n const urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n\n const urlScheme = urlSchemeParseResults[0];\n\n if (invalidProtocolRegex.test(urlScheme)) {\n return BLANK_URL;\n }\n\n return sanitizedUrl;\n}\n","/* @flow */\n\nexport function hasNativeWeakMap() : boolean {\n\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n if (typeof Object.freeze === 'undefined') {\n return false;\n }\n\n try {\n\n const testWeakMap = new WeakMap();\n const testKey = {};\n const testValue = '__testvalue__';\n\n Object.freeze(testKey);\n\n testWeakMap.set(testKey, testValue);\n\n if (testWeakMap.get(testKey) === testValue) {\n return true;\n }\n\n return false;\n\n } catch (err) {\n\n return false;\n }\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeFunction from \"@babel/runtime/helpers/esm/isNativeFunction\";\nimport construct from \"@babel/runtime/helpers/esm/construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/* @flow */\n/* eslint max-lines: off */\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport {\n linkFrameWindow,\n isWindowClosed,\n assertSameDomain,\n type SameDomainWindowType,\n type CrossDomainWindowType,\n} from \"@krakenjs/cross-domain-utils/src\";\nimport { WeakMap } from \"@krakenjs/cross-domain-safe-weakmap/src\";\n\nimport {\n isElement,\n inlineMemoize,\n memoize,\n noop,\n stringify,\n capitalizeFirstLetter,\n once,\n extend,\n safeInterval,\n uniqueID,\n arrayFrom,\n ExtendableError,\n strHashStr,\n} from \"./util\";\nimport { isDevice } from \"./device\";\nimport { KEY_CODES, ATTRIBUTES, UID_HASH_LENGTH } from \"./constants\";\nimport type { CancelableType } from \"./types\";\n\ntype ElementRefType = string | HTMLElement;\n\nexport function getBody(): HTMLBodyElement {\n // eslint-disable-next-line compat/compat\n const body = document.body;\n\n if (!body) {\n throw new Error(`Body element not found`);\n }\n\n return body;\n}\n\nexport function isDocumentReady(): boolean {\n // eslint-disable-next-line compat/compat\n return Boolean(document.body) && document.readyState === \"complete\";\n}\n\nexport function isDocumentInteractive(): boolean {\n // eslint-disable-next-line compat/compat\n return Boolean(document.body) && document.readyState === \"interactive\";\n}\n\nexport function urlEncode(str: string): string {\n return encodeURIComponent(str);\n}\n\nexport function waitForWindowReady(): ZalgoPromise {\n return inlineMemoize(waitForWindowReady, (): ZalgoPromise => {\n return new ZalgoPromise((resolve) => {\n if (isDocumentReady()) {\n resolve();\n }\n\n window.addEventListener(\"load\", () => resolve());\n });\n });\n}\n\ntype WaitForDocumentReady = () => ZalgoPromise;\n\nexport const waitForDocumentReady: WaitForDocumentReady = memoize(() => {\n return new ZalgoPromise((resolve) => {\n if (isDocumentReady() || isDocumentInteractive()) {\n return resolve();\n }\n\n const interval = setInterval(() => {\n if (isDocumentReady() || isDocumentInteractive()) {\n clearInterval(interval);\n return resolve();\n }\n }, 10);\n });\n});\n\nexport function waitForDocumentBody(): ZalgoPromise {\n return ZalgoPromise.try(() => {\n if (document.body) {\n return document.body;\n }\n\n return waitForDocumentReady().then(() => {\n if (document.body) {\n return document.body;\n }\n\n throw new Error(\"Document ready but document.body not present\");\n });\n });\n}\n\nexport function parseQuery(queryString: string): Object {\n return inlineMemoize(\n parseQuery,\n (): Object => {\n const params = {};\n\n if (!queryString) {\n return params;\n }\n\n if (queryString.indexOf(\"=\") === -1) {\n return params;\n }\n\n for (let pair of queryString.split(\"&\")) {\n pair = pair.split(\"=\");\n\n if (pair[0] && pair[1]) {\n params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n }\n\n return params;\n },\n [queryString]\n );\n}\n\nexport function getQueryParam(name: string): string {\n return parseQuery(window.location.search.slice(1))[name];\n}\n\nexport function urlWillRedirectPage(url: string): boolean {\n if (url.indexOf(\"#\") === -1) {\n return true;\n }\n\n if (url.indexOf(\"#\") === 0) {\n return false;\n }\n\n if (url.split(\"#\")[0] === window.location.href.split(\"#\")[0]) {\n return false;\n }\n\n return true;\n}\n\nexport type Query = {\n [string]: boolean | string,\n};\n\nexport function formatQuery(obj: Query = {}): string {\n return Object.keys(obj)\n .filter((key) => {\n return typeof obj[key] === \"string\" || typeof obj[key] === \"boolean\";\n })\n .map((key) => {\n const val = obj[key];\n\n if (typeof val !== \"string\" && typeof val !== \"boolean\") {\n throw new TypeError(`Invalid type for query`);\n }\n\n return `${urlEncode(key)}=${urlEncode(val.toString())}`;\n })\n .join(\"&\");\n}\n\nexport function extendQuery(originalQuery: string, props: Query = {}): string {\n if (!props || !Object.keys(props).length) {\n return originalQuery;\n }\n\n return formatQuery({\n ...parseQuery(originalQuery),\n ...props,\n });\n}\n\nexport function extendUrl(\n url: string,\n options: {| query?: Query, hash?: Query |}\n): string {\n const query = options.query || {};\n const hash = options.hash || {};\n\n let originalUrl;\n let originalQuery;\n let originalHash;\n\n [originalUrl, originalHash] = url.split(\"#\");\n [originalUrl, originalQuery] = originalUrl.split(\"?\");\n\n const queryString = extendQuery(originalQuery, query);\n const hashString = extendQuery(originalHash, hash);\n\n if (queryString) {\n originalUrl = `${originalUrl}?${queryString}`;\n }\n\n if (hashString) {\n originalUrl = `${originalUrl}#${hashString}`;\n }\n\n return originalUrl;\n}\n\nexport function redirect(\n url: string,\n win: CrossDomainWindowType = window\n): ZalgoPromise {\n return new ZalgoPromise((resolve) => {\n win.location = url;\n if (!urlWillRedirectPage(url)) {\n resolve();\n }\n });\n}\n\nexport function hasMetaViewPort(): boolean {\n const meta = document.querySelector(\"meta[name=viewport]\");\n\n if (isDevice() && window.screen.width < 660 && !meta) {\n return false;\n }\n\n return true;\n}\n\nexport function isElementVisible(el: HTMLElement): boolean {\n return Boolean(\n el.offsetWidth || el.offsetHeight || el.getClientRects().length\n );\n}\n\nexport function getPerformance(): ?Performance {\n return inlineMemoize(getPerformance, (): ?Performance => {\n const performance = window.performance;\n\n if (\n performance &&\n performance.now &&\n performance.timing &&\n performance.timing.connectEnd &&\n performance.timing.navigationStart &&\n Math.abs(performance.now() - Date.now()) > 1000 &&\n performance.now() -\n (performance.timing.connectEnd - performance.timing.navigationStart) >\n 0\n ) {\n return performance;\n }\n });\n}\n\nexport function enablePerformance(): boolean {\n return Boolean(getPerformance());\n}\n\nexport function getPageRenderTime(): ZalgoPromise {\n return waitForDocumentReady().then(() => {\n const performance = getPerformance();\n\n if (!performance) {\n return;\n }\n\n const timing = performance.timing;\n\n if (timing.connectEnd && timing.domInteractive) {\n return timing.domInteractive - timing.connectEnd;\n }\n });\n}\n\nexport function htmlEncode(html: string = \"\"): string {\n return html\n .toString()\n .replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(/\\//g, \"/\");\n}\n\nexport function isBrowser(): boolean {\n return typeof window !== \"undefined\" && window.location !== undefined;\n}\n\nexport function querySelectorAll(\n selector: string,\n doc: HTMLElement = window.document\n): $ReadOnlyArray {\n // $FlowFixMe[method-unbinding]\n return Array.prototype.slice.call(doc.querySelectorAll(selector));\n}\n\n/**\n * Sets up event handlers for click events and\n * enter/space keypresses.\n * @callback handler\n * @param {HTMLElement} element\n * @param {handler} handler\n */\nexport function onClick(element: HTMLElement, handler: (Event) => void) {\n element.addEventListener(\"touchstart\", noop, { passive: true });\n element.addEventListener(\"click\", handler);\n element.addEventListener(\"keypress\", (event: Event) => {\n if (\n // $FlowFixMe\n event.keyCode === KEY_CODES.ENTER ||\n // $FlowFixMe\n event.keyCode === KEY_CODES.SPACE\n ) {\n return handler(event);\n }\n });\n}\n\nexport function getScript({\n host = window.location.host,\n path,\n reverse = false,\n}: {|\n host?: string,\n path: string,\n reverse?: boolean,\n|}): ?HTMLScriptElement {\n return inlineMemoize(\n getScript,\n (): ?HTMLScriptElement => {\n const url = `${host}${path}`;\n // $FlowFixMe[method-unbinding]\n const scripts = Array.prototype.slice.call(\n document.getElementsByTagName(\"script\")\n );\n\n if (reverse) {\n scripts.reverse();\n }\n\n for (const script of scripts) {\n if (!script.src) {\n continue;\n }\n\n const src = script.src.replace(/^https?:\\/\\//, \"\").split(\"?\")[0];\n\n if (src === url) {\n return script;\n }\n }\n },\n [path]\n );\n}\n\nexport function isLocalStorageEnabled(): boolean {\n return inlineMemoize(isLocalStorageEnabled, () => {\n try {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n if (window.localStorage) {\n const value = Math.random().toString();\n window.localStorage.setItem(\"__test__localStorage__\", value);\n const result = window.localStorage.getItem(\"__test__localStorage__\");\n window.localStorage.removeItem(\"__test__localStorage__\");\n if (value === result) {\n return true;\n }\n }\n } catch (err) {\n // pass\n }\n return false;\n });\n}\n\nexport function getBrowserLocales(): $ReadOnlyArray<{|\n country?: string,\n lang: string,\n|}> {\n const nav = window.navigator;\n\n const locales = nav.languages ? [...nav.languages] : [];\n\n if (nav.language) {\n locales.push(nav.language);\n }\n\n if (nav.userLanguage) {\n locales.push(nav.userLanguage);\n }\n\n return locales\n .map((locale) => {\n if (locale && locale.match(/^[a-z]{2}[-_][A-Z]{2}$/)) {\n const [lang, country] = locale.split(/[-_]/);\n return { country, lang };\n }\n\n if (locale && locale.match(/^[a-z]{2}$/)) {\n return { lang: locale };\n }\n\n return null;\n })\n .filter(Boolean);\n}\n\nexport function appendChild(container: HTMLElement, child: HTMLElement | Text) {\n container.appendChild(child);\n}\n\nexport function getElementSafe(\n id: ElementRefType,\n doc: Document | HTMLElement = document\n): ?HTMLElement {\n if (isElement(id)) {\n // $FlowFixMe\n return id;\n }\n\n if (typeof id === \"string\") {\n return doc.querySelector(id);\n }\n}\n\nexport function getElement(\n id: ElementRefType,\n doc: Document | HTMLElement = document\n): HTMLElement {\n const element = getElementSafe(id, doc);\n\n if (element) {\n return element;\n }\n\n throw new Error(`Can not find element: ${stringify(id)}`);\n}\n\nexport function elementReady(id: ElementRefType): ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n const name = stringify(id);\n let el = getElementSafe(id);\n\n if (el) {\n return resolve(el);\n }\n\n if (isDocumentReady()) {\n return reject(\n new Error(`Document is ready and element ${name} does not exist`)\n );\n }\n\n const interval = setInterval(() => {\n el = getElementSafe(id);\n\n if (el) {\n resolve(el);\n clearInterval(interval);\n return;\n }\n\n if (isDocumentReady()) {\n clearInterval(interval);\n return reject(\n new Error(`Document is ready and element ${name} does not exist`)\n );\n }\n }, 10);\n });\n}\n\n// eslint-disable-next-line unicorn/custom-error-definition\nexport class PopupOpenError extends ExtendableError {}\n\ntype PopupOptions = {|\n name?: string,\n width?: number,\n height?: number,\n top?: number,\n left?: number,\n status?: 0 | 1,\n resizable?: 0 | 1,\n toolbar?: 0 | 1,\n menubar?: 0 | 1,\n scrollbars?: 0 | 1,\n closeOnUnload?: 0 | 1,\n|};\n\nexport function popup(\n url: string,\n options?: PopupOptions\n): CrossDomainWindowType {\n // $FlowFixMe\n options = options || {};\n\n const { closeOnUnload = 1, name = \"\", width, height } = options;\n\n let top = 0;\n let left = 0;\n\n if (width) {\n if (window.outerWidth) {\n left = Math.round((window.outerWidth - width) / 2) + window.screenX;\n } else if (window.screen.width) {\n left = Math.round((window.screen.width - width) / 2);\n }\n }\n\n if (height) {\n if (window.outerHeight) {\n top = Math.round((window.outerHeight - height) / 2) + window.screenY;\n } else if (window.screen.height) {\n top = Math.round((window.screen.height - height) / 2);\n }\n }\n\n delete options.closeOnUnload;\n delete options.name;\n\n if (width && height) {\n // $FlowFixMe\n options = {\n top,\n left,\n width,\n height,\n status: 1,\n toolbar: 0,\n menubar: 0,\n resizable: 1,\n scrollbars: 1,\n ...options,\n };\n }\n\n const params = Object.keys(options)\n // eslint-disable-next-line array-callback-return\n .map((key) => {\n // $FlowFixMe\n if (options[key] !== null && options[key] !== undefined) {\n return `${key}=${stringify(options[key])}`;\n }\n })\n .filter(Boolean)\n .join(\",\");\n\n let win;\n\n try {\n win = window.open(url, name, params);\n } catch (err) {\n throw new PopupOpenError(\n `Can not open popup window - ${err.stack || err.message}`\n );\n }\n\n if (isWindowClosed(win)) {\n const err = new PopupOpenError(`Can not open popup window - blocked`);\n throw err;\n }\n\n if (closeOnUnload) {\n window.addEventListener(\"unload\", () => win.close());\n }\n\n return win;\n}\n\nexport function writeToWindow(win: SameDomainWindowType, html: string) {\n try {\n win.document.open();\n win.document.write(html);\n win.document.close();\n } catch (err) {\n try {\n win.location = `javascript: document.open(); document.write(${JSON.stringify(\n html\n )}); document.close();`;\n } catch (err2) {\n // pass\n }\n }\n}\n\nexport function writeElementToWindow(\n win: SameDomainWindowType,\n el: HTMLElement\n) {\n const tag = el.tagName.toLowerCase();\n\n if (tag !== \"html\") {\n throw new Error(`Expected element to be html, got ${tag}`);\n }\n\n const documentElement = win.document.documentElement;\n\n for (const child of arrayFrom(documentElement.children)) {\n documentElement.removeChild(child);\n }\n\n for (const child of arrayFrom(el.children)) {\n documentElement.appendChild(child);\n }\n}\n\nexport function setStyle(\n el: HTMLElement,\n styleText: string,\n doc: Document = window.document\n) {\n // $FlowFixMe\n if (el.styleSheet) {\n // $FlowFixMe\n el.styleSheet.cssText = styleText;\n } else {\n el.appendChild(doc.createTextNode(styleText));\n }\n}\n\nexport type ElementOptionsType = {|\n style?: { [string]: string },\n id?: string,\n class?: ?$ReadOnlyArray,\n attributes?: { [string]: string },\n styleSheet?: ?string,\n html?: ?string,\n|};\n\nlet awaitFrameLoadPromises: WeakMap<\n HTMLIFrameElement,\n ZalgoPromise\n>;\n\nexport function awaitFrameLoad(\n frame: HTMLIFrameElement\n): ZalgoPromise {\n awaitFrameLoadPromises = awaitFrameLoadPromises || new WeakMap();\n\n if (awaitFrameLoadPromises.has(frame)) {\n const promise = awaitFrameLoadPromises.get(frame);\n if (promise) {\n return promise;\n }\n }\n\n const promise = new ZalgoPromise((resolve, reject) => {\n frame.addEventListener(\"load\", () => {\n linkFrameWindow(frame);\n resolve(frame);\n });\n\n frame.addEventListener(\"error\", (err: Event) => {\n if (frame.contentWindow) {\n resolve(frame);\n } else {\n reject(err);\n }\n });\n });\n\n awaitFrameLoadPromises.set(frame, promise);\n\n return promise;\n}\n\nexport function awaitFrameWindow(\n frame: HTMLIFrameElement\n): ZalgoPromise {\n return awaitFrameLoad(frame).then((loadedFrame) => {\n if (!loadedFrame.contentWindow) {\n throw new Error(`Could not find window in iframe`);\n }\n\n return loadedFrame.contentWindow;\n });\n}\n\nconst getDefaultCreateElementOptions = (): ElementOptionsType => {\n // $FlowFixMe\n return {};\n};\n\nexport function createElement(\n tag: string = \"div\",\n options: ElementOptionsType = getDefaultCreateElementOptions(),\n container: ?HTMLElement\n): HTMLElement {\n tag = tag.toLowerCase();\n const element = document.createElement(tag);\n\n if (options.style) {\n extend(element.style, options.style);\n }\n\n if (options.class) {\n element.className = options.class.join(\" \");\n }\n\n if (options.id) {\n element.setAttribute(\"id\", options.id);\n }\n\n if (options.attributes) {\n for (const key of Object.keys(options.attributes)) {\n element.setAttribute(key, options.attributes[key]);\n }\n }\n\n if (options.styleSheet) {\n setStyle(element, options.styleSheet);\n }\n\n if (container) {\n appendChild(container, element);\n }\n\n if (options.html) {\n if (tag === \"iframe\") {\n // $FlowFixMe\n if (!container || !element.contentWindow) {\n throw new Error(\n `Iframe html can not be written unless container provided and iframe in DOM`\n );\n }\n\n // $FlowFixMe\n writeToWindow(element.contentWindow, options.html);\n } else {\n element.innerHTML = options.html;\n }\n }\n\n return element;\n}\n\ntype StringMap = {|\n [string]: string,\n|};\n\nexport type IframeElementOptionsType = {|\n style?: StringMap,\n class?: ?$ReadOnlyArray,\n attributes?: StringMap,\n styleSheet?: ?string,\n html?: ?string,\n url?: ?string,\n|};\n\nconst getDefaultIframeOptions = (): IframeElementOptionsType => {\n // $FlowFixMe\n return {};\n};\n\nconst getDefaultStringMap = (): StringMap => {\n // $FlowFixMe\n return {};\n};\n\nexport function iframe(\n options: IframeElementOptionsType = getDefaultIframeOptions(),\n container: ?HTMLElement\n): HTMLIFrameElement {\n const attributes = options.attributes || getDefaultStringMap();\n const style = options.style || getDefaultStringMap();\n\n // $FlowFixMe\n const newAttributes = {\n allowTransparency: \"true\",\n ...attributes,\n };\n\n // $FlowFixMe\n const newStyle = {\n backgroundColor: \"transparent\",\n border: \"none\",\n ...style,\n };\n\n const frame = createElement(\"iframe\", {\n attributes: newAttributes,\n style: newStyle,\n html: options.html,\n class: options.class,\n });\n\n const isIE = window.navigator.userAgent.match(/MSIE|Edge/i);\n\n if (!frame.hasAttribute(\"id\")) {\n frame.setAttribute(\"id\", uniqueID());\n }\n\n // $FlowFixMe\n awaitFrameLoad(frame);\n\n if (container) {\n const el = getElement(container);\n el.appendChild(frame);\n }\n\n if (options.url || isIE) {\n frame.setAttribute(\"src\", options.url || \"about:blank\");\n }\n\n // $FlowFixMe\n return frame;\n}\n\nexport function addEventListener(\n obj: HTMLElement,\n event: string,\n handler: (event: Event) => void\n): CancelableType {\n obj.addEventListener(event, handler);\n return {\n cancel() {\n obj.removeEventListener(event, handler);\n },\n };\n}\n\nexport function bindEvents(\n element: HTMLElement,\n eventNames: $ReadOnlyArray,\n handler: (event: Event) => void\n): CancelableType {\n handler = once(handler);\n\n for (const eventName of eventNames) {\n element.addEventListener(eventName, handler);\n }\n\n return {\n cancel: once(() => {\n for (const eventName of eventNames) {\n element.removeEventListener(eventName, handler);\n }\n }),\n };\n}\n\nconst VENDOR_PREFIXES = [\"webkit\", \"moz\", \"ms\", \"o\"];\n\nexport function setVendorCSS(\n element: HTMLElement,\n name: string,\n value: string\n) {\n // $FlowFixMe\n element.style[name] = value;\n\n const capitalizedName = capitalizeFirstLetter(name);\n\n for (const prefix of VENDOR_PREFIXES) {\n // $FlowFixMe\n element.style[`${prefix}${capitalizedName}`] = value;\n }\n}\n\nconst ANIMATION_START_EVENTS = [\n \"animationstart\",\n \"webkitAnimationStart\",\n \"oAnimationStart\",\n \"MSAnimationStart\",\n];\nconst ANIMATION_END_EVENTS = [\n \"animationend\",\n \"webkitAnimationEnd\",\n \"oAnimationEnd\",\n \"MSAnimationEnd\",\n];\n\nexport function animate(\n element: ElementRefType,\n name: string,\n clean: (Function) => void,\n timeout: number = 1000\n): ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n const el = getElement(element);\n\n if (!el) {\n return resolve();\n }\n\n let hasStarted = false;\n\n // eslint-disable-next-line prefer-const\n let startTimeout;\n let endTimeout;\n // eslint-disable-next-line prefer-const\n let startEvent;\n // eslint-disable-next-line prefer-const\n let endEvent;\n\n function cleanUp() {\n clearTimeout(startTimeout);\n clearTimeout(endTimeout);\n startEvent.cancel();\n endEvent.cancel();\n }\n\n startEvent = bindEvents(el, ANIMATION_START_EVENTS, (event) => {\n // $FlowFixMe\n if (event.target !== el || event.animationName !== name) {\n return;\n }\n\n clearTimeout(startTimeout);\n\n event.stopPropagation();\n\n startEvent.cancel();\n hasStarted = true;\n\n endTimeout = setTimeout(() => {\n cleanUp();\n resolve();\n }, timeout);\n });\n\n endEvent = bindEvents(el, ANIMATION_END_EVENTS, (event) => {\n // $FlowFixMe\n if (event.target !== el || event.animationName !== name) {\n return;\n }\n\n cleanUp();\n\n if (\n // $FlowFixMe\n typeof event.animationName === \"string\" &&\n event.animationName !== name\n ) {\n return reject(\n `Expected animation name to be ${name}, found ${event.animationName}`\n );\n }\n\n return resolve();\n });\n\n setVendorCSS(el, \"animationName\", name);\n\n startTimeout = setTimeout(() => {\n if (!hasStarted) {\n cleanUp();\n return resolve();\n }\n }, 200);\n\n if (clean) {\n clean(cleanUp);\n }\n });\n}\n\nexport function makeElementVisible(element: HTMLElement) {\n element.style.setProperty(\"visibility\", \"\");\n}\n\nexport function makeElementInvisible(element: HTMLElement) {\n element.style.setProperty(\"visibility\", \"hidden\", \"important\");\n}\n\nexport function showElement(element: HTMLElement) {\n element.style.setProperty(\"display\", \"\");\n}\n\nexport function hideElement(element: HTMLElement) {\n element.style.setProperty(\"display\", \"none\", \"important\");\n}\n\nexport function destroyElement(element: HTMLElement) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n}\n\nexport function showAndAnimate(\n element: HTMLElement,\n name: string,\n clean: (Function) => void\n): ZalgoPromise {\n const animation = animate(element, name, clean);\n showElement(element);\n return animation;\n}\n\nexport function animateAndHide(\n element: HTMLElement,\n name: string,\n clean: (Function) => void\n): ZalgoPromise {\n return animate(element, name, clean).then(() => {\n hideElement(element);\n });\n}\n\nexport function addClass(element: HTMLElement, name: string) {\n element.classList.add(name);\n}\n\nexport function removeClass(element: HTMLElement, name: string) {\n element.classList.remove(name);\n}\n\nexport function isElementClosed(el: HTMLElement): boolean {\n if (\n !el ||\n !el.parentNode ||\n !el.ownerDocument ||\n !el.ownerDocument.documentElement ||\n !el.ownerDocument.documentElement.contains(el)\n ) {\n return true;\n }\n return false;\n}\n\nexport function watchElementForClose(\n element: HTMLElement,\n handler: () => mixed\n): CancelableType {\n handler = once(handler);\n\n let cancelled = false;\n const mutationObservers = [];\n // eslint-disable-next-line prefer-const\n let interval;\n // eslint-disable-next-line prefer-const\n let sacrificialFrame;\n let sacrificialFrameWin;\n\n const cancel = () => {\n cancelled = true;\n for (const observer of mutationObservers) {\n observer.disconnect();\n }\n if (interval) {\n interval.cancel();\n }\n if (sacrificialFrameWin) {\n // eslint-disable-next-line no-use-before-define\n sacrificialFrameWin.removeEventListener(\"unload\", elementClosed);\n }\n if (sacrificialFrame) {\n destroyElement(sacrificialFrame);\n }\n };\n\n const elementClosed = () => {\n if (!cancelled) {\n handler();\n cancel();\n }\n };\n\n if (isElementClosed(element)) {\n elementClosed();\n return { cancel };\n }\n\n // Strategy 1: Mutation observer\n\n if (window.MutationObserver) {\n let mutationElement = element.parentElement;\n while (mutationElement) {\n const mutationObserver = new window.MutationObserver(() => {\n if (isElementClosed(element)) {\n elementClosed();\n }\n });\n\n mutationObserver.observe(mutationElement, { childList: true });\n mutationObservers.push(mutationObserver);\n mutationElement = mutationElement.parentElement;\n }\n }\n\n // Strategy 2: Sacrificial iframe\n\n sacrificialFrame = document.createElement(\"iframe\");\n sacrificialFrame.setAttribute(\"name\", `__detect_close_${uniqueID()}__`);\n sacrificialFrame.style.display = \"none\";\n awaitFrameWindow(sacrificialFrame).then((frameWin) => {\n sacrificialFrameWin = assertSameDomain(frameWin);\n sacrificialFrameWin.addEventListener(\"unload\", elementClosed);\n });\n element.appendChild(sacrificialFrame);\n\n // Strategy 3: Poller\n\n const check = () => {\n if (isElementClosed(element)) {\n elementClosed();\n }\n };\n interval = safeInterval(check, 1000);\n\n return { cancel };\n}\n\nexport function fixScripts(el: HTMLElement, doc: Document = window.document) {\n for (const script of querySelectorAll(\"script\", el)) {\n const parentNode = script.parentNode;\n\n if (!parentNode) {\n continue;\n }\n\n const newScript = doc.createElement(\"script\");\n newScript.text = script.textContent;\n parentNode.replaceChild(newScript, script);\n }\n}\n\ntype OnResizeOptions = {|\n width?: boolean,\n height?: boolean,\n interval?: number,\n win?: SameDomainWindowType,\n|};\n\nexport function onResize(\n el: HTMLElement,\n handler: ({| width: number, height: number |}) => void,\n {\n width = true,\n height = true,\n interval = 100,\n win = window,\n }: OnResizeOptions = {}\n): {| cancel: () => void |} {\n let currentWidth = el.offsetWidth;\n let currentHeight = el.offsetHeight;\n let canceled = false;\n\n handler({ width: currentWidth, height: currentHeight });\n\n const check = () => {\n if (canceled || !isElementVisible(el)) {\n return;\n }\n\n const newWidth = el.offsetWidth;\n const newHeight = el.offsetHeight;\n\n if (\n (width && newWidth !== currentWidth) ||\n (height && newHeight !== currentHeight)\n ) {\n handler({ width: newWidth, height: newHeight });\n }\n\n currentWidth = newWidth;\n currentHeight = newHeight;\n };\n\n let observer;\n let timeout;\n\n win.addEventListener(\"resize\", check);\n\n if (typeof win.ResizeObserver !== \"undefined\") {\n observer = new win.ResizeObserver(check);\n observer.observe(el);\n timeout = safeInterval(check, interval * 10);\n } else if (typeof win.MutationObserver !== \"undefined\") {\n observer = new win.MutationObserver(check);\n observer.observe(el, {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: false,\n });\n timeout = safeInterval(check, interval * 10);\n } else {\n timeout = safeInterval(check, interval);\n }\n\n return {\n cancel: () => {\n canceled = true;\n observer.disconnect();\n window.removeEventListener(\"resize\", check);\n timeout.cancel();\n },\n };\n}\n\nexport function getResourceLoadTime(url: string): ?number {\n const performance = getPerformance();\n\n if (!performance) {\n return;\n }\n\n // $FlowFixMe[method-unbinding]\n if (typeof performance.getEntries !== \"function\") {\n return;\n }\n\n const entries = performance.getEntries();\n\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n\n if (\n entry &&\n entry.name &&\n entry.name.indexOf(url) === 0 &&\n typeof entry.duration === \"number\"\n ) {\n return Math.floor(entry.duration);\n }\n }\n}\n\nexport function isShadowElement(element: Node): boolean {\n while (element.parentNode) {\n element = element.parentNode;\n }\n\n return element.toString() === \"[object ShadowRoot]\";\n}\n\nexport function getShadowRoot(element: Node): ?Node {\n while (element.parentNode) {\n element = element.parentNode;\n }\n\n if (isShadowElement(element)) {\n return element;\n }\n}\n\nexport function getShadowHost(element: Node): ?HTMLElement {\n const shadowRoot = getShadowRoot(element);\n\n // $FlowFixMe\n if (shadowRoot && shadowRoot.host) {\n // $FlowFixMe\n return shadowRoot.host;\n }\n}\n\nexport function insertShadowSlot(element: HTMLElement): HTMLElement {\n const shadowHost = getShadowHost(element);\n\n if (!shadowHost) {\n throw new Error(`Element is not in shadow dom`);\n }\n\n const slotName = `shadow-slot-${uniqueID()}`;\n const slot = document.createElement(\"slot\");\n slot.setAttribute(\"name\", slotName);\n element.appendChild(slot);\n\n const slotProvider = document.createElement(\"div\");\n slotProvider.setAttribute(\"slot\", slotName);\n shadowHost.appendChild(slotProvider);\n\n if (isShadowElement(shadowHost)) {\n return insertShadowSlot(slotProvider);\n }\n\n return slotProvider;\n}\n\nexport function preventClickFocus(el: HTMLElement) {\n const onFocus = (event: Event) => {\n el.removeEventListener(\"focus\", onFocus);\n event.preventDefault();\n el.blur();\n return false;\n };\n\n el.addEventListener(\"mousedown\", () => {\n el.addEventListener(\"focus\", onFocus);\n setTimeout(() => {\n el.removeEventListener(\"focus\", onFocus);\n }, 1);\n });\n}\n\nexport function getStackTrace(): string {\n try {\n throw new Error(\"_\");\n } catch (err) {\n return err.stack || \"\";\n }\n}\n\nfunction inferCurrentScript(): ?HTMLScriptElement {\n try {\n const stack = getStackTrace();\n const stackDetails = /.*at [^(]*\\((.*):(.+):(.+)\\)$/gi.exec(stack);\n const scriptLocation = stackDetails && stackDetails[1];\n\n if (!scriptLocation) {\n return;\n }\n\n // $FlowFixMe[method-unbinding]\n for (const script of Array.prototype.slice\n .call(document.getElementsByTagName(\"script\"))\n .reverse()) {\n if (script.src && script.src === scriptLocation) {\n return script;\n }\n }\n } catch (err) {\n // pass\n }\n}\n\nlet currentScript =\n // eslint-disable-next-line compat/compat\n typeof document !== \"undefined\" ? document.currentScript : null;\n\ntype GetCurrentScript = () => HTMLScriptElement;\n\nexport const getCurrentScript: GetCurrentScript = memoize(() => {\n if (currentScript) {\n return currentScript;\n }\n\n currentScript = inferCurrentScript();\n\n if (currentScript) {\n return currentScript;\n }\n\n throw new Error(\"Can not determine current script\");\n});\n\nconst currentUID = uniqueID();\n\ntype GetCurrentScriptUID = () => string;\n\nexport const getCurrentScriptUID: GetCurrentScriptUID = memoize(() => {\n let script;\n\n try {\n script = getCurrentScript();\n } catch (err) {\n return currentUID;\n }\n\n let uid = script.getAttribute(ATTRIBUTES.UID);\n\n if (uid && typeof uid === \"string\") {\n return uid;\n }\n\n uid = script.getAttribute(`${ATTRIBUTES.UID}-auto`);\n\n if (uid && typeof uid === \"string\") {\n return uid;\n }\n\n if (script.src) {\n const { src, dataset } = script;\n const stringToHash = JSON.stringify({ src, dataset });\n const hashedString = strHashStr(stringToHash);\n const hashResult = hashedString.slice(\n hashedString.length - UID_HASH_LENGTH\n );\n\n uid = `uid_${hashResult}`;\n } else {\n uid = uniqueID();\n }\n\n script.setAttribute(`${ATTRIBUTES.UID}-auto`, uid);\n\n return uid;\n});\n\ntype SubmitFormOptions = {|\n url: string,\n target: string,\n body?: {| [string]: string | boolean |},\n method?: string,\n|};\n\nexport function submitForm({\n url,\n target,\n body,\n method = \"post\",\n}: SubmitFormOptions) {\n const form = document.createElement(\"form\");\n form.setAttribute(\"target\", target);\n form.setAttribute(\"method\", method);\n form.setAttribute(\"action\", url);\n form.style.display = \"none\";\n\n if (body) {\n for (const key of Object.keys(body)) {\n const input = document.createElement(\"input\");\n input.setAttribute(\"name\", key);\n input.setAttribute(\"value\", body[key]?.toString());\n form.appendChild(input);\n }\n }\n\n getBody().appendChild(form);\n form.submit();\n getBody().removeChild(form);\n}\n","/* @flow */\n\nexport const KEY_CODES = {\n ENTER: 13,\n SPACE: 32,\n};\n\nexport const ATTRIBUTES = {\n UID: \"data-uid\",\n};\n\nexport const UID_HASH_LENGTH = 30;\n\n/* eslint-disable no-control-regex*/\nexport const invalidProtocolRegex: RegExp =\n /([^\\w]*)(javascript|data|vbscript)/im;\nexport const htmlEntitiesRegex: RegExp = /&#(\\w+)(^\\w|;)?/g;\nexport const htmlCtrlEntityRegex: RegExp = /&(newline|tab);/gi;\nexport const ctrlCharactersRegex: RegExp =\n /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nexport const urlSchemeRegex: RegExp = /^.+(:|:)/gim;\nexport const relativeFirstCharacters = [\".\", \"/\"];\nexport const BLANK_URL = \"about:blank\";\n/* eslint-enable no-control-regex*/\n","/* @flow */\n\nimport { uniqueID, getGlobal, inlineMemoize } from \"./util\";\nimport { isLocalStorageEnabled } from \"./dom\";\n\ntype Getter = (handler: (Object) => T) => T;\n\nexport type Storage = {|\n getState: Getter<*>,\n getID: () => string,\n isStateFresh: () => boolean,\n getSessionState: Getter<*>,\n getSessionID: () => string,\n|};\n\nconst DEFAULT_SESSION_STORAGE = 20 * 60 * 1000;\n\nexport function getStorage({\n name,\n lifetime = DEFAULT_SESSION_STORAGE,\n // a sticky session id helps to identify sdk sessions that were created by other sdks\n // like the situation where the Braintree SDK loads the PP SDK\n stickySessionId,\n}: {|\n name: string,\n lifetime?: number,\n stickySessionId?: string,\n|}): Storage {\n return inlineMemoize(\n getStorage,\n () => {\n const STORAGE_KEY = `__${name}_storage__`;\n const newStateID = uniqueID();\n\n let accessedStorage;\n\n function getState(handler: (storage: Object) => T): T {\n const localStorageEnabled = isLocalStorageEnabled();\n let storage;\n\n if (accessedStorage) {\n storage = accessedStorage;\n }\n\n if (!storage && localStorageEnabled) {\n const rawStorage = window.localStorage.getItem(STORAGE_KEY);\n\n if (rawStorage) {\n storage = JSON.parse(rawStorage);\n }\n }\n\n if (!storage) {\n storage = getGlobal()[STORAGE_KEY];\n }\n\n if (!storage) {\n storage = {\n id: newStateID,\n };\n }\n\n if (!storage.id) {\n storage.id = newStateID;\n }\n\n accessedStorage = storage;\n\n const result = handler(storage);\n\n if (localStorageEnabled) {\n window.localStorage.setItem(STORAGE_KEY, JSON.stringify(storage));\n } else {\n getGlobal()[STORAGE_KEY] = storage;\n }\n\n accessedStorage = null;\n\n return result;\n }\n\n function getID(): string {\n return getState((storage) => storage.id);\n }\n\n function isStateFresh(): boolean {\n return getID() === newStateID;\n }\n\n function getSession(handler: (state: Object) => T): T {\n return getState((storage) => {\n let session = storage.__session__;\n const now = Date.now();\n\n if (session && now - session.created > lifetime) {\n session = null;\n }\n\n if (!session) {\n session = {\n guid: stickySessionId || uniqueID(),\n created: now,\n };\n }\n\n storage.__session__ = session;\n\n return handler(session);\n });\n }\n\n function getSessionState(handler: (state: Object) => T): T {\n return getSession((session) => {\n session.state = session.state || {};\n return handler(session.state);\n });\n }\n\n function getSessionID(): string {\n return getSession((session) => session.guid);\n }\n\n return {\n getState,\n getID,\n isStateFresh,\n getSessionState,\n getSessionID,\n };\n },\n [{ name, lifetime }]\n );\n}\n","/* @flow */\n\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport { type SameDomainWindowType } from \"@krakenjs/cross-domain-utils/src\";\n\ntype RequestOptionsType = {|\n url: string,\n method?: string,\n headers?: { [key: string]: string },\n json?: $ReadOnlyArray | Object,\n data?: { [key: string]: string },\n body?: string,\n win?: SameDomainWindowType,\n timeout?: number,\n|};\n\ntype ResponseType = {|\n status: number,\n headers: { [string]: string },\n body: Object,\n|};\n\nconst HEADERS = {\n CONTENT_TYPE: \"content-type\",\n ACCEPT: \"accept\",\n};\n\nconst headerBuilders = [];\n\nfunction parseHeaders(rawHeaders: string = \"\"): { [string]: string } {\n const result = {};\n for (const line of rawHeaders.trim().split(\"\\n\")) {\n const [key, ...values] = line.split(\":\");\n result[key.toLowerCase()] = values.join(\":\").trim();\n }\n return result;\n}\n\nexport function request({\n url,\n method = \"get\",\n headers = {},\n json,\n data,\n body,\n win = window,\n timeout = 0,\n}: RequestOptionsType): ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n if ((json && data) || (json && body) || (data && json)) {\n throw new Error(\n `Only options.json or options.data or options.body should be passed`\n );\n }\n\n const normalizedHeaders = {};\n\n for (const key of Object.keys(headers)) {\n normalizedHeaders[key.toLowerCase()] = headers[key];\n }\n\n if (json) {\n normalizedHeaders[HEADERS.CONTENT_TYPE] =\n normalizedHeaders[HEADERS.CONTENT_TYPE] || \"application/json\";\n } else if (data || body) {\n normalizedHeaders[HEADERS.CONTENT_TYPE] =\n normalizedHeaders[HEADERS.CONTENT_TYPE] ||\n \"application/x-www-form-urlencoded; charset=utf-8\";\n }\n\n normalizedHeaders[HEADERS.ACCEPT] =\n normalizedHeaders[HEADERS.ACCEPT] || \"application/json\";\n\n for (const headerBuilder of headerBuilders) {\n const builtHeaders = headerBuilder();\n\n for (const key of Object.keys(builtHeaders)) {\n normalizedHeaders[key.toLowerCase()] = builtHeaders[key];\n }\n }\n\n const xhr = new win.XMLHttpRequest();\n\n xhr.addEventListener(\n \"load\",\n function xhrLoad(): void {\n const responseHeaders = parseHeaders(this.getAllResponseHeaders());\n\n if (!this.status) {\n return reject(\n new Error(\n `Request to ${method.toLowerCase()} ${url} failed: no response status code.`\n )\n );\n }\n\n const contentType = responseHeaders[\"content-type\"];\n const isJSON =\n contentType &&\n (contentType.indexOf(\"application/json\") === 0 ||\n contentType.indexOf(\"text/json\") === 0);\n let responseBody = this.responseText;\n\n try {\n responseBody = JSON.parse(responseBody);\n } catch (err) {\n if (isJSON) {\n return reject(new Error(`Invalid json: ${this.responseText}.`));\n }\n }\n\n const res = {\n status: this.status,\n headers: responseHeaders,\n body: responseBody,\n };\n\n return resolve(res);\n },\n false\n );\n\n xhr.addEventListener(\n \"error\",\n (evt) => {\n reject(\n new Error(\n `Request to ${method.toLowerCase()} ${url} failed: ${evt.toString()}.`\n )\n );\n },\n false\n );\n\n xhr.open(method, url, true);\n\n for (const key in normalizedHeaders) {\n if (normalizedHeaders.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, normalizedHeaders[key]);\n }\n }\n\n if (json) {\n body = JSON.stringify(json);\n } else if (data) {\n body = Object.keys(data)\n .map((key) => {\n return `${encodeURIComponent(key)}=${\n data ? encodeURIComponent(data[key]) : \"\"\n }`;\n })\n .join(\"&\");\n }\n\n xhr.timeout = timeout;\n xhr.ontimeout = function xhrTimeout() {\n reject(\n new Error(`Request to ${method.toLowerCase()} ${url} has timed out`)\n );\n };\n\n xhr.send(body);\n });\n}\n\nexport function addHeaderBuilder(method: () => { [string]: string }) {\n headerBuilders.push(method);\n}\n","/* @flow */\n\nexport function isPerc(str: string): boolean {\n return typeof str === \"string\" && /^[0-9]+%$/.test(str);\n}\n\nexport function isPx(str: string): boolean {\n return typeof str === \"string\" && /^[0-9]+px$/.test(str);\n}\n\nexport function toNum(val: string | number): number {\n if (typeof val === \"number\") {\n return val;\n }\n\n const match = val.match(/^([0-9]+)(px|%)$/);\n\n if (!match) {\n throw new Error(`Could not match css value from ${val}`);\n }\n\n return parseInt(match[1], 10);\n}\n\nexport function toPx(val: number | string): string {\n return `${toNum(val)}px`;\n}\n\nexport function toCSS(val: number | string): string {\n if (typeof val === \"number\") {\n return toPx(val);\n }\n\n return isPerc(val) ? val : toPx(val);\n}\n\nexport function percOf(num: number, perc: string): number {\n return parseInt((num * toNum(perc)) / 100, 10);\n}\n\nexport function normalizeDimension(dim: string | number, max: number): number {\n if (typeof dim === \"number\") {\n return dim;\n } else if (isPerc(dim)) {\n return percOf(max, dim);\n } else if (isPx(dim)) {\n return toNum(dim);\n } else {\n throw new Error(`Can not normalize dimension: ${dim}`);\n }\n}\n","/* @flow */\n\nimport { type CrossDomainWindowType, type SameDomainWindowType } from '@krakenjs/cross-domain-utils/src';\nimport { WeakMap } from '@krakenjs/cross-domain-safe-weakmap/src';\nimport { getOrSet, getCurrentScriptUID } from '@krakenjs/belter/src';\n\nexport function getGlobalKey() : string {\n if (__POST_ROBOT__.__SCRIPT_NAMESPACE__) {\n return `${ __POST_ROBOT__.__GLOBAL_KEY__ }_${ getCurrentScriptUID() }`;\n } else {\n return __POST_ROBOT__.__GLOBAL_KEY__;\n }\n}\n\nexport function getGlobal(win : SameDomainWindowType = window) : Object {\n const globalKey = getGlobalKey();\n\n if (win !== window) {\n return win[globalKey];\n }\n const global : Object = win[globalKey] = win[globalKey] || {};\n return global;\n}\n\nexport function deleteGlobal() {\n const globalKey = getGlobalKey();\n delete window[globalKey];\n}\n\ntype ObjectGetter = () => Object;\nconst getObj : ObjectGetter = () => ({});\n\ntype GetOrSet = ((string, () => T) => T) & ((string, () => void) => void);\n\ntype GlobalStore = {|\n get : ((string, T) => T) & ((string, void) => T | void),\n set : (string, T) => T,\n has : (string) => boolean,\n del : (string) => void,\n getOrSet : GetOrSet,\n reset : () => void,\n keys : () => $ReadOnlyArray\n|};\n\nexport function globalStore(key? : string = 'store', defStore? : ObjectGetter = getObj) : GlobalStore {\n return getOrSet(getGlobal(), key, () => {\n let store = defStore();\n\n return {\n has: (storeKey) => {\n return store.hasOwnProperty(storeKey);\n },\n get: (storeKey, defVal) => {\n // $FlowFixMe\n return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal;\n },\n set: (storeKey, val) => {\n store[storeKey] = val;\n return val;\n },\n del: (storeKey) => {\n delete store[storeKey];\n },\n getOrSet: (storeKey, getter) => {\n // $FlowFixMe\n return getOrSet(store, storeKey, getter);\n },\n reset: () => {\n store = defStore();\n },\n keys: () => {\n return Object.keys(store);\n }\n };\n });\n}\n\nexport class WildCard {}\n\nexport function getWildcard() : WildCard {\n const global = getGlobal();\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new WildCard();\n return global.WINDOW_WILDCARD;\n}\n\ntype WindowStore = {|\n get : ((CrossDomainWindowType | WildCard, T) => T) & ((CrossDomainWindowType | WildCard, void) => T | void),\n set : (CrossDomainWindowType | WildCard, T) => T,\n has : (CrossDomainWindowType | WildCard) => boolean,\n del : (CrossDomainWindowType | WildCard) => void,\n getOrSet : (CrossDomainWindowType | WildCard, () => T) => T\n|};\n\nexport function windowStore(key? : string = 'store', defStore? : ObjectGetter = getObj) : WindowStore {\n return globalStore('windowStore').getOrSet(key, () => {\n const winStore = new WeakMap();\n\n const getStore = (win : CrossDomainWindowType | WildCard) : ObjectGetter => {\n return winStore.getOrSet(win, defStore);\n };\n \n return {\n has: (win) => {\n const store = getStore(win);\n return store.hasOwnProperty(key);\n },\n get: (win, defVal) => {\n const store = getStore(win);\n // $FlowFixMe\n return store.hasOwnProperty(key) ? store[key] : defVal;\n },\n set: (win, val) => {\n const store = getStore(win);\n store[key] = val;\n return val;\n },\n del: (win) => {\n const store = getStore(win);\n delete store[key];\n },\n getOrSet: (win, getter) => {\n const store = getStore(win);\n return getOrSet(store, key, getter);\n }\n };\n });\n}\n","/* @flow */\n\nimport { getAncestor, type CrossDomainWindowType } from '@krakenjs/cross-domain-utils/src';\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { uniqueID } from '@krakenjs/belter/src';\n\nimport { MESSAGE_NAME, WILDCARD } from '../conf';\nimport { windowStore, globalStore, getGlobal } from '../global';\nimport type { OnType, SendType, CancelableType } from '../types';\n\nfunction getInstanceID() : string {\n return globalStore('instance').getOrSet('instanceID', uniqueID);\n}\n\nfunction getHelloPromise(win : CrossDomainWindowType) : ZalgoPromise<{| domain : string |}> {\n const helloPromises = windowStore('helloPromises');\n return helloPromises.getOrSet(win, () => new ZalgoPromise());\n}\n\nfunction resolveHelloPromise(win : CrossDomainWindowType, { domain }) : ZalgoPromise<{| domain : string |}> {\n const helloPromises = windowStore('helloPromises');\n const existingPromise = helloPromises.get(win);\n if (existingPromise) {\n existingPromise.resolve({ domain });\n }\n const newPromise = ZalgoPromise.resolve({ domain });\n helloPromises.set(win, newPromise);\n return newPromise;\n}\n\nfunction listenForHello({ on } : {| on : OnType |}) : CancelableType {\n return on(MESSAGE_NAME.HELLO, { domain: WILDCARD }, ({ source, origin }) => {\n resolveHelloPromise(source, { domain: origin });\n return { instanceID: getInstanceID() };\n });\n}\n\nexport function sayHello(win : CrossDomainWindowType, { send } : {| send : SendType |}) : ZalgoPromise<{| win : CrossDomainWindowType, domain : string, instanceID : string |}> {\n return send(win, MESSAGE_NAME.HELLO, { instanceID: getInstanceID() }, { domain: WILDCARD, timeout: -1 })\n .then(({ origin, data: { instanceID } }) => {\n resolveHelloPromise(win, { domain: origin });\n return { win, domain: origin, instanceID };\n });\n}\n\nexport function getWindowInstanceID(win : CrossDomainWindowType, { send } : {| send : SendType |}) : ZalgoPromise {\n return windowStore('windowInstanceIDPromises').getOrSet(win, () => {\n return sayHello(win, { send }).then(({ instanceID }) => instanceID);\n });\n}\n\nexport function initHello({ on, send } : {| on : OnType, send : SendType |}) : CancelableType {\n return globalStore('builtinListeners').getOrSet('helloListener', () => {\n const listener = listenForHello({ on });\n\n const parent = getAncestor();\n if (parent) {\n sayHello(parent, { send }).catch(err => {\n // $FlowFixMe\n if (__TEST__ && getGlobal(parent)) {\n throw err;\n }\n });\n }\n\n return listener;\n });\n}\n\nexport function awaitWindowHello(win : CrossDomainWindowType, timeout : number = 5000, name : string = 'Window') : ZalgoPromise<{| domain : string |}> {\n let promise = getHelloPromise(win);\n\n if (timeout !== -1) {\n promise = promise.timeout(timeout, new Error(`${ name } did not load after ${ timeout }ms`));\n }\n\n return promise;\n}\n","/* @flow */\n\nexport const MESSAGE_TYPE = {\n REQUEST: ('postrobot_message_request' : 'postrobot_message_request'),\n RESPONSE: ('postrobot_message_response' : 'postrobot_message_response'),\n ACK: ('postrobot_message_ack' : 'postrobot_message_ack')\n};\n\nexport const MESSAGE_ACK = {\n SUCCESS: ('success' : 'success'),\n ERROR: ('error' : 'error')\n};\n\nexport const MESSAGE_NAME = {\n METHOD: ('postrobot_method' : 'postrobot_method'),\n HELLO: ('postrobot_hello' : 'postrobot_hello'),\n OPEN_TUNNEL: ('postrobot_open_tunnel' : 'postrobot_open_tunnel')\n};\n\nexport const SEND_STRATEGY = {\n POST_MESSAGE: ('postrobot_post_message' : 'postrobot_post_message'),\n BRIDGE: ('postrobot_bridge' : 'postrobot_bridge'),\n GLOBAL: ('postrobot_global' : 'postrobot_global')\n};\n\nexport const BRIDGE_NAME_PREFIX = '__postrobot_bridge__';\nexport const POSTROBOT_PROXY = '__postrobot_proxy__';\n\nexport const WILDCARD = '*';\n\nexport const SERIALIZATION_TYPE = {\n CROSS_DOMAIN_ZALGO_PROMISE: ('cross_domain_zalgo_promise' : 'cross_domain_zalgo_promise'),\n CROSS_DOMAIN_FUNCTION: ('cross_domain_function' : 'cross_domain_function'),\n CROSS_DOMAIN_WINDOW: ('cross_domain_window' : 'cross_domain_window')\n};\n\nexport const METHOD = {\n GET: ('get' : 'get'),\n POST: ('post' : 'post')\n};\n","/* @flow */\n\nimport { type CrossDomainWindowType } from '@krakenjs/cross-domain-utils/src';\n\nimport { windowStore } from '../global';\n\nexport function markWindowKnown(win : CrossDomainWindowType) {\n const knownWindows = windowStore('knownWindows');\n knownWindows.set(win, true);\n}\n\nexport function isWindowKnown(win : CrossDomainWindowType) : boolean {\n const knownWindows = windowStore('knownWindows');\n return knownWindows.get(win, false);\n}\n","/* @flow */\n\nimport { TYPE } from './constants';\nimport type { CustomSerializedType } from './types';\n\nexport function isSerializedType(item : mixed) : boolean {\n return (typeof item === 'object' && item !== null && typeof item.__type__ === 'string');\n}\n\nexport function determineType(val : mixed) : $Values | void {\n if (typeof val === 'undefined') {\n return TYPE.UNDEFINED;\n }\n\n if (val === null) {\n return TYPE.NULL;\n }\n\n if (Array.isArray(val)) {\n return TYPE.ARRAY;\n }\n\n if (typeof val === 'function') {\n return TYPE.FUNCTION;\n }\n\n if (typeof val === 'object') {\n\n if (val instanceof Error) {\n return TYPE.ERROR;\n }\n\n if (typeof val.then === 'function') {\n return TYPE.PROMISE;\n }\n\n // $FlowFixMe method-unbinding\n if (Object.prototype.toString.call(val) === '[object RegExp]') {\n return TYPE.REGEX;\n }\n\n // $FlowFixMe method-unbinding\n if (Object.prototype.toString.call(val) === '[object Date]') {\n return TYPE.DATE;\n }\n\n return TYPE.OBJECT;\n }\n\n if (typeof val === 'string') {\n return TYPE.STRING;\n }\n\n if (typeof val === 'number') {\n return TYPE.NUMBER;\n }\n\n if (typeof val === 'boolean') {\n return TYPE.BOOLEAN;\n }\n}\n\nexport function serializeType(type : T, val : V) : CustomSerializedType {\n return {\n __type__: type,\n __val__: val\n };\n}\n","/* @flow */\n\nexport const TYPE = {\n FUNCTION: ('function' : 'function'),\n ERROR: ('error' : 'error'),\n PROMISE: ('promise' : 'promise'),\n REGEX: ('regex' : 'regex'),\n DATE: ('date' : 'date'),\n ARRAY: ('array' : 'array'),\n OBJECT: ('object' : 'object'),\n STRING: ('string' : 'string'),\n NUMBER: ('number' : 'number'),\n BOOLEAN: ('boolean' : 'boolean'),\n NULL: ('null' : 'null'),\n UNDEFINED: ('undefined' : 'undefined')\n};\n","/* @flow */\n\nimport { TYPE } from './constants';\nimport type { Thenable, CustomSerializedType, NativeSerializedType } from './types';\nimport { determineType, isSerializedType } from './common';\nimport {\n serializeFunction,\n serializeError, type SerializedError,\n serializePromise,\n serializeRegex, type SerializedRegex,\n serializeDate, type SerializedDate,\n serializeArray,\n serializeObject,\n serializeString,\n serializeNumber,\n serializeBoolean,\n serializeNull,\n serializeUndefined\n} from './serializers';\n\ntype NativeSerializer> = (value : V, key : string) => NativeSerializedType;\ntype CustomSerializer = (value : V, key : string) => CustomSerializedType;\ntype PrimitiveSerializer = (value : V, key : string) => S;\ntype CustomOrPrimitiveSerializer = CustomSerializer | PrimitiveSerializer;\ntype NativeOrCustomOrPrimitiveSerializer = NativeSerializer | CustomOrPrimitiveSerializer;\n\ntype Serializers = {|\n function? : CustomOrPrimitiveSerializer,\n error? : NativeOrCustomOrPrimitiveSerializer,\n promise? : CustomOrPrimitiveSerializer,\n regex? : NativeOrCustomOrPrimitiveSerializer,\n date? : NativeOrCustomOrPrimitiveSerializer,\n array? : CustomOrPrimitiveSerializer<$ReadOnlyArray, typeof TYPE.ARRAY>,\n object? : CustomOrPrimitiveSerializer,\n string? : CustomOrPrimitiveSerializer,\n number? : CustomOrPrimitiveSerializer,\n boolean? : CustomOrPrimitiveSerializer,\n null? : CustomOrPrimitiveSerializer,\n undefined? : CustomOrPrimitiveSerializer\n|};\n\nconst SERIALIZER : Serializers = {\n [ TYPE.FUNCTION ]: serializeFunction,\n [ TYPE.ERROR ]: serializeError,\n [ TYPE.PROMISE ]: serializePromise,\n [ TYPE.REGEX ]: serializeRegex,\n [ TYPE.DATE ]: serializeDate,\n [ TYPE.ARRAY ]: serializeArray,\n [ TYPE.OBJECT ]: serializeObject,\n [ TYPE.STRING ]: serializeString,\n [ TYPE.NUMBER ]: serializeNumber,\n [ TYPE.BOOLEAN ]: serializeBoolean,\n [ TYPE.NULL ]: serializeNull,\n [ TYPE.UNDEFINED ]: serializeUndefined\n};\n\n// $FlowFixMe\nconst defaultSerializers : Serializers = {};\n\nexport function serialize(obj : T, serializers : Serializers = defaultSerializers) : string {\n\n function replacer(key) : ?mixed {\n const val = this[key];\n\n if (isSerializedType(this)) {\n return val;\n }\n \n const type = determineType(val);\n\n if (!type) {\n return val;\n }\n\n // $FlowFixMe\n const serializer = serializers[type] || SERIALIZER[type];\n\n if (!serializer) {\n return val;\n }\n\n return serializer(val, key);\n }\n\n const result = JSON.stringify(obj, replacer);\n\n if (typeof result === 'undefined') {\n return TYPE.UNDEFINED;\n }\n\n return result;\n}\n","/* @flow */\n\nexport type SerializedFunction = void;\n\nexport function serializeFunction() : SerializedFunction {\n // pass\n}\n\nexport function deserializeFunction() {\n throw new Error(`Function serialization is not implemented; nothing to deserialize`);\n}\n","/* @flow */\n\nimport { serializeType } from '../common';\nimport { TYPE } from '../constants';\nimport type { NativeSerializedType } from '../types';\n\nimport { serializeObject } from './object';\n\nexport type SerializedError = {|\n message : string,\n stack : string,\n code : string | number | void,\n data : mixed\n|};\n\n// $FlowFixMe\nexport function serializeError({ message, stack, code, data } : Error) : NativeSerializedType {\n return serializeType(TYPE.ERROR, { message, stack, code, data });\n}\n\nexport function deserializeError({ message, stack, code, data } : SerializedError) : Error {\n const error = new Error(message);\n // $FlowFixMe\n error.code = code;\n\n if (data) {\n // $FlowFixMe\n error.data = serializeObject(data);\n }\n\n error.stack = `${ stack }\\n\\n${ error.stack }`;\n return error;\n}\n","/* @flow */\n\nimport type { Thenable } from '../types';\n\nexport type SerializedPromise = void;\n\nexport function serializePromise() : SerializedPromise {\n // pass\n}\n\nexport function deserializePromise() : Thenable {\n throw new Error(`Promise serialization is not implemented; nothing to deserialize`);\n}\n","/* @flow */\n\nimport { serializeType } from '../common';\nimport { TYPE } from '../constants';\nimport type { NativeSerializedType } from '../types';\n\nexport type SerializedRegex = string;\n\nexport function serializeRegex(val : RegExp) : NativeSerializedType {\n return serializeType(TYPE.REGEX, val.source);\n}\n\nexport function deserializeRegex(val : string) : RegExp {\n // eslint-disable-next-line security/detect-non-literal-regexp\n return new RegExp(val);\n}\n","/* @flow */\n\nimport { serializeType } from '../common';\nimport { TYPE } from '../constants';\nimport type { NativeSerializedType } from '../types';\n\nexport type SerializedDate = string;\n\nexport function serializeDate(val : Date) : NativeSerializedType {\n return serializeType(TYPE.DATE, val.toJSON());\n}\n\nexport function deserializeDate(val : string) : Date {\n return new Date(val);\n}\n","/* @flow */\n\nexport type SerializedArray = $ReadOnlyArray;\n\nexport function serializeArray(val : $ReadOnlyArray) : SerializedArray {\n return val;\n}\n\nexport function deserializeArray(val : SerializedArray) : $ReadOnlyArray {\n return val;\n}\n","/* @flow */\n\nexport type SerializedObject = Object;\n\nexport function serializeObject(val : Object) : SerializedObject {\n return val;\n}\n\nexport function deserializeObject(val : SerializedObject) : Object {\n return val;\n}\n","/* @flow */\n\nexport type SerializedString = string;\n\nexport function serializeString(val : string) : SerializedString {\n return val;\n}\n\nexport function deserializeString(val : SerializedString) : string {\n return val;\n}\n","/* @flow */\n\nexport type SerializedNumber = number;\n\nexport function serializeNumber(val : number) : SerializedNumber {\n return val;\n}\n\nexport function deserializeNumber(val : SerializedNumber) : number {\n return val;\n}\n","/* @flow */\n\nexport type SerializedBoolean = boolean;\n\nexport function serializeBoolean(val : boolean) : SerializedBoolean {\n return val;\n}\n\nexport function deserializeBoolean(val : SerializedBoolean) : boolean {\n return val;\n}\n","/* @flow */\n\nexport type SerializedNull = null;\n\nexport function serializeNull(val : null) : SerializedNull {\n return val;\n}\n\nexport function deserializeNull(val : SerializedNull) : null {\n return val;\n}\n","/* @flow */\n\nimport type { NativeSerializedType } from '../types';\nimport { serializeType } from '../common';\nimport { TYPE } from '../constants';\n\nexport type SerializedUndefined = void;\n\nexport function serializeUndefined(val : void) : NativeSerializedType {\n return serializeType(TYPE.UNDEFINED, val);\n}\n\nexport function deserializeUndefined() : void {\n // pass\n}\n","/* @flow */\n\nimport type { Thenable } from './types';\nimport { TYPE } from './constants';\nimport { determineType, isSerializedType } from './common';\nimport {\n deserializeFunction,\n deserializeError, type SerializedError,\n deserializePromise,\n deserializeRegex, type SerializedRegex,\n deserializeDate, type SerializedDate,\n deserializeArray,\n deserializeObject,\n deserializeString,\n deserializeNumber,\n deserializeBoolean,\n deserializeNull,\n deserializeUndefined\n} from './serializers';\n\ntype Deserializer = (serializedValue : S, key : string) => V;\ntype PrimitiveDeserializer = (serializedValue : S, key : string) => V;\n\ntype Deserializers = {\n function? : Deserializer,\n error? : Deserializer,\n promise? : Deserializer,\n regex? : Deserializer,\n date? : Deserializer,\n array? : PrimitiveDeserializer<$ReadOnlyArray>,\n object? : PrimitiveDeserializer,\n string? : PrimitiveDeserializer,\n number? : PrimitiveDeserializer,\n boolean? : PrimitiveDeserializer,\n null? : PrimitiveDeserializer,\n [string] : Deserializer,\n undefined? : PrimitiveDeserializer\n};\n\n// $FlowFixMe\nconst DESERIALIZER : Deserializers = {\n [ TYPE.FUNCTION ]: deserializeFunction,\n [ TYPE.ERROR ]: deserializeError,\n [ TYPE.PROMISE ]: deserializePromise,\n [ TYPE.REGEX ]: deserializeRegex,\n [ TYPE.DATE ]: deserializeDate,\n [ TYPE.ARRAY ]: deserializeArray,\n [ TYPE.OBJECT ]: deserializeObject,\n [ TYPE.STRING ]: deserializeString,\n [ TYPE.NUMBER ]: deserializeNumber,\n [ TYPE.BOOLEAN ]: deserializeBoolean,\n [ TYPE.NULL ]: deserializeNull,\n [ TYPE.UNDEFINED ]: deserializeUndefined\n};\n\n// $FlowFixMe\nconst defaultDeserializers : Deserializers = {};\n\nexport function deserialize(str : string, deserializers : Deserializers = defaultDeserializers) : T {\n if (str === TYPE.UNDEFINED) {\n // $FlowFixMe\n return;\n }\n\n function replacer(key, val) : ?mixed {\n if (isSerializedType(this)) {\n return val;\n }\n\n let type;\n let value;\n\n if (isSerializedType(val)) {\n type = val.__type__;\n value = val.__val__;\n } else {\n type = determineType(val);\n value = val;\n }\n\n if (!type) {\n return value;\n }\n\n // $FlowFixMe\n const deserializer = deserializers[type] || DESERIALIZER[type];\n\n if (!deserializer) {\n return value;\n }\n\n return deserializer(value, key);\n }\n\n return JSON.parse(str, replacer);\n}\n","/* @flow */\n/* eslint no-use-before-define: off */\n\nimport { isSameDomain, isWindowClosed, type CrossDomainWindowType, closeWindow,\n type DomainMatcher, getOpener, WINDOW_TYPE, isWindow, assertSameDomain, getFrameForWindow } from '@krakenjs/cross-domain-utils/src';\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { uniqueID, memoizePromise, noop, submitForm } from '@krakenjs/belter/src';\nimport { serializeType, type CustomSerializedType } from '@krakenjs/universal-serialize/src';\n\nimport { SERIALIZATION_TYPE, METHOD } from '../conf';\nimport { windowStore, globalStore } from '../global';\nimport { getWindowInstanceID } from '../lib';\nimport { linkWindow } from '../bridge';\nimport type { SendType } from '../types';\n\nfunction cleanupProxyWindows() {\n const idToProxyWindow = globalStore('idToProxyWindow');\n for (const id of idToProxyWindow.keys()) {\n // $FlowFixMe\n if (idToProxyWindow.get(id).shouldClean()) {\n idToProxyWindow.del(id);\n }\n }\n}\n\ntype SetLocationOptions = {|\n method? : $Values,\n body? : {|\n [string] : string | boolean\n |}\n|};\n\ntype SerializedWindowType = {|\n id : string,\n getType : () => ZalgoPromise<$Values>,\n close : () => ZalgoPromise,\n focus : () => ZalgoPromise,\n isClosed : () => ZalgoPromise,\n setLocation : (url : string, opts? : SetLocationOptions) => ZalgoPromise,\n getName : () => ZalgoPromise,\n setName : (string) => ZalgoPromise,\n getInstanceID : () => ZalgoPromise\n|};\n\nfunction getSerializedWindow(winPromise : ZalgoPromise, { send, id = uniqueID() } : {| send : SendType, id? : string |}) : SerializedWindowType {\n\n let windowNamePromise = winPromise.then(win => {\n if (isSameDomain(win)) {\n return assertSameDomain(win).name;\n }\n });\n\n const windowTypePromise = winPromise.then(window => {\n if (!isWindowClosed(window)) {\n return getOpener(window) ? WINDOW_TYPE.POPUP : WINDOW_TYPE.IFRAME;\n } else {\n throw new Error(`Window is closed, can not determine type`);\n }\n });\n\n windowNamePromise.catch(noop);\n windowTypePromise.catch(noop);\n\n const getName = () => winPromise.then(win => {\n if (isWindowClosed(win)) {\n return;\n }\n\n if (isSameDomain(win)) {\n return assertSameDomain(win).name;\n }\n\n return windowNamePromise;\n });\n\n const getDefaultSetLocationOptions = () => {\n // $FlowFixMe\n return {};\n };\n\n const setLocation = (href : string, opts? : SetLocationOptions = getDefaultSetLocationOptions()) => winPromise.then(win => {\n const domain = `${ window.location.protocol }//${ window.location.host }`;\n const { method = METHOD.GET, body } = opts;\n\n if (href.indexOf('/') === 0) {\n href = `${ domain }${ href }`;\n } else if (!href.match(/^https?:\\/\\//) && href.indexOf(domain) !== 0) {\n throw new Error(`Expected url to be http or https url, or absolute path, got ${ JSON.stringify(href) }`);\n }\n\n if (method === METHOD.POST) {\n return getName().then(name => {\n if (!name) {\n throw new Error(`Can not post to window without target name`);\n }\n\n submitForm({\n url: href,\n target: name,\n method,\n body\n });\n });\n } else if (method === METHOD.GET) {\n if (isSameDomain(win)) {\n try {\n if (win.location && typeof win.location.replace === 'function') {\n // $FlowFixMe\n win.location.replace(href);\n return;\n }\n } catch (err) {\n // pass\n }\n }\n\n win.location = href;\n\n } else {\n throw new Error(`Unsupported method: ${ method }`);\n }\n });\n\n return {\n id,\n getType: () => {\n return windowTypePromise;\n },\n getInstanceID: memoizePromise(() => winPromise.then(win => getWindowInstanceID(win, { send }))),\n close: () => winPromise.then(closeWindow),\n getName,\n focus: () => winPromise.then(win => {\n win.focus();\n }),\n isClosed: () => winPromise.then(win => {\n return isWindowClosed(win);\n }),\n setLocation,\n setName: (name) => winPromise.then(win => {\n if (__POST_ROBOT__.__IE_POPUP_SUPPORT__) {\n linkWindow({ win, name });\n }\n\n const sameDomain = isSameDomain(win);\n const frame = getFrameForWindow(win);\n\n if (!sameDomain) {\n throw new Error(`Can not set name for cross-domain window: ${ name }`);\n }\n\n assertSameDomain(win).name = name;\n if (frame) {\n frame.setAttribute('name', name);\n }\n\n windowNamePromise = ZalgoPromise.resolve(name);\n })\n };\n}\n\nexport class ProxyWindow {\n\n id : string;\n isProxyWindow : true = true;\n serializedWindow : SerializedWindowType;\n actualWindow : ?CrossDomainWindowType;\n actualWindowPromise : ZalgoPromise;\n send : SendType;\n name : string;\n\n constructor({ send, win, serializedWindow } : {| win? : CrossDomainWindowType, serializedWindow? : SerializedWindowType, send : SendType |}) {\n this.actualWindowPromise = new ZalgoPromise();\n this.serializedWindow = serializedWindow || getSerializedWindow(this.actualWindowPromise, { send });\n\n globalStore('idToProxyWindow').set(this.getID(), this);\n if (win) {\n this.setWindow(win, { send });\n }\n }\n\n getID() : string {\n return this.serializedWindow.id;\n }\n\n getType() : ZalgoPromise<$Values> {\n return this.serializedWindow.getType();\n }\n\n isPopup() : ZalgoPromise {\n return this.getType().then(type => {\n return type === WINDOW_TYPE.POPUP;\n });\n }\n\n setLocation(href : string, opts? : SetLocationOptions) : ZalgoPromise {\n return this.serializedWindow.setLocation(href, opts).then(() => this);\n }\n\n getName() : ZalgoPromise {\n return this.serializedWindow.getName();\n }\n\n setName(name : string) : ZalgoPromise {\n return this.serializedWindow.setName(name).then(() => this);\n }\n\n close() : ZalgoPromise {\n return this.serializedWindow.close().then(() => this);\n }\n\n focus() : ZalgoPromise {\n const isPopupPromise = this.isPopup();\n const getNamePromise = this.getName();\n\n const reopenPromise = ZalgoPromise.hash({ isPopup: isPopupPromise, name: getNamePromise }).then(({ isPopup, name }) => {\n if (isPopup && name) {\n window.open('', name, 'noopener');\n }\n });\n const focusPromise = this.serializedWindow.focus();\n\n return ZalgoPromise.all([\n reopenPromise,\n focusPromise\n ]).then(() => this);\n }\n\n isClosed() : ZalgoPromise {\n return this.serializedWindow.isClosed();\n }\n\n getWindow() : ?CrossDomainWindowType {\n return this.actualWindow;\n }\n\n setWindow(win : CrossDomainWindowType, { send } : {| send : SendType |}) {\n this.actualWindow = win;\n this.actualWindowPromise.resolve(this.actualWindow);\n this.serializedWindow = getSerializedWindow(this.actualWindowPromise, { send, id: this.getID() });\n windowStore('winToProxyWindow').set(win, this);\n }\n\n awaitWindow() : ZalgoPromise {\n return this.actualWindowPromise;\n }\n\n matchWindow(win : CrossDomainWindowType, { send } : {| send : SendType |}) : ZalgoPromise {\n return ZalgoPromise.try(() => {\n if (this.actualWindow) {\n return win === this.actualWindow;\n }\n\n return ZalgoPromise.hash({\n proxyInstanceID: this.getInstanceID(),\n knownWindowInstanceID: getWindowInstanceID(win, { send })\n }).then(({ proxyInstanceID, knownWindowInstanceID }) => {\n const match = proxyInstanceID === knownWindowInstanceID;\n\n if (match) {\n this.setWindow(win, { send });\n }\n\n return match;\n });\n });\n }\n\n unwrap() : CrossDomainWindowType | ProxyWindow {\n return this.actualWindow || this;\n }\n\n getInstanceID() : ZalgoPromise {\n return this.serializedWindow.getInstanceID();\n }\n\n shouldClean() : boolean {\n return Boolean(this.actualWindow && isWindowClosed(this.actualWindow));\n }\n\n serialize() : SerializedWindowType {\n return this.serializedWindow;\n }\n\n static unwrap(win : CrossDomainWindowType | ProxyWindow) : CrossDomainWindowType | ProxyWindow {\n return ProxyWindow.isProxyWindow(win)\n // $FlowFixMe\n ? win.unwrap()\n : win;\n }\n\n static serialize(win : CrossDomainWindowType | ProxyWindow, { send } : {| send : SendType |}) : SerializedWindowType {\n cleanupProxyWindows();\n return ProxyWindow.toProxyWindow(win, { send }).serialize();\n }\n\n static deserialize(serializedWindow : SerializedWindowType, { send } : {| send : SendType |}) : ProxyWindow {\n cleanupProxyWindows();\n return globalStore('idToProxyWindow').get(serializedWindow.id) || new ProxyWindow({ serializedWindow, send });\n }\n\n static isProxyWindow(obj : CrossDomainWindowType | ProxyWindow) : boolean {\n // $FlowFixMe\n return Boolean(obj && !isWindow(obj) && obj.isProxyWindow);\n }\n\n static toProxyWindow(win : CrossDomainWindowType | ProxyWindow, { send } : {| send : SendType |}) : ProxyWindow {\n cleanupProxyWindows();\n\n if (ProxyWindow.isProxyWindow(win)) {\n // $FlowFixMe\n return win;\n }\n\n // $FlowFixMe\n const actualWindow : CrossDomainWindowType = win;\n\n return windowStore('winToProxyWindow').get(actualWindow) || new ProxyWindow({ win: actualWindow, send });\n }\n}\n\nexport type SerializedWindow = CustomSerializedType;\n\nexport function serializeWindow(destination : CrossDomainWindowType | ProxyWindow, domain : DomainMatcher, win : CrossDomainWindowType, { send } : {| send : SendType |}) : SerializedWindow {\n return serializeType(SERIALIZATION_TYPE.CROSS_DOMAIN_WINDOW, ProxyWindow.serialize(win, { send }));\n}\n\nexport function deserializeWindow(source : CrossDomainWindowType | ProxyWindow, origin : string, win : SerializedWindowType, { send } : {| send : SendType |}) : ProxyWindow {\n return ProxyWindow.deserialize(win, { send });\n}\n","/* @flow */\n\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { getDomain, isSameDomain, isOpener, isSameTopWindow, matchDomain, getUserAgent, getDomainFromUrl, type CrossDomainWindowType } from '@krakenjs/cross-domain-utils/src';\nimport { noop } from '@krakenjs/belter/src';\n\nimport { BRIDGE_NAME_PREFIX } from '../conf';\nimport { windowStore } from '../global';\n\nexport function needsBridgeForBrowser() : boolean {\n\n if (getUserAgent(window).match(/MSIE|trident|edge\\/12|edge\\/13/i)) {\n return true;\n }\n\n return false;\n}\n\nexport function needsBridgeForWin(win : CrossDomainWindowType) : boolean {\n\n if (!isSameTopWindow(window, win)) {\n return true;\n }\n\n return false;\n}\n\nexport function needsBridgeForDomain(domain : ?string, win : ?CrossDomainWindowType) : boolean {\n\n if (domain) {\n if (getDomain() !== getDomainFromUrl(domain)) {\n return true;\n }\n } else if (win) {\n if (!isSameDomain(win)) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function needsBridge({ win, domain } : {| win? : CrossDomainWindowType, domain? : string |}) : boolean {\n\n if (!needsBridgeForBrowser()) {\n return false;\n }\n\n if (domain && !needsBridgeForDomain(domain, win)) {\n return false;\n }\n\n if (win && !needsBridgeForWin(win)) {\n return false;\n }\n\n return true;\n}\n\nexport function getBridgeName(domain : string) : string {\n\n domain = domain || getDomainFromUrl(domain);\n\n const sanitizedDomain = domain.replace(/[^a-zA-Z0-9]+/g, '_');\n\n const id = `${ BRIDGE_NAME_PREFIX }_${ sanitizedDomain }`;\n\n return id;\n}\n\nexport function isBridge() : boolean {\n return Boolean(window.name && window.name === getBridgeName(getDomain()));\n}\n\nexport const documentBodyReady : ZalgoPromise = new ZalgoPromise(resolve => {\n\n if (window.document && window.document.body) {\n return resolve(window.document.body);\n }\n\n const interval = setInterval(() => {\n if (window.document && window.document.body) {\n clearInterval(interval);\n return resolve(window.document.body);\n }\n }, 10);\n});\n\nexport function registerRemoteWindow(win : CrossDomainWindowType) {\n const remoteWindowPromises = windowStore('remoteWindowPromises');\n remoteWindowPromises.getOrSet(win, () => new ZalgoPromise());\n}\n\nexport function findRemoteWindow(win : CrossDomainWindowType) : ZalgoPromise<(remoteWin : CrossDomainWindowType, message : string, remoteDomain : string) => void> {\n const remoteWindowPromises = windowStore('remoteWindowPromises');\n const remoteWinPromise = remoteWindowPromises.get(win);\n\n if (!remoteWinPromise) {\n throw new Error(`Remote window promise not found`);\n }\n\n return remoteWinPromise;\n}\n\ntype SendMessageType = {|\n (string) : void,\n fireAndForget : (string) => void\n|};\n\nexport function registerRemoteSendMessage(win : CrossDomainWindowType, domain : string, sendMessage : SendMessageType) {\n const sendMessageWrapper = (remoteWin : CrossDomainWindowType, remoteDomain : string, message : string) => {\n if (remoteWin !== win) {\n throw new Error(`Remote window does not match window`);\n }\n\n if (!matchDomain(remoteDomain, domain)) {\n throw new Error(`Remote domain ${ remoteDomain } does not match domain ${ domain }`);\n }\n\n sendMessage.fireAndForget(message);\n };\n\n findRemoteWindow(win).resolve(sendMessageWrapper);\n}\n\nexport function rejectRemoteSendMessage(win : CrossDomainWindowType, err : Error) {\n findRemoteWindow(win).reject(err).catch(noop);\n}\n\nexport function sendBridgeMessage(win : CrossDomainWindowType, domain : string, message : string) : ZalgoPromise {\n\n const messagingChild = isOpener(window, win);\n const messagingParent = isOpener(win, window);\n\n if (!messagingChild && !messagingParent) {\n throw new Error(`Can only send messages to and from parent and popup windows`);\n }\n\n return findRemoteWindow(win).then(sendMessage => {\n return sendMessage(win, domain, message);\n });\n}\n","/* @flow */\n\nimport { matchDomain, getDomain, type CrossDomainWindowType, type DomainMatcher } from '@krakenjs/cross-domain-utils/src';\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { uniqueID, isRegex, arrayFrom } from '@krakenjs/belter/src';\nimport { serializeType, type CustomSerializedType } from '@krakenjs/universal-serialize/src';\n\nimport { MESSAGE_NAME, WILDCARD, SERIALIZATION_TYPE } from '../conf';\nimport { windowStore, globalStore } from '../global';\nimport type { OnType, SendType, CancelableType } from '../types';\n\nimport { ProxyWindow } from './window';\n\ntype StoredMethod = {|\n name : string,\n domain : DomainMatcher,\n val : Function,\n source : CrossDomainWindowType | ProxyWindow\n|};\n\nfunction addMethod(id : string, val : Function, name : string, source : CrossDomainWindowType | ProxyWindow, domain : DomainMatcher) {\n const methodStore = windowStore('methodStore');\n const proxyWindowMethods = globalStore('proxyWindowMethods');\n \n if (ProxyWindow.isProxyWindow(source)) {\n proxyWindowMethods.set(id, { val, name, domain, source });\n } else {\n proxyWindowMethods.del(id);\n // $FlowFixMe\n const methods = methodStore.getOrSet(source, () => ({}));\n methods[id] = { domain, name, val, source };\n }\n}\n\nfunction lookupMethod(source : CrossDomainWindowType, id : string) : ?StoredMethod {\n const methodStore = windowStore('methodStore');\n const proxyWindowMethods = globalStore('proxyWindowMethods');\n const methods = methodStore.getOrSet(source, () => ({}));\n return methods[id] || proxyWindowMethods.get(id);\n}\n\nfunction stringifyArguments(args : $ReadOnlyArray = []) : string {\n return arrayFrom(args).map(arg => {\n if (typeof arg === 'string') {\n return `'${ arg }'`;\n }\n if (arg === undefined) {\n return 'undefined';\n }\n if (arg === null) {\n return 'null';\n }\n if (typeof arg === 'boolean') {\n return arg.toString();\n }\n if (Array.isArray(arg)) {\n return '[ ... ]';\n }\n if (typeof arg === 'object') {\n return '{ ... }';\n }\n if (typeof arg === 'function') {\n return '() => { ... }';\n }\n return `<${ typeof arg }>`;\n }).join(', ');\n}\n\nfunction listenForFunctionCalls({ on, send } : {| on : OnType, send : SendType |}) : CancelableType {\n return globalStore('builtinListeners').getOrSet('functionCalls', () => {\n return on(MESSAGE_NAME.METHOD, { domain: WILDCARD }, ({ source, origin, data } : {| source : CrossDomainWindowType, origin : string, data : Object |}) => {\n const { id, name } = data;\n\n const meth = lookupMethod(source, id);\n \n if (!meth) {\n throw new Error(`Could not find method '${ name }' with id: ${ data.id } in ${ getDomain(window) }`);\n }\n\n const { source: methodSource, domain, val } = meth;\n \n return ZalgoPromise.try(() => {\n if (!matchDomain(domain, origin)) {\n // $FlowFixMe\n throw new Error(`Method '${ data.name }' domain ${ JSON.stringify(isRegex(meth.domain) ? meth.domain.source : meth.domain) } does not match origin ${ origin } in ${ getDomain(window) }`);\n }\n \n if (ProxyWindow.isProxyWindow(methodSource)) {\n // $FlowFixMe\n return methodSource.matchWindow(source, { send }).then(match => {\n if (!match) {\n throw new Error(`Method call '${ data.name }' failed - proxy window does not match source in ${ getDomain(window) }`);\n }\n });\n }\n }).then(() => {\n return val.apply({ source, origin }, data.args);\n }, err => {\n return ZalgoPromise.try(() => {\n if (val.onError) {\n return val.onError(err);\n }\n }).then(() => {\n // $FlowFixMe\n if (err.stack) {\n // $FlowFixMe\n err.stack = `Remote call to ${ name }(${ stringifyArguments(data.args) }) failed\\n\\n${ err.stack }`;\n }\n\n throw err;\n });\n }).then(result => {\n return { result, id, name };\n });\n });\n });\n}\n\nexport type SerializedFunction = CustomSerializedType;\n\n// eslint-disable-next-line flowtype/require-exact-type\ntype SerializableFunction = {\n () : ZalgoPromise | T,\n __id__? : string,\n __name__? : string\n};\n\nexport function serializeFunction(destination : CrossDomainWindowType | ProxyWindow, domain : DomainMatcher, val : SerializableFunction, key : string, { on, send } : {| on : OnType, send : SendType |}) : SerializedFunction {\n listenForFunctionCalls({ on, send });\n \n const id = val.__id__ || uniqueID();\n destination = ProxyWindow.unwrap(destination);\n let name = val.__name__ || val.name || key;\n\n if (typeof name === 'string' && typeof name.indexOf === 'function' && name.indexOf('anonymous::') === 0) {\n name = name.replace('anonymous::', `${ key }::`);\n }\n\n if (ProxyWindow.isProxyWindow(destination)) {\n addMethod(id, val, name, destination, domain);\n\n // $FlowFixMe\n destination.awaitWindow().then(win => {\n addMethod(id, val, name, win, domain);\n });\n } else {\n addMethod(id, val, name, destination, domain);\n }\n\n return serializeType(SERIALIZATION_TYPE.CROSS_DOMAIN_FUNCTION, { id, name });\n}\n\nexport function deserializeFunction(source : CrossDomainWindowType | ProxyWindow, origin : string, { id, name } : {| id : string, name : string |}, { send } : {| send : SendType |}) : (...args : $ReadOnlyArray) => ZalgoPromise {\n const getDeserializedFunction = (opts? : Object = {}) => {\n function crossDomainFunctionWrapper() : ZalgoPromise {\n let originalStack;\n \n if (__DEBUG__) {\n originalStack = (new Error(`Original call to ${ name }():`)).stack;\n }\n \n return ProxyWindow.toProxyWindow(source, { send }).awaitWindow().then(win => {\n const meth = lookupMethod(win, id);\n \n if (meth && meth.val !== crossDomainFunctionWrapper) {\n return meth.val.apply({ source: window, origin: getDomain() }, arguments);\n } else {\n // $FlowFixMe[method-unbinding]\n const args = Array.prototype.slice.call(arguments);\n\n if (opts.fireAndForget) {\n return send(win, MESSAGE_NAME.METHOD, { id, name, args }, { domain: origin, fireAndForget: true });\n } else {\n return send(win, MESSAGE_NAME.METHOD, { id, name, args }, { domain: origin, fireAndForget: false })\n .then(res => res.data.result);\n }\n }\n \n }).catch(err => {\n // $FlowFixMe\n if (__DEBUG__ && originalStack && err.stack) {\n // $FlowFixMe\n err.stack = `Remote call to ${ name }(${ stringifyArguments(arguments) }) failed\\n\\n${ err.stack }\\n\\n${ originalStack }`;\n }\n throw err;\n });\n }\n\n crossDomainFunctionWrapper.__name__ = name;\n crossDomainFunctionWrapper.__origin__ = origin;\n crossDomainFunctionWrapper.__source__ = source;\n crossDomainFunctionWrapper.__id__ = id;\n\n crossDomainFunctionWrapper.origin = origin;\n\n return crossDomainFunctionWrapper;\n };\n\n const crossDomainFunctionWrapper = getDeserializedFunction();\n crossDomainFunctionWrapper.fireAndForget = getDeserializedFunction({ fireAndForget: true });\n\n return crossDomainFunctionWrapper;\n}\n","/* @flow */\n\nimport { type CrossDomainWindowType, isWindow, type DomainMatcher } from '@krakenjs/cross-domain-utils/src';\nimport { TYPE, serialize, deserialize, type Thenable } from '@krakenjs/universal-serialize/src';\n\nimport { SERIALIZATION_TYPE } from '../conf';\nimport type { OnType, SendType } from '../types';\n\nimport { serializeFunction, deserializeFunction, type SerializedFunction } from './function';\nimport { serializePromise, deserializePromise, type SerializedPromise } from './promise';\nimport { serializeWindow, deserializeWindow, type SerializedWindow, ProxyWindow } from './window';\n\nexport function serializeMessage(destination : CrossDomainWindowType | ProxyWindow, domain : DomainMatcher, obj : T, { on, send } : {| on : OnType, send : SendType |}) : string {\n return serialize(obj, {\n [ TYPE.PROMISE ]: (val : Thenable, key : string) : SerializedPromise => serializePromise(destination, domain, val, key, { on, send }),\n [ TYPE.FUNCTION ]: (val : Function, key : string) : SerializedFunction => serializeFunction(destination, domain, val, key, { on, send }),\n [ TYPE.OBJECT ]: (val : CrossDomainWindowType) : Object | SerializedWindow => {\n return (isWindow(val) || ProxyWindow.isProxyWindow(val)) ? serializeWindow(destination, domain, val, { send }) : val;\n }\n });\n}\n\nexport function deserializeMessage(source : CrossDomainWindowType | ProxyWindow, origin : string, message : string, { send } : {| on : OnType, send : SendType |}) : T {\n return deserialize(message, {\n [ SERIALIZATION_TYPE.CROSS_DOMAIN_ZALGO_PROMISE ]: (serializedPromise) => deserializePromise(source, origin, serializedPromise),\n [ SERIALIZATION_TYPE.CROSS_DOMAIN_FUNCTION ]: (serializedFunction) => deserializeFunction(source, origin, serializedFunction, { send }),\n [ SERIALIZATION_TYPE.CROSS_DOMAIN_WINDOW ]: (serializedWindow) => deserializeWindow(source, origin, serializedWindow, { send })\n });\n}\n","/* @flow */\n\nimport { type CrossDomainWindowType, type DomainMatcher } from '@krakenjs/cross-domain-utils/src';\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { serializeType, type CustomSerializedType, type Thenable } from '@krakenjs/universal-serialize/src';\n\nimport { SERIALIZATION_TYPE } from '../conf';\nimport type { OnType, SendType } from '../types';\n\nimport { serializeFunction, type SerializedFunction } from './function';\nimport { ProxyWindow } from './window';\n\nexport type SerializedPromise = CustomSerializedType;\n\nexport function serializePromise(destination : CrossDomainWindowType | ProxyWindow, domain : DomainMatcher, val : Thenable, key : string, { on, send } : {| on : OnType, send : SendType |}) : SerializedPromise {\n return serializeType(SERIALIZATION_TYPE.CROSS_DOMAIN_ZALGO_PROMISE, {\n then: serializeFunction(destination, domain, (resolve, reject) => val.then(resolve, reject), key, { on, send })\n });\n}\n\nexport function deserializePromise(source : CrossDomainWindowType | ProxyWindow, origin : string, { then } : {| then : Function |}) : ZalgoPromise {\n return new ZalgoPromise(then);\n}\n","/* @flow */\n\nimport { isSameDomain, isSameTopWindow, isActuallySameDomain, getActualDomain,\n getDomain, type CrossDomainWindowType, PROTOCOL } from '@krakenjs/cross-domain-utils/src';\n\nimport { SEND_STRATEGY, WILDCARD } from '../../conf';\nimport { needsGlobalMessagingForBrowser } from '../../lib';\nimport { getGlobal } from '../../global';\nimport { sendBridgeMessage, needsBridgeForBrowser, isBridge } from '../../bridge';\n\ntype SendStrategies = {|\n [$Values] : (CrossDomainWindowType, string, string) => void\n|};\n\nexport const SEND_MESSAGE_STRATEGIES : SendStrategies = {};\n\nSEND_MESSAGE_STRATEGIES[SEND_STRATEGY.POST_MESSAGE] = (win : CrossDomainWindowType, serializedMessage : string, domain : string) => {\n if (domain.indexOf(PROTOCOL.FILE) === 0) {\n domain = WILDCARD;\n }\n\n if (__TEST__) {\n if (needsGlobalMessagingForBrowser() && isSameTopWindow(window, win) === false) {\n return;\n }\n\n if (domain.indexOf(PROTOCOL.MOCK) === 0) {\n if (!isActuallySameDomain(win)) {\n throw new Error(`Attempting to send message to mock domain ${ domain }, but window is actually cross-domain`);\n }\n\n // $FlowFixMe\n const windowDomain = getDomain(win);\n \n if (windowDomain !== domain) {\n throw new Error(`Mock domain target ${ domain } does not match window domain ${ windowDomain }`);\n }\n\n // $FlowFixMe\n domain = getActualDomain(win);\n\n }\n }\n\n win.postMessage(serializedMessage, domain);\n};\n\nif (__POST_ROBOT__.__IE_POPUP_SUPPORT__) {\n\n SEND_MESSAGE_STRATEGIES[SEND_STRATEGY.BRIDGE] = (win : CrossDomainWindowType, serializedMessage : string, domain : string) => {\n\n if (!needsBridgeForBrowser() && !isBridge()) {\n throw new Error(`Bridge not needed for browser`);\n }\n\n if (isSameDomain(win)) {\n throw new Error(`Post message through bridge disabled between same domain windows`);\n }\n\n if (isSameTopWindow(window, win) !== false) {\n throw new Error(`Can only use bridge to communicate between two different windows, not between frames`);\n }\n\n sendBridgeMessage(win, domain, serializedMessage);\n };\n}\n\nif (__POST_ROBOT__.__IE_POPUP_SUPPORT__ || __POST_ROBOT__.__GLOBAL_MESSAGE_SUPPORT__) {\n \n SEND_MESSAGE_STRATEGIES[SEND_STRATEGY.GLOBAL] = (win : CrossDomainWindowType, serializedMessage : string) => {\n\n if (!needsGlobalMessagingForBrowser()) {\n throw new Error(`Global messaging not needed for browser`);\n }\n\n if (!isSameDomain(win)) {\n throw new Error(`Post message through global disabled between different domain windows`);\n }\n\n if (isSameTopWindow(window, win) !== false) {\n throw new Error(`Can only use global to communicate between two different windows, not between frames`);\n }\n\n // $FlowFixMe\n const foreignGlobal = getGlobal(win);\n\n if (!foreignGlobal) {\n throw new Error(`Can not find postRobot global on foreign window`);\n }\n\n foreignGlobal.receiveMessage({\n source: window,\n origin: getDomain(),\n data: serializedMessage\n });\n };\n}\n","/* @flow */\n\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { isWindowClosed, type CrossDomainWindowType } from '@krakenjs/cross-domain-utils/src';\nimport { stringifyError, noop } from '@krakenjs/belter/src';\n\nimport { serializeMessage } from '../../serialize';\nimport { windowStore, getGlobalKey } from '../../global';\nimport type { Message, PackedMessages } from '../types';\nimport type { OnType, SendType } from '../../types';\n\nimport { SEND_MESSAGE_STRATEGIES } from './strategies';\n\nfunction packMessages(messages : $ReadOnlyArray) : PackedMessages {\n return {\n [ getGlobalKey() ]: messages\n };\n}\n\nexport function sendMessage(win : CrossDomainWindowType, domain : string, message : Message, { on, send } : {| on : OnType, send : SendType |}) : ZalgoPromise {\n return ZalgoPromise.try(() => {\n const messageBuffer = windowStore();\n\n const domainBuffer = messageBuffer.getOrSet(win, () => ({}));\n\n domainBuffer.buffer = domainBuffer.buffer || [];\n domainBuffer.buffer.push(message);\n\n domainBuffer.flush = domainBuffer.flush || ZalgoPromise.flush().then(() => {\n if (isWindowClosed(win)) {\n throw new Error('Window is closed');\n }\n\n const serializedMessage = serializeMessage(win, domain, packMessages(domainBuffer.buffer || []), { on, send });\n delete domainBuffer.buffer;\n\n const strategies = Object.keys(SEND_MESSAGE_STRATEGIES);\n const errors = [];\n\n for (const strategyName of strategies) {\n try {\n SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n } catch (err) {\n errors.push(err);\n }\n }\n\n if (errors.length === strategies.length) {\n throw new Error(`All post-robot messaging strategies failed:\\n\\n${ errors.map((err, i) => `${ i }. ${ stringifyError(err) }`).join('\\n\\n') }`);\n }\n });\n\n return domainBuffer.flush.then(() => {\n delete domainBuffer.flush;\n });\n }).then(noop);\n}\n","/* @flow */\n\nimport { type ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { matchDomain, type CrossDomainWindowType, type DomainMatcher } from '@krakenjs/cross-domain-utils/src';\nimport { isRegex, getOrSet, noop } from '@krakenjs/belter/src';\n\nimport { getWildcard, type WildCard, globalStore, windowStore } from '../global';\nimport { WILDCARD } from '../conf';\nimport { ProxyWindow } from '../serialize/window';\n\nexport function resetListeners() {\n const responseListeners = globalStore('responseListeners');\n const erroredResponseListeners = globalStore('erroredResponseListeners');\n responseListeners.reset();\n erroredResponseListeners.reset();\n}\n\nconst __DOMAIN_REGEX__ = '__domain_regex__';\n\nexport type RequestListenerType = {|\n handler : ({| source : CrossDomainWindowType, origin : string, data : mixed |}) => (mixed | ZalgoPromise),\n handleError : (err : mixed) => void\n|};\n\nexport type ResponseListenerType = {|\n name : string,\n win : CrossDomainWindowType,\n domain : DomainMatcher,\n promise : ZalgoPromise<*>,\n ack? : ?boolean,\n cancelled? : ?boolean\n|};\n\nexport function addResponseListener(hash : string, listener : ResponseListenerType) {\n const responseListeners = globalStore('responseListeners');\n responseListeners.set(hash, listener);\n}\n\nexport function getResponseListener(hash : string) : ?ResponseListenerType {\n const responseListeners = globalStore('responseListeners');\n return responseListeners.get(hash);\n}\n\nexport function deleteResponseListener(hash : string) {\n const responseListeners = globalStore('responseListeners');\n responseListeners.del(hash);\n}\n\nexport function cancelResponseListeners() {\n const responseListeners = globalStore('responseListeners');\n for (const hash of responseListeners.keys()) {\n const listener = responseListeners.get(hash);\n if (listener) {\n listener.cancelled = true;\n }\n responseListeners.del(hash);\n }\n}\n\nexport function markResponseListenerErrored(hash : string) {\n const erroredResponseListeners = globalStore('erroredResponseListeners');\n erroredResponseListeners.set(hash, true);\n}\n\nexport function isResponseListenerErrored(hash : string) : boolean {\n const erroredResponseListeners = globalStore('erroredResponseListeners');\n return erroredResponseListeners.has(hash);\n}\n\nexport function getRequestListener({ name, win, domain } : {| name : string, win : ?(CrossDomainWindowType | WildCard), domain : ?(string | RegExp) |}) : ?RequestListenerType {\n const requestListeners = windowStore('requestListeners');\n\n if (win === WILDCARD) {\n win = null;\n }\n\n if (domain === WILDCARD) {\n domain = null;\n }\n\n if (!name) {\n throw new Error(`Name required to get request listener`);\n }\n\n for (const winQualifier of [ win, getWildcard() ]) {\n if (!winQualifier) {\n continue;\n }\n\n const nameListeners = requestListeners.get(winQualifier);\n\n if (!nameListeners) {\n continue;\n }\n\n const domainListeners = nameListeners[name];\n\n if (!domainListeners) {\n continue;\n }\n\n if (domain && typeof domain === 'string') {\n if (domainListeners[domain]) {\n return domainListeners[domain];\n }\n\n if (domainListeners[__DOMAIN_REGEX__]) {\n for (const { regex, listener } of domainListeners[__DOMAIN_REGEX__]) {\n if (matchDomain(regex, domain)) {\n return listener;\n }\n }\n }\n }\n\n if (domainListeners[WILDCARD]) {\n return domainListeners[WILDCARD];\n }\n }\n}\n\n// eslint-disable-next-line complexity\nexport function addRequestListener({ name, win: winCandidate, domain } : {| name : string, win : ?(CrossDomainWindowType | WildCard | ProxyWindow), domain : ?DomainMatcher |}, listener : RequestListenerType) : {| cancel : () => void |} {\n const requestListeners = windowStore('requestListeners');\n\n if (!name || typeof name !== 'string') {\n throw new Error(`Name required to add request listener`);\n }\n\n // $FlowFixMe\n if (winCandidate && winCandidate !== WILDCARD && ProxyWindow.isProxyWindow(winCandidate)) {\n // $FlowFixMe\n const proxyWin : ProxyWindow = winCandidate;\n\n const requestListenerPromise = proxyWin.awaitWindow().then(actualWin => {\n return addRequestListener({ name, win: actualWin, domain }, listener);\n });\n\n return {\n cancel: () => {\n requestListenerPromise.then(requestListener => requestListener.cancel(), noop);\n }\n };\n }\n\n // $FlowFixMe\n let win : ?(CrossDomainWindowType | WildCard) = winCandidate;\n\n if (Array.isArray(win)) {\n const listenersCollection = [];\n\n for (const item of win) {\n listenersCollection.push(addRequestListener({ name, domain, win: item }, listener));\n }\n\n return {\n cancel() {\n for (const cancelListener of listenersCollection) {\n cancelListener.cancel();\n }\n }\n };\n }\n\n if (Array.isArray(domain)) {\n const listenersCollection = [];\n\n for (const item of domain) {\n listenersCollection.push(addRequestListener({ name, win, domain: item }, listener));\n }\n\n return {\n cancel() {\n for (const cancelListener of listenersCollection) {\n cancelListener.cancel();\n }\n }\n };\n }\n\n const existingListener = getRequestListener({ name, win, domain });\n\n if (!win || win === WILDCARD) {\n win = getWildcard();\n }\n\n domain = domain || WILDCARD;\n const strDomain = domain.toString();\n\n if (existingListener) {\n if (win && domain) {\n throw new Error(`Request listener already exists for ${ name } on domain ${ domain.toString() } for ${ win === getWildcard() ? 'wildcard' : 'specified' } window`);\n } else if (win) {\n throw new Error(`Request listener already exists for ${ name } for ${ win === getWildcard() ? 'wildcard' : 'specified' } window`);\n } else if (domain) {\n throw new Error(`Request listener already exists for ${ name } on domain ${ domain.toString() }`);\n } else {\n throw new Error(`Request listener already exists for ${ name }`);\n }\n }\n\n const winNameListeners = requestListeners.getOrSet(win, () => ({}));\n const winNameDomainListeners = getOrSet(winNameListeners, name, () => ({}));\n\n let winNameDomainRegexListeners;\n let winNameDomainRegexListener;\n\n if (isRegex(domain)) {\n winNameDomainRegexListeners = getOrSet(winNameDomainListeners, __DOMAIN_REGEX__, () => []);\n winNameDomainRegexListener = { regex: domain, listener };\n winNameDomainRegexListeners.push(winNameDomainRegexListener);\n } else {\n winNameDomainListeners[strDomain] = listener;\n }\n\n return {\n cancel() {\n delete winNameDomainListeners[strDomain];\n\n if (winNameDomainRegexListener) {\n winNameDomainRegexListeners.splice(winNameDomainRegexListeners.indexOf(winNameDomainRegexListener, 1));\n\n if (!winNameDomainRegexListeners.length) {\n delete winNameDomainListeners[__DOMAIN_REGEX__];\n }\n }\n\n if (!Object.keys(winNameDomainListeners).length) {\n delete winNameListeners[name];\n }\n\n if (win && !Object.keys(winNameListeners).length) {\n requestListeners.del(win);\n }\n }\n };\n}\n","/* @flow */\n\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { isWindowClosed, type CrossDomainWindowType, getDomain, isSameTopWindow, PROTOCOL } from '@krakenjs/cross-domain-utils/src';\nimport { addEventListener, noop } from '@krakenjs/belter/src';\n\nimport type { Message } from '../types';\nimport { MESSAGE_TYPE } from '../../conf';\nimport { markWindowKnown, needsGlobalMessagingForBrowser } from '../../lib';\nimport { deserializeMessage } from '../../serialize';\nimport { getGlobal, globalStore, getGlobalKey } from '../../global';\nimport type { OnType, SendType, MessageEvent, CancelableType } from '../../types';\n\nimport { handleRequest, handleResponse, handleAck } from './types';\n\nfunction deserializeMessages(message : string, source : CrossDomainWindowType, origin : string, { on, send } : {| on : OnType, send : SendType |}) : ?$ReadOnlyArray {\n let parsedMessage;\n\n try {\n parsedMessage = deserializeMessage(source, origin, message, { on, send });\n } catch (err) {\n return;\n }\n\n if (!parsedMessage) {\n return;\n }\n\n if (typeof parsedMessage !== 'object' || parsedMessage === null) {\n return;\n }\n\n const parseMessages = parsedMessage[getGlobalKey()];\n\n if (!Array.isArray(parseMessages)) {\n return;\n }\n\n return parseMessages;\n}\n\nexport function receiveMessage(event : MessageEvent, { on, send } : {| on : OnType, send : SendType |}) {\n const receivedMessages = globalStore('receivedMessages');\n\n try {\n if (!window || window.closed || !event.source) {\n return;\n }\n } catch (err) {\n return;\n }\n\n let { source, origin, data } = event;\n\n if (__TEST__) {\n if (isWindowClosed(source)) {\n return;\n }\n\n // $FlowFixMe\n origin = getDomain(source);\n }\n\n const messages = deserializeMessages(data, source, origin, { on, send });\n\n if (!messages) {\n return;\n }\n\n markWindowKnown(source);\n\n for (const message of messages) {\n if (receivedMessages.has(message.id)) {\n return;\n }\n\n receivedMessages.set(message.id, true);\n\n if (isWindowClosed(source) && !message.fireAndForget) {\n return;\n }\n\n if (message.origin.indexOf(PROTOCOL.FILE) === 0) {\n origin = `${ PROTOCOL.FILE }//`;\n }\n\n try {\n if (message.type === MESSAGE_TYPE.REQUEST) {\n handleRequest(source, origin, message, { on, send });\n } else if (message.type === MESSAGE_TYPE.RESPONSE) {\n handleResponse(source, origin, message);\n } else if (message.type === MESSAGE_TYPE.ACK) {\n handleAck(source, origin, message);\n }\n } catch (err) {\n setTimeout(() => {\n throw err;\n }, 0);\n }\n }\n}\n\nexport function setupGlobalReceiveMessage({ on, send } : {| on : OnType, send : SendType |}) {\n const global = getGlobal();\n global.receiveMessage = global.receiveMessage || (message => receiveMessage(message, { on, send }));\n}\n\ntype ListenerEvent = {|\n source : CrossDomainWindowType,\n origin : string,\n data : string,\n sourceElement : CrossDomainWindowType,\n originalEvent? : {| origin : string |}\n|};\n\nexport function messageListener(event : ListenerEvent, { on, send } : {| on : OnType, send : SendType |}) {\n ZalgoPromise.try(() => {\n try {\n noop(event.source);\n } catch (err) {\n return;\n }\n\n const source = event.source || event.sourceElement;\n let origin = event.origin || (event.originalEvent && event.originalEvent.origin);\n const data = event.data;\n\n if (origin === 'null') {\n origin = `${ PROTOCOL.FILE }//`;\n }\n\n if (!source) {\n return;\n }\n\n if (!origin) {\n throw new Error(`Post message did not have origin domain`);\n }\n\n if (__TEST__) {\n if (needsGlobalMessagingForBrowser() && isSameTopWindow(source, window) === false) {\n return;\n }\n }\n\n receiveMessage({ source, origin, data }, { on, send });\n });\n}\n\nexport function listenForMessages({ on, send } : {| on : OnType, send : SendType |}) : CancelableType {\n return globalStore().getOrSet('postMessageListener', () => {\n return addEventListener(window, 'message', event => {\n // $FlowFixMe\n messageListener(event, { on, send });\n });\n });\n}\n\nexport function stopListenForMessages() {\n const listener = globalStore().get('postMessageListener');\n if (listener) {\n listener.cancel();\n }\n}\n","/* @flow */\n\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { getDomain, isWindowClosed, matchDomain, stringifyDomainPattern, type CrossDomainWindowType } from '@krakenjs/cross-domain-utils/src';\nimport { noop, stringifyError, uniqueID } from '@krakenjs/belter/src';\n\nimport { MESSAGE_TYPE, MESSAGE_ACK, MESSAGE_NAME } from '../../conf';\nimport { sendMessage } from '../send';\nimport { getRequestListener, getResponseListener, deleteResponseListener, isResponseListenerErrored } from '../listeners';\nimport type { RequestMessage, AckResponseMessage, ResponseMessage } from '../types';\nimport type { OnType, SendType } from '../../types';\n\nexport function handleRequest(source : CrossDomainWindowType, origin : string, message : RequestMessage, { on, send } : {| on : OnType, send : SendType |}) : ZalgoPromise {\n\n const options = getRequestListener({ name: message.name, win: source, domain: origin });\n\n const logName = (message.name === MESSAGE_NAME.METHOD && message.data && typeof message.data.name === 'string') ? `${ message.data.name }()` : message.name;\n\n if (__DEBUG__) {\n // eslint-disable-next-line no-console\n console.info('receive::req', logName, origin, '\\n\\n', message.data);\n }\n\n function sendAck() : ZalgoPromise {\n return ZalgoPromise.flush().then(() => {\n if (message.fireAndForget || isWindowClosed(source)) {\n return;\n }\n\n try {\n return sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: MESSAGE_TYPE.ACK,\n hash: message.hash,\n name: message.name\n }, { on, send });\n } catch (err) {\n throw new Error(`Send ack message failed for ${ logName } in ${ getDomain() }\\n\\n${ stringifyError(err) }`);\n }\n });\n }\n\n\n function sendResponse(ack : $Values, data : ?Object, error : ?mixed) : ZalgoPromise {\n return ZalgoPromise.flush().then(() => {\n if (message.fireAndForget || isWindowClosed(source)) {\n return;\n }\n\n if (__DEBUG__) {\n if (ack === MESSAGE_ACK.SUCCESS) {\n console.info('respond::res', logName, origin, '\\n\\n', data); // eslint-disable-line no-console\n } else if (ack === MESSAGE_ACK.ERROR) {\n console.error('respond::err', logName, origin, '\\n\\n', error); // eslint-disable-line no-console\n }\n }\n\n try {\n return sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: MESSAGE_TYPE.RESPONSE,\n hash: message.hash,\n name: message.name,\n ack,\n data,\n error\n }, { on, send });\n } catch (err) {\n throw new Error(`Send response message failed for ${ logName } in ${ getDomain() }\\n\\n${ stringifyError(err) }`);\n }\n });\n }\n\n \n return ZalgoPromise.all([\n sendAck(),\n\n ZalgoPromise.try(() => {\n\n if (!options) {\n throw new Error(`No handler found for post message: ${ message.name } from ${ origin } in ${ window.location.protocol }//${ window.location.host }${ window.location.pathname }`);\n }\n\n const data = message.data;\n\n return options.handler({ source, origin, data });\n\n }).then(data => {\n return sendResponse(MESSAGE_ACK.SUCCESS, data);\n\n }, error => {\n return sendResponse(MESSAGE_ACK.ERROR, null, error);\n })\n\n ]).then(noop).catch(err => {\n if (options && options.handleError) {\n return options.handleError(err);\n } else {\n throw err;\n }\n });\n}\n\nexport function handleAck(source : CrossDomainWindowType, origin : string, message : AckResponseMessage) {\n\n if (isResponseListenerErrored(message.hash)) {\n return;\n }\n\n const options = getResponseListener(message.hash);\n\n if (!options) {\n throw new Error(`No handler found for post message ack for message: ${ message.name } from ${ origin } in ${ window.location.protocol }//${ window.location.host }${ window.location.pathname }`);\n }\n\n try {\n if (!matchDomain(options.domain, origin)) {\n throw new Error(`Ack origin ${ origin } does not match domain ${ options.domain.toString() }`);\n }\n \n if (source !== options.win) {\n throw new Error(`Ack source does not match registered window`);\n }\n } catch (err) {\n options.promise.reject(err);\n }\n\n options.ack = true;\n}\n\nexport function handleResponse(source : CrossDomainWindowType, origin : string, message : ResponseMessage) : void | ZalgoPromise {\n\n if (isResponseListenerErrored(message.hash)) {\n return;\n }\n\n const options = getResponseListener(message.hash);\n\n if (!options) {\n throw new Error(`No handler found for post message response for message: ${ message.name } from ${ origin } in ${ window.location.protocol }//${ window.location.host }${ window.location.pathname }`);\n }\n\n if (!matchDomain(options.domain, origin)) {\n throw new Error(`Response origin ${ origin } does not match domain ${ stringifyDomainPattern(options.domain) }`);\n }\n\n if (source !== options.win) {\n throw new Error(`Response source does not match registered window`);\n }\n\n deleteResponseListener(message.hash);\n\n const logName = (message.name === MESSAGE_NAME.METHOD && message.data && typeof message.data.name === 'string') ? `${ message.data.name }()` : message.name;\n\n if (message.ack === MESSAGE_ACK.ERROR) {\n if (__DEBUG__) {\n console.error('receive::err', logName, origin, '\\n\\n', message.error); // eslint-disable-line no-console\n }\n\n options.promise.reject(message.error);\n\n } else if (message.ack === MESSAGE_ACK.SUCCESS) {\n if (__DEBUG__) {\n console.info('receive::res', logName, origin, '\\n\\n', message.data); // eslint-disable-line no-console\n }\n\n options.promise.resolve({ source, origin, data: message.data });\n }\n}\n","/* @flow */\n\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\n\nimport { addRequestListener } from '../drivers';\nimport { WILDCARD } from '../conf';\nimport type { ServerOptionsType, HandlerType, CancelableType } from '../types';\n\nconst getDefaultServerOptions = () : ServerOptionsType => {\n // $FlowFixMe\n return {};\n};\n\nexport function on(name : string, options : ServerOptionsType | HandlerType, handler : ?HandlerType) : CancelableType {\n\n if (!name) {\n throw new Error('Expected name');\n }\n\n options = options || getDefaultServerOptions();\n if (typeof options === 'function') {\n handler = options;\n options = getDefaultServerOptions();\n }\n\n if (!handler) {\n throw new Error('Expected handler');\n }\n\n const winOrProxyWin = options.window;\n const domain = options.domain || WILDCARD;\n\n const successHandler = handler || options.handler;\n const errorHandler = options.errorHandler || (err => {\n throw err;\n });\n\n const requestListener = addRequestListener({ name, win: winOrProxyWin, domain }, {\n handler: successHandler,\n handleError: errorHandler\n });\n\n return {\n cancel() {\n requestListener.cancel();\n }\n };\n}\n\ntype CancelableZalgoPromise = ZalgoPromise & {|\n cancel : () => void\n|};\n\nexport function once(name : string, options? : ServerOptionsType | HandlerType, handler? : HandlerType) : CancelableZalgoPromise<{| source : mixed, origin : string, data : Object |}> {\n \n options = options || getDefaultServerOptions();\n if (typeof options === 'function') {\n handler = options;\n options = getDefaultServerOptions();\n }\n\n const promise = new ZalgoPromise();\n let listener; // eslint-disable-line prefer-const\n\n options.errorHandler = (err) => {\n listener.cancel();\n promise.reject(err);\n };\n\n listener = on(name, options, event => {\n listener.cancel();\n promise.resolve(event);\n if (handler) {\n return handler(event);\n }\n });\n\n // $FlowFixMe\n promise.cancel = listener.cancel;\n\n // $FlowFixMe\n return promise;\n}\n","/* @flow */\n\nimport { getUserAgent } from '@krakenjs/cross-domain-utils/src';\n\nexport function needsGlobalMessagingForBrowser() : boolean {\n\n if (getUserAgent(window).match(/MSIE|rv:11|trident|edge\\/12|edge\\/13/i)) {\n return true;\n }\n\n return false;\n}\n","/* @flow */\n\nimport { ZalgoPromise } from '@krakenjs/zalgo-promise/src';\nimport { isAncestor, isWindowClosed, getDomain, matchDomain, type CrossDomainWindowType, type DomainMatcher } from '@krakenjs/cross-domain-utils/src';\nimport { uniqueID, isRegex, noop, safeInterval, stringify, stringifyError } from '@krakenjs/belter/src';\n\n\nimport { CHILD_WINDOW_TIMEOUT, MESSAGE_TYPE, WILDCARD, MESSAGE_NAME, ACK_TIMEOUT, RES_TIMEOUT, ACK_TIMEOUT_KNOWN, RESPONSE_CYCLE_TIME } from '../conf';\nimport { sendMessage, addResponseListener, deleteResponseListener, markResponseListenerErrored, type ResponseListenerType } from '../drivers';\nimport { awaitWindowHello, sayHello, isWindowKnown } from '../lib';\nimport { windowStore } from '../global';\nimport { ProxyWindow } from '../serialize/window';\nimport type { SendType } from '../types';\n\nimport { on } from './on';\n\nfunction validateOptions(name : string, win : CrossDomainWindowType, domain : ?DomainMatcher) {\n if (!name) {\n throw new Error('Expected name');\n }\n\n if (domain) {\n if (typeof domain !== 'string' && !Array.isArray(domain) && !isRegex(domain)) {\n throw new TypeError(`Can not send ${ name }. Expected domain ${ JSON.stringify(domain) } to be a string, array, or regex`);\n }\n }\n\n if (isWindowClosed(win)) {\n throw new Error(`Can not send ${ name }. Target window is closed`);\n }\n}\n\nfunction normalizeDomain(win : CrossDomainWindowType, targetDomain : DomainMatcher, actualDomain : ?string, { send } : {| send : SendType |}) : ZalgoPromise {\n return ZalgoPromise.try(() => {\n if (typeof targetDomain === 'string') {\n return targetDomain;\n }\n\n return ZalgoPromise.try(() => {\n return actualDomain || sayHello(win, { send }).then(({ domain }) => domain);\n\n }).then(normalizedDomain => {\n if (!matchDomain(targetDomain, targetDomain)) {\n throw new Error(`Domain ${ stringify(targetDomain) } does not match ${ stringify(targetDomain) }`);\n }\n\n return normalizedDomain;\n });\n });\n}\n\nexport const send : SendType = (winOrProxyWin, name, data, options) => {\n options = options || {};\n const domainMatcher = options.domain || WILDCARD;\n const responseTimeout = options.timeout || RES_TIMEOUT;\n const childTimeout = options.timeout || CHILD_WINDOW_TIMEOUT;\n const fireAndForget = options.fireAndForget || false;\n\n return ProxyWindow.toProxyWindow(winOrProxyWin, { send }).awaitWindow().then(win => {\n\n // $FlowFixMe\n return ZalgoPromise.try(() => {\n validateOptions(name, win, domainMatcher);\n\n if (isAncestor(window, win)) {\n return awaitWindowHello(win, childTimeout);\n }\n \n }).then(({ domain: actualDomain } = {}) => {\n\n return normalizeDomain(win, domainMatcher, actualDomain, { send });\n }).then(targetDomain => {\n const domain = targetDomain;\n\n const logName = (name === MESSAGE_NAME.METHOD && data && typeof data.name === 'string') ? `${ data.name }()` : name;\n\n if (__DEBUG__) {\n console.info('send::req', logName, domain, '\\n\\n', data); // eslint-disable-line no-console\n }\n\n const promise = new ZalgoPromise();\n const hash = `${ name }_${ uniqueID() }`;\n\n if (!fireAndForget) {\n const responseListener : ResponseListenerType = { name, win, domain, promise };\n addResponseListener(hash, responseListener);\n\n const reqPromises = windowStore('requestPromises').getOrSet(win, () => []);\n reqPromises.push(promise);\n\n promise.catch(() => {\n markResponseListenerErrored(hash);\n deleteResponseListener(hash);\n });\n\n const totalAckTimeout = isWindowKnown(win) ? ACK_TIMEOUT_KNOWN : ACK_TIMEOUT;\n const totalResTimeout = responseTimeout;\n\n let ackTimeout = totalAckTimeout;\n let resTimeout = totalResTimeout;\n \n const interval = safeInterval(() => {\n if (isWindowClosed(win)) {\n return promise.reject(new Error(`Window closed for ${ name } before ${ responseListener.ack ? 'response' : 'ack' }`));\n }\n\n if (responseListener.cancelled) {\n return promise.reject(new Error(`Response listener was cancelled for ${ name }`));\n }\n\n ackTimeout = Math.max(ackTimeout - RESPONSE_CYCLE_TIME, 0);\n if (resTimeout !== -1) {\n resTimeout = Math.max(resTimeout - RESPONSE_CYCLE_TIME, 0);\n }\n\n if (!responseListener.ack && ackTimeout === 0) {\n return promise.reject(new Error(`No ack for postMessage ${ logName } in ${ getDomain() } in ${ totalAckTimeout }ms`));\n\n } else if (resTimeout === 0) {\n return promise.reject(new Error(`No response for postMessage ${ logName } in ${ getDomain() } in ${ totalResTimeout }ms`));\n }\n }, RESPONSE_CYCLE_TIME);\n\n promise.finally(() => {\n interval.cancel();\n reqPromises.splice(reqPromises.indexOf(promise, 1));\n }).catch(noop);\n }\n\n return sendMessage(win, domain, {\n id: uniqueID(),\n origin: getDomain(window),\n type: MESSAGE_TYPE.REQUEST,\n hash,\n name,\n data,\n fireAndForget\n }, { on, send }).then(() => {\n return fireAndForget ? promise.resolve() : promise;\n }, err => {\n throw new Error(`Send request message failed for ${ logName } in ${ getDomain() }\\n\\n${ stringifyError(err) }`);\n });\n });\n });\n};\n","/* @flow */\n\nexport const BRIDGE_TIMEOUT = 5000;\nexport const CHILD_WINDOW_TIMEOUT = 5000;\n\nexport const ACK_TIMEOUT = 2000;\nexport const ACK_TIMEOUT_KNOWN = 10000;\nexport const RES_TIMEOUT : number = __TEST__ ? 2000 : -1;\nexport const RESPONSE_CYCLE_TIME = 500;\n","/* @flow */\n\nimport type { CrossDomainWindowType, DomainMatcher } from '@krakenjs/cross-domain-utils/src';\n\nimport { initHello } from './lib';\nimport { listenForMessages, stopListenForMessages, receiveMessage, setupGlobalReceiveMessage, cancelResponseListeners } from './drivers';\nimport { getGlobal, deleteGlobal } from './global';\nimport { on, send } from './public';\nimport { setupBridge } from './bridge';\nimport { serializeMessage as internalSerializeMessage, deserializeMessage as internalDeserializeMessage, ProxyWindow } from './serialize';\n\nexport function serializeMessage(destination : CrossDomainWindowType | ProxyWindow, domain : DomainMatcher, obj : T) : string {\n return internalSerializeMessage(destination, domain, obj, { on, send });\n}\n\nexport function deserializeMessage(source : CrossDomainWindowType | ProxyWindow, origin : string, message : string) : T {\n return internalDeserializeMessage(source, origin, message, { on, send });\n}\n\nexport function createProxyWindow(win? : CrossDomainWindowType) : ProxyWindow {\n return new ProxyWindow({ send, win });\n}\n\nexport function toProxyWindow(win : CrossDomainWindowType | ProxyWindow) : ProxyWindow {\n return ProxyWindow.toProxyWindow(win, { send });\n}\n\nexport function setup() {\n if (!getGlobal().initialized) {\n getGlobal().initialized = true;\n \n setupGlobalReceiveMessage({ on, send });\n listenForMessages({ on, send });\n \n if (__POST_ROBOT__.__IE_POPUP_SUPPORT__) {\n setupBridge({ on, send, receiveMessage });\n }\n\n initHello({ on, send });\n }\n}\n\nexport function destroy() {\n cancelResponseListeners();\n stopListenForMessages();\n deleteGlobal();\n}\n","/* @flow */\n\nimport { type CrossDomainWindowType, isWindowClosed } from '@krakenjs/cross-domain-utils/src';\nimport { noop } from '@krakenjs/belter/src';\n\nimport { windowStore } from './global';\n\nexport function cleanUpWindow(win : CrossDomainWindowType) {\n const requestPromises = windowStore('requestPromises');\n for (const promise of requestPromises.get(win, [])) {\n promise.reject(new Error(`Window ${ isWindowClosed(win) ? 'closed' : 'cleaned up' } before response`)).catch(noop);\n }\n}\n","/* @flow */\n\nimport {\n isSameDomain,\n type CrossDomainWindowType,\n} from \"@krakenjs/cross-domain-utils/src\";\nimport { getCurrentScriptUID } from \"@krakenjs/belter/src\";\n\nexport function getGlobalKey(): string {\n if (__ZOID__.__SCRIPT_NAMESPACE__) {\n return `${__ZOID__.__GLOBAL_KEY__}_${getCurrentScriptUID()}`;\n } else {\n return __ZOID__.__GLOBAL_KEY__;\n }\n}\n\nexport function getGlobal(win: CrossDomainWindowType): T {\n const globalKey = getGlobalKey();\n\n if (!isSameDomain(win)) {\n throw new Error(`Can not get global for window on different domain`);\n }\n\n if (!win[globalKey]) {\n win[globalKey] = {};\n }\n\n return win[globalKey];\n}\n\nexport function tryGlobal(\n win: CrossDomainWindowType,\n handler: (T) => R\n): ?R {\n try {\n return handler(getGlobal(win));\n } catch (err) {\n // pass\n }\n}\n\nexport function destroyGlobal() {\n const globalKey = getGlobalKey();\n delete window[globalKey];\n}\n","/* @flow */\n\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport {\n serializeMessage,\n deserializeMessage,\n toProxyWindow,\n type ProxyWindow,\n} from \"@krakenjs/post-robot/src\";\nimport { uniqueID, base64encode, base64decode } from \"@krakenjs/belter/src\";\nimport type {\n CrossDomainWindowType,\n DomainMatcher,\n} from \"@krakenjs/cross-domain-utils/src\";\n\nimport { getGlobal } from \"./global\";\n\nexport type ProxyObject = {|\n get: () => ZalgoPromise,\n|};\n\nexport function getProxyObject(obj: T): ProxyObject {\n return {\n get(): ZalgoPromise {\n return ZalgoPromise.try(() => {\n // $FlowFixMe[object-this-reference]\n if (this.source && this.source !== window) {\n throw new Error(\n `Can not call get on proxy object from a remote window`\n );\n }\n\n return obj;\n });\n },\n };\n}\n\nexport function basicSerialize(data: T): string {\n return base64encode(JSON.stringify(data));\n}\n\nexport function basicDeserialize(serializedData: string): T {\n return JSON.parse(base64decode(serializedData));\n}\n\nexport const REFERENCE_TYPE = {\n UID: (\"uid\": \"uid\"),\n RAW: (\"raw\": \"raw\"),\n};\n\nexport type UIDReferenceType = {|\n type: typeof REFERENCE_TYPE.UID,\n uid: string,\n|};\nexport type RawReferenceType = {| type: typeof REFERENCE_TYPE.RAW, val: T |};\n\nexport type ReferenceType = UIDReferenceType | RawReferenceType;\n\nexport function getUIDRefStore(win: CrossDomainWindowType): { [string]: T } {\n const global = getGlobal(win);\n global.references = global.references || {};\n return global.references;\n}\n\nexport function getUIDRef(val: T): ReferenceType {\n const uid = uniqueID();\n const references = getUIDRefStore(window);\n references[uid] = val;\n return { type: REFERENCE_TYPE.UID, uid };\n}\n\nexport function getRawRef(val: T): ReferenceType {\n return { type: REFERENCE_TYPE.RAW, val };\n}\n\nexport function getRefValue(\n win: CrossDomainWindowType,\n ref: ReferenceType\n): T {\n if (ref.type === REFERENCE_TYPE.RAW) {\n return ref.val;\n }\n\n if (ref.type === REFERENCE_TYPE.UID) {\n const references = getUIDRefStore(win);\n return references[ref.uid];\n }\n\n throw new Error(`Unsupported ref type: ${ref.type}`);\n}\n\nexport function cleanupRef(\n win: CrossDomainWindowType,\n ref: ReferenceType\n) {\n if (ref.type === REFERENCE_TYPE.UID) {\n const references = getUIDRefStore(win);\n delete references[ref.uid];\n }\n}\n\ntype Message = {|\n sender: {|\n domain: string,\n |},\n metaData: M,\n reference: ReferenceType,\n|};\n\ntype CrossDomainSerializeOptions = {|\n data: T,\n metaData: M,\n sender: {|\n domain: string,\n |},\n receiver: {|\n win: ProxyWindow | CrossDomainWindowType,\n domain: DomainMatcher,\n |},\n passByReference?: boolean,\n basic?: boolean,\n|};\n\ntype CrossDomainSerializedMessage = {|\n serializedData: string,\n cleanReference: () => void,\n|};\n\nexport function crossDomainSerialize({\n data,\n metaData,\n sender,\n receiver,\n passByReference = false,\n basic = false,\n}: CrossDomainSerializeOptions): CrossDomainSerializedMessage {\n const proxyWin = toProxyWindow(receiver.win);\n const serializedMessage = basic\n ? JSON.stringify(data)\n : serializeMessage(proxyWin, receiver.domain, data);\n\n const reference = passByReference\n ? getUIDRef(serializedMessage)\n : getRawRef(serializedMessage);\n\n const message: Message = {\n sender: {\n domain: sender.domain,\n },\n metaData,\n reference,\n };\n\n const cleanReference = () => {\n cleanupRef(window, reference);\n };\n\n return {\n serializedData: basicSerialize(message),\n cleanReference,\n };\n}\n\ntype CrossDomainDeserializeOptions = {|\n data: string,\n sender: {|\n win: CrossDomainWindowType | (({| metaData: M |}) => CrossDomainWindowType),\n domain?: string | (({| metaData: M |}) => string),\n |},\n basic?: boolean,\n|};\n\ntype CrossDomainDeserializedMessage = {|\n data: T,\n metaData: M,\n sender: {|\n domain: string,\n win: CrossDomainWindowType,\n |},\n reference: ReferenceType,\n|};\n\nexport function crossDomainDeserialize({\n data,\n sender,\n basic = false,\n}: CrossDomainDeserializeOptions): CrossDomainDeserializedMessage {\n const message: Message = basicDeserialize(data);\n\n const { reference, metaData } = message;\n\n let win;\n if (typeof sender.win === \"function\") {\n win = sender.win({ metaData });\n } else {\n win = sender.win;\n }\n\n let domain;\n if (typeof sender.domain === \"function\") {\n domain = sender.domain({ metaData });\n } else if (typeof sender.domain === \"string\") {\n domain = sender.domain;\n } else {\n domain = message.sender.domain;\n }\n\n const serializedData = getRefValue(win, reference);\n const deserializedData = basic\n ? JSON.parse(serializedData)\n : deserializeMessage(win, domain, serializedData);\n\n return {\n data: deserializedData,\n metaData,\n sender: { win, domain },\n reference,\n };\n}\n","/* @flow */\n\nimport { setup } from './setup';\nimport { setupBridge, openBridge, linkWindow, linkUrl, isBridge, needsBridge, needsBridgeForBrowser, hasBridge,\n needsBridgeForWin, needsBridgeForDomain, destroyBridges } from './bridge';\n\nexport { ZalgoPromise as Promise } from '@krakenjs/zalgo-promise/src';\n\nexport * from './types';\nexport { ProxyWindow } from './serialize';\nexport { setup, destroy, serializeMessage, deserializeMessage, createProxyWindow, toProxyWindow } from './setup';\nexport { on, once, send } from './public';\nexport { markWindowKnown } from './lib';\nexport { cleanUpWindow } from './clean';\n\n// $FlowFixMe\nexport let bridge;\n\nif (__POST_ROBOT__.__IE_POPUP_SUPPORT__) {\n bridge = { setupBridge, openBridge, linkWindow, linkUrl, isBridge, needsBridge,\n needsBridgeForBrowser, hasBridge, needsBridgeForWin, needsBridgeForDomain, destroyBridges };\n}\n\nif (__POST_ROBOT__.__AUTO_SETUP__) {\n setup();\n}\n","/* @flow */\n\nimport { WINDOW_TYPE } from \"@krakenjs/cross-domain-utils/src\";\n\nexport const ZOID = `zoid`;\n\nexport const POST_MESSAGE = {\n DELEGATE: `${ZOID}_delegate`,\n ALLOW_DELEGATE: `${ZOID}_allow_delegate`,\n};\n\nexport const COMPONENT_ERROR = {\n NAVIGATED_AWAY: \"Window navigated away\",\n COMPONENT_DESTROYED: \"Component destroyed\",\n COMPONENT_CLOSED: \"Component closed\",\n WINDOW_CLOSED: \"Detected component window close\",\n IFRAME_CLOSE: \"Detected iframe close\",\n};\n\nexport const PROP_TYPE = {\n STRING: (\"string\": \"string\"),\n OBJECT: (\"object\": \"object\"),\n FUNCTION: (\"function\": \"function\"),\n BOOLEAN: (\"boolean\": \"boolean\"),\n NUMBER: (\"number\": \"number\"),\n ARRAY: (\"array\": \"array\"),\n};\n\nexport const WINDOW_REFERENCE = {\n OPENER: (\"opener\": \"opener\"),\n PARENT: (\"parent\": \"parent\"),\n GLOBAL: (\"global\": \"global\"),\n NAME: (\"name\": \"name\"),\n};\n\nexport const PROP_SERIALIZATION = {\n JSON: (\"json\": \"json\"),\n DOTIFY: (\"dotify\": \"dotify\"),\n BASE64: (\"base64\": \"base64\"),\n};\n\nexport const CONTEXT = WINDOW_TYPE;\n\nexport const WILDCARD = \"*\";\n\nexport const DEFAULT_DIMENSIONS = {\n WIDTH: \"300px\",\n HEIGHT: \"150px\",\n};\n\nexport const EVENT = {\n RENDER: \"zoid-render\",\n RENDERED: \"zoid-rendered\",\n PRERENDER: \"zoid-prerender\",\n PRERENDERED: \"zoid-prerendered\",\n DISPLAY: \"zoid-display\",\n ERROR: \"zoid-error\",\n CLOSE: \"zoid-close\",\n DESTROY: \"zoid-destroy\",\n PROPS: \"zoid-props\",\n RESIZE: \"zoid-resize\",\n FOCUS: \"zoid-focus\",\n};\n\nexport const METHOD = {\n GET: (\"get\": \"get\"),\n POST: (\"post\": \"post\"),\n};\n","/* @flow */\n\nimport { assertExists, memoize } from \"@krakenjs/belter/src\";\nimport {\n isSameDomain,\n getOpener,\n getNthParentFromTop,\n getAncestor,\n getAllFramesInWindow,\n getParent,\n isTop,\n findFrameByName,\n getDomain,\n assertSameDomain,\n type CrossDomainWindowType,\n getDistanceFromTop,\n} from \"@krakenjs/cross-domain-utils/src\";\n\nimport { ZOID, WINDOW_REFERENCE } from \"../constants\";\nimport type { InitialChildPayload, WindowRef } from \"../parent\";\n\nimport {\n crossDomainDeserialize,\n crossDomainSerialize,\n REFERENCE_TYPE,\n type ReferenceType,\n} from \"./serialize\";\nimport { tryGlobal } from \"./global\";\n\nfunction getWindowByRef(windowRef: WindowRef): CrossDomainWindowType {\n if (windowRef.type === WINDOW_REFERENCE.OPENER) {\n return assertExists(\"opener\", getOpener(window));\n } else if (\n windowRef.type === WINDOW_REFERENCE.PARENT &&\n typeof windowRef.distance === \"number\"\n ) {\n return assertExists(\n \"parent\",\n getNthParentFromTop(window, windowRef.distance)\n );\n } else if (\n windowRef.type === WINDOW_REFERENCE.GLOBAL &&\n windowRef.uid &&\n typeof windowRef.uid === \"string\"\n ) {\n const { uid } = windowRef;\n const ancestor = getAncestor(window);\n\n if (!ancestor) {\n throw new Error(`Can not find ancestor window`);\n }\n\n for (const frame of getAllFramesInWindow(ancestor)) {\n if (isSameDomain(frame)) {\n const win = tryGlobal(\n frame,\n (global) => global.windows && global.windows[uid]\n );\n\n if (win) {\n return win;\n }\n }\n }\n } else if (windowRef.type === WINDOW_REFERENCE.NAME) {\n const { name } = windowRef;\n return assertExists(\n \"namedWindow\",\n findFrameByName(assertExists(\"ancestor\", getAncestor(window)), name)\n );\n }\n\n throw new Error(`Unable to find ${windowRef.type} parent component window`);\n}\n\nexport function buildChildWindowName({\n name,\n serializedPayload,\n}: {|\n name: string,\n serializedPayload: string,\n|}): string {\n return `__${ZOID}__${name}__${serializedPayload}__`;\n}\n\nfunction parseWindowName(windowName: string): {|\n name: string,\n serializedInitialPayload: string,\n|} {\n if (!windowName) {\n throw new Error(`No window name`);\n }\n\n const [, zoidcomp, name, serializedInitialPayload] = windowName.split(\"__\");\n\n if (zoidcomp !== ZOID) {\n throw new Error(`Window not rendered by zoid - got ${zoidcomp}`);\n }\n\n if (!name) {\n throw new Error(`Expected component name`);\n }\n\n if (!serializedInitialPayload) {\n throw new Error(`Expected serialized payload ref`);\n }\n\n return { name, serializedInitialPayload };\n}\n\nexport type InitialParentPayload = {|\n parent: {|\n domain: string,\n win: CrossDomainWindowType,\n |},\n payload: InitialChildPayload,\n reference: ReferenceType,\n|};\n\nconst parseInitialParentPayload = memoize(\n (windowName: string): InitialParentPayload => {\n const { serializedInitialPayload } = parseWindowName(windowName);\n\n const {\n data: payload,\n sender: parent,\n reference,\n } = crossDomainDeserialize({\n data: serializedInitialPayload,\n sender: {\n win: ({ metaData: { windowRef } }) => getWindowByRef(windowRef),\n },\n });\n\n return {\n parent,\n payload,\n reference,\n };\n }\n);\n\nexport function getInitialParentPayload(): InitialParentPayload {\n return parseInitialParentPayload(window.name);\n}\n\nexport function isChildComponentWindow(name: string): boolean {\n try {\n return parseWindowName(window.name).name === name;\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function getWindowRef(\n targetWindow: CrossDomainWindowType,\n currentWindow?: CrossDomainWindowType = window\n): ?WindowRef {\n if (targetWindow === getParent(currentWindow)) {\n return {\n type: WINDOW_REFERENCE.PARENT,\n distance: getDistanceFromTop(targetWindow),\n };\n }\n\n if (targetWindow === getOpener(currentWindow)) {\n return { type: WINDOW_REFERENCE.OPENER };\n }\n\n if (isSameDomain(targetWindow) && !isTop(targetWindow)) {\n const windowName = assertSameDomain(targetWindow).name;\n if (windowName) {\n return { type: WINDOW_REFERENCE.NAME, name: windowName };\n }\n }\n}\n\ntype UpdateChildWindowNameWithRefOptions = {|\n componentName: string,\n parentComponentWindow: CrossDomainWindowType,\n|};\n\nexport function updateChildWindowNameWithRef({\n componentName,\n parentComponentWindow,\n}: UpdateChildWindowNameWithRefOptions): ?string {\n const { serializedInitialPayload } = parseWindowName(window.name);\n\n const { data, sender, reference, metaData } = crossDomainDeserialize({\n data: serializedInitialPayload,\n sender: {\n win: parentComponentWindow,\n },\n basic: true,\n });\n\n if (\n reference.type === REFERENCE_TYPE.UID ||\n metaData.windowRef.type === WINDOW_REFERENCE.GLOBAL\n ) {\n const windowRef = getWindowRef(parentComponentWindow);\n\n const { serializedData: serializedPayload } = crossDomainSerialize({\n data,\n metaData: {\n windowRef,\n },\n sender: {\n domain: sender.domain,\n },\n receiver: {\n win: window,\n domain: getDomain(),\n },\n basic: true,\n });\n\n const childWindowName = buildChildWindowName({\n name: componentName,\n serializedPayload,\n });\n\n window.name = childWindowName;\n return childWindowName;\n }\n}\n","/* @flow */\n\nimport {\n getDomain,\n isSameDomain,\n matchDomain,\n type CrossDomainWindowType,\n} from \"@krakenjs/cross-domain-utils/src\";\n\nimport type {\n PropsDefinitionType,\n PropsType,\n ChildPropsType,\n} from \"../component/props\";\n\nimport type { ChildHelpers } from \"./index\";\n\nexport function normalizeChildProp(\n // $FlowFixMe\n propsDef: PropsDefinitionType,\n props: PropsType

,\n key: string,\n value: ?T,\n helpers: ChildHelpers\n): ?T {\n if (!propsDef.hasOwnProperty(key)) {\n return value;\n }\n\n const prop = propsDef[key];\n\n if (typeof prop.childDecorate === \"function\") {\n const {\n uid,\n tag,\n close,\n focus,\n onError,\n onProps,\n resize,\n getParent,\n getParentDomain,\n show,\n hide,\n export: xport,\n getSiblings,\n } = helpers;\n const decoratedValue = prop.childDecorate({\n value,\n uid,\n tag,\n close,\n focus,\n onError,\n onProps,\n resize,\n getParent,\n getParentDomain,\n show,\n hide,\n export: xport,\n getSiblings,\n });\n\n // $FlowFixMe\n return decoratedValue;\n }\n\n return value;\n}\n\n// eslint-disable-next-line max-params\nexport function normalizeChildProps(\n parentComponentWindow: CrossDomainWindowType,\n propsDef: PropsDefinitionType,\n props: PropsType

,\n origin: string,\n helpers: ChildHelpers,\n isUpdate: boolean = false\n): ChildPropsType {\n const result = {};\n\n for (const key of Object.keys(props)) {\n const prop = propsDef[key];\n\n const trustedChild: boolean =\n prop && prop.trustedDomains && prop.trustedDomains.length > 0\n ? prop.trustedDomains.reduce((acc, val) => {\n return acc || matchDomain(val, getDomain(window));\n }, false)\n : origin === getDomain(window) || isSameDomain(parentComponentWindow);\n\n // let trustedDomains override sameDomain prop\n if (prop && prop.sameDomain && !trustedChild) {\n continue;\n }\n\n // sameDomain was not set and trusted domains must match\n if (prop && prop.trustedDomains && !trustedChild) {\n continue;\n }\n\n // $FlowFixMe\n const value = normalizeChildProp(propsDef, props, key, props[key], helpers);\n\n result[key] = value;\n if (prop && prop.alias && !result[prop.alias]) {\n result[prop.alias] = value;\n }\n }\n\n if (!isUpdate) {\n for (const key of Object.keys(propsDef)) {\n if (!props.hasOwnProperty(key)) {\n result[key] = normalizeChildProp(\n propsDef,\n props,\n key,\n undefined,\n helpers\n );\n }\n }\n }\n\n // $FlowFixMe\n return result;\n}\n","/* @flow */\n/* eslint max-lines: 0 */\n\nimport {\n isSameDomain,\n matchDomain,\n getAllFramesInWindow,\n type CrossDomainWindowType,\n onCloseWindow,\n assertSameDomain,\n} from \"@krakenjs/cross-domain-utils/src\";\nimport {\n markWindowKnown,\n type CrossDomainFunctionType,\n} from \"@krakenjs/post-robot/src\";\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport { extend, onResize, elementReady, noop } from \"@krakenjs/belter/src\";\n\nimport {\n getGlobal,\n tryGlobal,\n getInitialParentPayload,\n updateChildWindowNameWithRef,\n} from \"../lib\";\nimport { CONTEXT } from \"../constants\";\nimport type {\n NormalizedComponentOptionsType,\n getSiblingsPropType,\n} from \"../component\";\nimport type { PropsType, ChildPropsType } from \"../component/props\";\nimport type { StringMatcherType } from \"../types\";\n\nimport { normalizeChildProps } from \"./props\";\n\nexport type ChildExportsType

= {|\n updateProps: CrossDomainFunctionType<[PropsType

], void>,\n close: CrossDomainFunctionType<[], void>,\n name: string,\n|};\n\nexport type ChildHelpers = {|\n uid: string,\n tag: string,\n close: () => ZalgoPromise,\n focus: () => ZalgoPromise,\n resize: ({| width: ?number, height: ?number |}) => ZalgoPromise,\n onError: (mixed) => ZalgoPromise,\n onProps: ((PropsType

) => void) => {| cancel: () => void |},\n getParent: () => CrossDomainWindowType,\n getParentDomain: () => string,\n show: () => ZalgoPromise,\n hide: () => ZalgoPromise,\n export: (X) => ZalgoPromise,\n getSiblings: getSiblingsPropType,\n|};\n\nfunction checkParentDomain(\n allowedParentDomains: StringMatcherType,\n domain: string\n) {\n if (!matchDomain(allowedParentDomains, domain)) {\n throw new Error(`Can not be rendered by domain: ${domain}`);\n }\n}\n\nfunction focus(): ZalgoPromise {\n return ZalgoPromise.try(() => {\n window.focus();\n });\n}\n\nfunction destroy(): ZalgoPromise {\n return ZalgoPromise.try(() => {\n window.close();\n });\n}\n\n// Compares the first numerical value of the parent and child versions of zoid,\n// ensuring that an error is only thrown when major versions of Zoid do not match.\n// Additionally, zoid version strings should be in snake_case format (10_1_0, 10_2_0, 11_0_0, etc.)\nfunction versionCompatabilityCheck(\n version1: string,\n version2: string\n): boolean {\n if (!/_/.test(version1) || !/_/.test(version2)) {\n throw new Error(\n `Versions are in an invalid format (${version1}, ${version2})`\n );\n }\n\n return version1.split(\"_\")[0] === version2.split(\"_\")[0];\n}\n\nexport type ChildComponent = {|\n getProps: () => ChildPropsType,\n init: () => ZalgoPromise,\n|};\n\nexport function childComponent(\n options: NormalizedComponentOptionsType\n): ChildComponent {\n const { tag, propsDef, autoResize, allowedParentDomains } = options;\n\n const onPropHandlers = [];\n\n const { parent, payload } = getInitialParentPayload();\n const { win: parentComponentWindow, domain: parentDomain } = parent;\n\n let props: ChildPropsType;\n const exportsPromise = new ZalgoPromise();\n\n const {\n version,\n uid,\n exports: parentExports,\n context,\n props: initialProps,\n } = payload;\n\n if (!versionCompatabilityCheck(version, __ZOID__.__VERSION__)) {\n throw new Error(\n `Parent window has zoid version ${version}, child window has version ${__ZOID__.__VERSION__}`\n );\n }\n\n const {\n show,\n hide,\n close,\n onError,\n checkClose,\n export: parentExport,\n resize: parentResize,\n init: parentInit,\n } = parentExports;\n\n const getParent = () => parentComponentWindow;\n const getParentDomain = () => parentDomain;\n\n const onProps = (handler: Function) => {\n onPropHandlers.push(handler);\n return {\n cancel: () => {\n onPropHandlers.splice(onPropHandlers.indexOf(handler), 1);\n },\n };\n };\n\n const resize = ({\n width,\n height,\n }: {|\n width: ?number,\n height: ?number,\n |}): ZalgoPromise => {\n return parentResize.fireAndForget({ width, height });\n };\n\n const xport = (xports: X): ZalgoPromise => {\n exportsPromise.resolve(xports);\n return parentExport(xports);\n };\n\n const getSiblings = ({ anyParent } = {}) => {\n const result = [];\n const currentParent = props.parent;\n\n if (typeof anyParent === \"undefined\") {\n anyParent = !currentParent;\n }\n\n if (!anyParent && !currentParent) {\n throw new Error(`No parent found for ${tag} child`);\n }\n\n for (const win of getAllFramesInWindow(window)) {\n if (!isSameDomain(win)) {\n continue;\n }\n\n const xprops: ChildPropsType = assertSameDomain(win).xprops;\n\n if (!xprops || getParent() !== xprops.getParent()) {\n continue;\n }\n\n const winParent = xprops.parent;\n\n if (!anyParent && currentParent) {\n if (!winParent || winParent.uid !== currentParent.uid) {\n continue;\n }\n }\n\n const xports = tryGlobal(win, (global) => global.exports);\n\n result.push({\n props: xprops,\n exports: xports,\n });\n }\n\n return result;\n };\n\n const getHelpers = (): ChildHelpers => {\n return {\n tag,\n show,\n hide,\n close,\n focus,\n onError,\n resize,\n getSiblings,\n onProps,\n getParent,\n getParentDomain,\n uid,\n export: xport,\n };\n };\n\n const watchForClose = () => {\n window.addEventListener(\"beforeunload\", () => {\n checkClose.fireAndForget();\n });\n\n window.addEventListener(\"unload\", () => {\n checkClose.fireAndForget();\n });\n\n onCloseWindow(parentComponentWindow, () => {\n destroy();\n });\n };\n\n const setProps = (\n newProps: PropsType

,\n origin: string,\n isUpdate: boolean = false\n ) => {\n const helpers = getHelpers();\n const normalizedProps = normalizeChildProps(\n parentComponentWindow,\n propsDef,\n newProps,\n origin,\n helpers,\n isUpdate\n );\n\n if (props) {\n extend(props, normalizedProps);\n } else {\n props = normalizedProps;\n }\n\n for (const handler of onPropHandlers) {\n handler(props);\n }\n };\n\n const getAutoResize = (): ZalgoPromise<{|\n width: boolean,\n height: boolean,\n element: ?HTMLElement,\n |}> => {\n const {\n width = false,\n height = false,\n element: elementRef = \"body\",\n } = autoResize;\n return elementReady(elementRef)\n .catch(noop)\n .then((element) => {\n return { width, height, element };\n });\n };\n\n const watchForResize = (): ?ZalgoPromise => {\n return getAutoResize().then(({ width, height, element }) => {\n if (!element || (!width && !height) || context === CONTEXT.POPUP) {\n return;\n }\n\n onResize(\n element,\n ({ width: newWidth, height: newHeight }) => {\n resize({\n width: width ? newWidth : undefined,\n height: height ? newHeight : undefined,\n });\n },\n { width, height }\n );\n });\n };\n\n const updateProps = (newProps: PropsType

): ZalgoPromise => {\n return ZalgoPromise.try(() => setProps(newProps, parentDomain, true));\n };\n\n const init = () => {\n return ZalgoPromise.try(() => {\n let updatedChildName = \"\";\n if (isSameDomain(parentComponentWindow)) {\n updatedChildName =\n updateChildWindowNameWithRef({\n componentName: options.name,\n parentComponentWindow,\n }) || \"\";\n }\n\n getGlobal(window).exports = options.exports({\n getExports: () => exportsPromise,\n });\n\n checkParentDomain(allowedParentDomains, parentDomain);\n markWindowKnown(parentComponentWindow);\n watchForClose();\n\n return parentInit({\n name: updatedChildName,\n updateProps,\n close: destroy,\n });\n })\n .then(() => {\n return watchForResize();\n })\n .catch((err) => {\n onError(err);\n });\n };\n\n const getProps = () => {\n if (props) {\n return props;\n } else {\n setProps(initialProps, parentDomain);\n return props;\n }\n };\n\n return {\n init,\n getProps,\n };\n}\n","/* @flow */\n/* eslint max-lines: off */\n\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport { once, noop, type EventEmitterType } from \"@krakenjs/belter/src\";\nimport {\n isWindow,\n type CrossDomainWindowType,\n type DomainMatcher,\n isWindowClosed,\n isSameDomain,\n} from \"@krakenjs/cross-domain-utils/src\";\nimport { ProxyWindow, toProxyWindow } from \"@krakenjs/post-robot/src\";\n\nimport type { CssDimensionsType } from \"../types\";\nimport { PROP_SERIALIZATION, PROP_TYPE } from \"../constants\";\n\nexport type EventHandlerType = (T) => void | ZalgoPromise;\nexport type Sibling = {|\n props: mixed,\n exports: mixed,\n|};\n\nexport type timeoutPropType = number;\nexport type windowPropType = CrossDomainWindowType | ProxyWindow;\nexport type cspNoncePropType = string;\nexport type uidPropType = string;\nexport type tagPropType = string;\nexport type closePropType = () => ZalgoPromise;\nexport type focusPropType = () => ZalgoPromise;\nexport type showPropType = () => ZalgoPromise;\nexport type exportPropType = (X) => ZalgoPromise;\nexport type getSiblingsPropType = (opts?: {|\n anyParent?: boolean,\n|}) => $ReadOnlyArray;\nexport type hidePropType = () => ZalgoPromise;\nexport type resizePropType = ({|\n width: ?number,\n height: ?number,\n|}) => ZalgoPromise;\nexport type getParentPropType = () => CrossDomainWindowType;\nexport type getParentDomainPropType = () => string;\n\nexport type onDisplayPropType = EventHandlerType;\nexport type onRenderedPropType = EventHandlerType;\nexport type onRenderPropType = EventHandlerType;\nexport type onPrerenderedPropType = EventHandlerType;\nexport type onPrerenderPropType = EventHandlerType;\nexport type onClosePropType = EventHandlerType;\nexport type onDestroyPropType = EventHandlerType;\nexport type onResizePropType = EventHandlerType;\nexport type onFocusPropType = EventHandlerType;\nexport type onErrorPropType = EventHandlerType;\n// eslint-disable-next-line no-use-before-define\nexport type onPropsPropType

= ((PropsType

) => void) => {|\n cancel: () => void,\n|};\n\nexport type ParentPropType = {|\n uid: string,\n // eslint-disable-next-line no-use-before-define\n props: PropsType

,\n export: exportPropType,\n|};\n\nexport type PropsInputType

= {|\n parent?: ParentPropType,\n\n timeout?: timeoutPropType,\n window?: windowPropType,\n cspNonce?: ?cspNoncePropType,\n\n onDisplay?: onDisplayPropType,\n onRendered?: onRenderedPropType,\n onRender?: onRenderPropType,\n onPrerendered?: onPrerenderedPropType,\n onPrerender?: onPrerenderPropType,\n onClose?: onClosePropType,\n onDestroy?: onDestroyPropType,\n onResize?: onResizePropType,\n onFocus?: onFocusPropType,\n onError?: onErrorPropType,\n onProps?: onPropsPropType

,\n\n ...P,\n|};\n\nexport type PropsType

= {|\n timeout?: timeoutPropType,\n window?: ?windowPropType,\n cspNonce?: ?cspNoncePropType,\n dimensions: CssDimensionsType,\n\n onDisplay: onDisplayPropType,\n onRendered: onRenderedPropType,\n onRender: onRenderPropType,\n onPrerendered: onPrerenderedPropType,\n onPrerender: onPrerenderPropType,\n onClose: onClosePropType,\n onDestroy: onDestroyPropType,\n onResize: onResizePropType,\n onFocus: onFocusPropType,\n onError: onErrorPropType,\n onProps: onPropsPropType

,\n\n ...P,\n|};\n\ntype onErrorChildPropType = (mixed) => ZalgoPromise;\n\nexport type ChildPropsType = {|\n ...PropsType

,\n\n parent?: ParentPropType,\n uid: uidPropType,\n tag: tagPropType,\n close: closePropType,\n focus: focusPropType,\n show: showPropType,\n hide: hidePropType,\n export: exportPropType,\n getParent: getParentPropType,\n getParentDomain: getParentDomainPropType,\n resize: resizePropType,\n onError: onErrorChildPropType,\n onProps: onPropsPropType

,\n getSiblings: getSiblingsPropType,\n|};\n\nexport type PropDefinitionType, X> = {|\n type: S,\n alias?: string,\n value?: ({|\n props: P,\n state: Object,\n close: () => ZalgoPromise,\n focus: () => ZalgoPromise,\n onError: (mixed) => ZalgoPromise,\n container: HTMLElement | void,\n event: EventEmitterType,\n |}) => ?T,\n default?: ({|\n props: P,\n state: Object,\n close: () => ZalgoPromise,\n focus: () => ZalgoPromise,\n onError: (mixed) => ZalgoPromise,\n container: HTMLElement | void,\n event: EventEmitterType,\n |}) => ?T,\n decorate?: ({|\n value: T,\n props: PropsType

,\n state: Object,\n close: () => ZalgoPromise,\n focus: () => ZalgoPromise,\n onError: (mixed) => ZalgoPromise,\n container: HTMLElement | void,\n event: EventEmitterType,\n |}) => T,\n childDecorate?: ({|\n value: ?T,\n uid: uidPropType,\n tag: tagPropType,\n close: closePropType,\n focus: focusPropType,\n onError: onErrorPropType,\n onProps: onPropsPropType

,\n resize: resizePropType,\n getParentDomain: getParentDomainPropType,\n getParent: getParentPropType,\n show: showPropType,\n hide: hidePropType,\n export: exportPropType,\n getSiblings: getSiblingsPropType,\n |}) => ?T,\n required?: boolean,\n queryParam?:\n | boolean\n | string\n | (({| value: T |}) => string | ZalgoPromise),\n bodyParam?:\n | boolean\n | string\n | (({| value: T |}) => string | ZalgoPromise),\n // eslint-disable-next-line no-undef\n queryValue?: ({| value: T |}) => ZalgoPromise | R | string,\n // eslint-disable-next-line no-undef\n bodyValue?: ({| value: T |}) => ZalgoPromise | R | string,\n sendToChild?: boolean,\n allowDelegate?: boolean,\n validate?: ({| value: T, props: PropsType

|}) => void,\n sameDomain?: boolean,\n serialization?: $Values,\n trustedDomains?: $ReadOnlyArray,\n|};\n\nexport type BOOLEAN_DEFINITION_TYPE = typeof PROP_TYPE.BOOLEAN;\nexport type STRING_DEFINITION_TYPE = typeof PROP_TYPE.STRING;\nexport type NUMBER_DEFINITION_TYPE = typeof PROP_TYPE.NUMBER;\nexport type FUNCTION_DEFINITION_TYPE = typeof PROP_TYPE.FUNCTION;\nexport type ARRAY_DEFINITION_TYPE = typeof PROP_TYPE.ARRAY;\nexport type OBJECT_DEFINITION_TYPE = typeof PROP_TYPE.OBJECT;\n\nexport type DEFINITION_TYPE =\n | BOOLEAN_DEFINITION_TYPE\n | STRING_DEFINITION_TYPE\n | NUMBER_DEFINITION_TYPE\n | FUNCTION_DEFINITION_TYPE\n | ARRAY_DEFINITION_TYPE\n | OBJECT_DEFINITION_TYPE;\n\nexport type BooleanPropDefinitionType = PropDefinitionType<\n T,\n P,\n BOOLEAN_DEFINITION_TYPE,\n X\n>;\nexport type StringPropDefinitionType = PropDefinitionType<\n T,\n P,\n STRING_DEFINITION_TYPE,\n X\n>;\nexport type NumberPropDefinitionType = PropDefinitionType<\n T,\n P,\n NUMBER_DEFINITION_TYPE,\n X\n>;\nexport type FunctionPropDefinitionType = PropDefinitionType<\n T,\n P,\n FUNCTION_DEFINITION_TYPE,\n X\n>;\nexport type ArrayPropDefinitionType<\n // eslint-disable-next-line flowtype/no-mutable-array\n T: Array<*> | $ReadOnlyArray<*>,\n P,\n X\n> = PropDefinitionType;\nexport type ObjectPropDefinitionType = PropDefinitionType<\n T,\n P,\n OBJECT_DEFINITION_TYPE,\n X\n>;\n\nexport type MixedPropDefinitionType =\n | BooleanPropDefinitionType<*, P, X>\n | StringPropDefinitionType<*, P, X>\n | NumberPropDefinitionType<*, P, X>\n | FunctionPropDefinitionType<*, P, X>\n | ObjectPropDefinitionType<*, P, X>\n | ArrayPropDefinitionType<*, P, X>;\n\nexport type UserPropsDefinitionType = {|\n [string]: MixedPropDefinitionType,\n|};\n\nexport type BuiltInPropsDefinitionType = {|\n timeout: NumberPropDefinitionType,\n window: ObjectPropDefinitionType,\n close: FunctionPropDefinitionType,\n focus: FunctionPropDefinitionType,\n resize: FunctionPropDefinitionType,\n uid: StringPropDefinitionType,\n tag: StringPropDefinitionType,\n cspNonce: StringPropDefinitionType,\n getParent: FunctionPropDefinitionType,\n getParentDomain: FunctionPropDefinitionType,\n hide: FunctionPropDefinitionType,\n show: FunctionPropDefinitionType,\n export: FunctionPropDefinitionType, P, X>,\n getSiblings: FunctionPropDefinitionType,\n\n onDisplay: FunctionPropDefinitionType,\n onRendered: FunctionPropDefinitionType,\n onRender: FunctionPropDefinitionType,\n onPrerendered: FunctionPropDefinitionType,\n onPrerender: FunctionPropDefinitionType,\n onClose: FunctionPropDefinitionType,\n onDestroy: FunctionPropDefinitionType,\n onResize: FunctionPropDefinitionType,\n onFocus: FunctionPropDefinitionType,\n onError: FunctionPropDefinitionType,\n onProps: FunctionPropDefinitionType, P, X>,\n|};\n\nexport type PropsDefinitionType = {|\n ...BuiltInPropsDefinitionType,\n [string]: MixedPropDefinitionType,\n|};\n\nconst defaultNoop = () => noop;\n// eslint-disable-next-line flowtype/require-exact-type\nconst decorateOnce = ({ value }: { value: F }): F => once(value);\n\nexport function getBuiltInProps(): BuiltInPropsDefinitionType {\n return {\n window: {\n type: PROP_TYPE.OBJECT,\n sendToChild: false,\n required: false,\n allowDelegate: true,\n validate: ({ value }) => {\n if (!isWindow(value) && !ProxyWindow.isProxyWindow(value)) {\n throw new Error(`Expected Window or ProxyWindow`);\n }\n\n if (isWindow(value)) {\n // $FlowFixMe\n if (isWindowClosed(value)) {\n throw new Error(`Window is closed`);\n }\n\n // $FlowFixMe\n if (!isSameDomain(value)) {\n throw new Error(`Window is not same domain`);\n }\n }\n },\n decorate: ({ value }) => {\n return toProxyWindow(value);\n },\n },\n\n timeout: {\n type: PROP_TYPE.NUMBER,\n required: false,\n sendToChild: false,\n },\n\n cspNonce: {\n type: PROP_TYPE.STRING,\n required: false,\n },\n\n onDisplay: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n allowDelegate: true,\n default: defaultNoop,\n decorate: decorateOnce,\n },\n\n onRendered: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n default: defaultNoop,\n decorate: decorateOnce,\n },\n\n onRender: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n default: defaultNoop,\n decorate: decorateOnce,\n },\n\n onPrerendered: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n default: defaultNoop,\n decorate: decorateOnce,\n },\n\n onPrerender: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n default: defaultNoop,\n decorate: decorateOnce,\n },\n\n onClose: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n allowDelegate: true,\n default: defaultNoop,\n decorate: decorateOnce,\n },\n\n onDestroy: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n allowDelegate: true,\n default: defaultNoop,\n decorate: decorateOnce,\n },\n\n onResize: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n allowDelegate: true,\n default: defaultNoop,\n },\n\n onFocus: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n allowDelegate: true,\n default: defaultNoop,\n },\n\n close: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ close }) => close,\n },\n\n focus: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ focus }) => focus,\n },\n\n resize: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ resize }) => resize,\n },\n\n uid: {\n type: PROP_TYPE.STRING,\n required: false,\n sendToChild: false,\n childDecorate: ({ uid }) => uid,\n },\n\n tag: {\n type: PROP_TYPE.STRING,\n required: false,\n sendToChild: false,\n childDecorate: ({ tag }) => tag,\n },\n\n getParent: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ getParent }) => getParent,\n },\n\n getParentDomain: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ getParentDomain }) => getParentDomain,\n },\n\n show: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ show }) => show,\n },\n\n hide: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ hide }) => hide,\n },\n\n export: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ export: xport }) => xport,\n },\n\n onError: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ onError }) => onError,\n },\n\n onProps: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ onProps }) => onProps,\n },\n\n getSiblings: {\n type: PROP_TYPE.FUNCTION,\n required: false,\n sendToChild: false,\n childDecorate: ({ getSiblings }) => getSiblings,\n },\n };\n}\n\ntype PropCallback = ((\n string,\n BooleanPropDefinitionType | void,\n boolean\n) => R) &\n ((string, StringPropDefinitionType | void, string) => R) &\n ((string, NumberPropDefinitionType | void, number) => R) &\n ((string, FunctionPropDefinitionType | void, Function) => R) &\n ((\n string,\n ArrayPropDefinitionType<$ReadOnlyArray<*> | $ReadOnlyArray<*>, P, X> | void,\n $ReadOnlyArray<*> | $ReadOnlyArray<*>\n ) => R) &\n ((string, ObjectPropDefinitionType | void, Object) => R);\n\nexport function eachProp(\n props: PropsType

,\n propsDef: PropsDefinitionType,\n handler: PropCallback\n) {\n // $FlowFixMe[cannot-spread-indexer]\n for (const key of Object.keys({ ...props, ...propsDef })) {\n const propDef = propsDef[key];\n const value = props[key];\n\n // $FlowFixMe[incompatible-call]\n handler(key, propDef, value);\n }\n}\n\nexport function mapProps(\n props: PropsType

,\n propsDef: PropsDefinitionType,\n handler: PropCallback\n): $ReadOnlyArray {\n const results = [];\n\n eachProp(props, propsDef, (key, propDef, value) => {\n // $FlowFixMe[incompatible-call]\n const result = handler(key, propDef, value);\n results.push(result);\n });\n return results;\n}\n","/* @flow */\n\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport { dotify, isDefined, base64encode, noop } from \"@krakenjs/belter/src\";\n\nimport {\n eachProp,\n mapProps,\n type PropsInputType,\n type PropsType,\n type PropsDefinitionType,\n} from \"../component/props\";\nimport { PROP_SERIALIZATION, METHOD, PROP_TYPE } from \"../constants\";\n\nimport type { ParentHelpers } from \"./index\";\n\nexport function extendProps(\n propsDef: PropsDefinitionType,\n existingProps: PropsType

,\n inputProps: PropsInputType

,\n helpers: ParentHelpers

,\n container: HTMLElement | void\n) {\n const { state, close, focus, event, onError } = helpers;\n\n // $FlowFixMe\n eachProp(inputProps, propsDef, (key, propDef, val) => {\n let valueDetermined = false;\n let value = val;\n\n const getDerivedValue = () => {\n if (!propDef) {\n return value;\n }\n\n const alias = propDef.alias;\n if (alias && !isDefined(val) && isDefined(inputProps[alias])) {\n value = inputProps[alias];\n }\n\n if (propDef.value) {\n value = propDef.value({\n props: existingProps,\n state,\n close,\n focus,\n event,\n onError,\n container,\n });\n }\n\n if (propDef.default && !isDefined(value) && !isDefined(inputProps[key])) {\n value = propDef.default({\n props: existingProps,\n state,\n close,\n focus,\n event,\n onError,\n container,\n });\n }\n\n if (isDefined(value)) {\n if (\n propDef.type === PROP_TYPE.ARRAY\n ? !Array.isArray(value)\n : typeof value !== propDef.type\n ) {\n throw new TypeError(`Prop is not of type ${propDef.type}: ${key}`);\n }\n } else {\n if (propDef.required !== false && !isDefined(inputProps[key])) {\n throw new Error(`Expected prop \"${key}\" to be defined`);\n }\n }\n\n if (__DEBUG__ && isDefined(value) && propDef.validate) {\n // $FlowFixMe\n propDef.validate({ value, props: inputProps });\n }\n\n if (isDefined(value) && propDef.decorate) {\n // $FlowFixMe\n value = propDef.decorate({\n // $FlowFixMe\n value,\n props: existingProps,\n state,\n close,\n focus,\n event,\n onError,\n container,\n });\n }\n\n return value;\n };\n\n const getter = () => {\n if (valueDetermined) {\n return value;\n }\n\n valueDetermined = true;\n return getDerivedValue();\n };\n\n Object.defineProperty(existingProps, key, {\n configurable: true,\n enumerable: true,\n get: getter,\n });\n });\n\n // $FlowFixMe\n eachProp(existingProps, propsDef, noop);\n}\n\nexport function serializeProps(\n propsDef: PropsDefinitionType,\n props: PropsType

,\n method: $Values\n): ZalgoPromise<{ [string]: string | boolean }> {\n const params = {};\n\n return ZalgoPromise.all(\n mapProps(props, propsDef, (key, propDef, value) => {\n return ZalgoPromise.resolve().then(() => {\n if (value === null || typeof value === \"undefined\" || !propDef) {\n return;\n }\n\n const getParam = {\n [METHOD.GET]: propDef.queryParam,\n [METHOD.POST]: propDef.bodyParam,\n }[method];\n\n const getValue = {\n [METHOD.GET]: propDef.queryValue,\n [METHOD.POST]: propDef.bodyValue,\n }[method];\n\n if (!getParam) {\n return;\n }\n\n return ZalgoPromise.hash({\n finalParam: ZalgoPromise.try(() => {\n if (typeof getParam === \"function\") {\n // $FlowFixMe[incompatible-call]\n return getParam({ value });\n } else if (typeof getParam === \"string\") {\n return getParam;\n } else {\n return key;\n }\n }),\n\n finalValue: ZalgoPromise.try(() => {\n if (typeof getValue === \"function\" && isDefined(value)) {\n // $FlowFixMe[incompatible-call]\n // $FlowFixMe[incompatible-return]\n return getValue({ value });\n } else {\n // $FlowFixMe[incompatible-return]\n return value;\n }\n }),\n }).then(({ finalParam, finalValue }) => {\n let result;\n\n if (typeof finalValue === \"boolean\") {\n result = finalValue.toString();\n } else if (typeof finalValue === \"string\") {\n result = finalValue.toString();\n } else if (typeof finalValue === \"object\" && finalValue !== null) {\n if (propDef.serialization === PROP_SERIALIZATION.JSON) {\n result = JSON.stringify(finalValue);\n } else if (propDef.serialization === PROP_SERIALIZATION.BASE64) {\n result = base64encode(JSON.stringify(finalValue));\n } else if (\n propDef.serialization === PROP_SERIALIZATION.DOTIFY ||\n !propDef.serialization\n ) {\n result = dotify(finalValue, key);\n\n for (const dotkey of Object.keys(result)) {\n params[dotkey] = result[dotkey];\n }\n\n return;\n }\n } else if (typeof finalValue === \"number\") {\n result = finalValue.toString();\n }\n\n params[finalParam] = result;\n });\n });\n })\n ).then(() => {\n return params;\n });\n}\n","/* @flow */\n/* eslint max-lines: 0 */\n\nimport {\n send,\n bridge,\n ProxyWindow,\n toProxyWindow,\n type CrossDomainFunctionType,\n cleanUpWindow,\n} from \"@krakenjs/post-robot/src\";\nimport {\n isSameDomain,\n matchDomain,\n getDomainFromUrl,\n isBlankDomain,\n getAncestor,\n getDomain,\n type CrossDomainWindowType,\n getDistanceFromTop,\n normalizeMockUrl,\n assertSameDomain,\n closeWindow,\n onCloseWindow,\n isWindowClosed,\n isSameTopWindow,\n type DomainMatcher,\n} from \"@krakenjs/cross-domain-utils/src\";\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport {\n addEventListener,\n uniqueID,\n elementReady,\n writeElementToWindow,\n eventEmitter,\n type EventEmitterType,\n noop,\n onResize,\n extendUrl,\n appendChild,\n cleanup,\n once,\n stringifyError,\n destroyElement,\n getElementSafe,\n showElement,\n hideElement,\n iframe,\n memoize,\n isElementClosed,\n awaitFrameWindow,\n popup,\n normalizeDimension,\n watchElementForClose,\n isShadowElement,\n insertShadowSlot,\n extend,\n} from \"@krakenjs/belter/src\";\n\nimport {\n ZOID,\n POST_MESSAGE,\n CONTEXT,\n EVENT,\n METHOD,\n WINDOW_REFERENCE,\n DEFAULT_DIMENSIONS,\n COMPONENT_ERROR,\n} from \"../constants\";\nimport {\n getGlobal,\n getProxyObject,\n crossDomainSerialize,\n buildChildWindowName,\n type ProxyObject,\n} from \"../lib\";\nimport type { PropsInputType, PropsType } from \"../component/props\";\nimport type { ChildExportsType } from \"../child\";\nimport type { CssDimensionsType, ContainerReferenceType } from \"../types\";\nimport type {\n NormalizedComponentOptionsType,\n AttributesType,\n} from \"../component\";\n\nimport { serializeProps, extendProps } from \"./props\";\n\nexport type RenderOptionsType

= {|\n uid: string,\n props: PropsType

,\n tag: string,\n context: $Values,\n close: (?string) => ZalgoPromise,\n focus: () => ZalgoPromise,\n doc: Document,\n container?: HTMLElement,\n dimensions: CssDimensionsType,\n state: Object,\n event: EventEmitterType,\n frame: ?HTMLIFrameElement,\n prerenderFrame: ?HTMLIFrameElement,\n|};\n\nexport type ParentExportsType = {|\n init: (ChildExportsType

) => ZalgoPromise,\n close: () => ZalgoPromise,\n checkClose: CrossDomainFunctionType<[], boolean>,\n resize: CrossDomainFunctionType<\n [{| width?: ?number, height?: ?number |}],\n void\n >,\n onError: (mixed) => ZalgoPromise,\n show: () => ZalgoPromise,\n hide: () => ZalgoPromise,\n export: (X) => ZalgoPromise,\n|};\n\nexport type WindowRef =\n | {| type: typeof WINDOW_REFERENCE.OPENER |}\n | {| type: typeof WINDOW_REFERENCE.PARENT, distance: number |}\n | {| type: typeof WINDOW_REFERENCE.GLOBAL, uid: string |}\n | {| type: typeof WINDOW_REFERENCE.NAME, name: string |};\n\nexport type InitialChildPayload = {|\n uid: string,\n tag: string,\n version: string,\n context: $Values,\n childDomainMatch: DomainMatcher,\n props: PropsType

,\n exports: ParentExportsType,\n|};\n\nexport type InitialChildPayloadMetadata = {|\n windowRef: WindowRef,\n|};\n\nexport type StateType = Object;\n\nexport type ParentHelpers

= {|\n state: StateType,\n close: () => ZalgoPromise,\n focus: () => ZalgoPromise,\n resize: ({| width: ?number, height: ?number |}) => ZalgoPromise,\n onError: (mixed) => ZalgoPromise,\n updateProps: (PropsInputType

) => ZalgoPromise,\n event: EventEmitterType,\n show: () => ZalgoPromise,\n hide: () => ZalgoPromise,\n|};\n\nfunction getDefaultProps

(): PropsType

{\n // $FlowFixMe\n return {};\n}\n\ntype InternalState = {|\n visible: boolean,\n|};\n\ntype Rerender = () => ZalgoPromise;\n\ntype RenderContainerOptions = {|\n context: $Values,\n proxyFrame: ?ProxyObject,\n proxyPrerenderFrame: ?ProxyObject,\n rerender: Rerender,\n|};\n\ntype ResolveInitPromise = () => ZalgoPromise;\ntype RejectInitPromise = (mixed) => ZalgoPromise;\ntype GetProxyContainer = (\n container: ContainerReferenceType\n) => ZalgoPromise>;\ntype Show = () => ZalgoPromise;\ntype Hide = () => ZalgoPromise;\ntype Close = () => ZalgoPromise;\ntype OnError = (mixed) => ZalgoPromise;\ntype RenderContainer = (\n proxyContainer: ProxyObject,\n RenderContainerOptions\n) => ZalgoPromise>;\ntype SetProxyWin = (ProxyWindow) => ZalgoPromise;\ntype GetProxyWindow = () => ZalgoPromise;\ntype OpenFrame = (\n context: $Values,\n {| windowName: string |}\n) => ZalgoPromise>;\ntype OpenPrerenderFrame = (\n context: $Values\n) => ZalgoPromise>;\ntype Prerender = (\n proxyPrerenderWin: ProxyWindow,\n {| context: $Values |}\n) => ZalgoPromise;\ntype Open = (\n context: $Values,\n {|\n proxyWin: ProxyWindow,\n proxyFrame: ?ProxyObject,\n windowName: string,\n |}\n) => ZalgoPromise;\ntype OpenPrerender = (\n context: $Values,\n proxyWin: ProxyWindow,\n proxyPrerenderFrame: ?ProxyObject\n) => ZalgoPromise;\ntype WatchForUnload = () => ZalgoPromise;\ntype GetInternalState = () => ZalgoPromise;\ntype SetInternalState = (InternalState) => ZalgoPromise;\n\ntype ParentDelegateOverrides

= {|\n props: PropsType

,\n event: EventEmitterType,\n close: Close,\n onError: OnError,\n getProxyContainer: GetProxyContainer,\n show: Show,\n hide: Hide,\n renderContainer: RenderContainer,\n getProxyWindow: GetProxyWindow,\n setProxyWin: SetProxyWin,\n openFrame: OpenFrame,\n openPrerenderFrame: OpenPrerenderFrame,\n prerender: Prerender,\n open: Open,\n openPrerender: OpenPrerender,\n watchForUnload: WatchForUnload,\n getInternalState: GetInternalState,\n setInternalState: SetInternalState,\n resolveInitPromise: ResolveInitPromise,\n rejectInitPromise: RejectInitPromise,\n|};\n\ntype DelegateOverrides = {|\n getProxyContainer: GetProxyContainer,\n show: Show,\n hide: Hide,\n renderContainer: RenderContainer,\n getProxyWindow: GetProxyWindow,\n setProxyWin: SetProxyWin,\n openFrame: OpenFrame,\n openPrerenderFrame: OpenPrerenderFrame,\n prerender: Prerender,\n open: Open,\n openPrerender: OpenPrerender,\n watchForUnload: WatchForUnload,\n|};\n\ntype RenderOptions = {|\n target: CrossDomainWindowType,\n container: ContainerReferenceType,\n context: $Values,\n rerender: Rerender,\n|};\n\nexport type ParentComponent = {|\n init: () => void,\n render: (RenderOptions) => ZalgoPromise,\n getProps: () => PropsType

,\n setProps: (newProps: PropsInputType

, isUpdate?: boolean) => void,\n export: (X) => ZalgoPromise,\n destroy: (err?: mixed) => ZalgoPromise,\n getHelpers: () => ParentHelpers

,\n getDelegateOverrides: () => ZalgoPromise,\n getExports: () => X,\n|};\n\nconst getDefaultOverrides =

(): ParentDelegateOverrides

=> {\n // $FlowFixMe\n return {};\n};\n\ntype ParentOptions = {|\n uid: string,\n options: NormalizedComponentOptionsType,\n overrides?: ParentDelegateOverrides

,\n parentWin?: CrossDomainWindowType,\n|};\n\nexport function parentComponent({\n uid,\n options,\n overrides = getDefaultOverrides(),\n parentWin = window,\n}: ParentOptions): ParentComponent {\n const {\n propsDef,\n containerTemplate,\n prerenderTemplate,\n tag,\n name,\n attributes,\n dimensions,\n autoResize,\n url,\n domain: domainMatch,\n validate,\n exports: xports,\n } = options;\n\n const initPromise = new ZalgoPromise();\n const handledErrors = [];\n const clean = cleanup();\n const state = {};\n const inputProps = {};\n let internalState = {\n visible: true,\n };\n const event = overrides.event ? overrides.event : eventEmitter();\n const props: PropsType

= overrides.props\n ? overrides.props\n : getDefaultProps();\n\n let currentProxyWin: ?ProxyWindow;\n let currentProxyContainer: ?ProxyObject;\n let childComponent: ?ChildExportsType

;\n let currentChildDomain: ?string;\n let currentContainer: HTMLElement | void;\n let isRenderFinished: boolean = false;\n\n const onErrorOverride: ?OnError = overrides.onError;\n let getProxyContainerOverride: ?GetProxyContainer =\n overrides.getProxyContainer;\n let showOverride: ?Show = overrides.show;\n let hideOverride: ?Hide = overrides.hide;\n const closeOverride: ?Close = overrides.close;\n let renderContainerOverride: ?RenderContainer = overrides.renderContainer;\n let getProxyWindowOverride: ?GetProxyWindow = overrides.getProxyWindow;\n let setProxyWinOverride: ?SetProxyWin = overrides.setProxyWin;\n let openFrameOverride: ?OpenFrame = overrides.openFrame;\n let openPrerenderFrameOverride: ?OpenPrerenderFrame =\n overrides.openPrerenderFrame;\n let prerenderOverride: ?Prerender = overrides.prerender;\n let openOverride: ?Open = overrides.open;\n let openPrerenderOverride: ?OpenPrerender = overrides.openPrerender;\n let watchForUnloadOverride: ?WatchForUnload = overrides.watchForUnload;\n const getInternalStateOverride: ?GetInternalState =\n overrides.getInternalState;\n const setInternalStateOverride: ?SetInternalState =\n overrides.setInternalState;\n\n const getDimensions = (): CssDimensionsType => {\n if (typeof dimensions === \"function\") {\n return dimensions({ props });\n }\n return dimensions;\n };\n\n const resolveInitPromise = () => {\n return ZalgoPromise.try(() => {\n if (overrides.resolveInitPromise) {\n return overrides.resolveInitPromise();\n }\n\n return initPromise.resolve();\n });\n };\n\n const rejectInitPromise = (err: mixed) => {\n return ZalgoPromise.try(() => {\n if (overrides.rejectInitPromise) {\n return overrides.rejectInitPromise(err);\n }\n\n return initPromise.reject(err);\n });\n };\n\n const getPropsForChild = (\n initialChildDomain: string\n ): ZalgoPromise> => {\n const result = {};\n\n for (const key of Object.keys(props)) {\n const prop = propsDef[key];\n\n if (prop && prop.sendToChild === false) {\n continue;\n }\n\n const trustedChild: boolean =\n prop && prop.trustedDomains && prop.trustedDomains.length > 0\n ? prop.trustedDomains.reduce((acc, val) => {\n return acc || matchDomain(val, initialChildDomain);\n }, false)\n : matchDomain(initialChildDomain, getDomain(window));\n\n // let trustedDomains override sameDomain prop\n if (prop && prop.sameDomain && !trustedChild) {\n continue;\n }\n\n // sameDomain was not set and trusted domains must match\n if (prop && prop.trustedDomains && !trustedChild) {\n continue;\n }\n\n result[key] = props[key];\n }\n\n // $FlowFixMe\n return ZalgoPromise.hash(result);\n };\n\n const setupEvents = () => {\n event.on(EVENT.RENDER, () => props.onRender());\n event.on(EVENT.PRERENDER, () => props.onPrerender());\n event.on(EVENT.DISPLAY, () => props.onDisplay());\n event.on(EVENT.RENDERED, () => props.onRendered());\n event.on(EVENT.PRERENDERED, () => props.onPrerendered());\n event.on(EVENT.CLOSE, () => props.onClose());\n event.on(EVENT.DESTROY, () => props.onDestroy());\n event.on(EVENT.RESIZE, () => props.onResize());\n event.on(EVENT.FOCUS, () => props.onFocus());\n event.on(EVENT.PROPS, (newProps) => props.onProps(newProps));\n event.on(EVENT.ERROR, (err) => {\n if (props && props.onError) {\n return props.onError(err);\n } else {\n return rejectInitPromise(err).then(() => {\n setTimeout(() => {\n throw err;\n }, 1);\n });\n }\n });\n\n clean.register(event.reset);\n };\n\n const getInternalState = () => {\n return ZalgoPromise.try(() => {\n if (getInternalStateOverride) {\n return getInternalStateOverride();\n }\n\n return internalState;\n });\n };\n\n const setInternalState = (newInternalState) => {\n return ZalgoPromise.try(() => {\n if (setInternalStateOverride) {\n return setInternalStateOverride(newInternalState);\n }\n\n internalState = { ...internalState, ...newInternalState };\n return internalState;\n });\n };\n\n const getProxyWindow = (): ZalgoPromise => {\n if (getProxyWindowOverride) {\n return getProxyWindowOverride();\n }\n\n return ZalgoPromise.try(() => {\n const windowProp = props.window;\n\n if (windowProp) {\n const proxyWin = toProxyWindow(windowProp);\n clean.register(() => windowProp.close());\n return proxyWin;\n }\n\n return new ProxyWindow({ send });\n });\n };\n\n const setProxyWin = (proxyWin: ProxyWindow): ZalgoPromise => {\n if (setProxyWinOverride) {\n return setProxyWinOverride(proxyWin);\n }\n\n return ZalgoPromise.try(() => {\n currentProxyWin = proxyWin;\n });\n };\n\n const show = (): ZalgoPromise => {\n if (showOverride) {\n return showOverride();\n }\n\n return ZalgoPromise.hash({\n setState: setInternalState({ visible: true }),\n showElement: currentProxyContainer\n ? currentProxyContainer.get().then(showElement)\n : null,\n }).then(noop);\n };\n\n const hide = (): ZalgoPromise => {\n if (hideOverride) {\n return hideOverride();\n }\n\n return ZalgoPromise.hash({\n setState: setInternalState({ visible: false }),\n showElement: currentProxyContainer\n ? currentProxyContainer.get().then(hideElement)\n : null,\n }).then(noop);\n };\n\n const getUrl = (): string => {\n if (typeof url === \"function\") {\n return url({ props });\n }\n\n return url;\n };\n\n const getAttributes = (): AttributesType => {\n if (typeof attributes === \"function\") {\n return attributes({ props });\n }\n\n return attributes;\n };\n\n const buildQuery = (): ZalgoPromise<{| [string]: string | boolean |}> => {\n return serializeProps(propsDef, props, METHOD.GET);\n };\n\n const buildBody = (): ZalgoPromise<{| [string]: string | boolean |}> => {\n return serializeProps(propsDef, props, METHOD.POST);\n };\n\n const buildUrl = (): ZalgoPromise => {\n return buildQuery().then((query) => {\n return extendUrl(normalizeMockUrl(getUrl()), { query });\n });\n };\n\n const getInitialChildDomain = (): string => {\n return getDomainFromUrl(getUrl());\n };\n\n const getDomainMatcher = (): DomainMatcher => {\n if (domainMatch) {\n return domainMatch;\n }\n\n return getInitialChildDomain();\n };\n\n const openFrame = (\n context: $Values,\n { windowName }: {| windowName: string |}\n ): ZalgoPromise> => {\n if (openFrameOverride) {\n return openFrameOverride(context, { windowName });\n }\n\n return ZalgoPromise.try(() => {\n if (context === CONTEXT.IFRAME && __ZOID__.__IFRAME_SUPPORT__) {\n // $FlowFixMe\n const attrs = {\n name: windowName,\n title: name,\n ...getAttributes().iframe,\n };\n\n return getProxyObject(iframe({ attributes: attrs }));\n }\n });\n };\n\n const openPrerenderFrame = (\n context: $Values\n ): ZalgoPromise> => {\n if (openPrerenderFrameOverride) {\n return openPrerenderFrameOverride(context);\n }\n\n return ZalgoPromise.try(() => {\n if (context === CONTEXT.IFRAME && __ZOID__.__IFRAME_SUPPORT__) {\n // $FlowFixMe\n const attrs = {\n name: `__${ZOID}_prerender_frame__${name}_${uniqueID()}__`,\n title: `prerender__${name}`,\n ...getAttributes().iframe,\n };\n return getProxyObject(\n iframe({\n attributes: attrs,\n })\n );\n }\n });\n };\n\n const openPrerender = (\n context: $Values,\n proxyWin: ProxyWindow,\n proxyPrerenderFrame: ?ProxyObject\n ): ZalgoPromise => {\n if (openPrerenderOverride) {\n return openPrerenderOverride(context, proxyWin, proxyPrerenderFrame);\n }\n\n return ZalgoPromise.try(() => {\n if (context === CONTEXT.IFRAME && __ZOID__.__IFRAME_SUPPORT__) {\n if (!proxyPrerenderFrame) {\n throw new Error(`Expected proxy frame to be passed`);\n }\n\n return proxyPrerenderFrame.get().then((prerenderFrame) => {\n clean.register(() => destroyElement(prerenderFrame));\n\n return awaitFrameWindow(prerenderFrame)\n .then((prerenderFrameWindow) => {\n return assertSameDomain(prerenderFrameWindow);\n })\n .then((win) => {\n return toProxyWindow(win);\n });\n });\n } else if (context === CONTEXT.POPUP && __ZOID__.__POPUP_SUPPORT__) {\n return proxyWin;\n } else {\n throw new Error(`No render context available for ${context}`);\n }\n });\n };\n\n const focus = (): ZalgoPromise => {\n return ZalgoPromise.try(() => {\n if (currentProxyWin) {\n return ZalgoPromise.all([\n event.trigger(EVENT.FOCUS),\n currentProxyWin.focus(),\n ]).then(noop);\n }\n });\n };\n\n const getCurrentWindowReferenceUID = (): string => {\n const global = getGlobal(window);\n global.windows = global.windows || {};\n global.windows[uid] = window;\n clean.register(() => {\n delete global.windows[uid];\n });\n return uid;\n };\n\n const getWindowRef = (\n target: CrossDomainWindowType,\n initialChildDomain: string,\n context: $Values,\n proxyWin: ProxyWindow\n ): WindowRef => {\n if (initialChildDomain === getDomain(window)) {\n return {\n type: WINDOW_REFERENCE.GLOBAL,\n uid: getCurrentWindowReferenceUID(),\n };\n }\n\n if (target !== window) {\n throw new Error(\n `Can not construct cross-domain window reference for different target window`\n );\n }\n\n if (props.window) {\n const actualComponentWindow = proxyWin.getWindow();\n if (!actualComponentWindow) {\n throw new Error(\n `Can not construct cross-domain window reference for lazy window prop`\n );\n }\n\n if (getAncestor(actualComponentWindow) !== window) {\n throw new Error(\n `Can not construct cross-domain window reference for window prop with different ancestor`\n );\n }\n }\n\n if (context === CONTEXT.POPUP) {\n return { type: WINDOW_REFERENCE.OPENER };\n } else if (context === CONTEXT.IFRAME) {\n return {\n type: WINDOW_REFERENCE.PARENT,\n distance: getDistanceFromTop(window),\n };\n }\n\n throw new Error(`Can not construct window reference for child`);\n };\n\n const runTimeout = (): ZalgoPromise => {\n return ZalgoPromise.try(() => {\n const timeout = props.timeout;\n\n if (timeout) {\n return initPromise.timeout(\n timeout,\n new Error(`Loading component timed out after ${timeout} milliseconds`)\n );\n }\n });\n };\n\n const initChild = (\n childDomain: string,\n childExports: ChildExportsType

\n ): ZalgoPromise => {\n return ZalgoPromise.try(() => {\n currentChildDomain = childDomain;\n childComponent = childExports;\n\n currentProxyWin\n ?.isPopup()\n .then((isPopup) => {\n if (childExports?.name !== \"\" && isPopup) {\n currentProxyWin?.setName(childExports?.name);\n }\n })\n .finally(() => {\n resolveInitPromise();\n clean.register(() => childExports.close.fireAndForget().catch(noop));\n });\n });\n };\n\n const resize = ({\n width,\n height,\n }: {|\n width?: ?number,\n height?: ?number,\n |}): ZalgoPromise => {\n return ZalgoPromise.try(() => {\n event.trigger(EVENT.RESIZE, { width, height });\n });\n };\n\n const destroy = (err: mixed): ZalgoPromise => {\n // eslint-disable-next-line promise/no-promise-in-callback\n return ZalgoPromise.try(() => {\n return event.trigger(EVENT.DESTROY);\n })\n .catch(noop)\n .then(() => {\n return clean.all(err);\n })\n .then(() => {\n const error = err || new Error(COMPONENT_ERROR.COMPONENT_DESTROYED);\n if (\n (currentContainer && isElementClosed(currentContainer)) ||\n // $FlowFixMe\n Object.values(COMPONENT_ERROR).includes(error.message)\n ) {\n initPromise.resolve();\n } else {\n initPromise.asyncReject(error);\n }\n });\n };\n\n const close = memoize((err?: mixed): ZalgoPromise => {\n return ZalgoPromise.try(() => {\n if (closeOverride) {\n // $FlowFixMe\n const source = closeOverride.__source__;\n\n if (isWindowClosed(source)) {\n return;\n }\n\n return closeOverride();\n }\n\n return ZalgoPromise.try(() => {\n return event.trigger(EVENT.CLOSE);\n }).then(() => {\n return destroy(err || new Error(COMPONENT_ERROR.COMPONENT_CLOSED));\n });\n });\n });\n\n const open = (\n context: $Values,\n {\n proxyWin,\n proxyFrame,\n windowName,\n }: {|\n proxyWin: ProxyWindow,\n proxyFrame: ?ProxyObject,\n windowName: string,\n |}\n ): ZalgoPromise => {\n if (openOverride) {\n return openOverride(context, { proxyWin, proxyFrame, windowName });\n }\n\n return ZalgoPromise.try(() => {\n if (context === CONTEXT.IFRAME && __ZOID__.__IFRAME_SUPPORT__) {\n if (!proxyFrame) {\n throw new Error(`Expected proxy frame to be passed`);\n }\n\n return proxyFrame.get().then((frame) => {\n return awaitFrameWindow(frame).then((win) => {\n clean.register(() => destroyElement(frame));\n clean.register(() => cleanUpWindow(win));\n return win;\n });\n });\n } else if (context === CONTEXT.POPUP && __ZOID__.__POPUP_SUPPORT__) {\n let {\n width = DEFAULT_DIMENSIONS.WIDTH,\n height = DEFAULT_DIMENSIONS.HEIGHT,\n } = getDimensions();\n\n width = normalizeDimension(width, window.outerWidth);\n height = normalizeDimension(height, window.outerWidth);\n\n // $FlowFixMe\n const attrs = {\n name: windowName,\n width,\n height,\n ...getAttributes().popup,\n };\n\n const win = popup(\"\", attrs);\n\n clean.register(() => closeWindow(win));\n clean.register(() => cleanUpWindow(win));\n\n return win;\n } else {\n throw new Error(`No render context available for ${context}`);\n }\n }).then((win) => {\n proxyWin.setWindow(win, { send });\n return proxyWin.setName(windowName).then(() => {\n return proxyWin;\n });\n });\n };\n\n const watchForUnload = () => {\n return ZalgoPromise.try(() => {\n const unloadWindowListener = addEventListener(\n window,\n \"unload\",\n once(() => {\n destroy(new Error(COMPONENT_ERROR.NAVIGATED_AWAY));\n })\n );\n\n const closeParentWindowListener = onCloseWindow(parentWin, destroy, 3000);\n clean.register(closeParentWindowListener.cancel);\n clean.register(unloadWindowListener.cancel);\n\n if (watchForUnloadOverride) {\n return watchForUnloadOverride();\n }\n });\n };\n\n const watchForClose = (\n proxyWin: ProxyWindow,\n context: $Values\n ): ZalgoPromise => {\n let cancelled = false;\n\n clean.register(() => {\n cancelled = true;\n });\n\n return ZalgoPromise.delay(2000)\n .then(() => {\n return proxyWin.isClosed();\n })\n .then((isClosed) => {\n if (!cancelled) {\n if (context === CONTEXT.POPUP && isClosed) {\n return close(new Error(\"Detected popup close\"));\n }\n\n const isCurrentContainerClosed: boolean = Boolean(\n currentContainer && isElementClosed(currentContainer)\n );\n\n if (\n context === CONTEXT.IFRAME &&\n isClosed &&\n (isCurrentContainerClosed || isRenderFinished)\n ) {\n return close(new Error(COMPONENT_ERROR.IFRAME_CLOSE));\n }\n\n return watchForClose(proxyWin, context);\n }\n });\n };\n\n const checkWindowClose = (proxyWin: ProxyWindow): ZalgoPromise => {\n let closed = false;\n\n return proxyWin\n .isClosed()\n .then((isClosed) => {\n if (isClosed) {\n closed = true;\n return close(new Error(COMPONENT_ERROR.WINDOW_CLOSED));\n }\n\n return ZalgoPromise.delay(200)\n .then(() => proxyWin.isClosed())\n .then((secondIsClosed) => {\n if (secondIsClosed) {\n closed = true;\n return close(new Error(COMPONENT_ERROR.WINDOW_CLOSED));\n }\n });\n })\n .then(() => {\n return closed;\n });\n };\n\n const onError = (err: mixed): ZalgoPromise => {\n if (onErrorOverride) {\n return onErrorOverride(err);\n }\n\n return ZalgoPromise.try(() => {\n if (handledErrors.indexOf(err) !== -1) {\n return;\n }\n\n handledErrors.push(err);\n initPromise.asyncReject(err);\n\n return event.trigger(EVENT.ERROR, err);\n });\n };\n\n const exportsPromise: ZalgoPromise = new ZalgoPromise();\n\n const getExports = (): X => {\n return xports({\n getExports: () => exportsPromise,\n });\n };\n\n const xport = (actualExports: X): ZalgoPromise => {\n return ZalgoPromise.try(() => {\n exportsPromise.resolve(actualExports);\n });\n };\n\n initChild.onError = onError;\n\n const buildParentExports = (win: ProxyWindow): ParentExportsType => {\n const checkClose = () => checkWindowClose(win);\n function init(childExports: ChildExportsType

): ZalgoPromise {\n return initChild(this.origin, childExports);\n }\n return {\n init,\n close,\n checkClose,\n resize,\n onError,\n show,\n hide,\n export: xport,\n };\n };\n\n const buildInitialChildPayload = ({\n proxyWin,\n initialChildDomain,\n childDomainMatch,\n context,\n }: {|\n proxyWin: ProxyWindow,\n initialChildDomain: string,\n childDomainMatch: DomainMatcher,\n context: $Values,\n |} = {}): ZalgoPromise> => {\n return getPropsForChild(initialChildDomain).then((childProps) => {\n return {\n uid,\n context,\n tag,\n childDomainMatch,\n version: __ZOID__.__VERSION__,\n props: childProps,\n exports: buildParentExports(proxyWin),\n };\n });\n };\n\n const buildSerializedChildPayload = ({\n proxyWin,\n initialChildDomain,\n childDomainMatch,\n target = window,\n context,\n }: {|\n proxyWin: ProxyWindow,\n initialChildDomain: string,\n childDomainMatch: DomainMatcher,\n target: CrossDomainWindowType,\n context: $Values,\n |} = {}): ZalgoPromise => {\n return buildInitialChildPayload({\n proxyWin,\n initialChildDomain,\n childDomainMatch,\n context,\n }).then((childPayload) => {\n const { serializedData, cleanReference } = crossDomainSerialize({\n data: childPayload,\n metaData: {\n windowRef: getWindowRef(\n target,\n initialChildDomain,\n context,\n proxyWin\n ),\n },\n sender: {\n domain: getDomain(window),\n },\n receiver: {\n win: proxyWin,\n domain: childDomainMatch,\n },\n passByReference: initialChildDomain === getDomain(),\n });\n\n clean.register(cleanReference);\n return serializedData;\n });\n };\n\n const buildWindowName = ({\n proxyWin,\n initialChildDomain,\n childDomainMatch,\n target,\n context,\n }: {|\n proxyWin: ProxyWindow,\n initialChildDomain: string,\n childDomainMatch: DomainMatcher,\n target: CrossDomainWindowType,\n context: $Values,\n |}): ZalgoPromise => {\n return buildSerializedChildPayload({\n proxyWin,\n initialChildDomain,\n childDomainMatch,\n target,\n context,\n }).then((serializedPayload) => {\n return buildChildWindowName({ name, serializedPayload });\n });\n };\n\n const renderTemplate = (\n renderer: (RenderOptionsType

) => ?HTMLElement,\n {\n context,\n container,\n doc,\n frame,\n prerenderFrame,\n }: {|\n context: $Values,\n container?: HTMLElement,\n doc: Document,\n frame?: ?HTMLIFrameElement,\n prerenderFrame?: ?HTMLIFrameElement,\n |}\n ): ?HTMLElement => {\n return renderer({\n uid,\n container,\n context,\n doc,\n frame,\n prerenderFrame,\n focus,\n close,\n state,\n props,\n tag,\n dimensions: getDimensions(),\n event,\n });\n };\n\n const prerender = (\n proxyPrerenderWin: ProxyWindow,\n { context }: {| context: $Values |}\n ): ZalgoPromise => {\n if (prerenderOverride) {\n return prerenderOverride(proxyPrerenderWin, { context });\n }\n\n return ZalgoPromise.try(() => {\n if (!prerenderTemplate) {\n return;\n }\n\n event.trigger(EVENT.PRERENDER);\n\n let prerenderWindow = proxyPrerenderWin.getWindow();\n\n if (\n !prerenderWindow ||\n !isSameDomain(prerenderWindow) ||\n !isBlankDomain(prerenderWindow)\n ) {\n return;\n }\n\n prerenderWindow = assertSameDomain(prerenderWindow);\n\n const doc = prerenderWindow.document;\n const el = renderTemplate(prerenderTemplate, { context, doc });\n\n if (!el) {\n return;\n }\n\n if (el.ownerDocument !== doc) {\n throw new Error(\n `Expected prerender template to have been created with document from child window`\n );\n }\n\n writeElementToWindow(prerenderWindow, el);\n\n let { width = false, height = false, element = \"body\" } = autoResize;\n element = getElementSafe(element, doc);\n\n if (element && (width || height)) {\n const prerenderResizeListener = onResize(\n element,\n ({ width: newWidth, height: newHeight }) => {\n resize({\n width: width ? newWidth : undefined,\n height: height ? newHeight : undefined,\n });\n },\n { width, height, win: prerenderWindow }\n );\n\n event.on(EVENT.RENDERED, prerenderResizeListener.cancel);\n }\n event.trigger(EVENT.PRERENDERED);\n });\n };\n const renderContainer: RenderContainer = (\n proxyContainer: ProxyObject,\n {\n proxyFrame,\n proxyPrerenderFrame,\n context,\n rerender,\n }: RenderContainerOptions\n ): ZalgoPromise> => {\n if (renderContainerOverride) {\n return renderContainerOverride(proxyContainer, {\n proxyFrame,\n proxyPrerenderFrame,\n context,\n rerender,\n });\n }\n\n return ZalgoPromise.hash({\n container: proxyContainer.get(),\n // $FlowFixMe\n frame: proxyFrame ? proxyFrame.get() : null,\n // $FlowFixMe\n prerenderFrame: proxyPrerenderFrame ? proxyPrerenderFrame.get() : null,\n internalState: getInternalState(),\n }).then(\n ({ container, frame, prerenderFrame, internalState: { visible } }) => {\n const innerContainer = renderTemplate(containerTemplate, {\n context,\n container,\n frame,\n prerenderFrame,\n doc: document,\n });\n if (innerContainer) {\n if (!visible) {\n hideElement(innerContainer);\n }\n appendChild(container, innerContainer);\n const containerWatcher = watchElementForClose(innerContainer, () => {\n const removeError = new Error(\n `Detected container element removed from DOM`\n );\n return ZalgoPromise.delay(1).then(() => {\n if (isElementClosed(innerContainer)) {\n close(removeError);\n } else {\n clean.all(removeError);\n return rerender().then(resolveInitPromise, rejectInitPromise);\n }\n });\n });\n\n clean.register(() => containerWatcher.cancel());\n clean.register(() => destroyElement(innerContainer));\n currentProxyContainer = getProxyObject(innerContainer);\n return currentProxyContainer;\n }\n }\n );\n };\n\n const getBridgeUrl = (): ?string => {\n if (typeof options.bridgeUrl === \"function\") {\n return options.bridgeUrl({ props });\n }\n\n return options.bridgeUrl;\n };\n\n const openBridge = (\n proxyWin: ProxyWindow,\n initialChildDomain: string,\n context: $Values\n ): ?ZalgoPromise => {\n if (__POST_ROBOT__.__IE_POPUP_SUPPORT__) {\n return ZalgoPromise.try(() => {\n return proxyWin.awaitWindow();\n }).then((win) => {\n if (\n !bridge ||\n !bridge.needsBridge({ win, domain: initialChildDomain }) ||\n bridge.hasBridge(initialChildDomain, initialChildDomain)\n ) {\n return;\n }\n\n const bridgeUrl = getBridgeUrl();\n\n if (!bridgeUrl) {\n throw new Error(`Bridge needed to render ${context}`);\n }\n\n const bridgeDomain = getDomainFromUrl(bridgeUrl);\n bridge.linkUrl(win, initialChildDomain);\n return bridge.openBridge(normalizeMockUrl(bridgeUrl), bridgeDomain);\n });\n }\n };\n\n const getHelpers = (): ParentHelpers

=> {\n return {\n state,\n event,\n close,\n focus,\n resize,\n onError,\n // eslint-disable-next-line no-use-before-define\n updateProps,\n show,\n hide,\n };\n };\n\n const getProps = () => props;\n\n const getDefaultPropsInput = (): PropsInputType

=> {\n // $FlowFixMe\n return {};\n };\n\n const setProps = (\n newInputProps: PropsInputType

= getDefaultPropsInput()\n ) => {\n if (__DEBUG__ && validate) {\n validate({ props: newInputProps });\n }\n\n const container = currentContainer;\n const helpers = getHelpers();\n extend(inputProps, newInputProps);\n\n // $FlowFixMe\n extendProps(propsDef, props, inputProps, helpers, container);\n };\n\n const updateProps = (newProps: PropsInputType

): ZalgoPromise => {\n setProps(newProps);\n\n return initPromise.then(() => {\n const child = childComponent;\n const proxyWin = currentProxyWin;\n const childDomain = currentChildDomain;\n\n if (!child || !proxyWin || !childDomain) {\n return;\n }\n\n return getPropsForChild(childDomain).then((childProps) => {\n return child.updateProps(childProps).catch((err) => {\n return checkWindowClose(proxyWin).then((closed) => {\n if (!closed) {\n throw err;\n }\n });\n });\n });\n });\n };\n\n const getProxyContainer: GetProxyContainer = (\n container: ContainerReferenceType\n ): ZalgoPromise> => {\n if (getProxyContainerOverride) {\n return getProxyContainerOverride(container);\n }\n\n return ZalgoPromise.try(() => {\n return elementReady(container);\n }).then((containerElement) => {\n if (isShadowElement(containerElement)) {\n containerElement = insertShadowSlot(containerElement);\n }\n\n currentContainer = containerElement;\n return getProxyObject(containerElement);\n });\n };\n\n const delegate = (\n context: $Values,\n target: CrossDomainWindowType\n ): ZalgoPromise => {\n const delegateProps = {};\n for (const propName of Object.keys(props)) {\n const propDef = propsDef[propName];\n if (propDef && propDef.allowDelegate) {\n delegateProps[propName] = props[propName];\n }\n }\n\n const childOverridesPromise = send(\n target,\n `${POST_MESSAGE.DELEGATE}_${name}`,\n {\n uid,\n overrides: {\n props: delegateProps,\n event,\n close,\n onError,\n getInternalState,\n setInternalState,\n resolveInitPromise,\n rejectInitPromise,\n },\n }\n )\n .then(({ data: { parent } }) => {\n const parentComp: ParentComponent = parent;\n\n clean.register((err) => {\n if (!isWindowClosed(target)) {\n return parentComp.destroy(err);\n }\n });\n return parentComp.getDelegateOverrides();\n })\n .catch((err) => {\n throw new Error(\n `Unable to delegate rendering. Possibly the component is not loaded in the target window.\\n\\n${stringifyError(\n err\n )}`\n );\n });\n\n getProxyContainerOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.getProxyContainer(...args)\n );\n renderContainerOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.renderContainer(...args)\n );\n showOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.show(...args)\n );\n hideOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.hide(...args)\n );\n watchForUnloadOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.watchForUnload(...args)\n );\n\n if (context === CONTEXT.IFRAME && __ZOID__.__IFRAME_SUPPORT__) {\n getProxyWindowOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.getProxyWindow(...args)\n );\n openFrameOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.openFrame(...args)\n );\n openPrerenderFrameOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.openPrerenderFrame(...args)\n );\n prerenderOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.prerender(...args)\n );\n openOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.open(...args)\n );\n openPrerenderOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.openPrerender(...args)\n );\n } else if (context === CONTEXT.POPUP && __ZOID__.__POPUP_SUPPORT__) {\n setProxyWinOverride = (...args) =>\n childOverridesPromise.then((childOverrides) =>\n childOverrides.setProxyWin(...args)\n );\n }\n\n return childOverridesPromise;\n };\n\n const getDelegateOverrides = (): ZalgoPromise => {\n return ZalgoPromise.try(() => {\n return {\n getProxyContainer,\n show,\n hide,\n renderContainer,\n getProxyWindow,\n watchForUnload,\n openFrame,\n openPrerenderFrame,\n prerender,\n open,\n openPrerender,\n setProxyWin,\n };\n });\n };\n\n const checkAllowRender = (\n target: CrossDomainWindowType,\n childDomainMatch: DomainMatcher,\n container: ContainerReferenceType\n ) => {\n if (target === window) {\n return;\n }\n\n if (!isSameTopWindow(window, target)) {\n throw new Error(`Can only renderTo an adjacent frame`);\n }\n\n const origin = getDomain();\n\n if (!matchDomain(childDomainMatch, origin) && !isSameDomain(target)) {\n throw new Error(\n `Can not render remotely to ${childDomainMatch.toString()} - can only render to ${origin}`\n );\n }\n\n if (container && typeof container !== \"string\") {\n throw new Error(\n `Container passed to renderTo must be a string selector, got ${typeof container} }`\n );\n }\n };\n\n const init = () => {\n setupEvents();\n };\n\n const render = ({\n target,\n container,\n context,\n rerender,\n }: RenderOptions): ZalgoPromise => {\n return ZalgoPromise.try(() => {\n const initialChildDomain = getInitialChildDomain();\n const childDomainMatch = getDomainMatcher();\n\n checkAllowRender(target, childDomainMatch, container);\n\n const delegatePromise = ZalgoPromise.try(() => {\n if (target !== window) {\n return delegate(context, target);\n }\n });\n\n const windowProp = props.window;\n\n const watchForUnloadPromise = watchForUnload();\n\n const buildBodyPromise = buildBody();\n const onRenderPromise = event.trigger(EVENT.RENDER);\n\n const getProxyContainerPromise = getProxyContainer(container);\n const getProxyWindowPromise = getProxyWindow();\n\n const finalSetPropsPromise = getProxyContainerPromise.then(() => {\n return setProps();\n });\n\n const buildUrlPromise = finalSetPropsPromise.then(() => {\n return buildUrl();\n });\n\n const buildWindowNamePromise = getProxyWindowPromise.then((proxyWin) => {\n return buildWindowName({\n proxyWin,\n initialChildDomain,\n childDomainMatch,\n target,\n context,\n });\n });\n\n const openFramePromise = buildWindowNamePromise.then((windowName) =>\n openFrame(context, { windowName })\n );\n const openPrerenderFramePromise = openPrerenderFrame(context);\n\n const renderContainerPromise = ZalgoPromise.hash({\n proxyContainer: getProxyContainerPromise,\n proxyFrame: openFramePromise,\n proxyPrerenderFrame: openPrerenderFramePromise,\n })\n .then(({ proxyContainer, proxyFrame, proxyPrerenderFrame }) => {\n return renderContainer(proxyContainer, {\n context,\n proxyFrame,\n proxyPrerenderFrame,\n rerender,\n });\n })\n .then((proxyContainer) => {\n return proxyContainer;\n });\n\n const openPromise = ZalgoPromise.hash({\n windowName: buildWindowNamePromise,\n proxyFrame: openFramePromise,\n proxyWin: getProxyWindowPromise,\n }).then(({ windowName, proxyWin, proxyFrame }) => {\n return windowProp\n ? proxyWin\n : open(context, { windowName, proxyWin, proxyFrame });\n });\n\n const openPrerenderPromise = ZalgoPromise.hash({\n proxyWin: openPromise,\n proxyPrerenderFrame: openPrerenderFramePromise,\n }).then(({ proxyWin, proxyPrerenderFrame }) => {\n return openPrerender(context, proxyWin, proxyPrerenderFrame);\n });\n\n const setStatePromise = openPromise.then((proxyWin) => {\n currentProxyWin = proxyWin;\n return setProxyWin(proxyWin);\n });\n\n const prerenderPromise = ZalgoPromise.hash({\n proxyPrerenderWin: openPrerenderPromise,\n state: setStatePromise,\n }).then(({ proxyPrerenderWin }) => {\n return prerender(proxyPrerenderWin, { context });\n });\n\n const setWindowNamePromise = ZalgoPromise.hash({\n proxyWin: openPromise,\n windowName: buildWindowNamePromise,\n }).then(({ proxyWin, windowName }) => {\n if (windowProp) {\n return proxyWin.setName(windowName);\n }\n });\n\n const getMethodPromise = ZalgoPromise.hash({\n body: buildBodyPromise,\n }).then(({ body }) => {\n if (options.method) {\n return options.method;\n }\n\n if (Object.keys(body).length) {\n return METHOD.POST;\n }\n\n return METHOD.GET;\n });\n\n const loadUrlPromise = ZalgoPromise.hash({\n proxyWin: openPromise,\n windowUrl: buildUrlPromise,\n body: buildBodyPromise,\n method: getMethodPromise,\n windowName: setWindowNamePromise,\n prerender: prerenderPromise,\n }).then(({ proxyWin, windowUrl, body, method }) => {\n return proxyWin.setLocation(windowUrl, { method, body });\n });\n\n const watchForClosePromise = openPromise.then((proxyWin) => {\n watchForClose(proxyWin, context);\n });\n\n const onDisplayPromise = ZalgoPromise.hash({\n container: renderContainerPromise,\n prerender: prerenderPromise,\n }).then(() => {\n return event.trigger(EVENT.DISPLAY);\n });\n\n const openBridgePromise = openPromise.then((proxyWin) => {\n return openBridge(proxyWin, initialChildDomain, context);\n });\n\n const runTimeoutPromise = loadUrlPromise.then(() => {\n return runTimeout();\n });\n\n const onRenderedPromise = initPromise.then(() => {\n isRenderFinished = true;\n return event.trigger(EVENT.RENDERED);\n });\n\n return ZalgoPromise.hash({\n initPromise,\n buildUrlPromise,\n onRenderPromise,\n getProxyContainerPromise,\n openFramePromise,\n openPrerenderFramePromise,\n renderContainerPromise,\n openPromise,\n openPrerenderPromise,\n setStatePromise,\n prerenderPromise,\n loadUrlPromise,\n buildWindowNamePromise,\n setWindowNamePromise,\n watchForClosePromise,\n onDisplayPromise,\n openBridgePromise,\n runTimeoutPromise,\n onRenderedPromise,\n delegatePromise,\n watchForUnloadPromise,\n finalSetPropsPromise,\n });\n })\n .catch((err) => {\n return ZalgoPromise.all([onError(err), destroy(err)]).then(\n () => {\n throw err;\n },\n () => {\n throw err;\n }\n );\n })\n .then(noop);\n };\n\n return {\n init,\n render,\n destroy,\n getProps,\n setProps,\n export: xport,\n getHelpers,\n getDelegateOverrides,\n getExports,\n };\n}\n","/* @flow */\n/* eslint react/no-deprecated: off, react/no-find-dom-node: off, react/display-name: off, react/no-did-mount-set-state: off, react/destructuring-assignment: off, react/prop-types: off */\n\nimport { extend, noop } from \"@krakenjs/belter/src\";\n\nimport type { ComponentDriverType } from \"../component\";\nimport { CONTEXT } from \"../constants\";\n\ndeclare class ReactClassType {}\ndeclare class __ReactComponent {}\n\ntype ReactElementType = {||};\n\ntype ReactType = {|\n Component: __ReactComponent,\n createClass: ({|\n render: () => ReactElementType,\n componentDidMount: () => void,\n componentDidUpdate: () => void,\n |}) => typeof ReactClassType,\n createElement: (\n string,\n ?{ [string]: mixed },\n ...children: $ReadOnlyArray\n ) => ReactElementType,\n|};\n\ntype ReactDomType = {|\n findDOMNode: (typeof ReactClassType) => HTMLElement,\n|};\n\ntype ReactLibraryType = {|\n React: ReactType,\n ReactDOM: ReactDomType,\n|};\n\nexport const react: ComponentDriverType<\n *,\n ReactLibraryType,\n typeof ReactClassType,\n *,\n *\n> = {\n register: (tag, propsDef, init, { React, ReactDOM }) => {\n // $FlowFixMe\n return class extends React.Component {\n render(): ReactElementType {\n return React.createElement(\"div\", null);\n }\n\n componentDidMount() {\n // $FlowFixMe\n const el = ReactDOM.findDOMNode(this);\n const parent = init(extend({}, this.props));\n parent.render(el, CONTEXT.IFRAME);\n this.setState({ parent });\n }\n\n componentDidUpdate() {\n if (this.state && this.state.parent) {\n this.state.parent.updateProps(extend({}, this.props)).catch(noop);\n }\n }\n };\n },\n};\n","/* @flow */\n\nimport { noop, dasherizeToCamel } from \"@krakenjs/belter/src\";\n\nimport type { ComponentDriverType } from \"../component\";\nimport { CONTEXT } from \"../constants\";\n\ntype VueComponent = {|\n render: (Function) => Element,\n inheritAttrs: boolean,\n mounted: () => void,\n watch: {|\n $attrs: {|\n deep: boolean,\n handler: () => void,\n |},\n |},\n|};\n\ntype RegisteredVueComponent = {||};\n\ntype VueType = {|\n component: (string, VueComponent) => RegisteredVueComponent,\n|};\n\nfunction propsToCamelCase(props: Object): Object {\n return Object.keys(props).reduce((acc, key) => {\n const value = props[key];\n // In vue `style` is a reserved prop name\n if (key === \"style-object\" || key === \"styleObject\") {\n acc.style = value;\n // To keep zoid as generic as possible, passing in the original prop name as well\n acc.styleObject = value;\n } else if (key.includes(\"-\")) {\n acc[dasherizeToCamel(key)] = value;\n } else {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\nexport const vue: ComponentDriverType<\n *,\n VueType,\n RegisteredVueComponent,\n *,\n *\n> = {\n register: (tag, propsDef, init, Vue) => {\n return Vue.component(tag, {\n render(createElement): Element {\n return createElement(\"div\");\n },\n\n inheritAttrs: false,\n\n mounted() {\n // $FlowFixMe[object-this-reference]\n const el = this.$el;\n // $FlowFixMe[object-this-reference]\n this.parent = init({ ...propsToCamelCase(this.$attrs) });\n // $FlowFixMe[object-this-reference]\n this.parent.render(el, CONTEXT.IFRAME);\n },\n\n watch: {\n $attrs: {\n handler: function handler() {\n if (this.parent && this.$attrs) {\n this.parent.updateProps({ ...this.$attrs }).catch(noop);\n }\n },\n deep: true,\n },\n },\n });\n },\n};\n","/* @flow */\nimport { dasherizeToCamel, noop } from \"@krakenjs/belter/src\";\n\nimport type { ComponentDriverType } from \"../component\";\nimport { CONTEXT } from \"../constants\";\n\nfunction propsToCamelCase(props: Object): Object {\n return Object.keys(props).reduce((acc, key) => {\n const value = props[key];\n // In vue `style` is a reserved prop name\n if (key === \"style-object\" || key === \"styleObject\") {\n acc.style = value;\n // To keep zoid as generic as possible, passing in the original prop name as well\n acc.styleObject = value;\n } else if (key.includes(\"-\")) {\n acc[dasherizeToCamel(key)] = value;\n } else {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\nexport const vue3: ComponentDriverType<*, *, *, *, *> = {\n register: (tag, propsDef, init) => {\n return {\n template: `

`,\n\n inheritAttrs: false,\n\n mounted() {\n // $FlowFixMe[object-this-reference]\n const el = this.$el;\n // $FlowFixMe[object-this-reference]\n this.parent = init({ ...propsToCamelCase(this.$attrs) });\n // $FlowFixMe[object-this-reference]\n this.parent.render(el, CONTEXT.IFRAME);\n },\n\n watch: {\n $attrs: {\n handler: function handler() {\n if (this.parent && this.$attrs) {\n this.parent.updateProps({ ...this.$attrs }).catch(noop);\n }\n },\n deep: true,\n },\n },\n };\n },\n};\n","/* @flow */\n\nimport { dasherizeToCamel, replaceObject, noop } from \"@krakenjs/belter/src\";\n\nimport type { ComponentDriverType } from \"../component\";\nimport { CONTEXT } from \"../constants\";\n\ntype AngularModule = {|\n directive: (\n string,\n () => {|\n scope: { [string]: \"=\" | \"@\" },\n restrict: string,\n controller: $ReadOnlyArray,\n |}\n ) => AngularModule,\n|};\n\ntype Angular = {|\n module: (string, $ReadOnlyArray) => AngularModule,\n|};\n\nexport const angular: ComponentDriverType<*, Angular, AngularModule, *, *> = {\n register: (tag, propsDef, init, ng) => {\n const module = ng.module(tag, []).directive(dasherizeToCamel(tag), () => {\n const scope = {};\n\n for (const key of Object.keys(propsDef)) {\n scope[key] = \"=\";\n }\n\n scope.props = \"=\";\n\n return {\n scope,\n\n restrict: \"E\",\n\n controller: [\n \"$scope\",\n \"$element\",\n ($scope, $element) => {\n function safeApply() {\n if (\n $scope.$root.$$phase !== \"$apply\" &&\n $scope.$root.$$phase !== \"$digest\"\n ) {\n try {\n $scope.$apply();\n } catch (err) {\n // pass\n }\n }\n }\n\n const getProps = () => {\n return replaceObject($scope.props, (item) => {\n if (typeof item === \"function\") {\n return function angularWrapped(): mixed {\n // $FlowFixMe\n const result = item.apply(this, arguments);\n safeApply();\n return result;\n };\n }\n return item;\n });\n };\n\n const instance = init(getProps());\n instance.render($element[0], CONTEXT.IFRAME);\n\n $scope.$watch(() => {\n instance.updateProps(getProps()).catch(noop);\n });\n },\n ],\n };\n });\n\n return module;\n },\n};\n","/* @flow */\n/* eslint new-cap: 0 */\n\nimport { replaceObject } from \"@krakenjs/belter/src\";\n\nimport type { ComponentDriverType } from \"../component\";\nimport { CONTEXT } from \"../constants\";\n\ntype Angular2Injection = {||};\n\ntype Angular2Component = {||};\n\ntype Angular2Module = {| annotations: Object, name: string |};\n\ntype Angular2 = {|\n Component: ({|\n selector: string,\n template: string,\n inputs: $ReadOnlyArray,\n |}) => {|\n Class: ({|\n constructor: $ReadOnlyArray,\n ngOnInit: () => void,\n ngDoCheck: () => void,\n |}) => Angular2Component,\n |},\n NgModule: ({|\n declarations: $ReadOnlyArray<*>,\n exports: $ReadOnlyArray<*>,\n |}) => {|\n Class: ({| constructor: () => void |}) => Angular2Module,\n |},\n ElementRef: Angular2Injection,\n NgZone: Angular2Injection,\n Inject: Function,\n|};\n\nconst equals = (obj1, obj2) => {\n const checked = {};\n\n for (const key in obj1) {\n if (obj1.hasOwnProperty(key)) {\n checked[key] = true;\n\n if (obj1[key] !== obj2[key]) {\n return false;\n }\n }\n }\n\n for (const key in obj2) {\n if (!checked[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const angular2: ComponentDriverType<*, Angular2, Angular2Module, *, *> =\n {\n register: (\n tag,\n propsDef,\n init,\n { Component: AngularComponent, NgModule, ElementRef, NgZone, Inject }\n ) => {\n class ComponentInstance {\n elementRef: Object;\n internalProps: Object;\n parent: Object;\n props: Object;\n zone: Object;\n _props: Object;\n\n static annotations: $ReadOnlyArray<*>;\n static parameters: $ReadOnlyArray<*>;\n\n constructor(elementRef, zone) {\n this._props = {};\n this.elementRef = elementRef;\n this.zone = zone;\n }\n\n getProps(): Object {\n return replaceObject(\n { ...this.internalProps, ...this.props },\n (item) => {\n if (typeof item === \"function\") {\n const { zone } = this;\n return function angular2Wrapped(): void {\n // $FlowFixMe\n return zone.run(() => item.apply(this, arguments));\n };\n }\n return item;\n }\n );\n }\n\n ngOnInit() {\n const targetElement = this.elementRef.nativeElement;\n this.parent = init(this.getProps());\n this.parent.render(targetElement, CONTEXT.IFRAME);\n }\n\n ngDoCheck() {\n if (this.parent && !equals(this._props, this.props)) {\n this._props = { ...this.props };\n this.parent.updateProps(this.getProps());\n }\n }\n }\n\n ComponentInstance.parameters = [\n [new Inject(ElementRef)],\n [new Inject(NgZone)],\n ];\n\n ComponentInstance.annotations = [\n new AngularComponent({\n selector: tag,\n template: `
`,\n inputs: [\"props\"],\n }),\n ];\n\n class ModuleInstance {\n static annotations: $ReadOnlyArray<*>;\n }\n\n ModuleInstance.annotations = [\n new NgModule({\n declarations: [ComponentInstance],\n exports: [ComponentInstance],\n }),\n ];\n\n return ModuleInstance;\n },\n };\n","/* @flow */\n/* eslint react/react-in-jsx-scope: off */\n\nimport { destroyElement, toCSS } from \"@krakenjs/belter/src\";\n\nimport { type RenderOptionsType } from \"../../parent/parent\";\nimport { EVENT } from \"../../constants\";\n\nconst CLASS = {\n VISIBLE: \"zoid-visible\",\n INVISIBLE: \"zoid-invisible\",\n};\n\nexport function defaultContainerTemplate

({\n uid,\n frame,\n prerenderFrame,\n doc,\n props,\n event,\n dimensions,\n}: RenderOptionsType

): ?HTMLElement {\n const { width, height } = dimensions;\n\n if (__ZOID__.__DEFAULT_CONTAINER__) {\n if (!frame || !prerenderFrame) {\n return;\n }\n\n const div = doc.createElement(\"div\");\n div.setAttribute(\"id\", uid);\n const style = doc.createElement(\"style\");\n if (props.cspNonce) {\n style.setAttribute(\"nonce\", props.cspNonce);\n }\n\n style.appendChild(\n doc.createTextNode(`\n #${uid} {\n display: inline-block;\n position: relative;\n width: ${width};\n height: ${height};\n }\n\n #${uid} > iframe {\n display: inline-block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n transition: opacity .2s ease-in-out;\n }\n\n #${uid} > iframe.${CLASS.INVISIBLE} {\n opacity: 0;\n }\n\n #${uid} > iframe.${CLASS.VISIBLE} {\n opacity: 1;\n }\n `)\n );\n\n div.appendChild(frame);\n div.appendChild(prerenderFrame);\n div.appendChild(style);\n\n prerenderFrame.classList.add(CLASS.VISIBLE);\n frame.classList.add(CLASS.INVISIBLE);\n\n event.on(EVENT.RENDERED, () => {\n prerenderFrame.classList.remove(CLASS.VISIBLE);\n prerenderFrame.classList.add(CLASS.INVISIBLE);\n\n frame.classList.remove(CLASS.INVISIBLE);\n frame.classList.add(CLASS.VISIBLE);\n\n setTimeout(() => {\n destroyElement(prerenderFrame);\n }, 1);\n });\n\n event.on(EVENT.RESIZE, ({ width: newWidth, height: newHeight }) => {\n if (typeof newWidth === \"number\") {\n div.style.width = toCSS(newWidth);\n }\n\n if (typeof newHeight === \"number\") {\n div.style.height = toCSS(newHeight);\n }\n });\n\n return div;\n }\n}\n","/* @flow */\n/* eslint react/react-in-jsx-scope: off */\n\nimport { type RenderOptionsType } from \"../../parent/parent\";\n\nexport function defaultPrerenderTemplate

({\n doc,\n props,\n}: RenderOptionsType

): ?HTMLElement {\n if (__ZOID__.__DEFAULT_PRERENDER__) {\n const html = doc.createElement(\"html\");\n const body = doc.createElement(\"body\");\n const style = doc.createElement(\"style\");\n const spinner = doc.createElement(\"div\");\n spinner.classList.add(\"spinner\");\n\n if (props.cspNonce) {\n style.setAttribute(\"nonce\", props.cspNonce);\n }\n\n html.appendChild(body);\n body.appendChild(spinner);\n body.appendChild(style);\n style.appendChild(\n doc.createTextNode(`\n html, body {\n width: 100%;\n height: 100%;\n }\n\n .spinner {\n position: fixed;\n max-height: 60vmin;\n max-width: 60vmin;\n height: 40px;\n width: 40px;\n top: 50%;\n left: 50%;\n box-sizing: border-box;\n border: 3px solid rgba(0, 0, 0, .2);\n border-top-color: rgba(33, 128, 192, 0.8);\n border-radius: 100%;\n animation: rotation .7s infinite linear;\n }\n\n @keyframes rotation {\n from {\n transform: translateX(-50%) translateY(-50%) rotate(0deg);\n }\n to {\n transform: translateX(-50%) translateY(-50%) rotate(359deg);\n }\n }\n `)\n );\n\n return html;\n }\n}\n","/* @flow */\n/* eslint max-lines: 0 */\n\nimport {\n setup as setupPostRobot,\n on,\n send,\n bridge,\n toProxyWindow,\n destroy as destroyPostRobot,\n} from \"@krakenjs/post-robot/src\";\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport {\n isWindow,\n getDomain,\n matchDomain,\n type CrossDomainWindowType,\n type DomainMatcher,\n} from \"@krakenjs/cross-domain-utils/src\";\nimport {\n noop,\n isElement,\n cleanup,\n memoize,\n identity,\n extend,\n uniqueID,\n} from \"@krakenjs/belter/src\";\n\nimport { childComponent, type ChildComponent } from \"../child\";\nimport {\n type ParentComponent,\n type RenderOptionsType,\n type ParentHelpers,\n parentComponent,\n} from \"../parent/parent\";\nimport {\n ZOID,\n CONTEXT,\n POST_MESSAGE,\n WILDCARD,\n METHOD,\n PROP_TYPE,\n} from \"../constants\";\nimport { react, angular, vue, vue3, angular2 } from \"../drivers\";\nimport {\n getGlobal,\n destroyGlobal,\n getInitialParentPayload,\n isChildComponentWindow,\n} from \"../lib\";\nimport type {\n CssDimensionsType,\n StringMatcherType,\n ContainerReferenceType,\n} from \"../types\";\n\nimport { validateOptions } from \"./validate\";\nimport {\n defaultContainerTemplate,\n defaultPrerenderTemplate,\n} from \"./templates\";\nimport {\n getBuiltInProps,\n type UserPropsDefinitionType,\n type PropsDefinitionType,\n type PropsInputType,\n type PropsType,\n type ParentPropType,\n type exportPropType,\n type DEFINITION_TYPE,\n} from \"./props\";\n\ntype LoggerPayload = { [string]: ?string | ?boolean };\n\n// eslint-disable-next-line flowtype/require-exact-type\ntype Logger = {\n info: (event: string, payload?: LoggerPayload) => any, // eslint-disable-line flowtype/no-weak-types\n};\n\n/* Component\n ---------\n\n This is the spec for the component. The idea is, when I call zoid.create(), it will create a new instance\n of Component with the blueprint needed to set up ParentComponents and ChildComponents.\n\n This is the one portion of code which is required by -- and shared to -- both the parent and child windows, and\n contains all of the configuration needed for them to set themselves up.\n*/\n\ntype Attributes = {|\n iframe?: { [string]: string },\n popup?: { [string]: string },\n|};\n\nexport type ExportsConfigDefinition = {|\n [string]: {|\n type: DEFINITION_TYPE,\n |},\n|};\n\nexport type ExportsMapperDefinition = ({|\n getExports: () => ZalgoPromise,\n|}) => X;\n\nexport type ExportsDefinition =\n | ExportsConfigDefinition\n | ExportsMapperDefinition;\n\nexport type ComponentOptionsType = {|\n tag: string,\n\n getExtensions?: (parent: ParentComponent) => ExtType,\n url: string | (({| props: PropsType

|}) => string),\n domain?: DomainMatcher,\n bridgeUrl?: string,\n method?: $Values,\n\n props?: UserPropsDefinitionType,\n\n dimensions?:\n | CssDimensionsType\n | (({| props: PropsType

|}) => CssDimensionsType),\n autoResize?: {| width?: boolean, height?: boolean, element?: string |},\n\n allowedParentDomains?: StringMatcherType,\n\n attributes?: Attributes | (({| props: PropsType

|}) => Attributes),\n\n eligible?: ({| props: PropsInputType

|}) => {|\n eligible: boolean,\n reason?: string,\n |},\n\n defaultContext?: $Values,\n\n containerTemplate?: (RenderOptionsType

) => ?HTMLElement,\n prerenderTemplate?: (RenderOptionsType

) => ?HTMLElement,\n\n validate?: ({| props: PropsInputType

|}) => void,\n\n logger?: Logger,\n\n children?: () => C,\n\n exports?: ExportsDefinition,\n|};\n\nexport type AttributesType = {|\n iframe?: { [string]: string },\n popup?: { [string]: string },\n|};\n\ntype AutoResizeType = {|\n width?: boolean,\n height?: boolean,\n element?: string,\n|};\n\nexport type NormalizedComponentOptionsType = {|\n tag: string,\n name: string,\n\n getExtensions: (parent: ParentComponent) => ExtType,\n url: string | (({| props: PropsType

|}) => string),\n domain: ?DomainMatcher,\n bridgeUrl: ?string,\n method: ?$Values,\n\n propsDef: PropsDefinitionType,\n dimensions:\n | CssDimensionsType\n | (({| props: PropsType

|}) => CssDimensionsType),\n autoResize: AutoResizeType,\n\n allowedParentDomains: StringMatcherType,\n\n attributes: AttributesType | (({| props: PropsType

|}) => AttributesType),\n\n eligible: ({| props: PropsInputType

|}) => {|\n eligible: boolean,\n reason?: string,\n |},\n\n defaultContext: $Values,\n\n containerTemplate: (RenderOptionsType

) => ?HTMLElement,\n prerenderTemplate: ?(RenderOptionsType

) => ?HTMLElement,\n\n validate: ?({| props: PropsInputType

|}) => void,\n logger: Logger,\n\n children: () => C,\n\n exports: ExportsMapperDefinition,\n|};\n\nexport type ZoidComponentInstance = {|\n ...ExtType,\n ...ParentHelpers

,\n ...X,\n ...C,\n isEligible: () => boolean,\n clone: () => ZoidComponentInstance,\n render: (\n container?: ContainerReferenceType,\n context?: $Values\n ) => ZalgoPromise,\n renderTo: (\n target: CrossDomainWindowType,\n container?: ContainerReferenceType,\n context?: $Values\n ) => ZalgoPromise,\n|};\n\n// eslint-disable-next-line flowtype/require-exact-type\nexport type ZoidComponent = {\n (props?: PropsInputType

| void): ZoidComponentInstance,\n // eslint-disable-next-line no-undef\n driver: (string, mixed) => T,\n isChild: () => boolean,\n xprops?: PropsType

,\n canRenderTo: (CrossDomainWindowType) => ZalgoPromise,\n instances: $ReadOnlyArray>,\n};\n\nconst getDefaultAttributes = (): AttributesType => {\n // $FlowFixMe\n return {};\n};\n\nconst getDefaultAutoResize = (): AutoResizeType => {\n // $FlowFixMe\n return {};\n};\n\nconst getDefaultExports = (): (() => X) => {\n // $FlowFixMe\n return noop;\n};\n\nconst getDefaultDimensions = (): CssDimensionsType => {\n // $FlowFixMe\n return {};\n};\n\nfunction getDefaultGetExtensions(): (\n parent: ParentComponent\n) => ExtType {\n return function getExtensions(): ExtType {\n // $FlowFixMe\n const ext: ExtType = {};\n return ext;\n };\n}\n\nfunction normalizeOptions(\n options: ComponentOptionsType\n): NormalizedComponentOptionsType {\n const {\n tag,\n url,\n domain,\n bridgeUrl,\n props = {},\n getExtensions = getDefaultGetExtensions(),\n dimensions = getDefaultDimensions(),\n autoResize = getDefaultAutoResize(),\n allowedParentDomains = WILDCARD,\n attributes = getDefaultAttributes(),\n defaultContext = CONTEXT.IFRAME,\n containerTemplate = __ZOID__.__DEFAULT_CONTAINER__\n ? defaultContainerTemplate\n : null,\n prerenderTemplate = __ZOID__.__DEFAULT_PRERENDER__\n ? defaultPrerenderTemplate\n : null,\n validate,\n eligible = () => ({ eligible: true }),\n logger = { info: noop },\n exports: xportsDefinition = getDefaultExports(),\n method,\n children = (): C => {\n // $FlowFixMe\n return {};\n },\n } = options;\n\n const name = tag.replace(/-/g, \"_\");\n\n // $FlowFixMe[incompatible-type]\n // $FlowFixMe[cannot-spread-inexact]\n const propsDef: PropsDefinitionType = {\n ...getBuiltInProps(),\n ...props,\n };\n\n if (!containerTemplate) {\n throw new Error(`Container template required`);\n }\n\n const xports =\n typeof xportsDefinition === \"function\"\n ? xportsDefinition\n : ({ getExports }): X => {\n const result = {};\n\n for (const key of Object.keys(xportsDefinition)) {\n const { type } = xportsDefinition[key];\n const valuePromise = getExports().then((res) => {\n // $FlowFixMe\n return res[key];\n });\n\n if (type === PROP_TYPE.FUNCTION) {\n result[key] = (...args) =>\n valuePromise.then((value) => value(...args));\n } else {\n result[key] = valuePromise;\n }\n }\n\n // $FlowFixMe\n return result;\n };\n\n return {\n name,\n tag,\n url,\n domain,\n bridgeUrl,\n method,\n propsDef,\n dimensions,\n autoResize,\n allowedParentDomains,\n attributes,\n defaultContext,\n containerTemplate,\n prerenderTemplate,\n validate,\n logger,\n eligible,\n children,\n exports: xports,\n getExtensions,\n };\n}\n\nlet cleanInstances = cleanup();\nconst cleanZoid = cleanup();\n\nexport type Component = {|\n init: (\n props?: PropsInputType

| void\n ) => ZoidComponentInstance,\n instances: $ReadOnlyArray>,\n driver: (string, mixed) => mixed,\n isChild: () => boolean,\n canRenderTo: (CrossDomainWindowType) => ZalgoPromise,\n registerChild: () => ?ChildComponent,\n|};\n\nexport function component(\n opts: ComponentOptionsType\n): Component {\n if (__DEBUG__) {\n validateOptions(opts);\n }\n\n const options = normalizeOptions(opts);\n\n const {\n name,\n tag,\n defaultContext,\n propsDef,\n eligible,\n children,\n getExtensions,\n } = options;\n\n const global = getGlobal(window);\n const driverCache = {};\n const instances = [];\n\n const isChild = (): boolean => {\n if (isChildComponentWindow(name)) {\n const { payload } = getInitialParentPayload();\n if (\n payload.tag === tag &&\n matchDomain(payload.childDomainMatch, getDomain())\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n const registerChild = memoize((): ?ChildComponent => {\n if (isChild()) {\n if (window.xprops) {\n delete global.components[tag];\n throw new Error(\n `Can not register ${name} as child - child already registered`\n );\n }\n\n const child = childComponent(options);\n child.init();\n return child;\n }\n });\n\n const listenForDelegate = () => {\n const allowDelegateListener = on(\n `${POST_MESSAGE.ALLOW_DELEGATE}_${name}`,\n () => {\n return true;\n }\n );\n\n const delegateListener = on(\n `${POST_MESSAGE.DELEGATE}_${name}`,\n ({ source, data: { uid, overrides } }) => {\n return {\n parent: parentComponent({\n uid,\n options,\n overrides,\n parentWin: source,\n }),\n };\n }\n );\n\n cleanZoid.register(allowDelegateListener.cancel);\n cleanZoid.register(delegateListener.cancel);\n };\n\n const canRenderTo = (win: CrossDomainWindowType): ZalgoPromise => {\n return send(win, `${POST_MESSAGE.ALLOW_DELEGATE}_${name}`)\n .then(({ data }) => {\n return data;\n })\n .catch(() => {\n return false;\n });\n };\n\n const getDefaultContainer = (\n context: $Values,\n container?: ContainerReferenceType\n ): ContainerReferenceType => {\n if (container) {\n if (typeof container !== \"string\" && !isElement(container)) {\n throw new TypeError(`Expected string or element selector to be passed`);\n }\n\n return container;\n }\n\n if (context === CONTEXT.POPUP) {\n return \"body\";\n }\n\n throw new Error(`Expected element to be passed to render iframe`);\n };\n\n const getDefaultContext = (\n props: PropsInputType

,\n context: ?$Values\n ): ZalgoPromise<$Values> => {\n return ZalgoPromise.try(() => {\n if (props.window) {\n return toProxyWindow(props.window).getType();\n }\n\n if (context) {\n if (context !== CONTEXT.IFRAME && context !== CONTEXT.POPUP) {\n throw new Error(`Unrecognized context: ${context}`);\n }\n\n return context;\n }\n\n return defaultContext;\n });\n };\n\n const getDefaultInputProps = (): PropsInputType

=> {\n // $FlowFixMe\n return {};\n };\n\n const init = (\n inputProps?: PropsInputType

| void\n ): ZoidComponentInstance => {\n // eslint-disable-next-line prefer-const\n let instance;\n\n const uid = `${ZOID}-${tag}-${uniqueID()}`;\n const props = inputProps || getDefaultInputProps();\n\n const { eligible: eligibility, reason } = eligible({ props });\n const isEligible = () => eligibility;\n\n const onDestroy = props.onDestroy;\n props.onDestroy = (...args) => {\n if (instance && eligibility) {\n instances.splice(instances.indexOf(instance), 1);\n }\n\n if (onDestroy) {\n return onDestroy(...args);\n }\n };\n\n const parent = parentComponent({\n uid,\n options,\n });\n\n parent.init();\n\n if (eligibility) {\n parent.setProps(props);\n } else {\n if (props.onDestroy) {\n props.onDestroy();\n }\n }\n\n cleanInstances.register((err) => {\n return parent.destroy(err || new Error(`zoid destroyed all components`));\n });\n\n const clone = ({ decorate = identity } = {}) => {\n return init(decorate(props));\n };\n\n const getChildren = (): C => {\n // $FlowFixMe\n const childComponents: {| [string]: ZoidComponent |} = children();\n const result = {};\n\n for (const childName of Object.keys(childComponents)) {\n const Child: ZoidComponent = childComponents[childName];\n\n result[childName] = (childInputProps) => {\n const parentProps: PropsType

= parent.getProps();\n const parentExport: exportPropType = parent.export;\n\n const childParent: ParentPropType = {\n uid,\n props: parentProps,\n export: parentExport,\n };\n\n const childProps: PropsInputType = {\n ...childInputProps,\n parent: childParent,\n };\n\n return Child(childProps);\n };\n }\n\n // $FlowFixMe\n return result;\n };\n\n const render = (target, container, context) => {\n return ZalgoPromise.try(() => {\n if (!eligibility) {\n const err = new Error(reason || `${name} component is not eligible`);\n\n return parent.destroy(err).then(() => {\n throw err;\n });\n }\n\n if (!isWindow(target)) {\n throw new Error(`Must pass window to renderTo`);\n }\n\n return getDefaultContext(props, context);\n })\n .then((finalContext) => {\n container = getDefaultContainer(finalContext, container);\n\n if (target !== window && typeof container !== \"string\") {\n throw new Error(\n `Must pass string element when rendering to another window`\n );\n }\n\n return parent.render({\n target,\n container,\n context: finalContext,\n rerender: () => {\n const newInstance = clone();\n extend(instance, newInstance);\n return newInstance.renderTo(target, container, context);\n },\n });\n })\n .catch((err) => {\n return parent.destroy(err).then(() => {\n throw err;\n });\n });\n };\n\n instance = {\n ...getExtensions(parent),\n ...parent.getExports(),\n ...parent.getHelpers(),\n ...getChildren(),\n isEligible,\n clone,\n render: (container, context) => render(window, container, context),\n renderTo: (target, container, context) =>\n render(target, container, context),\n };\n\n if (eligibility) {\n instances.push(instance);\n }\n\n return instance;\n };\n\n const driver = (driverName: string, dep: mixed): mixed => {\n if (__ZOID__.__FRAMEWORK_SUPPORT__) {\n const drivers = { react, angular, vue, vue3, angular2 };\n\n if (!drivers[driverName]) {\n throw new Error(`Could not find driver for framework: ${driverName}`);\n }\n\n if (!driverCache[driverName]) {\n driverCache[driverName] = drivers[driverName].register(\n tag,\n propsDef,\n init,\n dep\n );\n }\n\n return driverCache[driverName];\n } else {\n throw new Error(`Driver support not enabled`);\n }\n };\n\n registerChild();\n listenForDelegate();\n\n global.components = global.components || {};\n if (global.components[tag]) {\n throw new Error(\n `Can not register multiple components with the same tag: ${tag}`\n );\n }\n global.components[tag] = true;\n\n return {\n init,\n instances,\n driver,\n isChild,\n canRenderTo,\n registerChild,\n };\n}\n\nexport type ComponentDriverType = {|\n register: (\n string,\n PropsDefinitionType,\n (PropsInputType

) => ZoidComponentInstance,\n L\n ) => D,\n|};\n\nexport type ZoidProps

= PropsType

;\n\n// eslint-disable-next-line no-undef\nexport type CreateZoidComponent = (\n // eslint-disable-next-line no-undef\n options: ComponentOptionsType\n // eslint-disable-next-line no-undef\n) => ZoidComponent;\n\nexport const create: CreateZoidComponent = (\n options: ComponentOptionsType\n): ZoidComponent => {\n setupPostRobot();\n\n const comp = component(options);\n\n const init = (props?: PropsInputType

| void) => comp.init(props);\n init.driver = (name, dep) => comp.driver(name, dep);\n init.isChild = () => comp.isChild();\n init.canRenderTo = (win) => comp.canRenderTo(win);\n init.instances = comp.instances;\n\n const child = comp.registerChild();\n if (child) {\n window.xprops = init.xprops = child.getProps();\n }\n\n return init;\n};\n\nexport function destroyComponents(err?: mixed): ZalgoPromise {\n if (bridge) {\n bridge.destroyBridges();\n }\n\n const destroyPromise = cleanInstances.all(err);\n cleanInstances = cleanup();\n return destroyPromise;\n}\n\nexport const destroyAll = destroyComponents;\n\nexport function destroy(err?: mixed): ZalgoPromise {\n destroyAll();\n destroyGlobal();\n destroyPostRobot();\n return cleanZoid.all(err);\n}\n","/* @flow */\n\nimport {\n getCurrentScriptUID,\n ATTRIBUTES,\n parseQuery,\n getBrowserLocales,\n base64decode,\n values,\n getCurrentScript,\n memoize,\n stringifyError,\n} from \"@krakenjs/belter/src\";\nimport {\n COUNTRY,\n SDK_DATA_ATTRIBUTES,\n SDK_QUERY_KEYS,\n INTENT,\n COMMIT,\n VAULT,\n CURRENCY,\n FUNDING,\n CARD,\n COUNTRY_LANGS,\n DEFAULT_INTENT,\n DEFAULT_CURRENCY,\n DEFAULT_VAULT,\n QUERY_BOOL,\n LANG,\n type LocaleType,\n DEFAULT_SALE_COMMIT,\n DEFAULT_NONSALE_COMMIT,\n PAGE_TYPES,\n} from \"@paypal/sdk-constants/src\";\n\nimport { getPath, getDefaultNamespace, getSDKHost } from \"./global\";\nimport { CLIENT_ID_ALIAS } from \"./config\";\nimport { getComputedLocales } from \"./utils\";\n\ntype GetSDKScript = () => HTMLScriptElement;\n\nconst buildScriptNotFoundError = (host, path, error) => {\n const errorString = error ? stringifyError(error) : \"\";\n\n return new Error(\n `PayPal Payments SDK script not found on page! Expected to find