<<<<<<< HEAD <<<<<<< HEAD {"version":3,"sources":["../node_modules/browser-pack/_prelude.js","../node_modules/babel-polyfill/lib/index.js","../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../node_modules/core-js/fn/regexp/escape.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_a-number-value.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/_an-instance.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_array-copy-within.js","../node_modules/core-js/modules/_array-fill.js","../node_modules/core-js/modules/_array-from-iterable.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_array-reduce.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_bind.js","../node_modules/core-js/modules/_classof.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_collection-strong.js","../node_modules/core-js/modules/_collection-to-json.js","../node_modules/core-js/modules/_collection-weak.js","../node_modules/core-js/modules/_collection.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_create-property.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_date-to-primitive.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_enum-keys.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_fails-is-regexp.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_fix-re-wks.js","../node_modules/core-js/modules/_flags.js","../node_modules/core-js/modules/_for-of.js","../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_html.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_inherit-if-required.js","../node_modules/core-js/modules/_invoke.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_is-array-iter.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_is-integer.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_is-regexp.js","../node_modules/core-js/modules/_iter-call.js","../node_modules/core-js/modules/_iter-create.js","../node_modules/core-js/modules/_iter-define.js","../node_modules/core-js/modules/_iter-detect.js","../node_modules/core-js/modules/_iter-step.js","../node_modules/core-js/modules/_iterators.js","../node_modules/core-js/modules/_keyof.js","../node_modules/core-js/modules/_library.js","../node_modules/core-js/modules/_math-expm1.js","../node_modules/core-js/modules/_math-log1p.js","../node_modules/core-js/modules/_math-sign.js","../node_modules/core-js/modules/_meta.js","../node_modules/core-js/modules/_metadata.js","../node_modules/core-js/modules/_microtask.js","../node_modules/core-js/modules/_object-assign.js","../node_modules/core-js/modules/_object-create.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_object-dps.js","../node_modules/core-js/modules/_object-forced-pam.js","../node_modules/core-js/modules/_object-gopd.js","../node_modules/core-js/modules/_object-gopn-ext.js","../node_modules/core-js/modules/_object-gopn.js","../node_modules/core-js/modules/_object-gops.js","../node_modules/core-js/modules/_object-gpo.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-pie.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/_object-to-array.js","../node_modules/core-js/modules/_own-keys.js","../node_modules/core-js/modules/_parse-float.js","../node_modules/core-js/modules/_parse-int.js","../node_modules/core-js/modules/_partial.js","../node_modules/core-js/modules/_path.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_redefine-all.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_replacer.js","../node_modules/core-js/modules/_same-value.js","../node_modules/core-js/modules/_set-proto.js","../node_modules/core-js/modules/_set-species.js","../node_modules/core-js/modules/_set-to-string-tag.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_species-constructor.js","../node_modules/core-js/modules/_strict-method.js","../node_modules/core-js/modules/_string-at.js","../node_modules/core-js/modules/_string-context.js","../node_modules/core-js/modules/_string-html.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/_string-trim.js","../node_modules/core-js/modules/_string-ws.js","../node_modules/core-js/modules/_task.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_typed-array.js","../node_modules/core-js/modules/_typed-buffer.js","../node_modules/core-js/modules/_typed.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_wks-define.js","../node_modules/core-js/modules/_wks-ext.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/core.get-iterator-method.js","../node_modules/core-js/modules/core.regexp.escape.js","../node_modules/core-js/modules/es6.array.copy-within.js","../node_modules/core-js/modules/es6.array.every.js","../node_modules/core-js/modules/es6.array.fill.js","../node_modules/core-js/modules/es6.array.filter.js","../node_modules/core-js/modules/es6.array.find-index.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/es6.array.for-each.js","../node_modules/core-js/modules/es6.array.from.js","../node_modules/core-js/modules/es6.array.index-of.js","../node_modules/core-js/modules/es6.array.is-array.js","../node_modules/core-js/modules/es6.array.iterator.js","../node_modules/core-js/modules/es6.array.join.js","../node_modules/core-js/modules/es6.array.last-index-of.js","../node_modules/core-js/modules/es6.array.map.js","../node_modules/core-js/modules/es6.array.of.js","../node_modules/core-js/modules/es6.array.reduce-right.js","../node_modules/core-js/modules/es6.array.reduce.js","../node_modules/core-js/modules/es6.array.slice.js","../node_modules/core-js/modules/es6.array.some.js","../node_modules/core-js/modules/es6.array.sort.js","../node_modules/core-js/modules/es6.array.species.js","../node_modules/core-js/modules/es6.date.now.js","../node_modules/core-js/modules/es6.date.to-iso-string.js","../node_modules/core-js/modules/es6.date.to-json.js","../node_modules/core-js/modules/es6.date.to-primitive.js","../node_modules/core-js/modules/es6.date.to-string.js","../node_modules/core-js/modules/es6.function.bind.js","../node_modules/core-js/modules/es6.function.has-instance.js","../node_modules/core-js/modules/es6.function.name.js","../node_modules/core-js/modules/es6.map.js","../node_modules/core-js/modules/es6.math.acosh.js","../node_modules/core-js/modules/es6.math.asinh.js","../node_modules/core-js/modules/es6.math.atanh.js","../node_modules/core-js/modules/es6.math.cbrt.js","../node_modules/core-js/modules/es6.math.clz32.js","../node_modules/core-js/modules/es6.math.cosh.js","../node_modules/core-js/modules/es6.math.expm1.js","../node_modules/core-js/modules/es6.math.fround.js","../node_modules/core-js/modules/es6.math.hypot.js","../node_modules/core-js/modules/es6.math.imul.js","../node_modules/core-js/modules/es6.math.log10.js","../node_modules/core-js/modules/es6.math.log1p.js","../node_modules/core-js/modules/es6.math.log2.js","../node_modules/core-js/modules/es6.math.sign.js","../node_modules/core-js/modules/es6.math.sinh.js","../node_modules/core-js/modules/es6.math.tanh.js","../node_modules/core-js/modules/es6.math.trunc.js","../node_modules/core-js/modules/es6.number.constructor.js","../node_modules/core-js/modules/es6.number.epsilon.js","../node_modules/core-js/modules/es6.number.is-finite.js","../node_modules/core-js/modules/es6.number.is-integer.js","../node_modules/core-js/modules/es6.number.is-nan.js","../node_modules/core-js/modules/es6.number.is-safe-integer.js","../node_modules/core-js/modules/es6.number.max-safe-integer.js","../node_modules/core-js/modules/es6.number.min-safe-integer.js","../node_modules/core-js/modules/es6.number.parse-float.js","../node_modules/core-js/modules/es6.number.parse-int.js","../node_modules/core-js/modules/es6.number.to-fixed.js","../node_modules/core-js/modules/es6.number.to-precision.js","../node_modules/core-js/modules/es6.object.assign.js","../node_modules/core-js/modules/es6.object.create.js","../node_modules/core-js/modules/es6.object.define-properties.js","../node_modules/core-js/modules/es6.object.define-property.js","../node_modules/core-js/modules/es6.object.freeze.js","../node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","../node_modules/core-js/modules/es6.object.get-own-property-names.js","../node_modules/core-js/modules/es6.object.get-prototype-of.js","../node_modules/core-js/modules/es6.object.is-extensible.js","../node_modules/core-js/modules/es6.object.is-frozen.js","../node_modules/core-js/modules/es6.object.is-sealed.js","../node_modules/core-js/modules/es6.object.is.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/es6.object.prevent-extensions.js","../node_modules/core-js/modules/es6.object.seal.js","../node_modules/core-js/modules/es6.object.set-prototype-of.js","../node_modules/core-js/modules/es6.object.to-string.js","../node_modules/core-js/modules/es6.parse-float.js","../node_modules/core-js/modules/es6.parse-int.js","../node_modules/core-js/modules/es6.promise.js","../node_modules/core-js/modules/es6.reflect.apply.js","../node_modules/core-js/modules/es6.reflect.construct.js","../node_modules/core-js/modules/es6.reflect.define-property.js","../node_modules/core-js/modules/es6.reflect.delete-property.js","../node_modules/core-js/modules/es6.reflect.enumerate.js","../node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","../node_modules/core-js/modules/es6.reflect.get-prototype-of.js","../node_modules/core-js/modules/es6.reflect.get.js","../node_modules/core-js/modules/es6.reflect.has.js","../node_modules/core-js/modules/es6.reflect.is-extensible.js","../node_modules/core-js/modules/es6.reflect.own-keys.js","../node_modules/core-js/modules/es6.reflect.prevent-extensions.js","../node_modules/core-js/modules/es6.reflect.set-prototype-of.js","../node_modules/core-js/modules/es6.reflect.set.js","../node_modules/core-js/modules/es6.regexp.constructor.js","../node_modules/core-js/modules/es6.regexp.flags.js","../node_modules/core-js/modules/es6.regexp.match.js","../node_modules/core-js/modules/es6.regexp.replace.js","../node_modules/core-js/modules/es6.regexp.search.js","../node_modules/core-js/modules/es6.regexp.split.js","../node_modules/core-js/modules/es6.regexp.to-string.js","../node_modules/core-js/modules/es6.set.js","../node_modules/core-js/modules/es6.string.anchor.js","../node_modules/core-js/modules/es6.string.big.js","../node_modules/core-js/modules/es6.string.blink.js","../node_modules/core-js/modules/es6.string.bold.js","../node_modules/core-js/modules/es6.string.code-point-at.js","../node_modules/core-js/modules/es6.string.ends-with.js","../node_modules/core-js/modules/es6.string.fixed.js","../node_modules/core-js/modules/es6.string.fontcolor.js","../node_modules/core-js/modules/es6.string.fontsize.js","../node_modules/core-js/modules/es6.string.from-code-point.js","../node_modules/core-js/modules/es6.string.includes.js","../node_modules/core-js/modules/es6.string.italics.js","../node_modules/core-js/modules/es6.string.iterator.js","../node_modules/core-js/modules/es6.string.link.js","../node_modules/core-js/modules/es6.string.raw.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/es6.string.small.js","../node_modules/core-js/modules/es6.string.starts-with.js","../node_modules/core-js/modules/es6.string.strike.js","../node_modules/core-js/modules/es6.string.sub.js","../node_modules/core-js/modules/es6.string.sup.js","../node_modules/core-js/modules/es6.string.trim.js","../node_modules/core-js/modules/es6.symbol.js","../node_modules/core-js/modules/es6.typed.array-buffer.js","../node_modules/core-js/modules/es6.typed.data-view.js","../node_modules/core-js/modules/es6.typed.float32-array.js","../node_modules/core-js/modules/es6.typed.float64-array.js","../node_modules/core-js/modules/es6.typed.int16-array.js","../node_modules/core-js/modules/es6.typed.int32-array.js","../node_modules/core-js/modules/es6.typed.int8-array.js","../node_modules/core-js/modules/es6.typed.uint16-array.js","../node_modules/core-js/modules/es6.typed.uint32-array.js","../node_modules/core-js/modules/es6.typed.uint8-array.js","../node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","../node_modules/core-js/modules/es6.weak-map.js","../node_modules/core-js/modules/es6.weak-set.js","../node_modules/core-js/modules/es7.array.includes.js","../node_modules/core-js/modules/es7.asap.js","../node_modules/core-js/modules/es7.error.is-error.js","../node_modules/core-js/modules/es7.map.to-json.js","../node_modules/core-js/modules/es7.math.iaddh.js","../node_modules/core-js/modules/es7.math.imulh.js","../node_modules/core-js/modules/es7.math.isubh.js","../node_modules/core-js/modules/es7.math.umulh.js","../node_modules/core-js/modules/es7.object.define-getter.js","../node_modules/core-js/modules/es7.object.define-setter.js","../node_modules/core-js/modules/es7.object.entries.js","../node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","../node_modules/core-js/modules/es7.object.lookup-getter.js","../node_modules/core-js/modules/es7.object.lookup-setter.js","../node_modules/core-js/modules/es7.object.values.js","../node_modules/core-js/modules/es7.observable.js","../node_modules/core-js/modules/es7.reflect.define-metadata.js","../node_modules/core-js/modules/es7.reflect.delete-metadata.js","../node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","../node_modules/core-js/modules/es7.reflect.get-metadata.js","../node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","../node_modules/core-js/modules/es7.reflect.get-own-metadata.js","../node_modules/core-js/modules/es7.reflect.has-metadata.js","../node_modules/core-js/modules/es7.reflect.has-own-metadata.js","../node_modules/core-js/modules/es7.reflect.metadata.js","../node_modules/core-js/modules/es7.set.to-json.js","../node_modules/core-js/modules/es7.string.at.js","../node_modules/core-js/modules/es7.string.match-all.js","../node_modules/core-js/modules/es7.string.pad-end.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.trim-left.js","../node_modules/core-js/modules/es7.string.trim-right.js","../node_modules/core-js/modules/es7.symbol.async-iterator.js","../node_modules/core-js/modules/es7.symbol.observable.js","../node_modules/core-js/modules/es7.system.global.js","../node_modules/core-js/modules/web.dom.iterable.js","../node_modules/core-js/modules/web.immediate.js","../node_modules/core-js/modules/web.timers.js","../node_modules/core-js/shim.js","../node_modules/eventtarget/EventTarget.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/sync-promise/dist/sync-promise-commonjs.js","../node_modules/typeson-registry/presets/sparse-undefined.js","../node_modules/typeson-registry/presets/structured-cloning-throwing.js","../node_modules/typeson-registry/presets/structured-cloning.js","../node_modules/typeson-registry/presets/undefined.js","../node_modules/typeson-registry/types/arraybuffer.js","../node_modules/typeson-registry/types/blob.js","../node_modules/typeson-registry/types/dataview.js","../node_modules/typeson-registry/types/date.js","../node_modules/typeson-registry/types/file.js","../node_modules/typeson-registry/types/filelist.js","../node_modules/typeson-registry/types/imagebitmap.js","../node_modules/typeson-registry/types/imagedata.js","../node_modules/typeson-registry/types/intl-types.js","../node_modules/typeson-registry/types/map.js","../node_modules/typeson-registry/types/primitive-objects.js","../node_modules/typeson-registry/types/regexp.js","../node_modules/typeson-registry/types/set.js","../node_modules/typeson-registry/types/special-numbers.js","../node_modules/typeson-registry/types/typed-arrays.js","../node_modules/typeson-registry/types/undefined.js","../node_modules/typeson-registry/types/user-object.js","../node_modules/typeson-registry/utils/array-from-iterator.js","../node_modules/typeson/typeson.js","../node_modules/unicode-9.0.0/Binary_Property/Expands_On_NFD/regex.js","../src/CFG.js","../src/DOMException.js","../src/DOMStringList.js","../src/Event.js","../src/IDBCursor.js","../src/IDBDatabase.js","../src/IDBFactory.js","../src/IDBIndex.js","../src/IDBKeyRange.js","../src/IDBObjectStore.js","../src/IDBRequest.js","../src/IDBTransaction.js","../src/IDBVersionChangeEvent.js","../src/Key.js","../src/Sca.js","../src/UnicodeIdentifiers.js","../src/node-UnicodeIdentifiers.js","../src/nodeWebSQL.js","../src/polyfill.js","../src/setGlobalVars.js","../src/util.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","dummyPlaceholder","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","O","key","value","Object","DEFINE_PROPERTY","writable","configurable","_babelPolyfill","String","prototype","padStart","padEnd","split","forEach","Array","Function","bind","chars","lookup","Uint8Array","charCodeAt","encode","arraybuffer","offset","bytes","undefined","byteLength","len","base64","substring","decode","encoded1","encoded2","encoded3","encoded4","bufferLength","p","ArrayBuffer","RegExp","escape","it","TypeError","cof","msg","UNSCOPABLES","ArrayProto","Constructor","name","forbiddenField","isObject","toObject","toIndex","toLength","copyWithin","target","start","to","from","end","arguments","count","Math","min","inc","aLen","index","endPos","forOf","iter","ITERATOR","result","push","toIObject","IS_INCLUDES","$this","el","fromIndex","ctx","IObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","callbackfn","that","val","res","aFunction","memo","isRight","isArray","SPECIES","original","C","constructor","speciesConstructor","invoke","arraySlice","slice","factories","construct","F","args","join","fn","partArgs","bound","concat","TAG","ARG","tryGet","T","B","callee","toString","dP","redefineAll","anInstance","defined","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","SIZE","getEntry","entry","_i","_f","k","getConstructor","wrapper","NAME","ADDER","iterable","_l","clear","data","delete","next","prev","v","has","get","def","setStrong","iterated","kind","_t","_k","classof","getWeak","anObject","createArrayMethod","$has","arrayFind","arrayFindIndex","id","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","store","set","splice","ufstore","$export","redefine","meta","fails","$iterDetect","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","Base","proto","fixMethod","KEY","b","entries","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","NEED","G","W","core","version","__e","$defineProperty","createDesc","object","c","apply","toPrimitive","hint","defineProperty","document","is","createElement","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","hide","type","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","S","IS_PROTO","P","IS_BIND","expProto","U","R","MATCH","re","exec","wks","SYMBOL","fns","strfn","rxfn","string","arg","ignoreCase","multiline","unicode","sticky","isArrayIter","getIterFn","BREAK","RETURN","iterator","iterFn","done","__g","hasOwnProperty","documentElement","setPrototypeOf","un","propertyIsEnumerable","Iterators","floor","isFinite","isRegExp","ret","descriptor","IteratorPrototype","LIBRARY","$iterCreate","getPrototypeOf","BUGGY","keys","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","SAFE_CLOSING","riter","skipClosing","safe","arr","$expm1","expm1","x","log1p","log","sign","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","onFreeze","Map","shared","getOrCreateMetadataMap","targetKey","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","MetadataKey","metadataMap","ordinaryGetOwnMetadata","ordinaryDefineOwnMetadata","MetadataValue","ordinaryOwnMetadataKeys","_","toMetaKey","map","macrotask","Observer","MutationObserver","WebKitMutationObserver","process","Promise","isNode","head","last","notify","flush","parent","domain","exit","enter","nextTick","toggle","node","createTextNode","observe","characterData","resolve","promise","then","task","$assign","assign","A","Symbol","K","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","Attributes","defineProperties","random","__defineSetter__","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getOwnPropertyNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","isEntries","Reflect","ownKeys","$parseFloat","parseFloat","$trim","trim","Infinity","str","charAt","$parseInt","parseInt","ws","hex","radix","test","path","pargs","holder","bitmap","enumerable","SRC","$toString","TPL","inspectSource","isFunction","regExp","replace","replacer","part","y","check","buggy","__proto__","tag","stat","uid","D","method","toInteger","TO_STRING","pos","searchString","createHTML","attribute","p1","toLowerCase","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","ceil","RangeError","spaces","space","non","ltrim","rtrim","exporter","ALIAS","FORCE","defer","channel","port","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","run","listener","event","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","max","isNaN","valueOf","$typed","$buffer","propertyDesc","same","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","$DP","$GOPD","$ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","strictToLength","SAME","number","toOffset","BYTES","validate","speciesFromList","list","fromList","addGetter","internal","_d","$from","mapfn","mapping","$of","TO_LOCALE_BUG","$toLocaleString","every","fill","filter","find","predicate","findIndex","indexOf","searchElement","includes","separator","reverse","middle","some","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","CLAMPED","ISNT_UINT8","GETTER","SETTER","TypedArray","TAC","ABV","TypedArrayPrototype","getter","setter","round","addElement","$offset","$length","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","BaseBuffer","abs","pow","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","m","eLen","eMax","eBias","rt","unpackIEEE754","nBits","NaN","unpackI32","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","numIndex","intIndex","_b","pack","conversion","validateArrayBufferArguments","numberLength","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Typed","TypedArrayConstructors","px","wksExt","$Symbol","USE_SYMBOL","getIteratorMethod","$re","$every","$filter","$find","forced","$forEach","STRICT","createProperty","$indexOf","NEGATIVE_ZERO","addToUnscopables","Arguments","$reduce","upTo","size","cloned","$some","$sort","now","Date","getTime","lz","num","toISOString","d","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toJSON","pv","TO_PRIMITIVE","DateProto","HAS_INSTANCE","FunctionProto","FProto","match","strong","sqrt","$acosh","acosh","Number","MAX_VALUE","asinh","$asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","EPSILON","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","hypot","value1","value2","div","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LN10","log2","sinh","E","tanh","trunc","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","digits","_isFinite","isInteger","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","aNumberValue","$toFixed","toFixed","ERROR","multiply","c2","divide","numToString","acc","x2","fractionDigits","z","$fails","$toPrecision","toPrecision","precision","$freeze","$getOwnPropertyDescriptor","$getPrototypeOf","$isExtensible","$isFrozen","$isSealed","$preventExtensions","$seal","Internal","GenericPromiseCapability","Wrapper","microtask","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","sameConstructor","isThenable","newPromiseCapability","PromiseCapability","reject","$$resolve","$$reject","perform","error","isReject","_n","chain","_c","_v","ok","_s","reaction","handler","fail","_h","onHandleUnhandled","onUnhandled","abrupt","console","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","err","onFulfilled","onRejected","catch","capability","all","remaining","$index","alreadyCalled","race","rApply","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","Enumerate","enumerate","getProto","receiver","setProto","V","existingDescriptor","ownDesc","$flags","$RegExp","re2","CORRECT_NEW","tiRE","piRE","fiU","flags","$match","regexp","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","LENGTH","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","add","$at","codePointAt","context","$endsWith","endsWith","endPosition","search","color","fromCharCode","$fromCodePoint","fromCodePoint","point","url","raw","callSite","tpl","$startsWith","startsWith","wksDefine","keyOf","enumKeys","_create","gOPNExt","$JSON","JSON","_stringify","stringify","HIDDEN","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","for","keyFor","useSetter","useSimple","$replacer","$isView","isView","final","viewS","viewT","init","InternalMap","each","weak","tmp","$WeakMap","freeze","$includes","asap","isError","iaddh","x0","x1","y0","y1","$x0","$x1","$y0","imulh","$u","$v","u0","v0","u1","v1","isubh","umulh","__defineGetter__","getOwnPropertyDescriptors","getDesc","__lookupGetter__","__lookupSetter__","$values","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","complete","$Observable","subscribe","observable","items","Observable","metadata","defineMetadata","metadataKey","metadataValue","deleteMetadata","Set","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","ordinaryGetMetadata","getMetadata","getOwnMetadataKeys","getOwnMetadata","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","at","getFlags","RegExpProto","$RegExpStringIterator","_r","matchAll","rx","$pad","TO_STRING_TAG","ArrayValues","collections","Collection","$task","partial","navigator","MSIE","userAgent","time","setInterval","copyEvent","ev","ShimCustomEvent","bubbles","cancelable","detail","ShimEvent","getListenersOptions","listeners","options","listenersByType","capture","stringifiedOptions","listenersByTypeOptions","obj","EventTarget","ShimDOMException","phases","NONE","CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","DOMException","WeakMap","evCfg","toStringTag","evInit","_ev","_evCfg","composed","initEvent","prop","props","preventDefault","_passive","defaultPrevented","stopImmediatePropagation","_stopImmediatePropagation","stopPropagation","_stopPropagation","_dispatched","initCustomEvent","addListener","listenerOptions","removeListener","hasListener","listenerType","handleEvent","arrStr","__setOptions","customOptions","_defaultSync","defaultSync","_extraProperties","extraProperties","legacyOutputDidListenersThrowFlag","_legacyOutputDidListenersThrowCheck","dispatchEvent","_dispatchEvent","setTarget","finishEventDispatch","eventPhase","currentTarget","_children","invokeDefaults","eventCopy","invokeCurrentListeners","_defaultListeners","continueEventDispatch","me","_lateListeners","_earlyListeners","__getParent","par","root","_listeners","child","pop","checkOnListeners","listOpts","dummyIPos","listenerObj","onListener","tryCatch","once","passive","removeEventListener","cb","triggerErrorEvent","triggerGlobalErrorEvent","useNodeImpl","ErrorEvent","errEv","message","filename","fileName","lineno","lineNumber","colno","columnNumber","__legacyOutputDidListenersThrowError","ShimEventTarget","EventTargetFactory","createInstance","exportObj","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","AsyncIterator","record","hasOwn","__await","unwrapped","enqueue","callInvokeWithMethodAndArg","previousPromise","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","GenStateSuspendedYield","return","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","iteratorSymbol","Op","toStringTagSymbol","inModule","runtime","regeneratorRuntime","NativeIteratorPrototype","Gp","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","isPromise","addReject","prom","SyncPromise","transist","FULFILLED","REJECTED","PENDING","prot","errBack","settle","rej","promises","newPromises","resolved","sparseArrays","testPlainObjects","stateObj","iterateUnsetNumeric","sparseUndefined","revive","checkDataCloneException","stringTag","isClosed","nodeType","insertBefore","Intl","Typeson","B64","b64","Blob","req","XMLHttpRequest","URL","createObjectURL","status","send","stringContents","responseText","replaceAsync","reader","FileReader","readAsText","dw","date","File","lastModified","FileList","fl","item","_files","ImageBitmap","bm","canvas","getContext","drawImage","toDataURL","img","onload","reviveAsync","createImageBitmap","ImageData","array","width","height","Uint8ClampedArray","hasConstructorOf","Collator","resolvedOptions","locale","DateTimeFormat","dtf","NumberFormat","nf","makeArray","StringObject","BooleanObject","Boolean","NumberObject","rexp","SpecialNumber","-Infinity","_global","typeName","Undefined","userObjects","isUserObject","catchCheck","Ctor","fnToString","isPlainObject","plainObjectReplacers","nonplainObjectReplacers","revivers","regTypes","types","opts","stringification","encapsulated","encapsulate","stringifySync","throwOnBadSyncType","sync","stringifyAsync","parse","text","reviver","parseSync","parseAsync","$types","$","checkPromises","promisesData","pd","promResults","promResult","newPromisesData","prData","keyPath","cyclic","parentObj","encaps","_encapsulate","isTypesonPromise","TypesonPromise","encaps2","keypath","$typeof","boolean","iterateIn","refIndex","refObjs","refKeys","isPlainObj","isArr","replaced","clone","ownKeysObj","kp","vl","plainObject","replacers","existing","replaceMethod","promisesDataRoot","encapsulateSync","encapsulateAsync","_revive","ignore$Types","keyPathResolutions","kpr","getByKeyPath","substr","reviveSync","register","typeSpecSets","typeSpec","typeId","spec","existingReplacer","Class","replacerObj","fallback","reviverObj","period","innerObj","typesonResolve","typesonReject","meth","promArr","CFG","validator","createNativeDOMException","createNonNativeDOMException","ShimNonNativeDOMException","logError","_CFG2","default","DEBUG","trace","isErrorOrDOMErrorOrDOMException","_typeof","findError","webSQLErrback","webSQLErr","createDOMException","sqlError","_CFG","codes","IndexSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","EncodingError","NotReadableError","UnknownError","ConstraintError","DataError","TransactionInactiveError","ReadOnlyError","VersionError","OperationError","NotAllowedError","legacyCodes","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","VALIDATION_ERR","TYPE_MISMATCH_ERR","SECURITY_ERR","NETWORK_ERR","ABORT_ERR","URL_MISMATCH_ERR","QUOTA_EXCEEDED_ERR","TIMEOUT_ERR","INVALID_NODE_TYPE_ERR","DATA_CLONE_ERR","_code","_name","_message","DummyDOMException","codeName","useNativeDOMException","cleanInterface","testObject","DOMStringList","_DOMStringList$protot","contains","_items","stringList","__createInstance","_length","addIndexes","sortList","thisArg","_defineProperty","_callee","_context","hasInstance","DOMStringListAlias","nonenumerableReadonly","nonenumerableWritable","createEvent","debug","_eventtarget","_util","util","isObj","IDBCursor","_IDBRequest","_IDBObjectStore","_DOMException","_IDBKeyRange","_IDBFactory","_IDBTransaction","_Key","Key","_Sca","Sca","_IDBIndex","IDBCursorAlias","__super","query","direction","keyColumnName","valueColumnName","defineReadonlyProperties","_IDBObjectStore2","__invalidStateIfDeleted","__indexSource","instanceOf","_IDBIndex2","_IDBTransaction2","__assertActive","transaction","range","convertValueToKeyRange","__key","__primaryKey","__store","__range","__req","IDBRequest","__source","__transaction","__keyColumnName","__valueColumnName","__keyOnly","__valueDecoder","__count","__prefetchedIndex","__multiEntryIndex","multiEntry","__unique","__sqlDirection","__lowerCached","lower","__upperCached","upper","__gotValue","_len","_key","__find","__findMultiEntry","__findBasic","primaryKey","tx","success","recordsToLoad","continueCall","quotedKeyColumnName","sqlQuote","quotedKey","sql","escapeStoreNameForSQL","__currentName","sqlValues","setSQLForKeyRange","op","executeSql","rows","__prefetchedData","__decode","sqlLIKEEscape","ct","rowItem","rowKey","findMultiEntryMatches","_rowItem","_rowKey","_matches","matchingKey","__onsuccess","__value","callback","__matchedKeys","encKey","unescapeSQLiteResponse","encVal","encPrimaryKey","__sourceOrEffectiveObjStoreDeleted","__invalidateCache","__continue","advanceContinue","advanceState","__advanceCount","convertValueToKeyRethrowingAndIfInvalid","cmpResult","cmp","__continueFinish","recordsToPreloadOnContinue","cursorPreloadPackSize","__readyState","__pushToQueue","cursorContinue","executeNextRequest","triggerSuccess","primKey","continuePrimaryKey","noErrors","encObjectStorePos","advance","enforceRange","update","valueToUpdate","addToQueue","clonedValue","__storingRecordObjectStore","request","__assertWritable","__createRequest","_me$__store$__validat","__validateKeyAndValueAndCloneValue","_me$__store$__validat2","_slicedToArray","evaluatedKey","__addToTransactionQueue","escapeSQLiteStatement","rowsAffected","__cursors","cursor","IDBCursorWithValue","IDBCursorWithValueAlias","_IDBCursor$__super","_len2","_key2","IDBDatabase","_Event","_DOMStringList","readonlyProperties","IDBDatabaseAlias","db","oldVersion","storeProperties","_this","__db","__closed","__oldVersion","__version","__name","__transactions","__objectStores","__objectStoreNames","_DOMStringList2","itemCopy","idbdb","objectStoreNames","__oldObjectStoreNames","createObjectStore","storeName","createOptions","__assertVersionChange","__versionTransaction","__assertNotFinishedObjectStoreMethod","convertToSequenceDOMString","isValidKeyPath","__pendingDelete","autoIncrement","autoInc","indexList","__createObjectStore","deleteObjectStore","__deleteObjectStore","__unblocking","storeNames","_this2","mode","isIterable","_toConsumableArray","__assertNotVersionChange","trans","__forceClose","on__abort","evt","__abortTransaction","processNextInConnectionQueue","removeFromQueue","queueItems","shift","origin","getOrigin","connectionQueue","_queueItems$","addRequestToConnectionQueue","triggerAnyVersionChangeAndBlockedEvents","openConnections","newVersion","connectionIsClosed","connection","connectionsClosed","_IDBVersionChangeEvent2","_syncPromise2","unblocking","getLatestCachedWebSQLVersion","websqlDBCache","curr","getLatestCachedWebSQLDB","cleanupDatabaseResources","__openDatabase","escapedDatabaseName","databaseDeleted","dbError","memoryDatabase","latestSQLiteDBCached","warn","_sqliteDB","_db","deleteDatabaseFiles","unlink","_path2","databaseBasePath","DEFAULT_DB_SIZE","tables","deleteTables","createSysDB","failure","sysDbCreateError","sysdb","sysDatabaseBasePath","addSQLiteExtension","systx","IDBFactory","second","encodedKey1","encodedKey2","decodedKey1","decodedKey2","_IDBVersionChangeEvent","_IDBDatabase","_syncPromise","_path","location","hasNullOrigin","checkOrigin","nameCounter","IDBFactoryAlias","modules","Event","ShimDOMStringList","utils","__connections","dbCreateError","calledDbCreateError","__error","__result","openDB","useMemoryDatabase","useDatabaseCache","finishRequest","_IDBDatabase2","sysdbFinishedCb","er","reportError","sqlSafeName","versionSet","__addNonRequestToTransactionQueue","finished","on__beforecomplete","__transFinishedCb","on__preabort","on__complete","currentTask","rollback","commit","readOnly","IDBOpenDBRequest","autoName","cacheDatabaseInstances","escapeDatabaseNameForSQLAndFiles","latestCachedVersion","readTransaction","sysReadTx","deleteDatabase","calledDBError","sysdbFinishedCbDelete","completeDatabaseDelete","key1","key2","webkitGetDatabaseNames","dbGetDatabaseNamesError","dbNames","dbName","connIdx","forceClose","conn","__setConnectionQueueOrigin","shimIndexedDB","IDBIndex","executeFetchIndexData","unboundedDisallowed","hasKey","opType","multiChecks","isCount","records","recordCount","escapedIndexNameForKeyCol","escapeIndexNameForSQLKeyColumn","encodedKey","_ret","row","isMultiEntryMatch","_record","buildFetchIndexDataSQL","nullDisallowed","hasRange","col","escapeIndexNameForSQL","objectStore","innerKey","convertedRange","_IDBCursor","IDBIndexAlias","indexProperties","__objectStore","__originalName","columnName","__keyPath","optionalParams","__multiEntry","unique","__deleted","cursors","__pendingName","newName","convertToDOMString","oldName","__indexes","indexNames","storeHandle","__storeHandles","oldIndexHandle","__indexHandles","colInfoToPreserveArr","indexName","__renameIndex","__updateIndexList","__pendingCreate","__errored","__clone","idx","__createIndex","indexHandle","applyIndex","addIndexEntry","indexKey","extractKeyValueDecodedFromValueUsingKeyPath","invalid","indexValues","__recreated","columnExists","__deleteIndex","deleted","__fetchIndexData","fetchArgs","openCursor","_arguments","openKeyCursor","_arguments2","getKey","getAll","_arguments3","getAllKeys","_arguments4","IDBKeyRange","escapedStoreNameSQL","escapedTmpStoreNameSQL","colNamesToPreserve","colInfo","colInfoToPreserve","listColInfoToPreserve","listColsToPreserve","addAnd","checkCached","encodedLowerKey","encodedUpperKey","hasLower","hasUpper","lowerOpen","upperOpen","only","IDBKeyRangeAlias","lowerConverted","upperConverted","roundTrip","__lower","__upper","__lowerOpen","__upperOpen","isKeyInRange","lowerBound","upperBound","IDBObjectStore","IDBObjectStoreAlias","__idbdb","__autoIncrement","__indexNames","__oldIndexNames","oldStore","oldHandle","newStore","storeHandles","encodedKeyPath","cursorUpdate","_clonedValue","checkKeyCouldBeInjectedIntoValue","__deriveKey","failCb","keyCloneThenSuccess","generateKeyForStore","injectKeyIntoValueUsingKeyPath","possiblyUpdateKeyGenerator","__insertData","encoded","clonedKeyOrCurrentNumber","paramMap","indexPromises","setIndexInfo","multiCheck","sqlStart","sqlEnd","insertSqlValues","insertSql","_me$__validateKeyAndV","_me$__validateKeyAndV2","ky","put","_me$__validateKeyAndV3","_me$__validateKeyAndV4","__overwrite","noOverwrite","insert","__get","sqlArr","__assertNotFinished","createIndex","optionalParameters","deleteIndex","doneFlagGetters","_classCallCheck","openListeners","IDBOpenDBRequestAlias","_this3","IDBTransaction","uniqueID","IDBTransactionAlias","__id","__active","__running","__requests","__mode","readonlyProp","__executeRequests","requestsFinished","__completed","__internal","__requestsFinished","__transactionFinished","__transactionEndCallback","q","addLateEventListener","addDefaultEventListener","__tx","objectStoreName","abort","errOrResult","reqEvt","__abortFinished","IDBVersionChangeEvent","__eventInitDict","padBase32Exponent","padBase32Mantissa","zeros","flipBase32","flipped","pow32","mantissa","exponent","roundToPrecision","whole","fraction","expansion","negate","getKeyType","isDate","isBinary","keyType","convertValueToKey","input","seen","convertValueToKeyValueDecoded","convertValueToMultiEntryKey","getCopyBytesHeldByBufferSource","fullKeys","_type","convertValueToMultiEntryKeyDecoded","extractKeyFromValueUsingKeyPath","evaluateKeyPathOnValue","evaluateKeyPathOnValueToDecodedValue","idntfr","isBlob","isFile","identifiers","identifier","lowerMatch","upperMatch","_encode","encodedEntry","collations","keyEntry","matches","nested","convertKeyToValue","inArray","_decode","getCurrentNumber","sqlFailCb","currNum","setCurrentNumber","successCb","MAX_ALLOWED_CURRENT_NUMBER","cn","signValues","key32","decimalIndex","significantDigitIndex","encodedItem","decoded","decodedItem","binary","typeson","_typeson2","ReferenceError","_typeson","_structuredCloningThrowing","_structuredCloningThrowing2","UnicodeIDStart","UnicodeIDContinue","_setGlobalVars","_nodeWebSQL","_UnicodeIdentifiers","UnicodeIdentifiers","win","openDatabase","_nodeWebSQL2","__setGlobalVars","idb","initialConfig","_setGlobalVars2","__setUnicodeIdentifiers","wrappedSQLiteDatabase","_SQLiteDatabase2","sqlBusyTimeout","configure","sqlTrace","sqlProfile","_custom","_SQLiteDatabase","nodeWebSQL","_custom2","polyfill","compoundKeyPolyfill","indexGet","indexGetKey","indexCursor","indexKeyCursor","storeGet","storeDelete","storeCursor","storeKeyCursor","requestResult","cursorPrimaryKey","cursorKey","cursorValue","encodeCompoundKey","encodeCompoundKeyPath","isCompoundKey","setInlineCompoundKey","removeInlineCompoundKey","compoundKeysPropertyName","propertySeparator","keySeparator","decodeCompoundKeyPath","propertySeparatorRegExp","decodeCompoundKey","validateKeyLength","setConfig","setGlobalVars","shim","propDesc","IDB","__useShim","setNonIDBGlobals","prefix","indexedDB","shimIDBFactory","fullIDLSupport","_IDBKeyRange2","_ref","_ref2","addNonIDBGlobals","replaceNonIDBGlobals","_polyfill2","__debug","__setConfig","__getConfig","_ref3","webkitIndexedDB","mozIndexedDB","oIndexedDB","msIndexedDB","poorIndexedDbSupport","MSStream","webkitIDBDatabase","webkitIDBTransaction","webkitIDBCursor","webkitIDBKeyRange","_polyfill","escapeNameForSQLiteIdentifier","unmatchedHighSurrogate","unmatchedLowSurrogate","sqlEscape","escapeDatabaseName","escapeNFDForDatabaseNames","_regex2","expandable","databaseCharacterEscapeList","n0","databaseNameLengthLimit","unescapeDatabaseNameForSQLAndFiles","unescapeDatabaseName","esc","lowSurr","highSurr","upperCase","Clss","getDate","isIdentifier","IdentifierStart","UnicodeEscapeSequence","IdentifierPart","isValidKeyPathString","keyPathString","kpp","treatNullAs","ToString","_regex"],"mappings":"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","file":"indexeddbshim-UnicodeIdentifiers-node.min.js","sourceRoot":"http://nparashuram.com/IndexedDBShim/dist/","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(i+3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})();\n","require('../../modules/core.regexp.escape');\nmodule.exports = require('../../modules/_core').RegExp.escape;","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","var cof = require('./_cof');\nmodule.exports = function(it, msg){\n if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);\n return +it;\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","module.exports = function(it, Constructor, name, forbiddenField){\n if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object')\n , toIndex = require('./_to-index')\n , toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){\n var O = toObject(this)\n , len = toLength(O.length)\n , to = toIndex(target, len)\n , from = toIndex(start, len)\n , end = arguments.length > 2 ? arguments[2] : undefined\n , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)\n , inc = 1;\n if(from < to && to < from + count){\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while(count-- > 0){\n if(from in O)O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object')\n , toIndex = require('./_to-index')\n , toLength = require('./_to-length');\nmodule.exports = function fill(value /*, start = 0, end = @length */){\n var O = toObject(this)\n , length = toLength(O.length)\n , aLen = arguments.length\n , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)\n , end = aLen > 2 ? arguments[2] : undefined\n , endPos = end === undefined ? length : toIndex(end, length);\n while(endPos > index)O[index++] = value;\n return O;\n};","var forOf = require('./_for-of');\n\nmodule.exports = function(iter, ITERATOR){\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","var aFunction = require('./_a-function')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , toLength = require('./_to-length');\n\nmodule.exports = function(that, callbackfn, aLen, memo, isRight){\n aFunction(callbackfn);\n var O = toObject(that)\n , self = IObject(O)\n , length = toLength(O.length)\n , index = isRight ? length - 1 : 0\n , i = isRight ? -1 : 1;\n if(aLen < 2)for(;;){\n if(index in self){\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if(isRight ? index < 0 : length <= index){\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for(;isRight ? index >= 0 : length > index; index += i)if(index in self){\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","'use strict';\nvar aFunction = require('./_a-function')\n , isObject = require('./_is-object')\n , invoke = require('./_invoke')\n , arraySlice = [].slice\n , factories = {};\n\nvar construct = function(F, len, args){\n if(!(len in factories)){\n for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /*, args... */){\n var fn = aFunction(this)\n , partArgs = arraySlice.call(arguments, 1);\n var bound = function(/* args... */){\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if(isObject(fn.prototype))bound.prototype = fn.prototype;\n return bound;\n};","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(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(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","'use strict';\nvar dP = require('./_object-dp').f\n , create = require('./_object-create')\n , redefineAll = require('./_redefine-all')\n , ctx = require('./_ctx')\n , anInstance = require('./_an-instance')\n , defined = require('./_defined')\n , forOf = require('./_for-of')\n , $iterDefine = require('./_iter-define')\n , step = require('./_iter-step')\n , setSpecies = require('./_set-species')\n , DESCRIPTORS = require('./_descriptors')\n , fastKey = require('./_meta').fastKey\n , SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n anInstance(that, C, NAME, '_i');\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n anInstance(this, C, 'forEach');\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)dP(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof')\n , from = require('./_array-from-iterable');\nmodule.exports = function(NAME){\n return function toJSON(){\n if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};","'use strict';\nvar redefineAll = require('./_redefine-all')\n , getWeak = require('./_meta').getWeak\n , anObject = require('./_an-object')\n , isObject = require('./_is-object')\n , anInstance = require('./_an-instance')\n , forOf = require('./_for-of')\n , createArrayMethod = require('./_array-methods')\n , $has = require('./_has')\n , arrayFind = createArrayMethod(5)\n , arrayFindIndex = createArrayMethod(6)\n , id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function(that){\n return that._l || (that._l = new UncaughtFrozenStore);\n};\nvar UncaughtFrozenStore = function(){\n this.a = [];\n};\nvar findUncaughtFrozen = function(store, key){\n return arrayFind(store.a, function(it){\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function(key){\n var entry = findUncaughtFrozen(this, key);\n if(entry)return entry[1];\n },\n has: function(key){\n return !!findUncaughtFrozen(this, key);\n },\n set: function(key, value){\n var entry = findUncaughtFrozen(this, key);\n if(entry)entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function(key){\n var index = arrayFindIndex(this.a, function(it){\n return it[0] === key;\n });\n if(~index)this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n anInstance(that, C, NAME, '_i');\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function(key){\n if(!isObject(key))return false;\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this)['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key){\n if(!isObject(key))return false;\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var data = getWeak(anObject(key), true);\n if(data === true)uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};","'use strict';\nvar global = require('./_global')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , redefineAll = require('./_redefine-all')\n , meta = require('./_meta')\n , forOf = require('./_for-of')\n , anInstance = require('./_an-instance')\n , isObject = require('./_is-object')\n , fails = require('./_fails')\n , $iterDetect = require('./_iter-detect')\n , setToStringTag = require('./_set-to-string-tag')\n , inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n var fixMethod = function(KEY){\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function(a){\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a){\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a){\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if(typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C\n // early implementations not supports chaining\n , HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n , THROWS_ON_PRIMITIVES = fails(function(){ instance.has(1); })\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n , ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n , BUGGY_ZERO = !IS_WEAK && fails(function(){\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C()\n , index = 5;\n while(index--)$instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if(!ACCEPT_ITERABLES){ \n C = wrapper(function(target, iterable){\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base, target, C);\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if(BUGGY_ZERO || HASNT_CHAINING)fixMethod(ADDER);\n // weak collections should not contains .clear method\n if(IS_WEAK && proto.clear)delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","'use strict';\nvar anObject = require('./_an-object')\n , toPrimitive = require('./_to-primitive')\n , NUMBER = 'number';\n\nmodule.exports = function(hint){\n if(hint !== 'string' && hint !== NUMBER && hint !== 'default')throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var MATCH = require('./_wks')('match');\nmodule.exports = function(KEY){\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch(e){\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch(f){ /* empty */ }\n } return true;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","'use strict';\nvar hide = require('./_hide')\n , redefine = require('./_redefine')\n , fails = require('./_fails')\n , defined = require('./_defined')\n , wks = require('./_wks');\n\nmodule.exports = function(KEY, length, exec){\n var SYMBOL = wks(KEY)\n , fns = exec(defined, SYMBOL, ''[KEY])\n , strfn = fns[0]\n , rxfn = fns[1];\n if(fails(function(){\n var O = {};\n O[SYMBOL] = function(){ return 7; };\n return ''[KEY](O) != 7;\n })){\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function(string, arg){ return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function(string){ return rxfn.call(string, this); }\n );\n }\n};","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function(){\n var that = anObject(this)\n , result = '';\n if(that.global) result += 'g';\n if(that.ignoreCase) result += 'i';\n if(that.multiline) result += 'm';\n if(that.unicode) result += 'u';\n if(that.sticky) result += 'y';\n return result;\n};","var ctx = require('./_ctx')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , anObject = require('./_an-object')\n , toLength = require('./_to-length')\n , getIterFn = require('./core.get-iterator-method')\n , BREAK = {}\n , RETURN = {};\nvar exports = module.exports = function(iterable, entries, fn, that, ITERATOR){\n var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator, result;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if(result === BREAK || result === RETURN)return result;\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n result = call(iterator, f, step.value, entries);\n if(result === BREAK || result === RETURN)return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","module.exports = require('./_global').document && document.documentElement;","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function(that, target, C){\n var P, S = target.constructor;\n if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){\n setPrototypeOf(that, P);\n } return that;\n};","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function(fn, args, that){\n var un = that === undefined;\n switch(args.length){\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object')\n , floor = Math.floor;\nmodule.exports = function isInteger(it){\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object')\n , cof = require('./_cof')\n , MATCH = require('./_wks')('match');\nmodule.exports = function(it){\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};","'use strict';\nvar LIBRARY = require('./_library')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , hide = require('./_hide')\n , has = require('./_has')\n , Iterators = require('./_iterators')\n , $iterCreate = require('./_iter-create')\n , setToStringTag = require('./_set-to-string-tag')\n , getPrototypeOf = require('./_object-gpo')\n , ITERATOR = require('./_wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n , methods, key, IteratorPrototype;\n // Fix native\n if($anyNative){\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n if(IteratorPrototype !== Object.prototype){\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};","module.exports = function(done, value){\n return {value: value, done: !!done};\n};","module.exports = {};","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};","module.exports = false;","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x){\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x){\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x){\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\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 setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\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 setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};","var Map = require('./es6.map')\n , $export = require('./_export')\n , shared = require('./_shared')('metadata')\n , store = shared.store || (shared.store = new (require('./es6.weak-map')));\n\nvar getOrCreateMetadataMap = function(target, targetKey, create){\n var targetMetadata = store.get(target);\n if(!targetMetadata){\n if(!create)return undefined;\n store.set(target, targetMetadata = new Map);\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if(!keyMetadata){\n if(!create)return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map);\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function(MetadataKey, O, P){\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function(MetadataKey, O, P){\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function(target, targetKey){\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false)\n , keys = [];\n if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });\n return keys;\n};\nvar toMetaKey = function(it){\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function(O){\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};","var global = require('./_global')\n , macrotask = require('./_task').set\n , Observer = global.MutationObserver || global.WebKitMutationObserver\n , process = global.process\n , Promise = global.Promise\n , isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function(){\n var head, last, notify;\n\n var flush = function(){\n var parent, fn;\n if(isNode && (parent = process.domain))parent.exit();\n while(head){\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch(e){\n if(head)notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if(parent)parent.enter();\n };\n\n // Node.js\n if(isNode){\n notify = function(){\n process.nextTick(flush);\n };\n // browsers with MutationObserver\n } else if(Observer){\n var toggle = true\n , node = document.createTextNode('');\n new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new\n notify = function(){\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if(Promise && Promise.resolve){\n var promise = Promise.resolve();\n notify = function(){\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function(){\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function(fn){\n var task = {fn: fn, next: undefined};\n if(last)last.next = task;\n if(!head){\n head = task;\n notify();\n } last = task;\n };\n};","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object')\n , dPs = require('./_object-dps')\n , enumBugKeys = require('./_enum-bug-keys')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , Empty = function(){ /* empty */ }\n , PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe')\n , i = enumBugKeys.length\n , lt = '<'\n , gt = '>'\n , iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n var result;\n if(O !== null){\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty;\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* 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};","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};","// Forced replacement prototype accessors methods\nmodule.exports = require('./_library')|| !require('./_fails')(function(){\n var K = Math.random();\n // In FF throws only define methods\n __defineSetter__.call(null, K, function(){ /* empty */});\n delete require('./_global')[K];\n});","var pIE = require('./_object-pie')\n , createDesc = require('./_property-desc')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){\n O = toIObject(O);\n P = toPrimitive(P, true);\n if(IE8_DOM_DEFINE)try {\n return gOPD(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n};","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal')\n , hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){\n return $keys(O, hiddenKeys);\n};","exports.f = Object.getOwnPropertySymbols;","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","exports.f = {}.propertyIsEnumerable;","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject')\n , isEnum = require('./_object-pie').f;\nmodule.exports = function(isEntries){\n return function(it){\n var O = toIObject(it)\n , keys = getKeys(O)\n , length = keys.length\n , i = 0\n , result = []\n , key;\n while(length > i)if(isEnum.call(O, key = keys[i++])){\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn')\n , gOPS = require('./_object-gops')\n , anObject = require('./_an-object')\n , Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it){\n var keys = gOPN.f(anObject(it))\n , getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};","var $parseFloat = require('./_global').parseFloat\n , $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str){\n var string = $trim(String(str), 3)\n , result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;","var $parseInt = require('./_global').parseInt\n , $trim = require('./_string-trim').trim\n , ws = require('./_string-ws')\n , hex = /^[\\-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;","'use strict';\nvar path = require('./_path')\n , invoke = require('./_invoke')\n , aFunction = require('./_a-function');\nmodule.exports = function(/* ...pargs */){\n var fn = aFunction(this)\n , length = arguments.length\n , pargs = Array(length)\n , i = 0\n , _ = path._\n , holder = false;\n while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;\n return function(/* ...args */){\n var that = this\n , aLen = arguments.length\n , j = 0, k = 0, args;\n if(!holder && !aLen)return invoke(fn, pargs, that);\n args = pargs.slice();\n if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];\n while(aLen > k)args.push(arguments[k++]);\n return invoke(fn, args, that);\n };\n};","module.exports = require('./_global');","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var redefine = require('./_redefine');\nmodule.exports = function(target, src, safe){\n for(var key in src)redefine(target, key, src[key], safe);\n return target;\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(regExp, replace){\n var replacer = replace === Object(replace) ? function(part){\n return replace[part];\n } : replace;\n return function(it){\n return String(it).replace(regExp, replacer);\n };\n};","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y){\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};","'use strict';\nvar global = require('./_global')\n , dP = require('./_object-dp')\n , DESCRIPTORS = require('./_descriptors')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(KEY){\n var C = global[KEY];\n if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {\n configurable: true,\n get: function(){ return this; }\n });\n};","var def = require('./_object-dp').f\n , has = require('./_has')\n , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object')\n , aFunction = require('./_a-function')\n , SPECIES = require('./_wks')('species');\nmodule.exports = function(O, D){\n var C = anObject(O).constructor, S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};","var fails = require('./_fails');\n\nmodule.exports = function(method, arg){\n return !!method && fails(function(){\n arg ? method.call(null, function(){}, 1) : method.call(null);\n });\n};","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp')\n , defined = require('./_defined');\n\nmodule.exports = function(that, searchString, NAME){\n if(isRegExp(searchString))throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};","var $export = require('./_export')\n , fails = require('./_fails')\n , defined = require('./_defined')\n , quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function(string, tag, attribute, value) {\n var S = String(defined(string))\n , p1 = '<' + tag;\n if(attribute !== '')p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function(NAME, exec){\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function(){\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export')\n , defined = require('./_defined')\n , fails = require('./_fails')\n , spaces = require('./_string-ws')\n , space = '[' + spaces + ']'\n , non = '\\u200b\\u0085'\n , ltrim = RegExp('^' + space + space + '*')\n , rtrim = RegExp(space + space + '*$');\n\nvar exporter = function(KEY, exec, ALIAS){\n var exp = {};\n var FORCE = fails(function(){\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if(ALIAS)exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function(string, TYPE){\n string = String(defined(string));\n if(TYPE & 1)string = string.replace(ltrim, '');\n if(TYPE & 2)string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';","var ctx = require('./_ctx')\n , invoke = require('./_invoke')\n , html = require('./_html')\n , cel = require('./_dom-create')\n , global = require('./_global')\n , process = global.process\n , setTask = global.setImmediate\n , clearTask = global.clearImmediate\n , MessageChannel = global.MessageChannel\n , counter = 0\n , queue = {}\n , ONREADYSTATECHANGE = 'onreadystatechange'\n , defer, channel, port;\nvar run = function(){\n var id = +this;\n if(queue.hasOwnProperty(id)){\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function(event){\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif(!setTask || !clearTask){\n setTask = function setImmediate(fn){\n var args = [], i = 1;\n while(arguments.length > i)args.push(arguments[i++]);\n queue[++counter] = function(){\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id){\n delete queue[id];\n };\n // Node.js 0.8-\n if(require('./_cof')(process) == 'process'){\n defer = function(id){\n process.nextTick(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if(MessageChannel){\n channel = new MessageChannel;\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){\n defer = function(id){\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if(ONREADYSTATECHANGE in cel('script')){\n defer = function(id){\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function(id){\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","'use strict';\nif(require('./_descriptors')){\n var LIBRARY = require('./_library')\n , global = require('./_global')\n , fails = require('./_fails')\n , $export = require('./_export')\n , $typed = require('./_typed')\n , $buffer = require('./_typed-buffer')\n , ctx = require('./_ctx')\n , anInstance = require('./_an-instance')\n , propertyDesc = require('./_property-desc')\n , hide = require('./_hide')\n , redefineAll = require('./_redefine-all')\n , toInteger = require('./_to-integer')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , same = require('./_same-value')\n , classof = require('./_classof')\n , isObject = require('./_is-object')\n , toObject = require('./_to-object')\n , isArrayIter = require('./_is-array-iter')\n , create = require('./_object-create')\n , getPrototypeOf = require('./_object-gpo')\n , gOPN = require('./_object-gopn').f\n , getIterFn = require('./core.get-iterator-method')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , createArrayMethod = require('./_array-methods')\n , createArrayIncludes = require('./_array-includes')\n , speciesConstructor = require('./_species-constructor')\n , ArrayIterators = require('./es6.array.iterator')\n , Iterators = require('./_iterators')\n , $iterDetect = require('./_iter-detect')\n , setSpecies = require('./_set-species')\n , arrayFill = require('./_array-fill')\n , arrayCopyWithin = require('./_array-copy-within')\n , $DP = require('./_object-dp')\n , $GOPD = require('./_object-gopd')\n , dP = $DP.f\n , gOPD = $GOPD.f\n , RangeError = global.RangeError\n , TypeError = global.TypeError\n , Uint8Array = global.Uint8Array\n , ARRAY_BUFFER = 'ArrayBuffer'\n , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER\n , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'\n , PROTOTYPE = 'prototype'\n , ArrayProto = Array[PROTOTYPE]\n , $ArrayBuffer = $buffer.ArrayBuffer\n , $DataView = $buffer.DataView\n , arrayForEach = createArrayMethod(0)\n , arrayFilter = createArrayMethod(2)\n , arraySome = createArrayMethod(3)\n , arrayEvery = createArrayMethod(4)\n , arrayFind = createArrayMethod(5)\n , arrayFindIndex = createArrayMethod(6)\n , arrayIncludes = createArrayIncludes(true)\n , arrayIndexOf = createArrayIncludes(false)\n , arrayValues = ArrayIterators.values\n , arrayKeys = ArrayIterators.keys\n , arrayEntries = ArrayIterators.entries\n , arrayLastIndexOf = ArrayProto.lastIndexOf\n , arrayReduce = ArrayProto.reduce\n , arrayReduceRight = ArrayProto.reduceRight\n , arrayJoin = ArrayProto.join\n , arraySort = ArrayProto.sort\n , arraySlice = ArrayProto.slice\n , arrayToString = ArrayProto.toString\n , arrayToLocaleString = ArrayProto.toLocaleString\n , ITERATOR = wks('iterator')\n , TAG = wks('toStringTag')\n , TYPED_CONSTRUCTOR = uid('typed_constructor')\n , DEF_CONSTRUCTOR = uid('def_constructor')\n , ALL_CONSTRUCTORS = $typed.CONSTR\n , TYPED_ARRAY = $typed.TYPED\n , VIEW = $typed.VIEW\n , WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function(O, length){\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function(){\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){\n new Uint8Array(1).set({});\n });\n\n var strictToLength = function(it, SAME){\n if(it === undefined)throw TypeError(WRONG_LENGTH);\n var number = +it\n , length = toLength(it);\n if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);\n return length;\n };\n\n var toOffset = function(it, BYTES){\n var offset = toInteger(it);\n if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function(it){\n if(isObject(it) && TYPED_ARRAY in it)return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function(C, length){\n if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function(O, list){\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function(C, list){\n var index = 0\n , length = list.length\n , result = allocate(C, length);\n while(length > index)result[index] = list[index++];\n return result;\n };\n\n var addGetter = function(it, key, internal){\n dP(it, key, {get: function(){ return this._d[internal]; }});\n };\n\n var $from = function from(source /*, mapfn, thisArg */){\n var O = toObject(source)\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , iterFn = getIterFn(O)\n , i, length, values, result, step, iterator;\n if(iterFn != undefined && !isArrayIter(iterFn)){\n for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){\n values.push(step.value);\n } O = values;\n }\n if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);\n for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/*...items*/){\n var index = 0\n , length = arguments.length\n , result = allocate(this, length);\n while(length > index)result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString(){\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /*, end */){\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /*, thisArg */){\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /*, thisArg */){\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /*, thisArg */){\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /*, thisArg */){\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /*, thisArg */){\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /*, fromIndex */){\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /*, fromIndex */){\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator){ // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /*, thisArg */){\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse(){\n var that = this\n , length = validate(that).length\n , middle = Math.floor(length / 2)\n , index = 0\n , value;\n while(index < middle){\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /*, thisArg */){\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn){\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end){\n var O = validate(this)\n , length = O.length\n , $begin = toIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end){\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /*, offset */){\n validate(this);\n var offset = toOffset(arguments[1], 1)\n , length = this.length\n , src = toObject(arrayLike)\n , len = toLength(src.length)\n , index = 0;\n if(len + offset > length)throw RangeError(WRONG_LENGTH);\n while(index < len)this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries(){\n return arrayEntries.call(validate(this));\n },\n keys: function keys(){\n return arrayKeys.call(validate(this));\n },\n values: function values(){\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function(target, key){\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key){\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc){\n if(isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ){\n target[key] = desc.value;\n return target;\n } else return dP(target, key, desc);\n };\n\n if(!ALL_CONSTRUCTORS){\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if(fails(function(){ arrayToString.call({}); })){\n arrayToString = arrayToLocaleString = function toString(){\n return arrayJoin.call(this);\n }\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function(){ /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function(){ return this[TYPED_ARRAY]; }\n });\n\n module.exports = function(KEY, BYTES, wrapper, CLAMPED){\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'\n , ISNT_UINT8 = NAME != 'Uint8Array'\n , GETTER = 'get' + KEY\n , SETTER = 'set' + KEY\n , TypedArray = global[NAME]\n , Base = TypedArray || {}\n , TAC = TypedArray && getPrototypeOf(TypedArray)\n , FORCED = !TypedArray || !$typed.ABV\n , O = {}\n , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function(that, index){\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function(that, index, value){\n var data = that._d;\n if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function(that, index){\n dP(that, index, {\n get: function(){\n return getter(this, index);\n },\n set: function(value){\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if(FORCED){\n TypedArray = wrapper(function(that, data, $offset, $length){\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0\n , offset = 0\n , buffer, byteLength, length, klass;\n if(!isObject(data)){\n length = strictToLength(data, true)\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if($length === undefined){\n if($len % BYTES)throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if(byteLength < 0)throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if(TYPED_ARRAY in data){\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while(index < length)addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if(!$iterDetect(function(iter){\n // V8 works with iterators, but fails in many other cases\n // https://code.google.com/p/v8/issues/detail?id=4552\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)){\n TypedArray = wrapper(function(that, data, $offset, $length){\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));\n if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if(TYPED_ARRAY in data)return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){\n if(!(key in TypedArray))hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR]\n , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)\n , $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){\n dP(TypedArrayPrototype, TAG, {\n get: function(){ return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES,\n from: $from,\n of: $of\n });\n\n if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});\n\n $export($export.P + $export.F * fails(function(){\n new TypedArray(1).slice();\n }), NAME, {slice: $slice});\n\n $export($export.P + $export.F * (fails(function(){\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()\n }) || !fails(function(){\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, {toLocaleString: $toLocaleString});\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function(){ /* empty */ };","'use strict';\nvar global = require('./_global')\n , DESCRIPTORS = require('./_descriptors')\n , LIBRARY = require('./_library')\n , $typed = require('./_typed')\n , hide = require('./_hide')\n , redefineAll = require('./_redefine-all')\n , fails = require('./_fails')\n , anInstance = require('./_an-instance')\n , toInteger = require('./_to-integer')\n , toLength = require('./_to-length')\n , gOPN = require('./_object-gopn').f\n , dP = require('./_object-dp').f\n , arrayFill = require('./_array-fill')\n , setToStringTag = require('./_set-to-string-tag')\n , ARRAY_BUFFER = 'ArrayBuffer'\n , DATA_VIEW = 'DataView'\n , PROTOTYPE = 'prototype'\n , WRONG_LENGTH = 'Wrong length!'\n , WRONG_INDEX = 'Wrong index!'\n , $ArrayBuffer = global[ARRAY_BUFFER]\n , $DataView = global[DATA_VIEW]\n , Math = global.Math\n , RangeError = global.RangeError\n , Infinity = global.Infinity\n , BaseBuffer = $ArrayBuffer\n , abs = Math.abs\n , pow = Math.pow\n , floor = Math.floor\n , log = Math.log\n , LN2 = Math.LN2\n , BUFFER = 'buffer'\n , BYTE_LENGTH = 'byteLength'\n , BYTE_OFFSET = 'byteOffset'\n , $BUFFER = DESCRIPTORS ? '_b' : BUFFER\n , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH\n , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar packIEEE754 = function(value, mLen, nBytes){\n var buffer = Array(nBytes)\n , eLen = nBytes * 8 - mLen - 1\n , eMax = (1 << eLen) - 1\n , eBias = eMax >> 1\n , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0\n , i = 0\n , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0\n , e, m, c;\n value = abs(value)\n if(value != value || value === Infinity){\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if(value * (c = pow(2, -e)) < 1){\n e--;\n c *= 2;\n }\n if(e + eBias >= 1){\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if(value * c >= 2){\n e++;\n c /= 2;\n }\n if(e + eBias >= eMax){\n m = 0;\n e = eMax;\n } else if(e + eBias >= 1){\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n};\nvar unpackIEEE754 = function(buffer, mLen, nBytes){\n var eLen = nBytes * 8 - mLen - 1\n , eMax = (1 << eLen) - 1\n , eBias = eMax >> 1\n , nBits = eLen - 7\n , i = nBytes - 1\n , s = buffer[i--]\n , e = s & 127\n , m;\n s >>= 7;\n for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if(e === 0){\n e = 1 - eBias;\n } else if(e === eMax){\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n};\n\nvar unpackI32 = function(bytes){\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n};\nvar packI8 = function(it){\n return [it & 0xff];\n};\nvar packI16 = function(it){\n return [it & 0xff, it >> 8 & 0xff];\n};\nvar packI32 = function(it){\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n};\nvar packF64 = function(it){\n return packIEEE754(it, 52, 8);\n};\nvar packF32 = function(it){\n return packIEEE754(it, 23, 4);\n};\n\nvar addGetter = function(C, key, internal){\n dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});\n};\n\nvar get = function(view, bytes, index, isLittleEndian){\n var numIndex = +index\n , intIndex = toInteger(numIndex);\n if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b\n , start = intIndex + view[$OFFSET]\n , pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n};\nvar set = function(view, bytes, index, conversion, value, isLittleEndian){\n var numIndex = +index\n , intIndex = toInteger(numIndex);\n if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b\n , start = intIndex + view[$OFFSET]\n , pack = conversion(+value);\n for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n};\n\nvar validateArrayBufferArguments = function(that, length){\n anInstance(that, $ArrayBuffer, ARRAY_BUFFER);\n var numberLength = +length\n , byteLength = toLength(numberLength);\n if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);\n return byteLength;\n};\n\nif(!$typed.ABV){\n $ArrayBuffer = function ArrayBuffer(length){\n var byteLength = validateArrayBufferArguments(this, length);\n this._b = arrayFill.call(Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength){\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH]\n , offset = toInteger(byteOffset);\n if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if(DESCRIPTORS){\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset){\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset){\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /*, littleEndian */){\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /*, littleEndian */){\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /*, littleEndian */){\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /*, littleEndian */){\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /*, littleEndian */){\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /*, littleEndian */){\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value){\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value){\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /*, littleEndian */){\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /*, littleEndian */){\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /*, littleEndian */){\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /*, littleEndian */){\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if(!fails(function(){\n new $ArrayBuffer; // eslint-disable-line no-new\n }) || !fails(function(){\n new $ArrayBuffer(.5); // eslint-disable-line no-new\n })){\n $ArrayBuffer = function ArrayBuffer(length){\n return new BaseBuffer(validateArrayBufferArguments(this, length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){\n if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);\n };\n if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2))\n , $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value){\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value){\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;","var global = require('./_global')\n , hide = require('./_hide')\n , uid = require('./_uid')\n , TYPED = uid('typed_array')\n , VIEW = uid('view')\n , ABV = !!(global.ArrayBuffer && global.DataView)\n , CONSTR = ABV\n , i = 0, l = 9, Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile(i < l){\n if(Typed = global[TypedArrayConstructors[i++]]){\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , core = require('./_core')\n , LIBRARY = require('./_library')\n , wksExt = require('./_wks-ext')\n , defineProperty = require('./_object-dp').f;\nmodule.exports = function(name){\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});\n};","exports.f = require('./_wks');","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var classof = require('./_classof')\n , ITERATOR = require('./_wks')('iterator')\n , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};","// https://github.com/benjamingr/RexExp.escape\nvar $export = require('./_export')\n , $re = require('./_replacer')(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\n$export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', {copyWithin: require('./_array-copy-within')});\n\nrequire('./_add-to-unscopables')('copyWithin');","'use strict';\nvar $export = require('./_export')\n , $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */){\n return $every(this, callbackfn, arguments[1]);\n }\n});","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', {fill: require('./_array-fill')});\n\nrequire('./_add-to-unscopables')('fill');","'use strict';\nvar $export = require('./_export')\n , $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */){\n return $filter(this, callbackfn, arguments[1]);\n }\n});","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(6)\n , KEY = 'findIndex'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","'use strict';\nvar $export = require('./_export')\n , $forEach = require('./_array-methods')(0)\n , STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */){\n return $forEach(this, callbackfn, arguments[1]);\n }\n});","'use strict';\nvar ctx = require('./_ctx')\n , $export = require('./_export')\n , toObject = require('./_to-object')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , toLength = require('./_to-length')\n , createProperty = require('./_create-property')\n , getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n var O = toObject(arrayLike)\n , C = typeof this == 'function' ? this : Array\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , index = 0\n , iterFn = getIterFn(O)\n , length, result, step, iterator;\n if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for(result = new C(length); length > index; index++){\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export')\n , $indexOf = require('./_array-includes')(false)\n , $native = [].indexOf\n , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /*, fromIndex = 0 */){\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', {isArray: require('./_is-array')});","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export')\n , toIObject = require('./_to-iobject')\n , arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator){\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});","'use strict';\nvar $export = require('./_export')\n , toIObject = require('./_to-iobject')\n , toInteger = require('./_to-integer')\n , toLength = require('./_to-length')\n , $native = [].lastIndexOf\n , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){\n // convert -0 to +0\n if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;\n var O = toIObject(this)\n , length = toLength(O.length)\n , index = length - 1;\n if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));\n if(index < 0)index = length + index;\n for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;\n return -1;\n }\n});","'use strict';\nvar $export = require('./_export')\n , $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */){\n return $map(this, callbackfn, arguments[1]);\n }\n});","'use strict';\nvar $export = require('./_export')\n , createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function(){\n function F(){}\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */){\n var index = 0\n , aLen = arguments.length\n , result = new (typeof this == 'function' ? this : Array)(aLen);\n while(aLen > index)createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});","'use strict';\nvar $export = require('./_export')\n , $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */){\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});","'use strict';\nvar $export = require('./_export')\n , $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */){\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});","'use strict';\nvar $export = require('./_export')\n , html = require('./_html')\n , cof = require('./_cof')\n , toIndex = require('./_to-index')\n , toLength = require('./_to-length')\n , arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function(){\n if(html)arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end){\n var len = toLength(this.length)\n , klass = cof(this);\n end = end === undefined ? len : end;\n if(klass == 'Array')return arraySlice.call(this, begin, end);\n var start = toIndex(begin, len)\n , upTo = toIndex(end, len)\n , size = toLength(upTo - start)\n , cloned = Array(size)\n , i = 0;\n for(; i < size; i++)cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});","'use strict';\nvar $export = require('./_export')\n , $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */){\n return $some(this, callbackfn, arguments[1]);\n }\n});","'use strict';\nvar $export = require('./_export')\n , aFunction = require('./_a-function')\n , toObject = require('./_to-object')\n , fails = require('./_fails')\n , $sort = [].sort\n , test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function(){\n // IE8-\n test.sort(undefined);\n}) || !fails(function(){\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn){\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});","require('./_set-species')('Array');","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export')\n , fails = require('./_fails')\n , getTime = Date.prototype.getTime;\n\nvar lz = function(num){\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (fails(function(){\n return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';\n}) || !fails(function(){\n new Date(NaN).toISOString();\n})), 'Date', {\n toISOString: function toISOString(){\n if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');\n var d = this\n , y = d.getUTCFullYear()\n , m = d.getUTCMilliseconds()\n , s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function(){\n return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;\n}), 'Date', {\n toJSON: function toJSON(key){\n var O = toObject(this)\n , pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});","var TO_PRIMITIVE = require('./_wks')('toPrimitive')\n , proto = Date.prototype;\n\nif(!(TO_PRIMITIVE in proto))require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));","var DateProto = Date.prototype\n , INVALID_DATE = 'Invalid Date'\n , TO_STRING = 'toString'\n , $toString = DateProto[TO_STRING]\n , getTime = DateProto.getTime;\nif(new Date(NaN) + '' != INVALID_DATE){\n require('./_redefine')(DateProto, TO_STRING, function toString(){\n var value = getTime.call(this);\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', {bind: require('./_bind')});","'use strict';\nvar isObject = require('./_is-object')\n , getPrototypeOf = require('./_object-gpo')\n , HAS_INSTANCE = require('./_wks')('hasInstance')\n , FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif(!(HAS_INSTANCE in FunctionProto))require('./_object-dp').f(FunctionProto, HAS_INSTANCE, {value: function(O){\n if(typeof this != 'function' || !isObject(O))return false;\n if(!isObject(this.prototype))return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while(O = getPrototypeOf(O))if(this.prototype === O)return true;\n return false;\n}});","var dP = require('./_object-dp').f\n , createDesc = require('./_property-desc')\n , has = require('./_has')\n , FProto = Function.prototype\n , nameRE = /^\\s*function ([^ (]*)/\n , NAME = 'name';\n\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function(){\n try {\n var that = this\n , name = ('' + that).match(nameRE)[1];\n has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));\n return name;\n } catch(e){\n return '';\n }\n }\n});","'use strict';\nvar strong = require('./_collection-strong');\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')('Map', function(get){\n return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key){\n var entry = strong.getEntry(this, key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value){\n return strong.def(this, key === 0 ? 0 : key, value);\n }\n}, strong, true);","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export')\n , log1p = require('./_math-log1p')\n , sqrt = Math.sqrt\n , $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN \n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x){\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export')\n , $asinh = Math.asinh;\n\nfunction asinh(x){\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0 \n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh});","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export')\n , $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0 \n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x){\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export')\n , sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x){\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x){\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export')\n , exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x){\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export')\n , $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1});","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export')\n , sign = require('./_math-sign')\n , pow = Math.pow\n , EPSILON = pow(2, -52)\n , EPSILON32 = pow(2, -23)\n , MAX32 = pow(2, 127) * (2 - EPSILON32)\n , MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function(n){\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n\n$export($export.S, 'Math', {\n fround: function fround(x){\n var $abs = Math.abs(x)\n , $sign = sign(x)\n , a, result;\n if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n if(result > MAX32 || result != result)return $sign * Infinity;\n return $sign * result;\n }\n});","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export')\n , abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars\n var sum = 0\n , i = 0\n , aLen = arguments.length\n , larg = 0\n , arg, div;\n while(i < aLen){\n arg = abs(arguments[i++]);\n if(larg < arg){\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if(arg > 0){\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export')\n , $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function(){\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y){\n var UINT16 = 0xffff\n , xn = +x\n , yn = +y\n , xl = UINT16 & xn\n , yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x){\n return Math.log(x) / Math.LN10;\n }\n});","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {log1p: require('./_math-log1p')});","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x){\n return Math.log(x) / Math.LN2;\n }\n});","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {sign: require('./_math-sign')});","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export')\n , expm1 = require('./_math-expm1')\n , exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function(){\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x){\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export')\n , expm1 = require('./_math-expm1')\n , exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x){\n var a = expm1(x = +x)\n , b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it){\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});","'use strict';\nvar global = require('./_global')\n , has = require('./_has')\n , cof = require('./_cof')\n , inheritIfRequired = require('./_inherit-if-required')\n , toPrimitive = require('./_to-primitive')\n , fails = require('./_fails')\n , gOPN = require('./_object-gopn').f\n , gOPD = require('./_object-gopd').f\n , dP = require('./_object-dp').f\n , $trim = require('./_string-trim').trim\n , NUMBER = 'Number'\n , $Number = global[NUMBER]\n , Base = $Number\n , proto = $Number.prototype\n // Opera ~12 has broken Object#toString\n , BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER\n , TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function(argument){\n var it = toPrimitive(argument, false);\n if(typeof it == 'string' && it.length > 2){\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0)\n , third, radix, maxCode;\n if(first === 43 || first === 45){\n third = it.charCodeAt(2);\n if(third === 88 || third === 120)return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if(first === 48){\n switch(it.charCodeAt(1)){\n case 66 : case 98 : radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79 : case 111 : radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default : return +it;\n }\n for(var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++){\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if(code < 48 || code > maxCode)return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif(!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')){\n $Number = function Number(value){\n var it = arguments.length < 1 ? 0 : value\n , that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for(var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++){\n if(has(Base, key = keys[j]) && !has($Number, key)){\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export')\n , _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it){\n return typeof it == 'number' && _isFinite(it);\n }\n});","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {isInteger: require('./_is-integer')});","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number){\n return number != number;\n }\n});","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export')\n , isInteger = require('./_is-integer')\n , abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number){\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});","var $export = require('./_export')\n , $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat});","var $export = require('./_export')\n , $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});","'use strict';\nvar $export = require('./_export')\n , toInteger = require('./_to-integer')\n , aNumberValue = require('./_a-number-value')\n , repeat = require('./_string-repeat')\n , $toFixed = 1..toFixed\n , floor = Math.floor\n , data = [0, 0, 0, 0, 0, 0]\n , ERROR = 'Number.toFixed: incorrect invocation!'\n , ZERO = '0';\n\nvar multiply = function(n, c){\n var i = -1\n , c2 = c;\n while(++i < 6){\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function(n){\n var i = 6\n , c = 0;\n while(--i >= 0){\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function(){\n var i = 6\n , s = '';\n while(--i >= 0){\n if(s !== '' || i === 0 || data[i] !== 0){\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function(x, n, acc){\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function(x){\n var n = 0\n , x2 = x;\n while(x2 >= 4096){\n n += 12;\n x2 /= 4096;\n }\n while(x2 >= 2){\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128..toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function(){\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits){\n var x = aNumberValue(this, ERROR)\n , f = toInteger(fractionDigits)\n , s = ''\n , m = ZERO\n , e, z, j, k;\n if(f < 0 || f > 20)throw RangeError(ERROR);\n if(x != x)return 'NaN';\n if(x <= -1e21 || x >= 1e21)return String(x);\n if(x < 0){\n s = '-';\n x = -x;\n }\n if(x > 1e-21){\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if(e > 0){\n multiply(0, z);\n j = f;\n while(j >= 7){\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while(j >= 23){\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if(f > 0){\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});","'use strict';\nvar $export = require('./_export')\n , $fails = require('./_fails')\n , aNumberValue = require('./_a-number-value')\n , $toPrecision = 1..toPrecision;\n\n$export($export.P + $export.F * ($fails(function(){\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function(){\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision){\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); \n }\n});","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperties: require('./_object-dps')});","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object')\n , meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function($freeze){\n return function freeze(it){\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function(){\n return require('./_object-gopn-ext').f;\n});","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object')\n , $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function(){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function($isExtensible){\n return function isExtensible(it){\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function($isFrozen){\n return function isFrozen(it){\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function($isSealed){\n return function isSealed(it){\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', {is: require('./_same-value')});","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object')\n , meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function($preventExtensions){\n return function preventExtensions(it){\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object')\n , meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function($seal){\n return function seal(it){\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof')\n , test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif(test + '' != '[object z]'){\n require('./_redefine')(Object.prototype, 'toString', function toString(){\n return '[object ' + classof(this) + ']';\n }, true);\n}","var $export = require('./_export')\n , $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat});","var $export = require('./_export')\n , $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt});","'use strict';\nvar LIBRARY = require('./_library')\n , global = require('./_global')\n , ctx = require('./_ctx')\n , classof = require('./_classof')\n , $export = require('./_export')\n , isObject = require('./_is-object')\n , aFunction = require('./_a-function')\n , anInstance = require('./_an-instance')\n , forOf = require('./_for-of')\n , speciesConstructor = require('./_species-constructor')\n , task = require('./_task').set\n , microtask = require('./_microtask')()\n , PROMISE = 'Promise'\n , TypeError = global.TypeError\n , process = global.process\n , $Promise = global[PROMISE]\n , process = global.process\n , isNode = classof(process) == 'process'\n , empty = function(){ /* empty */ }\n , Internal, GenericPromiseCapability, Wrapper;\n\nvar USE_NATIVE = !!function(){\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1)\n , FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function(exec){ exec(empty, empty); };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n } catch(e){ /* empty */ }\n}();\n\n// helpers\nvar sameConstructor = function(a, b){\n // with library wrapper special case\n return a === b || a === $Promise && b === Wrapper;\n};\nvar isThenable = function(it){\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar newPromiseCapability = function(C){\n return sameConstructor($Promise, C)\n ? new PromiseCapability(C)\n : new GenericPromiseCapability(C);\n};\nvar PromiseCapability = GenericPromiseCapability = function(C){\n var resolve, reject;\n this.promise = new C(function($$resolve, $$reject){\n if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\nvar perform = function(exec){\n try {\n exec();\n } catch(e){\n return {error: e};\n }\n};\nvar notify = function(promise, isReject){\n if(promise._n)return;\n promise._n = true;\n var chain = promise._c;\n microtask(function(){\n var value = promise._v\n , ok = promise._s == 1\n , i = 0;\n var run = function(reaction){\n var handler = ok ? reaction.ok : reaction.fail\n , resolve = reaction.resolve\n , reject = reaction.reject\n , domain = reaction.domain\n , result, then;\n try {\n if(handler){\n if(!ok){\n if(promise._h == 2)onHandleUnhandled(promise);\n promise._h = 1;\n }\n if(handler === true)result = value;\n else {\n if(domain)domain.enter();\n result = handler(value);\n if(domain)domain.exit();\n }\n if(result === reaction.promise){\n reject(TypeError('Promise-chain cycle'));\n } else if(then = isThenable(result)){\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch(e){\n reject(e);\n }\n };\n while(chain.length > i)run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if(isReject && !promise._h)onUnhandled(promise);\n });\n};\nvar onUnhandled = function(promise){\n task.call(global, function(){\n var value = promise._v\n , abrupt, handler, console;\n if(isUnhandled(promise)){\n abrupt = perform(function(){\n if(isNode){\n process.emit('unhandledRejection', value, promise);\n } else if(handler = global.onunhandledrejection){\n handler({promise: promise, reason: value});\n } else if((console = global.console) && console.error){\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if(abrupt)throw abrupt.error;\n });\n};\nvar isUnhandled = function(promise){\n if(promise._h == 1)return false;\n var chain = promise._a || promise._c\n , i = 0\n , reaction;\n while(chain.length > i){\n reaction = chain[i++];\n if(reaction.fail || !isUnhandled(reaction.promise))return false;\n } return true;\n};\nvar onHandleUnhandled = function(promise){\n task.call(global, function(){\n var handler;\n if(isNode){\n process.emit('rejectionHandled', promise);\n } else if(handler = global.onrejectionhandled){\n handler({promise: promise, reason: promise._v});\n }\n });\n};\nvar $reject = function(value){\n var promise = this;\n if(promise._d)return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if(!promise._a)promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function(value){\n var promise = this\n , then;\n if(promise._d)return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if(promise === value)throw TypeError(\"Promise can't be resolved itself\");\n if(then = isThenable(value)){\n microtask(function(){\n var wrapper = {_w: promise, _d: false}; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch(e){\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch(e){\n $reject.call({_w: promise, _d: false}, e); // wrap\n }\n};\n\n// constructor polyfill\nif(!USE_NATIVE){\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor){\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch(err){\n $reject.call(this, err);\n }\n };\n Internal = function Promise(executor){\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected){\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if(this._a)this._a.push(reaction);\n if(this._s)notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function(onRejected){\n return this.then(undefined, onRejected);\n }\n });\n PromiseCapability = function(){\n var promise = new Internal;\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r){\n var capability = newPromiseCapability(this)\n , $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x){\n // instanceof instead of internal slot check because we should fix it without replacement native Promise core\n if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;\n var capability = newPromiseCapability(this)\n , $$resolve = capability.resolve;\n $$resolve(x);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function(iter){\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable){\n var C = this\n , capability = newPromiseCapability(C)\n , resolve = capability.resolve\n , reject = capability.reject;\n var abrupt = perform(function(){\n var values = []\n , index = 0\n , remaining = 1;\n forOf(iterable, false, function(promise){\n var $index = index++\n , alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function(value){\n if(alreadyCalled)return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if(abrupt)reject(abrupt.error);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable){\n var C = this\n , capability = newPromiseCapability(C)\n , reject = capability.reject;\n var abrupt = perform(function(){\n forOf(iterable, false, function(promise){\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if(abrupt)reject(abrupt.error);\n return capability.promise;\n }\n});","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export')\n , aFunction = require('./_a-function')\n , anObject = require('./_an-object')\n , rApply = (require('./_global').Reflect || {}).apply\n , fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function(){\n rApply(function(){});\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList){\n var T = aFunction(target)\n , L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export')\n , create = require('./_object-create')\n , aFunction = require('./_a-function')\n , anObject = require('./_an-object')\n , isObject = require('./_is-object')\n , fails = require('./_fails')\n , bind = require('./_bind')\n , rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function(){\n function F(){}\n return !(rConstruct(function(){}, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function(){\n rConstruct(function(){});\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /*, newTarget*/){\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);\n if(Target == newTarget){\n // w/o altered newTarget, optimization for 0-4 arguments\n switch(args.length){\n case 0: return new Target;\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args));\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype\n , instance = create(isObject(proto) ? proto : Object.prototype)\n , result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp')\n , $export = require('./_export')\n , anObject = require('./_an-object')\n , toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function(){\n Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes){\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch(e){\n return false;\n }\n }\n});","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export')\n , gOPD = require('./_object-gopd').f\n , anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey){\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export')\n , anObject = require('./_an-object');\nvar Enumerate = function(iterated){\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = [] // keys\n , key;\n for(key in iterated)keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function(){\n var that = this\n , keys = that._k\n , key;\n do {\n if(that._i >= keys.length)return {value: undefined, done: true};\n } while(!((key = keys[that._i++]) in that._t));\n return {value: key, done: false};\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target){\n return new Enumerate(target);\n }\n});","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd')\n , $export = require('./_export')\n , anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){\n return gOPD.f(anObject(target), propertyKey);\n }\n});","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export')\n , getProto = require('./_object-gpo')\n , anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target){\n return getProto(anObject(target));\n }\n});","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd')\n , getPrototypeOf = require('./_object-gpo')\n , has = require('./_has')\n , $export = require('./_export')\n , isObject = require('./_is-object')\n , anObject = require('./_an-object');\n\nfunction get(target, propertyKey/*, receiver*/){\n var receiver = arguments.length < 3 ? target : arguments[2]\n , desc, proto;\n if(anObject(target) === receiver)return target[propertyKey];\n if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', {get: get});","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey){\n return propertyKey in target;\n }\n});","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export')\n , anObject = require('./_an-object')\n , $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target){\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {ownKeys: require('./_own-keys')});","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export')\n , anObject = require('./_an-object')\n , $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target){\n anObject(target);\n try {\n if($preventExtensions)$preventExtensions(target);\n return true;\n } catch(e){\n return false;\n }\n }\n});","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export')\n , setProto = require('./_set-proto');\n\nif(setProto)$export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto){\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch(e){\n return false;\n }\n }\n});","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp')\n , gOPD = require('./_object-gopd')\n , getPrototypeOf = require('./_object-gpo')\n , has = require('./_has')\n , $export = require('./_export')\n , createDesc = require('./_property-desc')\n , anObject = require('./_an-object')\n , isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V/*, receiver*/){\n var receiver = arguments.length < 4 ? target : arguments[3]\n , ownDesc = gOPD.f(anObject(target), propertyKey)\n , existingDescriptor, proto;\n if(!ownDesc){\n if(isObject(proto = getPrototypeOf(target))){\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if(has(ownDesc, 'value')){\n if(ownDesc.writable === false || !isObject(receiver))return false;\n existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', {set: set});","var global = require('./_global')\n , inheritIfRequired = require('./_inherit-if-required')\n , dP = require('./_object-dp').f\n , gOPN = require('./_object-gopn').f\n , isRegExp = require('./_is-regexp')\n , $flags = require('./_flags')\n , $RegExp = global.RegExp\n , Base = $RegExp\n , proto = $RegExp.prototype\n , re1 = /a/g\n , re2 = /a/g\n // \"new\" creates a new object, old webkit buggy here\n , CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif(require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function(){\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))){\n $RegExp = function RegExp(p, f){\n var tiRE = this instanceof $RegExp\n , piRE = isRegExp(p)\n , fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function(key){\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function(){ return Base[key]; },\n set: function(it){ Base[key] = it; }\n });\n };\n for(var keys = gOPN(Base), i = 0; keys.length > i; )proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');","// 21.2.5.3 get RegExp.prototype.flags()\nif(require('./_descriptors') && /./g.flags != 'g')require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function(defined, MATCH, $match){\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp){\n 'use strict';\n var O = defined(this)\n , fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, $match];\n});","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function(defined, REPLACE, $replace){\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue){\n 'use strict';\n var O = defined(this)\n , fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n }, $replace];\n});","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function(defined, SEARCH, $search){\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp){\n 'use strict';\n var O = defined(this)\n , fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function(defined, SPLIT, $split){\n 'use strict';\n var isRegExp = require('./_is-regexp')\n , _split = $split\n , $push = [].push\n , $SPLIT = 'split'\n , LENGTH = 'length'\n , LAST_INDEX = 'lastIndex';\n if(\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ){\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function(separator, limit){\n var string = String(this);\n if(separator === undefined && limit === 0)return [];\n // If `separator` is not a regex, use native split\n if(!isRegExp(separator))return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if(!NPCG)separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while(match = separatorCopy.exec(string)){\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if(lastIndex > lastLastIndex){\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n if(!NPCG && match[LENGTH] > 1)match[0].replace(separator2, function(){\n for(i = 1; i < arguments[LENGTH] - 2; i++)if(arguments[i] === undefined)match[i] = undefined;\n });\n if(match[LENGTH] > 1 && match.index < string[LENGTH])$push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if(output[LENGTH] >= splitLimit)break;\n }\n if(separatorCopy[LAST_INDEX] === match.index)separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if(lastLastIndex === string[LENGTH]){\n if(lastLength || !separatorCopy.test(''))output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if('0'[$SPLIT](undefined, 0)[LENGTH]){\n $split = function(separator, limit){\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit){\n var O = defined(this)\n , fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object')\n , $flags = require('./_flags')\n , DESCRIPTORS = require('./_descriptors')\n , TO_STRING = 'toString'\n , $toString = /./[TO_STRING];\n\nvar define = function(fn){\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif(require('./_fails')(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){\n define(function toString(){\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if($toString.name != TO_STRING){\n define(function toString(){\n return $toString.call(this);\n });\n}","'use strict';\nvar strong = require('./_collection-strong');\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function(createHTML){\n return function anchor(name){\n return createHTML(this, 'a', 'name', name);\n }\n});","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function(createHTML){\n return function big(){\n return createHTML(this, 'big', '', '');\n }\n});","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function(createHTML){\n return function blink(){\n return createHTML(this, 'blink', '', '');\n }\n});","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function(createHTML){\n return function bold(){\n return createHTML(this, 'b', '', '');\n }\n});","'use strict';\nvar $export = require('./_export')\n , $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos){\n return $at(this, pos);\n }\n});","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export')\n , toLength = require('./_to-length')\n , context = require('./_string-context')\n , ENDS_WITH = 'endsWith'\n , $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /*, endPosition = @length */){\n var that = context(this, searchString, ENDS_WITH)\n , endPosition = arguments.length > 1 ? arguments[1] : undefined\n , len = toLength(that.length)\n , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)\n , search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function(createHTML){\n return function fixed(){\n return createHTML(this, 'tt', '', '');\n }\n});","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function(createHTML){\n return function fontcolor(color){\n return createHTML(this, 'font', 'color', color);\n }\n});","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function(createHTML){\n return function fontsize(size){\n return createHTML(this, 'font', 'size', size);\n }\n});","var $export = require('./_export')\n , toIndex = require('./_to-index')\n , fromCharCode = String.fromCharCode\n , $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars\n var res = []\n , aLen = arguments.length\n , i = 0\n , code;\n while(aLen > i){\n code = +arguments[i++];\n if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export')\n , context = require('./_string-context')\n , INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /*, position = 0 */){\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function(createHTML){\n return function italics(){\n return createHTML(this, 'i', '', '');\n }\n});","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function(createHTML){\n return function link(url){\n return createHTML(this, 'a', 'href', url);\n }\n});","var $export = require('./_export')\n , toIObject = require('./_to-iobject')\n , toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite){\n var tpl = toIObject(callSite.raw)\n , len = toLength(tpl.length)\n , aLen = arguments.length\n , res = []\n , i = 0;\n while(len > i){\n res.push(String(tpl[i++]));\n if(i < aLen)res.push(String(arguments[i]));\n } return res.join('');\n }\n});","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function(createHTML){\n return function small(){\n return createHTML(this, 'small', '', '');\n }\n});","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export')\n , toLength = require('./_to-length')\n , context = require('./_string-context')\n , STARTS_WITH = 'startsWith'\n , $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /*, position = 0 */){\n var that = context(this, searchString, STARTS_WITH)\n , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))\n , search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function(createHTML){\n return function strike(){\n return createHTML(this, 'strike', '', '');\n }\n});","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function(createHTML){\n return function sub(){\n return createHTML(this, 'sub', '', '');\n }\n});","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function(createHTML){\n return function sup(){\n return createHTML(this, 'sup', '', '');\n }\n});","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function($trim){\n return function trim(){\n return $trim(this, 3);\n };\n});","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);","'use strict';\nvar $export = require('./_export')\n , $typed = require('./_typed')\n , buffer = require('./_typed-buffer')\n , anObject = require('./_an-object')\n , toIndex = require('./_to-index')\n , toLength = require('./_to-length')\n , isObject = require('./_is-object')\n , ArrayBuffer = require('./_global').ArrayBuffer\n , speciesConstructor = require('./_species-constructor')\n , $ArrayBuffer = buffer.ArrayBuffer\n , $DataView = buffer.DataView\n , $isView = $typed.ABV && ArrayBuffer.isView\n , $slice = $ArrayBuffer.prototype.slice\n , VIEW = $typed.VIEW\n , ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it){\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function(){\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end){\n if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength\n , first = toIndex(start, len)\n , final = toIndex(end === undefined ? len : end, len)\n , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))\n , viewS = new $DataView(this)\n , viewT = new $DataView(result)\n , index = 0;\n while(first < final){\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});","require('./_typed-array')('Float32', 4, function(init){\n return function Float32Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Float64', 8, function(init){\n return function Float64Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Int16', 2, function(init){\n return function Int16Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Int32', 4, function(init){\n return function Int32Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Int8', 1, function(init){\n return function Int8Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Uint16', 2, function(init){\n return function Uint16Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Uint32', 4, function(init){\n return function Uint32Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Uint8', 1, function(init){\n return function Uint8Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Uint8', 1, function(init){\n return function Uint8ClampedArray(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n}, true);","'use strict';\nvar each = require('./_array-methods')(0)\n , redefine = require('./_redefine')\n , meta = require('./_meta')\n , assign = require('./_object-assign')\n , weak = require('./_collection-weak')\n , isObject = require('./_is-object')\n , getWeak = meta.getWeak\n , isExtensible = Object.isExtensible\n , uncaughtFrozenStore = weak.ufstore\n , tmp = {}\n , InternalMap;\n\nvar wrapper = function(get){\n return function WeakMap(){\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key){\n if(isObject(key)){\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value){\n return weak.def(this, key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')('WeakMap', wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){\n InternalMap = weak.getConstructor(wrapper);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function(key){\n var proto = $WeakMap.prototype\n , method = proto[key];\n redefine(proto, key, function(a, b){\n // store frozen objects on internal weakmap shim\n if(isObject(a) && !isExtensible(a)){\n if(!this._f)this._f = new InternalMap;\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}","'use strict';\nvar weak = require('./_collection-weak');\n\n// 23.4 WeakSet Objects\nrequire('./_collection')('WeakSet', function(get){\n return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value){\n return weak.def(this, value, true);\n }\n}, weak, false, true);","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export')\n , $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /*, fromIndex = 0 */){\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');","// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask\nvar $export = require('./_export')\n , microtask = require('./_microtask')()\n , process = require('./_global').process\n , isNode = require('./_cof')(process) == 'process';\n\n$export($export.G, {\n asap: function asap(fn){\n var domain = isNode && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});","// https://github.com/ljharb/proposal-is-error\nvar $export = require('./_export')\n , cof = require('./_cof');\n\n$export($export.S, 'Error', {\n isError: function isError(it){\n return cof(it) === 'Error';\n }\n});","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', {toJSON: require('./_collection-to-json')('Map')});","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n iaddh: function iaddh(x0, x1, y0, y1){\n var $x0 = x0 >>> 0\n , $x1 = x1 >>> 0\n , $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n imulh: function imulh(u, v){\n var UINT16 = 0xffff\n , $u = +u\n , $v = +v\n , u0 = $u & UINT16\n , v0 = $v & UINT16\n , u1 = $u >> 16\n , v1 = $v >> 16\n , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n isubh: function isubh(x0, x1, y0, y1){\n var $x0 = x0 >>> 0\n , $x1 = x1 >>> 0\n , $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n umulh: function umulh(u, v){\n var UINT16 = 0xffff\n , $u = +u\n , $v = +v\n , u0 = $u & UINT16\n , v0 = $v & UINT16\n , u1 = $u >>> 16\n , v1 = $v >>> 16\n , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , aFunction = require('./_a-function')\n , $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter){\n $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , aFunction = require('./_a-function')\n , $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter){\n $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});\n }\n});","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export')\n , $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it){\n return $entries(it);\n }\n});","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export')\n , ownKeys = require('./_own-keys')\n , toIObject = require('./_to-iobject')\n , gOPD = require('./_object-gopd')\n , createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){\n var O = toIObject(object)\n , getDesc = gOPD.f\n , keys = ownKeys(O)\n , result = {}\n , i = 0\n , key;\n while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));\n return result;\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive')\n , getPrototypeOf = require('./_object-gpo')\n , getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P){\n var O = toObject(this)\n , K = toPrimitive(P, true)\n , D;\n do {\n if(D = getOwnPropertyDescriptor(O, K))return D.get;\n } while(O = getPrototypeOf(O));\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive')\n , getPrototypeOf = require('./_object-gpo')\n , getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P){\n var O = toObject(this)\n , K = toPrimitive(P, true)\n , D;\n do {\n if(D = getOwnPropertyDescriptor(O, K))return D.set;\n } while(O = getPrototypeOf(O));\n }\n});","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export')\n , $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it){\n return $values(it);\n }\n});","'use strict';\n// https://github.com/zenparsing/es-observable\nvar $export = require('./_export')\n , global = require('./_global')\n , core = require('./_core')\n , microtask = require('./_microtask')()\n , OBSERVABLE = require('./_wks')('observable')\n , aFunction = require('./_a-function')\n , anObject = require('./_an-object')\n , anInstance = require('./_an-instance')\n , redefineAll = require('./_redefine-all')\n , hide = require('./_hide')\n , forOf = require('./_for-of')\n , RETURN = forOf.RETURN;\n\nvar getMethod = function(fn){\n return fn == null ? undefined : aFunction(fn);\n};\n\nvar cleanupSubscription = function(subscription){\n var cleanup = subscription._c;\n if(cleanup){\n subscription._c = undefined;\n cleanup();\n }\n};\n\nvar subscriptionClosed = function(subscription){\n return subscription._o === undefined;\n};\n\nvar closeSubscription = function(subscription){\n if(!subscriptionClosed(subscription)){\n subscription._o = undefined;\n cleanupSubscription(subscription);\n }\n};\n\nvar Subscription = function(observer, subscriber){\n anObject(observer);\n this._c = undefined;\n this._o = observer;\n observer = new SubscriptionObserver(this);\n try {\n var cleanup = subscriber(observer)\n , subscription = cleanup;\n if(cleanup != null){\n if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };\n else aFunction(cleanup);\n this._c = cleanup;\n }\n } catch(e){\n observer.error(e);\n return;\n } if(subscriptionClosed(this))cleanupSubscription(this);\n};\n\nSubscription.prototype = redefineAll({}, {\n unsubscribe: function unsubscribe(){ closeSubscription(this); }\n});\n\nvar SubscriptionObserver = function(subscription){\n this._s = subscription;\n};\n\nSubscriptionObserver.prototype = redefineAll({}, {\n next: function next(value){\n var subscription = this._s;\n if(!subscriptionClosed(subscription)){\n var observer = subscription._o;\n try {\n var m = getMethod(observer.next);\n if(m)return m.call(observer, value);\n } catch(e){\n try {\n closeSubscription(subscription);\n } finally {\n throw e;\n }\n }\n }\n },\n error: function error(value){\n var subscription = this._s;\n if(subscriptionClosed(subscription))throw value;\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.error);\n if(!m)throw value;\n value = m.call(observer, value);\n } catch(e){\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n },\n complete: function complete(value){\n var subscription = this._s;\n if(!subscriptionClosed(subscription)){\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.complete);\n value = m ? m.call(observer, value) : undefined;\n } catch(e){\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n }\n }\n});\n\nvar $Observable = function Observable(subscriber){\n anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);\n};\n\nredefineAll($Observable.prototype, {\n subscribe: function subscribe(observer){\n return new Subscription(observer, this._f);\n },\n forEach: function forEach(fn){\n var that = this;\n return new (core.Promise || global.Promise)(function(resolve, reject){\n aFunction(fn);\n var subscription = that.subscribe({\n next : function(value){\n try {\n return fn(value);\n } catch(e){\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n});\n\nredefineAll($Observable, {\n from: function from(x){\n var C = typeof this === 'function' ? this : $Observable;\n var method = getMethod(anObject(x)[OBSERVABLE]);\n if(method){\n var observable = anObject(method.call(x));\n return observable.constructor === C ? observable : new C(function(observer){\n return observable.subscribe(observer);\n });\n }\n return new C(function(observer){\n var done = false;\n microtask(function(){\n if(!done){\n try {\n if(forOf(x, false, function(it){\n observer.next(it);\n if(done)return RETURN;\n }) === RETURN)return;\n } catch(e){\n if(done)throw e;\n observer.error(e);\n return;\n } observer.complete();\n }\n });\n return function(){ done = true; };\n });\n },\n of: function of(){\n for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];\n return new (typeof this === 'function' ? this : $Observable)(function(observer){\n var done = false;\n microtask(function(){\n if(!done){\n for(var i = 0; i < items.length; ++i){\n observer.next(items[i]);\n if(done)return;\n } observer.complete();\n }\n });\n return function(){ done = true; };\n });\n }\n});\n\nhide($Observable.prototype, OBSERVABLE, function(){ return this; });\n\n$export($export.G, {Observable: $Observable});\n\nrequire('./_set-species')('Observable');","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , toMetaKey = metadata.key\n , ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , toMetaKey = metadata.key\n , getOrCreateMetadataMap = metadata.map\n , store = metadata.store;\n\nmetadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])\n , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;\n if(metadataMap.size)return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n}});","var Set = require('./es6.set')\n , from = require('./_array-from-iterable')\n , metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryOwnMetadataKeys = metadata.keys\n , toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function(O, P){\n var oKeys = ordinaryOwnMetadataKeys(O, P)\n , parent = getPrototypeOf(O);\n if(parent === null)return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryHasOwnMetadata = metadata.has\n , ordinaryGetOwnMetadata = metadata.get\n , toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function(MetadataKey, O, P){\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryOwnMetadataKeys = metadata.keys\n , toMetaKey = metadata.key;\n\nmetadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryGetOwnMetadata = metadata.get\n , toMetaKey = metadata.key;\n\nmetadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryHasOwnMetadata = metadata.has\n , toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function(MetadataKey, O, P){\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if(hasOwn)return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryHasOwnMetadata = metadata.has\n , toMetaKey = metadata.key;\n\nmetadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , aFunction = require('./_a-function')\n , toMetaKey = metadata.key\n , ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({metadata: function metadata(metadataKey, metadataValue){\n return function decorator(target, targetKey){\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n}});","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', {toJSON: require('./_collection-to-json')('Set')});","'use strict';\n// https://github.com/mathiasbynens/String.prototype.at\nvar $export = require('./_export')\n , $at = require('./_string-at')(true);\n\n$export($export.P, 'String', {\n at: function at(pos){\n return $at(this, pos);\n }\n});","'use strict';\n// https://tc39.github.io/String.prototype.matchAll/\nvar $export = require('./_export')\n , defined = require('./_defined')\n , toLength = require('./_to-length')\n , isRegExp = require('./_is-regexp')\n , getFlags = require('./_flags')\n , RegExpProto = RegExp.prototype;\n\nvar $RegExpStringIterator = function(regexp, string){\n this._r = regexp;\n this._s = string;\n};\n\nrequire('./_iter-create')($RegExpStringIterator, 'RegExp String', function next(){\n var match = this._r.exec(this._s);\n return {value: match, done: match === null};\n});\n\n$export($export.P, 'String', {\n matchAll: function matchAll(regexp){\n defined(this);\n if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');\n var S = String(this)\n , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)\n , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);\n rx.lastIndex = toLength(regexp.lastIndex);\n return new $RegExpStringIterator(rx, S);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimLeft', function($trim){\n return function trimLeft(){\n return $trim(this, 1);\n };\n}, 'trimStart');","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimRight', function($trim){\n return function trimRight(){\n return $trim(this, 2);\n };\n}, 'trimEnd');","require('./_wks-define')('asyncIterator');","require('./_wks-define')('observable');","// https://github.com/ljharb/proposal-global\nvar $export = require('./_export');\n\n$export($export.S, 'System', {global: require('./_global')});","var $iterators = require('./es6.array.iterator')\n , redefine = require('./_redefine')\n , global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , wks = require('./_wks')\n , ITERATOR = wks('iterator')\n , TO_STRING_TAG = wks('toStringTag')\n , ArrayValues = Iterators.Array;\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype\n , key;\n if(proto){\n if(!proto[ITERATOR])hide(proto, ITERATOR, ArrayValues);\n if(!proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n for(key in $iterators)if(!proto[key])redefine(proto, key, $iterators[key], true);\n }\n}","var $export = require('./_export')\n , $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global')\n , $export = require('./_export')\n , invoke = require('./_invoke')\n , partial = require('./_partial')\n , navigator = global.navigator\n , MSIE = !!navigator && /MSIE .\\./.test(navigator.userAgent); // <- dirty ie9- check\nvar wrap = function(set){\n return MSIE ? function(fn, time /*, ...args */){\n return set(invoke(\n partial,\n [].slice.call(arguments, 2),\n typeof fn == 'function' ? fn : Function(fn)\n ), time);\n } : set;\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});","require('./modules/es6.symbol');\nrequire('./modules/es6.object.create');\nrequire('./modules/es6.object.define-property');\nrequire('./modules/es6.object.define-properties');\nrequire('./modules/es6.object.get-own-property-descriptor');\nrequire('./modules/es6.object.get-prototype-of');\nrequire('./modules/es6.object.keys');\nrequire('./modules/es6.object.get-own-property-names');\nrequire('./modules/es6.object.freeze');\nrequire('./modules/es6.object.seal');\nrequire('./modules/es6.object.prevent-extensions');\nrequire('./modules/es6.object.is-frozen');\nrequire('./modules/es6.object.is-sealed');\nrequire('./modules/es6.object.is-extensible');\nrequire('./modules/es6.object.assign');\nrequire('./modules/es6.object.is');\nrequire('./modules/es6.object.set-prototype-of');\nrequire('./modules/es6.object.to-string');\nrequire('./modules/es6.function.bind');\nrequire('./modules/es6.function.name');\nrequire('./modules/es6.function.has-instance');\nrequire('./modules/es6.parse-int');\nrequire('./modules/es6.parse-float');\nrequire('./modules/es6.number.constructor');\nrequire('./modules/es6.number.to-fixed');\nrequire('./modules/es6.number.to-precision');\nrequire('./modules/es6.number.epsilon');\nrequire('./modules/es6.number.is-finite');\nrequire('./modules/es6.number.is-integer');\nrequire('./modules/es6.number.is-nan');\nrequire('./modules/es6.number.is-safe-integer');\nrequire('./modules/es6.number.max-safe-integer');\nrequire('./modules/es6.number.min-safe-integer');\nrequire('./modules/es6.number.parse-float');\nrequire('./modules/es6.number.parse-int');\nrequire('./modules/es6.math.acosh');\nrequire('./modules/es6.math.asinh');\nrequire('./modules/es6.math.atanh');\nrequire('./modules/es6.math.cbrt');\nrequire('./modules/es6.math.clz32');\nrequire('./modules/es6.math.cosh');\nrequire('./modules/es6.math.expm1');\nrequire('./modules/es6.math.fround');\nrequire('./modules/es6.math.hypot');\nrequire('./modules/es6.math.imul');\nrequire('./modules/es6.math.log10');\nrequire('./modules/es6.math.log1p');\nrequire('./modules/es6.math.log2');\nrequire('./modules/es6.math.sign');\nrequire('./modules/es6.math.sinh');\nrequire('./modules/es6.math.tanh');\nrequire('./modules/es6.math.trunc');\nrequire('./modules/es6.string.from-code-point');\nrequire('./modules/es6.string.raw');\nrequire('./modules/es6.string.trim');\nrequire('./modules/es6.string.iterator');\nrequire('./modules/es6.string.code-point-at');\nrequire('./modules/es6.string.ends-with');\nrequire('./modules/es6.string.includes');\nrequire('./modules/es6.string.repeat');\nrequire('./modules/es6.string.starts-with');\nrequire('./modules/es6.string.anchor');\nrequire('./modules/es6.string.big');\nrequire('./modules/es6.string.blink');\nrequire('./modules/es6.string.bold');\nrequire('./modules/es6.string.fixed');\nrequire('./modules/es6.string.fontcolor');\nrequire('./modules/es6.string.fontsize');\nrequire('./modules/es6.string.italics');\nrequire('./modules/es6.string.link');\nrequire('./modules/es6.string.small');\nrequire('./modules/es6.string.strike');\nrequire('./modules/es6.string.sub');\nrequire('./modules/es6.string.sup');\nrequire('./modules/es6.date.now');\nrequire('./modules/es6.date.to-json');\nrequire('./modules/es6.date.to-iso-string');\nrequire('./modules/es6.date.to-string');\nrequire('./modules/es6.date.to-primitive');\nrequire('./modules/es6.array.is-array');\nrequire('./modules/es6.array.from');\nrequire('./modules/es6.array.of');\nrequire('./modules/es6.array.join');\nrequire('./modules/es6.array.slice');\nrequire('./modules/es6.array.sort');\nrequire('./modules/es6.array.for-each');\nrequire('./modules/es6.array.map');\nrequire('./modules/es6.array.filter');\nrequire('./modules/es6.array.some');\nrequire('./modules/es6.array.every');\nrequire('./modules/es6.array.reduce');\nrequire('./modules/es6.array.reduce-right');\nrequire('./modules/es6.array.index-of');\nrequire('./modules/es6.array.last-index-of');\nrequire('./modules/es6.array.copy-within');\nrequire('./modules/es6.array.fill');\nrequire('./modules/es6.array.find');\nrequire('./modules/es6.array.find-index');\nrequire('./modules/es6.array.species');\nrequire('./modules/es6.array.iterator');\nrequire('./modules/es6.regexp.constructor');\nrequire('./modules/es6.regexp.to-string');\nrequire('./modules/es6.regexp.flags');\nrequire('./modules/es6.regexp.match');\nrequire('./modules/es6.regexp.replace');\nrequire('./modules/es6.regexp.search');\nrequire('./modules/es6.regexp.split');\nrequire('./modules/es6.promise');\nrequire('./modules/es6.map');\nrequire('./modules/es6.set');\nrequire('./modules/es6.weak-map');\nrequire('./modules/es6.weak-set');\nrequire('./modules/es6.typed.array-buffer');\nrequire('./modules/es6.typed.data-view');\nrequire('./modules/es6.typed.int8-array');\nrequire('./modules/es6.typed.uint8-array');\nrequire('./modules/es6.typed.uint8-clamped-array');\nrequire('./modules/es6.typed.int16-array');\nrequire('./modules/es6.typed.uint16-array');\nrequire('./modules/es6.typed.int32-array');\nrequire('./modules/es6.typed.uint32-array');\nrequire('./modules/es6.typed.float32-array');\nrequire('./modules/es6.typed.float64-array');\nrequire('./modules/es6.reflect.apply');\nrequire('./modules/es6.reflect.construct');\nrequire('./modules/es6.reflect.define-property');\nrequire('./modules/es6.reflect.delete-property');\nrequire('./modules/es6.reflect.enumerate');\nrequire('./modules/es6.reflect.get');\nrequire('./modules/es6.reflect.get-own-property-descriptor');\nrequire('./modules/es6.reflect.get-prototype-of');\nrequire('./modules/es6.reflect.has');\nrequire('./modules/es6.reflect.is-extensible');\nrequire('./modules/es6.reflect.own-keys');\nrequire('./modules/es6.reflect.prevent-extensions');\nrequire('./modules/es6.reflect.set');\nrequire('./modules/es6.reflect.set-prototype-of');\nrequire('./modules/es7.array.includes');\nrequire('./modules/es7.string.at');\nrequire('./modules/es7.string.pad-start');\nrequire('./modules/es7.string.pad-end');\nrequire('./modules/es7.string.trim-left');\nrequire('./modules/es7.string.trim-right');\nrequire('./modules/es7.string.match-all');\nrequire('./modules/es7.symbol.async-iterator');\nrequire('./modules/es7.symbol.observable');\nrequire('./modules/es7.object.get-own-property-descriptors');\nrequire('./modules/es7.object.values');\nrequire('./modules/es7.object.entries');\nrequire('./modules/es7.object.define-getter');\nrequire('./modules/es7.object.define-setter');\nrequire('./modules/es7.object.lookup-getter');\nrequire('./modules/es7.object.lookup-setter');\nrequire('./modules/es7.map.to-json');\nrequire('./modules/es7.set.to-json');\nrequire('./modules/es7.system.global');\nrequire('./modules/es7.error.is-error');\nrequire('./modules/es7.math.iaddh');\nrequire('./modules/es7.math.isubh');\nrequire('./modules/es7.math.imulh');\nrequire('./modules/es7.math.umulh');\nrequire('./modules/es7.reflect.define-metadata');\nrequire('./modules/es7.reflect.delete-metadata');\nrequire('./modules/es7.reflect.get-metadata');\nrequire('./modules/es7.reflect.get-metadata-keys');\nrequire('./modules/es7.reflect.get-own-metadata');\nrequire('./modules/es7.reflect.get-own-metadata-keys');\nrequire('./modules/es7.reflect.has-metadata');\nrequire('./modules/es7.reflect.has-own-metadata');\nrequire('./modules/es7.reflect.metadata');\nrequire('./modules/es7.asap');\nrequire('./modules/es7.observable');\nrequire('./modules/web.timers');\nrequire('./modules/web.immediate');\nrequire('./modules/web.dom.iterable');\nmodule.exports = require('./modules/_core');","(function () {\n 'use strict';\n\n var ShimDOMException;\n var phases = {\n NONE: 0,\n CAPTURING_PHASE: 1,\n AT_TARGET: 2,\n BUBBLING_PHASE: 3\n };\n\n if (typeof DOMException === 'undefined') {\n // Todo: Better polyfill (if even needed here)\n ShimDOMException = function DOMException (msg, name) { // No need for `toString` as same as for `Error`\n var err = new Error(msg);\n err.name = name;\n return err;\n };\n } else {\n ShimDOMException = DOMException;\n }\n\n var ev = new WeakMap();\n var evCfg = new WeakMap();\n\n // Todo: Set _ev argument outside of this function\n /**\n * We use an adapter class rather than a proxy not only for compatibility but also since we have to clone\n * native event properties anyways in order to properly set `target`, etc.\n * @note The regular DOM method `dispatchEvent` won't work with this polyfill as it expects a native event\n */\n var ShimEvent = function Event (type) { // eslint-disable-line no-native-reassign\n // For WebIDL checks of function's `length`, we check `arguments` for the optional arguments\n this[Symbol.toStringTag] = 'Event';\n this.toString = function () {\n return '[object Event]';\n };\n var evInit = arguments[1];\n var _ev = arguments[2];\n if (!arguments.length) {\n throw new TypeError(\"Failed to construct 'Event': 1 argument required, but only 0 present.\");\n }\n evInit = evInit || {};\n _ev = _ev || {};\n\n var _evCfg = {};\n if ('composed' in evInit) {\n _evCfg.composed = evInit.composed;\n }\n\n // _evCfg.isTrusted = true; // We are not always using this for user-created events\n // _evCfg.timeStamp = new Date().valueOf(); // This is no longer a timestamp, but monotonic (elapsed?)\n\n ev.set(this, _ev);\n evCfg.set(this, _evCfg);\n this.initEvent(type, evInit.bubbles, evInit.cancelable);\n Object.defineProperties(this,\n ['target', 'currentTarget', 'eventPhase', 'defaultPrevented'].reduce(function (obj, prop) {\n obj[prop] = {\n get: function () {\n return (/* prop in _evCfg && */ _evCfg[prop] !== undefined) ? _evCfg[prop] : (\n prop in _ev ? _ev[prop] : (\n // Defaults\n prop === 'eventPhase' ? 0 : (prop === 'defaultPrevented' ? false : null)\n )\n );\n }\n };\n return obj;\n }, {})\n );\n var props = [\n // Event\n 'type',\n 'bubbles', 'cancelable', // Defaults to false\n 'isTrusted', 'timeStamp',\n 'initEvent',\n // Other event properties (not used by our code)\n 'composedPath', 'composed'\n ];\n if (this.toString() === '[object CustomEvent]') {\n props.push('detail', 'initCustomEvent');\n }\n\n Object.defineProperties(this, props.reduce(function (obj, prop) {\n obj[prop] = {\n get: function () {\n return prop in _evCfg ? _evCfg[prop] : (prop in _ev ? _ev[prop] : (\n ['bubbles', 'cancelable', 'composed'].indexOf(prop) > -1 ? false : undefined\n ));\n }\n };\n return obj;\n }, {}));\n };\n\n ShimEvent.prototype.preventDefault = function () {\n if (!(this instanceof ShimEvent)) {\n throw new TypeError('Illegal invocation');\n }\n var _ev = ev.get(this);\n var _evCfg = evCfg.get(this);\n if (this.cancelable && !_evCfg._passive) {\n _evCfg.defaultPrevented = true;\n if (typeof _ev.preventDefault === 'function') { // Prevent any predefined defaults\n _ev.preventDefault();\n }\n };\n };\n ShimEvent.prototype.stopImmediatePropagation = function () {\n var _evCfg = evCfg.get(this);\n _evCfg._stopImmediatePropagation = true;\n };\n ShimEvent.prototype.stopPropagation = function () {\n var _evCfg = evCfg.get(this);\n _evCfg._stopPropagation = true;\n };\n ShimEvent.prototype.initEvent = function (type, bubbles, cancelable) { // Chrome currently has function length 1 only but WebIDL says 3\n // var bubbles = arguments[1];\n // var cancelable = arguments[2];\n var _evCfg = evCfg.get(this);\n\n if (_evCfg._dispatched) {\n return;\n }\n\n _evCfg.type = type;\n if (bubbles !== undefined) {\n _evCfg.bubbles = bubbles;\n }\n if (cancelable !== undefined) {\n _evCfg.cancelable = cancelable;\n }\n };\n ['type', 'target', 'currentTarget'].forEach(function (prop) {\n Object.defineProperty(ShimEvent.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n });\n ['eventPhase', 'defaultPrevented', 'bubbles', 'cancelable', 'timeStamp'].forEach(function (prop) {\n Object.defineProperty(ShimEvent.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n });\n ['NONE', 'CAPTURING_PHASE', 'AT_TARGET', 'BUBBLING_PHASE'].forEach(function (prop, i) {\n Object.defineProperty(ShimEvent, prop, {\n enumerable: true,\n writable: false,\n value: i\n });\n Object.defineProperty(ShimEvent.prototype, prop, {\n writable: false,\n value: i\n });\n });\n ShimEvent[Symbol.toStringTag] = 'Function';\n ShimEvent.prototype[Symbol.toStringTag] = 'EventPrototype';\n Object.defineProperty(ShimEvent, 'prototype', {\n writable: false\n });\n\n var ShimCustomEvent = function CustomEvent (type) {\n var evInit = arguments[1];\n var _ev = arguments[2];\n ShimEvent.call(this, type, evInit, _ev);\n this[Symbol.toStringTag] = 'CustomEvent';\n this.toString = function () {\n return '[object CustomEvent]';\n };\n // var _evCfg = evCfg.get(this);\n evInit = evInit || {};\n this.initCustomEvent(type, evInit.bubbles, evInit.cancelable, 'detail' in evInit ? evInit.detail : null);\n };\n Object.defineProperty(ShimCustomEvent.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: ShimCustomEvent\n });\n ShimCustomEvent.prototype.initCustomEvent = function (type, bubbles, cancelable, detail) {\n if (!(this instanceof ShimCustomEvent)) {\n throw new TypeError('Illegal invocation');\n }\n var _evCfg = evCfg.get(this);\n ShimCustomEvent.call(this, type, {bubbles: bubbles, cancelable: cancelable, detail: detail}, arguments[4]);\n\n if (_evCfg._dispatched) {\n return;\n }\n\n if (detail !== undefined) {\n _evCfg.detail = detail;\n }\n Object.defineProperty(this, 'detail', {\n get: function () {\n return _evCfg.detail;\n }\n });\n };\n ShimCustomEvent[Symbol.toStringTag] = 'Function';\n ShimCustomEvent.prototype[Symbol.toStringTag] = 'CustomEventPrototype';\n Object.setPrototypeOf(ShimCustomEvent, ShimEvent); // TODO: IDL needs but reported as slow!\n Object.defineProperty(ShimCustomEvent.prototype, 'detail', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n Object.setPrototypeOf(ShimCustomEvent.prototype, ShimEvent.prototype); // TODO: IDL needs but reported as slow!\n Object.defineProperty(ShimCustomEvent, 'prototype', {\n writable: false\n });\n\n function copyEvent (ev) {\n if ('detail' in ev) {\n return new ShimCustomEvent(ev.type, {bubbles: ev.bubbles, cancelable: ev.cancelable, detail: ev.detail}, ev);\n }\n return new ShimEvent(ev.type, {bubbles: ev.bubbles, cancelable: ev.cancelable}, ev);\n }\n\n function getListenersOptions (listeners, type, options) {\n var listenersByType = listeners[type];\n if (listenersByType === undefined) listeners[type] = listenersByType = [];\n options = typeof options === 'boolean' ? {capture: options} : (options || {});\n var stringifiedOptions = JSON.stringify(options);\n var listenersByTypeOptions = listenersByType.filter(function (obj) {\n return stringifiedOptions === JSON.stringify(obj.options);\n });\n return {listenersByTypeOptions: listenersByTypeOptions, options: options, listenersByType: listenersByType};\n }\n\n var methods = {\n addListener: function addListener (listeners, listener, type, options) {\n var listenerOptions = getListenersOptions(listeners, type, options);\n var listenersByTypeOptions = listenerOptions.listenersByTypeOptions;\n options = listenerOptions.options;\n var listenersByType = listenerOptions.listenersByType;\n\n if (listenersByTypeOptions.some(function (l) {\n return l.listener === listener;\n })) return;\n listenersByType.push({listener: listener, options: options});\n },\n\n removeListener: function removeListener (listeners, listener, type, options) {\n var listenerOptions = getListenersOptions(listeners, type, options);\n var listenersByType = listenerOptions.listenersByType;\n var stringifiedOptions = JSON.stringify(listenerOptions.options);\n\n listenersByType.some(function (l, i) {\n if (l.listener === listener && stringifiedOptions === JSON.stringify(l.options)) {\n listenersByType.splice(i, 1);\n if (!listenersByType.length) delete listeners[type];\n return true;\n }\n });\n },\n\n hasListener: function hasListener (listeners, listener, type, options) {\n var listenerOptions = getListenersOptions(listeners, type, options);\n var listenersByTypeOptions = listenerOptions.listenersByTypeOptions;\n return listenersByTypeOptions.some(function (l) {\n return l.listener === listener;\n });\n }\n };\n\n function EventTarget () {\n throw new TypeError('Illegal constructor');\n }\n\n Object.assign(EventTarget.prototype, ['Early', '', 'Late', 'Default'].reduce(function (obj, listenerType) {\n ['add', 'remove', 'has'].forEach(function (method) {\n obj[method + listenerType + 'EventListener'] = function (type, listener) {\n var options = arguments[2]; // We keep the listener `length` as per WebIDL\n if (arguments.length < 2) throw new TypeError('2 or more arguments required');\n if (typeof type !== 'string') throw new ShimDOMException('UNSPECIFIED_EVENT_TYPE_ERR', 'UNSPECIFIED_EVENT_TYPE_ERR'); // eslint-disable-line eqeqeq\n if (listener.handleEvent) { listener = listener.handleEvent.bind(listener); }\n var arrStr = '_' + listenerType.toLowerCase() + (listenerType === '' ? 'l' : 'L') + 'isteners';\n if (!this[arrStr]) Object.defineProperty(this, arrStr, {value: {}});\n return methods[method + 'Listener'](this[arrStr], listener, type, options);\n };\n });\n return obj;\n }, {}));\n\n Object.assign(EventTarget.prototype, {\n __setOptions: function (customOptions) {\n customOptions = customOptions || {};\n // Todo: Make into event properties?\n this._defaultSync = customOptions.defaultSync;\n this._extraProperties = customOptions.extraProperties || [];\n if (customOptions.legacyOutputDidListenersThrowFlag) { // IndexedDB\n this._legacyOutputDidListenersThrowCheck = true;\n this._extraProperties.push('__legacyOutputDidListenersThrowError');\n }\n },\n dispatchEvent: function (ev) {\n return this._dispatchEvent(ev, true);\n },\n _dispatchEvent: function (ev, setTarget) {\n var me = this;\n ['early', '', 'late', 'default'].forEach(function (listenerType) {\n var arrStr = '_' + listenerType + (listenerType === '' ? 'l' : 'L') + 'isteners';\n if (!this[arrStr]) Object.defineProperty(this, arrStr, {value: {}});\n }, this);\n\n var _evCfg = evCfg.get(ev);\n if (_evCfg && setTarget && _evCfg._dispatched) throw new ShimDOMException('The object is in an invalid state.', 'InvalidStateError');\n\n var eventCopy;\n if (_evCfg) {\n eventCopy = ev;\n } else {\n eventCopy = copyEvent(ev);\n _evCfg = evCfg.get(eventCopy);\n _evCfg._dispatched = true;\n this._extraProperties.forEach(function (prop) {\n if (prop in ev) {\n eventCopy[prop] = ev[prop]; // Todo: Put internal to `ShimEvent`?\n }\n });\n }\n var type = eventCopy.type;\n\n function finishEventDispatch () {\n _evCfg.eventPhase = phases.NONE;\n _evCfg.currentTarget = null;\n delete _evCfg._children;\n }\n function invokeDefaults () {\n // Ignore stopPropagation from defaults\n _evCfg._stopImmediatePropagation = undefined;\n _evCfg._stopPropagation = undefined;\n // We check here for whether we should invoke since may have changed since timeout (if late listener prevented default)\n if (!eventCopy.defaultPrevented || !_evCfg.cancelable) { // 2nd check should be redundant\n _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke default listeners\n eventCopy.target.invokeCurrentListeners(eventCopy.target._defaultListeners, eventCopy, type);\n }\n finishEventDispatch();\n }\n function continueEventDispatch () {\n // Ignore stop propagation of user now\n _evCfg._stopImmediatePropagation = undefined;\n _evCfg._stopPropagation = undefined;\n if (!me._defaultSync) {\n setTimeout(invokeDefaults, 0);\n } else invokeDefaults();\n\n _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke late listeners\n // Sync default might have stopped\n if (!_evCfg._stopPropagation) {\n _evCfg._stopImmediatePropagation = undefined;\n _evCfg._stopPropagation = undefined;\n // We could allow stopPropagation by only executing upon (_evCfg._stopPropagation)\n eventCopy.target.invokeCurrentListeners(eventCopy.target._lateListeners, eventCopy, type);\n }\n finishEventDispatch();\n\n return !eventCopy.defaultPrevented;\n }\n\n if (setTarget) _evCfg.target = this;\n\n switch (eventCopy.eventPhase) {\n default: case phases.NONE:\n\n _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke early listeners\n this.invokeCurrentListeners(this._earlyListeners, eventCopy, type);\n if (!this.__getParent) {\n _evCfg.eventPhase = phases.AT_TARGET;\n return this._dispatchEvent(eventCopy, false);\n }\n\n var par = this;\n var root = this;\n while (par.__getParent && (par = par.__getParent()) !== null) {\n if (!_evCfg._children) {\n _evCfg._children = [];\n }\n _evCfg._children.push(root);\n root = par;\n }\n root._defaultSync = me._defaultSync;\n _evCfg.eventPhase = phases.CAPTURING_PHASE;\n return root._dispatchEvent(eventCopy, false);\n case phases.CAPTURING_PHASE:\n if (_evCfg._stopPropagation) {\n return continueEventDispatch();\n }\n this.invokeCurrentListeners(this._listeners, eventCopy, type);\n var child = _evCfg._children && _evCfg._children.length && _evCfg._children.pop();\n if (!child || child === eventCopy.target) {\n _evCfg.eventPhase = phases.AT_TARGET;\n }\n if (child) child._defaultSync = me._defaultSync;\n return (child || this)._dispatchEvent(eventCopy, false);\n case phases.AT_TARGET:\n if (_evCfg._stopPropagation) {\n return continueEventDispatch();\n }\n this.invokeCurrentListeners(this._listeners, eventCopy, type, true);\n if (!_evCfg.bubbles) {\n return continueEventDispatch();\n }\n _evCfg.eventPhase = phases.BUBBLING_PHASE;\n return this._dispatchEvent(eventCopy, false);\n case phases.BUBBLING_PHASE:\n if (_evCfg._stopPropagation) {\n return continueEventDispatch();\n }\n var parent = this.__getParent && this.__getParent();\n if (!parent) {\n return continueEventDispatch();\n }\n parent.invokeCurrentListeners(parent._listeners, eventCopy, type, true);\n parent._defaultSync = me._defaultSync;\n return parent._dispatchEvent(eventCopy, false);\n }\n },\n invokeCurrentListeners: function (listeners, eventCopy, type, checkOnListeners) {\n var _evCfg = evCfg.get(eventCopy);\n var me = this;\n _evCfg.currentTarget = this;\n\n var listOpts = getListenersOptions(listeners, type, {});\n var listenersByType = listOpts.listenersByType.concat();\n var dummyIPos = listenersByType.length ? 1 : 0;\n\n listenersByType.some(function (listenerObj, i) {\n var onListener = checkOnListeners ? me['on' + type] : null;\n if (_evCfg._stopImmediatePropagation) return true;\n if (i === dummyIPos && typeof onListener === 'function') {\n // We don't splice this in as could be overwritten; executes here per\n // https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-attributes:event-handlers-14\n this.tryCatch(eventCopy, function () {\n var ret = onListener.call(eventCopy.currentTarget, eventCopy);\n if (ret === false) {\n eventCopy.preventDefault();\n }\n });\n }\n var options = listenerObj.options;\n var once = options.once; // Remove listener after invoking once\n var passive = options.passive; // Don't allow `preventDefault`\n var capture = options.capture; // Use `_children` and set `eventPhase`\n _evCfg._passive = passive;\n\n if ((capture && eventCopy.target !== eventCopy.currentTarget && eventCopy.eventPhase === phases.CAPTURING_PHASE) ||\n (eventCopy.eventPhase === phases.AT_TARGET ||\n (!capture && eventCopy.target !== eventCopy.currentTarget && eventCopy.eventPhase === phases.BUBBLING_PHASE))\n ) {\n var listener = listenerObj.listener;\n this.tryCatch(eventCopy, function () {\n listener.call(eventCopy.currentTarget, eventCopy);\n });\n if (once) {\n this.removeEventListener(type, listener, options);\n }\n }\n }, this);\n this.tryCatch(eventCopy, function () {\n var onListener = checkOnListeners ? me['on' + type] : null;\n if (typeof onListener === 'function' && listenersByType.length < 2) {\n var ret = onListener.call(eventCopy.currentTarget, eventCopy); // Won't have executed if too short\n if (ret === false) {\n eventCopy.preventDefault();\n }\n }\n });\n\n return !eventCopy.defaultPrevented;\n },\n tryCatch: function (ev, cb) {\n try {\n // Per MDN: Exceptions thrown by event handlers are reported\n // as uncaught exceptions; the event handlers run on a nested\n // callstack: they block the caller until they complete, but\n // exceptions do not propagate to the caller.\n cb();\n } catch (err) {\n this.triggerErrorEvent(err, ev);\n }\n },\n triggerErrorEvent: function (err, ev) {\n var error = err;\n if (typeof err === 'string') {\n error = new Error('Uncaught exception: ' + err);\n }\n\n var triggerGlobalErrorEvent;\n var useNodeImpl = false;\n if (typeof window === 'undefined' || typeof ErrorEvent === 'undefined' || (\n window && typeof window === 'object' && !window.dispatchEvent)\n ) {\n useNodeImpl = true;\n triggerGlobalErrorEvent = function () {\n setTimeout(function () { // Node won't be able to catch in this way if we throw in the main thread\n // console.log(err); // Should we auto-log for user?\n throw error; // Let user listen to `process.on('uncaughtException', function(err) {});`\n });\n };\n } else {\n triggerGlobalErrorEvent = function () {\n // See https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n // and https://github.com/w3c/IndexedDB/issues/49\n\n // Note that a regular Event will properly trigger\n // `window.addEventListener('error')` handlers, but it will not trigger\n // `window.onerror` as per https://html.spec.whatwg.org/multipage/webappapis.html#handler-onerror\n // Note also that the following line won't handle `window.addEventListener` handlers\n // if (window.onerror) window.onerror(error.message, err.fileName, err.lineNumber, error.columnNumber, error);\n\n // `ErrorEvent` properly triggers `window.onerror` and `window.addEventListener('error')` handlers\n var errEv = new ErrorEvent('error', {\n error: err,\n message: error.message || '',\n // We can't get the actually useful user's values!\n filename: error.fileName || '',\n lineno: error.lineNumber || 0,\n colno: error.columnNumber || 0\n });\n window.dispatchEvent(errEv);\n // console.log(err); // Should we auto-log for user?\n };\n }\n\n // Todo: This really should always run here but as we can't set the global\n // `window` (e.g., using jsdom) since `setGlobalVars` becomes unable to\n // shim `indexedDB` in such a case currently (apparently due to\n // ), we can't\n // avoid the above Node implementation (which, while providing some\n // fallback mechanism, is unstable)\n if (!useNodeImpl || !this._legacyOutputDidListenersThrowCheck) triggerGlobalErrorEvent();\n\n // See https://dom.spec.whatwg.org/#concept-event-listener-inner-invoke and\n // https://github.com/w3c/IndexedDB/issues/140 (also https://github.com/w3c/IndexedDB/issues/49 )\n if (this._legacyOutputDidListenersThrowCheck) {\n ev.__legacyOutputDidListenersThrowError = error;\n }\n }\n });\n EventTarget.prototype[Symbol.toStringTag] = 'EventTargetPrototype';\n\n Object.defineProperty(EventTarget, 'prototype', {\n writable: false\n });\n\n var ShimEventTarget = EventTarget;\n var EventTargetFactory = {\n createInstance: function (customOptions) {\n function EventTarget () {\n this.__setOptions(customOptions);\n }\n EventTarget.prototype = ShimEventTarget.prototype;\n return new EventTarget();\n }\n };\n\n EventTarget.ShimEvent = ShimEvent;\n EventTarget.ShimCustomEvent = ShimCustomEvent;\n EventTarget.ShimDOMException = ShimDOMException;\n EventTarget.ShimEventTarget = EventTarget;\n EventTarget.EventTargetFactory = EventTargetFactory;\n\n // Todo: Move to own library (but allowing WeakMaps to be passed in for sharing here)\n\n var exportObj = (typeof module !== 'undefined' && module.exports) ? exports : window;\n exportObj.ShimEvent = ShimEvent;\n exportObj.ShimCustomEvent = ShimCustomEvent;\n exportObj.ShimDOMException = ShimDOMException;\n exportObj.ShimEventTarget = EventTarget;\n exportObj.EventTargetFactory = EventTargetFactory;\n}());\n","/**\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * https://raw.github.com/facebook/regenerator/master/LICENSE file. An\n * additional grant of patent rights can be found in the PATENTS file in\n * the same directory.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n if (typeof process === \"object\" && process.domain) {\n invoke = process.domain.bind(invoke);\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // Among the various tricks for obtaining a reference to the global\n // object, this seems to be the most reliable technique that does not\n // use indirect eval (which violates Content Security Policy).\n typeof global === \"object\" ? global :\n typeof window === \"object\" ? window :\n typeof self === \"object\" ? self : this\n);\n","// Since [immediate](https://github.com/calvinmetcalf/immediate) is\n// not doing the trick for our WebSQL transactions (at least in Node),\n// we are forced to make the promises run fully synchronously.\n\nfunction isPromise(p) {\n return p && typeof p.then === 'function';\n}\nfunction addReject(prom, reject) {\n prom.then(null, reject) // Use this style for sake of non-Promise thenables (e.g., jQuery Deferred)\n}\n\n// States\nvar PENDING = 2,\n FULFILLED = 0, // We later abuse these as array indices\n REJECTED = 1;\n\nfunction SyncPromise(fn) {\n var self = this;\n self.v = 0; // Value, this will be set to either a resolved value or rejected reason\n self.s = PENDING; // State of the promise\n self.c = [[],[]]; // Callbacks c[0] is fulfillment and c[1] contains rejection callbacks\n function transist(val, state) {\n self.v = val;\n self.s = state;\n self.c[state].forEach(function(fn) { fn(val); });\n // Release memory, but if no handlers have been added, as we\n // assume that we will resolve/reject (truly) synchronously\n // and thus we avoid flagging checks about whether we've\n // already resolved/rejected.\n if (self.c[state].length) self.c = null;\n }\n function resolve(val) {\n if (!self.c) {\n // Already resolved (or will be resolved), do nothing.\n } else if (isPromise(val)) {\n addReject(val.then(resolve), reject);\n } else {\n transist(val, FULFILLED);\n }\n }\n function reject(reason) {\n if (!self.c) {\n // Already resolved (or will be resolved), do nothing.\n } else if (isPromise(reason)) {\n addReject(reason.then(reject), reject);\n } else {\n transist(reason, REJECTED);\n }\n }\n try {\n fn(resolve, reject);\n } catch (err) {\n reject(err);\n }\n}\n\nvar prot = SyncPromise.prototype;\n\nprot.then = function(cb, errBack) {\n var self = this;\n return new SyncPromise(function(resolve, reject) {\n var rej = typeof errBack === 'function' ? errBack : reject;\n function settle() {\n try {\n resolve(cb ? cb(self.v) : self.v);\n } catch(e) {\n rej(e);\n }\n }\n if (self.s === FULFILLED) {\n settle();\n } else if (self.s === REJECTED) {\n rej(self.v);\n } else {\n self.c[FULFILLED].push(settle);\n self.c[REJECTED].push(rej);\n }\n });\n};\n\nprot.catch = function(cb) {\n var self = this;\n return new SyncPromise(function(resolve, reject) {\n function settle() {\n try {\n resolve(cb(self.v));\n } catch(e) {\n reject(e);\n }\n }\n if (self.s === REJECTED) {\n settle();\n } else if (self.s === FULFILLED) {\n resolve(self.v);\n } else {\n self.c[REJECTED].push(settle);\n self.c[FULFILLED].push(resolve);\n }\n });\n};\n\nSyncPromise.all = function(promises) {\n return new SyncPromise(function(resolve, reject, l) {\n l = promises.length;\n var hasPromises = false;\n var newPromises = [];\n if (!l) {\n resolve(newPromises);\n return;\n }\n promises.forEach(function(p, i) {\n if (isPromise(p)) {\n addReject(p.then(function(res) {\n newPromises[i] = res;\n --l || resolve(newPromises);\n }), reject);\n } else {\n newPromises[i] = p;\n --l || resolve(promises);\n }\n });\n });\n};\n\nSyncPromise.race = function(promises) {\n var resolved = false;\n return new SyncPromise(function(resolve, reject) {\n promises.some(function(p, i) {\n if (isPromise(p)) {\n addReject(p.then(function(res) {\n if (resolved) {\n return;\n }\n resolve(res);\n resolved = true;\n }), reject);\n } else {\n resolve(p);\n resolved = true;\n return true;\n }\n });\n });\n};\n\nSyncPromise.resolve = function(val) {\n return new SyncPromise(function(resolve, reject) {\n resolve(val);\n });\n};\n\nSyncPromise.reject = function(val) {\n return new SyncPromise(function(resolve, reject) {\n reject(val);\n });\n};\nmodule.exports = SyncPromise;\n","module.exports = [\n {\n sparseArrays: {\n testPlainObjects: true,\n test: function (x) {return Array.isArray(x);},\n replace: function (a, stateObj) {\n stateObj.iterateUnsetNumeric = true;\n return a;\n }\n }\n },\n {\n sparseUndefined: {\n test: function (x, stateObj) { return typeof x === 'undefined' && stateObj.ownKeys === false; },\n replace: function (n) { return null; },\n revive: function (s) { return undefined;} // Will avoid adding anything\n }\n }\n];\n","module.exports = require('./structured-cloning').concat({checkDataCloneException: [function (val) {\n // Should also throw with:\n // 1. `IsDetachedBuffer` (a process not called within the ECMAScript spec)\n // 2. `IsCallable` (covered by `typeof === 'function'` or a function's `toStringTag`)\n // 3. internal slots besides [[Prototype]] or [[Extensible]] (e.g., [[PromiseState]] or [[WeakMapData]])\n // 4. exotic object (e.g., `Proxy`) (which does not have default behavior for one or more of the\n // essential internal methods that are limited to the following for non-function objects (we auto-exclude functions):\n // [[GetPrototypeOf]],[[SetPrototypeOf]],[[IsExtensible]],[[PreventExtensions]],[[GetOwnProperty]],\n // [[DefineOwnProperty]],[[HasProperty]],[[Get]],[[Set]],[[Delete]],[[OwnPropertyKeys]]);\n // except for the standard, built-in exotic objects, we'd need to know whether these methods had distinct behaviors\n // Note: There is no apparent way for us to detect a `Proxy` and reject (Chrome at least is not rejecting anyways)\n var stringTag = ({}.toString.call(val).slice(8, -1));\n if ([\n 'symbol', // Symbol's `toStringTag` is only \"Symbol\" for its initial value, so we check `typeof`\n 'function' // All functions including bound function exotic objects\n ].includes(typeof val) ||\n [\n 'Arguments', // A non-array exotic object\n 'Module', // A non-array exotic object\n 'Error', // `Error` and other errors have the [[ErrorData]] internal slot and give \"Error\"\n 'Promise', // Promise instances have an extra slot ([[PromiseState]]) but not throwing in Chrome `postMessage`\n 'WeakMap', // WeakMap instances have an extra slot ([[WeakMapData]]) but not throwing in Chrome `postMessage`\n 'WeakSet' // WeakSet instances have an extra slot ([[WeakSetData]]) but not throwing in Chrome `postMessage`\n ].includes(stringTag) ||\n val === Object.prototype || // A non-array exotic object but not throwing in Chrome `postMessage`\n ((stringTag === 'Blob' || stringTag === 'File') && val.isClosed) ||\n (val && typeof val === 'object' && typeof val.nodeType === 'number' && typeof val.insertBefore === 'function') // Duck-type DOM node objects (non-array exotic? objects which cannot be cloned by the SCA)\n ) {\n throw new DOMException('The object cannot be cloned.', 'DataCloneError');\n }\n return false;\n}]});\n","/* This preset includes types for the Structured Cloning Algorithm. */\nmodule.exports = [\n // Todo: Might also register `ImageBitmap` and synchronous `Blob`/`File`/`FileList`\n // ES5\n require('../types/user-object'), // Processed last\n require('../presets/undefined'),\n require('../types/primitive-objects'),\n require('../types/special-numbers'),\n require('../types/date'),\n require('../types/regexp'),\n // ES2015 (ES6)\n typeof Map === 'function' && require('../types/map'),\n typeof Set === 'function' && require('../types/set'),\n typeof ArrayBuffer === 'function' && require('../types/arraybuffer'),\n typeof Uint8Array === 'function' && require('../types/typed-arrays'),\n typeof DataView === 'function' && require('../types/dataview'),\n typeof Intl !== 'undefined' && require('../types/intl-types'),\n // Non-built-ins\n require('../types/imagedata'),\n require('../types/imagebitmap'), // Async return\n require('../types/file'),\n require('../types/filelist'),\n require('../types/blob')\n];\n","module.exports = [\n require('../presets/sparse-undefined'),\n require('../types/undefined')\n];\n","var Typeson = require('typeson');\nvar B64 = require ('base64-arraybuffer');\n\nexports.ArrayBuffer = [\n function test (x) { return Typeson.toStringTag(x) === 'ArrayBuffer';},\n function encapsulate (b) { return B64.encode(b); },\n function revive (b64) { return B64.decode(b64); }\n];\n// See also typed-arrays!\n","var Typeson = require('typeson');\nexports.Blob = {\n test: function (x) { return Typeson.toStringTag(x) === 'Blob'; },\n replace: function encapsulate (b) { // Sync\n var req = new XMLHttpRequest();\n req.open('GET', URL.createObjectURL(b), false); // Sync\n if (req.status !== 200 && req.status !== 0) throw new Error('Bad Blob access: ' + req.status);\n req.send();\n return {\n type: b.type,\n stringContents: req.responseText\n };\n },\n revive: function (o) {return new Blob([o.stringContents], {\n type: o.type\n });},\n replaceAsync: function encapsulateAsync (b) {\n return new Typeson.Promise(function (resolve, reject) {\n if (b.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob\n reject(new Error('The Blob is closed'));\n return;\n }\n var reader = new FileReader();\n reader.addEventListener('load', function () {\n resolve({\n type: b.type,\n stringContents: reader.result\n });\n });\n reader.addEventListener('error', function () {\n reject(reader.error);\n });\n reader.readAsText(b);\n });\n }\n};\n","var Typeson = require('typeson');\nvar B64 = require ('base64-arraybuffer');\nexports.DataView = [\n function (x) { return Typeson.toStringTag(x) === 'DataView'; },\n function (dw) { return { buffer: B64.encode(dw.buffer), byteOffset: dw.byteOffset, byteLength: dw.byteLength }; },\n function (obj) { return new DataView(B64.decode(obj.buffer), obj.byteOffset, obj.byteLength); }\n];\n","var Typeson = require('typeson');\nexports.Date = [\n function (x) { return Typeson.toStringTag(x) === 'Date'; },\n function (date) { return date.getTime(); },\n function (time) { return new Date(time); }\n];\n","var Typeson = require('typeson');\nexports.File = {\n test: function (x) { return Typeson.toStringTag(x) === 'File'; },\n replace: function encapsulate (f) { // Sync\n var req = new XMLHttpRequest();\n req.open('GET', URL.createObjectURL(f), false); // Sync\n if (req.status !== 200 && req.status !== 0) throw new Error('Bad Blob access: ' + req.status);\n req.send();\n return {\n type: f.type,\n stringContents: req.responseText,\n name: f.name,\n lastModified: f.lastModified\n };\n },\n revive: function (o) {return new File([o.stringContents], o.name, {\n type: o.type,\n lastModified: o.lastModified\n });},\n replaceAsync: function encapsulateAsync (f) {\n return new Typeson.Promise(function (resolve, reject) {\n if (f.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob\n reject(new Error('The File is closed'));\n return;\n }\n var reader = new FileReader();\n reader.addEventListener('load', function () {\n resolve({\n type: f.type,\n stringContents: reader.result,\n name: f.name,\n lastModified: f.lastModified\n });\n });\n reader.addEventListener('error', function () {\n reject(reader.error);\n });\n reader.readAsText(f);\n });\n }\n};\n","var Typeson = require('typeson');\nexports.File = require('./file').File;\nexports.FileList = {\n test: function (x) { return Typeson.toStringTag(x) === 'FileList'; },\n replace: function (fl) {\n var arr = [];\n for (var i = 0; i < fl.length; i++) {\n arr[i] = fl.item(i);\n }\n return arr;\n },\n revive: function (o) {\n function FileList () {\n this._files = arguments[0];\n this.length = this._files.length;\n }\n FileList.prototype.item = function (index) {\n return this._files[index];\n };\n FileList.prototype[Symbol.toStringTag] = 'FileList';\n return new FileList(o);\n }\n};\n","/** ImageBitmap is browser / DOM specific. It also can only work same-domain (or CORS)\n*/\nvar Typeson = require('typeson');\nexports.ImageBitmap = {\n test: function (x) { return Typeson.toStringTag(x) === 'ImageBitmap'; },\n replace: function (bm) {\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n ctx.drawImage(bm, 0, 0);\n // Although `width` and `height` are part of `ImageBitMap`, these will\n // be auto-created for us when reviving with the data URL (and they are\n // not settable even if they weren't)\n // return {width: bm.width, height: bm.height, dataURL: canvas.toDataURL()};\n return canvas.toDataURL();\n },\n revive: function (o) {\n /*\n var req = new XMLHttpRequest();\n req.open('GET', o, false); // Sync\n if (req.status !== 200 && req.status !== 0) throw new Error('Bad ImageBitmap access: ' + req.status);\n req.send();\n return req.responseText;\n */\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var img = document.createElement('img');\n // The onload is needed by some browsers per http://stackoverflow.com/a/4776378/271577\n img.onload = function () {\n ctx.drawImage(img, 0, 0);\n };\n img.src = o;\n return canvas; // Works in contexts allowing an ImageBitmap (We might use `OffscreenCanvas.transferToBitmap` when supported)\n },\n reviveAsync: function reviveAsync (o) {\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var img = document.createElement('img');\n // The onload is needed by some browsers per http://stackoverflow.com/a/4776378/271577\n img.onload = function () {\n ctx.drawImage(img, 0, 0);\n };\n img.src = o; // o.dataURL;\n return createImageBitmap(canvas); // Returns a promise\n }\n};\n","/** ImageData is browser / DOM specific (though `node-canvas` has it available on `Canvas`).\n*/\nvar Typeson = require('typeson');\nexports.ImageData = [\n function (x) { return Typeson.toStringTag(x) === 'ImageData'; },\n function (d) {\n return {\n array: Array.from(d.data), // Ensure `length` gets preserved for revival\n width: d.width,\n height: d.height\n };\n },\n function (o) {return new ImageData(new Uint8ClampedArray(o.array), o.width, o.height);}\n];\n","var Typeson = require('typeson');\nexports[\"Intl.Collator\"] = [\n function (x) { return Typeson.hasConstructorOf(x, Intl.Collator); },\n function (c) { return c.resolvedOptions(); },\n function (options) { return new Intl.Collator(options.locale, options); }\n];\n\nexports[\"Intl.DateTimeFormat\"] = [\n function (x) { return Typeson.hasConstructorOf(x, Intl.DateTimeFormat); },\n function (dtf) { return dtf.resolvedOptions(); },\n function (options) { return new Intl.DateTimeFormat(options.locale, options); }\n];\n\nexports[\"Intl.NumberFormat\"] = [\n function (x) { return Typeson.hasConstructorOf(x, Intl.NumberFormat); },\n function (nf) { return nf.resolvedOptions(); },\n function (options) { return new Intl.NumberFormat(options.locale, options); }\n];\n","var Typeson = require('typeson');\nvar makeArray = require('../utils/array-from-iterator');\nexports.Map = [\n function (x) { return Typeson.toStringTag(x) === 'Map'; },\n function (map) { return makeArray(map.entries()); },\n function (entries) { return new Map(entries); }\n];\n","// This module is for objectified primitives (such as new Number(3) or\n// new String(\"foo\"))\nvar Typeson = require('typeson');\nmodule.exports = {\n // String Object (not primitive string which need no type spec)\n StringObject: [\n function (x) { return Typeson.toStringTag(x) === 'String' && typeof x === 'object'; },\n function (s) { return String(s); }, // convert to primitive string\n function (s) { return new String(s); } // Revive to an objectified string\n ],\n // Boolean Object (not primitive boolean which need no type spec)\n BooleanObject: [\n function (x) { return Typeson.toStringTag(x) === 'Boolean' && typeof x === 'object'; },\n function (b) { return Boolean(b); }, // convert to primitive boolean\n function (b) { return new Boolean(b); } // Revive to an objectified Boolean\n ],\n // Number Object (not primitive number which need no type spec)\n NumberObject: [\n function (x) { return Typeson.toStringTag(x) === 'Number' && typeof x === 'object'; },\n function (n) { return Number(n); }, // convert to primitive number\n function (n) { return new Number(n); } // Revive to an objectified number\n ]\n};\n","var Typeson = require('typeson');\nexports.RegExp = [\n function (x) { return Typeson.toStringTag(x) === 'RegExp'; },\n function (rexp) {\n return {\n source: rexp.source,\n flags: (rexp.global?'g':'')+(rexp.ignoreCase?'i':'')+(rexp.multiline?'m':'')+(rexp.sticky?'y':'')+(rexp.unicode?'u':'')\n };\n },\n function (data) { return new RegExp (data.source, data.flags); }\n];\n","var Typeson = require('typeson');\nvar makeArray = require('../utils/array-from-iterator');\nexports.Set = [\n function (x) { return Typeson.toStringTag(x) === 'Set'; },\n function (set) { return makeArray(set.values()); },\n function (values) { return new Set(values); }\n];\n","exports.SpecialNumber = [\n function (x) { return typeof x === 'number' && (isNaN(x) || x === Infinity || x === -Infinity); },\n function (n) { return isNaN(n) ? \"NaN\" : n > 0 ? \"Infinity\" : \"-Infinity\" },\n function (s) { return {NaN: NaN, Infinity: Infinity, \"-Infinity\": -Infinity}[s];}\n];\n","var Typeson = require('typeson');\nvar B64 = require ('base64-arraybuffer');\n\nvar _global = typeof self === 'undefined' ? global : self;\n\n[\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Uint16Array\",\n \"Int32Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Float64Array\"\n].forEach(function (typeName) {\n var TypedArray = _global[typeName];\n if (TypedArray) exports[typeName] = [\n function test (x) { return Typeson.toStringTag(x) === typeName; },\n function encapsulate (a) { return B64.encode (a.buffer, a.byteOffset, a.byteLength); },\n function revive (b64) { return new TypedArray (B64.decode(b64)); }\n ];\n});\n","// This does not preserve `undefined` in sparse arrays; see the `undefined` or `sparse-undefined` preset\nvar Typeson = require('typeson');\nmodule.exports = {\n undefined: [\n function (x, stateObj) { return typeof x === 'undefined' && (stateObj.ownKeys || !('ownKeys' in stateObj)); },\n function (n) { return null; },\n function (s) { return new Typeson.Undefined();} // Will add `undefined` (returning `undefined` would instead avoid explicitly setting)\n ]\n};\n","var Typeson = require('typeson');\nexports.userObjects = [\n function (x, stateObj) { return Typeson.isUserObject(x); },\n function (n) { return Object.assign({}, n); },\n function (s) { return s;}\n];\n","module.exports = Array.from || function (iterator) {\n var res = [];\n for (var i=iterator.next(); !i.done; i = iterator.next()) {\n res.push(i.value);\n }\n return res;\n}\n","var keys = Object.keys,\n isArray = Array.isArray,\n toString = ({}.toString),\n getProto = Object.getPrototypeOf,\n hasOwn = ({}.hasOwnProperty),\n fnToString = hasOwn.toString;\n\nfunction isThenable (v, catchCheck) {\n return Typeson.isObject(v) && typeof v.then === 'function' && (!catchCheck || typeof v.catch === 'function');\n}\n\nfunction toStringTag (val) {\n return toString.call(val).slice(8, -1);\n}\n\nfunction hasConstructorOf (a, b) {\n if (!a || typeof a !== 'object') {\n return false;\n }\n var proto = getProto(a);\n if (!proto) {\n return false;\n }\n var Ctor = hasOwn.call(proto, 'constructor') && proto.constructor;\n if (typeof Ctor !== 'function') {\n return b === null;\n }\n return typeof Ctor === 'function' && b !== null && fnToString.call(Ctor) === fnToString.call(b);\n}\n\nfunction isPlainObject (val) { // Mirrors jQuery's\n if (!val || toStringTag(val) !== 'Object') {\n return false;\n }\n\n var proto = getProto(val);\n if (!proto) { // `Object.create(null)`\n return true;\n }\n\n return hasConstructorOf(val, Object);\n}\n\nfunction isUserObject (val) {\n if (!val || toStringTag(val) !== 'Object') {\n return false;\n }\n\n var proto = getProto(val);\n if (!proto) { // `Object.create(null)`\n return true;\n }\n return hasConstructorOf(val, Object) || isUserObject(proto);\n}\n\nfunction isObject (v) {\n return v && typeof v === 'object'\n}\n\n/* Typeson - JSON with types\n * License: The MIT License (MIT)\n * Copyright (c) 2016 David Fahlander\n */\n\n/** An instance of this class can be used to call stringify() and parse().\n * Typeson resolves cyclic references by default. Can also be extended to\n * support custom types using the register() method.\n *\n * @constructor\n * @param {{cyclic: boolean}} [options] - if cyclic (default true), cyclic references will be handled gracefully.\n */\nfunction Typeson (options) {\n // Replacers signature: replace (value). Returns falsy if not replacing. Otherwise ['Date', value.getTime()]\n var plainObjectReplacers = [];\n var nonplainObjectReplacers = [];\n // Revivers: map {type => reviver}. Sample: {'Date': value => new Date(value)}\n var revivers = {};\n\n /** Types registered via register() */\n var regTypes = this.types = {};\n\n /** Serialize given object to Typeson.\n *\n * Arguments works identical to those of JSON.stringify().\n */\n var stringify = this.stringify = function (obj, replacer, space, opts) { // replacer here has nothing to do with our replacers.\n opts = Object.assign({}, options, opts, {stringification: true});\n var encapsulated = encapsulate(obj, null, opts);\n if (isArray(encapsulated)) {\n return JSON.stringify(encapsulated[0], replacer, space);\n }\n return encapsulated.then(function (res) {\n return JSON.stringify(res, replacer, space);\n });\n };\n\n // Also sync but throws on non-sync result\n this.stringifySync = function (obj, replacer, space, opts) {\n return stringify(obj, replacer, space, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true}));\n };\n this.stringifyAsync = function (obj, replacer, space, opts) {\n return stringify(obj, replacer, space, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false}));\n };\n\n /** Parse Typeson back into an obejct.\n *\n * Arguments works identical to those of JSON.parse().\n */\n var parse = this.parse = function (text, reviver, opts) {\n opts = Object.assign({}, options, opts, {parse: true});\n return revive(JSON.parse(text, reviver), opts); // This reviver has nothing to do with our revivers.\n };\n\n // Also sync but throws on non-sync result\n this.parseSync = function (text, reviver, opts) {\n return parse(text, reviver, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true})); // This reviver has nothing to do with our revivers.\n };\n this.parseAsync = function (text, reviver, opts) {\n return parse(text, reviver, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false})); // This reviver has nothing to do with our revivers.\n };\n\n /** Encapsulate a complex object into a plain Object by replacing registered types with\n * plain objects representing the types data.\n *\n * This method is used internally by Typeson.stringify().\n * @param {Object} obj - Object to encapsulate.\n */\n var encapsulate = this.encapsulate = function (obj, stateObj, opts) {\n opts = Object.assign({sync: true}, options, opts);\n var sync = opts.sync;\n var types = {},\n refObjs = [], // For checking cyclic references\n refKeys = [], // For checking cyclic references\n promisesDataRoot = [];\n // Clone the object deeply while at the same time replacing any special types or cyclic reference:\n var cyclic = opts && ('cyclic' in opts) ? opts.cyclic : true;\n var ret = _encapsulate('', obj, cyclic, stateObj || {}, promisesDataRoot);\n function finish (ret) {\n // Add $types to result only if we ever bumped into a special type (or special case where object has own `$types`)\n if (keys(types).length) {\n if (!ret || !isPlainObject(ret) || // Special if array (or a primitive) was serialized because JSON would ignore custom `$types` prop on it\n ret.hasOwnProperty('$types') // Also need to handle if this is an object with its own `$types` property (to avoid ambiguity)\n ) ret = {$: ret, $types: {$: types}};\n else ret.$types = types;\n } else if (isObject(ret) && ret.hasOwnProperty('$types')) {\n ret = {$: ret, $types: true};\n }\n return ret;\n }\n function checkPromises (ret, promisesData) {\n return Promise.all(\n promisesData.map(function (pd) {return pd[1].p;})\n ).then(function (promResults) {\n return Promise.all(\n promResults.map(function (promResult) {\n var newPromisesData = [];\n var prData = promisesData.splice(0, 1)[0];\n // var [keypath, , cyclic, stateObj, parentObj, key] = prData;\n var keyPath = prData[0];\n var cyclic = prData[2];\n var stateObj = prData[3];\n var parentObj = prData[4];\n var key = prData[5];\n var encaps = _encapsulate(keyPath, promResult, cyclic, stateObj, newPromisesData);\n var isTypesonPromise = hasConstructorOf(encaps, TypesonPromise);\n if (keyPath && isTypesonPromise) { // Handle case where an embedded custom type itself returns a `Typeson.Promise`\n return encaps.p.then(function (encaps2) {\n parentObj[key] = encaps2;\n return checkPromises(ret, newPromisesData);\n });\n }\n if (keyPath) parentObj[key] = encaps;\n else if (isTypesonPromise) { ret = encaps.p; }\n else ret = encaps; // If this is itself a `Typeson.Promise` (because the original value supplied was a promise or because the supplied custom type value resolved to one), returning it below will be fine since a promise is expected anyways given current config (and if not a promise, it will be ready as the resolve value)\n return checkPromises(ret, newPromisesData);\n })\n );\n }).then(function () {\n return ret;\n });\n };\n return promisesDataRoot.length\n ? sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Sync method requested but async result obtained\");\n }())\n : Promise.resolve(checkPromises(ret, promisesDataRoot)).then(finish)\n : !sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Async method requested but sync result obtained\");\n }())\n : (opts.stringification && sync // If this is a synchronous request for stringification, yet a promise is the result, we don't want to resolve leading to an async result, so we return an array to avoid ambiguity\n ? [finish(ret)]\n : (sync\n ? finish(ret)\n : Promise.resolve(finish(ret))\n ));\n\n function _encapsulate (keypath, value, cyclic, stateObj, promisesData) {\n var $typeof = typeof value;\n if ($typeof in {string: 1, boolean: 1, number: 1, undefined: 1 })\n return value === undefined || ($typeof === 'number' &&\n (isNaN(value) || value === -Infinity || value === Infinity)) ?\n replace(keypath, value, stateObj, promisesData) :\n value;\n if (value === null) return value;\n if (cyclic && !stateObj.iterateIn && !stateObj.iterateUnsetNumeric) {\n // Options set to detect cyclic references and be able to rewrite them.\n var refIndex = refObjs.indexOf(value);\n if (refIndex < 0) {\n if (cyclic === true) {\n refObjs.push(value);\n refKeys.push(keypath);\n }\n } else {\n types[keypath] = '#';\n return '#' + refKeys[refIndex];\n }\n }\n var isPlainObj = isPlainObject(value);\n var isArr = isArray(value);\n var replaced = (\n ((isPlainObj || isArr) && (!plainObjectReplacers.length || stateObj.replaced)) ||\n stateObj.iterateIn // Running replace will cause infinite loop as will test positive again\n )\n // Optimization: if plain object and no plain-object replacers, don't try finding a replacer\n ? value\n : replace(keypath, value, stateObj, promisesData, isPlainObj || isArr);\n if (replaced !== value) return replaced;\n var clone;\n if (isArr || stateObj.iterateIn === 'array')\n clone = new Array(value.length);\n else if (isPlainObj || stateObj.iterateIn === 'object')\n clone = {};\n else if (keypath === '' && hasConstructorOf(value, TypesonPromise)) {\n promisesData.push([keypath, value, cyclic, stateObj]);\n return value;\n }\n else return value; // Only clone vanilla objects and arrays\n\n // Iterate object or array\n if (stateObj.iterateIn) {\n for (var key in value) {\n var ownKeysObj = {ownKeys: value.hasOwnProperty(key)};\n var kp = keypath + (keypath ? '.' : '') + key;\n var val = _encapsulate(kp, value[key], !!cyclic, ownKeysObj, promisesData);\n if (hasConstructorOf(val, TypesonPromise)) {\n promisesData.push([kp, val, !!cyclic, ownKeysObj, clone, key]);\n } else if (val !== undefined) clone[key] = val;\n }\n } else { // Note: Non-indexes on arrays won't survive stringify so somewhat wasteful for arrays, but so too is iterating all numeric indexes on sparse arrays when not wanted or filtering own keys for positive integers\n keys(value).forEach(function (key) {\n var kp = keypath + (keypath ? '.' : '') + key;\n var val = _encapsulate(kp, value[key], !!cyclic, {ownKeys: true}, promisesData);\n if (hasConstructorOf(val, TypesonPromise)) {\n promisesData.push([kp, val, !!cyclic, {ownKeys: true}, clone, key]);\n } else if (val !== undefined) clone[key] = val;\n });\n }\n // Iterate array for non-own numeric properties (we can't replace the prior loop though as it iterates non-integer keys)\n if (stateObj.iterateUnsetNumeric) {\n for (var i = 0, vl = value.length; i < vl; i++) {\n if (!(i in value)) {\n var kp = keypath + (keypath ? '.' : '') + i;\n var val = _encapsulate(kp, undefined, !!cyclic, {ownKeys: false}, promisesData);\n if (hasConstructorOf(val, TypesonPromise)) {\n promisesData.push([kp, val, !!cyclic, {ownKeys: false}, clone, i]);\n } else if (val !== undefined) clone[i] = val;\n }\n }\n }\n return clone;\n }\n\n function replace (key, value, stateObj, promisesData, plainObject) {\n // Encapsulate registered types\n var replacers = plainObject ? plainObjectReplacers : nonplainObjectReplacers;\n var i = replacers.length;\n while (i--) {\n if (replacers[i].test(value, stateObj)) {\n var type = replacers[i].type;\n if (revivers[type]) {\n // Record the type only if a corresponding reviver exists.\n // This is to support specs where only replacement is done.\n // For example ensuring deep cloning of the object, or\n // replacing a type to its equivalent without the need to revive it.\n var existing = types[key];\n // type can comprise an array of types (see test shouldSupportIntermediateTypes)\n types[key] = existing ? [type].concat(existing) : type;\n }\n // Now, also traverse the result in case it contains it own types to replace\n stateObj = Object.assign(stateObj, {replaced: true});\n if ((sync || !replacers[i].replaceAsync) && !replacers[i].replace) {\n return _encapsulate(key, value, cyclic && 'readonly', stateObj, promisesData);\n }\n\n var replaceMethod = sync || !replacers[i].replaceAsync ? 'replace' : 'replaceAsync';\n return _encapsulate(key, replacers[i][replaceMethod](value, stateObj), cyclic && 'readonly', stateObj, promisesData);\n }\n }\n return value;\n }\n };\n\n // Also sync but throws on non-sync result\n this.encapsulateSync = function (obj, stateObj, opts) {\n return encapsulate(obj, stateObj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true}));\n };\n this.encapsulateAsync = function (obj, stateObj, opts) {\n return encapsulate(obj, stateObj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false}));\n };\n\n /** Revive an encapsulated object.\n * This method is used internally by JSON.parse().\n * @param {Object} obj - Object to revive. If it has $types member, the properties that are listed there\n * will be replaced with its true type instead of just plain objects.\n */\n var revive = this.revive = function (obj, opts) {\n opts = Object.assign({sync: true}, options, opts);\n var sync = opts.sync;\n var types = obj && obj.$types,\n ignore$Types = true;\n if (!types) return obj; // No type info added. Revival not needed.\n if (types === true) return obj.$; // Object happened to have own `$types` property but with no actual types, so we unescape and return that object\n if (types.$ && isPlainObject(types.$)) {\n // Special when root object is not a trivial Object, it will be encapsulated in $. It will also be encapsulated in $ if it has its own `$` property to avoid ambiguity\n obj = obj.$;\n types = types.$;\n ignore$Types = false;\n }\n var keyPathResolutions = [];\n var ret = _revive('', obj, null, opts);\n ret = hasConstructorOf(ret, Undefined) ? undefined : ret;\n return isThenable(ret)\n ? sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Sync method requested but async result obtained\");\n }())\n : ret\n : !sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Async method requested but sync result obtained\");\n }())\n : sync\n ? ret\n : Promise.resolve(ret);\n\n function _revive (keypath, value, target, opts, clone, key) {\n if (ignore$Types && keypath === '$types') return;\n var type = types[keypath];\n if (isArray(value) || isPlainObject(value)) {\n var clone = isArray(value) ? new Array(value.length) : {};\n // Iterate object or array\n keys(value).forEach(function (key) {\n var val = _revive(keypath + (keypath ? '.' : '') + key, value[key], target || clone, opts, clone, key);\n if (hasConstructorOf(val, Undefined)) clone[key] = undefined;\n else if (val !== undefined) clone[key] = val;\n });\n value = clone;\n while (keyPathResolutions.length) { // Try to resolve cyclic reference as soon as available\n var kpr = keyPathResolutions[0];\n var target = kpr[0];\n var keyPath = kpr[1];\n var clone = kpr[2];\n var key = kpr[3];\n var val = getByKeyPath(target, keyPath);\n if (hasConstructorOf(val, Undefined)) clone[key] = undefined;\n else if (val !== undefined) clone[key] = val;\n else break;\n keyPathResolutions.splice(0, 1);\n }\n }\n if (!type) return value;\n if (type === '#') {\n var ret = getByKeyPath(target, value.substr(1));\n if (ret === undefined) { // Cyclic reference not yet available\n keyPathResolutions.push([target, value.substr(1), clone, key]);\n }\n return ret;\n }\n var sync = opts.sync;\n return [].concat(type).reduce(function (val, type) {\n var reviver = revivers[type];\n if (!reviver) throw new Error ('Unregistered type: ' + type);\n return reviver[\n sync && reviver.revive\n ? 'revive'\n : !sync && reviver.reviveAsync\n ? 'reviveAsync'\n : 'revive'\n ](val);\n }, value);\n }\n };\n\n // Also sync but throws on non-sync result\n this.reviveSync = function (obj, opts) {\n return revive(obj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true}));\n };\n this.reviveAsync = function (obj, opts) {\n return revive(obj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false}));\n };\n\n /** Register types.\n * For examples how to use this method, see https://github.com/dfahlander/typeson-registry/tree/master/types\n * @param {Array.>} typeSpec - Types and their functions [test, encapsulate, revive];\n */\n this.register = function (typeSpecSets, opts) {\n opts = opts || {};\n [].concat(typeSpecSets).forEach(function R (typeSpec) {\n if (isArray(typeSpec)) return typeSpec.map(R); // Allow arrays of arrays of arrays...\n typeSpec && keys(typeSpec).forEach(function (typeId) {\n if (typeId === '#') {\n throw new TypeError('# cannot be used as a type name as it is reserved for cyclic objects');\n }\n var spec = typeSpec[typeId];\n var replacers = spec.testPlainObjects ? plainObjectReplacers : nonplainObjectReplacers;\n var existingReplacer = replacers.filter(function(r){ return r.type === typeId; });\n if (existingReplacer.length) {\n // Remove existing spec and replace with this one.\n replacers.splice(replacers.indexOf(existingReplacer[0]), 1);\n delete revivers[typeId];\n delete regTypes[typeId];\n }\n if (spec) {\n if (typeof spec === 'function') {\n // Support registering just a class without replacer/reviver\n var Class = spec;\n spec = {\n test: function (x) { return x.constructor === Class; },\n replace: function (x) { return assign({}, x); },\n revive: function (x) { return assign(Object.create(Class.prototype), x); }\n };\n } else if (isArray(spec)) {\n spec = {\n test: spec[0],\n replace: spec[1],\n revive: spec[2]\n };\n }\n var replacerObj = {\n type: typeId,\n test: spec.test.bind(spec)\n };\n if (spec.replace) {\n replacerObj.replace = spec.replace.bind(spec);\n }\n if (spec.replaceAsync) {\n replacerObj.replaceAsync = spec.replaceAsync.bind(spec);\n }\n var start = typeof opts.fallback === 'number' ? opts.fallback : (opts.fallback ? 0 : Infinity);\n if (spec.testPlainObjects) {\n plainObjectReplacers.splice(start, 0, replacerObj);\n } else {\n nonplainObjectReplacers.splice(start, 0, replacerObj);\n }\n // Todo: We might consider a testAsync type\n if (spec.revive || spec.reviveAsync) {\n var reviverObj = {};\n if (spec.revive) reviverObj.revive = spec.revive.bind(spec);\n if (spec.reviveAsync) reviverObj.reviveAsync = spec.reviveAsync.bind(spec);\n revivers[typeId] = reviverObj;\n }\n\n regTypes[typeId] = spec; // Record to be retrieved via public types property.\n }\n });\n });\n return this;\n };\n}\n\nfunction assign(t,s) {\n keys(s).map(function (k) { t[k] = s[k]; });\n return t;\n}\n\n/** getByKeyPath() utility */\nfunction getByKeyPath (obj, keyPath) {\n if (keyPath === '') return obj;\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj === undefined ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return obj[keyPath];\n}\n\nfunction Undefined () {}\n\n// With ES6 classes, we may be able to simply use `class TypesonPromise extends Promise` and add a string tag for detection\nfunction TypesonPromise (f) {\n this.p = new Promise(f);\n};\nTypesonPromise.prototype.then = function (onFulfilled, onRejected) {\n var that = this;\n return new TypesonPromise(function (typesonResolve, typesonReject) {\n that.p.then(function (res) {\n typesonResolve(onFulfilled ? onFulfilled(res) : res);\n }, function (r) {\n that.p['catch'](function (res) {\n return onRejected ? onRejected(res) : Promise.reject(res);\n }).then(typesonResolve, typesonReject);\n });\n });\n};\nTypesonPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nTypesonPromise.resolve = function (v) {\n return new TypesonPromise(function (typesonResolve) {\n typesonResolve(v);\n });\n};\nTypesonPromise.reject = function (v) {\n return new TypesonPromise(function (typesonResolve, typesonReject) {\n typesonReject(v);\n });\n};\n['all', 'race'].map(function (meth) {\n TypesonPromise[meth] = function (promArr) {\n return new TypesonPromise(function (typesonResolve, typesonReject) {\n Promise[meth](promArr.map(function (prom) {return prom.p;})).then(typesonResolve, typesonReject);\n });\n };\n});\n\n// The following provide classes meant to avoid clashes with other values\nTypeson.Undefined = Undefined; // To insist `undefined` should be added\nTypeson.Promise = TypesonPromise; // To support async encapsulation/stringification\n\n// Some fundamental type-checking utilities\nTypeson.isThenable = isThenable;\nTypeson.toStringTag = toStringTag;\nTypeson.hasConstructorOf = hasConstructorOf;\nTypeson.isObject = isObject;\nTypeson.isPlainObject = isPlainObject;\nTypeson.isUserObject = isUserObject;\n\nmodule.exports = Typeson;\n","module.exports=/[\\xC0-\\xC5\\xC7-\\xCF\\xD1-\\xD6\\xD9-\\xDD\\xE0-\\xE5\\xE7-\\xEF\\xF1-\\xF6\\xF9-\\xFD\\xFF-\\u010F\\u0112-\\u0125\\u0128-\\u0130\\u0134-\\u0137\\u0139-\\u013E\\u0143-\\u0148\\u014C-\\u0151\\u0154-\\u0165\\u0168-\\u017E\\u01A0\\u01A1\\u01AF\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E3\\u01E6-\\u01F0\\u01F4\\u01F5\\u01F8-\\u021B\\u021E\\u021F\\u0226-\\u0233\\u0344\\u0385\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u0390\\u03AA-\\u03B0\\u03CA-\\u03CE\\u03D3\\u03D4\\u0400\\u0401\\u0403\\u0407\\u040C-\\u040E\\u0419\\u0439\\u0450\\u0451\\u0453\\u0457\\u045C-\\u045E\\u0476\\u0477\\u04C1\\u04C2\\u04D0-\\u04D3\\u04D6\\u04D7\\u04DA-\\u04DF\\u04E2-\\u04E7\\u04EA-\\u04F5\\u04F8\\u04F9\\u0622-\\u0626\\u06C0\\u06C2\\u06D3\\u0929\\u0931\\u0934\\u0958-\\u095F\\u09CB\\u09CC\\u09DC\\u09DD\\u09DF\\u0A33\\u0A36\\u0A59-\\u0A5B\\u0A5E\\u0B48\\u0B4B\\u0B4C\\u0B5C\\u0B5D\\u0B94\\u0BCA-\\u0BCC\\u0C48\\u0CC0\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0D4A-\\u0D4C\\u0DDA\\u0DDC-\\u0DDE\\u0F43\\u0F4D\\u0F52\\u0F57\\u0F5C\\u0F69\\u0F73\\u0F75\\u0F76\\u0F78\\u0F81\\u0F93\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9\\u1026\\u1B06\\u1B08\\u1B0A\\u1B0C\\u1B0E\\u1B12\\u1B3B\\u1B3D\\u1B40\\u1B41\\u1B43\\u1E00-\\u1E99\\u1E9B\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FC1-\\u1FC4\\u1FC6-\\u1FD3\\u1FD6-\\u1FDB\\u1FDD-\\u1FEE\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u212B\\u219A\\u219B\\u21AE\\u21CD-\\u21CF\\u2204\\u2209\\u220C\\u2224\\u2226\\u2241\\u2244\\u2247\\u2249\\u2260\\u2262\\u226D-\\u2271\\u2274\\u2275\\u2278\\u2279\\u2280\\u2281\\u2284\\u2285\\u2288\\u2289\\u22AC-\\u22AF\\u22E0-\\u22E3\\u22EA-\\u22ED\\u2ADC\\u304C\\u304E\\u3050\\u3052\\u3054\\u3056\\u3058\\u305A\\u305C\\u305E\\u3060\\u3062\\u3065\\u3067\\u3069\\u3070\\u3071\\u3073\\u3074\\u3076\\u3077\\u3079\\u307A\\u307C\\u307D\\u3094\\u309E\\u30AC\\u30AE\\u30B0\\u30B2\\u30B4\\u30B6\\u30B8\\u30BA\\u30BC\\u30BE\\u30C0\\u30C2\\u30C5\\u30C7\\u30C9\\u30D0\\u30D1\\u30D3\\u30D4\\u30D6\\u30D7\\u30D9\\u30DA\\u30DC\\u30DD\\u30F4\\u30F7-\\u30FA\\u30FE\\uAC00-\\uD7A3\\uFB1D\\uFB1F\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFB4E]|\\uD804[\\uDC9A\\uDC9C\\uDCAB\\uDD2E\\uDD2F\\uDF4B\\uDF4C]|\\uD805[\\uDCBB\\uDCBC\\uDCBE\\uDDBA\\uDDBB]|\\uD834[\\uDD5E-\\uDD64\\uDDBB-\\uDDC0]/","const map = {};\nconst CFG = {};\n\n[\n // Boolean for verbose reporting\n 'DEBUG', // Effectively defaults to false (ignored unless `true`)\n\n 'cacheDatabaseInstances', // Boolean (effectively defaults to true) on whether to cache WebSQL `openDatabase` instances\n 'autoName', // Boolean on whether to auto-name databases (based on an auto-increment) when\n // the empty string is supplied; useful with `memoryDatabase`; defaults to `false`\n // which means the empty string will be used as the (valid) database name\n\n // Determines whether the slow-performing `Object.setPrototypeOf` calls required\n // for full WebIDL compliance will be used. Probably only needed for testing\n // or environments where full introspection on class relationships is required;\n // see http://stackoverflow.com/questions/41927589/rationales-consequences-of-webidl-class-inheritance-requirements\n 'fullIDLSupport', // Effectively defaults to false (ignored unless `true`)\n\n // Boolean on whether to perform origin checks in `IDBFactory` methods\n 'checkOrigin', // Effectively defaults to `true` (must be set to `false` to cancel checks)\n\n // Used by `IDBCursor` continue methods for number of records to cache;\n 'cursorPreloadPackSize', // Defaults to 100\n\n // See optional API (`shimIndexedDB.__setUnicodeIdentifiers`);\n // or just use the Unicode builds which invoke this method\n // automatically using the large, fully spec-compliant, regular\n // expression strings of `src/UnicodeIdentifiers.js`)\n 'UnicodeIDStart', // In the non-Unicode builds, defaults to /[$A-Z_a-z]/\n 'UnicodeIDContinue', // In the non-Unicode builds, defaults to /[$0-9A-Z_a-z]/\n\n // -----------SQL CONFIG----------\n // Object (`window` in the browser) on which there may be an\n // `openDatabase` method (if any) for WebSQL. (The browser\n // throws if attempting to call `openDatabase` without the window\n // so this is why the config doesn't just allow the function.)\n 'win', // Defaults to `window` or `self` in browser builds or\n // a singleton object with the `openDatabase` method set to\n // the \"websql\" package in Node.\n\n // For internal `openDatabase` calls made by `IDBFactory` methods;\n // per the WebSQL spec, \"User agents are expected to use the display name\n // and the estimated database size to optimize the user experience.\n // For example, a user agent could use the estimated size to suggest an\n // initial quota to the user. This allows a site that is aware that it\n // will try to use hundreds of megabytes to declare this upfront, instead\n // of the user agent prompting the user for permission to increase the\n // quota every five megabytes.\"\n 'DEFAULT_DB_SIZE', // Defaults to (4 * 1024 * 1024) or (25 * 1024 * 1024) in Safari\n\n // NODE-IMPINGING SETTINGS (created for sake of limitations in Node or desktop file\n // system implementation but applied by default in browser for parity)\n\n // Used when setting global shims to determine whether to try to add\n // other globals shimmed by the library (`ShimDOMException`, `ShimDOMStringList`,\n // `ShimEvent`, `ShimCustomEvent`, `ShimEventTarget`)\n 'addNonIDBGlobals', // Effectively defaults to `false` (ignored unless `true`)\n // Used when setting global shims to determine whether to try to overwrite\n // other globals shimmed by the library (`DOMException`, `DOMStringList`,\n // `Event`, `CustomEvent`, `EventTarget`)\n 'replaceNonIDBGlobals', // Effectively defaults to `false` (ignored unless `true`)\n\n // Overcoming limitations with node-sqlite3/storing database name on file systems\n // https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words\n 'escapeDatabaseName', // Defaults to prefixing database with `D_`, escaping\n // `databaseCharacterEscapeList`, escaping NUL, and\n // escaping upper case letters, as well as enforcing\n // `databaseNameLengthLimit`\n 'unescapeDatabaseName', // Not used internally; usable as a convenience method\n 'databaseCharacterEscapeList', // Defaults to global regex representing the following\n // (characters nevertheless commonly reserved in modern, Unicode-supporting\n // systems): 0x00-0x1F 0x7F \" * / : < > ? \\ |\n 'databaseNameLengthLimit', // Defaults to 254 (shortest typical modern file length limit)\n 'escapeNFDForDatabaseNames', // Boolean defaulting to true on whether to escape NFD-escaping\n // characters to avoid clashes on MacOS which performs NFD on files\n // Boolean on whether to add the `.sqlite` extension to file names;\n // defaults to `true`\n 'addSQLiteExtension',\n ['memoryDatabase', (val) => { // Various types of in-memory databases that can auto-delete\n if (!(/^(?::memory:|file::memory:(\\?[^#]*)?(#.*)?)?$/).test(val)) {\n throw new TypeError('`memoryDatabase` must be the empty string, \":memory:\", or a \"file::memory:[?queryString][#hash] URL\".');\n }\n }],\n\n // NODE-SPECIFIC CONFIG\n // Boolean on whether to delete the database file itself after `deleteDatabase`;\n // defaults to `true` as the database will be empty\n 'deleteDatabaseFiles',\n 'databaseBasePath',\n 'sysDatabaseBasePath',\n\n // NODE-SPECIFIC WEBSQL CONFIG\n 'sqlBusyTimeout', // Defaults to 1000\n 'sqlTrace', // Callback not used by default\n 'sqlProfile' // Callback not used by default\n].forEach((prop) => {\n let validator;\n if (Array.isArray(prop)) {\n validator = prop[1];\n prop = prop[0];\n }\n Object.defineProperty(CFG, prop, {\n get: function () {\n return map[prop];\n },\n set: function (val) {\n if (validator) {\n validator(val);\n }\n map[prop] = val;\n }\n });\n});\n\nexport default CFG;\n","/* globals DOMException */\nimport CFG from './CFG';\n\n/**\n * Creates a native DOMException, for browsers that support it\n * @returns {DOMException}\n */\nfunction createNativeDOMException (name, message) {\n return new DOMException.prototype.constructor(message, name || 'DOMException');\n}\n\nconst codes = { // From web-platform-tests testharness.js name_code_map (though not in new spec)\n IndexSizeError: 1,\n HierarchyRequestError: 3,\n WrongDocumentError: 4,\n InvalidCharacterError: 5,\n NoModificationAllowedError: 7,\n NotFoundError: 8,\n NotSupportedError: 9,\n InUseAttributeError: 10,\n InvalidStateError: 11,\n SyntaxError: 12,\n InvalidModificationError: 13,\n NamespaceError: 14,\n InvalidAccessError: 15,\n TypeMismatchError: 17,\n SecurityError: 18,\n NetworkError: 19,\n AbortError: 20,\n URLMismatchError: 21,\n QuotaExceededError: 22,\n TimeoutError: 23,\n InvalidNodeTypeError: 24,\n DataCloneError: 25,\n\n EncodingError: 0,\n NotReadableError: 0,\n UnknownError: 0,\n ConstraintError: 0,\n DataError: 0,\n TransactionInactiveError: 0,\n ReadOnlyError: 0,\n VersionError: 0,\n OperationError: 0,\n NotAllowedError: 0\n};\n\nconst legacyCodes = {\n INDEX_SIZE_ERR: 1,\n DOMSTRING_SIZE_ERR: 2,\n HIERARCHY_REQUEST_ERR: 3,\n WRONG_DOCUMENT_ERR: 4,\n INVALID_CHARACTER_ERR: 5,\n NO_DATA_ALLOWED_ERR: 6,\n NO_MODIFICATION_ALLOWED_ERR: 7,\n NOT_FOUND_ERR: 8,\n NOT_SUPPORTED_ERR: 9,\n INUSE_ATTRIBUTE_ERR: 10,\n INVALID_STATE_ERR: 11,\n SYNTAX_ERR: 12,\n INVALID_MODIFICATION_ERR: 13,\n NAMESPACE_ERR: 14,\n INVALID_ACCESS_ERR: 15,\n VALIDATION_ERR: 16,\n TYPE_MISMATCH_ERR: 17,\n SECURITY_ERR: 18,\n NETWORK_ERR: 19,\n ABORT_ERR: 20,\n URL_MISMATCH_ERR: 21,\n QUOTA_EXCEEDED_ERR: 22,\n TIMEOUT_ERR: 23,\n INVALID_NODE_TYPE_ERR: 24,\n DATA_CLONE_ERR: 25\n};\n\nfunction createNonNativeDOMExceptionClass () {\n function DOMException (message, name) {\n // const err = Error.prototype.constructor.call(this, message); // Any use to this? Won't set this.message\n this[Symbol.toStringTag] = 'DOMException';\n this._code = name in codes ? codes[name] : (legacyCodes[name] || 0);\n this._name = name || 'Error';\n this._message = message === undefined ? '' : ('' + message); // Not String() which converts Symbols\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: this._code\n });\n if (name !== undefined) {\n Object.defineProperty(this, 'name', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: this._name\n });\n }\n if (message !== undefined) {\n Object.defineProperty(this, 'message', {\n configurable: true,\n enumerable: false,\n writable: true,\n value: this._message\n });\n }\n }\n\n // Necessary for W3C tests which complains if `DOMException` has properties on its \"own\" prototype\n\n // class DummyDOMException extends Error {}; // Sometimes causing problems in Node\n const DummyDOMException = function DOMException () {};\n DummyDOMException.prototype = Object.create(Error.prototype); // Intended for subclassing\n ['name', 'message'].forEach((prop) => {\n Object.defineProperty(DummyDOMException.prototype, prop, {\n enumerable: true,\n get: function () {\n if (!(this instanceof DOMException ||\n this instanceof DummyDOMException ||\n this instanceof Error)) {\n throw new TypeError('Illegal invocation');\n }\n return this['_' + prop];\n }\n });\n });\n // DOMException uses the same `toString` as `Error`\n Object.defineProperty(DummyDOMException.prototype, 'code', {\n configurable: true,\n enumerable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n DOMException.prototype = new DummyDOMException();\n\n DOMException.prototype[Symbol.toStringTag] = 'DOMExceptionPrototype';\n Object.defineProperty(DOMException, 'prototype', {\n writable: false\n });\n\n Object.keys(codes).forEach((codeName) => {\n Object.defineProperty(DOMException.prototype, codeName, {\n enumerable: true,\n configurable: false,\n value: codes[codeName]\n });\n Object.defineProperty(DOMException, codeName, {\n enumerable: true,\n configurable: false,\n value: codes[codeName]\n });\n });\n Object.keys(legacyCodes).forEach((codeName) => {\n Object.defineProperty(DOMException.prototype, codeName, {\n enumerable: true,\n configurable: false,\n value: legacyCodes[codeName]\n });\n Object.defineProperty(DOMException, codeName, {\n enumerable: true,\n configurable: false,\n value: legacyCodes[codeName]\n });\n });\n Object.defineProperty(DOMException.prototype, 'constructor', {\n writable: true,\n configurable: true,\n enumerable: false,\n value: DOMException\n });\n\n return DOMException;\n}\n\nconst ShimNonNativeDOMException = createNonNativeDOMExceptionClass();\n\n/**\n * Creates a generic Error object\n * @returns {Error}\n */\nfunction createNonNativeDOMException (name, message) {\n return new ShimNonNativeDOMException(message, name);\n}\n\n/**\n * Logs detailed error information to the console.\n * @param {string} name\n * @param {string} message\n * @param {string|Error|null} error\n */\nfunction logError (name, message, error) {\n if (CFG.DEBUG) {\n if (error && error.message) {\n error = error.message;\n }\n\n const method = typeof (console.error) === 'function' ? 'error' : 'log';\n console[method](name + ': ' + message + '. ' + (error || ''));\n console.trace && console.trace();\n }\n}\n\nfunction isErrorOrDOMErrorOrDOMException (obj) {\n return obj && typeof obj === 'object' && // We don't use util.isObj here as mutual dependency causing problems in Babel with browser\n typeof obj.name === 'string';\n}\n\n/**\n * Finds the error argument. This is useful because some WebSQL callbacks\n * pass the error as the first argument, and some pass it as the second argument.\n * @param {array} args\n * @returns {Error|DOMException|undefined}\n */\nfunction findError (args) {\n let err;\n if (args) {\n if (args.length === 1) {\n return args[0];\n }\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (isErrorOrDOMErrorOrDOMException(arg)) {\n return arg;\n }\n if (arg && typeof arg.message === 'string') {\n err = arg;\n }\n }\n }\n return err;\n}\n\nfunction webSQLErrback (webSQLErr) {\n let name, message;\n switch (webSQLErr.code) {\n case 4: { // SQLError.QUOTA_ERR\n name = 'QuotaExceededError';\n message = 'The operation failed because there was not enough remaining storage space, or the storage quota was reached and the user declined to give more space to the database.';\n break;\n }\n /*\n // Should a WebSQL timeout treat as IndexedDB `TransactionInactiveError` or `UnknownError`?\n case 7: { // SQLError.TIMEOUT_ERR\n // All transaction errors abort later, so no need to mark inactive\n name = 'TransactionInactiveError';\n message = 'A request was placed against a transaction which is currently not active, or which is finished (Internal SQL Timeout).';\n break;\n }\n */\n default: {\n name = 'UnknownError';\n message = 'The operation failed for reasons unrelated to the database itself and not covered by any other errors.';\n break;\n }\n }\n message += ' (' + webSQLErr.message + ')--(' + webSQLErr.code + ')';\n const err = createDOMException(name, message);\n err.sqlError = webSQLErr;\n return err;\n}\n\nlet test, useNativeDOMException = false;\n\n// Test whether we can use the browser's native DOMException class\ntry {\n test = createNativeDOMException('test name', 'test message');\n if (isErrorOrDOMErrorOrDOMException(test) && test.name === 'test name' && test.message === 'test message') {\n // Native DOMException works as expected\n useNativeDOMException = true;\n }\n} catch (e) {}\n\nlet createDOMException, ShimDOMException;\nif (useNativeDOMException) {\n ShimDOMException = DOMException;\n createDOMException = function (name, message, error) {\n logError(name, message, error);\n return createNativeDOMException(name, message);\n };\n} else {\n ShimDOMException = ShimNonNativeDOMException;\n createDOMException = function (name, message, error) {\n logError(name, message, error);\n return createNonNativeDOMException(name, message);\n };\n}\n\nexport {logError, findError, ShimDOMException, createDOMException, webSQLErrback};\n","let cleanInterface = false;\n\nconst testObject = {test: true};\n// Test whether Object.defineProperty really works.\nif (Object.defineProperty) {\n try {\n Object.defineProperty(testObject, 'test', { enumerable: false });\n if (testObject.test) {\n cleanInterface = true;\n }\n } catch (e) {\n // Object.defineProperty does not work as intended.\n }\n}\n\n/**\n * Shim the DOMStringList object.\n *\n */\nconst DOMStringList = function () {\n throw new TypeError('Illegal constructor');\n};\nDOMStringList.prototype = {\n constructor: DOMStringList,\n // Interface.\n contains: function (str) {\n if (!arguments.length) {\n throw new TypeError('DOMStringList.contains must be supplied a value');\n }\n return this._items.includes(str);\n },\n item: function (key) {\n if (!arguments.length) {\n throw new TypeError('DOMStringList.item must be supplied a value');\n }\n if (key < 0 || key >= this.length || !Number.isInteger(key)) {\n return null;\n }\n return this._items[key];\n },\n\n // Helpers. Should only be used internally.\n clone: function () {\n const stringList = DOMStringList.__createInstance();\n stringList._items = this._items.slice();\n stringList._length = this.length;\n stringList.addIndexes();\n return stringList;\n },\n addIndexes: function () {\n for (let i = 0; i < this._items.length; i++) {\n this[i] = this._items[i];\n }\n },\n sortList: function () {\n // http://w3c.github.io/IndexedDB/#sorted-list\n // https://tc39.github.io/ecma262/#sec-abstract-relational-comparison\n this._items.sort();\n this.addIndexes();\n return this._items;\n },\n forEach: function (cb, thisArg) {\n this._items.forEach(cb, thisArg);\n },\n map: function (cb, thisArg) {\n return this._items.map(cb, thisArg);\n },\n indexOf: function (str) {\n return this._items.indexOf(str);\n },\n push: function (item) {\n this._items.push(item);\n this._length++;\n this.sortList();\n },\n splice: function (...args /* index, howmany, item1, ..., itemX */) {\n this._items.splice(...args);\n this._length = this._items.length;\n for (const i in this) {\n if (i === String(parseInt(i, 10))) {\n delete this[i];\n }\n }\n this.sortList();\n },\n [Symbol.toStringTag]: 'DOMStringListPrototype',\n // At least because `DOMStringList`, as a [list](https://infra.spec.whatwg.org/#list)\n // can be converted to a sequence per https://infra.spec.whatwg.org/#list-iterate\n // and particularly as some methods, e.g., `IDBDatabase.transaction`\n // expect such sequence (or DOMString), we need an iterator (some of\n // the Mocha tests rely on these)\n [Symbol.iterator]: function * () {\n let i = 0;\n while (i < this._items.length) {\n yield this._items[i++];\n }\n }\n};\nObject.defineProperty(DOMStringList, Symbol.hasInstance, {\n value: function (obj) {\n return ({}.toString.call(obj) === 'DOMStringListPrototype');\n }\n});\nconst DOMStringListAlias = DOMStringList;\nObject.defineProperty(DOMStringList, '__createInstance', {\n value: function () {\n const DOMStringList = function DOMStringList () {\n this.toString = function () {\n return '[object DOMStringList]';\n };\n // Internal functions on the prototype have been made non-enumerable below.\n Object.defineProperty(this, 'length', {\n enumerable: true,\n get: function () {\n return this._length;\n }\n });\n this._items = [];\n this._length = 0;\n };\n DOMStringList.prototype = DOMStringListAlias.prototype;\n return new DOMStringList();\n }\n});\n\nif (cleanInterface) {\n Object.defineProperty(DOMStringList, 'prototype', {\n writable: false\n });\n\n const nonenumerableReadonly = ['addIndexes', 'sortList', 'forEach', 'map', 'indexOf', 'push', 'splice', 'constructor', '__createInstance'];\n nonenumerableReadonly.forEach((nonenumerableReadonly) => {\n Object.defineProperty(DOMStringList.prototype, nonenumerableReadonly, {\n enumerable: false\n });\n });\n\n // Illegal invocations\n Object.defineProperty(DOMStringList.prototype, 'length', {\n configurable: true,\n enumerable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n\n const nonenumerableWritable = ['_items', '_length'];\n nonenumerableWritable.forEach((nonenumerableWritable) => {\n Object.defineProperty(DOMStringList.prototype, nonenumerableWritable, {\n enumerable: false,\n writable: true\n });\n });\n}\n\nexport default DOMStringList;\n","import {ShimEventTarget, ShimEvent, ShimCustomEvent} from 'eventtarget';\nimport * as util from './util';\n\nfunction createEvent (type, debug, evInit) {\n const ev = new ShimEvent(type, evInit);\n ev.debug = debug;\n return ev;\n}\n\n// We don't add within polyfill repo as might not always be the desired implementation\nObject.defineProperty(ShimEvent, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && 'target' in obj && typeof obj.bubbles === 'boolean'\n});\n\nexport {createEvent, ShimEvent, ShimCustomEvent, ShimEventTarget};\n","\nimport {IDBRequest} from './IDBRequest';\nimport IDBObjectStore from './IDBObjectStore';\nimport {createDOMException} from './DOMException';\nimport {setSQLForKeyRange, convertValueToKeyRange} from './IDBKeyRange';\nimport {cmp} from './IDBFactory';\nimport * as util from './util';\nimport IDBTransaction from './IDBTransaction';\nimport * as Key from './Key';\nimport * as Sca from './Sca';\nimport IDBIndex from './IDBIndex';\nimport CFG from './CFG';\n\n/**\n * The IndexedDB Cursor Object\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBCursor\n * @param {IDBKeyRange} range\n * @param {string} direction\n * @param {IDBObjectStore} store\n * @param {IDBObjectStore|IDBIndex} source\n * @param {string} keyColumnName\n * @param {string} valueColumnName\n * @param {boolean} count\n */\nfunction IDBCursor () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBCursorAlias = IDBCursor;\nIDBCursor.__super = function IDBCursor (query, direction, store, source, keyColumnName, valueColumnName, count) {\n this[Symbol.toStringTag] = 'IDBCursor';\n util.defineReadonlyProperties(this, ['key', 'primaryKey']);\n IDBObjectStore.__invalidStateIfDeleted(store);\n this.__indexSource = util.instanceOf(source, IDBIndex);\n if (this.__indexSource) IDBIndex.__invalidStateIfDeleted(source);\n IDBTransaction.__assertActive(store.transaction);\n const range = convertValueToKeyRange(query);\n if (direction !== undefined && !(['next', 'prev', 'nextunique', 'prevunique'].includes(direction))) {\n throw new TypeError(direction + 'is not a valid cursor direction');\n }\n\n Object.defineProperties(this, {\n // Babel is not respecting default writable false here, so make explicit\n source: {writable: false, value: source},\n direction: {writable: false, value: direction || 'next'}\n });\n this.__key = undefined;\n this.__primaryKey = undefined;\n\n this.__store = store;\n this.__range = range;\n this.__req = IDBRequest.__createInstance();\n this.__req.__source = source;\n this.__req.__transaction = this.__store.transaction;\n this.__keyColumnName = keyColumnName;\n this.__valueColumnName = valueColumnName;\n this.__keyOnly = valueColumnName === 'key';\n this.__valueDecoder = this.__keyOnly ? Key : Sca;\n this.__count = count;\n this.__prefetchedIndex = -1;\n this.__multiEntryIndex = this.__indexSource ? source.multiEntry : false;\n this.__unique = this.direction.includes('unique');\n this.__sqlDirection = ['prev', 'prevunique'].includes(this.direction) ? 'DESC' : 'ASC';\n\n if (range !== undefined) {\n // Encode the key range and cache the encoded values, so we don't have to re-encode them over and over\n range.__lowerCached = range.lower !== undefined && Key.encode(range.lower, this.__multiEntryIndex);\n range.__upperCached = range.upper !== undefined && Key.encode(range.upper, this.__multiEntryIndex);\n }\n this.__gotValue = true;\n this['continue']();\n};\n\nIDBCursor.__createInstance = function (...args) {\n const IDBCursor = IDBCursorAlias.__super;\n IDBCursor.prototype = IDBCursorAlias.prototype;\n return new IDBCursor(...args);\n};\n\nIDBCursor.prototype.__find = function (...args /* key, tx, success, error, recordsToLoad */) {\n if (this.__multiEntryIndex) {\n this.__findMultiEntry(...args);\n } else {\n this.__findBasic(...args);\n }\n};\n\nIDBCursor.prototype.__findBasic = function (key, primaryKey, tx, success, error, recordsToLoad) {\n const continueCall = recordsToLoad !== undefined;\n recordsToLoad = recordsToLoad || 1;\n\n const me = this;\n const quotedKeyColumnName = util.sqlQuote(me.__keyColumnName);\n const quotedKey = util.sqlQuote('key');\n let sql = ['SELECT * FROM', util.escapeStoreNameForSQL(me.__store.__currentName)];\n const sqlValues = [];\n sql.push('WHERE', quotedKeyColumnName, 'NOT NULL');\n setSQLForKeyRange(me.__range, quotedKeyColumnName, sql, sqlValues, true, true);\n\n // Determine the ORDER BY direction based on the cursor.\n const direction = me.__sqlDirection;\n const op = direction === 'ASC' ? '>' : '<';\n\n if (primaryKey !== undefined) {\n sql.push('AND', quotedKey, op + '= ?');\n // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`\n sqlValues.push(Key.encode(primaryKey));\n }\n if (key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + '= ?');\n // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`\n sqlValues.push(Key.encode(key));\n } else if (continueCall && me.__key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + ' ?');\n // Key.convertValueToKey(me.__key); // Already checked when stored\n sqlValues.push(Key.encode(me.__key));\n }\n\n if (!me.__count) {\n // 1. Sort by key\n sql.push('ORDER BY', quotedKeyColumnName, direction);\n\n // 2. Sort by primaryKey (if defined and not unique)\n if (!me.__unique && me.__keyColumnName !== 'key') { // Avoid adding 'key' twice\n sql.push(',', quotedKey, direction);\n }\n\n // 3. Sort by position (if defined)\n\n if (!me.__unique && me.__indexSource) {\n // 4. Sort by object store position (if defined and not unique)\n sql.push(',', util.sqlQuote(me.__valueColumnName), direction);\n }\n sql.push('LIMIT', recordsToLoad);\n }\n sql = sql.join(' ');\n CFG.DEBUG && console.log(sql, sqlValues);\n\n tx.executeSql(sql, sqlValues, function (tx, data) {\n if (me.__count) {\n success(undefined, data.rows.length, undefined);\n } else if (data.rows.length > 1) {\n me.__prefetchedIndex = 0;\n me.__prefetchedData = data.rows;\n CFG.DEBUG && console.log('Preloaded ' + me.__prefetchedData.length + ' records for cursor');\n me.__decode(data.rows.item(0), success);\n } else if (data.rows.length === 1) {\n me.__decode(data.rows.item(0), success);\n } else {\n CFG.DEBUG && console.log('Reached end of cursors');\n success(undefined, undefined, undefined);\n }\n }, function (tx, err) {\n CFG.DEBUG && console.log('Could not execute Cursor.continue', sql, sqlValues);\n error(err);\n });\n};\n\nIDBCursor.prototype.__findMultiEntry = function (key, primaryKey, tx, success, error) {\n const me = this;\n\n if (me.__prefetchedData && me.__prefetchedData.length === me.__prefetchedIndex) {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n success(undefined, undefined, undefined);\n return;\n }\n\n const quotedKeyColumnName = util.sqlQuote(me.__keyColumnName);\n let sql = ['SELECT * FROM', util.escapeStoreNameForSQL(me.__store.__currentName)];\n const sqlValues = [];\n sql.push('WHERE', quotedKeyColumnName, 'NOT NULL');\n if (me.__range && (me.__range.lower !== undefined && Array.isArray(me.__range.upper))) {\n if (me.__range.upper.indexOf(me.__range.lower) === 0) {\n sql.push('AND', quotedKeyColumnName, \"LIKE ? ESCAPE '^'\");\n sqlValues.push('%' + util.sqlLIKEEscape(me.__range.__lowerCached.slice(0, -1)) + '%');\n }\n }\n\n // Determine the ORDER BY direction based on the cursor.\n const direction = me.__sqlDirection;\n const op = direction === 'ASC' ? '>' : '<';\n const quotedKey = util.sqlQuote('key');\n\n if (primaryKey !== undefined) {\n sql.push('AND', quotedKey, op + '= ?');\n // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`\n sqlValues.push(Key.encode(primaryKey));\n }\n if (key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + '= ?');\n // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`\n sqlValues.push(Key.encode(key));\n } else if (me.__key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + ' ?');\n // Key.convertValueToKey(me.__key); // Already checked when entered\n sqlValues.push(Key.encode(me.__key));\n }\n\n if (!me.__count) {\n // 1. Sort by key\n sql.push('ORDER BY', quotedKeyColumnName, direction);\n\n // 2. Sort by primaryKey (if defined and not unique)\n if (!me.__unique && me.__keyColumnName !== 'key') { // Avoid adding 'key' twice\n sql.push(',', util.sqlQuote('key'), direction);\n }\n\n // 3. Sort by position (if defined)\n\n if (!me.__unique && me.__indexSource) {\n // 4. Sort by object store position (if defined and not unique)\n sql.push(',', util.sqlQuote(me.__valueColumnName), direction);\n }\n }\n sql = sql.join(' ');\n CFG.DEBUG && console.log(sql, sqlValues);\n\n tx.executeSql(sql, sqlValues, function (tx, data) {\n if (data.rows.length > 0) {\n if (me.__count) { // Avoid caching and other processing below\n let ct = 0;\n for (let i = 0; i < data.rows.length; i++) {\n const rowItem = data.rows.item(i);\n const rowKey = Key.decode(rowItem[me.__keyColumnName], true);\n const matches = Key.findMultiEntryMatches(rowKey, me.__range);\n ct += matches.length;\n }\n success(undefined, ct, undefined);\n return;\n }\n const rows = [];\n for (let i = 0; i < data.rows.length; i++) {\n const rowItem = data.rows.item(i);\n const rowKey = Key.decode(rowItem[me.__keyColumnName], true);\n const matches = Key.findMultiEntryMatches(rowKey, me.__range);\n\n for (let j = 0; j < matches.length; j++) {\n const matchingKey = matches[j];\n const clone = {\n matchingKey: Key.encode(matchingKey, true),\n key: rowItem.key\n };\n clone[me.__keyColumnName] = rowItem[me.__keyColumnName];\n clone[me.__valueColumnName] = rowItem[me.__valueColumnName];\n rows.push(clone);\n }\n }\n const reverse = me.direction.indexOf('prev') === 0;\n rows.sort(function (a, b) {\n if (a.matchingKey.replace('[', 'z') < b.matchingKey.replace('[', 'z')) {\n return reverse ? 1 : -1;\n }\n if (a.matchingKey.replace('[', 'z') > b.matchingKey.replace('[', 'z')) {\n return reverse ? -1 : 1;\n }\n if (a.key < b.key) {\n return me.direction === 'prev' ? 1 : -1;\n }\n if (a.key > b.key) {\n return me.direction === 'prev' ? -1 : 1;\n }\n return 0;\n });\n\n if (rows.length > 1) {\n me.__prefetchedIndex = 0;\n me.__prefetchedData = {\n data: rows,\n length: rows.length,\n item: function (index) {\n return this.data[index];\n }\n };\n CFG.DEBUG && console.log('Preloaded ' + me.__prefetchedData.length + ' records for multiEntry cursor');\n me.__decode(rows[0], success);\n } else if (rows.length === 1) {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n me.__decode(rows[0], success);\n } else {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n success(undefined, undefined, undefined);\n }\n } else {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n success(undefined, undefined, undefined);\n }\n }, function (tx, err) {\n CFG.DEBUG && console.log('Could not execute Cursor.continue', sql, sqlValues);\n error(err);\n });\n};\n\n/**\n * Creates an \"onsuccess\" callback\n * @private\n */\nIDBCursor.prototype.__onsuccess = function (success) {\n const me = this;\n return function (key, value, primaryKey) {\n if (me.__count) {\n success(value, me.__req);\n } else {\n if (key !== undefined) {\n me.__gotValue = true;\n }\n me.__key = key === undefined ? null : key;\n me.__primaryKey = primaryKey === undefined ? null : primaryKey;\n me.__value = value === undefined ? null : value;\n const result = key === undefined ? null : me;\n success(result, me.__req);\n }\n };\n};\n\nIDBCursor.prototype.__decode = function (rowItem, callback) {\n const me = this;\n if (me.__multiEntryIndex && me.__unique) {\n if (!me.__matchedKeys) {\n me.__matchedKeys = {};\n }\n if (me.__matchedKeys[rowItem.matchingKey]) {\n callback(undefined, undefined, undefined); // eslint-disable-line standard/no-callback-literal\n return;\n }\n me.__matchedKeys[rowItem.matchingKey] = true;\n }\n const encKey = util.unescapeSQLiteResponse(me.__multiEntryIndex\n ? rowItem.matchingKey\n : rowItem[me.__keyColumnName]\n );\n const encVal = util.unescapeSQLiteResponse(rowItem[me.__valueColumnName]);\n const encPrimaryKey = util.unescapeSQLiteResponse(rowItem.key);\n\n const key = Key.decode(\n encKey,\n me.__multiEntryIndex\n );\n const val = me.__valueDecoder.decode(encVal);\n const primaryKey = Key.decode(encPrimaryKey);\n callback(key, val, primaryKey, encKey /*, encVal, encPrimaryKey */);\n};\n\nIDBCursor.prototype.__sourceOrEffectiveObjStoreDeleted = function () {\n IDBObjectStore.__invalidStateIfDeleted(this.__store, \"The cursor's effective object store has been deleted\");\n if (this.__indexSource) IDBIndex.__invalidStateIfDeleted(this.source, \"The cursor's index source has been deleted\");\n};\n\nIDBCursor.prototype.__invalidateCache = function () {\n this.__prefetchedData = null;\n};\n\nIDBCursor.prototype.__continue = function (key, advanceContinue) {\n const me = this;\n const advanceState = me.__advanceCount !== undefined;\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__gotValue && !advanceContinue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n if (key !== undefined) {\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n const cmpResult = cmp(key, me.key);\n if (cmpResult === 0 ||\n (me.direction.includes('next') && cmpResult === -1) ||\n (me.direction.includes('prev') && cmpResult === 1)\n ) {\n throw createDOMException('DataError', 'Cannot ' + (advanceState ? 'advance' : 'continue') + ' the cursor in an unexpected direction');\n }\n }\n this.__continueFinish(key, undefined, advanceState);\n};\n\nIDBCursor.prototype.__continueFinish = function (key, primaryKey, advanceState) {\n const me = this;\n const recordsToPreloadOnContinue = me.__advanceCount || CFG.cursorPreloadPackSize || 100;\n me.__gotValue = false;\n me.__req.__readyState = 'pending'; // Unset done flag\n\n me.__store.transaction.__pushToQueue(me.__req, function cursorContinue (tx, args, success, error, executeNextRequest) {\n function triggerSuccess (k, val, primKey) {\n if (advanceState) {\n if (me.__advanceCount >= 2 && k !== undefined) {\n me.__advanceCount--;\n me.__key = k;\n me.__continue(undefined, true);\n executeNextRequest(); // We don't call success yet but do need to advance the transaction queue\n return;\n }\n me.__advanceCount = undefined;\n }\n me.__onsuccess(success)(k, val, primKey);\n }\n if (me.__prefetchedData) {\n // We have pre-loaded data for the cursor\n me.__prefetchedIndex++;\n if (me.__prefetchedIndex < me.__prefetchedData.length) {\n me.__decode(me.__prefetchedData.item(me.__prefetchedIndex), function (k, val, primKey, encKey) {\n function checkKey () {\n const cmpResult = key === undefined || cmp(k, key);\n if (cmpResult > 0 || (\n cmpResult === 0 && (\n me.__unique || primaryKey === undefined || cmp(primKey, primaryKey) >= 0\n )\n )) {\n triggerSuccess(k, val, primKey);\n return;\n }\n cursorContinue(tx, args, success, error);\n }\n if (me.__unique && !me.__multiEntryIndex &&\n encKey === Key.encode(me.key, me.__multiEntryIndex)) {\n cursorContinue(tx, args, success, error);\n return;\n }\n checkKey();\n });\n return;\n }\n }\n\n // No (or not enough) pre-fetched data, do query\n me.__find(key, primaryKey, tx, triggerSuccess, function (...args) {\n me.__advanceCount = undefined;\n error(...args);\n }, recordsToPreloadOnContinue);\n });\n};\n\nIDBCursor.prototype['continue'] = function (/* key */) {\n this.__continue(arguments[0]);\n};\n\nIDBCursor.prototype.continuePrimaryKey = function (key, primaryKey) {\n const me = this;\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__indexSource) {\n throw createDOMException('InvalidAccessError', '`continuePrimaryKey` may only be called on an index source.');\n }\n if (!['next', 'prev'].includes(me.direction)) {\n throw createDOMException('InvalidAccessError', '`continuePrimaryKey` may not be called with unique cursors.');\n }\n if (!me.__gotValue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n Key.convertValueToKeyRethrowingAndIfInvalid(primaryKey);\n\n const cmpResult = cmp(key, me.key);\n if (\n (me.direction === 'next' && cmpResult === -1) ||\n (me.direction === 'prev' && cmpResult === 1)\n ) {\n throw createDOMException('DataError', 'Cannot continue the cursor in an unexpected direction');\n }\n function noErrors () {\n me.__continueFinish(key, primaryKey, false);\n }\n if (cmpResult === 0) {\n Sca.encode(primaryKey, function (encPrimaryKey) {\n Sca.encode(me.primaryKey, function (encObjectStorePos) {\n if (encPrimaryKey === encObjectStorePos ||\n (me.direction === 'next' && encPrimaryKey < encObjectStorePos) ||\n (me.direction === 'prev' && encPrimaryKey > encObjectStorePos)\n ) {\n throw createDOMException('DataError', 'Cannot continue the cursor in an unexpected direction');\n }\n noErrors();\n });\n });\n } else {\n noErrors();\n }\n};\n\nIDBCursor.prototype.advance = function (count) {\n const me = this;\n count = util.enforceRange(count, 'unsigned long');\n if (count === 0) {\n throw new TypeError('Calling advance() with count argument 0');\n }\n if (me.__gotValue) { // Only set the count if not running in error (otherwise will override earlier good advance calls)\n me.__advanceCount = count;\n }\n me.__continue();\n};\n\nIDBCursor.prototype.update = function (valueToUpdate) {\n const me = this;\n if (!arguments.length) throw new TypeError('A value must be passed to update()');\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__store.transaction.__assertWritable();\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__gotValue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n if (me.__keyOnly) {\n throw createDOMException('InvalidStateError', 'This cursor method cannot be called when the key only flag has been set.');\n }\n const request = me.__store.transaction.__createRequest(me);\n const key = me.primaryKey;\n function addToQueue (clonedValue) {\n IDBObjectStore.__storingRecordObjectStore(request, me.__store, clonedValue, false, key);\n }\n if (me.__store.keyPath !== null) {\n const [evaluatedKey, clonedValue] = me.__store.__validateKeyAndValueAndCloneValue(valueToUpdate, undefined, true);\n if (cmp(me.primaryKey, evaluatedKey) !== 0) {\n throw createDOMException('DataError', 'The key of the supplied value to `update` is not equal to the cursor\\'s effective key');\n }\n addToQueue(clonedValue);\n } else {\n const clonedValue = Sca.clone(valueToUpdate);\n addToQueue(clonedValue);\n }\n return request;\n};\n\nIDBCursor.prototype['delete'] = function () {\n const me = this;\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__store.transaction.__assertWritable();\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__gotValue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n if (me.__keyOnly) {\n throw createDOMException('InvalidStateError', 'This cursor method cannot be called when the key only flag has been set.');\n }\n return this.__store.transaction.__addToTransactionQueue(function cursorDelete (tx, args, success, error) {\n me.__find(undefined, undefined, tx, function (key, value, primaryKey) {\n const sql = 'DELETE FROM ' + util.escapeStoreNameForSQL(me.__store.__currentName) + ' WHERE \"key\" = ?';\n CFG.DEBUG && console.log(sql, key, primaryKey);\n // Key.convertValueToKey(primaryKey); // Already checked when entered\n tx.executeSql(sql, [util.escapeSQLiteStatement(Key.encode(primaryKey))], function (tx, data) {\n if (data.rowsAffected === 1) {\n me.__store.__cursors.forEach((cursor) => {\n cursor.__invalidateCache(); // Delete\n });\n success(undefined);\n } else {\n error('No rows with key found' + key);\n }\n }, function (tx, data) {\n error(data);\n });\n }, error);\n }, undefined, me);\n};\n\nIDBCursor.prototype[Symbol.toStringTag] = 'IDBCursorPrototype';\n\n['source', 'direction', 'key', 'primaryKey'].forEach((prop) => {\n Object.defineProperty(IDBCursor.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\nObject.defineProperty(IDBCursor, 'prototype', {\n writable: false\n});\n\nclass IDBCursorWithValue extends IDBCursor {}\nconst IDBCursorWithValueAlias = IDBCursorWithValue;\nIDBCursorWithValue.__createInstance = function (...args) {\n function IDBCursorWithValue () {\n IDBCursor.__super.call(this, ...args);\n this[Symbol.toStringTag] = 'IDBCursorWithValue';\n util.defineReadonlyProperties(this, 'value');\n }\n IDBCursorWithValue.prototype = IDBCursorWithValueAlias.prototype;\n return new IDBCursorWithValue();\n};\n\nObject.defineProperty(IDBCursorWithValue.prototype, 'value', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n});\n\nIDBCursorWithValue.prototype[Symbol.toStringTag] = 'IDBCursorWithValuePrototype';\n\nObject.defineProperty(IDBCursorWithValue, 'prototype', {\n writable: false\n});\n\nexport {IDBCursor, IDBCursorWithValue};\n","import {createDOMException} from './DOMException';\nimport {createEvent} from './Event';\nimport * as util from './util';\nimport DOMStringList from './DOMStringList';\nimport IDBObjectStore from './IDBObjectStore';\nimport IDBTransaction from './IDBTransaction';\nimport * as Sca from './Sca';\nimport CFG from './CFG';\nimport {EventTargetFactory} from 'eventtarget';\n\nconst listeners = ['onabort', 'onclose', 'onerror', 'onversionchange'];\nconst readonlyProperties = ['name', 'version', 'objectStoreNames'];\n\n/**\n * IDB Database Object\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#database-interface\n * @constructor\n */\nfunction IDBDatabase () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBDatabaseAlias = IDBDatabase;\nIDBDatabase.__createInstance = function (db, name, oldVersion, version, storeProperties) {\n function IDBDatabase () {\n this[Symbol.toStringTag] = 'IDBDatabase';\n util.defineReadonlyProperties(this, readonlyProperties);\n this.__db = db;\n this.__closed = false;\n this.__oldVersion = oldVersion;\n this.__version = version;\n this.__name = name;\n listeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n });\n listeners.forEach((l) => {\n this[l] = null;\n });\n this.__setOptions({\n legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n });\n\n this.__transactions = [];\n this.__objectStores = {};\n this.__objectStoreNames = DOMStringList.__createInstance();\n const itemCopy = {};\n for (let i = 0; i < storeProperties.rows.length; i++) {\n const item = storeProperties.rows.item(i);\n // Safari implements `item` getter return object's properties\n // as readonly, so we copy all its properties (except our\n // custom `currNum` which we don't need) onto a new object\n itemCopy.name = item.name;\n itemCopy.keyPath = Sca.decode(item.keyPath);\n ['autoInc', 'indexList'].forEach(function (prop) {\n itemCopy[prop] = JSON.parse(item[prop]);\n });\n itemCopy.idbdb = this;\n const store = IDBObjectStore.__createInstance(itemCopy);\n this.__objectStores[store.name] = store;\n this.objectStoreNames.push(store.name);\n }\n this.__oldObjectStoreNames = this.objectStoreNames.clone();\n }\n IDBDatabase.prototype = IDBDatabaseAlias.prototype;\n return new IDBDatabase();\n};\n\nIDBDatabase.prototype = EventTargetFactory.createInstance();\nIDBDatabase.prototype[Symbol.toStringTag] = 'IDBDatabasePrototype';\n\n/**\n * Creates a new object store.\n * @param {string} storeName\n * @param {object} [createOptions]\n * @returns {IDBObjectStore}\n */\nIDBDatabase.prototype.createObjectStore = function (storeName /* , createOptions */) {\n let createOptions = arguments[1];\n storeName = String(storeName); // W3C test within IDBObjectStore.js seems to accept string conversion\n if (!(this instanceof IDBDatabase)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No object store name was specified');\n }\n IDBTransaction.__assertVersionChange(this.__versionTransaction); // this.__versionTransaction may not exist if called mistakenly by user in onsuccess\n IDBTransaction.__assertNotFinishedObjectStoreMethod(this.__versionTransaction);\n IDBTransaction.__assertActive(this.__versionTransaction);\n\n createOptions = Object.assign({}, createOptions);\n let keyPath = createOptions.keyPath;\n keyPath = keyPath === undefined ? null : keyPath = util.convertToSequenceDOMString(keyPath);\n if (keyPath !== null && !util.isValidKeyPath(keyPath)) {\n throw createDOMException('SyntaxError', 'The keyPath argument contains an invalid key path.');\n }\n\n if (this.__objectStores[storeName] && !this.__objectStores[storeName].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Object store \"' + storeName + '\" already exists in ' + this.name);\n }\n\n const autoIncrement = createOptions.autoIncrement;\n if (autoIncrement && (keyPath === '' || Array.isArray(keyPath))) {\n throw createDOMException('InvalidAccessError', 'With autoIncrement set, the keyPath argument must not be an array or empty string.');\n }\n\n /** @name IDBObjectStoreProperties **/\n const storeProperties = {\n name: storeName,\n keyPath: keyPath,\n autoInc: autoIncrement,\n indexList: {},\n idbdb: this\n };\n const store = IDBObjectStore.__createInstance(storeProperties, this.__versionTransaction);\n return IDBObjectStore.__createObjectStore(this, store);\n};\n\n/**\n * Deletes an object store.\n * @param {string} storeName\n */\nIDBDatabase.prototype.deleteObjectStore = function (storeName) {\n if (!(this instanceof IDBDatabase)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No object store name was specified');\n }\n IDBTransaction.__assertVersionChange(this.__versionTransaction);\n IDBTransaction.__assertNotFinishedObjectStoreMethod(this.__versionTransaction);\n IDBTransaction.__assertActive(this.__versionTransaction);\n\n const store = this.__objectStores[storeName];\n if (!store) {\n throw createDOMException('NotFoundError', 'Object store \"' + storeName + '\" does not exist in ' + this.name);\n }\n\n IDBObjectStore.__deleteObjectStore(this, store);\n};\n\nIDBDatabase.prototype.close = function () {\n if (!(this instanceof IDBDatabase)) {\n throw new TypeError('Illegal invocation');\n }\n this.__closed = true;\n if (this.__unblocking) {\n this.__unblocking.check();\n }\n};\n\n/**\n * Starts a new transaction.\n * @param {string|string[]} storeNames\n * @param {string} mode\n * @returns {IDBTransaction}\n */\nIDBDatabase.prototype.transaction = function (storeNames /* , mode */) {\n let mode = arguments[1];\n storeNames = typeof storeNames === 'string'\n ? [storeNames]\n : (util.isIterable(storeNames)\n ? [ // Creating new array also ensures sequence is passed by value: https://heycam.github.io/webidl/#idl-sequence\n ...new Set( // to be unique\n util.convertToSequenceDOMString(storeNames) // iterables have `ToString` applied (and we convert to array for convenience)\n )\n ].sort() // must be sorted\n : (function () {\n throw new TypeError('You must supply a valid `storeNames` to `IDBDatabase.transaction`');\n }()));\n\n // Since SQLite (at least node-websql and definitely WebSQL) requires\n // locking of the whole database, to allow simultaneous readwrite\n // operations on transactions without overlapping stores, we'd probably\n // need to save the stores in separate databases (we could also consider\n // prioritizing readonly but not starving readwrite).\n // Even for readonly transactions, due to [issue 17](https://github.com/nolanlawson/node-websql/issues/17),\n // we're not currently actually running the SQL requests in parallel.\n if (typeof mode === 'number') {\n mode = mode === 1 ? 'readwrite' : 'readonly';\n CFG.DEBUG && console.log('Mode should be a string, but was specified as ', mode); // Todo Deprecated: Remove this option as no longer in spec\n } else {\n mode = mode || 'readonly';\n }\n\n IDBTransaction.__assertNotVersionChange(this.__versionTransaction);\n if (this.__closed) {\n throw createDOMException('InvalidStateError', 'An attempt was made to start a new transaction on a database connection that is not open');\n }\n\n const objectStoreNames = DOMStringList.__createInstance();\n storeNames.forEach((storeName) => {\n if (!this.objectStoreNames.contains(storeName)) {\n throw createDOMException('NotFoundError', 'The \"' + storeName + '\" object store does not exist');\n }\n objectStoreNames.push(storeName);\n });\n\n if (storeNames.length === 0) {\n throw createDOMException('InvalidAccessError', 'No valid object store names were specified');\n }\n\n if (mode !== 'readonly' && mode !== 'readwrite') {\n throw new TypeError('Invalid transaction mode: ' + mode);\n }\n\n // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n\n const trans = IDBTransaction.__createInstance(this, objectStoreNames, mode);\n this.__transactions.push(trans);\n return trans;\n};\n\n// Todo __forceClose: Add tests for `__forceClose`\nIDBDatabase.prototype.__forceClose = function (msg) {\n const me = this;\n me.close();\n let ct = 0;\n me.__transactions.forEach(function (trans) {\n trans.on__abort = function () {\n ct++;\n if (ct === me.__transactions.length) {\n // Todo __forceClose: unblock any pending `upgradeneeded` or `deleteDatabase` calls\n const evt = createEvent('close');\n setTimeout(() => {\n me.dispatchEvent(evt);\n });\n }\n };\n trans.__abortTransaction(createDOMException('AbortError', 'The connection was force-closed: ' + (msg || '')));\n });\n};\n\nlisteners.forEach((listener) => {\n Object.defineProperty(IDBDatabase.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBDatabase.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nObject.defineProperty(IDBDatabase.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBDatabase\n});\n\nObject.defineProperty(IDBDatabase, 'prototype', {\n writable: false\n});\n\nexport default IDBDatabase;\n","/* globals location, Event */\nimport {createEvent, ShimEvent, ShimCustomEvent, ShimEventTarget} from './Event';\nimport IDBVersionChangeEvent from './IDBVersionChangeEvent';\nimport {logError, webSQLErrback, createDOMException, ShimDOMException} from './DOMException';\nimport {IDBOpenDBRequest, IDBRequest} from './IDBRequest';\nimport ShimDOMStringList from './DOMStringList';\nimport * as util from './util';\nimport * as Key from './Key';\nimport IDBTransaction from './IDBTransaction';\nimport IDBDatabase from './IDBDatabase';\nimport CFG from './CFG';\nimport SyncPromise from 'sync-promise';\nimport path from 'path';\n\nconst getOrigin = () => (typeof location !== 'object' || !location) ? 'null' : location.origin;\nconst hasNullOrigin = () => CFG.checkOrigin !== false && (getOrigin() === 'null');\n\n// Todo: This really should be process and tab-independent so the\n// origin could vary; in the browser, this might be through a\n// `SharedWorker`\nconst connectionQueue = {};\n\nfunction processNextInConnectionQueue (name, origin = getOrigin()) {\n const queueItems = connectionQueue[origin][name];\n if (!queueItems[0]) { // Nothing left to process\n return;\n }\n const {req, cb} = queueItems[0]; // Keep in queue to prevent continuation\n function removeFromQueue () {\n queueItems.shift();\n processNextInConnectionQueue(name, origin);\n }\n req.addEventListener('success', removeFromQueue);\n req.addEventListener('error', removeFromQueue);\n cb(req);\n}\n\nfunction addRequestToConnectionQueue (req, name, origin = getOrigin(), cb) {\n if (!connectionQueue[origin][name]) {\n connectionQueue[origin][name] = [];\n }\n connectionQueue[origin][name].push({req, cb});\n\n if (connectionQueue[origin][name].length === 1) { // If there are no items in the queue, we have to start it\n processNextInConnectionQueue(name, origin);\n }\n}\n\nfunction triggerAnyVersionChangeAndBlockedEvents (openConnections, req, oldVersion, newVersion) {\n // Todo: For Node (and in browser using service workers if available?) the\n // connections ought to involve those in any process; should also\n // auto-close if unloading\n const connectionIsClosed = (connection) => connection.__closed;\n const connectionsClosed = () => openConnections.every(connectionIsClosed);\n return openConnections.reduce(function (promises, entry) {\n if (connectionIsClosed(entry)) {\n return promises;\n }\n return promises.then(function () {\n if (connectionIsClosed(entry)) {\n // Prior onversionchange must have caused this connection to be closed\n return;\n }\n const e = new IDBVersionChangeEvent('versionchange', {oldVersion, newVersion});\n return new SyncPromise(function (resolve) {\n setTimeout(() => {\n entry.dispatchEvent(e); // No need to catch errors\n resolve();\n });\n });\n });\n }, SyncPromise.resolve()).then(function () {\n if (!connectionsClosed()) {\n return new SyncPromise(function (resolve) {\n const unblocking = {\n check: function check () {\n if (connectionsClosed()) {\n resolve();\n }\n }\n };\n const e = new IDBVersionChangeEvent('blocked', {oldVersion, newVersion});\n setTimeout(() => {\n req.dispatchEvent(e); // No need to catch errors\n if (!connectionsClosed()) {\n openConnections.forEach((connection) => {\n if (!connectionIsClosed(connection)) {\n connection.__unblocking = unblocking;\n }\n });\n } else {\n resolve();\n }\n });\n });\n }\n });\n}\n\nconst websqlDBCache = {};\nlet sysdb;\nlet nameCounter = 0;\n\nfunction getLatestCachedWebSQLVersion (name) {\n return Object.keys(websqlDBCache[name]).map(Number).reduce(\n (prev, curr) => curr > prev ? curr : prev, 0\n );\n}\n\nfunction getLatestCachedWebSQLDB (name) {\n return websqlDBCache[name] && websqlDBCache[name][ // eslint-disable-line standard/computed-property-even-spacing\n getLatestCachedWebSQLVersion()\n ];\n}\n\nfunction cleanupDatabaseResources (__openDatabase, name, escapedDatabaseName, databaseDeleted, dbError) {\n const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n if (useMemoryDatabase) {\n const latestSQLiteDBCached = websqlDBCache[name] ? getLatestCachedWebSQLDB(name) : null;\n if (!latestSQLiteDBCached) {\n console.warn('Could not find a memory database instance to delete.');\n databaseDeleted();\n return;\n }\n const sqliteDB = latestSQLiteDBCached._db && latestSQLiteDBCached._db._db;\n if (!sqliteDB || !sqliteDB.close) {\n console.error('The `openDatabase` implementation does not have the expected `._db._db.close` method for closing the database');\n return;\n }\n sqliteDB.close(function (err) {\n if (err) {\n console.warn('Error closing (destroying) memory database');\n return;\n }\n databaseDeleted();\n });\n return;\n }\n if (CFG.deleteDatabaseFiles !== false && ({}.toString.call(process) === '[object process]')) {\n require('fs').unlink(require('path').resolve(escapedDatabaseName), (err) => {\n if (err && err.code !== 'ENOENT') { // Ignore if file is already deleted\n dbError({code: 0, message: 'Error removing database file: ' + escapedDatabaseName + ' ' + err});\n return;\n }\n databaseDeleted();\n });\n return;\n }\n\n const sqliteDB = __openDatabase(\n path.join(CFG.databaseBasePath || '', escapedDatabaseName),\n 1,\n name,\n CFG.DEFAULT_DB_SIZE\n );\n sqliteDB.transaction(function (tx) {\n tx.executeSql('SELECT \"name\" FROM __sys__', [], function (tx, data) {\n const tables = data.rows;\n (function deleteTables (i) {\n if (i >= tables.length) {\n // If all tables are deleted, delete the housekeeping tables\n tx.executeSql('DROP TABLE IF EXISTS __sys__', [], function () {\n databaseDeleted();\n }, dbError);\n } else {\n // Delete all tables in this database, maintained in the sys table\n tx.executeSql('DROP TABLE ' + util.escapeStoreNameForSQL(\n util.unescapeSQLiteResponse( // Avoid double-escaping\n tables.item(i).name\n )\n ), [], function () {\n deleteTables(i + 1);\n }, function () {\n deleteTables(i + 1);\n });\n }\n }(0));\n }, function (e) {\n // __sys__ table does not exist, but that does not mean delete did not happen\n databaseDeleted();\n });\n });\n}\n\n/**\n * Creates the sysDB to keep track of version numbers for databases\n **/\nfunction createSysDB (__openDatabase, success, failure) {\n function sysDbCreateError (tx, err) {\n err = webSQLErrback(err);\n CFG.DEBUG && console.log('Error in sysdb transaction - when creating dbVersions', err);\n failure(err);\n }\n\n if (sysdb) {\n success();\n } else {\n sysdb = __openDatabase(\n typeof CFG.memoryDatabase === 'string'\n ? CFG.memoryDatabase\n : path.join(\n (typeof CFG.sysDatabaseBasePath === 'string'\n ? CFG.sysDatabaseBasePath\n : (CFG.databaseBasePath || '')),\n '__sysdb__' + (CFG.addSQLiteExtension !== false ? '.sqlite' : '')\n ),\n 1,\n 'System Database',\n CFG.DEFAULT_DB_SIZE\n );\n sysdb.transaction(function (systx) {\n systx.executeSql('CREATE TABLE IF NOT EXISTS dbVersions (name BLOB, version INT);', [], success, sysDbCreateError);\n }, sysDbCreateError);\n }\n}\n\n/**\n * IDBFactory Class\n * https://w3c.github.io/IndexedDB/#idl-def-IDBFactory\n * @constructor\n */\nfunction IDBFactory () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBFactoryAlias = IDBFactory;\nIDBFactory.__createInstance = function () {\n function IDBFactory () {\n this[Symbol.toStringTag] = 'IDBFactory';\n this.modules = { // Export other shims (especially for testing)\n Event: typeof Event !== 'undefined' ? Event : ShimEvent,\n Error, // For test comparisons\n ShimEvent,\n ShimCustomEvent,\n ShimEventTarget,\n ShimDOMException,\n ShimDOMStringList,\n IDBFactory: IDBFactoryAlias\n };\n this.utils = {createDOMException}; // Expose for ease in simulating such exceptions during testing\n this.__connections = {};\n }\n IDBFactory.prototype = IDBFactoryAlias.prototype;\n return new IDBFactory();\n};\n\n/**\n * The IndexedDB Method to create a new database and return the DB\n * @param {string} name\n * @param {number} version\n */\nIDBFactory.prototype.open = function (name /* , version */) {\n const me = this;\n if (!(me instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n let version = arguments[1];\n\n if (arguments.length === 0) {\n throw new TypeError('Database name is required');\n }\n if (version !== undefined) {\n version = util.enforceRange(version, 'unsigned long long');\n if (version === 0) {\n throw new TypeError('Version cannot be 0');\n }\n }\n if (hasNullOrigin()) {\n throw createDOMException('SecurityError', 'Cannot open an IndexedDB database from an opaque origin.');\n }\n\n const req = IDBOpenDBRequest.__createInstance();\n let calledDbCreateError = false;\n\n if (CFG.autoName && name === '') {\n name = 'autoNamedDatabase_' + nameCounter++;\n }\n name = String(name); // cast to a string\n const sqlSafeName = util.escapeSQLiteStatement(name);\n\n const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n const useDatabaseCache = CFG.cacheDatabaseInstances !== false || useMemoryDatabase;\n\n let escapedDatabaseName;\n try {\n escapedDatabaseName = util.escapeDatabaseNameForSQLAndFiles(name);\n } catch (err) {\n throw err; // new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');\n }\n\n function dbCreateError (tx, err) {\n if (calledDbCreateError) {\n return;\n }\n err = err ? webSQLErrback(err) : tx;\n calledDbCreateError = true;\n // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n const evt = createEvent('error', err, {bubbles: true, cancelable: true});\n req.__readyState = 'done';\n req.__error = err;\n req.__result = undefined;\n req.dispatchEvent(evt);\n }\n\n function openDB (oldVersion) {\n let db;\n if ((useMemoryDatabase || useDatabaseCache) && name in websqlDBCache && websqlDBCache[name][version]) {\n db = websqlDBCache[name][version];\n } else {\n db = me.__openDatabase(\n useMemoryDatabase ? CFG.memoryDatabase : path.join(CFG.databaseBasePath || '', escapedDatabaseName),\n 1,\n name,\n CFG.DEFAULT_DB_SIZE\n );\n if (useDatabaseCache) {\n websqlDBCache[name][version] = db;\n }\n }\n\n if (version === undefined) {\n version = oldVersion || 1;\n }\n if (oldVersion > version) {\n const err = createDOMException('VersionError', 'An attempt was made to open a database using a lower version than the existing version.', version);\n dbCreateError(err);\n return;\n }\n\n db.transaction(function (tx) {\n tx.executeSql('CREATE TABLE IF NOT EXISTS __sys__ (name BLOB, keyPath BLOB, autoInc BOOLEAN, indexList BLOB, currNum INTEGER)', [], function () {\n tx.executeSql('SELECT \"name\", \"keyPath\", \"autoInc\", \"indexList\" FROM __sys__', [], function (tx, data) {\n function finishRequest () {\n req.__readyState = 'done';\n req.__result = connection;\n }\n const connection = IDBDatabase.__createInstance(db, name, oldVersion, version, data);\n if (!me.__connections[name]) {\n me.__connections[name] = [];\n }\n me.__connections[name].push(connection);\n\n if (oldVersion < version) {\n const openConnections = me.__connections[name].slice(0, -1);\n triggerAnyVersionChangeAndBlockedEvents(openConnections, req, oldVersion, version).then(function () {\n // DB Upgrade in progress\n let sysdbFinishedCb = function (systx, err, cb) {\n if (err) {\n try {\n systx.executeSql('ROLLBACK', [], cb, cb);\n } catch (er) { // Browser may fail with expired transaction above so\n // no choice but to manually revert\n sysdb.transaction(function (systx) {\n function reportError (msg) {\n throw new Error('Unable to roll back upgrade transaction!' + (msg || ''));\n }\n\n // Attempt to revert\n if (oldVersion === 0) {\n systx.executeSql('DELETE FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function () {\n cb(reportError);\n }, reportError);\n } else {\n systx.executeSql('UPDATE dbVersions SET \"version\" = ? WHERE \"name\" = ?', [oldVersion, sqlSafeName], cb, reportError);\n }\n });\n }\n return;\n }\n cb(); // In browser, should auto-commit\n };\n\n sysdb.transaction(function (systx) {\n function versionSet () {\n const e = new IDBVersionChangeEvent('upgradeneeded', {oldVersion, newVersion: version});\n req.__result = connection;\n req.__transaction = req.__result.__versionTransaction = IDBTransaction.__createInstance(req.__result, req.__result.objectStoreNames, 'versionchange');\n req.__readyState = 'done';\n req.transaction.__addNonRequestToTransactionQueue(function onupgradeneeded (tx, args, finished, error) {\n req.dispatchEvent(e);\n if (e.__legacyOutputDidListenersThrowError) {\n logError('Error', 'An error occurred in an upgradeneeded handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n req.transaction.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n return;\n }\n finished();\n });\n req.transaction.on__beforecomplete = function (ev) {\n req.__result.__versionTransaction = null;\n sysdbFinishedCb(systx, false, function () {\n req.transaction.__transFinishedCb(false, function () {\n if (useDatabaseCache) {\n if (name in websqlDBCache) {\n delete websqlDBCache[name][version];\n }\n }\n ev.complete();\n req.__transaction = null;\n });\n });\n };\n req.transaction.on__preabort = function () {\n // We ensure any cache is deleted before any request error events fire and try to reopen\n if (useDatabaseCache) {\n if (name in websqlDBCache) {\n delete websqlDBCache[name][version];\n }\n }\n };\n req.transaction.on__abort = function () {\n req.__transaction = null;\n connection.close();\n setTimeout(() => {\n const err = createDOMException('AbortError', 'The upgrade transaction was aborted.');\n sysdbFinishedCb(systx, err, function (reportError) {\n if (oldVersion === 0) {\n cleanupDatabaseResources(me.__openDatabase, name, escapedDatabaseName, dbCreateError.bind(null, err), reportError || dbCreateError);\n return;\n }\n dbCreateError(err);\n });\n });\n };\n req.transaction.on__complete = function () {\n if (req.__result.__closed) {\n req.__transaction = null;\n const err = createDOMException('AbortError', 'The connection has been closed.');\n dbCreateError(err);\n return;\n }\n // Since this is running directly after `IDBTransaction.complete`,\n // there should be a new task. However, while increasing the\n // timeout 1ms in `IDBTransaction.__executeRequests` can allow\n // `IDBOpenDBRequest.onsuccess` to trigger faster than a new\n // transaction as required by \"transaction-create_in_versionchange\" in\n // w3c/Transaction.js (though still on a timeout separate from this\n // preceding `IDBTransaction.oncomplete`), this causes a race condition\n // somehow with old transactions (e.g., for the Mocha test,\n // in `IDBObjectStore.deleteIndex`, \"should delete an index that was\n // created in a previous transaction\").\n // setTimeout(() => {\n\n // Todo: Waiting on confirmation re: positioning here of\n // `readyState` (and `result`)--see https://github.com/w3c/IndexedDB/issues/161\n // Note, however, that the readyState and result will be reset anyways\n // req.__readyState = 'pending';\n // req.__result = undefined;\n\n finishRequest();\n\n req.__transaction = null;\n const e = createEvent('success');\n req.dispatchEvent(e);\n // });\n };\n }\n if (oldVersion === 0) {\n systx.executeSql('INSERT INTO dbVersions VALUES (?,?)', [sqlSafeName, version], versionSet, dbCreateError);\n } else {\n systx.executeSql('UPDATE dbVersions SET \"version\" = ? WHERE \"name\" = ?', [version, sqlSafeName], versionSet, dbCreateError);\n }\n }, dbCreateError, null, function (currentTask, err, done, rollback, commit) {\n if (currentTask.readOnly || err) {\n return true;\n }\n sysdbFinishedCb = function (systx, err, cb) {\n if (err) {\n rollback(err, cb);\n } else {\n commit(cb);\n }\n };\n return false;\n });\n });\n } else {\n finishRequest();\n\n const e = createEvent('success');\n req.dispatchEvent(e);\n }\n }, dbCreateError);\n }, dbCreateError);\n }, dbCreateError);\n }\n\n addRequestToConnectionQueue(req, name, /* origin */ undefined, function (req) {\n let latestCachedVersion;\n if (useDatabaseCache) {\n if (!(name in websqlDBCache)) {\n websqlDBCache[name] = {};\n }\n if (version === undefined) {\n latestCachedVersion = getLatestCachedWebSQLVersion(name);\n } else if (websqlDBCache[name][version]) {\n latestCachedVersion = version;\n }\n }\n if (latestCachedVersion) {\n openDB(latestCachedVersion);\n } else {\n createSysDB(me.__openDatabase, function () {\n sysdb.readTransaction(function (sysReadTx) {\n sysReadTx.executeSql('SELECT \"version\" FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function (sysReadTx, data) {\n if (data.rows.length === 0) {\n // Database with this name does not exist\n openDB(0);\n } else {\n openDB(data.rows.item(0).version);\n }\n }, dbCreateError);\n }, dbCreateError);\n }, dbCreateError);\n }\n });\n\n return req;\n};\n\n/**\n * Deletes a database\n * @param {string} name\n * @returns {IDBOpenDBRequest}\n */\nIDBFactory.prototype.deleteDatabase = function (name) {\n const me = this;\n if (!(me instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('Database name is required');\n }\n if (hasNullOrigin()) {\n throw createDOMException('SecurityError', 'Cannot delete an IndexedDB database from an opaque origin.');\n }\n\n name = String(name); // cast to a string\n const sqlSafeName = util.escapeSQLiteStatement(name);\n\n let escapedDatabaseName;\n try {\n escapedDatabaseName = util.escapeDatabaseNameForSQLAndFiles(name);\n } catch (err) {\n throw err; // throw new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');\n }\n\n const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n const useDatabaseCache = CFG.cacheDatabaseInstances !== false || useMemoryDatabase;\n\n const req = IDBOpenDBRequest.__createInstance();\n let calledDBError = false;\n let version = 0;\n\n let sysdbFinishedCbDelete = function (err, cb) {\n cb(err);\n };\n\n // Although the spec has no specific conditions where an error\n // may occur in `deleteDatabase`, it does provide for\n // `UnknownError` as we may require upon a SQL deletion error\n function dbError (tx, err) {\n if (calledDBError || err === true) {\n return;\n }\n err = webSQLErrback(err || tx);\n sysdbFinishedCbDelete(true, function () {\n req.__readyState = 'done';\n req.__error = err;\n req.__result = undefined;\n // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n const e = createEvent('error', err, {bubbles: true, cancelable: true});\n req.dispatchEvent(e);\n calledDBError = true;\n });\n }\n\n addRequestToConnectionQueue(req, name, /* origin */ undefined, function (req) {\n createSysDB(me.__openDatabase, function () {\n // function callback (cb) { cb(); }\n // callback(function () {\n\n function completeDatabaseDelete () {\n req.__result = undefined;\n req.__readyState = 'done';\n const e = new IDBVersionChangeEvent('success', {oldVersion: version, newVersion: null});\n req.dispatchEvent(e);\n }\n\n function databaseDeleted () {\n sysdbFinishedCbDelete(false, function () {\n if (useDatabaseCache && name in websqlDBCache) {\n delete websqlDBCache[name]; // New calls will treat as though never existed\n }\n delete me.__connections[name];\n\n completeDatabaseDelete();\n });\n }\n sysdb.readTransaction(function (sysReadTx) {\n sysReadTx.executeSql('SELECT \"version\" FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function (sysReadTx, data) {\n if (data.rows.length === 0) {\n completeDatabaseDelete();\n return;\n }\n version = data.rows.item(0).version;\n\n const openConnections = me.__connections[name] || [];\n triggerAnyVersionChangeAndBlockedEvents(openConnections, req, version, null).then(function () {\n // Since we need two databases which can't be in a single transaction, we\n // do this deleting from `dbVersions` first since the `__sys__` deleting\n // only impacts file memory whereas this one is critical for avoiding it\n // being found via `open` or `webkitGetDatabaseNames`; however, we will\n // avoid committing anyways until all deletions are made and rollback the\n // `dbVersions` change if they fail\n sysdb.transaction(function (systx) {\n systx.executeSql('DELETE FROM dbVersions WHERE \"name\" = ? ', [sqlSafeName], function () {\n // Todo: We should also check whether `dbVersions` is empty and if so, delete upon\n // `deleteDatabaseFiles` config. We also ought to do this when aborting (see\n // above code with `DELETE FROM dbVersions`)\n cleanupDatabaseResources(me.__openDatabase, name, escapedDatabaseName, databaseDeleted, dbError);\n }, dbError);\n }, dbError, null, function (currentTask, err, done, rollback, commit) {\n if (currentTask.readOnly || err) {\n return true;\n }\n sysdbFinishedCbDelete = function (err, cb) {\n if (err) {\n rollback(err, cb);\n } else {\n commit(cb);\n }\n };\n return false;\n });\n }, dbError);\n }, dbError);\n });\n }, dbError);\n });\n\n return req;\n};\n\n/**\n * Compares two keys\n * @param key1\n * @param key2\n * @returns {number}\n */\nfunction cmp (first, second) {\n const encodedKey1 = Key.encode(first);\n const encodedKey2 = Key.encode(second);\n const result = encodedKey1 > encodedKey2 ? 1 : encodedKey1 === encodedKey2 ? 0 : -1;\n\n if (CFG.DEBUG) {\n // verify that the keys encoded correctly\n let decodedKey1 = Key.decode(encodedKey1);\n let decodedKey2 = Key.decode(encodedKey2);\n if (typeof first === 'object') {\n first = JSON.stringify(first);\n decodedKey1 = JSON.stringify(decodedKey1);\n }\n if (typeof second === 'object') {\n second = JSON.stringify(second);\n decodedKey2 = JSON.stringify(decodedKey2);\n }\n\n // encoding/decoding mismatches are usually due to a loss of floating-point precision\n if (decodedKey1 !== first) {\n console.warn(first + ' was incorrectly encoded as ' + decodedKey1);\n }\n if (decodedKey2 !== second) {\n console.warn(second + ' was incorrectly encoded as ' + decodedKey2);\n }\n }\n\n return result;\n}\n\nIDBFactory.prototype.cmp = function (key1, key2) {\n if (!(this instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length < 2) {\n throw new TypeError('You must provide two keys to be compared');\n }\n // We use encoding facilities already built for proper sorting;\n // the following \"conversions\" are for validation only\n Key.convertValueToKeyRethrowingAndIfInvalid(key1);\n Key.convertValueToKeyRethrowingAndIfInvalid(key2);\n return cmp(key1, key2);\n};\n\n/**\n* NON-STANDARD!! (Also may return outdated information if a database has since been deleted)\n* @link https://www.w3.org/Bugs/Public/show_bug.cgi?id=16137\n* @link http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1537.html\n*/\nIDBFactory.prototype.webkitGetDatabaseNames = function () {\n const me = this;\n if (!(me instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n if (hasNullOrigin()) {\n throw createDOMException('SecurityError', 'Cannot get IndexedDB database names from an opaque origin.');\n }\n\n let calledDbCreateError = false;\n function dbGetDatabaseNamesError (tx, err) {\n if (calledDbCreateError) {\n return;\n }\n err = err ? webSQLErrback(err) : tx;\n calledDbCreateError = true;\n // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n const evt = createEvent('error', err, {bubbles: true, cancelable: true}); // http://stackoverflow.com/questions/40165909/to-where-do-idbopendbrequest-error-events-bubble-up/40181108#40181108\n req.__readyState = 'done';\n req.__error = err;\n req.__result = undefined;\n req.dispatchEvent(evt);\n }\n const req = IDBRequest.__createInstance();\n createSysDB(me.__openDatabase, function () {\n sysdb.readTransaction(function (sysReadTx) {\n sysReadTx.executeSql('SELECT \"name\" FROM dbVersions', [], function (sysReadTx, data) {\n const dbNames = ShimDOMStringList.__createInstance();\n for (let i = 0; i < data.rows.length; i++) {\n dbNames.push(util.unescapeSQLiteResponse(data.rows.item(i).name));\n }\n req.__result = dbNames;\n req.__readyState = 'done';\n const e = createEvent('success'); // http://stackoverflow.com/questions/40165909/to-where-do-idbopendbrequest-error-events-bubble-up/40181108#40181108\n req.dispatchEvent(e);\n }, dbGetDatabaseNamesError);\n }, dbGetDatabaseNamesError);\n }, dbGetDatabaseNamesError);\n return req;\n};\n\n/**\n* @Todo __forceClose: Test\n* This is provided to facilitate unit-testing of the\n* closing of a database connection with a forced flag:\n* \n*/\nIDBFactory.prototype.__forceClose = function (dbName, connIdx, msg) {\n const me = this;\n function forceClose (conn) {\n conn.__forceClose(msg);\n }\n if (dbName == null) {\n Object.values(me.__connections).forEach((conn) => conn.forEach(forceClose));\n } else if (!me.__connections[dbName]) {\n console.log('No database connections with that name to force close');\n } else if (connIdx == null) {\n me.__connections[dbName].forEach(forceClose);\n } else if (!Number.isInteger(connIdx) || connIdx < 0 || connIdx > me.__connections[dbName].length - 1) {\n throw new TypeError(\n 'If providing an argument, __forceClose must be called with a ' +\n 'numeric index to indicate a specific connection to lose'\n );\n } else {\n forceClose(me.__connections[dbName][connIdx]);\n }\n};\n\nIDBFactory.prototype.__setConnectionQueueOrigin = function (origin = getOrigin()) {\n connectionQueue[origin] = {};\n};\n\nIDBFactory.prototype[Symbol.toStringTag] = 'IDBFactoryPrototype';\n\nObject.defineProperty(IDBFactory, 'prototype', {\n writable: false\n});\n\nconst shimIndexedDB = IDBFactory.__createInstance();\nexport {IDBFactory, cmp, shimIndexedDB};\n","import {createDOMException} from './DOMException';\nimport {IDBCursor, IDBCursorWithValue} from './IDBCursor';\nimport * as util from './util';\nimport * as Key from './Key';\nimport {setSQLForKeyRange, IDBKeyRange, convertValueToKeyRange} from './IDBKeyRange';\nimport IDBTransaction from './IDBTransaction';\nimport * as Sca from './Sca';\nimport CFG from './CFG';\nimport IDBObjectStore from './IDBObjectStore';\n\nconst readonlyProperties = ['objectStore', 'keyPath', 'multiEntry', 'unique'];\n\n/**\n * IDB Index\n * http://www.w3.org/TR/IndexedDB/#idl-def-IDBIndex\n * @param {IDBObjectStore} store\n * @param {IDBIndexProperties} indexProperties\n * @constructor\n */\nfunction IDBIndex () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBIndexAlias = IDBIndex;\nIDBIndex.__createInstance = function (store, indexProperties) {\n function IDBIndex () {\n const me = this;\n me[Symbol.toStringTag] = 'IDBIndex';\n util.defineReadonlyProperties(me, readonlyProperties);\n me.__objectStore = store;\n me.__name = me.__originalName = indexProperties.columnName;\n me.__keyPath = Array.isArray(indexProperties.keyPath) ? indexProperties.keyPath.slice() : indexProperties.keyPath;\n const optionalParams = indexProperties.optionalParams;\n me.__multiEntry = !!(optionalParams && optionalParams.multiEntry);\n me.__unique = !!(optionalParams && optionalParams.unique);\n me.__deleted = !!indexProperties.__deleted;\n me.__objectStore.__cursors = indexProperties.cursors || [];\n Object.defineProperty(me, '__currentName', {\n get: function () {\n return '__pendingName' in me ? me.__pendingName : me.name;\n }\n });\n Object.defineProperty(me, 'name', {\n enumerable: false,\n configurable: false,\n get: function () {\n return this.__name;\n },\n set: function (newName) {\n const me = this;\n newName = util.convertToDOMString(newName);\n const oldName = me.name;\n IDBTransaction.__assertVersionChange(me.objectStore.transaction);\n IDBTransaction.__assertActive(me.objectStore.transaction);\n IDBIndexAlias.__invalidStateIfDeleted(me);\n IDBObjectStore.__invalidStateIfDeleted(me);\n if (newName === oldName) {\n return;\n }\n\n if (me.objectStore.__indexes[newName] && !me.objectStore.__indexes[newName].__deleted &&\n !me.objectStore.__indexes[newName].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Index \"' + newName + '\" already exists on ' + me.objectStore.__currentName);\n }\n\n me.__name = newName;\n\n const objectStore = me.objectStore;\n delete objectStore.__indexes[oldName];\n objectStore.__indexes[newName] = me;\n objectStore.indexNames.splice(objectStore.indexNames.indexOf(oldName), 1, newName);\n\n const storeHandle = objectStore.transaction.__storeHandles[objectStore.name];\n const oldIndexHandle = storeHandle.__indexHandles[oldName];\n oldIndexHandle.__name = newName; // Fix old references\n storeHandle.__indexHandles[newName] = oldIndexHandle; // Ensure new reference accessible\n me.__pendingName = oldName;\n\n const colInfoToPreserveArr = [\n ['key', 'BLOB ' + (objectStore.autoIncrement ? 'UNIQUE, inc INTEGER PRIMARY KEY AUTOINCREMENT' : 'PRIMARY KEY')],\n ['value', 'BLOB']\n ].concat(\n Array.from(objectStore.indexNames)\n .filter((indexName) => indexName !== newName)\n .map((indexName) => [util.escapeIndexNameForSQL(indexName), 'BLOB'])\n );\n\n me.__renameIndex(objectStore, oldName, newName, colInfoToPreserveArr, function (tx, success) {\n IDBIndexAlias.__updateIndexList(store, tx, function (store) {\n delete storeHandle.__pendingName;\n success(store);\n });\n });\n }\n });\n }\n IDBIndex.prototype = IDBIndexAlias.prototype;\n return new IDBIndex();\n};\n\nIDBIndex.__invalidStateIfDeleted = function (index, msg) {\n if (index.__deleted || index.__pendingDelete || (\n index.__pendingCreate && index.objectStore.transaction && index.objectStore.transaction.__errored\n )) {\n throw createDOMException('InvalidStateError', msg || 'This index has been deleted');\n }\n};\n\n/**\n * Clones an IDBIndex instance for a different IDBObjectStore instance.\n * @param {IDBIndex} index\n * @param {IDBObjectStore} store\n * @protected\n */\nIDBIndex.__clone = function (index, store) {\n const idx = IDBIndex.__createInstance(store, {\n columnName: index.name,\n keyPath: index.keyPath,\n optionalParams: {\n multiEntry: index.multiEntry,\n unique: index.unique\n }\n });\n ['__pendingCreate', '__pendingDelete', '__deleted', '__originalName', '__recreated'].forEach((p) => {\n idx[p] = index[p];\n });\n return idx;\n};\n\n/**\n * Creates a new index on an object store.\n * @param {IDBObjectStore} store\n * @param {IDBIndex} index\n * @returns {IDBIndex}\n * @protected\n */\nIDBIndex.__createIndex = function (store, index) {\n const indexName = index.name;\n const storeName = store.__currentName;\n const idx = store.__indexes[indexName];\n\n index.__pendingCreate = true;\n\n // Add the index to the IDBObjectStore\n store.indexNames.push(indexName);\n store.__indexes[indexName] = index; // We add to indexes as needs to be available, e.g., if there is a subsequent deleteIndex call\n\n let indexHandle = store.__indexHandles[indexName];\n if (!indexHandle ||\n index.__pendingDelete ||\n index.__deleted ||\n indexHandle.__pendingDelete ||\n indexHandle.__deleted\n ) {\n indexHandle = store.__indexHandles[indexName] = IDBIndex.__clone(index, store);\n }\n\n // Create the index in WebSQL\n const transaction = store.transaction;\n transaction.__addNonRequestToTransactionQueue(function createIndex (tx, args, success, failure) {\n const columnExists = idx && (idx.__deleted || idx.__recreated); // This check must occur here rather than earlier as properties may not have been set yet otherwise\n let indexValues = {};\n\n function error (tx, err) {\n failure(createDOMException('UnknownError', 'Could not create index \"' + indexName + '\"' + err.code + '::' + err.message, err));\n }\n\n function applyIndex (tx) {\n // Update the object store's index list\n IDBIndex.__updateIndexList(store, tx, function () {\n // Add index entries for all existing records\n tx.executeSql('SELECT \"key\", \"value\" FROM ' + util.escapeStoreNameForSQL(storeName), [], function (tx, data) {\n CFG.DEBUG && console.log('Adding existing ' + storeName + ' records to the ' + indexName + ' index');\n addIndexEntry(0);\n\n function addIndexEntry (i) {\n if (i < data.rows.length) {\n try {\n const value = Sca.decode(util.unescapeSQLiteResponse(data.rows.item(i).value));\n let indexKey = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, index.keyPath, index.multiEntry); // Todo: Do we need this stricter error checking?\n if (indexKey.invalid || indexKey.failure) { // Todo: Do we need invalid checks and should we instead treat these as being duplicates?\n throw new Error('Go to catch; ignore bad indexKey');\n }\n indexKey = Key.encode(indexKey.value, index.multiEntry);\n if (index.unique) {\n if (indexValues[indexKey]) {\n indexValues = {};\n failure(createDOMException(\n 'ConstraintError',\n 'Duplicate values already exist within the store'\n ));\n return;\n }\n indexValues[indexKey] = true;\n }\n\n tx.executeSql(\n 'UPDATE ' + util.escapeStoreNameForSQL(storeName) + ' SET ' +\n util.escapeIndexNameForSQL(indexName) + ' = ? WHERE \"key\" = ?',\n [util.escapeSQLiteStatement(indexKey), data.rows.item(i).key],\n function (tx, data) {\n addIndexEntry(i + 1);\n }, error\n );\n } catch (e) {\n // Not a valid value to insert into index, so just continue\n addIndexEntry(i + 1);\n }\n } else {\n delete index.__pendingCreate;\n delete indexHandle.__pendingCreate;\n if (index.__deleted) {\n delete index.__deleted;\n delete indexHandle.__deleted;\n index.__recreated = true;\n indexHandle.__recreated = true;\n }\n indexValues = {};\n success(store);\n }\n }\n }, error);\n }, error);\n }\n\n if (columnExists) {\n // For a previously existing index, just update the index entries in the existing column\n applyIndex(tx);\n } else {\n // For a new index, add a new column to the object store, then apply the index\n const sql = ['ALTER TABLE', util.escapeStoreNameForSQL(storeName), 'ADD', util.escapeIndexNameForSQL(index.name), 'BLOB'].join(' ');\n CFG.DEBUG && console.log(sql);\n tx.executeSql(sql, [], applyIndex, error);\n }\n }, undefined, store);\n};\n\n/**\n * Deletes an index from an object store.\n * @param {IDBObjectStore} store\n * @param {IDBIndex} index\n * @protected\n */\nIDBIndex.__deleteIndex = function (store, index) {\n // Remove the index from the IDBObjectStore\n index.__pendingDelete = true;\n const indexHandle = store.__indexHandles[index.name];\n if (indexHandle) {\n indexHandle.__pendingDelete = true;\n }\n\n store.indexNames.splice(store.indexNames.indexOf(index.name), 1);\n\n // Remove the index in WebSQL\n const transaction = store.transaction;\n transaction.__addNonRequestToTransactionQueue(function deleteIndex (tx, args, success, failure) {\n function error (tx, err) {\n failure(createDOMException('UnknownError', 'Could not delete index \"' + index.name + '\"', err));\n }\n\n // Update the object store's index list\n IDBIndex.__updateIndexList(store, tx, function (store) {\n delete index.__pendingDelete;\n delete index.__recreated;\n index.__deleted = true;\n if (indexHandle) {\n indexHandle.__deleted = true;\n delete indexHandle.__pendingDelete;\n }\n success(store);\n }, error);\n }, undefined, store);\n};\n\n/**\n * Updates index list for the given object store.\n * @param {IDBObjectStore} store\n * @param {object} tx\n * @param {function} success\n * @param {function} failure\n */\nIDBIndex.__updateIndexList = function (store, tx, success, failure) {\n const indexList = {};\n for (let i = 0; i < store.indexNames.length; i++) {\n const idx = store.__indexes[store.indexNames[i]];\n /** @type {IDBIndexProperties} **/\n indexList[idx.name] = {\n columnName: idx.name,\n keyPath: idx.keyPath,\n optionalParams: {\n unique: idx.unique,\n multiEntry: idx.multiEntry\n },\n deleted: !!idx.deleted\n };\n }\n\n CFG.DEBUG && console.log('Updating the index list for ' + store.__currentName, indexList);\n tx.executeSql('UPDATE __sys__ SET \"indexList\" = ? WHERE \"name\" = ?', [JSON.stringify(indexList), util.escapeSQLiteStatement(store.__currentName)], function () {\n success(store);\n }, failure);\n};\n\n/**\n * Retrieves index data for the given key\n * @param {*|IDBKeyRange} range\n * @param {string} opType\n * @param {boolean} nullDisallowed\n * @param {number} count\n * @returns {IDBRequest}\n * @private\n */\nIDBIndex.prototype.__fetchIndexData = function (range, opType, nullDisallowed, count) {\n const me = this;\n if (count !== undefined) {\n count = util.enforceRange(count, 'unsigned long');\n }\n\n IDBIndex.__invalidStateIfDeleted(me);\n IDBObjectStore.__invalidStateIfDeleted(me.objectStore);\n if (me.objectStore.__deleted) {\n throw createDOMException('InvalidStateError', \"This index's object store has been deleted\");\n }\n IDBTransaction.__assertActive(me.objectStore.transaction);\n\n if (nullDisallowed && range == null) {\n throw createDOMException('DataError', 'No key or range was specified');\n }\n\n const fetchArgs = buildFetchIndexDataSQL(nullDisallowed, me, range, opType, false);\n return me.objectStore.transaction.__addToTransactionQueue(function (...args) {\n executeFetchIndexData(count, ...fetchArgs, ...args);\n }, undefined, me);\n};\n\n/**\n * Opens a cursor over the given key range.\n * @param {*|IDBKeyRange} query\n * @param {string} direction\n * @returns {IDBRequest}\n */\nIDBIndex.prototype.openCursor = function (/* query, direction */) {\n const me = this;\n const [query, direction] = arguments;\n const cursor = IDBCursorWithValue.__createInstance(query, direction, me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'value');\n me.__objectStore.__cursors.push(cursor);\n return cursor.__req;\n};\n\n/**\n * Opens a cursor over the given key range. The cursor only includes key values, not data.\n * @param {*|IDBKeyRange} query\n * @param {string} direction\n * @returns {IDBRequest}\n */\nIDBIndex.prototype.openKeyCursor = function (/* query, direction */) {\n const me = this;\n const [query, direction] = arguments;\n const cursor = IDBCursor.__createInstance(query, direction, me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'key');\n me.__objectStore.__cursors.push(cursor);\n return cursor.__req;\n};\n\nIDBIndex.prototype.get = function (query) {\n if (!arguments.length) { // Per https://heycam.github.io/webidl/\n throw new TypeError('A parameter was missing for `IDBIndex.get`.');\n }\n return this.__fetchIndexData(query, 'value', true);\n};\n\nIDBIndex.prototype.getKey = function (query) {\n if (!arguments.length) { // Per https://heycam.github.io/webidl/\n throw new TypeError('A parameter was missing for `IDBIndex.getKey`.');\n }\n return this.__fetchIndexData(query, 'key', true);\n};\n\nIDBIndex.prototype.getAll = function (/* query, count */) {\n const [query, count] = arguments;\n return this.__fetchIndexData(query, 'value', false, count);\n};\n\nIDBIndex.prototype.getAllKeys = function (/* query, count */) {\n const [query, count] = arguments;\n return this.__fetchIndexData(query, 'key', false, count);\n};\n\nIDBIndex.prototype.count = function (/* query */) {\n const me = this;\n const query = arguments[0];\n // With the exception of needing to check whether the index has been\n // deleted, we could, for greater spec parity (if not accuracy),\n // just call:\n // `return me.__objectStore.count(query);`\n\n if (util.instanceOf(query, IDBKeyRange)) { // Todo: Do we need this block?\n // We don't need to add to cursors array since has the count parameter which won't cache\n return IDBCursorWithValue.__createInstance(query, 'next', me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'value', true).__req;\n }\n return me.__fetchIndexData(query, 'count', false);\n};\n\nIDBIndex.prototype.__renameIndex = function (store, oldName, newName, colInfoToPreserveArr = [], cb = null) {\n const newNameType = 'BLOB';\n const storeName = store.__currentName;\n const escapedStoreNameSQL = util.escapeStoreNameForSQL(storeName);\n const escapedTmpStoreNameSQL = util.escapeStoreNameForSQL('tmp_' + storeName);\n const colNamesToPreserve = colInfoToPreserveArr.map((colInfo) => colInfo[0]);\n const colInfoToPreserve = colInfoToPreserveArr.map((colInfo) => colInfo.join(' '));\n const listColInfoToPreserve = (colInfoToPreserve.length ? (colInfoToPreserve.join(', ') + ', ') : '');\n const listColsToPreserve = (colNamesToPreserve.length ? (colNamesToPreserve.join(', ') + ', ') : '');\n\n // We could adapt the approach at http://stackoverflow.com/a/8430746/271577\n // to make the approach reusable without passing column names, but it is a bit fragile\n store.transaction.__addNonRequestToTransactionQueue(function renameIndex (tx, args, success, error) {\n const sql = 'ALTER TABLE ' + escapedStoreNameSQL + ' RENAME TO ' + escapedTmpStoreNameSQL;\n tx.executeSql(sql, [], function (tx, data) {\n const sql = 'CREATE TABLE ' + escapedStoreNameSQL + '(' + listColInfoToPreserve + util.escapeIndexNameForSQL(newName) + ' ' + newNameType + ')';\n tx.executeSql(sql, [], function (tx, data) {\n const sql = 'INSERT INTO ' + escapedStoreNameSQL + '(' +\n listColsToPreserve +\n util.escapeIndexNameForSQL(newName) +\n ') SELECT ' + listColsToPreserve + util.escapeIndexNameForSQL(oldName) + ' FROM ' + escapedTmpStoreNameSQL;\n tx.executeSql(sql, [], function (tx, data) {\n const sql = 'DROP TABLE ' + escapedTmpStoreNameSQL;\n tx.executeSql(sql, [], function (tx, data) {\n if (cb) {\n cb(tx, success);\n return;\n }\n success();\n }, function (tx, err) {\n error(err);\n });\n }, function (tx, err) {\n error(err);\n });\n });\n }, function (tx, err) {\n error(err);\n });\n });\n};\n\nObject.defineProperty(IDBIndex, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && typeof obj.openCursor === 'function' && typeof obj.multiEntry === 'boolean'\n});\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBIndex.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\nObject.defineProperty(IDBIndex.prototype, 'name', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n});\nIDBIndex.prototype[Symbol.toStringTag] = 'IDBIndexPrototype';\n\nObject.defineProperty(IDBIndex, 'prototype', {\n writable: false\n});\n\nfunction executeFetchIndexData (count, unboundedDisallowed, index, hasKey, range, opType, multiChecks, sql, sqlValues, tx, args, success, error) {\n if (unboundedDisallowed) {\n count = 1;\n }\n if (count) {\n sql.push('LIMIT', count);\n }\n const isCount = opType === 'count';\n CFG.DEBUG && console.log('Trying to fetch data for Index', sql.join(' '), sqlValues);\n tx.executeSql(sql.join(' '), sqlValues, function (tx, data) {\n const records = [];\n let recordCount = 0;\n const decode = isCount ? () => {} : (opType === 'key' ? (record) => {\n // Key.convertValueToKey(record.key); // Already validated before storage\n return Key.decode(util.unescapeSQLiteResponse(record.key));\n } : (record) => { // when opType is value\n return Sca.decode(util.unescapeSQLiteResponse(record.value));\n });\n if (index.multiEntry) {\n const escapedIndexNameForKeyCol = util.escapeIndexNameForSQLKeyColumn(index.name);\n const encodedKey = Key.encode(range, index.multiEntry);\n for (let i = 0; i < data.rows.length; i++) {\n const row = data.rows.item(i);\n const rowKey = Key.decode(row[escapedIndexNameForKeyCol]);\n let record;\n if (hasKey && (\n (multiChecks && range.some((check) => rowKey.includes(check))) || // More precise than our SQL\n Key.isMultiEntryMatch(encodedKey, row[escapedIndexNameForKeyCol])\n )) {\n recordCount++;\n record = row;\n } else if (!hasKey && !multiChecks) {\n if (rowKey !== undefined) {\n recordCount += (Array.isArray(rowKey) ? rowKey.length : 1);\n record = row;\n }\n }\n if (record) {\n records.push(decode(record));\n if (unboundedDisallowed) {\n break;\n }\n }\n }\n } else {\n for (let i = 0; i < data.rows.length; i++) {\n const record = data.rows.item(i);\n if (record) {\n records.push(decode(record));\n }\n }\n recordCount = records.length;\n }\n if (isCount) {\n success(recordCount);\n } else if (recordCount === 0) {\n success(unboundedDisallowed ? undefined : []);\n } else {\n success(unboundedDisallowed ? records[0] : records);\n }\n }, error);\n}\n\nfunction buildFetchIndexDataSQL (nullDisallowed, index, range, opType, multiChecks) {\n const hasRange = nullDisallowed || range != null;\n const col = opType === 'count' ? 'key' : opType; // It doesn't matter which column we use for 'count' as long as it is valid\n const sql = [\n 'SELECT', util.sqlQuote(col) + (\n index.multiEntry ? ', ' + util.escapeIndexNameForSQL(index.name) : ''\n ),\n 'FROM', util.escapeStoreNameForSQL(index.objectStore.__currentName),\n 'WHERE', util.escapeIndexNameForSQL(index.name), 'NOT NULL'\n ];\n const sqlValues = [];\n if (hasRange) {\n if (multiChecks) {\n sql.push('AND (');\n range.forEach((innerKey, i) => {\n if (i > 0) sql.push('OR');\n sql.push(util.escapeIndexNameForSQL(index.name), \"LIKE ? ESCAPE '^' \");\n sqlValues.push('%' + util.sqlLIKEEscape(Key.encode(innerKey, index.multiEntry)) + '%');\n });\n sql.push(')');\n } else if (index.multiEntry) {\n sql.push('AND', util.escapeIndexNameForSQL(index.name), \"LIKE ? ESCAPE '^'\");\n sqlValues.push('%' + util.sqlLIKEEscape(Key.encode(range, index.multiEntry)) + '%');\n } else {\n const convertedRange = convertValueToKeyRange(range, nullDisallowed);\n setSQLForKeyRange(convertedRange, util.escapeIndexNameForSQL(index.name), sql, sqlValues, true, false);\n }\n }\n return [nullDisallowed, index, hasRange, range, opType, multiChecks, sql, sqlValues];\n}\n\nexport {buildFetchIndexDataSQL, executeFetchIndexData, IDBIndex, IDBIndex as default};\n","import {createDOMException} from './DOMException';\nimport * as Key from './Key';\nimport * as util from './util';\n\nconst readonlyProperties = ['lower', 'upper', 'lowerOpen', 'upperOpen'];\n\n/**\n * The IndexedDB KeyRange object\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#dfn-key-range\n * @param {Object} lower\n * @param {Object} upper\n * @param {Object} lowerOpen\n * @param {Object} upperOpen\n */\nfunction IDBKeyRange () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBKeyRangeAlias = IDBKeyRange;\nIDBKeyRange.__createInstance = function (lower, upper, lowerOpen, upperOpen) {\n function IDBKeyRange () {\n this[Symbol.toStringTag] = 'IDBKeyRange';\n if (lower === undefined && upper === undefined) {\n throw createDOMException('DataError', 'Both arguments to the key range method cannot be undefined');\n }\n let lowerConverted, upperConverted;\n if (lower !== undefined) {\n lowerConverted = Key.roundTrip(lower); // Todo: does this make the \"conversions\" redundant\n Key.convertValueToKeyRethrowingAndIfInvalid(lower);\n }\n if (upper !== undefined) {\n upperConverted = Key.roundTrip(upper); // Todo: does this make the \"conversions\" redundant\n Key.convertValueToKeyRethrowingAndIfInvalid(upper);\n }\n if (lower !== undefined && upper !== undefined && lower !== upper) {\n if (Key.encode(lower) > Key.encode(upper)) {\n throw createDOMException('DataError', '`lower` must not be greater than `upper` argument in `bound()` call.');\n }\n }\n\n this.__lower = lowerConverted;\n this.__upper = upperConverted;\n this.__lowerOpen = !!lowerOpen;\n this.__upperOpen = !!upperOpen;\n }\n IDBKeyRange.prototype = IDBKeyRangeAlias.prototype;\n return new IDBKeyRange();\n};\nIDBKeyRange.prototype.includes = function (key) {\n // We can't do a regular instanceof check as it will create a loop given our hasInstance implementation\n if (!util.isObj(this) || typeof this.__lowerOpen !== 'boolean') {\n throw new TypeError('Illegal invocation');\n }\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.includes requires a key argument');\n }\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n return Key.isKeyInRange(key, this);\n};\n\nIDBKeyRange.only = function (value) {\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.only requires a value argument');\n }\n return IDBKeyRange.__createInstance(value, value, false, false);\n};\n\nIDBKeyRange.lowerBound = function (value /*, open */) {\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.lowerBound requires a value argument');\n }\n return IDBKeyRange.__createInstance(value, undefined, arguments[1], true);\n};\nIDBKeyRange.upperBound = function (value /*, open */) {\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.upperBound requires a value argument');\n }\n return IDBKeyRange.__createInstance(undefined, value, true, arguments[1]);\n};\nIDBKeyRange.bound = function (lower, upper /* , lowerOpen, upperOpen */) {\n if (arguments.length <= 1) {\n throw new TypeError('IDBKeyRange.bound requires lower and upper arguments');\n }\n return IDBKeyRange.__createInstance(lower, upper, arguments[2], arguments[3]);\n};\nIDBKeyRange.prototype[Symbol.toStringTag] = 'IDBKeyRangePrototype';\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBKeyRange.prototype, '__' + prop, {\n enumerable: false,\n configurable: false,\n writable: true\n });\n Object.defineProperty(IDBKeyRange.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n // We can't do a regular instanceof check as it will create a loop given our hasInstance implementation\n if (!util.isObj(this) || typeof this.__lowerOpen !== 'boolean') {\n throw new TypeError('Illegal invocation');\n }\n return this['__' + prop];\n }\n });\n});\n\nObject.defineProperty(IDBKeyRange, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && 'upper' in obj && typeof obj.lowerOpen === 'boolean'\n});\n\nObject.defineProperty(IDBKeyRange, 'prototype', {\n writable: false\n});\n\nfunction setSQLForKeyRange (range, quotedKeyColumnName, sql, sqlValues, addAnd, checkCached) {\n if (range && (range.lower !== undefined || range.upper !== undefined)) {\n if (addAnd) sql.push('AND');\n let encodedLowerKey, encodedUpperKey;\n const hasLower = range.lower !== undefined;\n const hasUpper = range.upper !== undefined;\n if (hasLower) {\n encodedLowerKey = checkCached ? range.__lowerCached : Key.encode(range.lower);\n }\n if (hasUpper) {\n encodedUpperKey = checkCached ? range.__upperCached : Key.encode(range.upper);\n }\n if (hasLower) {\n sqlValues.push(util.escapeSQLiteStatement(encodedLowerKey));\n if (hasUpper && encodedLowerKey === encodedUpperKey && !range.lowerOpen && !range.upperOpen) {\n sql.push(quotedKeyColumnName, '=', '?');\n return;\n }\n sql.push(quotedKeyColumnName, (range.lowerOpen ? '>' : '>='), '?');\n }\n (hasLower && hasUpper) && sql.push('AND');\n if (hasUpper) {\n sql.push(quotedKeyColumnName, (range.upperOpen ? '<' : '<='), '?');\n sqlValues.push(util.escapeSQLiteStatement(encodedUpperKey));\n }\n }\n}\n\nfunction convertValueToKeyRange (value, nullDisallowed) {\n if (util.instanceOf(value, IDBKeyRange)) {\n // We still need to validate IDBKeyRange-like objects (the above check is based on loose duck-typing)\n if (!value.toString() !== '[object IDBKeyRange]') {\n return IDBKeyRange.__createInstance(value.lower, value.upper, value.lowerOpen, value.upperOpen);\n }\n return value;\n }\n if (value == null) {\n if (nullDisallowed) {\n throw createDOMException('DataError', 'No key or range was specified');\n }\n return undefined; // Represents unbounded\n }\n Key.convertValueToKeyRethrowingAndIfInvalid(value);\n return IDBKeyRange.only(value);\n}\n\nexport {setSQLForKeyRange, IDBKeyRange, convertValueToKeyRange, IDBKeyRange as default};\n","import {createDOMException} from './DOMException';\nimport {IDBCursor, IDBCursorWithValue} from './IDBCursor';\nimport {setSQLForKeyRange, convertValueToKeyRange} from './IDBKeyRange';\nimport DOMStringList from './DOMStringList';\nimport * as util from './util';\nimport * as Key from './Key';\nimport {executeFetchIndexData, buildFetchIndexDataSQL, IDBIndex} from './IDBIndex';\nimport IDBTransaction from './IDBTransaction';\nimport * as Sca from './Sca';\nimport CFG from './CFG';\nimport SyncPromise from 'sync-promise';\n\nconst readonlyProperties = ['keyPath', 'indexNames', 'transaction', 'autoIncrement'];\n\n/**\n * IndexedDB Object Store\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBObjectStore\n * @param {IDBObjectStoreProperties} storeProperties\n * @param {IDBTransaction} transaction\n * @constructor\n */\nfunction IDBObjectStore () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBObjectStoreAlias = IDBObjectStore;\nIDBObjectStore.__createInstance = function (storeProperties, transaction) {\n function IDBObjectStore () {\n const me = this;\n me[Symbol.toStringTag] = 'IDBObjectStore';\n util.defineReadonlyProperties(this, readonlyProperties);\n me.__name = me.__originalName = storeProperties.name;\n me.__keyPath = Array.isArray(storeProperties.keyPath) ? storeProperties.keyPath.slice() : storeProperties.keyPath;\n me.__transaction = transaction;\n me.__idbdb = storeProperties.idbdb;\n me.__cursors = storeProperties.cursors || [];\n\n // autoInc is numeric (0/1) on WinPhone\n me.__autoIncrement = !!storeProperties.autoInc;\n\n me.__indexes = {};\n me.__indexHandles = {};\n me.__indexNames = DOMStringList.__createInstance();\n const indexList = storeProperties.indexList;\n for (const indexName in indexList) {\n if (indexList.hasOwnProperty(indexName)) {\n const index = IDBIndex.__createInstance(me, indexList[indexName]);\n me.__indexes[index.name] = index;\n if (!index.__deleted) {\n me.indexNames.push(index.name);\n }\n }\n }\n me.__oldIndexNames = me.indexNames.clone();\n Object.defineProperty(this, '__currentName', {\n get: function () {\n return '__pendingName' in this ? this.__pendingName : this.name;\n }\n });\n Object.defineProperty(this, 'name', {\n enumerable: false,\n configurable: false,\n get: function () {\n return this.__name;\n },\n set: function (name) {\n const me = this;\n name = util.convertToDOMString(name);\n const oldName = me.name;\n IDBObjectStoreAlias.__invalidStateIfDeleted(me);\n IDBTransaction.__assertVersionChange(me.transaction);\n IDBTransaction.__assertActive(me.transaction);\n if (oldName === name) {\n return;\n }\n if (me.__idbdb.__objectStores[name] && !me.__idbdb.__objectStores[name].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Object store \"' + name + '\" already exists in ' + me.__idbdb.name);\n }\n\n me.__name = name;\n\n const oldStore = me.__idbdb.__objectStores[oldName];\n oldStore.__name = name; // Fix old references\n me.__idbdb.__objectStores[name] = oldStore; // Ensure new reference accessible\n delete me.__idbdb.__objectStores[oldName]; // Ensure won't be found\n\n me.__idbdb.objectStoreNames.splice(me.__idbdb.objectStoreNames.indexOf(oldName), 1, name);\n\n const oldHandle = me.transaction.__storeHandles[oldName];\n oldHandle.__name = name; // Fix old references\n me.transaction.__storeHandles[name] = oldHandle; // Ensure new reference accessible\n\n me.__pendingName = oldName;\n\n const sql = 'UPDATE __sys__ SET \"name\" = ? WHERE \"name\" = ?';\n const sqlValues = [util.escapeSQLiteStatement(name), util.escapeSQLiteStatement(oldName)];\n CFG.DEBUG && console.log(sql, sqlValues);\n me.transaction.__addNonRequestToTransactionQueue(function objectStoreClear (tx, args, success, error) {\n tx.executeSql(sql, sqlValues, function (tx, data) {\n const sql = 'ALTER TABLE ' + util.escapeStoreNameForSQL(oldName) + ' RENAME TO ' + util.escapeStoreNameForSQL(name);\n CFG.DEBUG && console.log(sql);\n tx.executeSql(sql, [], function (tx, data) {\n delete me.__pendingName;\n success();\n });\n }, function (tx, err) {\n error(err);\n });\n });\n }\n });\n }\n IDBObjectStore.prototype = IDBObjectStoreAlias.prototype;\n return new IDBObjectStore();\n};\n\n/**\n * Clones an IDBObjectStore instance for a different IDBTransaction instance.\n * @param {IDBObjectStore} store\n * @param {IDBTransaction} transaction\n * @protected\n */\nIDBObjectStore.__clone = function (store, transaction) {\n const newStore = IDBObjectStore.__createInstance({\n name: store.__currentName,\n keyPath: Array.isArray(store.keyPath) ? store.keyPath.slice() : store.keyPath,\n autoInc: store.autoIncrement,\n indexList: {},\n idbdb: store.__idbdb,\n cursors: store.__cursors\n }, transaction);\n\n ['__indexes', '__indexNames', '__oldIndexNames', '__deleted', '__pendingDelete', '__pendingCreate', '__originalName'].forEach((p) => {\n newStore[p] = store[p];\n });\n return newStore;\n};\n\nIDBObjectStore.__invalidStateIfDeleted = function (store, msg) {\n if (store.__deleted || store.__pendingDelete || (store.__pendingCreate && (store.transaction && store.transaction.__errored))) {\n throw createDOMException('InvalidStateError', msg || 'This store has been deleted');\n }\n};\n\n/**\n * Creates a new object store in the database.\n * @param {IDBDatabase} db\n * @param {IDBObjectStore} store\n * @protected\n */\nIDBObjectStore.__createObjectStore = function (db, store) {\n // Add the object store to the IDBDatabase\n const storeName = store.__currentName;\n store.__pendingCreate = true;\n db.__objectStores[storeName] = store;\n db.objectStoreNames.push(storeName);\n\n // Add the object store to WebSQL\n const transaction = db.__versionTransaction;\n IDBTransaction.__assertVersionChange(transaction);\n\n const storeHandles = transaction.__storeHandles;\n if (!storeHandles[storeName] ||\n storeHandles[storeName].__pendingDelete ||\n storeHandles[storeName].__deleted) { // The latter conditions are to allow store\n // recreation to create new clone object\n storeHandles[storeName] = IDBObjectStore.__clone(store, transaction);\n }\n\n transaction.__addNonRequestToTransactionQueue(function createObjectStore (tx, args, success, failure) {\n function error (tx, err) {\n CFG.DEBUG && console.log(err);\n failure(createDOMException('UnknownError', 'Could not create object store \"' + storeName + '\"', err));\n }\n\n // key INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE\n const sql = ['CREATE TABLE', util.escapeStoreNameForSQL(storeName), '(key BLOB', store.autoIncrement ? 'UNIQUE, inc INTEGER PRIMARY KEY AUTOINCREMENT' : 'PRIMARY KEY', ', value BLOB)'].join(' ');\n CFG.DEBUG && console.log(sql);\n tx.executeSql(sql, [], function (tx, data) {\n Sca.encode(store.keyPath, function (encodedKeyPath) {\n tx.executeSql('INSERT INTO __sys__ VALUES (?,?,?,?,?)', [util.escapeSQLiteStatement(storeName), encodedKeyPath, store.autoIncrement, '{}', 1], function () {\n delete store.__pendingCreate;\n delete store.__deleted;\n success(store);\n }, error);\n });\n }, error);\n });\n return storeHandles[storeName];\n};\n\n/**\n * Deletes an object store from the database.\n * @param {IDBDatabase} db\n * @param {IDBObjectStore} store\n * @protected\n */\nIDBObjectStore.__deleteObjectStore = function (db, store) {\n // Remove the object store from the IDBDatabase\n store.__pendingDelete = true;\n // We don't delete the other index holders in case need reversion\n store.__indexNames = DOMStringList.__createInstance();\n\n db.objectStoreNames.splice(db.objectStoreNames.indexOf(store.__currentName), 1);\n\n const storeHandle = db.__versionTransaction.__storeHandles[store.__currentName];\n if (storeHandle) {\n storeHandle.__indexNames = DOMStringList.__createInstance();\n storeHandle.__pendingDelete = true;\n }\n\n // Remove the object store from WebSQL\n const transaction = db.__versionTransaction;\n IDBTransaction.__assertVersionChange(transaction);\n\n transaction.__addNonRequestToTransactionQueue(function deleteObjectStore (tx, args, success, failure) {\n function error (tx, err) {\n CFG.DEBUG && console.log(err);\n failure(createDOMException('UnknownError', 'Could not delete ObjectStore', err));\n }\n\n tx.executeSql('SELECT \"name\" FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function (tx, data) {\n if (data.rows.length > 0) {\n tx.executeSql('DROP TABLE ' + util.escapeStoreNameForSQL(store.__currentName), [], function () {\n tx.executeSql('DELETE FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function () {\n delete store.__pendingDelete;\n store.__deleted = true;\n if (storeHandle) {\n delete storeHandle.__pendingDelete;\n storeHandle.__deleted = true;\n }\n success();\n }, error);\n }, error);\n }\n });\n });\n};\n\n// Todo: Although we may end up needing to do cloning genuinely asynchronously (for Blobs and FileLists),\n// and we'll want to ensure the queue starts up synchronously, we nevertheless do the cloning\n// before entering the queue and its callback since the encoding we do is preceded by validation\n// which we must do synchronously anyways. If we reimplement Blobs and FileLists asynchronously,\n// we can detect these types (though validating synchronously as possible) and once entering the\n// queue callback, ensure they load before triggering success or failure (perhaps by returning and\n// a `SyncPromise` from the `Sca.clone` operation and later detecting and ensuring it is resolved\n// before continuing).\n/**\n * Determines whether the given inline or out-of-line key is valid, according to the object store's schema.\n * @param {*} value Used for inline keys\n * @param {*} key Used for out-of-line keys\n * @private\n */\nIDBObjectStore.prototype.__validateKeyAndValueAndCloneValue = function (value, key, cursorUpdate) {\n const me = this;\n if (me.keyPath !== null) {\n if (key !== undefined) {\n throw createDOMException('DataError', 'The object store uses in-line keys and the key parameter was provided', me);\n }\n // Todo Binary: Avoid blobs loading async to ensure cloning (and errors therein)\n // occurs sync; then can make cloning and this method without callbacks (except where ok\n // to be async)\n const clonedValue = Sca.clone(value);\n key = Key.extractKeyValueDecodedFromValueUsingKeyPath(clonedValue, me.keyPath); // May throw so \"rethrow\"\n if (key.invalid) {\n throw createDOMException('DataError', 'KeyPath was specified, but key was invalid.');\n }\n if (key.failure) {\n if (!cursorUpdate) {\n if (!me.autoIncrement) {\n throw createDOMException('DataError', 'Could not evaluate a key from keyPath and there is no key generator');\n }\n if (!Key.checkKeyCouldBeInjectedIntoValue(clonedValue, me.keyPath)) {\n throw createDOMException('DataError', 'A key could not be injected into a value');\n }\n // A key will be generated\n return [undefined, clonedValue];\n }\n throw createDOMException('DataError', 'Could not evaluate a key from keyPath');\n }\n // An `IDBCursor.update` call will also throw if not equal to the cursor’s effective key\n return [key.value, clonedValue];\n }\n if (key === undefined) {\n if (!me.autoIncrement) {\n throw createDOMException('DataError', 'The object store uses out-of-line keys and has no key generator and the key parameter was not provided.', me);\n }\n // A key will be generated\n key = undefined;\n } else {\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n }\n const clonedValue = Sca.clone(value);\n return [key, clonedValue];\n};\n\n/**\n * From the store properties and object, extracts the value for the key in the object store\n * If the table has auto increment, get the current number (unless it has a keyPath leading to a\n * valid but non-numeric or < 1 key)\n * @param {Object} tx\n * @param {Object} value\n * @param {Object} key\n * @param {function} success\n * @param {function} failure\n */\nIDBObjectStore.prototype.__deriveKey = function (tx, value, key, success, failCb) {\n const me = this;\n\n // Only run if cloning is needed\n function keyCloneThenSuccess () { // We want to return the original key, so we don't need to accept an argument here\n Sca.encode(key, function (key) {\n key = Sca.decode(key);\n success(key);\n });\n }\n\n if (me.autoIncrement) {\n // If auto-increment and no valid primaryKey found on the keyPath, get and set the new value, and use\n if (key === undefined) {\n Key.generateKeyForStore(tx, me, function (failure, key) {\n if (failure) {\n failCb(createDOMException('ConstraintError', 'The key generator\\'s current number has reached the maximum safe integer limit'));\n return;\n }\n if (me.keyPath !== null) {\n // Should not throw now as checked earlier\n Key.injectKeyIntoValueUsingKeyPath(value, key, me.keyPath);\n }\n success(key);\n }, failCb);\n } else {\n Key.possiblyUpdateKeyGenerator(tx, me, key, keyCloneThenSuccess, failCb);\n }\n // Not auto-increment\n } else {\n keyCloneThenSuccess();\n }\n};\n\nIDBObjectStore.prototype.__insertData = function (tx, encoded, value, clonedKeyOrCurrentNumber, success, error) {\n const me = this;\n // The `ConstraintError` to occur for `add` upon a duplicate will occur naturally in attempting an insert\n // We process the index information first as it will stored in the same table as the store\n const paramMap = {};\n const indexPromises = Object.keys(\n // We do not iterate `indexNames` as those can be modified synchronously (e.g.,\n // `deleteIndex` could, by its synchronous removal from `indexNames`, prevent\n // iteration here of an index though per IndexedDB test\n // `idbobjectstore_createIndex4-deleteIndex-event_order.js`, `createIndex`\n // should be allowed to first fail even in such a case).\n me.__indexes\n ).map((indexName) => {\n // While this may sometimes resolve sync and sometimes async, the\n // idea is to avoid, where possible, unnecessary delays (and\n // consuming code ought to only see a difference in the browser\n // where we can't control the transaction timeout anyways).\n return new SyncPromise((resolve, reject) => {\n const index = me.__indexes[indexName];\n if (\n // `createIndex` was called synchronously after the current insertion was added to\n // the transaction queue so although it was added to `__indexes`, it is not yet\n // ready to be checked here for the insertion as it will be when running the\n // `createIndex` operation (e.g., if two items with the same key were added and\n // *then* a unique index was created, it should not continue to err and abort\n // yet, as we're still handling the insertions which must be processed (e.g., to\n // add duplicates which then cause a unique index to fail))\n index.__pendingCreate ||\n // If already deleted (and not just slated for deletion (by `__pendingDelete`\n // after this add), we avoid checks\n index.__deleted\n ) {\n resolve();\n return;\n }\n let indexKey;\n try {\n indexKey = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, index.keyPath, index.multiEntry); // Add as necessary to this and skip past this index if exceptions here)\n if (indexKey.invalid || indexKey.failure) {\n throw new Error('Go to catch');\n }\n } catch (err) {\n resolve();\n return;\n }\n indexKey = indexKey.value;\n function setIndexInfo (index) {\n if (indexKey === undefined) {\n return;\n }\n paramMap[index.__currentName] = Key.encode(indexKey, index.multiEntry);\n }\n if (index.unique) {\n const multiCheck = index.multiEntry && Array.isArray(indexKey);\n const fetchArgs = buildFetchIndexDataSQL(true, index, indexKey, 'key', multiCheck);\n executeFetchIndexData(null, ...fetchArgs, tx, null, function success (key) {\n if (key === undefined) {\n setIndexInfo(index);\n resolve();\n return;\n }\n reject(createDOMException(\n 'ConstraintError',\n 'Index already contains a record equal to ' +\n (multiCheck ? 'one of the subkeys of' : '') +\n '`indexKey`'\n ));\n }, reject);\n } else {\n setIndexInfo(index);\n resolve();\n }\n });\n });\n SyncPromise.all(indexPromises).then(() => {\n const sqlStart = ['INSERT INTO', util.escapeStoreNameForSQL(me.__currentName), '('];\n const sqlEnd = [' VALUES ('];\n const insertSqlValues = [];\n if (clonedKeyOrCurrentNumber !== undefined) {\n // Key.convertValueToKey(primaryKey); // Already run\n sqlStart.push(util.sqlQuote('key'), ',');\n sqlEnd.push('?,');\n insertSqlValues.push(util.escapeSQLiteStatement(Key.encode(clonedKeyOrCurrentNumber)));\n }\n for (const key in paramMap) {\n sqlStart.push(util.escapeIndexNameForSQL(key) + ',');\n sqlEnd.push('?,');\n insertSqlValues.push(util.escapeSQLiteStatement(paramMap[key]));\n }\n // removing the trailing comma\n sqlStart.push(util.sqlQuote('value') + ' )');\n sqlEnd.push('?)');\n insertSqlValues.push(util.escapeSQLiteStatement(encoded));\n\n const insertSql = sqlStart.join(' ') + sqlEnd.join(' ');\n CFG.DEBUG && console.log('SQL for adding', insertSql, insertSqlValues);\n\n tx.executeSql(insertSql, insertSqlValues, function (tx, data) {\n success(clonedKeyOrCurrentNumber);\n }, function (tx, err) {\n // Should occur for `add` operation\n error(createDOMException('ConstraintError', err.message, err));\n });\n }).catch(function (err) {\n error(err);\n });\n};\n\nIDBObjectStore.prototype.add = function (value /* , key */) {\n const me = this;\n const key = arguments[1];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No value was specified');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n const request = me.transaction.__createRequest(me);\n const [ky, clonedValue] = me.__validateKeyAndValueAndCloneValue(value, key, false);\n IDBObjectStore.__storingRecordObjectStore(request, me, clonedValue, true, ky);\n return request;\n};\n\nIDBObjectStore.prototype.put = function (value /*, key */) {\n const me = this;\n const key = arguments[1];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No value was specified');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n const request = me.transaction.__createRequest(me);\n const [ky, clonedValue] = me.__validateKeyAndValueAndCloneValue(value, key, false);\n IDBObjectStore.__storingRecordObjectStore(request, me, clonedValue, false, ky);\n return request;\n};\n\nIDBObjectStore.prototype.__overwrite = function (tx, key, cb, error) {\n const me = this;\n // First try to delete if the record exists\n // Key.convertValueToKey(key); // Already run\n const sql = 'DELETE FROM ' + util.escapeStoreNameForSQL(me.__currentName) + ' WHERE \"key\" = ?';\n const encodedKey = Key.encode(key);\n tx.executeSql(sql, [util.escapeSQLiteStatement(encodedKey)], function (tx, data) {\n CFG.DEBUG && console.log('Did the row with the', key, 'exist? ', data.rowsAffected);\n cb(tx);\n }, function (tx, err) {\n error(err);\n });\n};\n\nIDBObjectStore.__storingRecordObjectStore = function (request, store, value, noOverwrite /* , key */) {\n const key = arguments[4];\n store.transaction.__pushToQueue(request, function (tx, args, success, error) {\n store.__deriveKey(tx, value, key, function (clonedKeyOrCurrentNumber) {\n Sca.encode(value, function (encoded) {\n function insert (tx) {\n store.__insertData(tx, encoded, value, clonedKeyOrCurrentNumber, function (...args) {\n store.__cursors.forEach((cursor) => {\n cursor.__invalidateCache();\n });\n success(...args);\n }, error);\n }\n if (!noOverwrite) {\n store.__overwrite(tx, clonedKeyOrCurrentNumber, insert, error);\n return;\n }\n insert(tx);\n });\n }, error);\n });\n};\n\nIDBObjectStore.prototype.__get = function (query, getKey, getAll, count) {\n const me = this;\n if (count !== undefined) {\n count = util.enforceRange(count, 'unsigned long');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n\n const range = convertValueToKeyRange(query, !getAll);\n\n const col = getKey ? 'key' : 'value';\n let sql = ['SELECT', util.sqlQuote(col), 'FROM', util.escapeStoreNameForSQL(me.__currentName)];\n const sqlValues = [];\n if (range !== undefined) {\n sql.push('WHERE');\n setSQLForKeyRange(range, util.sqlQuote('key'), sql, sqlValues);\n }\n if (!getAll) {\n count = 1;\n }\n if (count) {\n if (typeof count !== 'number' || isNaN(count) || !isFinite(count)) {\n throw new TypeError('The count parameter must be a finite number');\n }\n sql.push('LIMIT', count);\n }\n sql = sql.join(' ');\n return me.transaction.__addToTransactionQueue(function objectStoreGet (tx, args, success, error) {\n CFG.DEBUG && console.log('Fetching', me.__currentName, sqlValues);\n tx.executeSql(sql, sqlValues, function (tx, data) {\n CFG.DEBUG && console.log('Fetched data', data);\n let ret;\n try {\n // Opera can't deal with the try-catch here.\n if (data.rows.length === 0) {\n return getAll ? success([]) : success();\n }\n ret = [];\n if (getKey) {\n for (let i = 0; i < data.rows.length; i++) {\n // Key.convertValueToKey(data.rows.item(i).key); // Already validated before storage\n ret.push(\n Key.decode(util.unescapeSQLiteResponse(data.rows.item(i).key), false)\n );\n }\n } else {\n for (let i = 0; i < data.rows.length; i++) {\n ret.push(\n Sca.decode(util.unescapeSQLiteResponse(data.rows.item(i).value))\n );\n }\n }\n if (!getAll) {\n ret = ret[0];\n }\n } catch (e) {\n // If no result is returned, or error occurs when parsing JSON\n CFG.DEBUG && console.log(e);\n }\n success(ret);\n }, function (tx, err) {\n error(err);\n });\n }, undefined, me);\n};\n\nIDBObjectStore.prototype.get = function (query) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.get`.');\n }\n return this.__get(query);\n};\n\nIDBObjectStore.prototype.getKey = function (query) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.getKey`.');\n }\n return this.__get(query, true);\n};\n\nIDBObjectStore.prototype.getAll = function (/* query, count */) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.getAll`.');\n }\n const [query, count] = arguments;\n return this.__get(query, false, true, count);\n};\n\nIDBObjectStore.prototype.getAllKeys = function (/* query, count */) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.getAllKeys`.');\n }\n const [query, count] = arguments;\n return this.__get(query, true, true, count);\n};\n\nIDBObjectStore.prototype['delete'] = function (query) {\n const me = this;\n if (!(this instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.delete`.');\n }\n\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n const range = convertValueToKeyRange(query, true);\n\n const sqlArr = ['DELETE FROM', util.escapeStoreNameForSQL(me.__currentName), 'WHERE'];\n const sqlValues = [];\n setSQLForKeyRange(range, util.sqlQuote('key'), sqlArr, sqlValues);\n const sql = sqlArr.join(' ');\n\n return me.transaction.__addToTransactionQueue(function objectStoreDelete (tx, args, success, error) {\n CFG.DEBUG && console.log('Deleting', me.__currentName, sqlValues);\n tx.executeSql(sql, sqlValues, function (tx, data) {\n CFG.DEBUG && console.log('Deleted from database', data.rowsAffected);\n me.__cursors.forEach((cursor) => {\n cursor.__invalidateCache(); // Delete\n });\n success();\n }, function (tx, err) {\n error(err);\n });\n }, undefined, me);\n};\n\nIDBObjectStore.prototype.clear = function () {\n const me = this;\n if (!(this instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n return me.transaction.__addToTransactionQueue(function objectStoreClear (tx, args, success, error) {\n tx.executeSql('DELETE FROM ' + util.escapeStoreNameForSQL(me.__currentName), [], function (tx, data) {\n CFG.DEBUG && console.log('Cleared all records from database', data.rowsAffected);\n me.__cursors.forEach((cursor) => {\n cursor.__invalidateCache(); // Clear\n });\n success();\n }, function (tx, err) {\n error(err);\n });\n }, undefined, me);\n};\n\nIDBObjectStore.prototype.count = function (/* query */) {\n const me = this;\n const query = arguments[0];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n\n // We don't need to add to cursors array since has the count parameter which won't cache\n return IDBCursorWithValue.__createInstance(query, 'next', me, me, 'key', 'value', true).__req;\n};\n\nIDBObjectStore.prototype.openCursor = function (/* query, direction */) {\n const me = this;\n const [query, direction] = arguments;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n const cursor = IDBCursorWithValue.__createInstance(query, direction, me, me, 'key', 'value');\n me.__cursors.push(cursor);\n return cursor.__req;\n};\n\nIDBObjectStore.prototype.openKeyCursor = function (/* query, direction */) {\n const me = this;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n const [query, direction] = arguments;\n const cursor = IDBCursor.__createInstance(query, direction, me, me, 'key', 'key');\n me.__cursors.push(cursor);\n return cursor.__req;\n};\n\nIDBObjectStore.prototype.index = function (indexName) {\n const me = this;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No index name was specified');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertNotFinished(me.transaction);\n const index = me.__indexes[indexName];\n if (!index || index.__deleted) {\n throw createDOMException('NotFoundError', 'Index \"' + indexName + '\" does not exist on ' + me.__currentName);\n }\n\n if (!me.__indexHandles[indexName] ||\n me.__indexes[indexName].__pendingDelete ||\n me.__indexes[indexName].__deleted\n ) {\n me.__indexHandles[indexName] = IDBIndex.__clone(index, me);\n }\n return me.__indexHandles[indexName];\n};\n\n/**\n * Creates a new index on the object store.\n * @param {string} indexName\n * @param {string} keyPath\n * @param {object} optionalParameters\n * @returns {IDBIndex}\n */\nIDBObjectStore.prototype.createIndex = function (indexName, keyPath /* , optionalParameters */) {\n const me = this;\n let optionalParameters = arguments[2];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n indexName = String(indexName); // W3C test within IDBObjectStore.js seems to accept string conversion\n if (arguments.length === 0) {\n throw new TypeError('No index name was specified');\n }\n if (arguments.length === 1) {\n throw new TypeError('No key path was specified');\n }\n IDBTransaction.__assertVersionChange(me.transaction);\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n if (me.__indexes[indexName] && !me.__indexes[indexName].__deleted && !me.__indexes[indexName].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Index \"' + indexName + '\" already exists on ' + me.__currentName);\n }\n\n keyPath = util.convertToSequenceDOMString(keyPath);\n if (!util.isValidKeyPath(keyPath)) {\n throw createDOMException('SyntaxError', 'A valid keyPath must be supplied');\n }\n if (Array.isArray(keyPath) && optionalParameters && optionalParameters.multiEntry) {\n throw createDOMException('InvalidAccessError', 'The keyPath argument was an array and the multiEntry option is true.');\n }\n\n optionalParameters = optionalParameters || {};\n /** @name IDBIndexProperties **/\n const indexProperties = {\n columnName: indexName,\n keyPath: keyPath,\n optionalParams: {\n unique: !!optionalParameters.unique,\n multiEntry: !!optionalParameters.multiEntry\n }\n };\n const index = IDBIndex.__createInstance(me, indexProperties);\n IDBIndex.__createIndex(me, index);\n return index;\n};\n\nIDBObjectStore.prototype.deleteIndex = function (name) {\n const me = this;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No index name was specified');\n }\n IDBTransaction.__assertVersionChange(me.transaction);\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n const index = me.__indexes[name];\n if (!index) {\n throw createDOMException('NotFoundError', 'Index \"' + name + '\" does not exist on ' + me.__currentName);\n }\n\n IDBIndex.__deleteIndex(me, index);\n};\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBObjectStore.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\nObject.defineProperty(IDBObjectStore.prototype, 'name', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n});\n\nIDBObjectStore.prototype[Symbol.toStringTag] = 'IDBObjectStorePrototype';\n\nObject.defineProperty(IDBObjectStore, 'prototype', {\n writable: false\n});\n\nexport default IDBObjectStore;\n","import {createDOMException} from './DOMException';\nimport {EventTargetFactory} from 'eventtarget';\nimport * as util from './util';\n\nconst listeners = ['onsuccess', 'onerror'];\nconst readonlyProperties = ['source', 'transaction', 'readyState'];\nconst doneFlagGetters = ['result', 'error'];\n\n/**\n * The IDBRequest Object that is returns for all async calls\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#request-api\n */\nclass IDBRequest {\n constructor () {\n throw new TypeError('Illegal constructor');\n }\n}\nIDBRequest.__super = function IDBRequest () {\n this[Symbol.toStringTag] = 'IDBRequest';\n this.__setOptions({\n legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n });\n doneFlagGetters.forEach(function (prop) {\n Object.defineProperty(this, '__' + prop, {\n enumerable: false,\n configurable: false,\n writable: true\n });\n Object.defineProperty(this, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n if (this.__readyState !== 'done') {\n throw createDOMException('InvalidStateError', \"Can't get \" + prop + '; the request is still pending.');\n }\n return this['__' + prop];\n }\n });\n }, this);\n util.defineReadonlyProperties(this, readonlyProperties);\n listeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n configurable: true, // Needed by support.js in W3C IndexedDB tests\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n }, this);\n listeners.forEach((l) => {\n this[l] = null;\n });\n this.__result = undefined;\n this.__error = this.__source = this.__transaction = null;\n this.__readyState = 'pending';\n};\n\nIDBRequest.__createInstance = function () {\n return new IDBRequest.__super();\n};\n\nIDBRequest.prototype = EventTargetFactory.createInstance({extraProperties: ['debug']});\nIDBRequest.prototype[Symbol.toStringTag] = 'IDBRequestPrototype';\n\nIDBRequest.prototype.__getParent = function () {\n if (this.toString() === '[object IDBOpenDBRequest]') {\n return null;\n }\n return this.__transaction;\n};\n\n// Illegal invocations\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBRequest.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\ndoneFlagGetters.forEach(function (prop) {\n Object.defineProperty(IDBRequest.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nlisteners.forEach((listener) => {\n Object.defineProperty(IDBRequest.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nObject.defineProperty(IDBRequest.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBRequest\n});\nIDBRequest.__super.prototype = IDBRequest.prototype;\n\nObject.defineProperty(IDBRequest, 'prototype', {\n writable: false\n});\n\nconst openListeners = ['onblocked', 'onupgradeneeded'];\n\n/**\n * The IDBOpenDBRequest called when a database is opened\n */\nclass IDBOpenDBRequest extends IDBRequest {\n}\nIDBOpenDBRequest.prototype = Object.create(IDBRequest.prototype);\n\nObject.defineProperty(IDBOpenDBRequest.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBOpenDBRequest\n});\n\nconst IDBOpenDBRequestAlias = IDBOpenDBRequest;\nIDBOpenDBRequest.__createInstance = function () {\n function IDBOpenDBRequest () {\n IDBRequest.__super.call(this);\n\n this[Symbol.toStringTag] = 'IDBOpenDBRequest';\n this.__setOptions({\n legacyOutputDidListenersThrowFlag: true, // Event hook for IndexedB\n extraProperties: ['oldVersion', 'newVersion', 'debug']\n }); // Ensure EventTarget preserves our properties\n openListeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n configurable: true, // Needed by support.js in W3C IndexedDB tests\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n }, this);\n openListeners.forEach((l) => {\n this[l] = null;\n });\n }\n IDBOpenDBRequest.prototype = IDBOpenDBRequestAlias.prototype;\n return new IDBOpenDBRequest();\n};\n\nopenListeners.forEach((listener) => {\n Object.defineProperty(IDBOpenDBRequest.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nIDBOpenDBRequest.prototype[Symbol.toStringTag] = 'IDBOpenDBRequestPrototype';\n\nObject.defineProperty(IDBOpenDBRequest, 'prototype', {\n writable: false\n});\n\nexport {IDBRequest, IDBOpenDBRequest};\n","import {createEvent} from './Event';\nimport {logError, findError, webSQLErrback, createDOMException} from './DOMException';\nimport {IDBRequest} from './IDBRequest';\nimport * as util from './util';\nimport IDBObjectStore from './IDBObjectStore';\nimport CFG from './CFG';\nimport {EventTargetFactory} from 'eventtarget';\nimport SyncPromise from 'sync-promise';\n\nlet uniqueID = 0;\nconst listeners = ['onabort', 'oncomplete', 'onerror'];\nconst readonlyProperties = ['objectStoreNames', 'mode', 'db', 'error'];\n\n/**\n * The IndexedDB Transaction\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBTransaction\n * @param {IDBDatabase} db\n * @param {string[]} storeNames\n * @param {string} mode\n * @constructor\n */\nfunction IDBTransaction () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBTransactionAlias = IDBTransaction;\nIDBTransaction.__createInstance = function (db, storeNames, mode) {\n function IDBTransaction () {\n const me = this;\n me[Symbol.toStringTag] = 'IDBTransaction';\n util.defineReadonlyProperties(me, readonlyProperties);\n me.__id = ++uniqueID; // for debugging simultaneous transactions\n me.__active = true;\n me.__running = false;\n me.__errored = false;\n me.__requests = [];\n me.__objectStoreNames = storeNames;\n me.__mode = mode;\n me.__db = db;\n me.__error = null;\n me.__setOptions({\n legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n });\n\n readonlyProperties.forEach((readonlyProp) => {\n Object.defineProperty(this, readonlyProp, {\n configurable: true\n });\n });\n listeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n });\n listeners.forEach((l) => {\n this[l] = null;\n });\n me.__storeHandles = {};\n\n // Kick off the transaction as soon as all synchronous code is done\n setTimeout(() => { me.__executeRequests(); }, 0);\n }\n IDBTransaction.prototype = IDBTransactionAlias.prototype;\n return new IDBTransaction();\n};\n\nIDBTransaction.prototype = EventTargetFactory.createInstance({defaultSync: true, extraProperties: ['complete']}); // Ensure EventTarget preserves our properties\nIDBTransaction.prototype.__transFinishedCb = function (err, cb) {\n if (err) {\n cb(true); // eslint-disable-line standard/no-callback-literal\n return;\n }\n cb();\n};\nIDBTransaction.prototype.__executeRequests = function () {\n const me = this;\n if (me.__running) {\n CFG.DEBUG && console.log('Looks like the request set is already running', me.mode);\n return;\n }\n\n me.__running = true;\n\n me.db.__db[me.mode === 'readonly' ? 'readTransaction' : 'transaction']( // `readTransaction` is optimized, at least in `node-websql`\n function executeRequests (tx) {\n me.__tx = tx;\n let q = null, i = -1;\n\n function success (result, req) {\n if (me.__errored || me.__requestsFinished) {\n // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n return;\n }\n if (req) {\n q.req = req; // Need to do this in case of cursors\n }\n if (q.req.__readyState === 'done') { // Avoid continuing with aborted requests\n return;\n }\n q.req.__readyState = 'done';\n q.req.__result = result;\n q.req.__error = null;\n\n me.__active = true;\n const e = createEvent('success');\n q.req.dispatchEvent(e);\n // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n if (e.__legacyOutputDidListenersThrowError) {\n logError('Error', 'An error occurred in a success handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n me.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n return;\n }\n executeNextRequest();\n }\n\n function error (...args /* tx, err */) {\n if (me.__errored || me.__requestsFinished) {\n // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n return;\n }\n if (q.req && q.req.__readyState === 'done') { // Avoid continuing with aborted requests\n return;\n }\n const err = findError(args);\n if (!q.req) {\n me.__abortTransaction(err);\n return;\n }\n // Fire an error event for the current IDBRequest\n q.req.__readyState = 'done';\n q.req.__error = err;\n q.req.__result = undefined;\n q.req.addLateEventListener('error', function (e) {\n if (e.cancelable && e.defaultPrevented && !e.__legacyOutputDidListenersThrowError) {\n executeNextRequest();\n }\n });\n q.req.addDefaultEventListener('error', function () {\n me.__abortTransaction(q.req.__error);\n });\n\n me.__active = true;\n const e = createEvent('error', err, {bubbles: true, cancelable: true});\n q.req.dispatchEvent(e);\n // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n if (e.__legacyOutputDidListenersThrowError) {\n logError('Error', 'An error occurred in an error handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n e.preventDefault(); // Prevent 'error' default as steps indicate we should abort with `AbortError` even without cancellation\n me.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n }\n }\n\n function executeNextRequest () {\n if (me.__errored || me.__requestsFinished) {\n // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n return;\n }\n i++;\n if (i >= me.__requests.length) {\n // All requests in the transaction are done\n me.__requests = [];\n if (me.__active) {\n requestsFinished();\n }\n } else {\n try {\n q = me.__requests[i];\n if (!q.req) {\n q.op(tx, q.args, executeNextRequest, error);\n return;\n }\n if (q.req.__readyState === 'done') { // Avoid continuing with aborted requests\n return;\n }\n q.op(tx, q.args, success, error, executeNextRequest);\n } catch (e) {\n error(e);\n }\n }\n }\n\n executeNextRequest();\n },\n function webSQLError (webSQLErr) {\n if (webSQLErr === true) { // Not a genuine SQL error\n return;\n }\n const err = webSQLErrback(webSQLErr);\n me.__abortTransaction(err);\n },\n function () {\n // For Node, we don't need to try running here as we can keep\n // the transaction running long enough to rollback (in the\n // next (non-standard) callback for this transaction call)\n if (me.__transFinishedCb !== IDBTransaction.prototype.__transFinishedCb) { // Node\n return;\n }\n if (!me.__transactionEndCallback && !me.__requestsFinished) {\n me.__transactionFinished = true;\n return;\n }\n if (me.__transactionEndCallback && !me.__completed) {\n me.__transFinishedCb(me.__errored, me.__transactionEndCallback);\n }\n },\n function (currentTask, err, done, rollback, commit) {\n if (currentTask.readOnly || err) {\n return true;\n }\n me.__transFinishedCb = function (err, cb) {\n if (err) {\n rollback(err, cb);\n } else {\n commit(cb);\n }\n };\n if (me.__transactionEndCallback && !me.__completed) {\n me.__transFinishedCb(me.__errored, me.__transactionEndCallback);\n }\n return false;\n }\n );\n\n function requestsFinished () {\n me.__active = false;\n me.__requestsFinished = true;\n\n function complete () {\n me.__completed = true;\n CFG.DEBUG && console.log('Transaction completed');\n const evt = createEvent('complete');\n try {\n me.__internal = true;\n me.dispatchEvent(evt);\n me.__internal = false;\n me.dispatchEvent(createEvent('__complete'));\n } catch (e) {\n me.__internal = false;\n // An error occurred in the \"oncomplete\" handler.\n // It's too late to call \"onerror\" or \"onabort\". Throw a global error instead.\n // (this may seem odd/bad, but it's how all native IndexedDB implementations work)\n me.__errored = true;\n throw e;\n } finally {\n me.__storeHandles = {};\n }\n }\n if (me.mode === 'readwrite') {\n if (me.__transactionFinished) {\n complete();\n return;\n }\n me.__transactionEndCallback = complete;\n return;\n }\n if (me.mode === 'readonly') {\n complete();\n return;\n }\n const ev = createEvent('__beforecomplete');\n ev.complete = complete;\n me.dispatchEvent(ev);\n }\n};\n\n/**\n * Creates a new IDBRequest for the transaction.\n * NOTE: The transaction is not queued until you call {@link IDBTransaction#__pushToQueue}\n * @returns {IDBRequest}\n * @protected\n */\nIDBTransaction.prototype.__createRequest = function (source) {\n const me = this;\n const request = IDBRequest.__createInstance();\n request.__source = source !== undefined ? source : me.db;\n request.__transaction = me;\n return request;\n};\n\n/**\n * Adds a callback function to the transaction queue\n * @param {function} callback\n * @param {*} args\n * @returns {IDBRequest}\n * @protected\n */\nIDBTransaction.prototype.__addToTransactionQueue = function (callback, args, source) {\n const request = this.__createRequest(source);\n this.__pushToQueue(request, callback, args);\n return request;\n};\n\n/**\n * Adds a callback function to the transaction queue without generating a request\n * @param {function} callback\n * @param {*} args\n * @returns {IDBRequest}\n * @protected\n */\nIDBTransaction.prototype.__addNonRequestToTransactionQueue = function (callback, args, source) {\n this.__pushToQueue(null, callback, args);\n};\n\n/**\n * Adds an IDBRequest to the transaction queue\n * @param {IDBRequest} request\n * @param {function} callback\n * @param {*} args\n * @protected\n */\nIDBTransaction.prototype.__pushToQueue = function (request, callback, args) {\n this.__assertActive();\n this.__requests.push({\n 'op': callback,\n 'args': args,\n 'req': request\n });\n};\n\nIDBTransaction.prototype.__assertActive = function () {\n if (!this.__active) {\n throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n }\n};\n\nIDBTransaction.prototype.__assertWritable = function () {\n if (this.mode === 'readonly') {\n throw createDOMException('ReadOnlyError', 'The transaction is read only');\n }\n};\n\nIDBTransaction.prototype.__assertVersionChange = function () {\n IDBTransaction.__assertVersionChange(this);\n};\n\n/**\n * Returns the specified object store.\n * @param {string} objectStoreName\n * @returns {IDBObjectStore}\n */\nIDBTransaction.prototype.objectStore = function (objectStoreName) {\n const me = this;\n if (!(me instanceof IDBTransaction)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No object store name was specified');\n }\n IDBTransaction.__assertNotFinished(me);\n if (me.__objectStoreNames.indexOf(objectStoreName) === -1) {\n throw createDOMException('NotFoundError', objectStoreName + ' is not participating in this transaction');\n }\n const store = me.db.__objectStores[objectStoreName];\n if (!store) {\n throw createDOMException('NotFoundError', objectStoreName + ' does not exist in ' + me.db.name);\n }\n\n if (!me.__storeHandles[objectStoreName] ||\n me.__storeHandles[objectStoreName].__pendingDelete ||\n me.__storeHandles[objectStoreName].__deleted) { // The latter conditions are to allow store\n // recreation to create new clone object\n me.__storeHandles[objectStoreName] = IDBObjectStore.__clone(store, me);\n }\n return me.__storeHandles[objectStoreName];\n};\n\nIDBTransaction.prototype.__abortTransaction = function (err) {\n const me = this;\n logError('Error', 'An error occurred in a transaction', err);\n if (me.__errored) {\n // We've already called \"onerror\", \"onabort\", or thrown, so don't do it again.\n return;\n }\n me.__errored = true;\n\n if (me.mode === 'versionchange') { // Steps for aborting an upgrade transaction\n me.db.__version = me.db.__oldVersion;\n me.db.__objectStoreNames = me.db.__oldObjectStoreNames;\n me.__objectStoreNames = me.db.__oldObjectStoreNames;\n Object.values(me.db.__objectStores).concat(Object.values(me.__storeHandles)).forEach(function (store) {\n if ('__pendingName' in store && me.db.__oldObjectStoreNames.indexOf(store.__pendingName) > -1) { // Store was already created so we restore to name before the rename\n store.__name = store.__originalName;\n }\n store.__indexNames = store.__oldIndexNames;\n delete store.__pendingDelete;\n Object.values(store.__indexes).concat(Object.values(store.__indexHandles)).forEach(function (index) {\n if ('__pendingName' in index && store.__oldIndexNames.indexOf(index.__pendingName) > -1) { // Index was already created so we restore to name before the rename\n index.__name = index.__originalName;\n }\n delete index.__pendingDelete;\n });\n });\n }\n me.__active = false; // Setting here and in requestsFinished for https://github.com/w3c/IndexedDB/issues/87\n\n if (err !== null) {\n me.__error = err;\n }\n\n if (me.__requestsFinished) {\n // The transaction has already completed, so we can't call \"onerror\" or \"onabort\".\n // So throw the error instead.\n setTimeout(() => {\n throw err;\n }, 0);\n }\n\n function abort (tx, errOrResult) {\n if (!tx) {\n CFG.DEBUG && console.log('Rollback not possible due to missing transaction', me);\n } else if (errOrResult && typeof errOrResult.code === 'number') {\n CFG.DEBUG && console.log('Rollback erred; feature is probably not supported as per WebSQL', me);\n } else {\n CFG.DEBUG && console.log('Rollback succeeded', me);\n }\n\n me.dispatchEvent(createEvent('__preabort'));\n me.__requests.filter(function (q) {\n return q.req && q.req.__readyState !== 'done';\n }).reduce(function (promises, q) {\n // We reduce to a chain of promises to be queued in order, so we cannot use `Promise.all`,\n // and I'm unsure whether `setTimeout` currently behaves first-in-first-out with the same timeout\n // so we could just use a `forEach`.\n return promises.then(function () {\n q.req.__readyState = 'done';\n q.req.__result = undefined;\n q.req.__error = createDOMException('AbortError', 'A request was aborted.');\n const reqEvt = createEvent('error', q.req.__error, {bubbles: true, cancelable: true});\n return new SyncPromise(function (resolve) {\n setTimeout(() => {\n q.req.dispatchEvent(reqEvt); // No need to catch errors\n resolve();\n });\n });\n });\n }, SyncPromise.resolve()).then(function () { // Also works when there are no pending requests\n const evt = createEvent('abort', err, {bubbles: true, cancelable: false});\n setTimeout(() => {\n me.__abortFinished = true;\n me.dispatchEvent(evt);\n me.__storeHandles = {};\n me.dispatchEvent(createEvent('__abort'));\n });\n });\n }\n\n me.__transFinishedCb(true, function (rollback) {\n if (rollback && me.__tx) { // Not supported in standard SQL (and WebSQL errors should\n // rollback automatically), but for Node.js, etc., we give chance for\n // manual aborts which would otherwise not work.\n if (me.mode === 'readwrite') {\n if (me.__transactionFinished) {\n abort();\n return;\n }\n me.__transactionEndCallback = abort;\n return;\n }\n try {\n me.__tx.executeSql('ROLLBACK', [], abort, abort); // Not working in some circumstances, even in Node\n } catch (err) {\n // Browser errs when transaction has ended and since it most likely already erred here,\n // we call to abort\n abort();\n }\n } else {\n abort(null, {code: 0});\n }\n });\n};\n\nIDBTransaction.prototype.abort = function () {\n const me = this;\n if (!(me instanceof IDBTransaction)) {\n throw new TypeError('Illegal invocation');\n }\n CFG.DEBUG && console.log('The transaction was aborted', me);\n IDBTransaction.__assertNotFinished(me);\n me.__abortTransaction(null);\n};\nIDBTransaction.prototype[Symbol.toStringTag] = 'IDBTransactionPrototype';\n\nIDBTransaction.__assertVersionChange = function (tx) {\n if (!tx || tx.mode !== 'versionchange') {\n throw createDOMException('InvalidStateError', 'Not a version transaction');\n }\n};\nIDBTransaction.__assertNotVersionChange = function (tx) {\n if (tx && tx.mode === 'versionchange') {\n throw createDOMException('InvalidStateError', 'Cannot be called during a version transaction');\n }\n};\n\nIDBTransaction.__assertNotFinished = function (tx) {\n if (!tx || tx.__completed || tx.__abortFinished || tx.__errored) {\n throw createDOMException('InvalidStateError', 'Transaction finished by commit or abort');\n }\n};\n\n// object store methods behave differently: see https://github.com/w3c/IndexedDB/issues/192\nIDBTransaction.__assertNotFinishedObjectStoreMethod = function (tx) {\n try {\n IDBTransaction.__assertNotFinished(tx);\n } catch (err) {\n if (tx && !tx.__completed && !tx.__abortFinished) {\n throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n }\n throw err;\n }\n};\n\nIDBTransaction.__assertActive = function (tx) {\n if (!tx || !tx.__active) {\n throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n }\n};\n\n/**\n* Used by our EventTarget.prototype library to implement bubbling/capturing\n*/\nIDBTransaction.prototype.__getParent = function () {\n return this.db;\n};\n\nlisteners.forEach((listener) => {\n Object.defineProperty(IDBTransaction.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\n// Illegal invocations\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBTransaction.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nObject.defineProperty(IDBTransaction.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBTransaction\n});\n\nObject.defineProperty(IDBTransaction, 'prototype', {\n writable: false\n});\n\nexport default IDBTransaction;\n","import {ShimEvent} from './Event';\nimport * as util from './util';\n\nconst readonlyProperties = ['oldVersion', 'newVersion'];\n\n// Babel apparently having a problem adding `hasInstance` to a class, so we are redefining as a function\nfunction IDBVersionChangeEvent (type /* , eventInitDict */) { // eventInitDict is a IDBVersionChangeEventInit (but is not defined as a global)\n ShimEvent.call(this, type);\n this[Symbol.toStringTag] = 'IDBVersionChangeEvent';\n this.toString = function () {\n return '[object IDBVersionChangeEvent]';\n };\n this.__eventInitDict = arguments[1] || {};\n}\n\nIDBVersionChangeEvent.prototype = Object.create(ShimEvent.prototype);\n\nIDBVersionChangeEvent.prototype[Symbol.toStringTag] = 'IDBVersionChangeEventPrototype';\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBVersionChangeEvent.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n if (!(this instanceof IDBVersionChangeEvent)) {\n throw new TypeError('Illegal invocation');\n }\n return (this.__eventInitDict && this.__eventInitDict[prop]) || (prop === 'oldVersion' ? 0 : null);\n }\n });\n});\n\nObject.defineProperty(IDBVersionChangeEvent, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && 'oldVersion' in obj && typeof obj.defaultPrevented === 'boolean'\n});\n\nObject.defineProperty(IDBVersionChangeEvent.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBVersionChangeEvent\n});\n\nObject.defineProperty(IDBVersionChangeEvent, 'prototype', {\n writable: false\n});\n\nexport default IDBVersionChangeEvent;\n","import {createDOMException} from './DOMException';\nimport * as util from './util';\nimport {cmp} from './IDBFactory';\nimport CFG from './CFG';\n\n/**\n * Encodes the keys based on their types. This is required to maintain collations\n */\nconst collations = ['invalid', 'number', 'date', 'string', 'binary', 'array'];\n\n/**\n * The sign values for numbers, ordered from least to greatest.\n * - \"negativeInfinity\": Sorts below all other values.\n * - \"bigNegative\": Negative values less than or equal to negative one.\n * - \"smallNegative\": Negative values between negative one and zero, noninclusive.\n * - \"smallPositive\": Positive values between zero and one, including zero but not one.\n * - \"largePositive\": Positive values greater than or equal to one.\n * - \"positiveInfinity\": Sorts above all other values.\n */\nconst signValues = ['negativeInfinity', 'bigNegative', 'smallNegative', 'smallPositive', 'bigPositive', 'positiveInfinity'];\n\nconst types = {\n invalid: {\n encode: function (key) {\n return collations.indexOf('invalid') + '-';\n },\n decode: function (key) {\n return undefined;\n }\n },\n\n // Numbers are represented in a lexically sortable base-32 sign-exponent-mantissa\n // notation.\n //\n // sign: takes a value between zero and five, inclusive. Represents infinite cases\n // and the signs of both the exponent and the fractional part of the number.\n // exponent: padded to two base-32 digits, represented by the 32's compliment in the\n // \"smallPositive\" and \"bigNegative\" cases to ensure proper lexical sorting.\n // mantissa: also called the fractional part. Normed 11-digit base-32 representation.\n // Represented by the 32's compliment in the \"smallNegative\" and \"bigNegative\"\n // cases to ensure proper lexical sorting.\n number: {\n // The encode step checks for six numeric cases and generates 14-digit encoded\n // sign-exponent-mantissa strings.\n encode: function (key) {\n let key32 = Math.abs(key).toString(32);\n // Get the index of the decimal.\n const decimalIndex = key32.indexOf('.');\n // Remove the decimal.\n key32 = (decimalIndex !== -1) ? key32.replace('.', '') : key32;\n // Get the index of the first significant digit.\n const significantDigitIndex = key32.search(/[^0]/);\n // Truncate leading zeros.\n key32 = key32.slice(significantDigitIndex);\n let sign, exponent, mantissa;\n\n // Finite cases:\n if (isFinite(key)) {\n // Negative cases:\n if (key < 0) {\n // Negative exponent case:\n if (key > -1) {\n sign = signValues.indexOf('smallNegative');\n exponent = padBase32Exponent(significantDigitIndex);\n mantissa = flipBase32(padBase32Mantissa(key32));\n // Non-negative exponent case:\n } else {\n sign = signValues.indexOf('bigNegative');\n exponent = flipBase32(padBase32Exponent(\n (decimalIndex !== -1) ? decimalIndex : key32.length\n ));\n mantissa = flipBase32(padBase32Mantissa(key32));\n }\n // Non-negative cases:\n } else {\n // Negative exponent case:\n if (key < 1) {\n sign = signValues.indexOf('smallPositive');\n exponent = flipBase32(padBase32Exponent(significantDigitIndex));\n mantissa = padBase32Mantissa(key32);\n // Non-negative exponent case:\n } else {\n sign = signValues.indexOf('bigPositive');\n exponent = padBase32Exponent(\n (decimalIndex !== -1) ? decimalIndex : key32.length\n );\n mantissa = padBase32Mantissa(key32);\n }\n }\n // Infinite cases:\n } else {\n exponent = zeros(2);\n mantissa = zeros(11);\n sign = signValues.indexOf(\n key > 0 ? 'positiveInfinity' : 'negativeInfinity'\n );\n }\n\n return collations.indexOf('number') + '-' + sign + exponent + mantissa;\n },\n // The decode step must interpret the sign, reflip values encoded as the 32's complements,\n // apply signs to the exponent and mantissa, do the base-32 power operation, and return\n // the original JavaScript number values.\n decode: function (key) {\n const sign = +key.substr(2, 1);\n let exponent = key.substr(3, 2);\n let mantissa = key.substr(5, 11);\n\n switch (signValues[sign]) {\n case 'negativeInfinity':\n return -Infinity;\n case 'positiveInfinity':\n return Infinity;\n case 'bigPositive':\n return pow32(mantissa, exponent);\n case 'smallPositive':\n exponent = negate(flipBase32(exponent));\n return pow32(mantissa, exponent);\n case 'smallNegative':\n exponent = negate(exponent);\n mantissa = flipBase32(mantissa);\n return -pow32(mantissa, exponent);\n case 'bigNegative':\n exponent = flipBase32(exponent);\n mantissa = flipBase32(mantissa);\n return -pow32(mantissa, exponent);\n default:\n throw new Error('Invalid number.');\n }\n }\n },\n\n // Strings are encoded as JSON strings (with quotes and unicode characters escaped).\n //\n // If the strings are in an array, then some extra encoding is done to make sorting work correctly:\n // Since we can't force all strings to be the same length, we need to ensure that characters line-up properly\n // for sorting, while also accounting for the extra characters that are added when the array itself is encoded as JSON.\n // To do this, each character of the string is prepended with a dash (\"-\"), and a space is added to the end of the string.\n // This effectively doubles the size of every string, but it ensures that when two arrays of strings are compared,\n // the indexes of each string's characters line up with each other.\n string: {\n encode: function (key, inArray) {\n if (inArray) {\n // prepend each character with a dash, and append a space to the end\n key = key.replace(/(.)/g, '-$1') + ' ';\n }\n return collations.indexOf('string') + '-' + key;\n },\n decode: function (key, inArray) {\n key = key.slice(2);\n if (inArray) {\n // remove the space at the end, and the dash before each character\n key = key.substr(0, key.length - 1).replace(/-(.)/g, '$1');\n }\n return key;\n }\n },\n\n // Arrays are encoded as JSON strings.\n // An extra, value is added to each array during encoding to make empty arrays sort correctly.\n array: {\n encode: function (key) {\n const encoded = [];\n for (let i = 0; i < key.length; i++) {\n const item = key[i];\n const encodedItem = encode(item, true); // encode the array item\n encoded[i] = encodedItem;\n }\n encoded.push(collations.indexOf('invalid') + '-'); // append an extra item, so empty arrays sort correctly\n return collations.indexOf('array') + '-' + JSON.stringify(encoded);\n },\n decode: function (key) {\n const decoded = JSON.parse(key.slice(2));\n decoded.pop(); // remove the extra item\n for (let i = 0; i < decoded.length; i++) {\n const item = decoded[i];\n const decodedItem = decode(item, true); // decode the item\n decoded[i] = decodedItem;\n }\n return decoded;\n }\n },\n\n // Dates are encoded as ISO 8601 strings, in UTC time zone.\n date: {\n encode: function (key) {\n return collations.indexOf('date') + '-' + key.toJSON();\n },\n decode: function (key) {\n return new Date(key.slice(2));\n }\n },\n binary: { // `ArrayBuffer`/Views on buffers (`TypedArray` or `DataView`)\n encode: function (key) {\n return collations.indexOf('binary') + '-' + (key.byteLength\n ? Array.from(getCopyBytesHeldByBufferSource(key)).map((b) => padStart(b, 3, '0')) // e.g., '255,005,254,000,001,033'\n : '');\n },\n decode: function (key) {\n // Set the entries in buffer's [[ArrayBufferData]] to those in `value`\n const k = key.slice(2);\n const arr = k.length ? k.split(',').map((s) => parseInt(s, 10)) : [];\n const buffer = new ArrayBuffer(arr.length);\n const uint8 = new Uint8Array(buffer);\n uint8.set(arr);\n return buffer;\n }\n }\n};\n\nfunction padStart (str, ct, fill) {\n return new Array(ct - (String(str)).length + 1).join(fill) + str;\n}\n\n/**\n * Return a padded base-32 exponent value.\n * @param {number}\n * @return {string}\n */\nfunction padBase32Exponent (n) {\n n = n.toString(32);\n return (n.length === 1) ? '0' + n : n;\n}\n\n/**\n * Return a padded base-32 mantissa.\n * @param {string}\n * @return {string}\n */\nfunction padBase32Mantissa (s) {\n return (s + zeros(11)).slice(0, 11);\n}\n\n/**\n * Flips each digit of a base-32 encoded string.\n * @param {string} encoded\n */\nfunction flipBase32 (encoded) {\n let flipped = '';\n for (let i = 0; i < encoded.length; i++) {\n flipped += (31 - parseInt(encoded[i], 32)).toString(32);\n }\n return flipped;\n}\n\n/**\n * Base-32 power function.\n * RESEARCH: This function does not precisely decode floats because it performs\n * floating point arithmetic to recover values. But can the original values be\n * recovered exactly?\n * Someone may have already figured out a good way to store JavaScript floats as\n * binary strings and convert back. Barring a better method, however, one route\n * may be to generate decimal strings that `parseFloat` decodes predictably.\n * @param {string}\n * @param {string}\n * @return {number}\n */\nfunction pow32 (mantissa, exponent) {\n exponent = parseInt(exponent, 32);\n if (exponent < 0) {\n return roundToPrecision(\n parseInt(mantissa, 32) * Math.pow(32, exponent - 10)\n );\n } else {\n if (exponent < 11) {\n let whole = mantissa.slice(0, exponent);\n whole = parseInt(whole, 32);\n let fraction = mantissa.slice(exponent);\n fraction = parseInt(fraction, 32) * Math.pow(32, exponent - 11);\n return roundToPrecision(whole + fraction);\n } else {\n const expansion = mantissa + zeros(exponent - 11);\n return parseInt(expansion, 32);\n }\n }\n}\n\n/**\n *\n */\nfunction roundToPrecision (num, precision) {\n precision = precision || 16;\n return parseFloat(num.toPrecision(precision));\n}\n\n/**\n * Returns a string of n zeros.\n * @param {number}\n * @return {string}\n */\nfunction zeros (n) {\n return '0'.repeat(n);\n}\n\n/**\n * Negates numeric strings.\n * @param {string}\n * @return {string}\n */\nfunction negate (s) {\n return '-' + s;\n}\n\n/**\n * Returns the string \"number\", \"date\", \"string\", \"binary\", or \"array\"\n */\nfunction getKeyType (key) {\n if (Array.isArray(key)) return 'array';\n if (util.isDate(key)) return 'date';\n if (util.isBinary(key)) return 'binary';\n const keyType = typeof key;\n return ['string', 'number'].includes(keyType) ? keyType : 'invalid';\n}\n\n/**\n * Keys must be strings, numbers (besides NaN), Dates (if value is not NaN),\n * binary objects or Arrays\n * @param input The key input\n * @param seen An array of already seen keys\n */\nfunction convertValueToKey (input, seen) {\n return convertValueToKeyValueDecoded(input, seen, false, true);\n}\n\n/**\n* Currently not in use\n*/\nfunction convertValueToMultiEntryKey (input) {\n return convertValueToKeyValueDecoded(input, null, true, true);\n}\n\n// https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy-2\nfunction getCopyBytesHeldByBufferSource (O) {\n let offset = 0;\n let length = 0;\n if (ArrayBuffer.isView(O)) { // Has [[ViewedArrayBuffer]] internal slot\n const arrayBuffer = O.buffer;\n if (arrayBuffer === undefined) {\n throw new TypeError('Could not copy the bytes held by a buffer source as the buffer was undefined.');\n }\n offset = O.byteOffset; // [[ByteOffset]] (will also throw as desired if detached)\n length = O.byteLength; // [[ByteLength]] (will also throw as desired if detached)\n } else {\n length = O.byteLength; // [[ArrayBufferByteLength]] on ArrayBuffer (will also throw as desired if detached)\n }\n // const octets = new Uint8Array(input);\n // const octets = types.binary.decode(types.binary.encode(input));\n return new Uint8Array(O.buffer || O, offset, length);\n}\n\n/**\n* Shortcut utility to avoid returning full keys from `convertValueToKey`\n* and subsequent need to process in calling code unless `fullKeys` is\n* set; may throw\n*/\nfunction convertValueToKeyValueDecoded (input, seen, multiEntry, fullKeys) {\n seen = seen || [];\n if (seen.includes(input)) return {type: 'array', invalid: true, message: 'An array key cannot be circular'};\n const type = getKeyType(input);\n const ret = {type, value: input};\n switch (type) {\n case 'number': {\n if (Number.isNaN(input)) {\n return {type: 'NaN', invalid: true}; // List as 'NaN' type for convenience of consumers in reporting errors\n }\n return ret;\n } case 'string': {\n return ret;\n } case 'binary': { // May throw (if detached)\n // Get a copy of the bytes held by the buffer source\n // https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy-2\n const octets = getCopyBytesHeldByBufferSource(input);\n return {type: 'binary', value: octets};\n } case 'array': { // May throw (from binary)\n const len = input.length;\n seen.push(input);\n const keys = [];\n for (let i = 0; i < len; i++) { // We cannot iterate here with array extras as we must ensure sparse arrays are invalidated\n if (!multiEntry && !Object.prototype.hasOwnProperty.call(input, i)) {\n return {type, invalid: true, message: 'Does not have own index property'};\n }\n try {\n const entry = input[i];\n const key = convertValueToKeyValueDecoded(entry, seen, false, fullKeys); // Though steps do not list rethrowing, the next is returnifabrupt when not multiEntry\n if (key.invalid) {\n if (multiEntry) {\n continue;\n }\n return {type, invalid: true, message: 'Bad array entry value-to-key conversion'};\n }\n if (!multiEntry ||\n (!fullKeys && keys.every((k) => cmp(k, key.value) !== 0)) ||\n (fullKeys && keys.every((k) => cmp(k, key) !== 0))\n ) {\n keys.push(fullKeys ? key : key.value);\n }\n } catch (err) {\n if (!multiEntry) {\n throw err;\n }\n }\n }\n return {type, value: keys};\n } case 'date': {\n if (!Number.isNaN(input.getTime())) {\n return fullKeys ? {type, value: input.getTime()} : {type, value: new Date(input.getTime())};\n }\n return {type, invalid: true, message: 'Not a valid date'};\n // Falls through\n } case 'invalid': default: {\n // Other `typeof` types which are not valid keys:\n // 'undefined', 'boolean', 'object' (including `null`), 'symbol', 'function\n const type = input === null ? 'null' : typeof input; // Convert `null` for convenience of consumers in reporting errors\n return {type, invalid: true, message: 'Not a valid key; type ' + type};\n }\n }\n}\nfunction convertValueToMultiEntryKeyDecoded (key, fullKeys) {\n return convertValueToKeyValueDecoded(key, null, true, fullKeys);\n}\n\n/**\n* An internal utility\n*/\nfunction convertValueToKeyRethrowingAndIfInvalid (input, seen) {\n const key = convertValueToKey(input, seen);\n if (key.invalid) {\n throw createDOMException('DataError', key.message || 'Not a valid key; type: ' + key.type);\n }\n return key;\n}\n\nfunction extractKeyFromValueUsingKeyPath (value, keyPath, multiEntry) {\n return extractKeyValueDecodedFromValueUsingKeyPath(value, keyPath, multiEntry, true);\n}\n/**\n* Not currently in use\n*/\nfunction evaluateKeyPathOnValue (value, keyPath, multiEntry) {\n return evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, true);\n}\n\n/**\n* May throw, return `{failure: true}` (e.g., non-object on keyPath resolution)\n* or `{invalid: true}` (e.g., `NaN`)\n*/\nfunction extractKeyValueDecodedFromValueUsingKeyPath (value, keyPath, multiEntry, fullKeys) {\n const r = evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, fullKeys);\n if (r.failure) {\n return r;\n }\n if (!multiEntry) {\n return convertValueToKeyValueDecoded(r.value, null, false, fullKeys);\n }\n return convertValueToMultiEntryKeyDecoded(r.value, fullKeys);\n}\n\n/**\n * Returns the value of an inline key based on a key path (wrapped in an object with key `value`)\n * or `{failure: true}`\n * @param {object} value\n * @param {string|array} keyPath\n * @param {boolean} multiEntry\n * @returns {undefined|array|string}\n */\nfunction evaluateKeyPathOnValueToDecodedValue (value, keyPath, multiEntry, fullKeys) {\n if (Array.isArray(keyPath)) {\n const result = [];\n return keyPath.some((item) => {\n const key = evaluateKeyPathOnValueToDecodedValue(value, item, multiEntry, fullKeys);\n if (key.failure) {\n return true;\n }\n result.push(key.value);\n }, []) ? {failure: true} : {value: result};\n }\n if (keyPath === '') {\n return {value};\n }\n const identifiers = keyPath.split('.');\n return identifiers.some((idntfr, i) => {\n if (idntfr === 'length' && (\n typeof value === 'string' || Array.isArray(value)\n )) {\n value = value.length;\n } else if (util.isBlob(value)) {\n switch (idntfr) {\n case 'size': case 'type':\n value = value[idntfr];\n break;\n }\n } else if (util.isFile(value)) {\n switch (idntfr) {\n case 'name': case 'lastModified':\n value = value[idntfr];\n break;\n case 'lastModifiedDate':\n value = new Date(value.lastModified);\n break;\n }\n } else if (!util.isObj(value) || !Object.prototype.hasOwnProperty.call(value, idntfr)) {\n return true;\n } else {\n value = value[idntfr];\n return value === undefined;\n }\n }) ? {failure: true} : {value};\n}\n\n/**\n * Sets the inline key value\n * @param {object} value\n * @param {*} key\n * @param {string} keyPath\n */\nfunction injectKeyIntoValueUsingKeyPath (value, key, keyPath) {\n const identifiers = keyPath.split('.');\n const last = identifiers.pop();\n for (let i = 0; i < identifiers.length; i++) {\n const identifier = identifiers[i];\n const hop = Object.prototype.hasOwnProperty.call(value, identifier);\n if (!hop) {\n value[identifier] = {};\n }\n value = value[identifier];\n }\n value[last] = key; // key is already a `keyValue` in our processing so no need to convert\n}\n\n// See https://github.com/w3c/IndexedDB/pull/146\nfunction checkKeyCouldBeInjectedIntoValue (value, keyPath) {\n const identifiers = keyPath.split('.');\n identifiers.pop();\n for (let i = 0; i < identifiers.length; i++) {\n if (!util.isObj(value)) {\n return false;\n }\n const identifier = identifiers[i];\n const hop = Object.prototype.hasOwnProperty.call(value, identifier);\n if (!hop) {\n return true;\n }\n value = value[identifier];\n }\n return util.isObj(value);\n}\n\nfunction isKeyInRange (key, range, checkCached) {\n let lowerMatch = range.lower === undefined;\n let upperMatch = range.upper === undefined;\n const encodedKey = encode(key, true);\n const lower = checkCached ? range.__lowerCached : encode(range.lower, true);\n const upper = checkCached ? range.__upperCached : encode(range.upper, true);\n\n if (range.lower !== undefined) {\n if (range.lowerOpen && encodedKey > lower) {\n lowerMatch = true;\n }\n if (!range.lowerOpen && encodedKey >= lower) {\n lowerMatch = true;\n }\n }\n if (range.upper !== undefined) {\n if (range.upperOpen && encodedKey < upper) {\n upperMatch = true;\n }\n if (!range.upperOpen && encodedKey <= upper) {\n upperMatch = true;\n }\n }\n\n return lowerMatch && upperMatch;\n}\n\n/**\n * Determines whether an index entry matches a multi-entry key value.\n * @param {string} encodedEntry The entry value (already encoded)\n * @param {string} encodedKey The full index key (already encoded)\n * @returns {boolean}\n */\nfunction isMultiEntryMatch (encodedEntry, encodedKey) {\n const keyType = collations[encodedKey.slice(0, 1)];\n\n if (keyType === 'array') {\n return encodedKey.indexOf(encodedEntry) > 1;\n } else {\n return encodedKey === encodedEntry;\n }\n}\n\nfunction findMultiEntryMatches (keyEntry, range) {\n const matches = [];\n\n if (Array.isArray(keyEntry)) {\n for (let i = 0; i < keyEntry.length; i++) {\n let key = keyEntry[i];\n\n if (Array.isArray(key)) {\n if (range && range.lower === range.upper) {\n continue;\n }\n if (key.length === 1) {\n key = key[0];\n } else {\n const nested = findMultiEntryMatches(key, range);\n if (nested.length > 0) {\n matches.push(key);\n }\n continue;\n }\n }\n\n if (range == null || isKeyInRange(key, range, true)) {\n matches.push(key);\n }\n }\n } else {\n if (range == null || isKeyInRange(keyEntry, range, true)) {\n matches.push(keyEntry);\n }\n }\n return matches;\n}\n\n/**\n* Not currently in use but keeping for spec parity\n*/\nfunction convertKeyToValue (key) {\n const type = key.type;\n const value = key.value;\n switch (type) {\n case 'number': case 'string': {\n return value;\n } case 'array': {\n const array = [];\n const len = value.length;\n let index = 0;\n while (index < len) {\n const entry = convertKeyToValue(value[index]);\n array[index] = entry;\n index++;\n }\n return array;\n } case 'date': {\n return new Date(value);\n } case 'binary': {\n const len = value.length;\n const buffer = new ArrayBuffer(len);\n // Set the entries in buffer's [[ArrayBufferData]] to those in `value`\n const uint8 = new Uint8Array(buffer, value.byteOffset || 0, value.byteLength);\n uint8.set(value);\n return buffer;\n } case 'invalid': default:\n throw new Error('Bad key');\n }\n}\n\nfunction encode (key, inArray) {\n // Bad keys like `null`, `object`, `boolean`, 'function', 'symbol' should not be passed here due to prior validation\n if (key === undefined) {\n return null;\n }\n // array, date, number, string, binary (should already have detected \"invalid\")\n return types[getKeyType(key)].encode(key, inArray);\n}\nfunction decode (key, inArray) {\n if (typeof key !== 'string') {\n return undefined;\n }\n return types[collations[key.slice(0, 1)]].decode(key, inArray);\n}\n\nfunction roundTrip (key, inArray) {\n return decode(encode(key, inArray), inArray);\n}\n\nconst MAX_ALLOWED_CURRENT_NUMBER = 9007199254740992; // 2 ^ 53 (Also equal to `Number.MAX_SAFE_INTEGER + 1`)\n\nfunction getCurrentNumber (tx, store, callback, sqlFailCb) {\n tx.executeSql('SELECT \"currNum\" FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function (tx, data) {\n if (data.rows.length !== 1) {\n callback(1); // eslint-disable-line standard/no-callback-literal\n } else {\n callback(data.rows.item(0).currNum);\n }\n }, function (tx, error) {\n sqlFailCb(createDOMException('DataError', 'Could not get the auto increment value for key', error));\n });\n}\n\n// Bump up the auto-inc counter if the key path-resolved value is valid (greater than old value and >=1) OR\n// if a manually passed in key is valid (numeric and >= 1) and >= any primaryKey\nfunction setCurrentNumber (tx, store, num, successCb, failCb) {\n const sql = 'UPDATE __sys__ SET \"currNum\" = ? WHERE \"name\" = ?';\n num = num === MAX_ALLOWED_CURRENT_NUMBER\n ? num + 2 // Since incrementing by one will have no effect in JavaScript on this unsafe max, we represent the max as a number incremented by two. The getting of the current number is never returned to the user and is only used in safe comparisons, so it is safe for us to represent it in this manner\n : num + 1;\n const sqlValues = [num, util.escapeSQLiteStatement(store.__currentName)];\n CFG.DEBUG && console.log(sql, sqlValues);\n tx.executeSql(sql, sqlValues, function (tx, data) {\n successCb(num);\n }, function (tx, err) {\n failCb(createDOMException('UnknownError', 'Could not set the auto increment value for key', err));\n });\n}\n\nfunction generateKeyForStore (tx, store, cb, sqlFailCb) {\n getCurrentNumber(tx, store, function (key) {\n if (key > MAX_ALLOWED_CURRENT_NUMBER) { // 2 ^ 53 (See )\n return cb('failure'); // eslint-disable-line standard/no-callback-literal\n }\n // Increment current number by 1 (we cannot leverage SQLite's\n // autoincrement (and decrement when not needed), as decrementing\n // will be overwritten/ignored upon the next insert)\n setCurrentNumber(tx, store, key,\n function () {\n cb(null, key);\n },\n sqlFailCb\n );\n }, sqlFailCb);\n}\n\n// Fractional or numbers exceeding the max do not get changed in the result\n// per https://github.com/w3c/IndexedDB/issues/147\n// so we do not return a key\nfunction possiblyUpdateKeyGenerator (tx, store, key, successCb, sqlFailCb) {\n // Per https://github.com/w3c/IndexedDB/issues/147 , non-finite numbers\n // (or numbers larger than the max) are now to have the explicit effect of\n // setting the current number (up to the max), so we do not optimize them\n // out here\n if (typeof key !== 'number' || key < 1) { // Optimize with no need to get the current number\n // Auto-increment attempted with a bad key;\n // we are not to change the current number, but the steps don't call for failure\n // Numbers < 1 are optimized out as they will never be greater than the current number which must be at least 1\n successCb();\n } else {\n // If auto-increment and the keyPath item is a valid numeric key, get the old auto-increment to compare if the new is higher\n // to determine which to use and whether to update the current number\n getCurrentNumber(tx, store, function (cn) {\n const value = Math.floor(\n Math.min(key, MAX_ALLOWED_CURRENT_NUMBER)\n );\n const useNewKeyForAutoInc = value >= cn;\n if (useNewKeyForAutoInc) {\n setCurrentNumber(tx, store, value, successCb, sqlFailCb);\n } else { // Not updated\n successCb();\n }\n }, sqlFailCb);\n }\n}\n\n/* eslint-disable object-property-newline */\nexport {encode, decode, roundTrip, convertKeyToValue, convertValueToKeyValueDecoded,\n convertValueToMultiEntryKeyDecoded,\n convertValueToKey,\n convertValueToMultiEntryKey, convertValueToKeyRethrowingAndIfInvalid,\n extractKeyFromValueUsingKeyPath, evaluateKeyPathOnValue,\n extractKeyValueDecodedFromValueUsingKeyPath, injectKeyIntoValueUsingKeyPath, checkKeyCouldBeInjectedIntoValue,\n isMultiEntryMatch, isKeyInRange, findMultiEntryMatches,\n generateKeyForStore, possiblyUpdateKeyGenerator};\n","import Typeson from 'typeson';\nimport StructuredCloning from 'typeson-registry/presets/structured-cloning-throwing';\n// import Blob from 'w3c-blob'; // Needed by Node; uses native if available (browser)\n\nimport {createDOMException, ShimDOMException} from './DOMException';\n\n// Todo: Register `ImageBitmap` and add `Blob`/`File`/`FileList`\n// Todo: add a proper polyfill for `ImageData` using node-canvas\n// See also: http://stackoverflow.com/questions/42170826/categories-for-rejection-by-the-structured-cloning-algorithm\n\nconst typeson = new Typeson().register(StructuredCloning);\n\n// We are keeping the callback approach for now in case we wish to reexpose Blob, File, FileList\nfunction encode (obj, cb) {\n let ret;\n try {\n ret = typeson.stringifySync(obj);\n } catch (err) {\n // SCA in typeson-registry using `DOMException` which is not defined (e.g., in Node)\n if (Typeson.hasConstructorOf(err, ReferenceError) ||\n // SCA in typeson-registry threw a cloning error and we are in a\n // supporting environment (e.g., the browser) where `ShimDOMException` is\n // an alias for `DOMException`; if typeson-registry ever uses our shim\n // to throw, we can use this condition alone.\n Typeson.hasConstructorOf(err, ShimDOMException)) {\n throw createDOMException('DataCloneError', 'The object cannot be cloned.');\n }\n throw err; // We should rethrow non-cloning exceptions like from\n // throwing getters (as in the W3C test, key-conversion-exceptions.htm)\n }\n if (cb) cb(ret);\n return ret;\n}\n\nfunction decode (obj) {\n return typeson.parse(obj);\n}\n\nfunction clone (val) {\n // We don't return the intermediate `encode` as we'll need to reencode the clone as it may differ\n return decode(encode(val));\n}\n\nexport {encode, decode, clone};\n","// ID_Start (includes Other_ID_Start)\nconst UnicodeIDStart =\n '(?:[$A-Z_a-z\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B4\\\\u08B6-\\\\u08BD\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309B-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AE\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDF00-\\\\uDF19]|\\\\uD806[\\\\uDCA0-\\\\uDCDF\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0]|\\\\uD821[\\\\uDC00-\\\\uDFEC]|\\\\uD822[\\\\uDC00-\\\\uDEF2]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD00-\\\\uDD43]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1]|\\\\uD87E[\\\\uDC00-\\\\uDE1D])';\n\n// ID_Continue (includes Other_ID_Continue)\nconst UnicodeIDContinue =\n '(?:[$0-9A-Z_a-z\\\\xAA\\\\xB5\\\\xB7\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B4\\\\u08B6-\\\\u08BD\\\\u08D4-\\\\u08E1\\\\u08E3-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0AF9\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58-\\\\u0C5A\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C80-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D54-\\\\u0D57\\\\u0D5F-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1369-\\\\u1371\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19DA\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFB-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AE\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C5\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDDFD\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDEE0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF7A\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCA0-\\\\uDCA9\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE6\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2]|\\\\uD804[\\\\uDC00-\\\\uDC46\\\\uDC66-\\\\uDC6F\\\\uDC7F-\\\\uDCBA\\\\uDCD0-\\\\uDCE8\\\\uDCF0-\\\\uDCF9\\\\uDD00-\\\\uDD34\\\\uDD36-\\\\uDD3F\\\\uDD50-\\\\uDD73\\\\uDD76\\\\uDD80-\\\\uDDC4\\\\uDDCA-\\\\uDDCC\\\\uDDD0-\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE37\\\\uDE3E\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEEA\\\\uDEF0-\\\\uDEF9\\\\uDF00-\\\\uDF03\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3C-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF50\\\\uDF57\\\\uDF5D-\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC00-\\\\uDC4A\\\\uDC50-\\\\uDC59\\\\uDC80-\\\\uDCC5\\\\uDCC7\\\\uDCD0-\\\\uDCD9\\\\uDD80-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDD8-\\\\uDDDD\\\\uDE00-\\\\uDE40\\\\uDE44\\\\uDE50-\\\\uDE59\\\\uDE80-\\\\uDEB7\\\\uDEC0-\\\\uDEC9\\\\uDF00-\\\\uDF19\\\\uDF1D-\\\\uDF2B\\\\uDF30-\\\\uDF39]|\\\\uD806[\\\\uDCA0-\\\\uDCE9\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC36\\\\uDC38-\\\\uDC40\\\\uDC50-\\\\uDC59\\\\uDC72-\\\\uDC8F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE60-\\\\uDE69\\\\uDED0-\\\\uDEED\\\\uDEF0-\\\\uDEF4\\\\uDF00-\\\\uDF36\\\\uDF40-\\\\uDF43\\\\uDF50-\\\\uDF59\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50-\\\\uDF7E\\\\uDF8F-\\\\uDF9F\\\\uDFE0]|\\\\uD821[\\\\uDC00-\\\\uDFEC]|\\\\uD822[\\\\uDC00-\\\\uDEF2]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99\\\\uDC9D\\\\uDC9E]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB\\\\uDFCE-\\\\uDFFF]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDCD0-\\\\uDCD6\\\\uDD00-\\\\uDD4A\\\\uDD50-\\\\uDD59]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uDB40[\\\\uDD00-\\\\uDDEF])';\n\nexport {UnicodeIDStart, UnicodeIDContinue};\n","import setGlobalVars from './setGlobalVars';\nimport nodeWebSQL from './nodeWebSQL'; // Importing \"websql\" would not gain us SQLite config ability\nimport CFG from './CFG';\nimport * as UnicodeIdentifiers from './UnicodeIdentifiers';\n\nCFG.win = {openDatabase: nodeWebSQL};\n\nconst __setGlobalVars = function (idb, initialConfig) {\n const obj = setGlobalVars(idb, initialConfig);\n obj.shimIndexedDB.__setUnicodeIdentifiers(UnicodeIdentifiers);\n return obj;\n};\n\nexport default __setGlobalVars;\n","import customOpenDatabase from 'websql/custom';\nimport SQLiteDatabase from 'websql/lib/sqlite/SQLiteDatabase';\nimport CFG from './CFG';\n\nfunction wrappedSQLiteDatabase (name) {\n const db = new SQLiteDatabase(name);\n if (CFG.sqlBusyTimeout) {\n db._db.configure('busyTimeout', CFG.sqlBusyTimeout); // Default is 1000\n }\n if (CFG.sqlTrace) {\n db._db.configure('trace', CFG.sqlTrace);\n }\n if (CFG.sqlProfile) {\n db._db.configure('profile', CFG.sqlProfile);\n }\n return db;\n}\n\nconst nodeWebSQL = customOpenDatabase(wrappedSQLiteDatabase);\nexport default nodeWebSQL;\n","import {createDOMException} from './DOMException';\nimport * as Key from './Key';\n\n// Todo Browser: polyfill IDBVersionChangeEvent, IDBOpenDBRequest?\n\n/**\n * Polyfills missing features in the browser's native IndexedDB implementation.\n * This is used for browsers that DON'T support WebSQL but DO support IndexedDB\n */\nfunction polyfill () {\n if (navigator.userAgent.match(/MSIE/) ||\n navigator.userAgent.match(/Trident/) ||\n navigator.userAgent.match(/Edge/)) {\n // Internet Explorer's native IndexedDB does not support compound keys\n compoundKeyPolyfill();\n }\n}\n\n/**\n * Polyfills support for compound keys\n */\nfunction compoundKeyPolyfill (IDBCursor, IDBCursorWithValue, IDBDatabase, IDBFactory, IDBIndex, IDBKeyRange, IDBObjectStore, IDBRequest, IDBTransaction) {\n const cmp = IDBFactory.prototype.cmp;\n const createObjectStore = IDBDatabase.prototype.createObjectStore;\n const createIndex = IDBObjectStore.prototype.createIndex;\n const add = IDBObjectStore.prototype.add;\n const put = IDBObjectStore.prototype.put;\n const indexGet = IDBIndex.prototype.get;\n const indexGetKey = IDBIndex.prototype.getKey;\n const indexCursor = IDBIndex.prototype.openCursor;\n const indexKeyCursor = IDBIndex.prototype.openKeyCursor;\n const storeGet = IDBObjectStore.prototype.get;\n const storeDelete = IDBObjectStore.prototype.delete;\n const storeCursor = IDBObjectStore.prototype.openCursor;\n const storeKeyCursor = IDBObjectStore.prototype.openKeyCursor;\n const bound = IDBKeyRange.bound;\n const upperBound = IDBKeyRange.upperBound;\n const lowerBound = IDBKeyRange.lowerBound;\n const only = IDBKeyRange.only;\n const requestResult = Object.getOwnPropertyDescriptor(IDBRequest.prototype, 'result');\n const cursorPrimaryKey = Object.getOwnPropertyDescriptor(IDBCursor.prototype, 'primaryKey');\n const cursorKey = Object.getOwnPropertyDescriptor(IDBCursor.prototype, 'key');\n const cursorValue = Object.getOwnPropertyDescriptor(IDBCursorWithValue.prototype, 'value');\n\n IDBFactory.prototype.cmp = function (key1, key2) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key1)) {\n args[0] = encodeCompoundKey(key1);\n }\n if (Array.isArray(key2)) {\n args[1] = encodeCompoundKey(key2);\n }\n return cmp.apply(this, args);\n };\n\n IDBDatabase.prototype.createObjectStore = function (name, opts) {\n if (opts && Array.isArray(opts.keyPath)) {\n opts.keyPath = encodeCompoundKeyPath(opts.keyPath);\n }\n return createObjectStore.apply(this, arguments);\n };\n\n IDBObjectStore.prototype.createIndex = function (name, keyPath, opts) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(keyPath)) {\n args[1] = encodeCompoundKeyPath(keyPath);\n }\n return createIndex.apply(this, args);\n };\n\n IDBObjectStore.prototype.add = function (...args/* value, key */) {\n return this.__insertData(add, args);\n };\n\n IDBObjectStore.prototype.put = function (...args/* value, key */) {\n return this.__insertData(put, args);\n };\n\n IDBObjectStore.prototype.__insertData = function (method, args) {\n args = Array.prototype.slice.call(args);\n const value = args[0];\n const key = args[1];\n\n // out-of-line key\n if (Array.isArray(key)) {\n args[1] = encodeCompoundKey(key);\n }\n\n if (typeof value === 'object') {\n // inline key\n if (isCompoundKey(this.keyPath)) {\n const erred = setInlineCompoundKey(value, this.keyPath);\n if (erred) {\n throw createDOMException('DataError', 'keyPath error');\n }\n }\n\n // inline indexes\n for (let i = 0; i < this.indexNames.length; i++) {\n const index = this.index(this.indexNames[i]);\n if (isCompoundKey(index.keyPath)) {\n try {\n setInlineCompoundKey(value, index.keyPath, index.multiEntry);\n } catch (e) {\n // The value doesn't have a valid key for this index.\n }\n }\n }\n }\n return method.apply(this, args);\n };\n\n IDBIndex.prototype.get = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return indexGet.apply(this, args);\n };\n\n IDBIndex.prototype.getKey = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return indexGetKey.apply(this, args);\n };\n\n IDBIndex.prototype.openCursor = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return indexCursor.apply(this, args);\n };\n\n IDBIndex.prototype.openKeyCursor = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return indexKeyCursor.apply(this, args);\n };\n\n IDBObjectStore.prototype.get = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return storeGet.apply(this, args);\n };\n\n IDBObjectStore.prototype.delete = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return storeDelete.apply(this, args);\n };\n\n IDBObjectStore.prototype.openCursor = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return storeCursor.apply(this, args);\n };\n\n IDBObjectStore.prototype.openKeyCursor = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return storeKeyCursor.apply(this, args);\n };\n\n IDBKeyRange.bound = function (lower, upper, lowerOpen, upperOpen) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(lower)) {\n args[0] = encodeCompoundKey(lower);\n }\n if (Array.isArray(upper)) {\n args[1] = encodeCompoundKey(upper);\n }\n return bound.apply(IDBKeyRange, args);\n };\n\n IDBKeyRange.upperBound = function (key, open) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return upperBound.apply(IDBKeyRange, args);\n };\n\n IDBKeyRange.lowerBound = function (key, open) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return lowerBound.apply(IDBKeyRange, args);\n };\n\n IDBKeyRange.only = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return only.apply(IDBKeyRange, args);\n };\n\n Object.defineProperty(IDBRequest.prototype, 'result', {\n enumerable: requestResult.enumerable,\n configurable: requestResult.configurable,\n get: function () {\n const result = requestResult.get.call(this);\n return removeInlineCompoundKey(result);\n }\n });\n\n Object.defineProperty(IDBCursor.prototype, 'primaryKey', {\n enumerable: cursorPrimaryKey.enumerable,\n configurable: cursorPrimaryKey.configurable,\n get: function () {\n const result = cursorPrimaryKey.get.call(this);\n return removeInlineCompoundKey(result);\n }\n });\n\n Object.defineProperty(IDBCursor.prototype, 'key', {\n enumerable: cursorKey.enumerable,\n configurable: cursorKey.configurable,\n get: function () {\n const result = cursorKey.get.call(this);\n return removeInlineCompoundKey(result);\n }\n });\n\n Object.defineProperty(IDBCursorWithValue.prototype, 'value', {\n enumerable: cursorValue.enumerable,\n configurable: cursorValue.configurable,\n get: function () {\n const result = cursorValue.get.call(this);\n return removeInlineCompoundKey(result);\n }\n });\n}\n\nconst compoundKeysPropertyName = '__$$compoundKey';\nconst propertySeparatorRegExp = /\\$\\$/g;\nconst propertySeparator = '$$$$'; // \"$$\" after RegExp escaping\nconst keySeparator = '$_$';\n\nfunction isCompoundKey (keyPath) {\n return keyPath && (keyPath.indexOf(compoundKeysPropertyName + '.') === 0);\n}\n\nfunction encodeCompoundKeyPath (keyPath) {\n // Encoded dotted properties\n // [\"name.first\", \"name.last\"] ==> [\"name$$first\", \"name$$last\"]\n for (let i = 0; i < keyPath.length; i++) {\n keyPath[i] = keyPath[i].replace(/\\./g, propertySeparator);\n }\n\n // Encode the array as a single property\n // [\"name$$first\", \"name$$last\"] => \"__$$compoundKey.name$$first$_$name$$last\"\n return compoundKeysPropertyName + '.' + keyPath.join(keySeparator);\n}\n\nfunction decodeCompoundKeyPath (keyPath) {\n // Remove the \"__$$compoundKey.\" prefix\n keyPath = keyPath.substr(compoundKeysPropertyName.length + 1);\n\n // Split the properties into an array\n // \"name$$first$_$name$$last\" ==> [\"name$$first\", \"name$$last\"]\n keyPath = keyPath.split(keySeparator);\n\n // Decode dotted properties\n // [\"name$$first\", \"name$$last\"] ==> [\"name.first\", \"name.last\"]\n for (let i = 0; i < keyPath.length; i++) {\n keyPath[i] = keyPath[i].replace(propertySeparatorRegExp, '.');\n }\n return keyPath;\n}\n\nfunction setInlineCompoundKey (value, encodedKeyPath, multiEntry) {\n // Encode the key\n const keyPath = decodeCompoundKeyPath(encodedKeyPath);\n const key = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, keyPath, multiEntry);\n if (key.failure || key.invalid) {\n return true;\n }\n const encodedKey = encodeCompoundKey(key.value);\n\n // Store the encoded key inline\n encodedKeyPath = encodedKeyPath.substr(compoundKeysPropertyName.length + 1);\n value[compoundKeysPropertyName] = value[compoundKeysPropertyName] || {};\n value[compoundKeysPropertyName][encodedKeyPath] = encodedKey;\n}\n\nfunction removeInlineCompoundKey (value) {\n if (typeof value === 'string' && isCompoundKey(value)) {\n return decodeCompoundKey(value);\n } else if (value && typeof value[compoundKeysPropertyName] === 'object') {\n delete value[compoundKeysPropertyName];\n }\n return value;\n}\n\nfunction encodeCompoundKey (key) {\n // Validate and encode the key\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n key = Key.encode(key);\n\n // Prepend the \"__$$compoundKey.\" prefix\n key = compoundKeysPropertyName + '.' + key;\n\n validateKeyLength(key);\n return key;\n}\n\nfunction decodeCompoundKey (key) {\n validateKeyLength(key);\n\n // Remove the \"__$$compoundKey.\" prefix\n key = key.substr(compoundKeysPropertyName.length + 1);\n\n // Decode the key\n key = Key.decode(key);\n return key;\n}\n\nfunction validateKeyLength (key) {\n // BUG: Internet Explorer truncates string keys at 889 characters\n if (key.length > 889) {\n throw createDOMException('DataError', 'The encoded key is ' + key.length + ' characters long, but IE only allows 889 characters. Consider replacing numeric keys with strings to reduce the encoded length.');\n }\n}\n\nexport default polyfill;\n","/* globals self */\nimport 'babel-polyfill'; // `Object.assign` including within `EventTarget`, generator functions, `Array.from`, etc.; see https://babeljs.io/docs/usage/polyfill/\nimport shimIDBVersionChangeEvent from './IDBVersionChangeEvent';\nimport {IDBCursor as shimIDBCursor, IDBCursorWithValue as shimIDBCursorWithValue} from './IDBCursor';\nimport {IDBRequest as shimIDBRequest, IDBOpenDBRequest as shimIDBOpenDBRequest} from './IDBRequest';\nimport {ShimDOMException} from './DOMException';\nimport {shimIndexedDB} from './IDBFactory';\nimport shimIDBKeyRange from './IDBKeyRange';\nimport shimIDBObjectStore from './IDBObjectStore';\nimport shimIDBIndex from './IDBIndex';\nimport shimIDBTransaction from './IDBTransaction';\nimport shimIDBDatabase from './IDBDatabase';\nimport polyfill from './polyfill';\nimport CFG from './CFG';\n\nconst glob = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : self);\nglob._babelPolyfill = false; // http://stackoverflow.com/questions/31282702/conflicting-use-of-babel-register\n\nfunction setConfig (prop, val) {\n if (prop && typeof prop === 'object') {\n for (const p in prop) {\n setConfig(p, prop[p]);\n }\n return;\n }\n if (!(prop in CFG)) {\n throw new Error(prop + ' is not a valid configuration property');\n }\n CFG[prop] = val;\n}\n\nfunction setGlobalVars (idb, initialConfig) {\n if (initialConfig) {\n setConfig(initialConfig);\n }\n const IDB = idb || (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : (typeof global !== 'undefined' ? global : {})));\n function shim (name, value, propDesc) {\n if (!propDesc || !Object.defineProperty) {\n try {\n // Try setting the property. This will fail if the property is read-only.\n IDB[name] = value;\n } catch (e) {\n console.log(e);\n }\n }\n if (IDB[name] !== value && Object.defineProperty) {\n // Setting a read-only property failed, so try re-defining the property\n try {\n const desc = propDesc || {};\n if (!('value' in desc)) {\n desc.get = function () {\n return value;\n };\n }\n Object.defineProperty(IDB, name, desc);\n } catch (e) {\n // With `indexedDB`, PhantomJS fails here and below but\n // not above, while Chrome is reverse (and Firefox doesn't\n // get here since no WebSQL to use for shimming)\n }\n }\n if (IDB[name] !== value) {\n typeof console !== 'undefined' && console.warn && console.warn('Unable to shim ' + name);\n }\n }\n shim('shimIndexedDB', shimIndexedDB, {\n enumerable: false,\n configurable: true\n });\n if (IDB.shimIndexedDB) {\n IDB.shimIndexedDB.__useShim = function () {\n function setNonIDBGlobals (prefix = '') {\n shim(prefix + 'DOMException', IDB.indexedDB.modules.ShimDOMException);\n shim(prefix + 'DOMStringList', IDB.indexedDB.modules.ShimDOMStringList, {\n enumerable: false,\n configurable: true,\n writable: true,\n value: IDB.indexedDB.modules.ShimDOMStringList\n });\n shim(prefix + 'Event', IDB.indexedDB.modules.ShimEvent, {\n configurable: true,\n writable: true,\n value: IDB.indexedDB.modules.ShimEvent,\n enumerable: false\n });\n shim(prefix + 'CustomEvent', IDB.indexedDB.modules.ShimCustomEvent, {\n configurable: true,\n writable: true,\n value: IDB.indexedDB.modules.ShimCustomEvent,\n enumerable: false\n });\n shim(prefix + 'EventTarget', IDB.indexedDB.modules.ShimEventTarget, {\n configurable: true,\n writable: true,\n value: IDB.indexedDB.modules.ShimEventTarget,\n enumerable: false\n });\n }\n const shimIDBFactory = IDB.shimIndexedDB.modules.IDBFactory;\n if (CFG.win.openDatabase !== undefined) {\n shimIndexedDB.__openDatabase = CFG.win.openDatabase.bind(CFG.win); // We cache here in case the function is overwritten later as by the IndexedDB support promises tests\n // Polyfill ALL of IndexedDB, using WebSQL\n if (CFG.fullIDLSupport) {\n // Slow per MDN so off by default! Though apparently needed for WebIDL: http://stackoverflow.com/questions/41927589/rationales-consequences-of-webidl-class-inheritance-requirements\n const ShimEvent = IDB.shimIndexedDB.modules.ShimEvent;\n const ShimEventTarget = IDB.shimIndexedDB.modules.ShimEventTarget;\n Object.setPrototypeOf(shimIDBDatabase, ShimEventTarget);\n Object.setPrototypeOf(shimIDBRequest, ShimEventTarget);\n Object.setPrototypeOf(shimIDBTransaction, ShimEventTarget);\n Object.setPrototypeOf(shimIDBVersionChangeEvent, ShimEvent);\n Object.setPrototypeOf(ShimDOMException, Error);\n Object.setPrototypeOf(ShimDOMException.prototype, Error.prototype);\n }\n [\n ['indexedDB', shimIndexedDB],\n ['IDBFactory', shimIDBFactory],\n ['IDBDatabase', shimIDBDatabase],\n ['IDBObjectStore', shimIDBObjectStore],\n ['IDBIndex', shimIDBIndex],\n ['IDBTransaction', shimIDBTransaction],\n ['IDBCursor', shimIDBCursor],\n ['IDBCursorWithValue', shimIDBCursorWithValue],\n ['IDBKeyRange', shimIDBKeyRange],\n ['IDBRequest', shimIDBRequest],\n ['IDBOpenDBRequest', shimIDBOpenDBRequest],\n ['IDBVersionChangeEvent', shimIDBVersionChangeEvent]\n ].forEach(([prop, obj]) => {\n shim(prop, obj, {\n enumerable: false,\n configurable: true\n });\n });\n if (IDB.indexedDB && IDB.indexedDB.modules) {\n if (CFG.addNonIDBGlobals) {\n // As `DOMStringList` exists per IDL (and Chrome) in the global\n // thread (but not in workers), we prefix the name to avoid\n // shadowing or conflicts\n setNonIDBGlobals('Shim');\n }\n if (CFG.replaceNonIDBGlobals) {\n setNonIDBGlobals();\n }\n }\n IDB.shimIndexedDB.__setConnectionQueueOrigin();\n } else if (typeof IDB.indexedDB === 'object') {\n // Polyfill the missing IndexedDB features (no need for the window containing indexedDB itself))\n polyfill(shimIDBCursor, shimIDBCursorWithValue, shimIDBDatabase, shimIDBFactory, shimIDBIndex, shimIDBKeyRange, shimIDBObjectStore, shimIDBRequest, shimIDBTransaction);\n }\n };\n\n IDB.shimIndexedDB.__debug = function (val) {\n CFG.DEBUG = val;\n };\n IDB.shimIndexedDB.__setConfig = setConfig;\n IDB.shimIndexedDB.__getConfig = function (prop) {\n if (!(prop in CFG)) {\n throw new Error(prop + ' is not a valid configuration property');\n }\n return CFG[prop];\n };\n IDB.shimIndexedDB.__setUnicodeIdentifiers = function ({UnicodeIDStart, UnicodeIDContinue}) {\n setConfig({UnicodeIDStart, UnicodeIDContinue});\n };\n }\n\n // Workaround to prevent an error in Firefox\n if (!('indexedDB' in IDB) && typeof window !== 'undefined') { // 2nd condition avoids problems in Node\n IDB.indexedDB = IDB.indexedDB || IDB.webkitIndexedDB || IDB.mozIndexedDB || IDB.oIndexedDB || IDB.msIndexedDB;\n }\n\n // Detect browsers with known IndexedDb issues (e.g. Android pre-4.4)\n let poorIndexedDbSupport = false;\n if (typeof navigator !== 'undefined' && ( // Ignore Node or other environments\n (\n // Bad non-Chrome Android support\n (/Android (?:2|3|4\\.[0-3])/).test(navigator.userAgent) &&\n !navigator.userAgent.includes('Chrome')\n ) ||\n (\n // Bad non-Safari iOS9 support (see )\n (!navigator.userAgent.includes('Safari') || navigator.userAgent.includes('Chrome')) && // Exclude genuine Safari: http://stackoverflow.com/a/7768006/271577\n // Detect iOS: http://stackoverflow.com/questions/9038625/detect-if-device-is-ios/9039885#9039885\n // and detect version 9: http://stackoverflow.com/a/26363560/271577\n (/(iPad|iPhone|iPod).* os 9_/i).test(navigator.userAgent) &&\n !window.MSStream // But avoid IE11\n )\n )) {\n poorIndexedDbSupport = true;\n }\n if (!CFG.DEFAULT_DB_SIZE) {\n CFG.DEFAULT_DB_SIZE = (\n ( // Safari currently requires larger size: (We don't need a larger size for Node as node-websql doesn't use this info)\n // https://github.com/axemclion/IndexedDBShim/issues/41\n // https://github.com/axemclion/IndexedDBShim/issues/115\n typeof navigator !== 'undefined' &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n ) ? 25 : 4) * 1024 * 1024;\n }\n if ((!IDB.indexedDB || poorIndexedDbSupport) && CFG.win.openDatabase !== undefined) {\n IDB.shimIndexedDB.__useShim();\n } else {\n IDB.IDBDatabase = IDB.IDBDatabase || IDB.webkitIDBDatabase;\n IDB.IDBTransaction = IDB.IDBTransaction || IDB.webkitIDBTransaction || {};\n IDB.IDBCursor = IDB.IDBCursor || IDB.webkitIDBCursor;\n IDB.IDBKeyRange = IDB.IDBKeyRange || IDB.webkitIDBKeyRange;\n }\n return IDB;\n}\n\nexport default setGlobalVars;\n","import CFG from './CFG';\nimport expandsOnNFD from 'unicode-9.0.0/Binary_Property/Expands_On_NFD/regex';\n\nfunction escapeNameForSQLiteIdentifier (arg) {\n // http://stackoverflow.com/a/6701665/271577\n return '_' + // Prevent empty string\n arg.replace(/\\^/g, '^^') // Escape our escape\n // http://www.sqlite.org/src/tktview?name=57c971fc74\n .replace(/\\0/g, '^0')\n // We need to avoid identifiers being treated as duplicates based on SQLite's ASCII-only case-insensitive table and column names\n // (For SQL in general, however, see http://stackoverflow.com/a/17215009/271577\n // See also https://www.sqlite.org/faq.html#q18 re: Unicode (non-ASCII) case-insensitive not working\n .replace(/([A-Z])/g, '^$1')\n // http://stackoverflow.com/a/6701665/271577\n .replace(/([\\uD800-\\uDBFF])(?![\\uDC00-\\uDFFF])|(^|[^\\uD800-\\uDBFF])([\\uDC00-\\uDFFF])/g, function (_, unmatchedHighSurrogate, unmatchedLowSurrogate) {\n if (unmatchedHighSurrogate) {\n return '^2' + unmatchedHighSurrogate + '\\uDC00'; // Add a low surrogate for compatibility with `node-sqlite3`: http://bugs.python.org/issue12569 and http://stackoverflow.com/a/6701665/271577\n }\n return '^3\\uD800' + unmatchedLowSurrogate;\n });\n}\n\nfunction escapeSQLiteStatement (arg) {\n return arg.replace(/\\^/g, '^^').replace(/\\0/g, '^0');\n}\nfunction unescapeSQLiteResponse (arg) {\n return arg.replace(/\\^0/g, '\\0').replace(/\\^\\^/g, '^');\n}\n\nfunction sqlEscape (arg) {\n // https://www.sqlite.org/lang_keywords.html\n // http://stackoverflow.com/a/6701665/271577\n // There is no need to escape ', `, or [], as\n // we should always be within double quotes\n // NUL should have already been stripped\n return arg.replace(/\"/g, '\"\"');\n}\n\nfunction sqlQuote (arg) {\n return '\"' + sqlEscape(arg) + '\"';\n}\n\nfunction escapeDatabaseNameForSQLAndFiles (db) {\n if (CFG.escapeDatabaseName) {\n // We at least ensure NUL is escaped by default, but we need to still\n // handle empty string and possibly also length (potentially\n // throwing if too long), escaping casing (including Unicode?),\n // and escaping special characters depending on file system\n return CFG.escapeDatabaseName(escapeSQLiteStatement(db));\n }\n db = 'D' + escapeNameForSQLiteIdentifier(db);\n if (CFG.escapeNFDForDatabaseNames !== false) {\n // ES6 copying of regex with different flags\n db = db.replace(new RegExp(expandsOnNFD, 'g'), function (expandable) {\n return '^4' + expandable.codePointAt().toString(16).padStart(6, '0');\n });\n }\n if (CFG.databaseCharacterEscapeList !== false) {\n db = db.replace(\n (CFG.databaseCharacterEscapeList\n ? new RegExp(CFG.databaseCharacterEscapeList, 'g')\n : /[\\u0000-\\u001F\\u007F\"*/:<>?\\\\|]/g),\n function (n0) {\n return '^1' + n0.charCodeAt().toString(16).padStart(2, '0');\n }\n );\n }\n if (CFG.databaseNameLengthLimit !== false &&\n db.length >= ((CFG.databaseNameLengthLimit || 254) - (CFG.addSQLiteExtension !== false ? 7 /* '.sqlite'.length */ : 0))) {\n throw new Error(\n 'Unexpectedly long database name supplied; length limit required for Node compatibility; passed length: ' +\n db.length + '; length limit setting: ' + (CFG.databaseNameLengthLimit || 254) + '.');\n }\n return db + (CFG.addSQLiteExtension !== false ? '.sqlite' : ''); // Shouldn't have quoting (do we even need NUL/case escaping here?)\n}\n\n// Not in use internally but supplied for convenience\nfunction unescapeDatabaseNameForSQLAndFiles (db) {\n if (CFG.unescapeDatabaseName) {\n // We at least ensure NUL is unescaped by default, but we need to still\n // handle empty string and possibly also length (potentially\n // throwing if too long), unescaping casing (including Unicode?),\n // and unescaping special characters depending on file system\n return CFG.unescapeDatabaseName(unescapeSQLiteResponse(db));\n }\n\n return db.slice(2) // D_\n // CFG.databaseCharacterEscapeList\n .replace(/(\\^+)1([0-9a-f]{2})/g, (_, esc, hex) => esc.length % 2 ? String.fromCharCode(parseInt(hex, 16)) : _)\n // CFG.escapeNFDForDatabaseNames\n .replace(/(\\^+)4([0-9a-f]{6})/g, (_, esc, hex) => esc.length % 2 ? String.fromCodePoint(parseInt(hex, 16)) : _)\n // escapeNameForSQLiteIdentifier\n .replace(/(\\^+)3\\uD800([\\uDC00-\\uDFFF])/g, (_, esc, lowSurr) => esc.length % 2 ? lowSurr : _)\n .replace(/(\\^+)2([\\uD800-\\uDBFF])\\uDC00/g, (_, esc, highSurr) => esc.length % 2 ? highSurr : _)\n .replace(/(\\^+)([A-Z])/g, (_, esc, upperCase) => esc.length % 2 ? upperCase : _)\n .replace(/(\\^+)0/g, (_, esc) => esc.length % 2 ? '\\0' : _)\n .replace(/\\^\\^/g, '^');\n}\n\nfunction escapeStoreNameForSQL (store) {\n return sqlQuote('S' + escapeNameForSQLiteIdentifier(store));\n}\n\nfunction escapeIndexNameForSQL (index) {\n return sqlQuote('I' + escapeNameForSQLiteIdentifier(index));\n}\n\nfunction escapeIndexNameForSQLKeyColumn (index) {\n return 'I' + escapeNameForSQLiteIdentifier(index);\n}\n\nfunction sqlLIKEEscape (str) {\n // https://www.sqlite.org/lang_expr.html#like\n return sqlEscape(str).replace(/\\^/g, '^^');\n}\n\n// Babel doesn't seem to provide a means of using the `instanceof` operator with Symbol.hasInstance (yet?)\nfunction instanceOf (obj, Clss) {\n return Clss[Symbol.hasInstance](obj);\n}\n\nfunction isObj (obj) {\n return obj && typeof obj === 'object';\n}\n\nfunction isDate (obj) {\n return isObj(obj) && typeof obj.getDate === 'function';\n}\n\nfunction isBlob (obj) {\n return isObj(obj) && typeof obj.size === 'number' && typeof obj.slice === 'function' && !('lastModified' in obj);\n}\n\nfunction isRegExp (obj) {\n return isObj(obj) && typeof obj.flags === 'string' && typeof obj.exec === 'function';\n}\n\nfunction isFile (obj) {\n return isObj(obj) && typeof obj.name === 'string' && typeof obj.slice === 'function' && 'lastModified' in obj;\n}\n\nfunction isBinary (obj) {\n return isObj(obj) && typeof obj.byteLength === 'number' && (\n typeof obj.slice === 'function' || // `TypedArray` (view on buffer) or `ArrayBuffer`\n typeof obj.getFloat64 === 'function' // `DataView` (view on buffer)\n );\n}\n\nfunction isIterable (obj) {\n return isObj(obj) && typeof obj[Symbol.iterator] === 'function';\n}\n\nfunction defineReadonlyProperties (obj, props) {\n props = typeof props === 'string' ? [props] : props;\n props.forEach(function (prop) {\n Object.defineProperty(obj, '__' + prop, {\n enumerable: false,\n configurable: false,\n writable: true\n });\n Object.defineProperty(obj, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this['__' + prop];\n }\n });\n });\n}\n\nconst HexDigit = '[0-9a-fA-F]';\n// The commented out line below is technically the grammar, with a SyntaxError\n// to occur if larger than U+10FFFF, but we will prevent the error by\n// establishing the limit in regular expressions\n// const HexDigits = HexDigit + HexDigit + '*';\nconst HexDigits = '0*(?:' + HexDigit + '{1,5}|10' + HexDigit + '{4})*';\nconst UnicodeEscapeSequence = '(?:u' + HexDigit + '{4}|u{' + HexDigits + '})';\n\nfunction isIdentifier (item) {\n // For load-time and run-time performance, we don't provide the complete regular\n // expression for identifiers, but these can be passed in, using the expressions\n // found at https://gist.github.com/brettz9/b4cd6821d990daa023b2e604de371407\n // ID_Start (includes Other_ID_Start)\n const UnicodeIDStart = CFG.UnicodeIDStart || '[$A-Z_a-z]';\n // ID_Continue (includes Other_ID_Continue)\n const UnicodeIDContinue = CFG.UnicodeIDContinue || '[$0-9A-Z_a-z]';\n const IdentifierStart = '(?:' + UnicodeIDStart + '|[$_]|\\\\\\\\' + UnicodeEscapeSequence + ')';\n const IdentifierPart = '(?:' + UnicodeIDContinue + '|[$_]|\\\\\\\\' + UnicodeEscapeSequence + '|\\\\u200C|\\\\u200D)';\n return (new RegExp('^' + IdentifierStart + IdentifierPart + '*$')).test(item);\n}\n\nfunction isValidKeyPathString (keyPathString) {\n return typeof keyPathString === 'string' &&\n (keyPathString === '' || isIdentifier(keyPathString) || keyPathString.split('.').every(isIdentifier));\n}\n\nfunction isValidKeyPath (keyPath) {\n return isValidKeyPathString(keyPath) || (\n Array.isArray(keyPath) && keyPath.length &&\n // Convert array from sparse to dense http://www.2ality.com/2012/06/dense-arrays.html\n Array.apply(null, keyPath).every(function (kpp) {\n // See also https://heycam.github.io/webidl/#idl-DOMString\n return isValidKeyPathString(kpp); // Should already be converted to string by here\n })\n );\n}\n\nfunction enforceRange (number, type) {\n number = Math.floor(Number(number));\n let max, min;\n switch (type) {\n case 'unsigned long long': {\n max = 0x1FFFFFFFFFFFFF; // 2^53 - 1\n min = 0;\n break;\n }\n case 'unsigned long': {\n max = 0xFFFFFFFF; // 2^32 - 1\n min = 0;\n break;\n }\n default:\n throw new Error('Unrecognized type supplied to enforceRange');\n }\n if (isNaN(number) || !isFinite(number) ||\n number > max ||\n number < min) {\n throw new TypeError('Invalid range: ' + number);\n }\n return number;\n}\n\nfunction convertToDOMString (v, treatNullAs) {\n return v === null && treatNullAs ? '' : ToString(v);\n}\n\nfunction ToString (o) { // Todo: See `es-abstract/es7`\n return '' + o; // `String()` will not throw with Symbols\n}\n\nfunction convertToSequenceDOMString (val) {\n // Per , converting to a sequence works with iterables\n if (isIterable(val)) { // We don't want `Array.from` to convert primitives\n // Per , converting to a `DOMString` to be via `ToString`: https://tc39.github.io/ecma262/#sec-tostring\n return Array.from(val).map(ToString);\n }\n return val;\n}\n\nexport {escapeSQLiteStatement, unescapeSQLiteResponse,\n escapeDatabaseNameForSQLAndFiles, unescapeDatabaseNameForSQLAndFiles,\n escapeStoreNameForSQL, escapeIndexNameForSQL, escapeIndexNameForSQLKeyColumn,\n sqlLIKEEscape, sqlQuote,\n instanceOf,\n isObj, isDate, isBlob, isRegExp, isFile, isBinary, isIterable,\n defineReadonlyProperties, isValidKeyPath, enforceRange, convertToDOMString, convertToSequenceDOMString};\n"]} ======= {"version":3,"sources":["../node_modules/browser-pack/_prelude.js","../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../node_modules/eventtarget/EventTarget.js","../node_modules/sync-promise/dist/sync-promise-commonjs.js","../node_modules/typeson-registry/presets/sparse-undefined.js","../node_modules/typeson-registry/presets/structured-cloning-throwing.js","../node_modules/typeson-registry/presets/structured-cloning.js","../node_modules/typeson-registry/presets/undefined.js","../node_modules/typeson-registry/types/arraybuffer.js","../node_modules/typeson-registry/types/blob.js","../node_modules/typeson-registry/types/dataview.js","../node_modules/typeson-registry/types/date.js","../node_modules/typeson-registry/types/file.js","../node_modules/typeson-registry/types/filelist.js","../node_modules/typeson-registry/types/imagebitmap.js","../node_modules/typeson-registry/types/imagedata.js","../node_modules/typeson-registry/types/intl-types.js","../node_modules/typeson-registry/types/map.js","../node_modules/typeson-registry/types/primitive-objects.js","../node_modules/typeson-registry/types/regexp.js","../node_modules/typeson-registry/types/set.js","../node_modules/typeson-registry/types/special-numbers.js","../node_modules/typeson-registry/types/typed-arrays.js","../node_modules/typeson-registry/types/undefined.js","../node_modules/typeson-registry/types/user-object.js","../node_modules/typeson-registry/utils/array-from-iterator.js","../node_modules/typeson/typeson.js","../node_modules/unicode-9.0.0/Binary_Property/Expands_On_NFD/regex.js","../src/CFG.js","../src/DOMException.js","../src/DOMStringList.js","../src/Event.js","../src/IDBCursor.js","../src/IDBDatabase.js","../src/IDBFactory.js","../src/IDBIndex.js","../src/IDBKeyRange.js","../src/IDBObjectStore.js","../src/IDBRequest.js","../src/IDBTransaction.js","../src/IDBVersionChangeEvent.js","../src/Key.js","../src/Sca.js","../src/UnicodeIdentifiers.js","../src/node-UnicodeIdentifiers.js","../src/nodeWebSQL.js","../src/polyfill.js","../src/setGlobalVars.js","../src/util.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","dummyPlaceholder","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","chars","lookup","Uint8Array","charCodeAt","encode","arraybuffer","offset","bytes","undefined","byteLength","len","base64","substring","decode","encoded1","encoded2","encoded3","encoded4","bufferLength","p","ArrayBuffer","copyEvent","ev","ShimCustomEvent","type","bubbles","cancelable","detail","ShimEvent","getListenersOptions","listeners","options","listenersByType","capture","stringifiedOptions","JSON","stringify","listenersByTypeOptions","filter","obj","EventTarget","TypeError","ShimDOMException","phases","NONE","CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","DOMException","msg","name","err","WeakMap","evCfg","Symbol","toStringTag","toString","evInit","arguments","_ev","_evCfg","composed","set","initEvent","Object","defineProperties","reduce","prop","get","props","push","indexOf","prototype","preventDefault","_passive","defaultPrevented","stopImmediatePropagation","_stopImmediatePropagation","stopPropagation","_stopPropagation","_dispatched","forEach","defineProperty","enumerable","configurable","writable","value","initCustomEvent","setPrototypeOf","methods","addListener","listener","listenerOptions","some","removeListener","splice","hasListener","assign","listenerType","method","handleEvent","bind","arrStr","toLowerCase","__setOptions","customOptions","_defaultSync","defaultSync","_extraProperties","extraProperties","legacyOutputDidListenersThrowFlag","_legacyOutputDidListenersThrowCheck","dispatchEvent","_dispatchEvent","setTarget","finishEventDispatch","eventPhase","currentTarget","_children","invokeDefaults","eventCopy","target","invokeCurrentListeners","_defaultListeners","continueEventDispatch","me","setTimeout","_lateListeners","_earlyListeners","__getParent","par","root","_listeners","child","pop","parent","checkOnListeners","listOpts","concat","dummyIPos","listenerObj","onListener","tryCatch","once","passive","removeEventListener","cb","triggerErrorEvent","error","triggerGlobalErrorEvent","useNodeImpl","ErrorEvent","errEv","message","filename","fileName","lineno","lineNumber","colno","columnNumber","__legacyOutputDidListenersThrowError","ShimEventTarget","EventTargetFactory","createInstance","exportObj","isPromise","then","addReject","prom","reject","SyncPromise","fn","transist","val","state","v","c","resolve","FULFILLED","reason","REJECTED","PENDING","prot","errBack","settle","rej","catch","all","promises","newPromises","res","race","resolved","sparseArrays","testPlainObjects","test","x","Array","isArray","replace","stateObj","iterateUnsetNumeric","sparseUndefined","ownKeys","revive","checkDataCloneException","stringTag","slice","includes","isClosed","nodeType","insertBefore","Map","Set","DataView","Intl","Typeson","B64","b","b64","Blob","req","XMLHttpRequest","open","URL","createObjectURL","status","send","stringContents","responseText","replaceAsync","Promise","reader","FileReader","addEventListener","result","readAsText","dw","buffer","byteOffset","Date","date","getTime","time","File","lastModified","FileList","fl","arr","item","_files","index","ImageBitmap","bm","canvas","document","createElement","getContext","drawImage","toDataURL","ctx","img","onload","src","reviveAsync","createImageBitmap","ImageData","d","array","from","data","width","height","Uint8ClampedArray","hasConstructorOf","Collator","resolvedOptions","locale","DateTimeFormat","dtf","NumberFormat","nf","makeArray","map","entries","StringObject","String","BooleanObject","Boolean","NumberObject","Number","RegExp","rexp","source","flags","ignoreCase","multiline","sticky","unicode","values","SpecialNumber","isNaN","Infinity","NaN","-Infinity","_global","typeName","TypedArray","Undefined","userObjects","isUserObject","iterator","next","done","isThenable","catchCheck","isObject","proto","getProto","Ctor","hasOwn","constructor","fnToString","isPlainObject","plainObjectReplacers","nonplainObjectReplacers","revivers","regTypes","types","replacer","space","opts","stringification","encapsulated","encapsulate","stringifySync","throwOnBadSyncType","sync","stringifyAsync","parse","text","reviver","parseSync","parseAsync","finish","ret","keys","hasOwnProperty","$types","$","checkPromises","promisesData","pd","promResults","promResult","newPromisesData","prData","keyPath","cyclic","parentObj","key","encaps","_encapsulate","isTypesonPromise","TypesonPromise","encaps2","keypath","$typeof","string","boolean","number","iterateIn","refIndex","refObjs","refKeys","isPlainObj","isArr","replaced","clone","ownKeysObj","kp","vl","plainObject","replacers","existing","replaceMethod","promisesDataRoot","encapsulateSync","encapsulateAsync","_revive","ignore$Types","keyPathResolutions","kpr","getByKeyPath","substr","reviveSync","register","typeSpecSets","R","typeSpec","typeId","spec","existingReplacer","Class","create","replacerObj","start","fallback","reviverObj","k","period","innerObj","getPrototypeOf","onFulfilled","onRejected","that","typesonResolve","typesonReject","meth","promArr","CFG","validator","createNativeDOMException","createNonNativeDOMException","ShimNonNativeDOMException","logError","_CFG2","default","DEBUG","console","trace","isErrorOrDOMErrorOrDOMException","_typeof","findError","args","arg","webSQLErrback","webSQLErr","createDOMException","sqlError","_CFG","codes","IndexSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","EncodingError","NotReadableError","UnknownError","ConstraintError","DataError","TransactionInactiveError","ReadOnlyError","VersionError","OperationError","NotAllowedError","legacyCodes","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","VALIDATION_ERR","TYPE_MISMATCH_ERR","SECURITY_ERR","NETWORK_ERR","ABORT_ERR","URL_MISMATCH_ERR","QUOTA_EXCEEDED_ERR","TIMEOUT_ERR","INVALID_NODE_TYPE_ERR","DATA_CLONE_ERR","_code","_name","_message","DummyDOMException","codeName","useNativeDOMException","cleanInterface","testObject","DOMStringList","_DOMStringList$protot","contains","str","_items","isInteger","stringList","__createInstance","_length","addIndexes","sortList","sort","thisArg","apply","parseInt","_defineProperty","regeneratorRuntime","mark","_callee","wrap","_context","prev","stop","hasInstance","DOMStringListAlias","nonenumerableReadonly","nonenumerableWritable","createEvent","debug","_eventtarget","_util","util","isObj","IDBCursor","_IDBRequest","_IDBObjectStore","_DOMException","_IDBKeyRange","_IDBFactory","_IDBTransaction","_Key","Key","_Sca","Sca","_IDBIndex","IDBCursorAlias","__super","query","direction","store","keyColumnName","valueColumnName","count","defineReadonlyProperties","_IDBObjectStore2","__invalidStateIfDeleted","__indexSource","instanceOf","_IDBIndex2","_IDBTransaction2","__assertActive","transaction","range","convertValueToKeyRange","__key","__primaryKey","__store","__range","__req","IDBRequest","__source","__transaction","__keyColumnName","__valueColumnName","__keyOnly","__valueDecoder","__count","__prefetchedIndex","__multiEntryIndex","multiEntry","__unique","__sqlDirection","__lowerCached","lower","__upperCached","upper","__gotValue","_len","_key","Function","__find","__findMultiEntry","__findBasic","primaryKey","tx","success","recordsToLoad","continueCall","quotedKeyColumnName","sqlQuote","quotedKey","sql","escapeStoreNameForSQL","__currentName","sqlValues","setSQLForKeyRange","op","join","log","executeSql","rows","__prefetchedData","__decode","sqlLIKEEscape","ct","rowItem","rowKey","findMultiEntryMatches","_i","_rowItem","_rowKey","_matches","j","matchingKey","reverse","__onsuccess","__value","callback","__matchedKeys","encKey","unescapeSQLiteResponse","encVal","encPrimaryKey","__sourceOrEffectiveObjStoreDeleted","__invalidateCache","__continue","advanceContinue","advanceState","__advanceCount","convertValueToKeyRethrowingAndIfInvalid","cmpResult","cmp","__continueFinish","recordsToPreloadOnContinue","cursorPreloadPackSize","__readyState","__pushToQueue","cursorContinue","executeNextRequest","triggerSuccess","primKey","continuePrimaryKey","noErrors","encObjectStorePos","advance","enforceRange","update","valueToUpdate","addToQueue","clonedValue","__storingRecordObjectStore","request","__assertWritable","__createRequest","_me$__store$__validat","__validateKeyAndValueAndCloneValue","_me$__store$__validat2","_slicedToArray","evaluatedKey","__addToTransactionQueue","escapeSQLiteStatement","rowsAffected","__cursors","cursor","IDBCursorWithValue","IDBCursorWithValueAlias","_IDBCursor$__super","_len2","_key2","IDBDatabase","_Event","_DOMStringList","readonlyProperties","IDBDatabaseAlias","db","oldVersion","version","storeProperties","_this","__db","__closed","__oldVersion","__version","__name","__transactions","__objectStores","__objectStoreNames","_DOMStringList2","itemCopy","idbdb","objectStoreNames","__oldObjectStoreNames","createObjectStore","storeName","createOptions","__assertVersionChange","__versionTransaction","__assertNotFinishedObjectStoreMethod","convertToSequenceDOMString","isValidKeyPath","__pendingDelete","autoIncrement","autoInc","indexList","__createObjectStore","deleteObjectStore","__deleteObjectStore","close","__unblocking","check","storeNames","_this2","mode","isIterable","_toConsumableArray","__assertNotVersionChange","trans","__forceClose","on__abort","evt","__abortTransaction","processNextInConnectionQueue","removeFromQueue","queueItems","shift","origin","getOrigin","connectionQueue","_queueItems$","addRequestToConnectionQueue","triggerAnyVersionChangeAndBlockedEvents","openConnections","newVersion","connectionIsClosed","connection","connectionsClosed","every","entry","_IDBVersionChangeEvent2","_syncPromise2","unblocking","getLatestCachedWebSQLVersion","websqlDBCache","curr","getLatestCachedWebSQLDB","cleanupDatabaseResources","__openDatabase","escapedDatabaseName","databaseDeleted","dbError","memoryDatabase","latestSQLiteDBCached","warn","_sqliteDB","_db","deleteDatabaseFiles","process","unlink","_path2","databaseBasePath","DEFAULT_DB_SIZE","tables","deleteTables","createSysDB","failure","sysDbCreateError","sysdb","sysDatabaseBasePath","addSQLiteExtension","systx","IDBFactory","first","second","encodedKey1","encodedKey2","decodedKey1","decodedKey2","_IDBVersionChangeEvent","_IDBDatabase","_syncPromise","_path","location","hasNullOrigin","checkOrigin","nameCounter","IDBFactoryAlias","modules","Event","ShimDOMStringList","utils","__connections","dbCreateError","calledDbCreateError","__error","__result","openDB","useMemoryDatabase","useDatabaseCache","addResult","_IDBDatabase2","sysdbFinishedCb","er","reportError","sqlSafeName","versionSet","__addNonRequestToTransactionQueue","finished","on__beforecomplete","__transFinishedCb","complete","on__preabort","on__complete","currentTask","rollback","commit","readOnly","IDBOpenDBRequest","autoName","cacheDatabaseInstances","escapeDatabaseNameForSQLAndFiles","latestCachedVersion","readTransaction","sysReadTx","deleteDatabase","calledDBError","sysdbFinishedCbDelete","completeDatabaseDelete","key1","key2","webkitGetDatabaseNames","dbGetDatabaseNamesError","dbNames","dbName","connIdx","forceClose","conn","shimIndexedDB","IDBIndex","executeFetchIndexData","unboundedDisallowed","hasKey","opType","multiChecks","isCount","records","recordCount","record","escapedIndexNameForKeyCol","escapeIndexNameForSQLKeyColumn","encodedKey","_ret","row","isMultiEntryMatch","_record","buildFetchIndexDataSQL","nullDisallowed","hasRange","col","escapeIndexNameForSQL","objectStore","innerKey","convertedRange","_IDBCursor","IDBIndexAlias","indexProperties","__objectStore","__originalName","columnName","__keyPath","optionalParams","__multiEntry","unique","__deleted","cursors","__pendingName","newName","convertToDOMString","oldName","__indexes","indexNames","storeHandle","__storeHandles","oldIndexHandle","__indexHandles","colInfoToPreserveArr","indexName","__renameIndex","__updateIndexList","__pendingCreate","__errored","__clone","idx","__createIndex","indexHandle","applyIndex","addIndexEntry","indexKey","extractKeyValueDecodedFromValueUsingKeyPath","invalid","indexValues","__recreated","columnExists","__deleteIndex","deleted","__fetchIndexData","fetchArgs","openCursor","_arguments","openKeyCursor","_arguments2","getKey","getAll","_arguments3","getAllKeys","_arguments4","IDBKeyRange","escapedStoreNameSQL","escapedTmpStoreNameSQL","colNamesToPreserve","colInfo","colInfoToPreserve","listColInfoToPreserve","listColsToPreserve","addAnd","checkCached","encodedLowerKey","encodedUpperKey","hasLower","hasUpper","lowerOpen","upperOpen","only","IDBKeyRangeAlias","lowerConverted","upperConverted","roundTrip","__lower","__upper","__lowerOpen","__upperOpen","isKeyInRange","lowerBound","upperBound","bound","IDBObjectStore","IDBObjectStoreAlias","__idbdb","__autoIncrement","__indexNames","__oldIndexNames","oldStore","oldHandle","newStore","storeHandles","encodedKeyPath","cursorUpdate","_clonedValue","checkKeyCouldBeInjectedIntoValue","__deriveKey","failCb","keyCloneThenSuccess","generateKeyForStore","injectKeyIntoValueUsingKeyPath","possiblyUpdateKeyGenerator","__insertData","encoded","clonedKeyOrCurrentNumber","paramMap","indexPromises","setIndexInfo","multiCheck","sqlStart","sqlEnd","insertSqlValues","insertSql","add","_me$__validateKeyAndV","_me$__validateKeyAndV2","ky","put","_me$__validateKeyAndV3","_me$__validateKeyAndV4","__overwrite","noOverwrite","insert","__get","isFinite","sqlArr","clear","__assertNotFinished","createIndex","optionalParameters","deleteIndex","doneFlagGetters","_classCallCheck","openListeners","IDBOpenDBRequestAlias","_this3","IDBTransaction","uniqueID","IDBTransactionAlias","__id","__active","__running","__requests","__mode","readonlyProp","__executeRequests","requestsFinished","__completed","__internal","__requestsFinished","__transactionFinished","__transactionEndCallback","q","addLateEventListener","addDefaultEventListener","__tx","objectStoreName","abort","errOrResult","reqEvt","__abortFinished","IDBVersionChangeEvent","__eventInitDict","padStart","fill","padBase32Exponent","padBase32Mantissa","zeros","flipBase32","flipped","pow32","mantissa","exponent","roundToPrecision","Math","pow","whole","fraction","expansion","num","precision","parseFloat","toPrecision","repeat","negate","getKeyType","isDate","isBinary","keyType","convertValueToKey","input","seen","convertValueToKeyValueDecoded","convertValueToMultiEntryKey","getCopyBytesHeldByBufferSource","O","isView","fullKeys","_type","convertValueToMultiEntryKeyDecoded","extractKeyFromValueUsingKeyPath","evaluateKeyPathOnValue","evaluateKeyPathOnValueToDecodedValue","split","idntfr","isBlob","isFile","identifiers","last","identifier","lowerMatch","upperMatch","_encode","encodedEntry","collations","keyEntry","matches","nested","convertKeyToValue","inArray","_decode","getCurrentNumber","sqlFailCb","currNum","setCurrentNumber","successCb","MAX_ALLOWED_CURRENT_NUMBER","cn","floor","min","signValues","key32","abs","decimalIndex","significantDigitIndex","search","sign","encodedItem","decoded","decodedItem","toJSON","binary","typeson","_typeson2","ReferenceError","_typeson","_structuredCloningThrowing","_structuredCloningThrowing2","UnicodeIDStart","UnicodeIDContinue","_setGlobalVars","_nodeWebSQL","_UnicodeIdentifiers","UnicodeIdentifiers","win","openDatabase","_nodeWebSQL2","__setGlobalVars","idb","initialConfig","_setGlobalVars2","__setUnicodeIdentifiers","wrappedSQLiteDatabase","_SQLiteDatabase2","sqlBusyTimeout","configure","sqlTrace","sqlProfile","_custom","_SQLiteDatabase","nodeWebSQL","_custom2","polyfill","navigator","userAgent","match","compoundKeyPolyfill","indexGet","indexGetKey","indexCursor","indexKeyCursor","storeGet","storeDelete","delete","storeCursor","storeKeyCursor","requestResult","getOwnPropertyDescriptor","cursorPrimaryKey","cursorKey","cursorValue","encodeCompoundKey","encodeCompoundKeyPath","isCompoundKey","setInlineCompoundKey","removeInlineCompoundKey","compoundKeysPropertyName","propertySeparator","keySeparator","decodeCompoundKeyPath","propertySeparatorRegExp","decodeCompoundKey","validateKeyLength","setConfig","setGlobalVars","shim","propDesc","IDB","desc","__useShim","setNonIDBGlobals","prefix","indexedDB","shimIDBFactory","fullIDLSupport","_IDBKeyRange2","_ref","_ref2","addNonIDBGlobals","replaceNonIDBGlobals","_polyfill2","__debug","__setConfig","__getConfig","_ref3","webkitIndexedDB","mozIndexedDB","oIndexedDB","msIndexedDB","poorIndexedDbSupport","MSStream","webkitIDBDatabase","webkitIDBTransaction","webkitIDBCursor","webkitIDBKeyRange","_polyfill","escapeNameForSQLiteIdentifier","_","unmatchedHighSurrogate","unmatchedLowSurrogate","sqlEscape","escapeDatabaseName","escapeNFDForDatabaseNames","_regex2","expandable","codePointAt","databaseCharacterEscapeList","n0","databaseNameLengthLimit","unescapeDatabaseNameForSQLAndFiles","unescapeDatabaseName","esc","hex","fromCharCode","fromCodePoint","lowSurr","highSurr","upperCase","Clss","getDate","size","isRegExp","exec","getFloat64","isIdentifier","IdentifierStart","UnicodeEscapeSequence","IdentifierPart","isValidKeyPathString","keyPathString","kpp","max","treatNullAs","ToString","_regex"],"mappings":"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","file":"indexeddbshim-UnicodeIdentifiers-node.min.js","sourceRoot":"http://nparashuram.com/IndexedDBShim/dist/","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(i+3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})();\n","(function () {\n 'use strict';\n\n var ShimDOMException;\n var phases = {\n NONE: 0,\n CAPTURING_PHASE: 1,\n AT_TARGET: 2,\n BUBBLING_PHASE: 3\n };\n\n if (typeof DOMException === 'undefined') {\n // Todo: Better polyfill (if even needed here)\n ShimDOMException = function DOMException (msg, name) { // No need for `toString` as same as for `Error`\n var err = new Error(msg);\n err.name = name;\n return err;\n };\n } else {\n ShimDOMException = DOMException;\n }\n\n var ev = new WeakMap();\n var evCfg = new WeakMap();\n\n // Todo: Set _ev argument outside of this function\n /**\n * We use an adapter class rather than a proxy not only for compatibility but also since we have to clone\n * native event properties anyways in order to properly set `target`, etc.\n * @note The regular DOM method `dispatchEvent` won't work with this polyfill as it expects a native event\n */\n var ShimEvent = function Event (type) { // eslint-disable-line no-native-reassign\n // For WebIDL checks of function's `length`, we check `arguments` for the optional arguments\n this[Symbol.toStringTag] = 'Event';\n this.toString = function () {\n return '[object Event]';\n };\n var evInit = arguments[1];\n var _ev = arguments[2];\n if (!arguments.length) {\n throw new TypeError(\"Failed to construct 'Event': 1 argument required, but only 0 present.\");\n }\n evInit = evInit || {};\n _ev = _ev || {};\n\n var _evCfg = {};\n if ('composed' in evInit) {\n _evCfg.composed = evInit.composed;\n }\n\n // _evCfg.isTrusted = true; // We are not always using this for user-created events\n // _evCfg.timeStamp = new Date().valueOf(); // This is no longer a timestamp, but monotonic (elapsed?)\n\n ev.set(this, _ev);\n evCfg.set(this, _evCfg);\n this.initEvent(type, evInit.bubbles, evInit.cancelable);\n Object.defineProperties(this,\n ['target', 'currentTarget', 'eventPhase', 'defaultPrevented'].reduce(function (obj, prop) {\n obj[prop] = {\n get: function () {\n return (/* prop in _evCfg && */ _evCfg[prop] !== undefined) ? _evCfg[prop] : (\n prop in _ev ? _ev[prop] : (\n // Defaults\n prop === 'eventPhase' ? 0 : (prop === 'defaultPrevented' ? false : null)\n )\n );\n }\n };\n return obj;\n }, {})\n );\n var props = [\n // Event\n 'type',\n 'bubbles', 'cancelable', // Defaults to false\n 'isTrusted', 'timeStamp',\n 'initEvent',\n // Other event properties (not used by our code)\n 'composedPath', 'composed'\n ];\n if (this.toString() === '[object CustomEvent]') {\n props.push('detail', 'initCustomEvent');\n }\n\n Object.defineProperties(this, props.reduce(function (obj, prop) {\n obj[prop] = {\n get: function () {\n return prop in _evCfg ? _evCfg[prop] : (prop in _ev ? _ev[prop] : (\n ['bubbles', 'cancelable', 'composed'].indexOf(prop) > -1 ? false : undefined\n ));\n }\n };\n return obj;\n }, {}));\n };\n\n ShimEvent.prototype.preventDefault = function () {\n if (!(this instanceof ShimEvent)) {\n throw new TypeError('Illegal invocation');\n }\n var _ev = ev.get(this);\n var _evCfg = evCfg.get(this);\n if (this.cancelable && !_evCfg._passive) {\n _evCfg.defaultPrevented = true;\n if (typeof _ev.preventDefault === 'function') { // Prevent any predefined defaults\n _ev.preventDefault();\n }\n };\n };\n ShimEvent.prototype.stopImmediatePropagation = function () {\n var _evCfg = evCfg.get(this);\n _evCfg._stopImmediatePropagation = true;\n };\n ShimEvent.prototype.stopPropagation = function () {\n var _evCfg = evCfg.get(this);\n _evCfg._stopPropagation = true;\n };\n ShimEvent.prototype.initEvent = function (type, bubbles, cancelable) { // Chrome currently has function length 1 only but WebIDL says 3\n // var bubbles = arguments[1];\n // var cancelable = arguments[2];\n var _evCfg = evCfg.get(this);\n\n if (_evCfg._dispatched) {\n return;\n }\n\n _evCfg.type = type;\n if (bubbles !== undefined) {\n _evCfg.bubbles = bubbles;\n }\n if (cancelable !== undefined) {\n _evCfg.cancelable = cancelable;\n }\n };\n ['type', 'target', 'currentTarget'].forEach(function (prop) {\n Object.defineProperty(ShimEvent.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n });\n ['eventPhase', 'defaultPrevented', 'bubbles', 'cancelable', 'timeStamp'].forEach(function (prop) {\n Object.defineProperty(ShimEvent.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n });\n ['NONE', 'CAPTURING_PHASE', 'AT_TARGET', 'BUBBLING_PHASE'].forEach(function (prop, i) {\n Object.defineProperty(ShimEvent, prop, {\n enumerable: true,\n writable: false,\n value: i\n });\n Object.defineProperty(ShimEvent.prototype, prop, {\n writable: false,\n value: i\n });\n });\n ShimEvent[Symbol.toStringTag] = 'Function';\n ShimEvent.prototype[Symbol.toStringTag] = 'EventPrototype';\n Object.defineProperty(ShimEvent, 'prototype', {\n writable: false\n });\n\n var ShimCustomEvent = function CustomEvent (type) {\n var evInit = arguments[1];\n var _ev = arguments[2];\n ShimEvent.call(this, type, evInit, _ev);\n this[Symbol.toStringTag] = 'CustomEvent';\n this.toString = function () {\n return '[object CustomEvent]';\n };\n // var _evCfg = evCfg.get(this);\n evInit = evInit || {};\n this.initCustomEvent(type, evInit.bubbles, evInit.cancelable, 'detail' in evInit ? evInit.detail : null);\n };\n Object.defineProperty(ShimCustomEvent.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: ShimCustomEvent\n });\n ShimCustomEvent.prototype.initCustomEvent = function (type, bubbles, cancelable, detail) {\n if (!(this instanceof ShimCustomEvent)) {\n throw new TypeError('Illegal invocation');\n }\n var _evCfg = evCfg.get(this);\n ShimCustomEvent.call(this, type, {bubbles: bubbles, cancelable: cancelable, detail: detail}, arguments[4]);\n\n if (_evCfg._dispatched) {\n return;\n }\n\n if (detail !== undefined) {\n _evCfg.detail = detail;\n }\n Object.defineProperty(this, 'detail', {\n get: function () {\n return _evCfg.detail;\n }\n });\n };\n ShimCustomEvent[Symbol.toStringTag] = 'Function';\n ShimCustomEvent.prototype[Symbol.toStringTag] = 'CustomEventPrototype';\n Object.setPrototypeOf(ShimCustomEvent, ShimEvent); // TODO: IDL needs but reported as slow!\n Object.defineProperty(ShimCustomEvent.prototype, 'detail', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n Object.setPrototypeOf(ShimCustomEvent.prototype, ShimEvent.prototype); // TODO: IDL needs but reported as slow!\n Object.defineProperty(ShimCustomEvent, 'prototype', {\n writable: false\n });\n\n function copyEvent (ev) {\n if ('detail' in ev) {\n return new ShimCustomEvent(ev.type, {bubbles: ev.bubbles, cancelable: ev.cancelable, detail: ev.detail}, ev);\n }\n return new ShimEvent(ev.type, {bubbles: ev.bubbles, cancelable: ev.cancelable}, ev);\n }\n\n function getListenersOptions (listeners, type, options) {\n var listenersByType = listeners[type];\n if (listenersByType === undefined) listeners[type] = listenersByType = [];\n options = typeof options === 'boolean' ? {capture: options} : (options || {});\n var stringifiedOptions = JSON.stringify(options);\n var listenersByTypeOptions = listenersByType.filter(function (obj) {\n return stringifiedOptions === JSON.stringify(obj.options);\n });\n return {listenersByTypeOptions: listenersByTypeOptions, options: options, listenersByType: listenersByType};\n }\n\n var methods = {\n addListener: function addListener (listeners, listener, type, options) {\n var listenerOptions = getListenersOptions(listeners, type, options);\n var listenersByTypeOptions = listenerOptions.listenersByTypeOptions;\n options = listenerOptions.options;\n var listenersByType = listenerOptions.listenersByType;\n\n if (listenersByTypeOptions.some(function (l) {\n return l.listener === listener;\n })) return;\n listenersByType.push({listener: listener, options: options});\n },\n\n removeListener: function removeListener (listeners, listener, type, options) {\n var listenerOptions = getListenersOptions(listeners, type, options);\n var listenersByType = listenerOptions.listenersByType;\n var stringifiedOptions = JSON.stringify(listenerOptions.options);\n\n listenersByType.some(function (l, i) {\n if (l.listener === listener && stringifiedOptions === JSON.stringify(l.options)) {\n listenersByType.splice(i, 1);\n if (!listenersByType.length) delete listeners[type];\n return true;\n }\n });\n },\n\n hasListener: function hasListener (listeners, listener, type, options) {\n var listenerOptions = getListenersOptions(listeners, type, options);\n var listenersByTypeOptions = listenerOptions.listenersByTypeOptions;\n return listenersByTypeOptions.some(function (l) {\n return l.listener === listener;\n });\n }\n };\n\n function EventTarget () {\n throw new TypeError('Illegal constructor');\n }\n\n Object.assign(EventTarget.prototype, ['Early', '', 'Late', 'Default'].reduce(function (obj, listenerType) {\n ['add', 'remove', 'has'].forEach(function (method) {\n obj[method + listenerType + 'EventListener'] = function (type, listener) {\n var options = arguments[2]; // We keep the listener `length` as per WebIDL\n if (arguments.length < 2) throw new TypeError('2 or more arguments required');\n if (typeof type !== 'string') throw new ShimDOMException('UNSPECIFIED_EVENT_TYPE_ERR', 'UNSPECIFIED_EVENT_TYPE_ERR'); // eslint-disable-line eqeqeq\n if (listener.handleEvent) { listener = listener.handleEvent.bind(listener); }\n var arrStr = '_' + listenerType.toLowerCase() + (listenerType === '' ? 'l' : 'L') + 'isteners';\n if (!this[arrStr]) Object.defineProperty(this, arrStr, {value: {}});\n return methods[method + 'Listener'](this[arrStr], listener, type, options);\n };\n });\n return obj;\n }, {}));\n\n Object.assign(EventTarget.prototype, {\n __setOptions: function (customOptions) {\n customOptions = customOptions || {};\n // Todo: Make into event properties?\n this._defaultSync = customOptions.defaultSync;\n this._extraProperties = customOptions.extraProperties || [];\n if (customOptions.legacyOutputDidListenersThrowFlag) { // IndexedDB\n this._legacyOutputDidListenersThrowCheck = true;\n this._extraProperties.push('__legacyOutputDidListenersThrowError');\n }\n },\n dispatchEvent: function (ev) {\n return this._dispatchEvent(ev, true);\n },\n _dispatchEvent: function (ev, setTarget) {\n var me = this;\n ['early', '', 'late', 'default'].forEach(function (listenerType) {\n var arrStr = '_' + listenerType + (listenerType === '' ? 'l' : 'L') + 'isteners';\n if (!this[arrStr]) Object.defineProperty(this, arrStr, {value: {}});\n }, this);\n\n var _evCfg = evCfg.get(ev);\n if (_evCfg && setTarget && _evCfg._dispatched) throw new ShimDOMException('The object is in an invalid state.', 'InvalidStateError');\n\n var eventCopy;\n if (_evCfg) {\n eventCopy = ev;\n } else {\n eventCopy = copyEvent(ev);\n _evCfg = evCfg.get(eventCopy);\n _evCfg._dispatched = true;\n this._extraProperties.forEach(function (prop) {\n if (prop in ev) {\n eventCopy[prop] = ev[prop]; // Todo: Put internal to `ShimEvent`?\n }\n });\n }\n var type = eventCopy.type;\n\n function finishEventDispatch () {\n _evCfg.eventPhase = phases.NONE;\n _evCfg.currentTarget = null;\n delete _evCfg._children;\n }\n function invokeDefaults () {\n // Ignore stopPropagation from defaults\n _evCfg._stopImmediatePropagation = undefined;\n _evCfg._stopPropagation = undefined;\n // We check here for whether we should invoke since may have changed since timeout (if late listener prevented default)\n if (!eventCopy.defaultPrevented || !_evCfg.cancelable) { // 2nd check should be redundant\n _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke default listeners\n eventCopy.target.invokeCurrentListeners(eventCopy.target._defaultListeners, eventCopy, type);\n }\n finishEventDispatch();\n }\n function continueEventDispatch () {\n // Ignore stop propagation of user now\n _evCfg._stopImmediatePropagation = undefined;\n _evCfg._stopPropagation = undefined;\n if (!me._defaultSync) {\n setTimeout(invokeDefaults, 0);\n } else invokeDefaults();\n\n _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke late listeners\n // Sync default might have stopped\n if (!_evCfg._stopPropagation) {\n _evCfg._stopImmediatePropagation = undefined;\n _evCfg._stopPropagation = undefined;\n // We could allow stopPropagation by only executing upon (_evCfg._stopPropagation)\n eventCopy.target.invokeCurrentListeners(eventCopy.target._lateListeners, eventCopy, type);\n }\n finishEventDispatch();\n\n return !eventCopy.defaultPrevented;\n }\n\n if (setTarget) _evCfg.target = this;\n\n switch (eventCopy.eventPhase) {\n default: case phases.NONE:\n\n _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke early listeners\n this.invokeCurrentListeners(this._earlyListeners, eventCopy, type);\n if (!this.__getParent) {\n _evCfg.eventPhase = phases.AT_TARGET;\n return this._dispatchEvent(eventCopy, false);\n }\n\n var par = this;\n var root = this;\n while (par.__getParent && (par = par.__getParent()) !== null) {\n if (!_evCfg._children) {\n _evCfg._children = [];\n }\n _evCfg._children.push(root);\n root = par;\n }\n root._defaultSync = me._defaultSync;\n _evCfg.eventPhase = phases.CAPTURING_PHASE;\n return root._dispatchEvent(eventCopy, false);\n case phases.CAPTURING_PHASE:\n if (_evCfg._stopPropagation) {\n return continueEventDispatch();\n }\n this.invokeCurrentListeners(this._listeners, eventCopy, type);\n var child = _evCfg._children && _evCfg._children.length && _evCfg._children.pop();\n if (!child || child === eventCopy.target) {\n _evCfg.eventPhase = phases.AT_TARGET;\n }\n if (child) child._defaultSync = me._defaultSync;\n return (child || this)._dispatchEvent(eventCopy, false);\n case phases.AT_TARGET:\n if (_evCfg._stopPropagation) {\n return continueEventDispatch();\n }\n this.invokeCurrentListeners(this._listeners, eventCopy, type, true);\n if (!_evCfg.bubbles) {\n return continueEventDispatch();\n }\n _evCfg.eventPhase = phases.BUBBLING_PHASE;\n return this._dispatchEvent(eventCopy, false);\n case phases.BUBBLING_PHASE:\n if (_evCfg._stopPropagation) {\n return continueEventDispatch();\n }\n var parent = this.__getParent && this.__getParent();\n if (!parent) {\n return continueEventDispatch();\n }\n parent.invokeCurrentListeners(parent._listeners, eventCopy, type, true);\n parent._defaultSync = me._defaultSync;\n return parent._dispatchEvent(eventCopy, false);\n }\n },\n invokeCurrentListeners: function (listeners, eventCopy, type, checkOnListeners) {\n var _evCfg = evCfg.get(eventCopy);\n var me = this;\n _evCfg.currentTarget = this;\n\n var listOpts = getListenersOptions(listeners, type, {});\n var listenersByType = listOpts.listenersByType.concat();\n var dummyIPos = listenersByType.length ? 1 : 0;\n\n listenersByType.some(function (listenerObj, i) {\n var onListener = checkOnListeners ? me['on' + type] : null;\n if (_evCfg._stopImmediatePropagation) return true;\n if (i === dummyIPos && typeof onListener === 'function') {\n // We don't splice this in as could be overwritten; executes here per\n // https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-attributes:event-handlers-14\n this.tryCatch(eventCopy, function () {\n var ret = onListener.call(eventCopy.currentTarget, eventCopy);\n if (ret === false) {\n eventCopy.preventDefault();\n }\n });\n }\n var options = listenerObj.options;\n var once = options.once; // Remove listener after invoking once\n var passive = options.passive; // Don't allow `preventDefault`\n var capture = options.capture; // Use `_children` and set `eventPhase`\n _evCfg._passive = passive;\n\n if ((capture && eventCopy.target !== eventCopy.currentTarget && eventCopy.eventPhase === phases.CAPTURING_PHASE) ||\n (eventCopy.eventPhase === phases.AT_TARGET ||\n (!capture && eventCopy.target !== eventCopy.currentTarget && eventCopy.eventPhase === phases.BUBBLING_PHASE))\n ) {\n var listener = listenerObj.listener;\n this.tryCatch(eventCopy, function () {\n listener.call(eventCopy.currentTarget, eventCopy);\n });\n if (once) {\n this.removeEventListener(type, listener, options);\n }\n }\n }, this);\n this.tryCatch(eventCopy, function () {\n var onListener = checkOnListeners ? me['on' + type] : null;\n if (typeof onListener === 'function' && listenersByType.length < 2) {\n var ret = onListener.call(eventCopy.currentTarget, eventCopy); // Won't have executed if too short\n if (ret === false) {\n eventCopy.preventDefault();\n }\n }\n });\n\n return !eventCopy.defaultPrevented;\n },\n tryCatch: function (ev, cb) {\n try {\n // Per MDN: Exceptions thrown by event handlers are reported\n // as uncaught exceptions; the event handlers run on a nested\n // callstack: they block the caller until they complete, but\n // exceptions do not propagate to the caller.\n cb();\n } catch (err) {\n this.triggerErrorEvent(err, ev);\n }\n },\n triggerErrorEvent: function (err, ev) {\n var error = err;\n if (typeof err === 'string') {\n error = new Error('Uncaught exception: ' + err);\n }\n\n var triggerGlobalErrorEvent;\n var useNodeImpl = false;\n if (typeof window === 'undefined' || typeof ErrorEvent === 'undefined' || (\n window && typeof window === 'object' && !window.dispatchEvent)\n ) {\n useNodeImpl = true;\n triggerGlobalErrorEvent = function () {\n setTimeout(function () { // Node won't be able to catch in this way if we throw in the main thread\n // console.log(err); // Should we auto-log for user?\n throw error; // Let user listen to `process.on('uncaughtException', function(err) {});`\n });\n };\n } else {\n triggerGlobalErrorEvent = function () {\n // See https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n // and https://github.com/w3c/IndexedDB/issues/49\n\n // Note that a regular Event will properly trigger\n // `window.addEventListener('error')` handlers, but it will not trigger\n // `window.onerror` as per https://html.spec.whatwg.org/multipage/webappapis.html#handler-onerror\n // Note also that the following line won't handle `window.addEventListener` handlers\n // if (window.onerror) window.onerror(error.message, err.fileName, err.lineNumber, error.columnNumber, error);\n\n // `ErrorEvent` properly triggers `window.onerror` and `window.addEventListener('error')` handlers\n var errEv = new ErrorEvent('error', {\n error: err,\n message: error.message || '',\n // We can't get the actually useful user's values!\n filename: error.fileName || '',\n lineno: error.lineNumber || 0,\n colno: error.columnNumber || 0\n });\n window.dispatchEvent(errEv);\n // console.log(err); // Should we auto-log for user?\n };\n }\n\n // Todo: This really should always run here but as we can't set the global\n // `window` (e.g., using jsdom) since `setGlobalVars` becomes unable to\n // shim `indexedDB` in such a case currently (apparently due to\n // ), we can't\n // avoid the above Node implementation (which, while providing some\n // fallback mechanism, is unstable)\n if (!useNodeImpl || !this._legacyOutputDidListenersThrowCheck) triggerGlobalErrorEvent();\n\n // See https://dom.spec.whatwg.org/#concept-event-listener-inner-invoke and\n // https://github.com/w3c/IndexedDB/issues/140 (also https://github.com/w3c/IndexedDB/issues/49 )\n if (this._legacyOutputDidListenersThrowCheck) {\n ev.__legacyOutputDidListenersThrowError = error;\n }\n }\n });\n EventTarget.prototype[Symbol.toStringTag] = 'EventTargetPrototype';\n\n Object.defineProperty(EventTarget, 'prototype', {\n writable: false\n });\n\n var ShimEventTarget = EventTarget;\n var EventTargetFactory = {\n createInstance: function (customOptions) {\n function EventTarget () {\n this.__setOptions(customOptions);\n }\n EventTarget.prototype = ShimEventTarget.prototype;\n return new EventTarget();\n }\n };\n\n EventTarget.ShimEvent = ShimEvent;\n EventTarget.ShimCustomEvent = ShimCustomEvent;\n EventTarget.ShimDOMException = ShimDOMException;\n EventTarget.ShimEventTarget = EventTarget;\n EventTarget.EventTargetFactory = EventTargetFactory;\n\n // Todo: Move to own library (but allowing WeakMaps to be passed in for sharing here)\n\n var exportObj = (typeof module !== 'undefined' && module.exports) ? exports : window;\n exportObj.ShimEvent = ShimEvent;\n exportObj.ShimCustomEvent = ShimCustomEvent;\n exportObj.ShimDOMException = ShimDOMException;\n exportObj.ShimEventTarget = EventTarget;\n exportObj.EventTargetFactory = EventTargetFactory;\n}());\n","// Since [immediate](https://github.com/calvinmetcalf/immediate) is\n// not doing the trick for our WebSQL transactions (at least in Node),\n// we are forced to make the promises run fully synchronously.\n\nfunction isPromise(p) {\n return p && typeof p.then === 'function';\n}\nfunction addReject(prom, reject) {\n prom.then(null, reject) // Use this style for sake of non-Promise thenables (e.g., jQuery Deferred)\n}\n\n// States\nvar PENDING = 2,\n FULFILLED = 0, // We later abuse these as array indices\n REJECTED = 1;\n\nfunction SyncPromise(fn) {\n var self = this;\n self.v = 0; // Value, this will be set to either a resolved value or rejected reason\n self.s = PENDING; // State of the promise\n self.c = [[],[]]; // Callbacks c[0] is fulfillment and c[1] contains rejection callbacks\n function transist(val, state) {\n self.v = val;\n self.s = state;\n self.c[state].forEach(function(fn) { fn(val); });\n // Release memory, but if no handlers have been added, as we\n // assume that we will resolve/reject (truly) synchronously\n // and thus we avoid flagging checks about whether we've\n // already resolved/rejected.\n if (self.c[state].length) self.c = null;\n }\n function resolve(val) {\n if (!self.c) {\n // Already resolved (or will be resolved), do nothing.\n } else if (isPromise(val)) {\n addReject(val.then(resolve), reject);\n } else {\n transist(val, FULFILLED);\n }\n }\n function reject(reason) {\n if (!self.c) {\n // Already resolved (or will be resolved), do nothing.\n } else if (isPromise(reason)) {\n addReject(reason.then(reject), reject);\n } else {\n transist(reason, REJECTED);\n }\n }\n try {\n fn(resolve, reject);\n } catch (err) {\n reject(err);\n }\n}\n\nvar prot = SyncPromise.prototype;\n\nprot.then = function(cb, errBack) {\n var self = this;\n return new SyncPromise(function(resolve, reject) {\n var rej = typeof errBack === 'function' ? errBack : reject;\n function settle() {\n try {\n resolve(cb ? cb(self.v) : self.v);\n } catch(e) {\n rej(e);\n }\n }\n if (self.s === FULFILLED) {\n settle();\n } else if (self.s === REJECTED) {\n rej(self.v);\n } else {\n self.c[FULFILLED].push(settle);\n self.c[REJECTED].push(rej);\n }\n });\n};\n\nprot.catch = function(cb) {\n var self = this;\n return new SyncPromise(function(resolve, reject) {\n function settle() {\n try {\n resolve(cb(self.v));\n } catch(e) {\n reject(e);\n }\n }\n if (self.s === REJECTED) {\n settle();\n } else if (self.s === FULFILLED) {\n resolve(self.v);\n } else {\n self.c[REJECTED].push(settle);\n self.c[FULFILLED].push(resolve);\n }\n });\n};\n\nSyncPromise.all = function(promises) {\n return new SyncPromise(function(resolve, reject, l) {\n l = promises.length;\n var hasPromises = false;\n var newPromises = [];\n if (!l) {\n resolve(newPromises);\n return;\n }\n promises.forEach(function(p, i) {\n if (isPromise(p)) {\n addReject(p.then(function(res) {\n newPromises[i] = res;\n --l || resolve(newPromises);\n }), reject);\n } else {\n newPromises[i] = p;\n --l || resolve(promises);\n }\n });\n });\n};\n\nSyncPromise.race = function(promises) {\n var resolved = false;\n return new SyncPromise(function(resolve, reject) {\n promises.some(function(p, i) {\n if (isPromise(p)) {\n addReject(p.then(function(res) {\n if (resolved) {\n return;\n }\n resolve(res);\n resolved = true;\n }), reject);\n } else {\n resolve(p);\n resolved = true;\n return true;\n }\n });\n });\n};\n\nSyncPromise.resolve = function(val) {\n return new SyncPromise(function(resolve, reject) {\n resolve(val);\n });\n};\n\nSyncPromise.reject = function(val) {\n return new SyncPromise(function(resolve, reject) {\n reject(val);\n });\n};\nmodule.exports = SyncPromise;\n","module.exports = [\n {\n sparseArrays: {\n testPlainObjects: true,\n test: function (x) {return Array.isArray(x);},\n replace: function (a, stateObj) {\n stateObj.iterateUnsetNumeric = true;\n return a;\n }\n }\n },\n {\n sparseUndefined: {\n test: function (x, stateObj) { return typeof x === 'undefined' && stateObj.ownKeys === false; },\n replace: function (n) { return null; },\n revive: function (s) { return undefined;} // Will avoid adding anything\n }\n }\n];\n","module.exports = require('./structured-cloning').concat({checkDataCloneException: [function (val) {\n // Should also throw with:\n // 1. `IsDetachedBuffer` (a process not called within the ECMAScript spec)\n // 2. `IsCallable` (covered by `typeof === 'function'` or a function's `toStringTag`)\n // 3. internal slots besides [[Prototype]] or [[Extensible]] (e.g., [[PromiseState]] or [[WeakMapData]])\n // 4. exotic object (e.g., `Proxy`) (which does not have default behavior for one or more of the\n // essential internal methods that are limited to the following for non-function objects (we auto-exclude functions):\n // [[GetPrototypeOf]],[[SetPrototypeOf]],[[IsExtensible]],[[PreventExtensions]],[[GetOwnProperty]],\n // [[DefineOwnProperty]],[[HasProperty]],[[Get]],[[Set]],[[Delete]],[[OwnPropertyKeys]]);\n // except for the standard, built-in exotic objects, we'd need to know whether these methods had distinct behaviors\n // Note: There is no apparent way for us to detect a `Proxy` and reject (Chrome at least is not rejecting anyways)\n var stringTag = ({}.toString.call(val).slice(8, -1));\n if ([\n 'symbol', // Symbol's `toStringTag` is only \"Symbol\" for its initial value, so we check `typeof`\n 'function' // All functions including bound function exotic objects\n ].includes(typeof val) ||\n [\n 'Arguments', // A non-array exotic object\n 'Module', // A non-array exotic object\n 'Error', // `Error` and other errors have the [[ErrorData]] internal slot and give \"Error\"\n 'Promise', // Promise instances have an extra slot ([[PromiseState]]) but not throwing in Chrome `postMessage`\n 'WeakMap', // WeakMap instances have an extra slot ([[WeakMapData]]) but not throwing in Chrome `postMessage`\n 'WeakSet' // WeakSet instances have an extra slot ([[WeakSetData]]) but not throwing in Chrome `postMessage`\n ].includes(stringTag) ||\n val === Object.prototype || // A non-array exotic object but not throwing in Chrome `postMessage`\n ((stringTag === 'Blob' || stringTag === 'File') && val.isClosed) ||\n (val && typeof val === 'object' && typeof val.nodeType === 'number' && typeof val.insertBefore === 'function') // Duck-type DOM node objects (non-array exotic? objects which cannot be cloned by the SCA)\n ) {\n throw new DOMException('The object cannot be cloned.', 'DataCloneError');\n }\n return false;\n}]});\n","/* This preset includes types for the Structured Cloning Algorithm. */\nmodule.exports = [\n // Todo: Might also register `ImageBitmap` and synchronous `Blob`/`File`/`FileList`\n // ES5\n require('../types/user-object'), // Processed last\n require('../presets/undefined'),\n require('../types/primitive-objects'),\n require('../types/special-numbers'),\n require('../types/date'),\n require('../types/regexp'),\n // ES2015 (ES6)\n typeof Map === 'function' && require('../types/map'),\n typeof Set === 'function' && require('../types/set'),\n typeof ArrayBuffer === 'function' && require('../types/arraybuffer'),\n typeof Uint8Array === 'function' && require('../types/typed-arrays'),\n typeof DataView === 'function' && require('../types/dataview'),\n typeof Intl !== 'undefined' && require('../types/intl-types'),\n // Non-built-ins\n require('../types/imagedata'),\n require('../types/imagebitmap'), // Async return\n require('../types/file'),\n require('../types/filelist'),\n require('../types/blob')\n];\n","module.exports = [\n require('../presets/sparse-undefined'),\n require('../types/undefined')\n];\n","var Typeson = require('typeson');\nvar B64 = require ('base64-arraybuffer');\n\nexports.ArrayBuffer = [\n function test (x) { return Typeson.toStringTag(x) === 'ArrayBuffer';},\n function encapsulate (b) { return B64.encode(b); },\n function revive (b64) { return B64.decode(b64); }\n];\n// See also typed-arrays!\n","var Typeson = require('typeson');\nexports.Blob = {\n test: function (x) { return Typeson.toStringTag(x) === 'Blob'; },\n replace: function encapsulate (b) { // Sync\n var req = new XMLHttpRequest();\n req.open('GET', URL.createObjectURL(b), false); // Sync\n if (req.status !== 200 && req.status !== 0) throw new Error('Bad Blob access: ' + req.status);\n req.send();\n return {\n type: b.type,\n stringContents: req.responseText\n };\n },\n revive: function (o) {return new Blob([o.stringContents], {\n type: o.type\n });},\n replaceAsync: function encapsulateAsync (b) {\n return new Typeson.Promise(function (resolve, reject) {\n if (b.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob\n reject(new Error('The Blob is closed'));\n return;\n }\n var reader = new FileReader();\n reader.addEventListener('load', function () {\n resolve({\n type: b.type,\n stringContents: reader.result\n });\n });\n reader.addEventListener('error', function () {\n reject(reader.error);\n });\n reader.readAsText(b);\n });\n }\n};\n","var Typeson = require('typeson');\nvar B64 = require ('base64-arraybuffer');\nexports.DataView = [\n function (x) { return Typeson.toStringTag(x) === 'DataView'; },\n function (dw) { return { buffer: B64.encode(dw.buffer), byteOffset: dw.byteOffset, byteLength: dw.byteLength }; },\n function (obj) { return new DataView(B64.decode(obj.buffer), obj.byteOffset, obj.byteLength); }\n];\n","var Typeson = require('typeson');\nexports.Date = [\n function (x) { return Typeson.toStringTag(x) === 'Date'; },\n function (date) { return date.getTime(); },\n function (time) { return new Date(time); }\n];\n","var Typeson = require('typeson');\nexports.File = {\n test: function (x) { return Typeson.toStringTag(x) === 'File'; },\n replace: function encapsulate (f) { // Sync\n var req = new XMLHttpRequest();\n req.open('GET', URL.createObjectURL(f), false); // Sync\n if (req.status !== 200 && req.status !== 0) throw new Error('Bad Blob access: ' + req.status);\n req.send();\n return {\n type: f.type,\n stringContents: req.responseText,\n name: f.name,\n lastModified: f.lastModified\n };\n },\n revive: function (o) {return new File([o.stringContents], o.name, {\n type: o.type,\n lastModified: o.lastModified\n });},\n replaceAsync: function encapsulateAsync (f) {\n return new Typeson.Promise(function (resolve, reject) {\n if (f.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob\n reject(new Error('The File is closed'));\n return;\n }\n var reader = new FileReader();\n reader.addEventListener('load', function () {\n resolve({\n type: f.type,\n stringContents: reader.result,\n name: f.name,\n lastModified: f.lastModified\n });\n });\n reader.addEventListener('error', function () {\n reject(reader.error);\n });\n reader.readAsText(f);\n });\n }\n};\n","var Typeson = require('typeson');\nexports.File = require('./file').File;\nexports.FileList = {\n test: function (x) { return Typeson.toStringTag(x) === 'FileList'; },\n replace: function (fl) {\n var arr = [];\n for (var i = 0; i < fl.length; i++) {\n arr[i] = fl.item(i);\n }\n return arr;\n },\n revive: function (o) {\n function FileList () {\n this._files = arguments[0];\n this.length = this._files.length;\n }\n FileList.prototype.item = function (index) {\n return this._files[index];\n };\n FileList.prototype[Symbol.toStringTag] = 'FileList';\n return new FileList(o);\n }\n};\n","/** ImageBitmap is browser / DOM specific. It also can only work same-domain (or CORS)\n*/\nvar Typeson = require('typeson');\nexports.ImageBitmap = {\n test: function (x) { return Typeson.toStringTag(x) === 'ImageBitmap'; },\n replace: function (bm) {\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n ctx.drawImage(bm, 0, 0);\n // Although `width` and `height` are part of `ImageBitMap`, these will\n // be auto-created for us when reviving with the data URL (and they are\n // not settable even if they weren't)\n // return {width: bm.width, height: bm.height, dataURL: canvas.toDataURL()};\n return canvas.toDataURL();\n },\n revive: function (o) {\n /*\n var req = new XMLHttpRequest();\n req.open('GET', o, false); // Sync\n if (req.status !== 200 && req.status !== 0) throw new Error('Bad ImageBitmap access: ' + req.status);\n req.send();\n return req.responseText;\n */\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var img = document.createElement('img');\n // The onload is needed by some browsers per http://stackoverflow.com/a/4776378/271577\n img.onload = function () {\n ctx.drawImage(img, 0, 0);\n };\n img.src = o;\n return canvas; // Works in contexts allowing an ImageBitmap (We might use `OffscreenCanvas.transferToBitmap` when supported)\n },\n reviveAsync: function reviveAsync (o) {\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var img = document.createElement('img');\n // The onload is needed by some browsers per http://stackoverflow.com/a/4776378/271577\n img.onload = function () {\n ctx.drawImage(img, 0, 0);\n };\n img.src = o; // o.dataURL;\n return createImageBitmap(canvas); // Returns a promise\n }\n};\n","/** ImageData is browser / DOM specific (though `node-canvas` has it available on `Canvas`).\n*/\nvar Typeson = require('typeson');\nexports.ImageData = [\n function (x) { return Typeson.toStringTag(x) === 'ImageData'; },\n function (d) {\n return {\n array: Array.from(d.data), // Ensure `length` gets preserved for revival\n width: d.width,\n height: d.height\n };\n },\n function (o) {return new ImageData(new Uint8ClampedArray(o.array), o.width, o.height);}\n];\n","var Typeson = require('typeson');\nexports[\"Intl.Collator\"] = [\n function (x) { return Typeson.hasConstructorOf(x, Intl.Collator); },\n function (c) { return c.resolvedOptions(); },\n function (options) { return new Intl.Collator(options.locale, options); }\n];\n\nexports[\"Intl.DateTimeFormat\"] = [\n function (x) { return Typeson.hasConstructorOf(x, Intl.DateTimeFormat); },\n function (dtf) { return dtf.resolvedOptions(); },\n function (options) { return new Intl.DateTimeFormat(options.locale, options); }\n];\n\nexports[\"Intl.NumberFormat\"] = [\n function (x) { return Typeson.hasConstructorOf(x, Intl.NumberFormat); },\n function (nf) { return nf.resolvedOptions(); },\n function (options) { return new Intl.NumberFormat(options.locale, options); }\n];\n","var Typeson = require('typeson');\nvar makeArray = require('../utils/array-from-iterator');\nexports.Map = [\n function (x) { return Typeson.toStringTag(x) === 'Map'; },\n function (map) { return makeArray(map.entries()); },\n function (entries) { return new Map(entries); }\n];\n","// This module is for objectified primitives (such as new Number(3) or\n// new String(\"foo\"))\nvar Typeson = require('typeson');\nmodule.exports = {\n // String Object (not primitive string which need no type spec)\n StringObject: [\n function (x) { return Typeson.toStringTag(x) === 'String' && typeof x === 'object'; },\n function (s) { return String(s); }, // convert to primitive string\n function (s) { return new String(s); } // Revive to an objectified string\n ],\n // Boolean Object (not primitive boolean which need no type spec)\n BooleanObject: [\n function (x) { return Typeson.toStringTag(x) === 'Boolean' && typeof x === 'object'; },\n function (b) { return Boolean(b); }, // convert to primitive boolean\n function (b) { return new Boolean(b); } // Revive to an objectified Boolean\n ],\n // Number Object (not primitive number which need no type spec)\n NumberObject: [\n function (x) { return Typeson.toStringTag(x) === 'Number' && typeof x === 'object'; },\n function (n) { return Number(n); }, // convert to primitive number\n function (n) { return new Number(n); } // Revive to an objectified number\n ]\n};\n","var Typeson = require('typeson');\nexports.RegExp = [\n function (x) { return Typeson.toStringTag(x) === 'RegExp'; },\n function (rexp) {\n return {\n source: rexp.source,\n flags: (rexp.global?'g':'')+(rexp.ignoreCase?'i':'')+(rexp.multiline?'m':'')+(rexp.sticky?'y':'')+(rexp.unicode?'u':'')\n };\n },\n function (data) { return new RegExp (data.source, data.flags); }\n];\n","var Typeson = require('typeson');\nvar makeArray = require('../utils/array-from-iterator');\nexports.Set = [\n function (x) { return Typeson.toStringTag(x) === 'Set'; },\n function (set) { return makeArray(set.values()); },\n function (values) { return new Set(values); }\n];\n","exports.SpecialNumber = [\n function (x) { return typeof x === 'number' && (isNaN(x) || x === Infinity || x === -Infinity); },\n function (n) { return isNaN(n) ? \"NaN\" : n > 0 ? \"Infinity\" : \"-Infinity\" },\n function (s) { return {NaN: NaN, Infinity: Infinity, \"-Infinity\": -Infinity}[s];}\n];\n","var Typeson = require('typeson');\nvar B64 = require ('base64-arraybuffer');\n\nvar _global = typeof self === 'undefined' ? global : self;\n\n[\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Uint16Array\",\n \"Int32Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Float64Array\"\n].forEach(function (typeName) {\n var TypedArray = _global[typeName];\n if (TypedArray) exports[typeName] = [\n function test (x) { return Typeson.toStringTag(x) === typeName; },\n function encapsulate (a) { return B64.encode (a.buffer, a.byteOffset, a.byteLength); },\n function revive (b64) { return new TypedArray (B64.decode(b64)); }\n ];\n});\n","// This does not preserve `undefined` in sparse arrays; see the `undefined` or `sparse-undefined` preset\nvar Typeson = require('typeson');\nmodule.exports = {\n undefined: [\n function (x, stateObj) { return typeof x === 'undefined' && (stateObj.ownKeys || !('ownKeys' in stateObj)); },\n function (n) { return null; },\n function (s) { return new Typeson.Undefined();} // Will add `undefined` (returning `undefined` would instead avoid explicitly setting)\n ]\n};\n","var Typeson = require('typeson');\nexports.userObjects = [\n function (x, stateObj) { return Typeson.isUserObject(x); },\n function (n) { return Object.assign({}, n); },\n function (s) { return s;}\n];\n","module.exports = Array.from || function (iterator) {\n var res = [];\n for (var i=iterator.next(); !i.done; i = iterator.next()) {\n res.push(i.value);\n }\n return res;\n}\n","var keys = Object.keys,\n isArray = Array.isArray,\n toString = ({}.toString),\n getProto = Object.getPrototypeOf,\n hasOwn = ({}.hasOwnProperty),\n fnToString = hasOwn.toString;\n\nfunction isThenable (v, catchCheck) {\n return Typeson.isObject(v) && typeof v.then === 'function' && (!catchCheck || typeof v.catch === 'function');\n}\n\nfunction toStringTag (val) {\n return toString.call(val).slice(8, -1);\n}\n\nfunction hasConstructorOf (a, b) {\n if (!a || typeof a !== 'object') {\n return false;\n }\n var proto = getProto(a);\n if (!proto) {\n return false;\n }\n var Ctor = hasOwn.call(proto, 'constructor') && proto.constructor;\n if (typeof Ctor !== 'function') {\n return b === null;\n }\n return typeof Ctor === 'function' && b !== null && fnToString.call(Ctor) === fnToString.call(b);\n}\n\nfunction isPlainObject (val) { // Mirrors jQuery's\n if (!val || toStringTag(val) !== 'Object') {\n return false;\n }\n\n var proto = getProto(val);\n if (!proto) { // `Object.create(null)`\n return true;\n }\n\n return hasConstructorOf(val, Object);\n}\n\nfunction isUserObject (val) {\n if (!val || toStringTag(val) !== 'Object') {\n return false;\n }\n\n var proto = getProto(val);\n if (!proto) { // `Object.create(null)`\n return true;\n }\n return hasConstructorOf(val, Object) || isUserObject(proto);\n}\n\nfunction isObject (v) {\n return v && typeof v === 'object'\n}\n\n/* Typeson - JSON with types\n * License: The MIT License (MIT)\n * Copyright (c) 2016 David Fahlander\n */\n\n/** An instance of this class can be used to call stringify() and parse().\n * Typeson resolves cyclic references by default. Can also be extended to\n * support custom types using the register() method.\n *\n * @constructor\n * @param {{cyclic: boolean}} [options] - if cyclic (default true), cyclic references will be handled gracefully.\n */\nfunction Typeson (options) {\n // Replacers signature: replace (value). Returns falsy if not replacing. Otherwise ['Date', value.getTime()]\n var plainObjectReplacers = [];\n var nonplainObjectReplacers = [];\n // Revivers: map {type => reviver}. Sample: {'Date': value => new Date(value)}\n var revivers = {};\n\n /** Types registered via register() */\n var regTypes = this.types = {};\n\n /** Serialize given object to Typeson.\n *\n * Arguments works identical to those of JSON.stringify().\n */\n var stringify = this.stringify = function (obj, replacer, space, opts) { // replacer here has nothing to do with our replacers.\n opts = Object.assign({}, options, opts, {stringification: true});\n var encapsulated = encapsulate(obj, null, opts);\n if (isArray(encapsulated)) {\n return JSON.stringify(encapsulated[0], replacer, space);\n }\n return encapsulated.then(function (res) {\n return JSON.stringify(res, replacer, space);\n });\n };\n\n // Also sync but throws on non-sync result\n this.stringifySync = function (obj, replacer, space, opts) {\n return stringify(obj, replacer, space, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true}));\n };\n this.stringifyAsync = function (obj, replacer, space, opts) {\n return stringify(obj, replacer, space, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false}));\n };\n\n /** Parse Typeson back into an obejct.\n *\n * Arguments works identical to those of JSON.parse().\n */\n var parse = this.parse = function (text, reviver, opts) {\n opts = Object.assign({}, options, opts, {parse: true});\n return revive(JSON.parse(text, reviver), opts); // This reviver has nothing to do with our revivers.\n };\n\n // Also sync but throws on non-sync result\n this.parseSync = function (text, reviver, opts) {\n return parse(text, reviver, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true})); // This reviver has nothing to do with our revivers.\n };\n this.parseAsync = function (text, reviver, opts) {\n return parse(text, reviver, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false})); // This reviver has nothing to do with our revivers.\n };\n\n /** Encapsulate a complex object into a plain Object by replacing registered types with\n * plain objects representing the types data.\n *\n * This method is used internally by Typeson.stringify().\n * @param {Object} obj - Object to encapsulate.\n */\n var encapsulate = this.encapsulate = function (obj, stateObj, opts) {\n opts = Object.assign({sync: true}, options, opts);\n var sync = opts.sync;\n var types = {},\n refObjs = [], // For checking cyclic references\n refKeys = [], // For checking cyclic references\n promisesDataRoot = [];\n // Clone the object deeply while at the same time replacing any special types or cyclic reference:\n var cyclic = opts && ('cyclic' in opts) ? opts.cyclic : true;\n var ret = _encapsulate('', obj, cyclic, stateObj || {}, promisesDataRoot);\n function finish (ret) {\n // Add $types to result only if we ever bumped into a special type (or special case where object has own `$types`)\n if (keys(types).length) {\n if (!ret || !isPlainObject(ret) || // Special if array (or a primitive) was serialized because JSON would ignore custom `$types` prop on it\n ret.hasOwnProperty('$types') // Also need to handle if this is an object with its own `$types` property (to avoid ambiguity)\n ) ret = {$: ret, $types: {$: types}};\n else ret.$types = types;\n } else if (isObject(ret) && ret.hasOwnProperty('$types')) {\n ret = {$: ret, $types: true};\n }\n return ret;\n }\n function checkPromises (ret, promisesData) {\n return Promise.all(\n promisesData.map(function (pd) {return pd[1].p;})\n ).then(function (promResults) {\n return Promise.all(\n promResults.map(function (promResult) {\n var newPromisesData = [];\n var prData = promisesData.splice(0, 1)[0];\n // var [keypath, , cyclic, stateObj, parentObj, key] = prData;\n var keyPath = prData[0];\n var cyclic = prData[2];\n var stateObj = prData[3];\n var parentObj = prData[4];\n var key = prData[5];\n var encaps = _encapsulate(keyPath, promResult, cyclic, stateObj, newPromisesData);\n var isTypesonPromise = hasConstructorOf(encaps, TypesonPromise);\n if (keyPath && isTypesonPromise) { // Handle case where an embedded custom type itself returns a `Typeson.Promise`\n return encaps.p.then(function (encaps2) {\n parentObj[key] = encaps2;\n return checkPromises(ret, newPromisesData);\n });\n }\n if (keyPath) parentObj[key] = encaps;\n else if (isTypesonPromise) { ret = encaps.p; }\n else ret = encaps; // If this is itself a `Typeson.Promise` (because the original value supplied was a promise or because the supplied custom type value resolved to one), returning it below will be fine since a promise is expected anyways given current config (and if not a promise, it will be ready as the resolve value)\n return checkPromises(ret, newPromisesData);\n })\n );\n }).then(function () {\n return ret;\n });\n };\n return promisesDataRoot.length\n ? sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Sync method requested but async result obtained\");\n }())\n : Promise.resolve(checkPromises(ret, promisesDataRoot)).then(finish)\n : !sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Async method requested but sync result obtained\");\n }())\n : (opts.stringification && sync // If this is a synchronous request for stringification, yet a promise is the result, we don't want to resolve leading to an async result, so we return an array to avoid ambiguity\n ? [finish(ret)]\n : (sync\n ? finish(ret)\n : Promise.resolve(finish(ret))\n ));\n\n function _encapsulate (keypath, value, cyclic, stateObj, promisesData) {\n var $typeof = typeof value;\n if ($typeof in {string: 1, boolean: 1, number: 1, undefined: 1 })\n return value === undefined || ($typeof === 'number' &&\n (isNaN(value) || value === -Infinity || value === Infinity)) ?\n replace(keypath, value, stateObj, promisesData) :\n value;\n if (value === null) return value;\n if (cyclic && !stateObj.iterateIn && !stateObj.iterateUnsetNumeric) {\n // Options set to detect cyclic references and be able to rewrite them.\n var refIndex = refObjs.indexOf(value);\n if (refIndex < 0) {\n if (cyclic === true) {\n refObjs.push(value);\n refKeys.push(keypath);\n }\n } else {\n types[keypath] = '#';\n return '#' + refKeys[refIndex];\n }\n }\n var isPlainObj = isPlainObject(value);\n var isArr = isArray(value);\n var replaced = (\n ((isPlainObj || isArr) && (!plainObjectReplacers.length || stateObj.replaced)) ||\n stateObj.iterateIn // Running replace will cause infinite loop as will test positive again\n )\n // Optimization: if plain object and no plain-object replacers, don't try finding a replacer\n ? value\n : replace(keypath, value, stateObj, promisesData, isPlainObj || isArr);\n if (replaced !== value) return replaced;\n var clone;\n if (isArr || stateObj.iterateIn === 'array')\n clone = new Array(value.length);\n else if (isPlainObj || stateObj.iterateIn === 'object')\n clone = {};\n else if (keypath === '' && hasConstructorOf(value, TypesonPromise)) {\n promisesData.push([keypath, value, cyclic, stateObj]);\n return value;\n }\n else return value; // Only clone vanilla objects and arrays\n\n // Iterate object or array\n if (stateObj.iterateIn) {\n for (var key in value) {\n var ownKeysObj = {ownKeys: value.hasOwnProperty(key)};\n var kp = keypath + (keypath ? '.' : '') + key;\n var val = _encapsulate(kp, value[key], !!cyclic, ownKeysObj, promisesData);\n if (hasConstructorOf(val, TypesonPromise)) {\n promisesData.push([kp, val, !!cyclic, ownKeysObj, clone, key]);\n } else if (val !== undefined) clone[key] = val;\n }\n } else { // Note: Non-indexes on arrays won't survive stringify so somewhat wasteful for arrays, but so too is iterating all numeric indexes on sparse arrays when not wanted or filtering own keys for positive integers\n keys(value).forEach(function (key) {\n var kp = keypath + (keypath ? '.' : '') + key;\n var val = _encapsulate(kp, value[key], !!cyclic, {ownKeys: true}, promisesData);\n if (hasConstructorOf(val, TypesonPromise)) {\n promisesData.push([kp, val, !!cyclic, {ownKeys: true}, clone, key]);\n } else if (val !== undefined) clone[key] = val;\n });\n }\n // Iterate array for non-own numeric properties (we can't replace the prior loop though as it iterates non-integer keys)\n if (stateObj.iterateUnsetNumeric) {\n for (var i = 0, vl = value.length; i < vl; i++) {\n if (!(i in value)) {\n var kp = keypath + (keypath ? '.' : '') + i;\n var val = _encapsulate(kp, undefined, !!cyclic, {ownKeys: false}, promisesData);\n if (hasConstructorOf(val, TypesonPromise)) {\n promisesData.push([kp, val, !!cyclic, {ownKeys: false}, clone, i]);\n } else if (val !== undefined) clone[i] = val;\n }\n }\n }\n return clone;\n }\n\n function replace (key, value, stateObj, promisesData, plainObject) {\n // Encapsulate registered types\n var replacers = plainObject ? plainObjectReplacers : nonplainObjectReplacers;\n var i = replacers.length;\n while (i--) {\n if (replacers[i].test(value, stateObj)) {\n var type = replacers[i].type;\n if (revivers[type]) {\n // Record the type only if a corresponding reviver exists.\n // This is to support specs where only replacement is done.\n // For example ensuring deep cloning of the object, or\n // replacing a type to its equivalent without the need to revive it.\n var existing = types[key];\n // type can comprise an array of types (see test shouldSupportIntermediateTypes)\n types[key] = existing ? [type].concat(existing) : type;\n }\n // Now, also traverse the result in case it contains it own types to replace\n stateObj = Object.assign(stateObj, {replaced: true});\n if ((sync || !replacers[i].replaceAsync) && !replacers[i].replace) {\n return _encapsulate(key, value, cyclic && 'readonly', stateObj, promisesData);\n }\n\n var replaceMethod = sync || !replacers[i].replaceAsync ? 'replace' : 'replaceAsync';\n return _encapsulate(key, replacers[i][replaceMethod](value, stateObj), cyclic && 'readonly', stateObj, promisesData);\n }\n }\n return value;\n }\n };\n\n // Also sync but throws on non-sync result\n this.encapsulateSync = function (obj, stateObj, opts) {\n return encapsulate(obj, stateObj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true}));\n };\n this.encapsulateAsync = function (obj, stateObj, opts) {\n return encapsulate(obj, stateObj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false}));\n };\n\n /** Revive an encapsulated object.\n * This method is used internally by JSON.parse().\n * @param {Object} obj - Object to revive. If it has $types member, the properties that are listed there\n * will be replaced with its true type instead of just plain objects.\n */\n var revive = this.revive = function (obj, opts) {\n opts = Object.assign({sync: true}, options, opts);\n var sync = opts.sync;\n var types = obj && obj.$types,\n ignore$Types = true;\n if (!types) return obj; // No type info added. Revival not needed.\n if (types === true) return obj.$; // Object happened to have own `$types` property but with no actual types, so we unescape and return that object\n if (types.$ && isPlainObject(types.$)) {\n // Special when root object is not a trivial Object, it will be encapsulated in $. It will also be encapsulated in $ if it has its own `$` property to avoid ambiguity\n obj = obj.$;\n types = types.$;\n ignore$Types = false;\n }\n var keyPathResolutions = [];\n var ret = _revive('', obj, null, opts);\n ret = hasConstructorOf(ret, Undefined) ? undefined : ret;\n return isThenable(ret)\n ? sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Sync method requested but async result obtained\");\n }())\n : ret\n : !sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Async method requested but sync result obtained\");\n }())\n : sync\n ? ret\n : Promise.resolve(ret);\n\n function _revive (keypath, value, target, opts, clone, key) {\n if (ignore$Types && keypath === '$types') return;\n var type = types[keypath];\n if (isArray(value) || isPlainObject(value)) {\n var clone = isArray(value) ? new Array(value.length) : {};\n // Iterate object or array\n keys(value).forEach(function (key) {\n var val = _revive(keypath + (keypath ? '.' : '') + key, value[key], target || clone, opts, clone, key);\n if (hasConstructorOf(val, Undefined)) clone[key] = undefined;\n else if (val !== undefined) clone[key] = val;\n });\n value = clone;\n while (keyPathResolutions.length) { // Try to resolve cyclic reference as soon as available\n var kpr = keyPathResolutions[0];\n var target = kpr[0];\n var keyPath = kpr[1];\n var clone = kpr[2];\n var key = kpr[3];\n var val = getByKeyPath(target, keyPath);\n if (hasConstructorOf(val, Undefined)) clone[key] = undefined;\n else if (val !== undefined) clone[key] = val;\n else break;\n keyPathResolutions.splice(0, 1);\n }\n }\n if (!type) return value;\n if (type === '#') {\n var ret = getByKeyPath(target, value.substr(1));\n if (ret === undefined) { // Cyclic reference not yet available\n keyPathResolutions.push([target, value.substr(1), clone, key]);\n }\n return ret;\n }\n var sync = opts.sync;\n return [].concat(type).reduce(function (val, type) {\n var reviver = revivers[type];\n if (!reviver) throw new Error ('Unregistered type: ' + type);\n return reviver[\n sync && reviver.revive\n ? 'revive'\n : !sync && reviver.reviveAsync\n ? 'reviveAsync'\n : 'revive'\n ](val);\n }, value);\n }\n };\n\n // Also sync but throws on non-sync result\n this.reviveSync = function (obj, opts) {\n return revive(obj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true}));\n };\n this.reviveAsync = function (obj, opts) {\n return revive(obj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false}));\n };\n\n /** Register types.\n * For examples how to use this method, see https://github.com/dfahlander/typeson-registry/tree/master/types\n * @param {Array.>} typeSpec - Types and their functions [test, encapsulate, revive];\n */\n this.register = function (typeSpecSets, opts) {\n opts = opts || {};\n [].concat(typeSpecSets).forEach(function R (typeSpec) {\n if (isArray(typeSpec)) return typeSpec.map(R); // Allow arrays of arrays of arrays...\n typeSpec && keys(typeSpec).forEach(function (typeId) {\n if (typeId === '#') {\n throw new TypeError('# cannot be used as a type name as it is reserved for cyclic objects');\n }\n var spec = typeSpec[typeId];\n var replacers = spec.testPlainObjects ? plainObjectReplacers : nonplainObjectReplacers;\n var existingReplacer = replacers.filter(function(r){ return r.type === typeId; });\n if (existingReplacer.length) {\n // Remove existing spec and replace with this one.\n replacers.splice(replacers.indexOf(existingReplacer[0]), 1);\n delete revivers[typeId];\n delete regTypes[typeId];\n }\n if (spec) {\n if (typeof spec === 'function') {\n // Support registering just a class without replacer/reviver\n var Class = spec;\n spec = {\n test: function (x) { return x.constructor === Class; },\n replace: function (x) { return assign({}, x); },\n revive: function (x) { return assign(Object.create(Class.prototype), x); }\n };\n } else if (isArray(spec)) {\n spec = {\n test: spec[0],\n replace: spec[1],\n revive: spec[2]\n };\n }\n var replacerObj = {\n type: typeId,\n test: spec.test.bind(spec)\n };\n if (spec.replace) {\n replacerObj.replace = spec.replace.bind(spec);\n }\n if (spec.replaceAsync) {\n replacerObj.replaceAsync = spec.replaceAsync.bind(spec);\n }\n var start = typeof opts.fallback === 'number' ? opts.fallback : (opts.fallback ? 0 : Infinity);\n if (spec.testPlainObjects) {\n plainObjectReplacers.splice(start, 0, replacerObj);\n } else {\n nonplainObjectReplacers.splice(start, 0, replacerObj);\n }\n // Todo: We might consider a testAsync type\n if (spec.revive || spec.reviveAsync) {\n var reviverObj = {};\n if (spec.revive) reviverObj.revive = spec.revive.bind(spec);\n if (spec.reviveAsync) reviverObj.reviveAsync = spec.reviveAsync.bind(spec);\n revivers[typeId] = reviverObj;\n }\n\n regTypes[typeId] = spec; // Record to be retrieved via public types property.\n }\n });\n });\n return this;\n };\n}\n\nfunction assign(t,s) {\n keys(s).map(function (k) { t[k] = s[k]; });\n return t;\n}\n\n/** getByKeyPath() utility */\nfunction getByKeyPath (obj, keyPath) {\n if (keyPath === '') return obj;\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj === undefined ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return obj[keyPath];\n}\n\nfunction Undefined () {}\n\n// With ES6 classes, we may be able to simply use `class TypesonPromise extends Promise` and add a string tag for detection\nfunction TypesonPromise (f) {\n this.p = new Promise(f);\n};\nTypesonPromise.prototype.then = function (onFulfilled, onRejected) {\n var that = this;\n return new TypesonPromise(function (typesonResolve, typesonReject) {\n that.p.then(function (res) {\n typesonResolve(onFulfilled ? onFulfilled(res) : res);\n }, function (r) {\n that.p['catch'](function (res) {\n return onRejected ? onRejected(res) : Promise.reject(res);\n }).then(typesonResolve, typesonReject);\n });\n });\n};\nTypesonPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nTypesonPromise.resolve = function (v) {\n return new TypesonPromise(function (typesonResolve) {\n typesonResolve(v);\n });\n};\nTypesonPromise.reject = function (v) {\n return new TypesonPromise(function (typesonResolve, typesonReject) {\n typesonReject(v);\n });\n};\n['all', 'race'].map(function (meth) {\n TypesonPromise[meth] = function (promArr) {\n return new TypesonPromise(function (typesonResolve, typesonReject) {\n Promise[meth](promArr.map(function (prom) {return prom.p;})).then(typesonResolve, typesonReject);\n });\n };\n});\n\n// The following provide classes meant to avoid clashes with other values\nTypeson.Undefined = Undefined; // To insist `undefined` should be added\nTypeson.Promise = TypesonPromise; // To support async encapsulation/stringification\n\n// Some fundamental type-checking utilities\nTypeson.isThenable = isThenable;\nTypeson.toStringTag = toStringTag;\nTypeson.hasConstructorOf = hasConstructorOf;\nTypeson.isObject = isObject;\nTypeson.isPlainObject = isPlainObject;\nTypeson.isUserObject = isUserObject;\n\nmodule.exports = Typeson;\n","module.exports=/[\\xC0-\\xC5\\xC7-\\xCF\\xD1-\\xD6\\xD9-\\xDD\\xE0-\\xE5\\xE7-\\xEF\\xF1-\\xF6\\xF9-\\xFD\\xFF-\\u010F\\u0112-\\u0125\\u0128-\\u0130\\u0134-\\u0137\\u0139-\\u013E\\u0143-\\u0148\\u014C-\\u0151\\u0154-\\u0165\\u0168-\\u017E\\u01A0\\u01A1\\u01AF\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E3\\u01E6-\\u01F0\\u01F4\\u01F5\\u01F8-\\u021B\\u021E\\u021F\\u0226-\\u0233\\u0344\\u0385\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u0390\\u03AA-\\u03B0\\u03CA-\\u03CE\\u03D3\\u03D4\\u0400\\u0401\\u0403\\u0407\\u040C-\\u040E\\u0419\\u0439\\u0450\\u0451\\u0453\\u0457\\u045C-\\u045E\\u0476\\u0477\\u04C1\\u04C2\\u04D0-\\u04D3\\u04D6\\u04D7\\u04DA-\\u04DF\\u04E2-\\u04E7\\u04EA-\\u04F5\\u04F8\\u04F9\\u0622-\\u0626\\u06C0\\u06C2\\u06D3\\u0929\\u0931\\u0934\\u0958-\\u095F\\u09CB\\u09CC\\u09DC\\u09DD\\u09DF\\u0A33\\u0A36\\u0A59-\\u0A5B\\u0A5E\\u0B48\\u0B4B\\u0B4C\\u0B5C\\u0B5D\\u0B94\\u0BCA-\\u0BCC\\u0C48\\u0CC0\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0D4A-\\u0D4C\\u0DDA\\u0DDC-\\u0DDE\\u0F43\\u0F4D\\u0F52\\u0F57\\u0F5C\\u0F69\\u0F73\\u0F75\\u0F76\\u0F78\\u0F81\\u0F93\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9\\u1026\\u1B06\\u1B08\\u1B0A\\u1B0C\\u1B0E\\u1B12\\u1B3B\\u1B3D\\u1B40\\u1B41\\u1B43\\u1E00-\\u1E99\\u1E9B\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FC1-\\u1FC4\\u1FC6-\\u1FD3\\u1FD6-\\u1FDB\\u1FDD-\\u1FEE\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u212B\\u219A\\u219B\\u21AE\\u21CD-\\u21CF\\u2204\\u2209\\u220C\\u2224\\u2226\\u2241\\u2244\\u2247\\u2249\\u2260\\u2262\\u226D-\\u2271\\u2274\\u2275\\u2278\\u2279\\u2280\\u2281\\u2284\\u2285\\u2288\\u2289\\u22AC-\\u22AF\\u22E0-\\u22E3\\u22EA-\\u22ED\\u2ADC\\u304C\\u304E\\u3050\\u3052\\u3054\\u3056\\u3058\\u305A\\u305C\\u305E\\u3060\\u3062\\u3065\\u3067\\u3069\\u3070\\u3071\\u3073\\u3074\\u3076\\u3077\\u3079\\u307A\\u307C\\u307D\\u3094\\u309E\\u30AC\\u30AE\\u30B0\\u30B2\\u30B4\\u30B6\\u30B8\\u30BA\\u30BC\\u30BE\\u30C0\\u30C2\\u30C5\\u30C7\\u30C9\\u30D0\\u30D1\\u30D3\\u30D4\\u30D6\\u30D7\\u30D9\\u30DA\\u30DC\\u30DD\\u30F4\\u30F7-\\u30FA\\u30FE\\uAC00-\\uD7A3\\uFB1D\\uFB1F\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFB4E]|\\uD804[\\uDC9A\\uDC9C\\uDCAB\\uDD2E\\uDD2F\\uDF4B\\uDF4C]|\\uD805[\\uDCBB\\uDCBC\\uDCBE\\uDDBA\\uDDBB]|\\uD834[\\uDD5E-\\uDD64\\uDDBB-\\uDDC0]/","const map = {};\nconst CFG = {};\n\n[\n // Boolean for verbose reporting\n 'DEBUG', // Effectively defaults to false (ignored unless `true`)\n\n 'cacheDatabaseInstances', // Boolean (effectively defaults to true) on whether to cache WebSQL `openDatabase` instances\n 'autoName', // Boolean on whether to auto-name databases (based on an auto-increment) when\n // the empty string is supplied; useful with `memoryDatabase`; defaults to `false`\n // which means the empty string will be used as the (valid) database name\n\n // Determines whether the slow-performing `Object.setPrototypeOf` calls required\n // for full WebIDL compliance will be used. Probably only needed for testing\n // or environments where full introspection on class relationships is required;\n // see http://stackoverflow.com/questions/41927589/rationales-consequences-of-webidl-class-inheritance-requirements\n 'fullIDLSupport', // Effectively defaults to false (ignored unless `true`)\n\n // Boolean on whether to perform origin checks in `IDBFactory` methods\n 'checkOrigin', // Effectively defaults to `true` (must be set to `false` to cancel checks)\n\n // Used by `IDBCursor` continue methods for number of records to cache;\n 'cursorPreloadPackSize', // Defaults to 100\n\n // See optional API (`shimIndexedDB.__setUnicodeIdentifiers`);\n // or just use the Unicode builds which invoke this method\n // automatically using the large, fully spec-compliant, regular\n // expression strings of `src/UnicodeIdentifiers.js`)\n 'UnicodeIDStart', // In the non-Unicode builds, defaults to /[$A-Z_a-z]/\n 'UnicodeIDContinue', // In the non-Unicode builds, defaults to /[$0-9A-Z_a-z]/\n\n // -----------SQL CONFIG----------\n // Object (`window` in the browser) on which there may be an\n // `openDatabase` method (if any) for WebSQL. (The browser\n // throws if attempting to call `openDatabase` without the window\n // so this is why the config doesn't just allow the function.)\n 'win', // Defaults to `window` or `self` in browser builds or\n // a singleton object with the `openDatabase` method set to\n // the \"websql\" package in Node.\n\n // For internal `openDatabase` calls made by `IDBFactory` methods;\n // per the WebSQL spec, \"User agents are expected to use the display name\n // and the estimated database size to optimize the user experience.\n // For example, a user agent could use the estimated size to suggest an\n // initial quota to the user. This allows a site that is aware that it\n // will try to use hundreds of megabytes to declare this upfront, instead\n // of the user agent prompting the user for permission to increase the\n // quota every five megabytes.\"\n 'DEFAULT_DB_SIZE', // Defaults to (4 * 1024 * 1024) or (25 * 1024 * 1024) in Safari\n\n // NODE-IMPINGING SETTINGS (created for sake of limitations in Node or desktop file\n // system implementation but applied by default in browser for parity)\n\n // Used when setting global shims to determine whether to try to add\n // other globals shimmed by the library (`ShimDOMException`, `ShimDOMStringList`,\n // `ShimEvent`, `ShimCustomEvent`, `ShimEventTarget`)\n 'addNonIDBGlobals', // Effectively defaults to `false` (ignored unless `true`)\n // Used when setting global shims to determine whether to try to overwrite\n // other globals shimmed by the library (`DOMException`, `DOMStringList`,\n // `Event`, `CustomEvent`, `EventTarget`)\n 'replaceNonIDBGlobals', // Effectively defaults to `false` (ignored unless `true`)\n\n // Overcoming limitations with node-sqlite3/storing database name on file systems\n // https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words\n 'escapeDatabaseName', // Defaults to prefixing database with `D_`, escaping\n // `databaseCharacterEscapeList`, escaping NUL, and\n // escaping upper case letters, as well as enforcing\n // `databaseNameLengthLimit`\n 'unescapeDatabaseName', // Not used internally; usable as a convenience method\n 'databaseCharacterEscapeList', // Defaults to global regex representing the following\n // (characters nevertheless commonly reserved in modern, Unicode-supporting\n // systems): 0x00-0x1F 0x7F \" * / : < > ? \\ |\n 'databaseNameLengthLimit', // Defaults to 254 (shortest typical modern file length limit)\n 'escapeNFDForDatabaseNames', // Boolean defaulting to true on whether to escape NFD-escaping\n // characters to avoid clashes on MacOS which performs NFD on files\n // Boolean on whether to add the `.sqlite` extension to file names;\n // defaults to `true`\n 'addSQLiteExtension',\n ['memoryDatabase', (val) => { // Various types of in-memory databases that can auto-delete\n if (!(/^(?::memory:|file::memory:(\\?[^#]*)?(#.*)?)?$/).test(val)) {\n throw new TypeError('`memoryDatabase` must be the empty string, \":memory:\", or a \"file::memory:[?queryString][#hash] URL\".');\n }\n }],\n\n // NODE-SPECIFIC CONFIG\n // Boolean on whether to delete the database file itself after `deleteDatabase`;\n // defaults to `true` as the database will be empty\n 'deleteDatabaseFiles',\n 'databaseBasePath',\n 'sysDatabaseBasePath',\n\n // NODE-SPECIFIC WEBSQL CONFIG\n 'sqlBusyTimeout', // Defaults to 1000\n 'sqlTrace', // Callback not used by default\n 'sqlProfile' // Callback not used by default\n].forEach((prop) => {\n let validator;\n if (Array.isArray(prop)) {\n validator = prop[1];\n prop = prop[0];\n }\n Object.defineProperty(CFG, prop, {\n get: function () {\n return map[prop];\n },\n set: function (val) {\n if (validator) {\n validator(val);\n }\n map[prop] = val;\n }\n });\n});\n\nexport default CFG;\n","/* globals DOMException */\nimport CFG from './CFG';\n\n/**\n * Creates a native DOMException, for browsers that support it\n * @returns {DOMException}\n */\nfunction createNativeDOMException (name, message) {\n return new DOMException.prototype.constructor(message, name || 'DOMException');\n}\n\nconst codes = { // From web-platform-tests testharness.js name_code_map (though not in new spec)\n IndexSizeError: 1,\n HierarchyRequestError: 3,\n WrongDocumentError: 4,\n InvalidCharacterError: 5,\n NoModificationAllowedError: 7,\n NotFoundError: 8,\n NotSupportedError: 9,\n InUseAttributeError: 10,\n InvalidStateError: 11,\n SyntaxError: 12,\n InvalidModificationError: 13,\n NamespaceError: 14,\n InvalidAccessError: 15,\n TypeMismatchError: 17,\n SecurityError: 18,\n NetworkError: 19,\n AbortError: 20,\n URLMismatchError: 21,\n QuotaExceededError: 22,\n TimeoutError: 23,\n InvalidNodeTypeError: 24,\n DataCloneError: 25,\n\n EncodingError: 0,\n NotReadableError: 0,\n UnknownError: 0,\n ConstraintError: 0,\n DataError: 0,\n TransactionInactiveError: 0,\n ReadOnlyError: 0,\n VersionError: 0,\n OperationError: 0,\n NotAllowedError: 0\n};\n\nconst legacyCodes = {\n INDEX_SIZE_ERR: 1,\n DOMSTRING_SIZE_ERR: 2,\n HIERARCHY_REQUEST_ERR: 3,\n WRONG_DOCUMENT_ERR: 4,\n INVALID_CHARACTER_ERR: 5,\n NO_DATA_ALLOWED_ERR: 6,\n NO_MODIFICATION_ALLOWED_ERR: 7,\n NOT_FOUND_ERR: 8,\n NOT_SUPPORTED_ERR: 9,\n INUSE_ATTRIBUTE_ERR: 10,\n INVALID_STATE_ERR: 11,\n SYNTAX_ERR: 12,\n INVALID_MODIFICATION_ERR: 13,\n NAMESPACE_ERR: 14,\n INVALID_ACCESS_ERR: 15,\n VALIDATION_ERR: 16,\n TYPE_MISMATCH_ERR: 17,\n SECURITY_ERR: 18,\n NETWORK_ERR: 19,\n ABORT_ERR: 20,\n URL_MISMATCH_ERR: 21,\n QUOTA_EXCEEDED_ERR: 22,\n TIMEOUT_ERR: 23,\n INVALID_NODE_TYPE_ERR: 24,\n DATA_CLONE_ERR: 25\n};\n\nfunction createNonNativeDOMExceptionClass () {\n function DOMException (message, name) {\n // const err = Error.prototype.constructor.call(this, message); // Any use to this? Won't set this.message\n this[Symbol.toStringTag] = 'DOMException';\n this._code = name in codes ? codes[name] : (legacyCodes[name] || 0);\n this._name = name || 'Error';\n this._message = message === undefined ? '' : ('' + message); // Not String() which converts Symbols\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: this._code\n });\n if (name !== undefined) {\n Object.defineProperty(this, 'name', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: this._name\n });\n }\n if (message !== undefined) {\n Object.defineProperty(this, 'message', {\n configurable: true,\n enumerable: false,\n writable: true,\n value: this._message\n });\n }\n }\n\n // Necessary for W3C tests which complains if `DOMException` has properties on its \"own\" prototype\n\n // class DummyDOMException extends Error {}; // Sometimes causing problems in Node\n const DummyDOMException = function DOMException () {};\n DummyDOMException.prototype = Object.create(Error.prototype); // Intended for subclassing\n ['name', 'message'].forEach((prop) => {\n Object.defineProperty(DummyDOMException.prototype, prop, {\n enumerable: true,\n get: function () {\n if (!(this instanceof DOMException ||\n this instanceof DummyDOMException ||\n this instanceof Error)) {\n throw new TypeError('Illegal invocation');\n }\n return this['_' + prop];\n }\n });\n });\n // DOMException uses the same `toString` as `Error`\n Object.defineProperty(DummyDOMException.prototype, 'code', {\n configurable: true,\n enumerable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n DOMException.prototype = new DummyDOMException();\n\n DOMException.prototype[Symbol.toStringTag] = 'DOMExceptionPrototype';\n Object.defineProperty(DOMException, 'prototype', {\n writable: false\n });\n\n Object.keys(codes).forEach((codeName) => {\n Object.defineProperty(DOMException.prototype, codeName, {\n enumerable: true,\n configurable: false,\n value: codes[codeName]\n });\n Object.defineProperty(DOMException, codeName, {\n enumerable: true,\n configurable: false,\n value: codes[codeName]\n });\n });\n Object.keys(legacyCodes).forEach((codeName) => {\n Object.defineProperty(DOMException.prototype, codeName, {\n enumerable: true,\n configurable: false,\n value: legacyCodes[codeName]\n });\n Object.defineProperty(DOMException, codeName, {\n enumerable: true,\n configurable: false,\n value: legacyCodes[codeName]\n });\n });\n Object.defineProperty(DOMException.prototype, 'constructor', {\n writable: true,\n configurable: true,\n enumerable: false,\n value: DOMException\n });\n\n return DOMException;\n}\n\nconst ShimNonNativeDOMException = createNonNativeDOMExceptionClass();\n\n/**\n * Creates a generic Error object\n * @returns {Error}\n */\nfunction createNonNativeDOMException (name, message) {\n return new ShimNonNativeDOMException(message, name);\n}\n\n/**\n * Logs detailed error information to the console.\n * @param {string} name\n * @param {string} message\n * @param {string|Error|null} error\n */\nfunction logError (name, message, error) {\n if (CFG.DEBUG) {\n if (error && error.message) {\n error = error.message;\n }\n\n const method = typeof (console.error) === 'function' ? 'error' : 'log';\n console[method](name + ': ' + message + '. ' + (error || ''));\n console.trace && console.trace();\n }\n}\n\nfunction isErrorOrDOMErrorOrDOMException (obj) {\n return obj && typeof obj === 'object' && // We don't use util.isObj here as mutual dependency causing problems in Babel with browser\n typeof obj.name === 'string';\n}\n\n/**\n * Finds the error argument. This is useful because some WebSQL callbacks\n * pass the error as the first argument, and some pass it as the second argument.\n * @param {array} args\n * @returns {Error|DOMException|undefined}\n */\nfunction findError (args) {\n let err;\n if (args) {\n if (args.length === 1) {\n return args[0];\n }\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (isErrorOrDOMErrorOrDOMException(arg)) {\n return arg;\n }\n if (arg && typeof arg.message === 'string') {\n err = arg;\n }\n }\n }\n return err;\n}\n\nfunction webSQLErrback (webSQLErr) {\n let name, message;\n switch (webSQLErr.code) {\n case 4: { // SQLError.QUOTA_ERR\n name = 'QuotaExceededError';\n message = 'The operation failed because there was not enough remaining storage space, or the storage quota was reached and the user declined to give more space to the database.';\n break;\n }\n /*\n // Should a WebSQL timeout treat as IndexedDB `TransactionInactiveError` or `UnknownError`?\n case 7: { // SQLError.TIMEOUT_ERR\n // All transaction errors abort later, so no need to mark inactive\n name = 'TransactionInactiveError';\n message = 'A request was placed against a transaction which is currently not active, or which is finished (Internal SQL Timeout).';\n break;\n }\n */\n default: {\n name = 'UnknownError';\n message = 'The operation failed for reasons unrelated to the database itself and not covered by any other errors.';\n break;\n }\n }\n message += ' (' + webSQLErr.message + ')--(' + webSQLErr.code + ')';\n const err = createDOMException(name, message);\n err.sqlError = webSQLErr;\n return err;\n}\n\nlet test, useNativeDOMException = false;\n\n// Test whether we can use the browser's native DOMException class\ntry {\n test = createNativeDOMException('test name', 'test message');\n if (isErrorOrDOMErrorOrDOMException(test) && test.name === 'test name' && test.message === 'test message') {\n // Native DOMException works as expected\n useNativeDOMException = true;\n }\n} catch (e) {}\n\nlet createDOMException, ShimDOMException;\nif (useNativeDOMException) {\n ShimDOMException = DOMException;\n createDOMException = function (name, message, error) {\n logError(name, message, error);\n return createNativeDOMException(name, message);\n };\n} else {\n ShimDOMException = ShimNonNativeDOMException;\n createDOMException = function (name, message, error) {\n logError(name, message, error);\n return createNonNativeDOMException(name, message);\n };\n}\n\nexport {logError, findError, ShimDOMException, createDOMException, webSQLErrback};\n","let cleanInterface = false;\n\nconst testObject = {test: true};\n// Test whether Object.defineProperty really works.\nif (Object.defineProperty) {\n try {\n Object.defineProperty(testObject, 'test', { enumerable: false });\n if (testObject.test) {\n cleanInterface = true;\n }\n } catch (e) {\n // Object.defineProperty does not work as intended.\n }\n}\n\n/**\n * Shim the DOMStringList object.\n *\n */\nconst DOMStringList = function () {\n throw new TypeError('Illegal constructor');\n};\nDOMStringList.prototype = {\n constructor: DOMStringList,\n // Interface.\n contains: function (str) {\n if (!arguments.length) {\n throw new TypeError('DOMStringList.contains must be supplied a value');\n }\n return this._items.includes(str);\n },\n item: function (key) {\n if (!arguments.length) {\n throw new TypeError('DOMStringList.item must be supplied a value');\n }\n if (key < 0 || key >= this.length || !Number.isInteger(key)) {\n return null;\n }\n return this._items[key];\n },\n\n // Helpers. Should only be used internally.\n clone: function () {\n const stringList = DOMStringList.__createInstance();\n stringList._items = this._items.slice();\n stringList._length = this.length;\n stringList.addIndexes();\n return stringList;\n },\n addIndexes: function () {\n for (let i = 0; i < this._items.length; i++) {\n this[i] = this._items[i];\n }\n },\n sortList: function () {\n // http://w3c.github.io/IndexedDB/#sorted-list\n // https://tc39.github.io/ecma262/#sec-abstract-relational-comparison\n this._items.sort();\n this.addIndexes();\n return this._items;\n },\n forEach: function (cb, thisArg) {\n this._items.forEach(cb, thisArg);\n },\n map: function (cb, thisArg) {\n return this._items.map(cb, thisArg);\n },\n indexOf: function (str) {\n return this._items.indexOf(str);\n },\n push: function (item) {\n this._items.push(item);\n this._length++;\n this.sortList();\n },\n splice: function (...args /* index, howmany, item1, ..., itemX */) {\n this._items.splice(...args);\n this._length = this._items.length;\n for (const i in this) {\n if (i === String(parseInt(i, 10))) {\n delete this[i];\n }\n }\n this.sortList();\n },\n [Symbol.toStringTag]: 'DOMStringListPrototype',\n // At least because `DOMStringList`, as a [list](https://infra.spec.whatwg.org/#list)\n // can be converted to a sequence per https://infra.spec.whatwg.org/#list-iterate\n // and particularly as some methods, e.g., `IDBDatabase.transaction`\n // expect such sequence (or DOMString), we need an iterator (some of\n // the Mocha tests rely on these)\n [Symbol.iterator]: function * () {\n let i = 0;\n while (i < this._items.length) {\n yield this._items[i++];\n }\n }\n};\nObject.defineProperty(DOMStringList, Symbol.hasInstance, {\n value: function (obj) {\n return ({}.toString.call(obj) === 'DOMStringListPrototype');\n }\n});\nconst DOMStringListAlias = DOMStringList;\nObject.defineProperty(DOMStringList, '__createInstance', {\n value: function () {\n const DOMStringList = function DOMStringList () {\n this.toString = function () {\n return '[object DOMStringList]';\n };\n // Internal functions on the prototype have been made non-enumerable below.\n Object.defineProperty(this, 'length', {\n enumerable: true,\n get: function () {\n return this._length;\n }\n });\n this._items = [];\n this._length = 0;\n };\n DOMStringList.prototype = DOMStringListAlias.prototype;\n return new DOMStringList();\n }\n});\n\nif (cleanInterface) {\n Object.defineProperty(DOMStringList, 'prototype', {\n writable: false\n });\n\n const nonenumerableReadonly = ['addIndexes', 'sortList', 'forEach', 'map', 'indexOf', 'push', 'splice', 'constructor', '__createInstance'];\n nonenumerableReadonly.forEach((nonenumerableReadonly) => {\n Object.defineProperty(DOMStringList.prototype, nonenumerableReadonly, {\n enumerable: false\n });\n });\n\n // Illegal invocations\n Object.defineProperty(DOMStringList.prototype, 'length', {\n configurable: true,\n enumerable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n\n const nonenumerableWritable = ['_items', '_length'];\n nonenumerableWritable.forEach((nonenumerableWritable) => {\n Object.defineProperty(DOMStringList.prototype, nonenumerableWritable, {\n enumerable: false,\n writable: true\n });\n });\n}\n\nexport default DOMStringList;\n","import {ShimEventTarget, ShimEvent, ShimCustomEvent} from 'eventtarget';\nimport * as util from './util';\n\nfunction createEvent (type, debug, evInit) {\n const ev = new ShimEvent(type, evInit);\n ev.debug = debug;\n return ev;\n}\n\n// We don't add within polyfill repo as might not always be the desired implementation\nObject.defineProperty(ShimEvent, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && 'target' in obj && typeof obj.bubbles === 'boolean'\n});\n\nexport {createEvent, ShimEvent, ShimCustomEvent, ShimEventTarget};\n","\nimport {IDBRequest} from './IDBRequest';\nimport IDBObjectStore from './IDBObjectStore';\nimport {createDOMException} from './DOMException';\nimport {setSQLForKeyRange, convertValueToKeyRange} from './IDBKeyRange';\nimport {cmp} from './IDBFactory';\nimport * as util from './util';\nimport IDBTransaction from './IDBTransaction';\nimport * as Key from './Key';\nimport * as Sca from './Sca';\nimport IDBIndex from './IDBIndex';\nimport CFG from './CFG';\n\n/**\n * The IndexedDB Cursor Object\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBCursor\n * @param {IDBKeyRange} range\n * @param {string} direction\n * @param {IDBObjectStore} store\n * @param {IDBObjectStore|IDBIndex} source\n * @param {string} keyColumnName\n * @param {string} valueColumnName\n * @param {boolean} count\n */\nfunction IDBCursor () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBCursorAlias = IDBCursor;\nIDBCursor.__super = function IDBCursor (query, direction, store, source, keyColumnName, valueColumnName, count) {\n this[Symbol.toStringTag] = 'IDBCursor';\n util.defineReadonlyProperties(this, ['key', 'primaryKey']);\n IDBObjectStore.__invalidStateIfDeleted(store);\n this.__indexSource = util.instanceOf(source, IDBIndex);\n if (this.__indexSource) IDBIndex.__invalidStateIfDeleted(source);\n IDBTransaction.__assertActive(store.transaction);\n const range = convertValueToKeyRange(query);\n if (direction !== undefined && !(['next', 'prev', 'nextunique', 'prevunique'].includes(direction))) {\n throw new TypeError(direction + 'is not a valid cursor direction');\n }\n\n Object.defineProperties(this, {\n // Babel is not respecting default writable false here, so make explicit\n source: {writable: false, value: source},\n direction: {writable: false, value: direction || 'next'}\n });\n this.__key = undefined;\n this.__primaryKey = undefined;\n\n this.__store = store;\n this.__range = range;\n this.__req = IDBRequest.__createInstance();\n this.__req.__source = source;\n this.__req.__transaction = this.__store.transaction;\n this.__keyColumnName = keyColumnName;\n this.__valueColumnName = valueColumnName;\n this.__keyOnly = valueColumnName === 'key';\n this.__valueDecoder = this.__keyOnly ? Key : Sca;\n this.__count = count;\n this.__prefetchedIndex = -1;\n this.__multiEntryIndex = this.__indexSource ? source.multiEntry : false;\n this.__unique = this.direction.includes('unique');\n this.__sqlDirection = ['prev', 'prevunique'].includes(this.direction) ? 'DESC' : 'ASC';\n\n if (range !== undefined) {\n // Encode the key range and cache the encoded values, so we don't have to re-encode them over and over\n range.__lowerCached = range.lower !== undefined && Key.encode(range.lower, this.__multiEntryIndex);\n range.__upperCached = range.upper !== undefined && Key.encode(range.upper, this.__multiEntryIndex);\n }\n this.__gotValue = true;\n this['continue']();\n};\n\nIDBCursor.__createInstance = function (...args) {\n const IDBCursor = IDBCursorAlias.__super;\n IDBCursor.prototype = IDBCursorAlias.prototype;\n return new IDBCursor(...args);\n};\n\nIDBCursor.prototype.__find = function (...args /* key, tx, success, error, recordsToLoad */) {\n if (this.__multiEntryIndex) {\n this.__findMultiEntry(...args);\n } else {\n this.__findBasic(...args);\n }\n};\n\nIDBCursor.prototype.__findBasic = function (key, primaryKey, tx, success, error, recordsToLoad) {\n const continueCall = recordsToLoad !== undefined;\n recordsToLoad = recordsToLoad || 1;\n\n const me = this;\n const quotedKeyColumnName = util.sqlQuote(me.__keyColumnName);\n const quotedKey = util.sqlQuote('key');\n let sql = ['SELECT * FROM', util.escapeStoreNameForSQL(me.__store.__currentName)];\n const sqlValues = [];\n sql.push('WHERE', quotedKeyColumnName, 'NOT NULL');\n setSQLForKeyRange(me.__range, quotedKeyColumnName, sql, sqlValues, true, true);\n\n // Determine the ORDER BY direction based on the cursor.\n const direction = me.__sqlDirection;\n const op = direction === 'ASC' ? '>' : '<';\n\n if (primaryKey !== undefined) {\n sql.push('AND', quotedKey, op + '= ?');\n // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`\n sqlValues.push(Key.encode(primaryKey));\n }\n if (key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + '= ?');\n // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`\n sqlValues.push(Key.encode(key));\n } else if (continueCall && me.__key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + ' ?');\n // Key.convertValueToKey(me.__key); // Already checked when stored\n sqlValues.push(Key.encode(me.__key));\n }\n\n if (!me.__count) {\n // 1. Sort by key\n sql.push('ORDER BY', quotedKeyColumnName, direction);\n\n // 2. Sort by primaryKey (if defined and not unique)\n if (!me.__unique && me.__keyColumnName !== 'key') { // Avoid adding 'key' twice\n sql.push(',', quotedKey, direction);\n }\n\n // 3. Sort by position (if defined)\n\n if (!me.__unique && me.__indexSource) {\n // 4. Sort by object store position (if defined and not unique)\n sql.push(',', util.sqlQuote(me.__valueColumnName), direction);\n }\n sql.push('LIMIT', recordsToLoad);\n }\n sql = sql.join(' ');\n CFG.DEBUG && console.log(sql, sqlValues);\n\n tx.executeSql(sql, sqlValues, function (tx, data) {\n if (me.__count) {\n success(undefined, data.rows.length, undefined);\n } else if (data.rows.length > 1) {\n me.__prefetchedIndex = 0;\n me.__prefetchedData = data.rows;\n CFG.DEBUG && console.log('Preloaded ' + me.__prefetchedData.length + ' records for cursor');\n me.__decode(data.rows.item(0), success);\n } else if (data.rows.length === 1) {\n me.__decode(data.rows.item(0), success);\n } else {\n CFG.DEBUG && console.log('Reached end of cursors');\n success(undefined, undefined, undefined);\n }\n }, function (tx, err) {\n CFG.DEBUG && console.log('Could not execute Cursor.continue', sql, sqlValues);\n error(err);\n });\n};\n\nIDBCursor.prototype.__findMultiEntry = function (key, primaryKey, tx, success, error) {\n const me = this;\n\n if (me.__prefetchedData && me.__prefetchedData.length === me.__prefetchedIndex) {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n success(undefined, undefined, undefined);\n return;\n }\n\n const quotedKeyColumnName = util.sqlQuote(me.__keyColumnName);\n let sql = ['SELECT * FROM', util.escapeStoreNameForSQL(me.__store.__currentName)];\n const sqlValues = [];\n sql.push('WHERE', quotedKeyColumnName, 'NOT NULL');\n if (me.__range && (me.__range.lower !== undefined && Array.isArray(me.__range.upper))) {\n if (me.__range.upper.indexOf(me.__range.lower) === 0) {\n sql.push('AND', quotedKeyColumnName, \"LIKE ? ESCAPE '^'\");\n sqlValues.push('%' + util.sqlLIKEEscape(me.__range.__lowerCached.slice(0, -1)) + '%');\n }\n }\n\n // Determine the ORDER BY direction based on the cursor.\n const direction = me.__sqlDirection;\n const op = direction === 'ASC' ? '>' : '<';\n const quotedKey = util.sqlQuote('key');\n\n if (primaryKey !== undefined) {\n sql.push('AND', quotedKey, op + '= ?');\n // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`\n sqlValues.push(Key.encode(primaryKey));\n }\n if (key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + '= ?');\n // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`\n sqlValues.push(Key.encode(key));\n } else if (me.__key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + ' ?');\n // Key.convertValueToKey(me.__key); // Already checked when entered\n sqlValues.push(Key.encode(me.__key));\n }\n\n if (!me.__count) {\n // 1. Sort by key\n sql.push('ORDER BY', quotedKeyColumnName, direction);\n\n // 2. Sort by primaryKey (if defined and not unique)\n if (!me.__unique && me.__keyColumnName !== 'key') { // Avoid adding 'key' twice\n sql.push(',', util.sqlQuote('key'), direction);\n }\n\n // 3. Sort by position (if defined)\n\n if (!me.__unique && me.__indexSource) {\n // 4. Sort by object store position (if defined and not unique)\n sql.push(',', util.sqlQuote(me.__valueColumnName), direction);\n }\n }\n sql = sql.join(' ');\n CFG.DEBUG && console.log(sql, sqlValues);\n\n tx.executeSql(sql, sqlValues, function (tx, data) {\n if (data.rows.length > 0) {\n if (me.__count) { // Avoid caching and other processing below\n let ct = 0;\n for (let i = 0; i < data.rows.length; i++) {\n const rowItem = data.rows.item(i);\n const rowKey = Key.decode(rowItem[me.__keyColumnName], true);\n const matches = Key.findMultiEntryMatches(rowKey, me.__range);\n ct += matches.length;\n }\n success(undefined, ct, undefined);\n return;\n }\n const rows = [];\n for (let i = 0; i < data.rows.length; i++) {\n const rowItem = data.rows.item(i);\n const rowKey = Key.decode(rowItem[me.__keyColumnName], true);\n const matches = Key.findMultiEntryMatches(rowKey, me.__range);\n\n for (let j = 0; j < matches.length; j++) {\n const matchingKey = matches[j];\n const clone = {\n matchingKey: Key.encode(matchingKey, true),\n key: rowItem.key\n };\n clone[me.__keyColumnName] = rowItem[me.__keyColumnName];\n clone[me.__valueColumnName] = rowItem[me.__valueColumnName];\n rows.push(clone);\n }\n }\n const reverse = me.direction.indexOf('prev') === 0;\n rows.sort(function (a, b) {\n if (a.matchingKey.replace('[', 'z') < b.matchingKey.replace('[', 'z')) {\n return reverse ? 1 : -1;\n }\n if (a.matchingKey.replace('[', 'z') > b.matchingKey.replace('[', 'z')) {\n return reverse ? -1 : 1;\n }\n if (a.key < b.key) {\n return me.direction === 'prev' ? 1 : -1;\n }\n if (a.key > b.key) {\n return me.direction === 'prev' ? -1 : 1;\n }\n return 0;\n });\n\n if (rows.length > 1) {\n me.__prefetchedIndex = 0;\n me.__prefetchedData = {\n data: rows,\n length: rows.length,\n item: function (index) {\n return this.data[index];\n }\n };\n CFG.DEBUG && console.log('Preloaded ' + me.__prefetchedData.length + ' records for multiEntry cursor');\n me.__decode(rows[0], success);\n } else if (rows.length === 1) {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n me.__decode(rows[0], success);\n } else {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n success(undefined, undefined, undefined);\n }\n } else {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n success(undefined, undefined, undefined);\n }\n }, function (tx, err) {\n CFG.DEBUG && console.log('Could not execute Cursor.continue', sql, sqlValues);\n error(err);\n });\n};\n\n/**\n * Creates an \"onsuccess\" callback\n * @private\n */\nIDBCursor.prototype.__onsuccess = function (success) {\n const me = this;\n return function (key, value, primaryKey) {\n if (me.__count) {\n success(value, me.__req);\n } else {\n if (key !== undefined) {\n me.__gotValue = true;\n }\n me.__key = key === undefined ? null : key;\n me.__primaryKey = primaryKey === undefined ? null : primaryKey;\n me.__value = value === undefined ? null : value;\n const result = key === undefined ? null : me;\n success(result, me.__req);\n }\n };\n};\n\nIDBCursor.prototype.__decode = function (rowItem, callback) {\n const me = this;\n if (me.__multiEntryIndex && me.__unique) {\n if (!me.__matchedKeys) {\n me.__matchedKeys = {};\n }\n if (me.__matchedKeys[rowItem.matchingKey]) {\n callback(undefined, undefined, undefined); // eslint-disable-line standard/no-callback-literal\n return;\n }\n me.__matchedKeys[rowItem.matchingKey] = true;\n }\n const encKey = util.unescapeSQLiteResponse(me.__multiEntryIndex\n ? rowItem.matchingKey\n : rowItem[me.__keyColumnName]\n );\n const encVal = util.unescapeSQLiteResponse(rowItem[me.__valueColumnName]);\n const encPrimaryKey = util.unescapeSQLiteResponse(rowItem.key);\n\n const key = Key.decode(\n encKey,\n me.__multiEntryIndex\n );\n const val = me.__valueDecoder.decode(encVal);\n const primaryKey = Key.decode(encPrimaryKey);\n callback(key, val, primaryKey, encKey /*, encVal, encPrimaryKey */);\n};\n\nIDBCursor.prototype.__sourceOrEffectiveObjStoreDeleted = function () {\n IDBObjectStore.__invalidStateIfDeleted(this.__store, \"The cursor's effective object store has been deleted\");\n if (this.__indexSource) IDBIndex.__invalidStateIfDeleted(this.source, \"The cursor's index source has been deleted\");\n};\n\nIDBCursor.prototype.__invalidateCache = function () {\n this.__prefetchedData = null;\n};\n\nIDBCursor.prototype.__continue = function (key, advanceContinue) {\n const me = this;\n const advanceState = me.__advanceCount !== undefined;\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__gotValue && !advanceContinue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n if (key !== undefined) {\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n const cmpResult = cmp(key, me.key);\n if (cmpResult === 0 ||\n (me.direction.includes('next') && cmpResult === -1) ||\n (me.direction.includes('prev') && cmpResult === 1)\n ) {\n throw createDOMException('DataError', 'Cannot ' + (advanceState ? 'advance' : 'continue') + ' the cursor in an unexpected direction');\n }\n }\n this.__continueFinish(key, undefined, advanceState);\n};\n\nIDBCursor.prototype.__continueFinish = function (key, primaryKey, advanceState) {\n const me = this;\n const recordsToPreloadOnContinue = me.__advanceCount || CFG.cursorPreloadPackSize || 100;\n me.__gotValue = false;\n me.__req.__readyState = 'pending'; // Unset done flag\n\n me.__store.transaction.__pushToQueue(me.__req, function cursorContinue (tx, args, success, error, executeNextRequest) {\n function triggerSuccess (k, val, primKey) {\n if (advanceState) {\n if (me.__advanceCount >= 2 && k !== undefined) {\n me.__advanceCount--;\n me.__key = k;\n me.__continue(undefined, true);\n executeNextRequest(); // We don't call success yet but do need to advance the transaction queue\n return;\n }\n me.__advanceCount = undefined;\n }\n me.__onsuccess(success)(k, val, primKey);\n }\n if (me.__prefetchedData) {\n // We have pre-loaded data for the cursor\n me.__prefetchedIndex++;\n if (me.__prefetchedIndex < me.__prefetchedData.length) {\n me.__decode(me.__prefetchedData.item(me.__prefetchedIndex), function (k, val, primKey, encKey) {\n function checkKey () {\n const cmpResult = key === undefined || cmp(k, key);\n if (cmpResult > 0 || (\n cmpResult === 0 && (\n me.__unique || primaryKey === undefined || cmp(primKey, primaryKey) >= 0\n )\n )) {\n triggerSuccess(k, val, primKey);\n return;\n }\n cursorContinue(tx, args, success, error);\n }\n if (me.__unique && !me.__multiEntryIndex &&\n encKey === Key.encode(me.key, me.__multiEntryIndex)) {\n cursorContinue(tx, args, success, error);\n return;\n }\n checkKey();\n });\n return;\n }\n }\n\n // No (or not enough) pre-fetched data, do query\n me.__find(key, primaryKey, tx, triggerSuccess, function (...args) {\n me.__advanceCount = undefined;\n error(...args);\n }, recordsToPreloadOnContinue);\n });\n};\n\nIDBCursor.prototype['continue'] = function (/* key */) {\n this.__continue(arguments[0]);\n};\n\nIDBCursor.prototype.continuePrimaryKey = function (key, primaryKey) {\n const me = this;\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__indexSource) {\n throw createDOMException('InvalidAccessError', '`continuePrimaryKey` may only be called on an index source.');\n }\n if (!['next', 'prev'].includes(me.direction)) {\n throw createDOMException('InvalidAccessError', '`continuePrimaryKey` may not be called with unique cursors.');\n }\n if (!me.__gotValue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n Key.convertValueToKeyRethrowingAndIfInvalid(primaryKey);\n\n const cmpResult = cmp(key, me.key);\n if (\n (me.direction === 'next' && cmpResult === -1) ||\n (me.direction === 'prev' && cmpResult === 1)\n ) {\n throw createDOMException('DataError', 'Cannot continue the cursor in an unexpected direction');\n }\n function noErrors () {\n me.__continueFinish(key, primaryKey, false);\n }\n if (cmpResult === 0) {\n Sca.encode(primaryKey, function (encPrimaryKey) {\n Sca.encode(me.primaryKey, function (encObjectStorePos) {\n if (encPrimaryKey === encObjectStorePos ||\n (me.direction === 'next' && encPrimaryKey < encObjectStorePos) ||\n (me.direction === 'prev' && encPrimaryKey > encObjectStorePos)\n ) {\n throw createDOMException('DataError', 'Cannot continue the cursor in an unexpected direction');\n }\n noErrors();\n });\n });\n } else {\n noErrors();\n }\n};\n\nIDBCursor.prototype.advance = function (count) {\n const me = this;\n count = util.enforceRange(count, 'unsigned long');\n if (count === 0) {\n throw new TypeError('Calling advance() with count argument 0');\n }\n if (me.__gotValue) { // Only set the count if not running in error (otherwise will override earlier good advance calls)\n me.__advanceCount = count;\n }\n me.__continue();\n};\n\nIDBCursor.prototype.update = function (valueToUpdate) {\n const me = this;\n if (!arguments.length) throw new TypeError('A value must be passed to update()');\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__store.transaction.__assertWritable();\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__gotValue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n if (me.__keyOnly) {\n throw createDOMException('InvalidStateError', 'This cursor method cannot be called when the key only flag has been set.');\n }\n const request = me.__store.transaction.__createRequest(me);\n const key = me.primaryKey;\n function addToQueue (clonedValue) {\n IDBObjectStore.__storingRecordObjectStore(request, me.__store, clonedValue, false, key);\n }\n if (me.__store.keyPath !== null) {\n const [evaluatedKey, clonedValue] = me.__store.__validateKeyAndValueAndCloneValue(valueToUpdate, undefined, true);\n if (cmp(me.primaryKey, evaluatedKey) !== 0) {\n throw createDOMException('DataError', 'The key of the supplied value to `update` is not equal to the cursor\\'s effective key');\n }\n addToQueue(clonedValue);\n } else {\n const clonedValue = Sca.clone(valueToUpdate);\n addToQueue(clonedValue);\n }\n return request;\n};\n\nIDBCursor.prototype['delete'] = function () {\n const me = this;\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__store.transaction.__assertWritable();\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__gotValue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n if (me.__keyOnly) {\n throw createDOMException('InvalidStateError', 'This cursor method cannot be called when the key only flag has been set.');\n }\n return this.__store.transaction.__addToTransactionQueue(function cursorDelete (tx, args, success, error) {\n me.__find(undefined, undefined, tx, function (key, value, primaryKey) {\n const sql = 'DELETE FROM ' + util.escapeStoreNameForSQL(me.__store.__currentName) + ' WHERE \"key\" = ?';\n CFG.DEBUG && console.log(sql, key, primaryKey);\n // Key.convertValueToKey(primaryKey); // Already checked when entered\n tx.executeSql(sql, [util.escapeSQLiteStatement(Key.encode(primaryKey))], function (tx, data) {\n if (data.rowsAffected === 1) {\n me.__store.__cursors.forEach((cursor) => {\n cursor.__invalidateCache(); // Delete\n });\n success(undefined);\n } else {\n error('No rows with key found' + key);\n }\n }, function (tx, data) {\n error(data);\n });\n }, error);\n }, undefined, me);\n};\n\nIDBCursor.prototype[Symbol.toStringTag] = 'IDBCursorPrototype';\n\n['source', 'direction', 'key', 'primaryKey'].forEach((prop) => {\n Object.defineProperty(IDBCursor.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\nObject.defineProperty(IDBCursor, 'prototype', {\n writable: false\n});\n\nclass IDBCursorWithValue extends IDBCursor {}\nconst IDBCursorWithValueAlias = IDBCursorWithValue;\nIDBCursorWithValue.__createInstance = function (...args) {\n function IDBCursorWithValue () {\n IDBCursor.__super.call(this, ...args);\n this[Symbol.toStringTag] = 'IDBCursorWithValue';\n util.defineReadonlyProperties(this, 'value');\n }\n IDBCursorWithValue.prototype = IDBCursorWithValueAlias.prototype;\n return new IDBCursorWithValue();\n};\n\nObject.defineProperty(IDBCursorWithValue.prototype, 'value', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n});\n\nIDBCursorWithValue.prototype[Symbol.toStringTag] = 'IDBCursorWithValuePrototype';\n\nObject.defineProperty(IDBCursorWithValue, 'prototype', {\n writable: false\n});\n\nexport {IDBCursor, IDBCursorWithValue};\n","import {createDOMException} from './DOMException';\nimport {createEvent} from './Event';\nimport * as util from './util';\nimport DOMStringList from './DOMStringList';\nimport IDBObjectStore from './IDBObjectStore';\nimport IDBTransaction from './IDBTransaction';\nimport * as Sca from './Sca';\nimport CFG from './CFG';\nimport {EventTargetFactory} from 'eventtarget';\n\nconst listeners = ['onabort', 'onclose', 'onerror', 'onversionchange'];\nconst readonlyProperties = ['name', 'version', 'objectStoreNames'];\n\n/**\n * IDB Database Object\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#database-interface\n * @constructor\n */\nfunction IDBDatabase () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBDatabaseAlias = IDBDatabase;\nIDBDatabase.__createInstance = function (db, name, oldVersion, version, storeProperties) {\n function IDBDatabase () {\n this[Symbol.toStringTag] = 'IDBDatabase';\n util.defineReadonlyProperties(this, readonlyProperties);\n this.__db = db;\n this.__closed = false;\n this.__oldVersion = oldVersion;\n this.__version = version;\n this.__name = name;\n listeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n });\n listeners.forEach((l) => {\n this[l] = null;\n });\n this.__setOptions({\n legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n });\n\n this.__transactions = [];\n this.__objectStores = {};\n this.__objectStoreNames = DOMStringList.__createInstance();\n const itemCopy = {};\n for (let i = 0; i < storeProperties.rows.length; i++) {\n const item = storeProperties.rows.item(i);\n // Safari implements `item` getter return object's properties\n // as readonly, so we copy all its properties (except our\n // custom `currNum` which we don't need) onto a new object\n itemCopy.name = item.name;\n itemCopy.keyPath = Sca.decode(item.keyPath);\n ['autoInc', 'indexList'].forEach(function (prop) {\n itemCopy[prop] = JSON.parse(item[prop]);\n });\n itemCopy.idbdb = this;\n const store = IDBObjectStore.__createInstance(itemCopy);\n this.__objectStores[store.name] = store;\n this.objectStoreNames.push(store.name);\n }\n this.__oldObjectStoreNames = this.objectStoreNames.clone();\n }\n IDBDatabase.prototype = IDBDatabaseAlias.prototype;\n return new IDBDatabase();\n};\n\nIDBDatabase.prototype = EventTargetFactory.createInstance();\nIDBDatabase.prototype[Symbol.toStringTag] = 'IDBDatabasePrototype';\n\n/**\n * Creates a new object store.\n * @param {string} storeName\n * @param {object} [createOptions]\n * @returns {IDBObjectStore}\n */\nIDBDatabase.prototype.createObjectStore = function (storeName /* , createOptions */) {\n let createOptions = arguments[1];\n storeName = String(storeName); // W3C test within IDBObjectStore.js seems to accept string conversion\n if (!(this instanceof IDBDatabase)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No object store name was specified');\n }\n IDBTransaction.__assertVersionChange(this.__versionTransaction); // this.__versionTransaction may not exist if called mistakenly by user in onsuccess\n IDBTransaction.__assertNotFinishedObjectStoreMethod(this.__versionTransaction);\n IDBTransaction.__assertActive(this.__versionTransaction);\n\n createOptions = Object.assign({}, createOptions);\n let keyPath = createOptions.keyPath;\n keyPath = keyPath === undefined ? null : keyPath = util.convertToSequenceDOMString(keyPath);\n if (keyPath !== null && !util.isValidKeyPath(keyPath)) {\n throw createDOMException('SyntaxError', 'The keyPath argument contains an invalid key path.');\n }\n\n if (this.__objectStores[storeName] && !this.__objectStores[storeName].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Object store \"' + storeName + '\" already exists in ' + this.name);\n }\n\n const autoIncrement = createOptions.autoIncrement;\n if (autoIncrement && (keyPath === '' || Array.isArray(keyPath))) {\n throw createDOMException('InvalidAccessError', 'With autoIncrement set, the keyPath argument must not be an array or empty string.');\n }\n\n /** @name IDBObjectStoreProperties **/\n const storeProperties = {\n name: storeName,\n keyPath: keyPath,\n autoInc: autoIncrement,\n indexList: {},\n idbdb: this\n };\n const store = IDBObjectStore.__createInstance(storeProperties, this.__versionTransaction);\n return IDBObjectStore.__createObjectStore(this, store);\n};\n\n/**\n * Deletes an object store.\n * @param {string} storeName\n */\nIDBDatabase.prototype.deleteObjectStore = function (storeName) {\n if (!(this instanceof IDBDatabase)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No object store name was specified');\n }\n IDBTransaction.__assertVersionChange(this.__versionTransaction);\n IDBTransaction.__assertNotFinishedObjectStoreMethod(this.__versionTransaction);\n IDBTransaction.__assertActive(this.__versionTransaction);\n\n const store = this.__objectStores[storeName];\n if (!store) {\n throw createDOMException('NotFoundError', 'Object store \"' + storeName + '\" does not exist in ' + this.name);\n }\n\n IDBObjectStore.__deleteObjectStore(this, store);\n};\n\nIDBDatabase.prototype.close = function () {\n if (!(this instanceof IDBDatabase)) {\n throw new TypeError('Illegal invocation');\n }\n this.__closed = true;\n if (this.__unblocking) {\n this.__unblocking.check();\n }\n};\n\n/**\n * Starts a new transaction.\n * @param {string|string[]} storeNames\n * @param {string} mode\n * @returns {IDBTransaction}\n */\nIDBDatabase.prototype.transaction = function (storeNames /* , mode */) {\n let mode = arguments[1];\n storeNames = typeof storeNames === 'string'\n ? [storeNames]\n : (util.isIterable(storeNames)\n ? [ // Creating new array also ensures sequence is passed by value: https://heycam.github.io/webidl/#idl-sequence\n ...new Set( // to be unique\n util.convertToSequenceDOMString(storeNames) // iterables have `ToString` applied (and we convert to array for convenience)\n )\n ].sort() // must be sorted\n : (function () {\n throw new TypeError('You must supply a valid `storeNames` to `IDBDatabase.transaction`');\n }()));\n\n // Since SQLite (at least node-websql and definitely WebSQL) requires\n // locking of the whole database, to allow simultaneous readwrite\n // operations on transactions without overlapping stores, we'd probably\n // need to save the stores in separate databases (we could also consider\n // prioritizing readonly but not starving readwrite).\n // Even for readonly transactions, due to [issue 17](https://github.com/nolanlawson/node-websql/issues/17),\n // we're not currently actually running the SQL requests in parallel.\n if (typeof mode === 'number') {\n mode = mode === 1 ? 'readwrite' : 'readonly';\n CFG.DEBUG && console.log('Mode should be a string, but was specified as ', mode); // Todo Deprecated: Remove this option as no longer in spec\n } else {\n mode = mode || 'readonly';\n }\n\n IDBTransaction.__assertNotVersionChange(this.__versionTransaction);\n if (this.__closed) {\n throw createDOMException('InvalidStateError', 'An attempt was made to start a new transaction on a database connection that is not open');\n }\n\n const objectStoreNames = DOMStringList.__createInstance();\n storeNames.forEach((storeName) => {\n if (!this.objectStoreNames.contains(storeName)) {\n throw createDOMException('NotFoundError', 'The \"' + storeName + '\" object store does not exist');\n }\n objectStoreNames.push(storeName);\n });\n\n if (storeNames.length === 0) {\n throw createDOMException('InvalidAccessError', 'No valid object store names were specified');\n }\n\n if (mode !== 'readonly' && mode !== 'readwrite') {\n throw new TypeError('Invalid transaction mode: ' + mode);\n }\n\n // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n\n const trans = IDBTransaction.__createInstance(this, objectStoreNames, mode);\n this.__transactions.push(trans);\n return trans;\n};\n\n// Todo __forceClose: Add tests for `__forceClose`\nIDBDatabase.prototype.__forceClose = function (msg) {\n const me = this;\n me.close();\n let ct = 0;\n me.__transactions.forEach(function (trans) {\n trans.on__abort = function () {\n ct++;\n if (ct === me.__transactions.length) {\n // Todo __forceClose: unblock any pending `upgradeneeded` or `deleteDatabase` calls\n const evt = createEvent('close');\n setTimeout(() => {\n me.dispatchEvent(evt);\n });\n }\n };\n trans.__abortTransaction(createDOMException('AbortError', 'The connection was force-closed: ' + (msg || '')));\n });\n};\n\nlisteners.forEach((listener) => {\n Object.defineProperty(IDBDatabase.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBDatabase.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nObject.defineProperty(IDBDatabase.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBDatabase\n});\n\nObject.defineProperty(IDBDatabase, 'prototype', {\n writable: false\n});\n\nexport default IDBDatabase;\n","/* globals location, Event */\nimport {createEvent, ShimEvent, ShimCustomEvent, ShimEventTarget} from './Event';\nimport IDBVersionChangeEvent from './IDBVersionChangeEvent';\nimport {logError, webSQLErrback, createDOMException, ShimDOMException} from './DOMException';\nimport {IDBOpenDBRequest, IDBRequest} from './IDBRequest';\nimport ShimDOMStringList from './DOMStringList';\nimport * as util from './util';\nimport * as Key from './Key';\nimport IDBTransaction from './IDBTransaction';\nimport IDBDatabase from './IDBDatabase';\nimport CFG from './CFG';\nimport SyncPromise from 'sync-promise';\nimport path from 'path';\n\nconst getOrigin = () => (typeof location !== 'object' || !location) ? 'null' : location.origin;\nconst hasNullOrigin = () => CFG.checkOrigin !== false && (getOrigin() === 'null');\n\n// Todo: This really should be process and tab-independent so the\n// origin could vary; in the browser, this might be through a\n// `SharedWorker`\nconst connectionQueue = {\n [getOrigin()]: {}\n};\n\nfunction processNextInConnectionQueue (name, origin = getOrigin()) {\n const queueItems = connectionQueue[origin][name];\n if (!queueItems[0]) { // Nothing left to process\n return;\n }\n const {req, cb} = queueItems[0]; // Keep in queue to prevent continuation\n function removeFromQueue () {\n queueItems.shift();\n processNextInConnectionQueue(name, origin);\n }\n req.addEventListener('success', removeFromQueue);\n req.addEventListener('error', removeFromQueue);\n cb(req);\n}\n\nfunction addRequestToConnectionQueue (req, name, origin = getOrigin(), cb) {\n if (!connectionQueue[origin][name]) {\n connectionQueue[origin][name] = [];\n }\n connectionQueue[origin][name].push({req, cb});\n\n if (connectionQueue[origin][name].length === 1) { // If there are no items in the queue, we have to start it\n processNextInConnectionQueue(name, origin);\n }\n}\n\nfunction triggerAnyVersionChangeAndBlockedEvents (openConnections, req, oldVersion, newVersion) {\n // Todo: For Node (and in browser using service workers if available?) the\n // connections ought to involve those in any process; should also\n // auto-close if unloading\n const connectionIsClosed = (connection) => connection.__closed;\n const connectionsClosed = () => openConnections.every(connectionIsClosed);\n return openConnections.reduce(function (promises, entry) {\n if (connectionIsClosed(entry)) {\n return promises;\n }\n return promises.then(function () {\n if (connectionIsClosed(entry)) {\n // Prior onversionchange must have caused this connection to be closed\n return;\n }\n const e = new IDBVersionChangeEvent('versionchange', {oldVersion, newVersion});\n return new SyncPromise(function (resolve) {\n setTimeout(() => {\n entry.dispatchEvent(e); // No need to catch errors\n resolve();\n });\n });\n });\n }, SyncPromise.resolve()).then(function () {\n if (!connectionsClosed()) {\n return new SyncPromise(function (resolve) {\n const unblocking = {\n check: function check () {\n if (connectionsClosed()) {\n resolve();\n }\n }\n };\n const e = new IDBVersionChangeEvent('blocked', {oldVersion, newVersion});\n setTimeout(() => {\n req.dispatchEvent(e); // No need to catch errors\n if (!connectionsClosed()) {\n openConnections.forEach((connection) => {\n if (!connectionIsClosed(connection)) {\n connection.__unblocking = unblocking;\n }\n });\n } else {\n resolve();\n }\n });\n });\n }\n });\n}\n\nconst websqlDBCache = {};\nlet sysdb;\nlet nameCounter = 0;\n\nfunction getLatestCachedWebSQLVersion (name) {\n return Object.keys(websqlDBCache[name]).map(Number).reduce(\n (prev, curr) => curr > prev ? curr : prev, 0\n );\n}\n\nfunction getLatestCachedWebSQLDB (name) {\n return websqlDBCache[name] && websqlDBCache[name][ // eslint-disable-line standard/computed-property-even-spacing\n getLatestCachedWebSQLVersion()\n ];\n}\n\nfunction cleanupDatabaseResources (__openDatabase, name, escapedDatabaseName, databaseDeleted, dbError) {\n const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n if (useMemoryDatabase) {\n const latestSQLiteDBCached = websqlDBCache[name] ? getLatestCachedWebSQLDB(name) : null;\n if (!latestSQLiteDBCached) {\n console.warn('Could not find a memory database instance to delete.');\n databaseDeleted();\n return;\n }\n const sqliteDB = latestSQLiteDBCached._db && latestSQLiteDBCached._db._db;\n if (!sqliteDB || !sqliteDB.close) {\n console.error('The `openDatabase` implementation does not have the expected `._db._db.close` method for closing the database');\n return;\n }\n sqliteDB.close(function (err) {\n if (err) {\n console.warn('Error closing (destroying) memory database');\n return;\n }\n databaseDeleted();\n });\n return;\n }\n if (CFG.deleteDatabaseFiles !== false && ({}.toString.call(process) === '[object process]')) {\n require('fs').unlink(require('path').resolve(escapedDatabaseName), (err) => {\n if (err && err.code !== 'ENOENT') { // Ignore if file is already deleted\n dbError({code: 0, message: 'Error removing database file: ' + escapedDatabaseName + ' ' + err});\n return;\n }\n databaseDeleted();\n });\n return;\n }\n\n const sqliteDB = __openDatabase(\n path.join(CFG.databaseBasePath || '', escapedDatabaseName),\n 1,\n name,\n CFG.DEFAULT_DB_SIZE\n );\n sqliteDB.transaction(function (tx) {\n tx.executeSql('SELECT \"name\" FROM __sys__', [], function (tx, data) {\n const tables = data.rows;\n (function deleteTables (i) {\n if (i >= tables.length) {\n // If all tables are deleted, delete the housekeeping tables\n tx.executeSql('DROP TABLE IF EXISTS __sys__', [], function () {\n databaseDeleted();\n }, dbError);\n } else {\n // Delete all tables in this database, maintained in the sys table\n tx.executeSql('DROP TABLE ' + util.escapeStoreNameForSQL(\n util.unescapeSQLiteResponse( // Avoid double-escaping\n tables.item(i).name\n )\n ), [], function () {\n deleteTables(i + 1);\n }, function () {\n deleteTables(i + 1);\n });\n }\n }(0));\n }, function (e) {\n // __sys__ table does not exist, but that does not mean delete did not happen\n databaseDeleted();\n });\n });\n}\n\n/**\n * Creates the sysDB to keep track of version numbers for databases\n **/\nfunction createSysDB (__openDatabase, success, failure) {\n function sysDbCreateError (tx, err) {\n err = webSQLErrback(err);\n CFG.DEBUG && console.log('Error in sysdb transaction - when creating dbVersions', err);\n failure(err);\n }\n\n if (sysdb) {\n success();\n } else {\n sysdb = __openDatabase(\n typeof CFG.memoryDatabase === 'string'\n ? CFG.memoryDatabase\n : path.join(\n (typeof CFG.sysDatabaseBasePath === 'string'\n ? CFG.sysDatabaseBasePath\n : (CFG.databaseBasePath || '')),\n '__sysdb__' + (CFG.addSQLiteExtension !== false ? '.sqlite' : '')\n ),\n 1,\n 'System Database',\n CFG.DEFAULT_DB_SIZE\n );\n sysdb.transaction(function (systx) {\n systx.executeSql('CREATE TABLE IF NOT EXISTS dbVersions (name BLOB, version INT);', [], success, sysDbCreateError);\n }, sysDbCreateError);\n }\n}\n\n/**\n * IDBFactory Class\n * https://w3c.github.io/IndexedDB/#idl-def-IDBFactory\n * @constructor\n */\nfunction IDBFactory () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBFactoryAlias = IDBFactory;\nIDBFactory.__createInstance = function () {\n function IDBFactory () {\n this[Symbol.toStringTag] = 'IDBFactory';\n this.modules = { // Export other shims (especially for testing)\n Event: typeof Event !== 'undefined' ? Event : ShimEvent,\n Error, // For test comparisons\n ShimEvent,\n ShimCustomEvent,\n ShimEventTarget,\n ShimDOMException,\n ShimDOMStringList,\n IDBFactory: IDBFactoryAlias\n };\n this.utils = {createDOMException}; // Expose for ease in simulating such exceptions during testing\n this.__connections = {};\n }\n IDBFactory.prototype = IDBFactoryAlias.prototype;\n return new IDBFactory();\n};\n\n/**\n * The IndexedDB Method to create a new database and return the DB\n * @param {string} name\n * @param {number} version\n */\nIDBFactory.prototype.open = function (name /* , version */) {\n const me = this;\n if (!(me instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n let version = arguments[1];\n\n if (arguments.length === 0) {\n throw new TypeError('Database name is required');\n }\n if (version !== undefined) {\n version = util.enforceRange(version, 'unsigned long long');\n if (version === 0) {\n throw new TypeError('Version cannot be 0');\n }\n }\n if (hasNullOrigin()) {\n throw createDOMException('SecurityError', 'Cannot open an IndexedDB database from an opaque origin.');\n }\n\n const req = IDBOpenDBRequest.__createInstance();\n let calledDbCreateError = false;\n\n if (CFG.autoName && name === '') {\n name = 'autoNamedDatabase_' + nameCounter++;\n }\n name = String(name); // cast to a string\n const sqlSafeName = util.escapeSQLiteStatement(name);\n\n const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n const useDatabaseCache = CFG.cacheDatabaseInstances !== false || useMemoryDatabase;\n\n let escapedDatabaseName;\n try {\n escapedDatabaseName = util.escapeDatabaseNameForSQLAndFiles(name);\n } catch (err) {\n throw err; // new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');\n }\n\n function dbCreateError (tx, err) {\n if (calledDbCreateError) {\n return;\n }\n err = err ? webSQLErrback(err) : tx;\n calledDbCreateError = true;\n // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n const evt = createEvent('error', err, {bubbles: true, cancelable: true});\n req.__readyState = 'done';\n req.__error = err;\n req.__result = undefined;\n req.dispatchEvent(evt);\n }\n\n function openDB (oldVersion) {\n let db;\n if ((useMemoryDatabase || useDatabaseCache) && name in websqlDBCache && websqlDBCache[name][version]) {\n db = websqlDBCache[name][version];\n } else {\n db = me.__openDatabase(\n useMemoryDatabase ? CFG.memoryDatabase : path.join(CFG.databaseBasePath || '', escapedDatabaseName),\n 1,\n name,\n CFG.DEFAULT_DB_SIZE\n );\n if (useDatabaseCache) {\n websqlDBCache[name][version] = db;\n }\n }\n\n if (version === undefined) {\n version = oldVersion || 1;\n }\n if (oldVersion > version) {\n const err = createDOMException('VersionError', 'An attempt was made to open a database using a lower version than the existing version.', version);\n dbCreateError(err);\n return;\n }\n\n db.transaction(function (tx) {\n tx.executeSql('CREATE TABLE IF NOT EXISTS __sys__ (name BLOB, keyPath BLOB, autoInc BOOLEAN, indexList BLOB, currNum INTEGER)', [], function () {\n tx.executeSql('SELECT \"name\", \"keyPath\", \"autoInc\", \"indexList\" FROM __sys__', [], function (tx, data) {\n const connection = IDBDatabase.__createInstance(db, name, oldVersion, version, data);\n if (!me.__connections[name]) {\n me.__connections[name] = [];\n }\n me.__connections[name].push(connection);\n function addResult () {\n req.__readyState = 'done';\n req.__result = connection;\n }\n\n if (oldVersion < version) {\n const openConnections = me.__connections[name].slice(0, -1);\n triggerAnyVersionChangeAndBlockedEvents(openConnections, req, oldVersion, version).then(function () {\n // DB Upgrade in progress\n let sysdbFinishedCb = function (systx, err, cb) {\n if (err) {\n try {\n systx.executeSql('ROLLBACK', [], cb, cb);\n } catch (er) { // Browser may fail with expired transaction above so\n // no choice but to manually revert\n sysdb.transaction(function (systx) {\n function reportError (msg) {\n throw new Error('Unable to roll back upgrade transaction!' + (msg || ''));\n }\n\n // Attempt to revert\n if (oldVersion === 0) {\n systx.executeSql('DELETE FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function () {\n cb(reportError);\n }, reportError);\n } else {\n systx.executeSql('UPDATE dbVersions SET \"version\" = ? WHERE \"name\" = ?', [oldVersion, sqlSafeName], cb, reportError);\n }\n });\n }\n return;\n }\n cb(); // In browser, should auto-commit\n };\n\n sysdb.transaction(function (systx) {\n function versionSet () {\n addResult(); // Todo: Per open database step order, this should really occur after the upgrade transaction finishes (replace `req.result` with `connection`); also for `readyState`--see https://github.com/w3c/IndexedDB/issues/161\n\n const e = new IDBVersionChangeEvent('upgradeneeded', {oldVersion, newVersion: version});\n req.__transaction = req.__result.__versionTransaction = IDBTransaction.__createInstance(req.__result, req.__result.objectStoreNames, 'versionchange');\n req.transaction.__addNonRequestToTransactionQueue(function onupgradeneeded (tx, args, finished, error) {\n req.dispatchEvent(e);\n // req.__transaction.__active = req.__result.__versionTransaction.__active = false;\n if (e.__legacyOutputDidListenersThrowError) {\n logError('Error', 'An error occurred in an upgradeneeded handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n req.transaction.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n return;\n }\n finished();\n });\n req.transaction.on__beforecomplete = function (ev) {\n req.__result.__versionTransaction = null;\n sysdbFinishedCb(systx, false, function () {\n req.transaction.__transFinishedCb(false, function () {\n if (useDatabaseCache) {\n if (name in websqlDBCache) {\n delete websqlDBCache[name][version];\n }\n }\n ev.complete();\n req.__transaction = null;\n });\n });\n };\n req.transaction.on__preabort = function () {\n // We ensure any cache is deleted before any request error events fire and try to reopen\n if (useDatabaseCache) {\n if (name in websqlDBCache) {\n delete websqlDBCache[name][version];\n }\n }\n };\n req.transaction.on__abort = function () {\n req.__transaction = null;\n connection.close();\n setTimeout(() => {\n const err = createDOMException('AbortError', 'The upgrade transaction was aborted.');\n sysdbFinishedCb(systx, err, function (reportError) {\n if (oldVersion === 0) {\n cleanupDatabaseResources(me.__openDatabase, name, escapedDatabaseName, dbCreateError.bind(null, err), reportError || dbCreateError);\n return;\n }\n dbCreateError(err);\n });\n });\n };\n req.transaction.on__complete = function () {\n if (req.__result.__closed) {\n req.__transaction = null;\n const err = createDOMException('AbortError', 'The connection has been closed.');\n dbCreateError(err);\n return;\n }\n // Since this is running directly after `IDBTransaction.complete`,\n // there should be a new task. However, while increasing the\n // timeout 1ms in `IDBTransaction.__executeRequests` can allow\n // `IDBOpenDBRequest.onsuccess` to trigger faster than a new\n // transaction as required by \"transaction-create_in_versionchange\" in\n // w3c/Transaction.js (though still on a timeout separate from this\n // preceding `IDBTransaction.oncomplete`), this causes a race condition\n // somehow with old transactions (e.g., for the Mocha test,\n // in `IDBObjectStore.deleteIndex`, \"should delete an index that was\n // created in a previous transaction\").\n // setTimeout(() => {\n req.__transaction = null;\n const e = createEvent('success');\n req.dispatchEvent(e);\n // });\n };\n }\n if (oldVersion === 0) {\n systx.executeSql('INSERT INTO dbVersions VALUES (?,?)', [sqlSafeName, version], versionSet, dbCreateError);\n } else {\n systx.executeSql('UPDATE dbVersions SET \"version\" = ? WHERE \"name\" = ?', [version, sqlSafeName], versionSet, dbCreateError);\n }\n }, dbCreateError, null, function (currentTask, err, done, rollback, commit) {\n if (currentTask.readOnly || err) {\n return true;\n }\n sysdbFinishedCb = function (systx, err, cb) {\n if (err) {\n rollback(err, cb);\n } else {\n commit(cb);\n }\n };\n return false;\n });\n });\n } else {\n addResult();\n const e = createEvent('success');\n req.dispatchEvent(e);\n }\n }, dbCreateError);\n }, dbCreateError);\n }, dbCreateError);\n }\n\n addRequestToConnectionQueue(req, name, /* origin */ undefined, function (req) {\n let latestCachedVersion;\n if (useDatabaseCache) {\n if (!(name in websqlDBCache)) {\n websqlDBCache[name] = {};\n }\n if (version === undefined) {\n latestCachedVersion = getLatestCachedWebSQLVersion(name);\n } else if (websqlDBCache[name][version]) {\n latestCachedVersion = version;\n }\n }\n if (latestCachedVersion) {\n openDB(latestCachedVersion);\n } else {\n createSysDB(me.__openDatabase, function () {\n sysdb.readTransaction(function (sysReadTx) {\n sysReadTx.executeSql('SELECT \"version\" FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function (sysReadTx, data) {\n if (data.rows.length === 0) {\n // Database with this name does not exist\n openDB(0);\n } else {\n openDB(data.rows.item(0).version);\n }\n }, dbCreateError);\n }, dbCreateError);\n }, dbCreateError);\n }\n });\n\n return req;\n};\n\n/**\n * Deletes a database\n * @param {string} name\n * @returns {IDBOpenDBRequest}\n */\nIDBFactory.prototype.deleteDatabase = function (name) {\n const me = this;\n if (!(me instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('Database name is required');\n }\n if (hasNullOrigin()) {\n throw createDOMException('SecurityError', 'Cannot delete an IndexedDB database from an opaque origin.');\n }\n\n name = String(name); // cast to a string\n const sqlSafeName = util.escapeSQLiteStatement(name);\n\n let escapedDatabaseName;\n try {\n escapedDatabaseName = util.escapeDatabaseNameForSQLAndFiles(name);\n } catch (err) {\n throw err; // throw new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');\n }\n\n const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n const useDatabaseCache = CFG.cacheDatabaseInstances !== false || useMemoryDatabase;\n\n const req = IDBOpenDBRequest.__createInstance();\n let calledDBError = false;\n let version = 0;\n\n let sysdbFinishedCbDelete = function (err, cb) {\n cb(err);\n };\n\n // Although the spec has no specific conditions where an error\n // may occur in `deleteDatabase`, it does provide for\n // `UnknownError` as we may require upon a SQL deletion error\n function dbError (tx, err) {\n if (calledDBError || err === true) {\n return;\n }\n err = webSQLErrback(err || tx);\n sysdbFinishedCbDelete(true, function () {\n req.__readyState = 'done';\n req.__error = err;\n req.__result = undefined;\n // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n const e = createEvent('error', err, {bubbles: true, cancelable: true});\n req.dispatchEvent(e);\n calledDBError = true;\n });\n }\n\n addRequestToConnectionQueue(req, name, /* origin */ undefined, function (req) {\n createSysDB(me.__openDatabase, function () {\n // function callback (cb) { cb(); }\n // callback(function () {\n\n function completeDatabaseDelete () {\n req.__result = undefined;\n req.__readyState = 'done';\n const e = new IDBVersionChangeEvent('success', {oldVersion: version, newVersion: null});\n req.dispatchEvent(e);\n }\n\n function databaseDeleted () {\n sysdbFinishedCbDelete(false, function () {\n if (useDatabaseCache && name in websqlDBCache) {\n delete websqlDBCache[name]; // New calls will treat as though never existed\n }\n delete me.__connections[name];\n\n completeDatabaseDelete();\n });\n }\n sysdb.readTransaction(function (sysReadTx) {\n sysReadTx.executeSql('SELECT \"version\" FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function (sysReadTx, data) {\n if (data.rows.length === 0) {\n completeDatabaseDelete();\n return;\n }\n version = data.rows.item(0).version;\n\n const openConnections = me.__connections[name] || [];\n triggerAnyVersionChangeAndBlockedEvents(openConnections, req, version, null).then(function () {\n // Since we need two databases which can't be in a single transaction, we\n // do this deleting from `dbVersions` first since the `__sys__` deleting\n // only impacts file memory whereas this one is critical for avoiding it\n // being found via `open` or `webkitGetDatabaseNames`; however, we will\n // avoid committing anyways until all deletions are made and rollback the\n // `dbVersions` change if they fail\n sysdb.transaction(function (systx) {\n systx.executeSql('DELETE FROM dbVersions WHERE \"name\" = ? ', [sqlSafeName], function () {\n // Todo: We should also check whether `dbVersions` is empty and if so, delete upon\n // `deleteDatabaseFiles` config. We also ought to do this when aborting (see\n // above code with `DELETE FROM dbVersions`)\n cleanupDatabaseResources(me.__openDatabase, name, escapedDatabaseName, databaseDeleted, dbError);\n }, dbError);\n }, dbError, null, function (currentTask, err, done, rollback, commit) {\n if (currentTask.readOnly || err) {\n return true;\n }\n sysdbFinishedCbDelete = function (err, cb) {\n if (err) {\n rollback(err, cb);\n } else {\n commit(cb);\n }\n };\n return false;\n });\n }, dbError);\n }, dbError);\n });\n }, dbError);\n });\n\n return req;\n};\n\n/**\n * Compares two keys\n * @param key1\n * @param key2\n * @returns {number}\n */\nfunction cmp (first, second) {\n const encodedKey1 = Key.encode(first);\n const encodedKey2 = Key.encode(second);\n const result = encodedKey1 > encodedKey2 ? 1 : encodedKey1 === encodedKey2 ? 0 : -1;\n\n if (CFG.DEBUG) {\n // verify that the keys encoded correctly\n let decodedKey1 = Key.decode(encodedKey1);\n let decodedKey2 = Key.decode(encodedKey2);\n if (typeof first === 'object') {\n first = JSON.stringify(first);\n decodedKey1 = JSON.stringify(decodedKey1);\n }\n if (typeof second === 'object') {\n second = JSON.stringify(second);\n decodedKey2 = JSON.stringify(decodedKey2);\n }\n\n // encoding/decoding mismatches are usually due to a loss of floating-point precision\n if (decodedKey1 !== first) {\n console.warn(first + ' was incorrectly encoded as ' + decodedKey1);\n }\n if (decodedKey2 !== second) {\n console.warn(second + ' was incorrectly encoded as ' + decodedKey2);\n }\n }\n\n return result;\n}\n\nIDBFactory.prototype.cmp = function (key1, key2) {\n if (!(this instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length < 2) {\n throw new TypeError('You must provide two keys to be compared');\n }\n // We use encoding facilities already built for proper sorting;\n // the following \"conversions\" are for validation only\n Key.convertValueToKeyRethrowingAndIfInvalid(key1);\n Key.convertValueToKeyRethrowingAndIfInvalid(key2);\n return cmp(key1, key2);\n};\n\n/**\n* NON-STANDARD!! (Also may return outdated information if a database has since been deleted)\n* @link https://www.w3.org/Bugs/Public/show_bug.cgi?id=16137\n* @link http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1537.html\n*/\nIDBFactory.prototype.webkitGetDatabaseNames = function () {\n const me = this;\n if (!(me instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n if (hasNullOrigin()) {\n throw createDOMException('SecurityError', 'Cannot get IndexedDB database names from an opaque origin.');\n }\n\n let calledDbCreateError = false;\n function dbGetDatabaseNamesError (tx, err) {\n if (calledDbCreateError) {\n return;\n }\n err = err ? webSQLErrback(err) : tx;\n calledDbCreateError = true;\n // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n const evt = createEvent('error', err, {bubbles: true, cancelable: true}); // http://stackoverflow.com/questions/40165909/to-where-do-idbopendbrequest-error-events-bubble-up/40181108#40181108\n req.__readyState = 'done';\n req.__error = err;\n req.__result = undefined;\n req.dispatchEvent(evt);\n }\n const req = IDBRequest.__createInstance();\n createSysDB(me.__openDatabase, function () {\n sysdb.readTransaction(function (sysReadTx) {\n sysReadTx.executeSql('SELECT \"name\" FROM dbVersions', [], function (sysReadTx, data) {\n const dbNames = ShimDOMStringList.__createInstance();\n for (let i = 0; i < data.rows.length; i++) {\n dbNames.push(util.unescapeSQLiteResponse(data.rows.item(i).name));\n }\n req.__result = dbNames;\n req.__readyState = 'done';\n const e = createEvent('success'); // http://stackoverflow.com/questions/40165909/to-where-do-idbopendbrequest-error-events-bubble-up/40181108#40181108\n req.dispatchEvent(e);\n }, dbGetDatabaseNamesError);\n }, dbGetDatabaseNamesError);\n }, dbGetDatabaseNamesError);\n return req;\n};\n\n/**\n* @Todo __forceClose: Test\n* This is provided to facilitate unit-testing of the\n* closing of a database connection with a forced flag:\n* \n*/\nIDBFactory.prototype.__forceClose = function (dbName, connIdx, msg) {\n const me = this;\n function forceClose (conn) {\n conn.__forceClose(msg);\n }\n if (dbName == null) {\n Object.values(me.__connections).forEach((conn) => conn.forEach(forceClose));\n } else if (!me.__connections[dbName]) {\n console.log('No database connections with that name to force close');\n } else if (connIdx == null) {\n me.__connections[dbName].forEach(forceClose);\n } else if (!Number.isInteger(connIdx) || connIdx < 0 || connIdx > me.__connections[dbName].length - 1) {\n throw new TypeError(\n 'If providing an argument, __forceClose must be called with a ' +\n 'numeric index to indicate a specific connection to lose'\n );\n } else {\n forceClose(me.__connections[dbName][connIdx]);\n }\n};\n\nIDBFactory.prototype[Symbol.toStringTag] = 'IDBFactoryPrototype';\n\nObject.defineProperty(IDBFactory, 'prototype', {\n writable: false\n});\n\nconst shimIndexedDB = IDBFactory.__createInstance();\nexport {IDBFactory, cmp, shimIndexedDB};\n","import {createDOMException} from './DOMException';\nimport {IDBCursor, IDBCursorWithValue} from './IDBCursor';\nimport * as util from './util';\nimport * as Key from './Key';\nimport {setSQLForKeyRange, IDBKeyRange, convertValueToKeyRange} from './IDBKeyRange';\nimport IDBTransaction from './IDBTransaction';\nimport * as Sca from './Sca';\nimport CFG from './CFG';\nimport IDBObjectStore from './IDBObjectStore';\n\nconst readonlyProperties = ['objectStore', 'keyPath', 'multiEntry', 'unique'];\n\n/**\n * IDB Index\n * http://www.w3.org/TR/IndexedDB/#idl-def-IDBIndex\n * @param {IDBObjectStore} store\n * @param {IDBIndexProperties} indexProperties\n * @constructor\n */\nfunction IDBIndex () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBIndexAlias = IDBIndex;\nIDBIndex.__createInstance = function (store, indexProperties) {\n function IDBIndex () {\n const me = this;\n me[Symbol.toStringTag] = 'IDBIndex';\n util.defineReadonlyProperties(me, readonlyProperties);\n me.__objectStore = store;\n me.__name = me.__originalName = indexProperties.columnName;\n me.__keyPath = Array.isArray(indexProperties.keyPath) ? indexProperties.keyPath.slice() : indexProperties.keyPath;\n const optionalParams = indexProperties.optionalParams;\n me.__multiEntry = !!(optionalParams && optionalParams.multiEntry);\n me.__unique = !!(optionalParams && optionalParams.unique);\n me.__deleted = !!indexProperties.__deleted;\n me.__objectStore.__cursors = indexProperties.cursors || [];\n Object.defineProperty(me, '__currentName', {\n get: function () {\n return '__pendingName' in me ? me.__pendingName : me.name;\n }\n });\n Object.defineProperty(me, 'name', {\n enumerable: false,\n configurable: false,\n get: function () {\n return this.__name;\n },\n set: function (newName) {\n const me = this;\n newName = util.convertToDOMString(newName);\n const oldName = me.name;\n IDBTransaction.__assertVersionChange(me.objectStore.transaction);\n IDBTransaction.__assertActive(me.objectStore.transaction);\n IDBIndexAlias.__invalidStateIfDeleted(me);\n IDBObjectStore.__invalidStateIfDeleted(me);\n if (newName === oldName) {\n return;\n }\n\n if (me.objectStore.__indexes[newName] && !me.objectStore.__indexes[newName].__deleted &&\n !me.objectStore.__indexes[newName].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Index \"' + newName + '\" already exists on ' + me.objectStore.__currentName);\n }\n\n me.__name = newName;\n\n const objectStore = me.objectStore;\n delete objectStore.__indexes[oldName];\n objectStore.__indexes[newName] = me;\n objectStore.indexNames.splice(objectStore.indexNames.indexOf(oldName), 1, newName);\n\n const storeHandle = objectStore.transaction.__storeHandles[objectStore.name];\n const oldIndexHandle = storeHandle.__indexHandles[oldName];\n oldIndexHandle.__name = newName; // Fix old references\n storeHandle.__indexHandles[newName] = oldIndexHandle; // Ensure new reference accessible\n me.__pendingName = oldName;\n\n const colInfoToPreserveArr = [\n ['key', 'BLOB ' + (objectStore.autoIncrement ? 'UNIQUE, inc INTEGER PRIMARY KEY AUTOINCREMENT' : 'PRIMARY KEY')],\n ['value', 'BLOB']\n ].concat(\n Array.from(objectStore.indexNames)\n .filter((indexName) => indexName !== newName)\n .map((indexName) => [util.escapeIndexNameForSQL(indexName), 'BLOB'])\n );\n\n me.__renameIndex(objectStore, oldName, newName, colInfoToPreserveArr, function (tx, success) {\n IDBIndexAlias.__updateIndexList(store, tx, function (store) {\n delete storeHandle.__pendingName;\n success(store);\n });\n });\n }\n });\n }\n IDBIndex.prototype = IDBIndexAlias.prototype;\n return new IDBIndex();\n};\n\nIDBIndex.__invalidStateIfDeleted = function (index, msg) {\n if (index.__deleted || index.__pendingDelete || (\n index.__pendingCreate && index.objectStore.transaction && index.objectStore.transaction.__errored\n )) {\n throw createDOMException('InvalidStateError', msg || 'This index has been deleted');\n }\n};\n\n/**\n * Clones an IDBIndex instance for a different IDBObjectStore instance.\n * @param {IDBIndex} index\n * @param {IDBObjectStore} store\n * @protected\n */\nIDBIndex.__clone = function (index, store) {\n const idx = IDBIndex.__createInstance(store, {\n columnName: index.name,\n keyPath: index.keyPath,\n optionalParams: {\n multiEntry: index.multiEntry,\n unique: index.unique\n }\n });\n ['__pendingCreate', '__pendingDelete', '__deleted', '__originalName', '__recreated'].forEach((p) => {\n idx[p] = index[p];\n });\n return idx;\n};\n\n/**\n * Creates a new index on an object store.\n * @param {IDBObjectStore} store\n * @param {IDBIndex} index\n * @returns {IDBIndex}\n * @protected\n */\nIDBIndex.__createIndex = function (store, index) {\n const indexName = index.name;\n const storeName = store.__currentName;\n const idx = store.__indexes[indexName];\n\n index.__pendingCreate = true;\n\n // Add the index to the IDBObjectStore\n store.indexNames.push(indexName);\n store.__indexes[indexName] = index; // We add to indexes as needs to be available, e.g., if there is a subsequent deleteIndex call\n\n let indexHandle = store.__indexHandles[indexName];\n if (!indexHandle ||\n index.__pendingDelete ||\n index.__deleted ||\n indexHandle.__pendingDelete ||\n indexHandle.__deleted\n ) {\n indexHandle = store.__indexHandles[indexName] = IDBIndex.__clone(index, store);\n }\n\n // Create the index in WebSQL\n const transaction = store.transaction;\n transaction.__addNonRequestToTransactionQueue(function createIndex (tx, args, success, failure) {\n const columnExists = idx && (idx.__deleted || idx.__recreated); // This check must occur here rather than earlier as properties may not have been set yet otherwise\n let indexValues = {};\n\n function error (tx, err) {\n failure(createDOMException('UnknownError', 'Could not create index \"' + indexName + '\"' + err.code + '::' + err.message, err));\n }\n\n function applyIndex (tx) {\n // Update the object store's index list\n IDBIndex.__updateIndexList(store, tx, function () {\n // Add index entries for all existing records\n tx.executeSql('SELECT \"key\", \"value\" FROM ' + util.escapeStoreNameForSQL(storeName), [], function (tx, data) {\n CFG.DEBUG && console.log('Adding existing ' + storeName + ' records to the ' + indexName + ' index');\n addIndexEntry(0);\n\n function addIndexEntry (i) {\n if (i < data.rows.length) {\n try {\n const value = Sca.decode(util.unescapeSQLiteResponse(data.rows.item(i).value));\n let indexKey = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, index.keyPath, index.multiEntry); // Todo: Do we need this stricter error checking?\n if (indexKey.invalid || indexKey.failure) { // Todo: Do we need invalid checks and should we instead treat these as being duplicates?\n throw new Error('Go to catch; ignore bad indexKey');\n }\n indexKey = Key.encode(indexKey.value, index.multiEntry);\n if (index.unique) {\n if (indexValues[indexKey]) {\n indexValues = {};\n failure(createDOMException(\n 'ConstraintError',\n 'Duplicate values already exist within the store'\n ));\n return;\n }\n indexValues[indexKey] = true;\n }\n\n tx.executeSql(\n 'UPDATE ' + util.escapeStoreNameForSQL(storeName) + ' SET ' +\n util.escapeIndexNameForSQL(indexName) + ' = ? WHERE \"key\" = ?',\n [util.escapeSQLiteStatement(indexKey), data.rows.item(i).key],\n function (tx, data) {\n addIndexEntry(i + 1);\n }, error\n );\n } catch (e) {\n // Not a valid value to insert into index, so just continue\n addIndexEntry(i + 1);\n }\n } else {\n delete index.__pendingCreate;\n delete indexHandle.__pendingCreate;\n if (index.__deleted) {\n delete index.__deleted;\n delete indexHandle.__deleted;\n index.__recreated = true;\n indexHandle.__recreated = true;\n }\n indexValues = {};\n success(store);\n }\n }\n }, error);\n }, error);\n }\n\n if (columnExists) {\n // For a previously existing index, just update the index entries in the existing column\n applyIndex(tx);\n } else {\n // For a new index, add a new column to the object store, then apply the index\n const sql = ['ALTER TABLE', util.escapeStoreNameForSQL(storeName), 'ADD', util.escapeIndexNameForSQL(index.name), 'BLOB'].join(' ');\n CFG.DEBUG && console.log(sql);\n tx.executeSql(sql, [], applyIndex, error);\n }\n }, undefined, store);\n};\n\n/**\n * Deletes an index from an object store.\n * @param {IDBObjectStore} store\n * @param {IDBIndex} index\n * @protected\n */\nIDBIndex.__deleteIndex = function (store, index) {\n // Remove the index from the IDBObjectStore\n index.__pendingDelete = true;\n const indexHandle = store.__indexHandles[index.name];\n if (indexHandle) {\n indexHandle.__pendingDelete = true;\n }\n\n store.indexNames.splice(store.indexNames.indexOf(index.name), 1);\n\n // Remove the index in WebSQL\n const transaction = store.transaction;\n transaction.__addNonRequestToTransactionQueue(function deleteIndex (tx, args, success, failure) {\n function error (tx, err) {\n failure(createDOMException('UnknownError', 'Could not delete index \"' + index.name + '\"', err));\n }\n\n // Update the object store's index list\n IDBIndex.__updateIndexList(store, tx, function (store) {\n delete index.__pendingDelete;\n delete index.__recreated;\n index.__deleted = true;\n if (indexHandle) {\n indexHandle.__deleted = true;\n delete indexHandle.__pendingDelete;\n }\n success(store);\n }, error);\n }, undefined, store);\n};\n\n/**\n * Updates index list for the given object store.\n * @param {IDBObjectStore} store\n * @param {object} tx\n * @param {function} success\n * @param {function} failure\n */\nIDBIndex.__updateIndexList = function (store, tx, success, failure) {\n const indexList = {};\n for (let i = 0; i < store.indexNames.length; i++) {\n const idx = store.__indexes[store.indexNames[i]];\n /** @type {IDBIndexProperties} **/\n indexList[idx.name] = {\n columnName: idx.name,\n keyPath: idx.keyPath,\n optionalParams: {\n unique: idx.unique,\n multiEntry: idx.multiEntry\n },\n deleted: !!idx.deleted\n };\n }\n\n CFG.DEBUG && console.log('Updating the index list for ' + store.__currentName, indexList);\n tx.executeSql('UPDATE __sys__ SET \"indexList\" = ? WHERE \"name\" = ?', [JSON.stringify(indexList), util.escapeSQLiteStatement(store.__currentName)], function () {\n success(store);\n }, failure);\n};\n\n/**\n * Retrieves index data for the given key\n * @param {*|IDBKeyRange} range\n * @param {string} opType\n * @param {boolean} nullDisallowed\n * @param {number} count\n * @returns {IDBRequest}\n * @private\n */\nIDBIndex.prototype.__fetchIndexData = function (range, opType, nullDisallowed, count) {\n const me = this;\n if (count !== undefined) {\n count = util.enforceRange(count, 'unsigned long');\n }\n\n IDBIndex.__invalidStateIfDeleted(me);\n IDBObjectStore.__invalidStateIfDeleted(me.objectStore);\n if (me.objectStore.__deleted) {\n throw createDOMException('InvalidStateError', \"This index's object store has been deleted\");\n }\n IDBTransaction.__assertActive(me.objectStore.transaction);\n\n if (nullDisallowed && range == null) {\n throw createDOMException('DataError', 'No key or range was specified');\n }\n\n const fetchArgs = buildFetchIndexDataSQL(nullDisallowed, me, range, opType, false);\n return me.objectStore.transaction.__addToTransactionQueue(function (...args) {\n executeFetchIndexData(count, ...fetchArgs, ...args);\n }, undefined, me);\n};\n\n/**\n * Opens a cursor over the given key range.\n * @param {*|IDBKeyRange} query\n * @param {string} direction\n * @returns {IDBRequest}\n */\nIDBIndex.prototype.openCursor = function (/* query, direction */) {\n const me = this;\n const [query, direction] = arguments;\n const cursor = IDBCursorWithValue.__createInstance(query, direction, me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'value');\n me.__objectStore.__cursors.push(cursor);\n return cursor.__req;\n};\n\n/**\n * Opens a cursor over the given key range. The cursor only includes key values, not data.\n * @param {*|IDBKeyRange} query\n * @param {string} direction\n * @returns {IDBRequest}\n */\nIDBIndex.prototype.openKeyCursor = function (/* query, direction */) {\n const me = this;\n const [query, direction] = arguments;\n const cursor = IDBCursor.__createInstance(query, direction, me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'key');\n me.__objectStore.__cursors.push(cursor);\n return cursor.__req;\n};\n\nIDBIndex.prototype.get = function (query) {\n if (!arguments.length) { // Per https://heycam.github.io/webidl/\n throw new TypeError('A parameter was missing for `IDBIndex.get`.');\n }\n return this.__fetchIndexData(query, 'value', true);\n};\n\nIDBIndex.prototype.getKey = function (query) {\n if (!arguments.length) { // Per https://heycam.github.io/webidl/\n throw new TypeError('A parameter was missing for `IDBIndex.getKey`.');\n }\n return this.__fetchIndexData(query, 'key', true);\n};\n\nIDBIndex.prototype.getAll = function (/* query, count */) {\n const [query, count] = arguments;\n return this.__fetchIndexData(query, 'value', false, count);\n};\n\nIDBIndex.prototype.getAllKeys = function (/* query, count */) {\n const [query, count] = arguments;\n return this.__fetchIndexData(query, 'key', false, count);\n};\n\nIDBIndex.prototype.count = function (/* query */) {\n const me = this;\n const query = arguments[0];\n // With the exception of needing to check whether the index has been\n // deleted, we could, for greater spec parity (if not accuracy),\n // just call:\n // `return me.__objectStore.count(query);`\n\n if (util.instanceOf(query, IDBKeyRange)) { // Todo: Do we need this block?\n // We don't need to add to cursors array since has the count parameter which won't cache\n return IDBCursorWithValue.__createInstance(query, 'next', me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'value', true).__req;\n }\n return me.__fetchIndexData(query, 'count', false);\n};\n\nIDBIndex.prototype.__renameIndex = function (store, oldName, newName, colInfoToPreserveArr = [], cb = null) {\n const newNameType = 'BLOB';\n const storeName = store.__currentName;\n const escapedStoreNameSQL = util.escapeStoreNameForSQL(storeName);\n const escapedTmpStoreNameSQL = util.escapeStoreNameForSQL('tmp_' + storeName);\n const colNamesToPreserve = colInfoToPreserveArr.map((colInfo) => colInfo[0]);\n const colInfoToPreserve = colInfoToPreserveArr.map((colInfo) => colInfo.join(' '));\n const listColInfoToPreserve = (colInfoToPreserve.length ? (colInfoToPreserve.join(', ') + ', ') : '');\n const listColsToPreserve = (colNamesToPreserve.length ? (colNamesToPreserve.join(', ') + ', ') : '');\n\n // We could adapt the approach at http://stackoverflow.com/a/8430746/271577\n // to make the approach reusable without passing column names, but it is a bit fragile\n store.transaction.__addNonRequestToTransactionQueue(function renameIndex (tx, args, success, error) {\n const sql = 'ALTER TABLE ' + escapedStoreNameSQL + ' RENAME TO ' + escapedTmpStoreNameSQL;\n tx.executeSql(sql, [], function (tx, data) {\n const sql = 'CREATE TABLE ' + escapedStoreNameSQL + '(' + listColInfoToPreserve + util.escapeIndexNameForSQL(newName) + ' ' + newNameType + ')';\n tx.executeSql(sql, [], function (tx, data) {\n const sql = 'INSERT INTO ' + escapedStoreNameSQL + '(' +\n listColsToPreserve +\n util.escapeIndexNameForSQL(newName) +\n ') SELECT ' + listColsToPreserve + util.escapeIndexNameForSQL(oldName) + ' FROM ' + escapedTmpStoreNameSQL;\n tx.executeSql(sql, [], function (tx, data) {\n const sql = 'DROP TABLE ' + escapedTmpStoreNameSQL;\n tx.executeSql(sql, [], function (tx, data) {\n if (cb) {\n cb(tx, success);\n return;\n }\n success();\n }, function (tx, err) {\n error(err);\n });\n }, function (tx, err) {\n error(err);\n });\n });\n }, function (tx, err) {\n error(err);\n });\n });\n};\n\nObject.defineProperty(IDBIndex, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && typeof obj.openCursor === 'function' && typeof obj.multiEntry === 'boolean'\n});\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBIndex.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\nObject.defineProperty(IDBIndex.prototype, 'name', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n});\nIDBIndex.prototype[Symbol.toStringTag] = 'IDBIndexPrototype';\n\nObject.defineProperty(IDBIndex, 'prototype', {\n writable: false\n});\n\nfunction executeFetchIndexData (count, unboundedDisallowed, index, hasKey, range, opType, multiChecks, sql, sqlValues, tx, args, success, error) {\n if (unboundedDisallowed) {\n count = 1;\n }\n if (count) {\n sql.push('LIMIT', count);\n }\n const isCount = opType === 'count';\n CFG.DEBUG && console.log('Trying to fetch data for Index', sql.join(' '), sqlValues);\n tx.executeSql(sql.join(' '), sqlValues, function (tx, data) {\n const records = [];\n let recordCount = 0;\n const decode = isCount ? () => {} : (opType === 'key' ? (record) => {\n // Key.convertValueToKey(record.key); // Already validated before storage\n return Key.decode(util.unescapeSQLiteResponse(record.key));\n } : (record) => { // when opType is value\n return Sca.decode(util.unescapeSQLiteResponse(record.value));\n });\n if (index.multiEntry) {\n const escapedIndexNameForKeyCol = util.escapeIndexNameForSQLKeyColumn(index.name);\n const encodedKey = Key.encode(range, index.multiEntry);\n for (let i = 0; i < data.rows.length; i++) {\n const row = data.rows.item(i);\n const rowKey = Key.decode(row[escapedIndexNameForKeyCol]);\n let record;\n if (hasKey && (\n (multiChecks && range.some((check) => rowKey.includes(check))) || // More precise than our SQL\n Key.isMultiEntryMatch(encodedKey, row[escapedIndexNameForKeyCol])\n )) {\n recordCount++;\n record = row;\n } else if (!hasKey && !multiChecks) {\n if (rowKey !== undefined) {\n recordCount += (Array.isArray(rowKey) ? rowKey.length : 1);\n record = row;\n }\n }\n if (record) {\n records.push(decode(record));\n if (unboundedDisallowed) {\n break;\n }\n }\n }\n } else {\n for (let i = 0; i < data.rows.length; i++) {\n const record = data.rows.item(i);\n if (record) {\n records.push(decode(record));\n }\n }\n recordCount = records.length;\n }\n if (isCount) {\n success(recordCount);\n } else if (recordCount === 0) {\n success(unboundedDisallowed ? undefined : []);\n } else {\n success(unboundedDisallowed ? records[0] : records);\n }\n }, error);\n}\n\nfunction buildFetchIndexDataSQL (nullDisallowed, index, range, opType, multiChecks) {\n const hasRange = nullDisallowed || range != null;\n const col = opType === 'count' ? 'key' : opType; // It doesn't matter which column we use for 'count' as long as it is valid\n const sql = [\n 'SELECT', util.sqlQuote(col) + (\n index.multiEntry ? ', ' + util.escapeIndexNameForSQL(index.name) : ''\n ),\n 'FROM', util.escapeStoreNameForSQL(index.objectStore.__currentName),\n 'WHERE', util.escapeIndexNameForSQL(index.name), 'NOT NULL'\n ];\n const sqlValues = [];\n if (hasRange) {\n if (multiChecks) {\n sql.push('AND (');\n range.forEach((innerKey, i) => {\n if (i > 0) sql.push('OR');\n sql.push(util.escapeIndexNameForSQL(index.name), \"LIKE ? ESCAPE '^' \");\n sqlValues.push('%' + util.sqlLIKEEscape(Key.encode(innerKey, index.multiEntry)) + '%');\n });\n sql.push(')');\n } else if (index.multiEntry) {\n sql.push('AND', util.escapeIndexNameForSQL(index.name), \"LIKE ? ESCAPE '^'\");\n sqlValues.push('%' + util.sqlLIKEEscape(Key.encode(range, index.multiEntry)) + '%');\n } else {\n const convertedRange = convertValueToKeyRange(range, nullDisallowed);\n setSQLForKeyRange(convertedRange, util.escapeIndexNameForSQL(index.name), sql, sqlValues, true, false);\n }\n }\n return [nullDisallowed, index, hasRange, range, opType, multiChecks, sql, sqlValues];\n}\n\nexport {buildFetchIndexDataSQL, executeFetchIndexData, IDBIndex, IDBIndex as default};\n","import {createDOMException} from './DOMException';\nimport * as Key from './Key';\nimport * as util from './util';\n\nconst readonlyProperties = ['lower', 'upper', 'lowerOpen', 'upperOpen'];\n\n/**\n * The IndexedDB KeyRange object\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#dfn-key-range\n * @param {Object} lower\n * @param {Object} upper\n * @param {Object} lowerOpen\n * @param {Object} upperOpen\n */\nfunction IDBKeyRange () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBKeyRangeAlias = IDBKeyRange;\nIDBKeyRange.__createInstance = function (lower, upper, lowerOpen, upperOpen) {\n function IDBKeyRange () {\n this[Symbol.toStringTag] = 'IDBKeyRange';\n if (lower === undefined && upper === undefined) {\n throw createDOMException('DataError', 'Both arguments to the key range method cannot be undefined');\n }\n let lowerConverted, upperConverted;\n if (lower !== undefined) {\n lowerConverted = Key.roundTrip(lower); // Todo: does this make the \"conversions\" redundant\n Key.convertValueToKeyRethrowingAndIfInvalid(lower);\n }\n if (upper !== undefined) {\n upperConverted = Key.roundTrip(upper); // Todo: does this make the \"conversions\" redundant\n Key.convertValueToKeyRethrowingAndIfInvalid(upper);\n }\n if (lower !== undefined && upper !== undefined && lower !== upper) {\n if (Key.encode(lower) > Key.encode(upper)) {\n throw createDOMException('DataError', '`lower` must not be greater than `upper` argument in `bound()` call.');\n }\n }\n\n this.__lower = lowerConverted;\n this.__upper = upperConverted;\n this.__lowerOpen = !!lowerOpen;\n this.__upperOpen = !!upperOpen;\n }\n IDBKeyRange.prototype = IDBKeyRangeAlias.prototype;\n return new IDBKeyRange();\n};\nIDBKeyRange.prototype.includes = function (key) {\n // We can't do a regular instanceof check as it will create a loop given our hasInstance implementation\n if (!util.isObj(this) || typeof this.__lowerOpen !== 'boolean') {\n throw new TypeError('Illegal invocation');\n }\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.includes requires a key argument');\n }\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n return Key.isKeyInRange(key, this);\n};\n\nIDBKeyRange.only = function (value) {\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.only requires a value argument');\n }\n return IDBKeyRange.__createInstance(value, value, false, false);\n};\n\nIDBKeyRange.lowerBound = function (value /*, open */) {\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.lowerBound requires a value argument');\n }\n return IDBKeyRange.__createInstance(value, undefined, arguments[1], true);\n};\nIDBKeyRange.upperBound = function (value /*, open */) {\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.upperBound requires a value argument');\n }\n return IDBKeyRange.__createInstance(undefined, value, true, arguments[1]);\n};\nIDBKeyRange.bound = function (lower, upper /* , lowerOpen, upperOpen */) {\n if (arguments.length <= 1) {\n throw new TypeError('IDBKeyRange.bound requires lower and upper arguments');\n }\n return IDBKeyRange.__createInstance(lower, upper, arguments[2], arguments[3]);\n};\nIDBKeyRange.prototype[Symbol.toStringTag] = 'IDBKeyRangePrototype';\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBKeyRange.prototype, '__' + prop, {\n enumerable: false,\n configurable: false,\n writable: true\n });\n Object.defineProperty(IDBKeyRange.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n // We can't do a regular instanceof check as it will create a loop given our hasInstance implementation\n if (!util.isObj(this) || typeof this.__lowerOpen !== 'boolean') {\n throw new TypeError('Illegal invocation');\n }\n return this['__' + prop];\n }\n });\n});\n\nObject.defineProperty(IDBKeyRange, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && 'upper' in obj && typeof obj.lowerOpen === 'boolean'\n});\n\nObject.defineProperty(IDBKeyRange, 'prototype', {\n writable: false\n});\n\nfunction setSQLForKeyRange (range, quotedKeyColumnName, sql, sqlValues, addAnd, checkCached) {\n if (range && (range.lower !== undefined || range.upper !== undefined)) {\n if (addAnd) sql.push('AND');\n let encodedLowerKey, encodedUpperKey;\n const hasLower = range.lower !== undefined;\n const hasUpper = range.upper !== undefined;\n if (hasLower) {\n encodedLowerKey = checkCached ? range.__lowerCached : Key.encode(range.lower);\n }\n if (hasUpper) {\n encodedUpperKey = checkCached ? range.__upperCached : Key.encode(range.upper);\n }\n if (hasLower) {\n sqlValues.push(util.escapeSQLiteStatement(encodedLowerKey));\n if (hasUpper && encodedLowerKey === encodedUpperKey && !range.lowerOpen && !range.upperOpen) {\n sql.push(quotedKeyColumnName, '=', '?');\n return;\n }\n sql.push(quotedKeyColumnName, (range.lowerOpen ? '>' : '>='), '?');\n }\n (hasLower && hasUpper) && sql.push('AND');\n if (hasUpper) {\n sql.push(quotedKeyColumnName, (range.upperOpen ? '<' : '<='), '?');\n sqlValues.push(util.escapeSQLiteStatement(encodedUpperKey));\n }\n }\n}\n\nfunction convertValueToKeyRange (value, nullDisallowed) {\n if (util.instanceOf(value, IDBKeyRange)) {\n // We still need to validate IDBKeyRange-like objects (the above check is based on loose duck-typing)\n if (!value.toString() !== '[object IDBKeyRange]') {\n return IDBKeyRange.__createInstance(value.lower, value.upper, value.lowerOpen, value.upperOpen);\n }\n return value;\n }\n if (value == null) {\n if (nullDisallowed) {\n throw createDOMException('DataError', 'No key or range was specified');\n }\n return undefined; // Represents unbounded\n }\n Key.convertValueToKeyRethrowingAndIfInvalid(value);\n return IDBKeyRange.only(value);\n}\n\nexport {setSQLForKeyRange, IDBKeyRange, convertValueToKeyRange, IDBKeyRange as default};\n","import {createDOMException} from './DOMException';\nimport {IDBCursor, IDBCursorWithValue} from './IDBCursor';\nimport {setSQLForKeyRange, convertValueToKeyRange} from './IDBKeyRange';\nimport DOMStringList from './DOMStringList';\nimport * as util from './util';\nimport * as Key from './Key';\nimport {executeFetchIndexData, buildFetchIndexDataSQL, IDBIndex} from './IDBIndex';\nimport IDBTransaction from './IDBTransaction';\nimport * as Sca from './Sca';\nimport CFG from './CFG';\nimport SyncPromise from 'sync-promise';\n\nconst readonlyProperties = ['keyPath', 'indexNames', 'transaction', 'autoIncrement'];\n\n/**\n * IndexedDB Object Store\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBObjectStore\n * @param {IDBObjectStoreProperties} storeProperties\n * @param {IDBTransaction} transaction\n * @constructor\n */\nfunction IDBObjectStore () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBObjectStoreAlias = IDBObjectStore;\nIDBObjectStore.__createInstance = function (storeProperties, transaction) {\n function IDBObjectStore () {\n const me = this;\n me[Symbol.toStringTag] = 'IDBObjectStore';\n util.defineReadonlyProperties(this, readonlyProperties);\n me.__name = me.__originalName = storeProperties.name;\n me.__keyPath = Array.isArray(storeProperties.keyPath) ? storeProperties.keyPath.slice() : storeProperties.keyPath;\n me.__transaction = transaction;\n me.__idbdb = storeProperties.idbdb;\n me.__cursors = storeProperties.cursors || [];\n\n // autoInc is numeric (0/1) on WinPhone\n me.__autoIncrement = !!storeProperties.autoInc;\n\n me.__indexes = {};\n me.__indexHandles = {};\n me.__indexNames = DOMStringList.__createInstance();\n const indexList = storeProperties.indexList;\n for (const indexName in indexList) {\n if (indexList.hasOwnProperty(indexName)) {\n const index = IDBIndex.__createInstance(me, indexList[indexName]);\n me.__indexes[index.name] = index;\n if (!index.__deleted) {\n me.indexNames.push(index.name);\n }\n }\n }\n me.__oldIndexNames = me.indexNames.clone();\n Object.defineProperty(this, '__currentName', {\n get: function () {\n return '__pendingName' in this ? this.__pendingName : this.name;\n }\n });\n Object.defineProperty(this, 'name', {\n enumerable: false,\n configurable: false,\n get: function () {\n return this.__name;\n },\n set: function (name) {\n const me = this;\n name = util.convertToDOMString(name);\n const oldName = me.name;\n IDBObjectStoreAlias.__invalidStateIfDeleted(me);\n IDBTransaction.__assertVersionChange(me.transaction);\n IDBTransaction.__assertActive(me.transaction);\n if (oldName === name) {\n return;\n }\n if (me.__idbdb.__objectStores[name] && !me.__idbdb.__objectStores[name].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Object store \"' + name + '\" already exists in ' + me.__idbdb.name);\n }\n\n me.__name = name;\n\n const oldStore = me.__idbdb.__objectStores[oldName];\n oldStore.__name = name; // Fix old references\n me.__idbdb.__objectStores[name] = oldStore; // Ensure new reference accessible\n delete me.__idbdb.__objectStores[oldName]; // Ensure won't be found\n\n me.__idbdb.objectStoreNames.splice(me.__idbdb.objectStoreNames.indexOf(oldName), 1, name);\n\n const oldHandle = me.transaction.__storeHandles[oldName];\n oldHandle.__name = name; // Fix old references\n me.transaction.__storeHandles[name] = oldHandle; // Ensure new reference accessible\n\n me.__pendingName = oldName;\n\n const sql = 'UPDATE __sys__ SET \"name\" = ? WHERE \"name\" = ?';\n const sqlValues = [util.escapeSQLiteStatement(name), util.escapeSQLiteStatement(oldName)];\n CFG.DEBUG && console.log(sql, sqlValues);\n me.transaction.__addNonRequestToTransactionQueue(function objectStoreClear (tx, args, success, error) {\n tx.executeSql(sql, sqlValues, function (tx, data) {\n const sql = 'ALTER TABLE ' + util.escapeStoreNameForSQL(oldName) + ' RENAME TO ' + util.escapeStoreNameForSQL(name);\n CFG.DEBUG && console.log(sql);\n tx.executeSql(sql, [], function (tx, data) {\n delete me.__pendingName;\n success();\n });\n }, function (tx, err) {\n error(err);\n });\n });\n }\n });\n }\n IDBObjectStore.prototype = IDBObjectStoreAlias.prototype;\n return new IDBObjectStore();\n};\n\n/**\n * Clones an IDBObjectStore instance for a different IDBTransaction instance.\n * @param {IDBObjectStore} store\n * @param {IDBTransaction} transaction\n * @protected\n */\nIDBObjectStore.__clone = function (store, transaction) {\n const newStore = IDBObjectStore.__createInstance({\n name: store.__currentName,\n keyPath: Array.isArray(store.keyPath) ? store.keyPath.slice() : store.keyPath,\n autoInc: store.autoIncrement,\n indexList: {},\n idbdb: store.__idbdb,\n cursors: store.__cursors\n }, transaction);\n\n ['__indexes', '__indexNames', '__oldIndexNames', '__deleted', '__pendingDelete', '__pendingCreate', '__originalName'].forEach((p) => {\n newStore[p] = store[p];\n });\n return newStore;\n};\n\nIDBObjectStore.__invalidStateIfDeleted = function (store, msg) {\n if (store.__deleted || store.__pendingDelete || (store.__pendingCreate && (store.transaction && store.transaction.__errored))) {\n throw createDOMException('InvalidStateError', msg || 'This store has been deleted');\n }\n};\n\n/**\n * Creates a new object store in the database.\n * @param {IDBDatabase} db\n * @param {IDBObjectStore} store\n * @protected\n */\nIDBObjectStore.__createObjectStore = function (db, store) {\n // Add the object store to the IDBDatabase\n const storeName = store.__currentName;\n store.__pendingCreate = true;\n db.__objectStores[storeName] = store;\n db.objectStoreNames.push(storeName);\n\n // Add the object store to WebSQL\n const transaction = db.__versionTransaction;\n IDBTransaction.__assertVersionChange(transaction);\n\n const storeHandles = transaction.__storeHandles;\n if (!storeHandles[storeName] ||\n storeHandles[storeName].__pendingDelete ||\n storeHandles[storeName].__deleted) { // The latter conditions are to allow store\n // recreation to create new clone object\n storeHandles[storeName] = IDBObjectStore.__clone(store, transaction);\n }\n\n transaction.__addNonRequestToTransactionQueue(function createObjectStore (tx, args, success, failure) {\n function error (tx, err) {\n CFG.DEBUG && console.log(err);\n failure(createDOMException('UnknownError', 'Could not create object store \"' + storeName + '\"', err));\n }\n\n // key INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE\n const sql = ['CREATE TABLE', util.escapeStoreNameForSQL(storeName), '(key BLOB', store.autoIncrement ? 'UNIQUE, inc INTEGER PRIMARY KEY AUTOINCREMENT' : 'PRIMARY KEY', ', value BLOB)'].join(' ');\n CFG.DEBUG && console.log(sql);\n tx.executeSql(sql, [], function (tx, data) {\n Sca.encode(store.keyPath, function (encodedKeyPath) {\n tx.executeSql('INSERT INTO __sys__ VALUES (?,?,?,?,?)', [util.escapeSQLiteStatement(storeName), encodedKeyPath, store.autoIncrement, '{}', 1], function () {\n delete store.__pendingCreate;\n delete store.__deleted;\n success(store);\n }, error);\n });\n }, error);\n });\n return storeHandles[storeName];\n};\n\n/**\n * Deletes an object store from the database.\n * @param {IDBDatabase} db\n * @param {IDBObjectStore} store\n * @protected\n */\nIDBObjectStore.__deleteObjectStore = function (db, store) {\n // Remove the object store from the IDBDatabase\n store.__pendingDelete = true;\n // We don't delete the other index holders in case need reversion\n store.__indexNames = DOMStringList.__createInstance();\n\n db.objectStoreNames.splice(db.objectStoreNames.indexOf(store.__currentName), 1);\n\n const storeHandle = db.__versionTransaction.__storeHandles[store.__currentName];\n if (storeHandle) {\n storeHandle.__indexNames = DOMStringList.__createInstance();\n storeHandle.__pendingDelete = true;\n }\n\n // Remove the object store from WebSQL\n const transaction = db.__versionTransaction;\n IDBTransaction.__assertVersionChange(transaction);\n\n transaction.__addNonRequestToTransactionQueue(function deleteObjectStore (tx, args, success, failure) {\n function error (tx, err) {\n CFG.DEBUG && console.log(err);\n failure(createDOMException('UnknownError', 'Could not delete ObjectStore', err));\n }\n\n tx.executeSql('SELECT \"name\" FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function (tx, data) {\n if (data.rows.length > 0) {\n tx.executeSql('DROP TABLE ' + util.escapeStoreNameForSQL(store.__currentName), [], function () {\n tx.executeSql('DELETE FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function () {\n delete store.__pendingDelete;\n store.__deleted = true;\n if (storeHandle) {\n delete storeHandle.__pendingDelete;\n storeHandle.__deleted = true;\n }\n success();\n }, error);\n }, error);\n }\n });\n });\n};\n\n// Todo: Although we may end up needing to do cloning genuinely asynchronously (for Blobs and FileLists),\n// and we'll want to ensure the queue starts up synchronously, we nevertheless do the cloning\n// before entering the queue and its callback since the encoding we do is preceded by validation\n// which we must do synchronously anyways. If we reimplement Blobs and FileLists asynchronously,\n// we can detect these types (though validating synchronously as possible) and once entering the\n// queue callback, ensure they load before triggering success or failure (perhaps by returning and\n// a `SyncPromise` from the `Sca.clone` operation and later detecting and ensuring it is resolved\n// before continuing).\n/**\n * Determines whether the given inline or out-of-line key is valid, according to the object store's schema.\n * @param {*} value Used for inline keys\n * @param {*} key Used for out-of-line keys\n * @private\n */\nIDBObjectStore.prototype.__validateKeyAndValueAndCloneValue = function (value, key, cursorUpdate) {\n const me = this;\n if (me.keyPath !== null) {\n if (key !== undefined) {\n throw createDOMException('DataError', 'The object store uses in-line keys and the key parameter was provided', me);\n }\n // Todo Binary: Avoid blobs loading async to ensure cloning (and errors therein)\n // occurs sync; then can make cloning and this method without callbacks (except where ok\n // to be async)\n const clonedValue = Sca.clone(value);\n key = Key.extractKeyValueDecodedFromValueUsingKeyPath(clonedValue, me.keyPath); // May throw so \"rethrow\"\n if (key.invalid) {\n throw createDOMException('DataError', 'KeyPath was specified, but key was invalid.');\n }\n if (key.failure) {\n if (!cursorUpdate) {\n if (!me.autoIncrement) {\n throw createDOMException('DataError', 'Could not evaluate a key from keyPath and there is no key generator');\n }\n if (!Key.checkKeyCouldBeInjectedIntoValue(clonedValue, me.keyPath)) {\n throw createDOMException('DataError', 'A key could not be injected into a value');\n }\n // A key will be generated\n return [undefined, clonedValue];\n }\n throw createDOMException('DataError', 'Could not evaluate a key from keyPath');\n }\n // An `IDBCursor.update` call will also throw if not equal to the cursor’s effective key\n return [key.value, clonedValue];\n }\n if (key === undefined) {\n if (!me.autoIncrement) {\n throw createDOMException('DataError', 'The object store uses out-of-line keys and has no key generator and the key parameter was not provided.', me);\n }\n // A key will be generated\n key = undefined;\n } else {\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n }\n const clonedValue = Sca.clone(value);\n return [key, clonedValue];\n};\n\n/**\n * From the store properties and object, extracts the value for the key in the object store\n * If the table has auto increment, get the current number (unless it has a keyPath leading to a\n * valid but non-numeric or < 1 key)\n * @param {Object} tx\n * @param {Object} value\n * @param {Object} key\n * @param {function} success\n * @param {function} failure\n */\nIDBObjectStore.prototype.__deriveKey = function (tx, value, key, success, failCb) {\n const me = this;\n\n // Only run if cloning is needed\n function keyCloneThenSuccess () { // We want to return the original key, so we don't need to accept an argument here\n Sca.encode(key, function (key) {\n key = Sca.decode(key);\n success(key);\n });\n }\n\n if (me.autoIncrement) {\n // If auto-increment and no valid primaryKey found on the keyPath, get and set the new value, and use\n if (key === undefined) {\n Key.generateKeyForStore(tx, me, function (failure, key) {\n if (failure) {\n failCb(createDOMException('ConstraintError', 'The key generator\\'s current number has reached the maximum safe integer limit'));\n return;\n }\n if (me.keyPath !== null) {\n // Should not throw now as checked earlier\n Key.injectKeyIntoValueUsingKeyPath(value, key, me.keyPath);\n }\n success(key);\n }, failCb);\n } else {\n Key.possiblyUpdateKeyGenerator(tx, me, key, keyCloneThenSuccess, failCb);\n }\n // Not auto-increment\n } else {\n keyCloneThenSuccess();\n }\n};\n\nIDBObjectStore.prototype.__insertData = function (tx, encoded, value, clonedKeyOrCurrentNumber, success, error) {\n const me = this;\n // The `ConstraintError` to occur for `add` upon a duplicate will occur naturally in attempting an insert\n // We process the index information first as it will stored in the same table as the store\n const paramMap = {};\n const indexPromises = Object.keys(\n // We do not iterate `indexNames` as those can be modified synchronously (e.g.,\n // `deleteIndex` could, by its synchronous removal from `indexNames`, prevent\n // iteration here of an index though per IndexedDB test\n // `idbobjectstore_createIndex4-deleteIndex-event_order.js`, `createIndex`\n // should be allowed to first fail even in such a case).\n me.__indexes\n ).map((indexName) => {\n // While this may sometimes resolve sync and sometimes async, the\n // idea is to avoid, where possible, unnecessary delays (and\n // consuming code ought to only see a difference in the browser\n // where we can't control the transaction timeout anyways).\n return new SyncPromise((resolve, reject) => {\n const index = me.__indexes[indexName];\n if (\n // `createIndex` was called synchronously after the current insertion was added to\n // the transaction queue so although it was added to `__indexes`, it is not yet\n // ready to be checked here for the insertion as it will be when running the\n // `createIndex` operation (e.g., if two items with the same key were added and\n // *then* a unique index was created, it should not continue to err and abort\n // yet, as we're still handling the insertions which must be processed (e.g., to\n // add duplicates which then cause a unique index to fail))\n index.__pendingCreate ||\n // If already deleted (and not just slated for deletion (by `__pendingDelete`\n // after this add), we avoid checks\n index.__deleted\n ) {\n resolve();\n return;\n }\n let indexKey;\n try {\n indexKey = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, index.keyPath, index.multiEntry); // Add as necessary to this and skip past this index if exceptions here)\n if (indexKey.invalid || indexKey.failure) {\n throw new Error('Go to catch');\n }\n } catch (err) {\n resolve();\n return;\n }\n indexKey = indexKey.value;\n function setIndexInfo (index) {\n if (indexKey === undefined) {\n return;\n }\n paramMap[index.__currentName] = Key.encode(indexKey, index.multiEntry);\n }\n if (index.unique) {\n const multiCheck = index.multiEntry && Array.isArray(indexKey);\n const fetchArgs = buildFetchIndexDataSQL(true, index, indexKey, 'key', multiCheck);\n executeFetchIndexData(null, ...fetchArgs, tx, null, function success (key) {\n if (key === undefined) {\n setIndexInfo(index);\n resolve();\n return;\n }\n reject(createDOMException(\n 'ConstraintError',\n 'Index already contains a record equal to ' +\n (multiCheck ? 'one of the subkeys of' : '') +\n '`indexKey`'\n ));\n }, reject);\n } else {\n setIndexInfo(index);\n resolve();\n }\n });\n });\n SyncPromise.all(indexPromises).then(() => {\n const sqlStart = ['INSERT INTO', util.escapeStoreNameForSQL(me.__currentName), '('];\n const sqlEnd = [' VALUES ('];\n const insertSqlValues = [];\n if (clonedKeyOrCurrentNumber !== undefined) {\n // Key.convertValueToKey(primaryKey); // Already run\n sqlStart.push(util.sqlQuote('key'), ',');\n sqlEnd.push('?,');\n insertSqlValues.push(util.escapeSQLiteStatement(Key.encode(clonedKeyOrCurrentNumber)));\n }\n for (const key in paramMap) {\n sqlStart.push(util.escapeIndexNameForSQL(key) + ',');\n sqlEnd.push('?,');\n insertSqlValues.push(util.escapeSQLiteStatement(paramMap[key]));\n }\n // removing the trailing comma\n sqlStart.push(util.sqlQuote('value') + ' )');\n sqlEnd.push('?)');\n insertSqlValues.push(util.escapeSQLiteStatement(encoded));\n\n const insertSql = sqlStart.join(' ') + sqlEnd.join(' ');\n CFG.DEBUG && console.log('SQL for adding', insertSql, insertSqlValues);\n\n tx.executeSql(insertSql, insertSqlValues, function (tx, data) {\n success(clonedKeyOrCurrentNumber);\n }, function (tx, err) {\n // Should occur for `add` operation\n error(createDOMException('ConstraintError', err.message, err));\n });\n }).catch(function (err) {\n error(err);\n });\n};\n\nIDBObjectStore.prototype.add = function (value /* , key */) {\n const me = this;\n const key = arguments[1];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No value was specified');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n const request = me.transaction.__createRequest(me);\n const [ky, clonedValue] = me.__validateKeyAndValueAndCloneValue(value, key, false);\n IDBObjectStore.__storingRecordObjectStore(request, me, clonedValue, true, ky);\n return request;\n};\n\nIDBObjectStore.prototype.put = function (value /*, key */) {\n const me = this;\n const key = arguments[1];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No value was specified');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n const request = me.transaction.__createRequest(me);\n const [ky, clonedValue] = me.__validateKeyAndValueAndCloneValue(value, key, false);\n IDBObjectStore.__storingRecordObjectStore(request, me, clonedValue, false, ky);\n return request;\n};\n\nIDBObjectStore.prototype.__overwrite = function (tx, key, cb, error) {\n const me = this;\n // First try to delete if the record exists\n // Key.convertValueToKey(key); // Already run\n const sql = 'DELETE FROM ' + util.escapeStoreNameForSQL(me.__currentName) + ' WHERE \"key\" = ?';\n const encodedKey = Key.encode(key);\n tx.executeSql(sql, [util.escapeSQLiteStatement(encodedKey)], function (tx, data) {\n CFG.DEBUG && console.log('Did the row with the', key, 'exist? ', data.rowsAffected);\n cb(tx);\n }, function (tx, err) {\n error(err);\n });\n};\n\nIDBObjectStore.__storingRecordObjectStore = function (request, store, value, noOverwrite /* , key */) {\n const key = arguments[4];\n store.transaction.__pushToQueue(request, function (tx, args, success, error) {\n store.__deriveKey(tx, value, key, function (clonedKeyOrCurrentNumber) {\n Sca.encode(value, function (encoded) {\n function insert (tx) {\n store.__insertData(tx, encoded, value, clonedKeyOrCurrentNumber, function (...args) {\n store.__cursors.forEach((cursor) => {\n cursor.__invalidateCache();\n });\n success(...args);\n }, error);\n }\n if (!noOverwrite) {\n store.__overwrite(tx, clonedKeyOrCurrentNumber, insert, error);\n return;\n }\n insert(tx);\n });\n }, error);\n });\n};\n\nIDBObjectStore.prototype.__get = function (query, getKey, getAll, count) {\n const me = this;\n if (count !== undefined) {\n count = util.enforceRange(count, 'unsigned long');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n\n const range = convertValueToKeyRange(query, !getAll);\n\n const col = getKey ? 'key' : 'value';\n let sql = ['SELECT', util.sqlQuote(col), 'FROM', util.escapeStoreNameForSQL(me.__currentName)];\n const sqlValues = [];\n if (range !== undefined) {\n sql.push('WHERE');\n setSQLForKeyRange(range, util.sqlQuote('key'), sql, sqlValues);\n }\n if (!getAll) {\n count = 1;\n }\n if (count) {\n if (typeof count !== 'number' || isNaN(count) || !isFinite(count)) {\n throw new TypeError('The count parameter must be a finite number');\n }\n sql.push('LIMIT', count);\n }\n sql = sql.join(' ');\n return me.transaction.__addToTransactionQueue(function objectStoreGet (tx, args, success, error) {\n CFG.DEBUG && console.log('Fetching', me.__currentName, sqlValues);\n tx.executeSql(sql, sqlValues, function (tx, data) {\n CFG.DEBUG && console.log('Fetched data', data);\n let ret;\n try {\n // Opera can't deal with the try-catch here.\n if (data.rows.length === 0) {\n return getAll ? success([]) : success();\n }\n ret = [];\n if (getKey) {\n for (let i = 0; i < data.rows.length; i++) {\n // Key.convertValueToKey(data.rows.item(i).key); // Already validated before storage\n ret.push(\n Key.decode(util.unescapeSQLiteResponse(data.rows.item(i).key), false)\n );\n }\n } else {\n for (let i = 0; i < data.rows.length; i++) {\n ret.push(\n Sca.decode(util.unescapeSQLiteResponse(data.rows.item(i).value))\n );\n }\n }\n if (!getAll) {\n ret = ret[0];\n }\n } catch (e) {\n // If no result is returned, or error occurs when parsing JSON\n CFG.DEBUG && console.log(e);\n }\n success(ret);\n }, function (tx, err) {\n error(err);\n });\n }, undefined, me);\n};\n\nIDBObjectStore.prototype.get = function (query) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.get`.');\n }\n return this.__get(query);\n};\n\nIDBObjectStore.prototype.getKey = function (query) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.getKey`.');\n }\n return this.__get(query, true);\n};\n\nIDBObjectStore.prototype.getAll = function (/* query, count */) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.getAll`.');\n }\n const [query, count] = arguments;\n return this.__get(query, false, true, count);\n};\n\nIDBObjectStore.prototype.getAllKeys = function (/* query, count */) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.getAllKeys`.');\n }\n const [query, count] = arguments;\n return this.__get(query, true, true, count);\n};\n\nIDBObjectStore.prototype['delete'] = function (query) {\n const me = this;\n if (!(this instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.delete`.');\n }\n\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n const range = convertValueToKeyRange(query, true);\n\n const sqlArr = ['DELETE FROM', util.escapeStoreNameForSQL(me.__currentName), 'WHERE'];\n const sqlValues = [];\n setSQLForKeyRange(range, util.sqlQuote('key'), sqlArr, sqlValues);\n const sql = sqlArr.join(' ');\n\n return me.transaction.__addToTransactionQueue(function objectStoreDelete (tx, args, success, error) {\n CFG.DEBUG && console.log('Deleting', me.__currentName, sqlValues);\n tx.executeSql(sql, sqlValues, function (tx, data) {\n CFG.DEBUG && console.log('Deleted from database', data.rowsAffected);\n me.__cursors.forEach((cursor) => {\n cursor.__invalidateCache(); // Delete\n });\n success();\n }, function (tx, err) {\n error(err);\n });\n }, undefined, me);\n};\n\nIDBObjectStore.prototype.clear = function () {\n const me = this;\n if (!(this instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n return me.transaction.__addToTransactionQueue(function objectStoreClear (tx, args, success, error) {\n tx.executeSql('DELETE FROM ' + util.escapeStoreNameForSQL(me.__currentName), [], function (tx, data) {\n CFG.DEBUG && console.log('Cleared all records from database', data.rowsAffected);\n me.__cursors.forEach((cursor) => {\n cursor.__invalidateCache(); // Clear\n });\n success();\n }, function (tx, err) {\n error(err);\n });\n }, undefined, me);\n};\n\nIDBObjectStore.prototype.count = function (/* query */) {\n const me = this;\n const query = arguments[0];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n\n // We don't need to add to cursors array since has the count parameter which won't cache\n return IDBCursorWithValue.__createInstance(query, 'next', me, me, 'key', 'value', true).__req;\n};\n\nIDBObjectStore.prototype.openCursor = function (/* query, direction */) {\n const me = this;\n const [query, direction] = arguments;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n const cursor = IDBCursorWithValue.__createInstance(query, direction, me, me, 'key', 'value');\n me.__cursors.push(cursor);\n return cursor.__req;\n};\n\nIDBObjectStore.prototype.openKeyCursor = function (/* query, direction */) {\n const me = this;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n const [query, direction] = arguments;\n const cursor = IDBCursor.__createInstance(query, direction, me, me, 'key', 'key');\n me.__cursors.push(cursor);\n return cursor.__req;\n};\n\nIDBObjectStore.prototype.index = function (indexName) {\n const me = this;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No index name was specified');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertNotFinished(me.transaction);\n const index = me.__indexes[indexName];\n if (!index || index.__deleted) {\n throw createDOMException('NotFoundError', 'Index \"' + indexName + '\" does not exist on ' + me.__currentName);\n }\n\n if (!me.__indexHandles[indexName] ||\n me.__indexes[indexName].__pendingDelete ||\n me.__indexes[indexName].__deleted\n ) {\n me.__indexHandles[indexName] = IDBIndex.__clone(index, me);\n }\n return me.__indexHandles[indexName];\n};\n\n/**\n * Creates a new index on the object store.\n * @param {string} indexName\n * @param {string} keyPath\n * @param {object} optionalParameters\n * @returns {IDBIndex}\n */\nIDBObjectStore.prototype.createIndex = function (indexName, keyPath /* , optionalParameters */) {\n const me = this;\n let optionalParameters = arguments[2];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n indexName = String(indexName); // W3C test within IDBObjectStore.js seems to accept string conversion\n if (arguments.length === 0) {\n throw new TypeError('No index name was specified');\n }\n if (arguments.length === 1) {\n throw new TypeError('No key path was specified');\n }\n IDBTransaction.__assertVersionChange(me.transaction);\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n if (me.__indexes[indexName] && !me.__indexes[indexName].__deleted && !me.__indexes[indexName].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Index \"' + indexName + '\" already exists on ' + me.__currentName);\n }\n\n keyPath = util.convertToSequenceDOMString(keyPath);\n if (!util.isValidKeyPath(keyPath)) {\n throw createDOMException('SyntaxError', 'A valid keyPath must be supplied');\n }\n if (Array.isArray(keyPath) && optionalParameters && optionalParameters.multiEntry) {\n throw createDOMException('InvalidAccessError', 'The keyPath argument was an array and the multiEntry option is true.');\n }\n\n optionalParameters = optionalParameters || {};\n /** @name IDBIndexProperties **/\n const indexProperties = {\n columnName: indexName,\n keyPath: keyPath,\n optionalParams: {\n unique: !!optionalParameters.unique,\n multiEntry: !!optionalParameters.multiEntry\n }\n };\n const index = IDBIndex.__createInstance(me, indexProperties);\n IDBIndex.__createIndex(me, index);\n return index;\n};\n\nIDBObjectStore.prototype.deleteIndex = function (name) {\n const me = this;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No index name was specified');\n }\n IDBTransaction.__assertVersionChange(me.transaction);\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n const index = me.__indexes[name];\n if (!index) {\n throw createDOMException('NotFoundError', 'Index \"' + name + '\" does not exist on ' + me.__currentName);\n }\n\n IDBIndex.__deleteIndex(me, index);\n};\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBObjectStore.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\nObject.defineProperty(IDBObjectStore.prototype, 'name', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n});\n\nIDBObjectStore.prototype[Symbol.toStringTag] = 'IDBObjectStorePrototype';\n\nObject.defineProperty(IDBObjectStore, 'prototype', {\n writable: false\n});\n\nexport default IDBObjectStore;\n","import {createDOMException} from './DOMException';\nimport {EventTargetFactory} from 'eventtarget';\nimport * as util from './util';\n\nconst listeners = ['onsuccess', 'onerror'];\nconst readonlyProperties = ['source', 'transaction', 'readyState'];\nconst doneFlagGetters = ['result', 'error'];\n\n/**\n * The IDBRequest Object that is returns for all async calls\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#request-api\n */\nclass IDBRequest {\n constructor () {\n throw new TypeError('Illegal constructor');\n }\n}\nIDBRequest.__super = function IDBRequest () {\n this[Symbol.toStringTag] = 'IDBRequest';\n this.__setOptions({\n legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n });\n doneFlagGetters.forEach(function (prop) {\n Object.defineProperty(this, '__' + prop, {\n enumerable: false,\n configurable: false,\n writable: true\n });\n Object.defineProperty(this, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n if (this.__readyState !== 'done') {\n throw createDOMException('InvalidStateError', \"Can't get \" + prop + '; the request is still pending.');\n }\n return this['__' + prop];\n }\n });\n }, this);\n util.defineReadonlyProperties(this, readonlyProperties);\n listeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n configurable: true, // Needed by support.js in W3C IndexedDB tests\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n }, this);\n listeners.forEach((l) => {\n this[l] = null;\n });\n this.__result = undefined;\n this.__error = this.__source = this.__transaction = null;\n this.__readyState = 'pending';\n};\n\nIDBRequest.__createInstance = function () {\n return new IDBRequest.__super();\n};\n\nIDBRequest.prototype = EventTargetFactory.createInstance({extraProperties: ['debug']});\nIDBRequest.prototype[Symbol.toStringTag] = 'IDBRequestPrototype';\n\nIDBRequest.prototype.__getParent = function () {\n if (this.toString() === '[object IDBOpenDBRequest]') {\n return null;\n }\n return this.__transaction;\n};\n\n// Illegal invocations\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBRequest.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\ndoneFlagGetters.forEach(function (prop) {\n Object.defineProperty(IDBRequest.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nlisteners.forEach((listener) => {\n Object.defineProperty(IDBRequest.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nObject.defineProperty(IDBRequest.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBRequest\n});\nIDBRequest.__super.prototype = IDBRequest.prototype;\n\nObject.defineProperty(IDBRequest, 'prototype', {\n writable: false\n});\n\nconst openListeners = ['onblocked', 'onupgradeneeded'];\n\n/**\n * The IDBOpenDBRequest called when a database is opened\n */\nclass IDBOpenDBRequest extends IDBRequest {\n}\nIDBOpenDBRequest.prototype = Object.create(IDBRequest.prototype);\n\nObject.defineProperty(IDBOpenDBRequest.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBOpenDBRequest\n});\n\nconst IDBOpenDBRequestAlias = IDBOpenDBRequest;\nIDBOpenDBRequest.__createInstance = function () {\n function IDBOpenDBRequest () {\n IDBRequest.__super.call(this);\n\n this[Symbol.toStringTag] = 'IDBOpenDBRequest';\n this.__setOptions({\n legacyOutputDidListenersThrowFlag: true, // Event hook for IndexedB\n extraProperties: ['oldVersion', 'newVersion', 'debug']\n }); // Ensure EventTarget preserves our properties\n openListeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n configurable: true, // Needed by support.js in W3C IndexedDB tests\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n }, this);\n openListeners.forEach((l) => {\n this[l] = null;\n });\n }\n IDBOpenDBRequest.prototype = IDBOpenDBRequestAlias.prototype;\n return new IDBOpenDBRequest();\n};\n\nopenListeners.forEach((listener) => {\n Object.defineProperty(IDBOpenDBRequest.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nIDBOpenDBRequest.prototype[Symbol.toStringTag] = 'IDBOpenDBRequestPrototype';\n\nObject.defineProperty(IDBOpenDBRequest, 'prototype', {\n writable: false\n});\n\nexport {IDBRequest, IDBOpenDBRequest};\n","import {createEvent} from './Event';\nimport {logError, findError, webSQLErrback, createDOMException} from './DOMException';\nimport {IDBRequest} from './IDBRequest';\nimport * as util from './util';\nimport IDBObjectStore from './IDBObjectStore';\nimport CFG from './CFG';\nimport {EventTargetFactory} from 'eventtarget';\nimport SyncPromise from 'sync-promise';\n\nlet uniqueID = 0;\nconst listeners = ['onabort', 'oncomplete', 'onerror'];\nconst readonlyProperties = ['objectStoreNames', 'mode', 'db', 'error'];\n\n/**\n * The IndexedDB Transaction\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBTransaction\n * @param {IDBDatabase} db\n * @param {string[]} storeNames\n * @param {string} mode\n * @constructor\n */\nfunction IDBTransaction () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBTransactionAlias = IDBTransaction;\nIDBTransaction.__createInstance = function (db, storeNames, mode) {\n function IDBTransaction () {\n const me = this;\n me[Symbol.toStringTag] = 'IDBTransaction';\n util.defineReadonlyProperties(me, readonlyProperties);\n me.__id = ++uniqueID; // for debugging simultaneous transactions\n me.__active = true;\n me.__running = false;\n me.__errored = false;\n me.__requests = [];\n me.__objectStoreNames = storeNames;\n me.__mode = mode;\n me.__db = db;\n me.__error = null;\n me.__setOptions({\n legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n });\n\n readonlyProperties.forEach((readonlyProp) => {\n Object.defineProperty(this, readonlyProp, {\n configurable: true\n });\n });\n listeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n });\n listeners.forEach((l) => {\n this[l] = null;\n });\n me.__storeHandles = {};\n\n // Kick off the transaction as soon as all synchronous code is done\n setTimeout(() => { me.__executeRequests(); }, 0);\n }\n IDBTransaction.prototype = IDBTransactionAlias.prototype;\n return new IDBTransaction();\n};\n\nIDBTransaction.prototype = EventTargetFactory.createInstance({defaultSync: true, extraProperties: ['complete']}); // Ensure EventTarget preserves our properties\nIDBTransaction.prototype.__transFinishedCb = function (err, cb) {\n if (err) {\n cb(true); // eslint-disable-line standard/no-callback-literal\n return;\n }\n cb();\n};\nIDBTransaction.prototype.__executeRequests = function () {\n const me = this;\n if (me.__running) {\n CFG.DEBUG && console.log('Looks like the request set is already running', me.mode);\n return;\n }\n\n me.__running = true;\n\n me.db.__db[me.mode === 'readonly' ? 'readTransaction' : 'transaction']( // `readTransaction` is optimized, at least in `node-websql`\n function executeRequests (tx) {\n me.__tx = tx;\n let q = null, i = -1;\n\n function success (result, req) {\n if (me.__errored || me.__requestsFinished) {\n // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n return;\n }\n if (req) {\n q.req = req; // Need to do this in case of cursors\n }\n if (q.req.__readyState === 'done') { // Avoid continuing with aborted requests\n return;\n }\n q.req.__readyState = 'done';\n q.req.__result = result;\n q.req.__error = null;\n\n me.__active = true;\n const e = createEvent('success');\n q.req.dispatchEvent(e);\n // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n if (e.__legacyOutputDidListenersThrowError) {\n logError('Error', 'An error occurred in a success handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n me.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n return;\n }\n executeNextRequest();\n }\n\n function error (...args /* tx, err */) {\n if (me.__errored || me.__requestsFinished) {\n // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n return;\n }\n if (q.req && q.req.__readyState === 'done') { // Avoid continuing with aborted requests\n return;\n }\n const err = findError(args);\n if (!q.req) {\n me.__abortTransaction(err);\n return;\n }\n // Fire an error event for the current IDBRequest\n q.req.__readyState = 'done';\n q.req.__error = err;\n q.req.__result = undefined;\n q.req.addLateEventListener('error', function (e) {\n if (e.cancelable && e.defaultPrevented && !e.__legacyOutputDidListenersThrowError) {\n executeNextRequest();\n }\n });\n q.req.addDefaultEventListener('error', function () {\n me.__abortTransaction(q.req.__error);\n });\n\n me.__active = true;\n const e = createEvent('error', err, {bubbles: true, cancelable: true});\n q.req.dispatchEvent(e);\n // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n if (e.__legacyOutputDidListenersThrowError) {\n logError('Error', 'An error occurred in an error handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n e.preventDefault(); // Prevent 'error' default as steps indicate we should abort with `AbortError` even without cancellation\n me.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n }\n }\n\n function executeNextRequest () {\n if (me.__errored || me.__requestsFinished) {\n // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n return;\n }\n i++;\n if (i >= me.__requests.length) {\n // All requests in the transaction are done\n me.__requests = [];\n if (me.__active) {\n requestsFinished();\n }\n } else {\n try {\n q = me.__requests[i];\n if (!q.req) {\n q.op(tx, q.args, executeNextRequest, error);\n return;\n }\n if (q.req.__readyState === 'done') { // Avoid continuing with aborted requests\n return;\n }\n q.op(tx, q.args, success, error, executeNextRequest);\n } catch (e) {\n error(e);\n }\n }\n }\n\n executeNextRequest();\n },\n function webSQLError (webSQLErr) {\n if (webSQLErr === true) { // Not a genuine SQL error\n return;\n }\n const err = webSQLErrback(webSQLErr);\n me.__abortTransaction(err);\n },\n function () {\n // For Node, we don't need to try running here as we can keep\n // the transaction running long enough to rollback (in the\n // next (non-standard) callback for this transaction call)\n if (me.__transFinishedCb !== IDBTransaction.prototype.__transFinishedCb) { // Node\n return;\n }\n if (!me.__transactionEndCallback && !me.__requestsFinished) {\n me.__transactionFinished = true;\n return;\n }\n if (me.__transactionEndCallback && !me.__completed) {\n me.__transFinishedCb(me.__errored, me.__transactionEndCallback);\n }\n },\n function (currentTask, err, done, rollback, commit) {\n if (currentTask.readOnly || err) {\n return true;\n }\n me.__transFinishedCb = function (err, cb) {\n if (err) {\n rollback(err, cb);\n } else {\n commit(cb);\n }\n };\n if (me.__transactionEndCallback && !me.__completed) {\n me.__transFinishedCb(me.__errored, me.__transactionEndCallback);\n }\n return false;\n }\n );\n\n function requestsFinished () {\n me.__active = false;\n me.__requestsFinished = true;\n\n function complete () {\n me.__completed = true;\n CFG.DEBUG && console.log('Transaction completed');\n const evt = createEvent('complete');\n try {\n me.__internal = true;\n me.dispatchEvent(evt);\n me.__internal = false;\n me.dispatchEvent(createEvent('__complete'));\n } catch (e) {\n me.__internal = false;\n // An error occurred in the \"oncomplete\" handler.\n // It's too late to call \"onerror\" or \"onabort\". Throw a global error instead.\n // (this may seem odd/bad, but it's how all native IndexedDB implementations work)\n me.__errored = true;\n throw e;\n } finally {\n me.__storeHandles = {};\n }\n }\n if (me.mode === 'readwrite') {\n if (me.__transactionFinished) {\n complete();\n return;\n }\n me.__transactionEndCallback = complete;\n return;\n }\n if (me.mode === 'readonly') {\n complete();\n return;\n }\n const ev = createEvent('__beforecomplete');\n ev.complete = complete;\n me.dispatchEvent(ev);\n }\n};\n\n/**\n * Creates a new IDBRequest for the transaction.\n * NOTE: The transaction is not queued until you call {@link IDBTransaction#__pushToQueue}\n * @returns {IDBRequest}\n * @protected\n */\nIDBTransaction.prototype.__createRequest = function (source) {\n const me = this;\n const request = IDBRequest.__createInstance();\n request.__source = source !== undefined ? source : me.db;\n request.__transaction = me;\n return request;\n};\n\n/**\n * Adds a callback function to the transaction queue\n * @param {function} callback\n * @param {*} args\n * @returns {IDBRequest}\n * @protected\n */\nIDBTransaction.prototype.__addToTransactionQueue = function (callback, args, source) {\n const request = this.__createRequest(source);\n this.__pushToQueue(request, callback, args);\n return request;\n};\n\n/**\n * Adds a callback function to the transaction queue without generating a request\n * @param {function} callback\n * @param {*} args\n * @returns {IDBRequest}\n * @protected\n */\nIDBTransaction.prototype.__addNonRequestToTransactionQueue = function (callback, args, source) {\n this.__pushToQueue(null, callback, args);\n};\n\n/**\n * Adds an IDBRequest to the transaction queue\n * @param {IDBRequest} request\n * @param {function} callback\n * @param {*} args\n * @protected\n */\nIDBTransaction.prototype.__pushToQueue = function (request, callback, args) {\n this.__assertActive();\n this.__requests.push({\n 'op': callback,\n 'args': args,\n 'req': request\n });\n};\n\nIDBTransaction.prototype.__assertActive = function () {\n if (!this.__active) {\n throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n }\n};\n\nIDBTransaction.prototype.__assertWritable = function () {\n if (this.mode === 'readonly') {\n throw createDOMException('ReadOnlyError', 'The transaction is read only');\n }\n};\n\nIDBTransaction.prototype.__assertVersionChange = function () {\n IDBTransaction.__assertVersionChange(this);\n};\n\n/**\n * Returns the specified object store.\n * @param {string} objectStoreName\n * @returns {IDBObjectStore}\n */\nIDBTransaction.prototype.objectStore = function (objectStoreName) {\n const me = this;\n if (!(me instanceof IDBTransaction)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No object store name was specified');\n }\n IDBTransaction.__assertNotFinished(me);\n if (me.__objectStoreNames.indexOf(objectStoreName) === -1) {\n throw createDOMException('NotFoundError', objectStoreName + ' is not participating in this transaction');\n }\n const store = me.db.__objectStores[objectStoreName];\n if (!store) {\n throw createDOMException('NotFoundError', objectStoreName + ' does not exist in ' + me.db.name);\n }\n\n if (!me.__storeHandles[objectStoreName] ||\n me.__storeHandles[objectStoreName].__pendingDelete ||\n me.__storeHandles[objectStoreName].__deleted) { // The latter conditions are to allow store\n // recreation to create new clone object\n me.__storeHandles[objectStoreName] = IDBObjectStore.__clone(store, me);\n }\n return me.__storeHandles[objectStoreName];\n};\n\nIDBTransaction.prototype.__abortTransaction = function (err) {\n const me = this;\n logError('Error', 'An error occurred in a transaction', err);\n if (me.__errored) {\n // We've already called \"onerror\", \"onabort\", or thrown, so don't do it again.\n return;\n }\n me.__errored = true;\n\n if (me.mode === 'versionchange') { // Steps for aborting an upgrade transaction\n me.db.__version = me.db.__oldVersion;\n me.db.__objectStoreNames = me.db.__oldObjectStoreNames;\n me.__objectStoreNames = me.db.__oldObjectStoreNames;\n Object.values(me.db.__objectStores).concat(Object.values(me.__storeHandles)).forEach(function (store) {\n if ('__pendingName' in store && me.db.__oldObjectStoreNames.indexOf(store.__pendingName) > -1) { // Store was already created so we restore to name before the rename\n store.__name = store.__originalName;\n }\n store.__indexNames = store.__oldIndexNames;\n delete store.__pendingDelete;\n Object.values(store.__indexes).concat(Object.values(store.__indexHandles)).forEach(function (index) {\n if ('__pendingName' in index && store.__oldIndexNames.indexOf(index.__pendingName) > -1) { // Index was already created so we restore to name before the rename\n index.__name = index.__originalName;\n }\n delete index.__pendingDelete;\n });\n });\n }\n me.__active = false; // Setting here and in requestsFinished for https://github.com/w3c/IndexedDB/issues/87\n\n if (err !== null) {\n me.__error = err;\n }\n\n if (me.__requestsFinished) {\n // The transaction has already completed, so we can't call \"onerror\" or \"onabort\".\n // So throw the error instead.\n setTimeout(() => {\n throw err;\n }, 0);\n }\n\n function abort (tx, errOrResult) {\n if (!tx) {\n CFG.DEBUG && console.log('Rollback not possible due to missing transaction', me);\n } else if (errOrResult && typeof errOrResult.code === 'number') {\n CFG.DEBUG && console.log('Rollback erred; feature is probably not supported as per WebSQL', me);\n } else {\n CFG.DEBUG && console.log('Rollback succeeded', me);\n }\n\n me.dispatchEvent(createEvent('__preabort'));\n me.__requests.filter(function (q) {\n return q.req && q.req.__readyState !== 'done';\n }).reduce(function (promises, q) {\n // We reduce to a chain of promises to be queued in order, so we cannot use `Promise.all`,\n // and I'm unsure whether `setTimeout` currently behaves first-in-first-out with the same timeout\n // so we could just use a `forEach`.\n return promises.then(function () {\n q.req.__readyState = 'done';\n q.req.__result = undefined;\n q.req.__error = createDOMException('AbortError', 'A request was aborted.');\n const reqEvt = createEvent('error', q.req.__error, {bubbles: true, cancelable: true});\n return new SyncPromise(function (resolve) {\n setTimeout(() => {\n q.req.dispatchEvent(reqEvt); // No need to catch errors\n resolve();\n });\n });\n });\n }, SyncPromise.resolve()).then(function () { // Also works when there are no pending requests\n const evt = createEvent('abort', err, {bubbles: true, cancelable: false});\n setTimeout(() => {\n me.__abortFinished = true;\n me.dispatchEvent(evt);\n me.__storeHandles = {};\n me.dispatchEvent(createEvent('__abort'));\n });\n });\n }\n\n me.__transFinishedCb(true, function (rollback) {\n if (rollback && me.__tx) { // Not supported in standard SQL (and WebSQL errors should\n // rollback automatically), but for Node.js, etc., we give chance for\n // manual aborts which would otherwise not work.\n if (me.mode === 'readwrite') {\n if (me.__transactionFinished) {\n abort();\n return;\n }\n me.__transactionEndCallback = abort;\n return;\n }\n try {\n me.__tx.executeSql('ROLLBACK', [], abort, abort); // Not working in some circumstances, even in Node\n } catch (err) {\n // Browser errs when transaction has ended and since it most likely already erred here,\n // we call to abort\n abort();\n }\n } else {\n abort(null, {code: 0});\n }\n });\n};\n\nIDBTransaction.prototype.abort = function () {\n const me = this;\n if (!(me instanceof IDBTransaction)) {\n throw new TypeError('Illegal invocation');\n }\n CFG.DEBUG && console.log('The transaction was aborted', me);\n IDBTransaction.__assertNotFinished(me);\n me.__abortTransaction(null);\n};\nIDBTransaction.prototype[Symbol.toStringTag] = 'IDBTransactionPrototype';\n\nIDBTransaction.__assertVersionChange = function (tx) {\n if (!tx || tx.mode !== 'versionchange') {\n throw createDOMException('InvalidStateError', 'Not a version transaction');\n }\n};\nIDBTransaction.__assertNotVersionChange = function (tx) {\n if (tx && tx.mode === 'versionchange') {\n throw createDOMException('InvalidStateError', 'Cannot be called during a version transaction');\n }\n};\n\nIDBTransaction.__assertNotFinished = function (tx) {\n if (!tx || tx.__completed || tx.__abortFinished || tx.__errored) {\n throw createDOMException('InvalidStateError', 'Transaction finished by commit or abort');\n }\n};\n\n// object store methods behave differently: see https://github.com/w3c/IndexedDB/issues/192\nIDBTransaction.__assertNotFinishedObjectStoreMethod = function (tx) {\n try {\n IDBTransaction.__assertNotFinished(tx);\n } catch (err) {\n if (tx && !tx.__completed && !tx.__abortFinished) {\n throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n }\n throw err;\n }\n};\n\nIDBTransaction.__assertActive = function (tx) {\n if (!tx || !tx.__active) {\n throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n }\n};\n\n/**\n* Used by our EventTarget.prototype library to implement bubbling/capturing\n*/\nIDBTransaction.prototype.__getParent = function () {\n return this.db;\n};\n\nlisteners.forEach((listener) => {\n Object.defineProperty(IDBTransaction.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\n// Illegal invocations\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBTransaction.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nObject.defineProperty(IDBTransaction.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBTransaction\n});\n\nObject.defineProperty(IDBTransaction, 'prototype', {\n writable: false\n});\n\nexport default IDBTransaction;\n","import {ShimEvent} from './Event';\nimport * as util from './util';\n\nconst readonlyProperties = ['oldVersion', 'newVersion'];\n\n// Babel apparently having a problem adding `hasInstance` to a class, so we are redefining as a function\nfunction IDBVersionChangeEvent (type /* , eventInitDict */) { // eventInitDict is a IDBVersionChangeEventInit (but is not defined as a global)\n ShimEvent.call(this, type);\n this[Symbol.toStringTag] = 'IDBVersionChangeEvent';\n this.toString = function () {\n return '[object IDBVersionChangeEvent]';\n };\n this.__eventInitDict = arguments[1] || {};\n}\n\nIDBVersionChangeEvent.prototype = Object.create(ShimEvent.prototype);\n\nIDBVersionChangeEvent.prototype[Symbol.toStringTag] = 'IDBVersionChangeEventPrototype';\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBVersionChangeEvent.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n if (!(this instanceof IDBVersionChangeEvent)) {\n throw new TypeError('Illegal invocation');\n }\n return (this.__eventInitDict && this.__eventInitDict[prop]) || (prop === 'oldVersion' ? 0 : null);\n }\n });\n});\n\nObject.defineProperty(IDBVersionChangeEvent, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && 'oldVersion' in obj && typeof obj.defaultPrevented === 'boolean'\n});\n\nObject.defineProperty(IDBVersionChangeEvent.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBVersionChangeEvent\n});\n\nObject.defineProperty(IDBVersionChangeEvent, 'prototype', {\n writable: false\n});\n\nexport default IDBVersionChangeEvent;\n","import {createDOMException} from './DOMException';\nimport * as util from './util';\nimport {cmp} from './IDBFactory';\nimport CFG from './CFG';\n\n/**\n * Encodes the keys based on their types. This is required to maintain collations\n */\nconst collations = ['invalid', 'number', 'date', 'string', 'binary', 'array'];\n\n/**\n * The sign values for numbers, ordered from least to greatest.\n * - \"negativeInfinity\": Sorts below all other values.\n * - \"bigNegative\": Negative values less than or equal to negative one.\n * - \"smallNegative\": Negative values between negative one and zero, noninclusive.\n * - \"smallPositive\": Positive values between zero and one, including zero but not one.\n * - \"largePositive\": Positive values greater than or equal to one.\n * - \"positiveInfinity\": Sorts above all other values.\n */\nconst signValues = ['negativeInfinity', 'bigNegative', 'smallNegative', 'smallPositive', 'bigPositive', 'positiveInfinity'];\n\nconst types = {\n invalid: {\n encode: function (key) {\n return collations.indexOf('invalid') + '-';\n },\n decode: function (key) {\n return undefined;\n }\n },\n\n // Numbers are represented in a lexically sortable base-32 sign-exponent-mantissa\n // notation.\n //\n // sign: takes a value between zero and five, inclusive. Represents infinite cases\n // and the signs of both the exponent and the fractional part of the number.\n // exponent: padded to two base-32 digits, represented by the 32's compliment in the\n // \"smallPositive\" and \"bigNegative\" cases to ensure proper lexical sorting.\n // mantissa: also called the fractional part. Normed 11-digit base-32 representation.\n // Represented by the 32's compliment in the \"smallNegative\" and \"bigNegative\"\n // cases to ensure proper lexical sorting.\n number: {\n // The encode step checks for six numeric cases and generates 14-digit encoded\n // sign-exponent-mantissa strings.\n encode: function (key) {\n let key32 = Math.abs(key).toString(32);\n // Get the index of the decimal.\n const decimalIndex = key32.indexOf('.');\n // Remove the decimal.\n key32 = (decimalIndex !== -1) ? key32.replace('.', '') : key32;\n // Get the index of the first significant digit.\n const significantDigitIndex = key32.search(/[^0]/);\n // Truncate leading zeros.\n key32 = key32.slice(significantDigitIndex);\n let sign, exponent, mantissa;\n\n // Finite cases:\n if (isFinite(key)) {\n // Negative cases:\n if (key < 0) {\n // Negative exponent case:\n if (key > -1) {\n sign = signValues.indexOf('smallNegative');\n exponent = padBase32Exponent(significantDigitIndex);\n mantissa = flipBase32(padBase32Mantissa(key32));\n // Non-negative exponent case:\n } else {\n sign = signValues.indexOf('bigNegative');\n exponent = flipBase32(padBase32Exponent(\n (decimalIndex !== -1) ? decimalIndex : key32.length\n ));\n mantissa = flipBase32(padBase32Mantissa(key32));\n }\n // Non-negative cases:\n } else {\n // Negative exponent case:\n if (key < 1) {\n sign = signValues.indexOf('smallPositive');\n exponent = flipBase32(padBase32Exponent(significantDigitIndex));\n mantissa = padBase32Mantissa(key32);\n // Non-negative exponent case:\n } else {\n sign = signValues.indexOf('bigPositive');\n exponent = padBase32Exponent(\n (decimalIndex !== -1) ? decimalIndex : key32.length\n );\n mantissa = padBase32Mantissa(key32);\n }\n }\n // Infinite cases:\n } else {\n exponent = zeros(2);\n mantissa = zeros(11);\n sign = signValues.indexOf(\n key > 0 ? 'positiveInfinity' : 'negativeInfinity'\n );\n }\n\n return collations.indexOf('number') + '-' + sign + exponent + mantissa;\n },\n // The decode step must interpret the sign, reflip values encoded as the 32's complements,\n // apply signs to the exponent and mantissa, do the base-32 power operation, and return\n // the original JavaScript number values.\n decode: function (key) {\n const sign = +key.substr(2, 1);\n let exponent = key.substr(3, 2);\n let mantissa = key.substr(5, 11);\n\n switch (signValues[sign]) {\n case 'negativeInfinity':\n return -Infinity;\n case 'positiveInfinity':\n return Infinity;\n case 'bigPositive':\n return pow32(mantissa, exponent);\n case 'smallPositive':\n exponent = negate(flipBase32(exponent));\n return pow32(mantissa, exponent);\n case 'smallNegative':\n exponent = negate(exponent);\n mantissa = flipBase32(mantissa);\n return -pow32(mantissa, exponent);\n case 'bigNegative':\n exponent = flipBase32(exponent);\n mantissa = flipBase32(mantissa);\n return -pow32(mantissa, exponent);\n default:\n throw new Error('Invalid number.');\n }\n }\n },\n\n // Strings are encoded as JSON strings (with quotes and unicode characters escaped).\n //\n // If the strings are in an array, then some extra encoding is done to make sorting work correctly:\n // Since we can't force all strings to be the same length, we need to ensure that characters line-up properly\n // for sorting, while also accounting for the extra characters that are added when the array itself is encoded as JSON.\n // To do this, each character of the string is prepended with a dash (\"-\"), and a space is added to the end of the string.\n // This effectively doubles the size of every string, but it ensures that when two arrays of strings are compared,\n // the indexes of each string's characters line up with each other.\n string: {\n encode: function (key, inArray) {\n if (inArray) {\n // prepend each character with a dash, and append a space to the end\n key = key.replace(/(.)/g, '-$1') + ' ';\n }\n return collations.indexOf('string') + '-' + key;\n },\n decode: function (key, inArray) {\n key = key.slice(2);\n if (inArray) {\n // remove the space at the end, and the dash before each character\n key = key.substr(0, key.length - 1).replace(/-(.)/g, '$1');\n }\n return key;\n }\n },\n\n // Arrays are encoded as JSON strings.\n // An extra, value is added to each array during encoding to make empty arrays sort correctly.\n array: {\n encode: function (key) {\n const encoded = [];\n for (let i = 0; i < key.length; i++) {\n const item = key[i];\n const encodedItem = encode(item, true); // encode the array item\n encoded[i] = encodedItem;\n }\n encoded.push(collations.indexOf('invalid') + '-'); // append an extra item, so empty arrays sort correctly\n return collations.indexOf('array') + '-' + JSON.stringify(encoded);\n },\n decode: function (key) {\n const decoded = JSON.parse(key.slice(2));\n decoded.pop(); // remove the extra item\n for (let i = 0; i < decoded.length; i++) {\n const item = decoded[i];\n const decodedItem = decode(item, true); // decode the item\n decoded[i] = decodedItem;\n }\n return decoded;\n }\n },\n\n // Dates are encoded as ISO 8601 strings, in UTC time zone.\n date: {\n encode: function (key) {\n return collations.indexOf('date') + '-' + key.toJSON();\n },\n decode: function (key) {\n return new Date(key.slice(2));\n }\n },\n binary: { // `ArrayBuffer`/Views on buffers (`TypedArray` or `DataView`)\n encode: function (key) {\n return collations.indexOf('binary') + '-' + (key.byteLength\n ? Array.from(getCopyBytesHeldByBufferSource(key)).map((b) => padStart(b, 3, '0')) // e.g., '255,005,254,000,001,033'\n : '');\n },\n decode: function (key) {\n // Set the entries in buffer's [[ArrayBufferData]] to those in `value`\n const k = key.slice(2);\n const arr = k.length ? k.split(',').map((s) => parseInt(s, 10)) : [];\n const buffer = new ArrayBuffer(arr.length);\n const uint8 = new Uint8Array(buffer);\n uint8.set(arr);\n return buffer;\n }\n }\n};\n\nfunction padStart (str, ct, fill) {\n return new Array(ct - (String(str)).length + 1).join(fill) + str;\n}\n\n/**\n * Return a padded base-32 exponent value.\n * @param {number}\n * @return {string}\n */\nfunction padBase32Exponent (n) {\n n = n.toString(32);\n return (n.length === 1) ? '0' + n : n;\n}\n\n/**\n * Return a padded base-32 mantissa.\n * @param {string}\n * @return {string}\n */\nfunction padBase32Mantissa (s) {\n return (s + zeros(11)).slice(0, 11);\n}\n\n/**\n * Flips each digit of a base-32 encoded string.\n * @param {string} encoded\n */\nfunction flipBase32 (encoded) {\n let flipped = '';\n for (let i = 0; i < encoded.length; i++) {\n flipped += (31 - parseInt(encoded[i], 32)).toString(32);\n }\n return flipped;\n}\n\n/**\n * Base-32 power function.\n * RESEARCH: This function does not precisely decode floats because it performs\n * floating point arithmetic to recover values. But can the original values be\n * recovered exactly?\n * Someone may have already figured out a good way to store JavaScript floats as\n * binary strings and convert back. Barring a better method, however, one route\n * may be to generate decimal strings that `parseFloat` decodes predictably.\n * @param {string}\n * @param {string}\n * @return {number}\n */\nfunction pow32 (mantissa, exponent) {\n exponent = parseInt(exponent, 32);\n if (exponent < 0) {\n return roundToPrecision(\n parseInt(mantissa, 32) * Math.pow(32, exponent - 10)\n );\n } else {\n if (exponent < 11) {\n let whole = mantissa.slice(0, exponent);\n whole = parseInt(whole, 32);\n let fraction = mantissa.slice(exponent);\n fraction = parseInt(fraction, 32) * Math.pow(32, exponent - 11);\n return roundToPrecision(whole + fraction);\n } else {\n const expansion = mantissa + zeros(exponent - 11);\n return parseInt(expansion, 32);\n }\n }\n}\n\n/**\n *\n */\nfunction roundToPrecision (num, precision) {\n precision = precision || 16;\n return parseFloat(num.toPrecision(precision));\n}\n\n/**\n * Returns a string of n zeros.\n * @param {number}\n * @return {string}\n */\nfunction zeros (n) {\n return '0'.repeat(n);\n}\n\n/**\n * Negates numeric strings.\n * @param {string}\n * @return {string}\n */\nfunction negate (s) {\n return '-' + s;\n}\n\n/**\n * Returns the string \"number\", \"date\", \"string\", \"binary\", or \"array\"\n */\nfunction getKeyType (key) {\n if (Array.isArray(key)) return 'array';\n if (util.isDate(key)) return 'date';\n if (util.isBinary(key)) return 'binary';\n const keyType = typeof key;\n return ['string', 'number'].includes(keyType) ? keyType : 'invalid';\n}\n\n/**\n * Keys must be strings, numbers (besides NaN), Dates (if value is not NaN),\n * binary objects or Arrays\n * @param input The key input\n * @param seen An array of already seen keys\n */\nfunction convertValueToKey (input, seen) {\n return convertValueToKeyValueDecoded(input, seen, false, true);\n}\n\n/**\n* Currently not in use\n*/\nfunction convertValueToMultiEntryKey (input) {\n return convertValueToKeyValueDecoded(input, null, true, true);\n}\n\n// https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy-2\nfunction getCopyBytesHeldByBufferSource (O) {\n let offset = 0;\n let length = 0;\n if (ArrayBuffer.isView(O)) { // Has [[ViewedArrayBuffer]] internal slot\n const arrayBuffer = O.buffer;\n if (arrayBuffer === undefined) {\n throw new TypeError('Could not copy the bytes held by a buffer source as the buffer was undefined.');\n }\n offset = O.byteOffset; // [[ByteOffset]] (will also throw as desired if detached)\n length = O.byteLength; // [[ByteLength]] (will also throw as desired if detached)\n } else {\n length = O.byteLength; // [[ArrayBufferByteLength]] on ArrayBuffer (will also throw as desired if detached)\n }\n // const octets = new Uint8Array(input);\n // const octets = types.binary.decode(types.binary.encode(input));\n return new Uint8Array(O.buffer || O, offset, length);\n}\n\n/**\n* Shortcut utility to avoid returning full keys from `convertValueToKey`\n* and subsequent need to process in calling code unless `fullKeys` is\n* set; may throw\n*/\nfunction convertValueToKeyValueDecoded (input, seen, multiEntry, fullKeys) {\n seen = seen || [];\n if (seen.includes(input)) return {type: 'array', invalid: true, message: 'An array key cannot be circular'};\n const type = getKeyType(input);\n const ret = {type, value: input};\n switch (type) {\n case 'number': {\n if (Number.isNaN(input)) {\n return {type: 'NaN', invalid: true}; // List as 'NaN' type for convenience of consumers in reporting errors\n }\n return ret;\n } case 'string': {\n return ret;\n } case 'binary': { // May throw (if detached)\n // Get a copy of the bytes held by the buffer source\n // https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy-2\n const octets = getCopyBytesHeldByBufferSource(input);\n return {type: 'binary', value: octets};\n } case 'array': { // May throw (from binary)\n const len = input.length;\n seen.push(input);\n const keys = [];\n for (let i = 0; i < len; i++) { // We cannot iterate here with array extras as we must ensure sparse arrays are invalidated\n if (!multiEntry && !Object.prototype.hasOwnProperty.call(input, i)) {\n return {type, invalid: true, message: 'Does not have own index property'};\n }\n try {\n const entry = input[i];\n const key = convertValueToKeyValueDecoded(entry, seen, false, fullKeys); // Though steps do not list rethrowing, the next is returnifabrupt when not multiEntry\n if (key.invalid) {\n if (multiEntry) {\n continue;\n }\n return {type, invalid: true, message: 'Bad array entry value-to-key conversion'};\n }\n if (!multiEntry ||\n (!fullKeys && keys.every((k) => cmp(k, key.value) !== 0)) ||\n (fullKeys && keys.every((k) => cmp(k, key) !== 0))\n ) {\n keys.push(fullKeys ? key : key.value);\n }\n } catch (err) {\n if (!multiEntry) {\n throw err;\n }\n }\n }\n return {type, value: keys};\n } case 'date': {\n if (!Number.isNaN(input.getTime())) {\n return fullKeys ? {type, value: input.getTime()} : {type, value: new Date(input.getTime())};\n }\n return {type, invalid: true, message: 'Not a valid date'};\n // Falls through\n } case 'invalid': default: {\n // Other `typeof` types which are not valid keys:\n // 'undefined', 'boolean', 'object' (including `null`), 'symbol', 'function\n const type = input === null ? 'null' : typeof input; // Convert `null` for convenience of consumers in reporting errors\n return {type, invalid: true, message: 'Not a valid key; type ' + type};\n }\n }\n}\nfunction convertValueToMultiEntryKeyDecoded (key, fullKeys) {\n return convertValueToKeyValueDecoded(key, null, true, fullKeys);\n}\n\n/**\n* An internal utility\n*/\nfunction convertValueToKeyRethrowingAndIfInvalid (input, seen) {\n const key = convertValueToKey(input, seen);\n if (key.invalid) {\n throw createDOMException('DataError', key.message || 'Not a valid key; type: ' + key.type);\n }\n return key;\n}\n\nfunction extractKeyFromValueUsingKeyPath (value, keyPath, multiEntry) {\n return extractKeyValueDecodedFromValueUsingKeyPath(value, keyPath, multiEntry, true);\n}\n/**\n* Not currently in use\n*/\nfunction evaluateKeyPathOnValue (value, keyPath, multiEntry) {\n return evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, true);\n}\n\n/**\n* May throw, return `{failure: true}` (e.g., non-object on keyPath resolution)\n* or `{invalid: true}` (e.g., `NaN`)\n*/\nfunction extractKeyValueDecodedFromValueUsingKeyPath (value, keyPath, multiEntry, fullKeys) {\n const r = evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, fullKeys);\n if (r.failure) {\n return r;\n }\n if (!multiEntry) {\n return convertValueToKeyValueDecoded(r.value, null, false, fullKeys);\n }\n return convertValueToMultiEntryKeyDecoded(r.value, fullKeys);\n}\n\n/**\n * Returns the value of an inline key based on a key path (wrapped in an object with key `value`)\n * or `{failure: true}`\n * @param {object} value\n * @param {string|array} keyPath\n * @param {boolean} multiEntry\n * @returns {undefined|array|string}\n */\nfunction evaluateKeyPathOnValueToDecodedValue (value, keyPath, multiEntry, fullKeys) {\n if (Array.isArray(keyPath)) {\n const result = [];\n return keyPath.some((item) => {\n const key = evaluateKeyPathOnValueToDecodedValue(value, item, multiEntry, fullKeys);\n if (key.failure) {\n return true;\n }\n result.push(key.value);\n }, []) ? {failure: true} : {value: result};\n }\n if (keyPath === '') {\n return {value};\n }\n const identifiers = keyPath.split('.');\n return identifiers.some((idntfr, i) => {\n if (idntfr === 'length' && (\n typeof value === 'string' || Array.isArray(value)\n )) {\n value = value.length;\n } else if (util.isBlob(value)) {\n switch (idntfr) {\n case 'size': case 'type':\n value = value[idntfr];\n break;\n }\n } else if (util.isFile(value)) {\n switch (idntfr) {\n case 'name': case 'lastModified':\n value = value[idntfr];\n break;\n case 'lastModifiedDate':\n value = new Date(value.lastModified);\n break;\n }\n } else if (!util.isObj(value) || !Object.prototype.hasOwnProperty.call(value, idntfr)) {\n return true;\n } else {\n value = value[idntfr];\n return value === undefined;\n }\n }) ? {failure: true} : {value};\n}\n\n/**\n * Sets the inline key value\n * @param {object} value\n * @param {*} key\n * @param {string} keyPath\n */\nfunction injectKeyIntoValueUsingKeyPath (value, key, keyPath) {\n const identifiers = keyPath.split('.');\n const last = identifiers.pop();\n for (let i = 0; i < identifiers.length; i++) {\n const identifier = identifiers[i];\n const hop = Object.prototype.hasOwnProperty.call(value, identifier);\n if (!hop) {\n value[identifier] = {};\n }\n value = value[identifier];\n }\n value[last] = key; // key is already a `keyValue` in our processing so no need to convert\n}\n\n// See https://github.com/w3c/IndexedDB/pull/146\nfunction checkKeyCouldBeInjectedIntoValue (value, keyPath) {\n const identifiers = keyPath.split('.');\n identifiers.pop();\n for (let i = 0; i < identifiers.length; i++) {\n if (!util.isObj(value)) {\n return false;\n }\n const identifier = identifiers[i];\n const hop = Object.prototype.hasOwnProperty.call(value, identifier);\n if (!hop) {\n return true;\n }\n value = value[identifier];\n }\n return util.isObj(value);\n}\n\nfunction isKeyInRange (key, range, checkCached) {\n let lowerMatch = range.lower === undefined;\n let upperMatch = range.upper === undefined;\n const encodedKey = encode(key, true);\n const lower = checkCached ? range.__lowerCached : encode(range.lower, true);\n const upper = checkCached ? range.__upperCached : encode(range.upper, true);\n\n if (range.lower !== undefined) {\n if (range.lowerOpen && encodedKey > lower) {\n lowerMatch = true;\n }\n if (!range.lowerOpen && encodedKey >= lower) {\n lowerMatch = true;\n }\n }\n if (range.upper !== undefined) {\n if (range.upperOpen && encodedKey < upper) {\n upperMatch = true;\n }\n if (!range.upperOpen && encodedKey <= upper) {\n upperMatch = true;\n }\n }\n\n return lowerMatch && upperMatch;\n}\n\n/**\n * Determines whether an index entry matches a multi-entry key value.\n * @param {string} encodedEntry The entry value (already encoded)\n * @param {string} encodedKey The full index key (already encoded)\n * @returns {boolean}\n */\nfunction isMultiEntryMatch (encodedEntry, encodedKey) {\n const keyType = collations[encodedKey.slice(0, 1)];\n\n if (keyType === 'array') {\n return encodedKey.indexOf(encodedEntry) > 1;\n } else {\n return encodedKey === encodedEntry;\n }\n}\n\nfunction findMultiEntryMatches (keyEntry, range) {\n const matches = [];\n\n if (Array.isArray(keyEntry)) {\n for (let i = 0; i < keyEntry.length; i++) {\n let key = keyEntry[i];\n\n if (Array.isArray(key)) {\n if (range && range.lower === range.upper) {\n continue;\n }\n if (key.length === 1) {\n key = key[0];\n } else {\n const nested = findMultiEntryMatches(key, range);\n if (nested.length > 0) {\n matches.push(key);\n }\n continue;\n }\n }\n\n if (range == null || isKeyInRange(key, range, true)) {\n matches.push(key);\n }\n }\n } else {\n if (range == null || isKeyInRange(keyEntry, range, true)) {\n matches.push(keyEntry);\n }\n }\n return matches;\n}\n\n/**\n* Not currently in use but keeping for spec parity\n*/\nfunction convertKeyToValue (key) {\n const type = key.type;\n const value = key.value;\n switch (type) {\n case 'number': case 'string': {\n return value;\n } case 'array': {\n const array = [];\n const len = value.length;\n let index = 0;\n while (index < len) {\n const entry = convertKeyToValue(value[index]);\n array[index] = entry;\n index++;\n }\n return array;\n } case 'date': {\n return new Date(value);\n } case 'binary': {\n const len = value.length;\n const buffer = new ArrayBuffer(len);\n // Set the entries in buffer's [[ArrayBufferData]] to those in `value`\n const uint8 = new Uint8Array(buffer, value.byteOffset || 0, value.byteLength);\n uint8.set(value);\n return buffer;\n } case 'invalid': default:\n throw new Error('Bad key');\n }\n}\n\nfunction encode (key, inArray) {\n // Bad keys like `null`, `object`, `boolean`, 'function', 'symbol' should not be passed here due to prior validation\n if (key === undefined) {\n return null;\n }\n // array, date, number, string, binary (should already have detected \"invalid\")\n return types[getKeyType(key)].encode(key, inArray);\n}\nfunction decode (key, inArray) {\n if (typeof key !== 'string') {\n return undefined;\n }\n return types[collations[key.slice(0, 1)]].decode(key, inArray);\n}\n\nfunction roundTrip (key, inArray) {\n return decode(encode(key, inArray), inArray);\n}\n\nconst MAX_ALLOWED_CURRENT_NUMBER = 9007199254740992; // 2 ^ 53 (Also equal to `Number.MAX_SAFE_INTEGER + 1`)\n\nfunction getCurrentNumber (tx, store, callback, sqlFailCb) {\n tx.executeSql('SELECT \"currNum\" FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function (tx, data) {\n if (data.rows.length !== 1) {\n callback(1); // eslint-disable-line standard/no-callback-literal\n } else {\n callback(data.rows.item(0).currNum);\n }\n }, function (tx, error) {\n sqlFailCb(createDOMException('DataError', 'Could not get the auto increment value for key', error));\n });\n}\n\n// Bump up the auto-inc counter if the key path-resolved value is valid (greater than old value and >=1) OR\n// if a manually passed in key is valid (numeric and >= 1) and >= any primaryKey\nfunction setCurrentNumber (tx, store, num, successCb, failCb) {\n const sql = 'UPDATE __sys__ SET \"currNum\" = ? WHERE \"name\" = ?';\n num = num === MAX_ALLOWED_CURRENT_NUMBER\n ? num + 2 // Since incrementing by one will have no effect in JavaScript on this unsafe max, we represent the max as a number incremented by two. The getting of the current number is never returned to the user and is only used in safe comparisons, so it is safe for us to represent it in this manner\n : num + 1;\n const sqlValues = [num, util.escapeSQLiteStatement(store.__currentName)];\n CFG.DEBUG && console.log(sql, sqlValues);\n tx.executeSql(sql, sqlValues, function (tx, data) {\n successCb(num);\n }, function (tx, err) {\n failCb(createDOMException('UnknownError', 'Could not set the auto increment value for key', err));\n });\n}\n\nfunction generateKeyForStore (tx, store, cb, sqlFailCb) {\n getCurrentNumber(tx, store, function (key) {\n if (key > MAX_ALLOWED_CURRENT_NUMBER) { // 2 ^ 53 (See )\n return cb('failure'); // eslint-disable-line standard/no-callback-literal\n }\n // Increment current number by 1 (we cannot leverage SQLite's\n // autoincrement (and decrement when not needed), as decrementing\n // will be overwritten/ignored upon the next insert)\n setCurrentNumber(tx, store, key,\n function () {\n cb(null, key);\n },\n sqlFailCb\n );\n }, sqlFailCb);\n}\n\n// Fractional or numbers exceeding the max do not get changed in the result\n// per https://github.com/w3c/IndexedDB/issues/147\n// so we do not return a key\nfunction possiblyUpdateKeyGenerator (tx, store, key, successCb, sqlFailCb) {\n // Per https://github.com/w3c/IndexedDB/issues/147 , non-finite numbers\n // (or numbers larger than the max) are now to have the explicit effect of\n // setting the current number (up to the max), so we do not optimize them\n // out here\n if (typeof key !== 'number' || key < 1) { // Optimize with no need to get the current number\n // Auto-increment attempted with a bad key;\n // we are not to change the current number, but the steps don't call for failure\n // Numbers < 1 are optimized out as they will never be greater than the current number which must be at least 1\n successCb();\n } else {\n // If auto-increment and the keyPath item is a valid numeric key, get the old auto-increment to compare if the new is higher\n // to determine which to use and whether to update the current number\n getCurrentNumber(tx, store, function (cn) {\n const value = Math.floor(\n Math.min(key, MAX_ALLOWED_CURRENT_NUMBER)\n );\n const useNewKeyForAutoInc = value >= cn;\n if (useNewKeyForAutoInc) {\n setCurrentNumber(tx, store, value, successCb, sqlFailCb);\n } else { // Not updated\n successCb();\n }\n }, sqlFailCb);\n }\n}\n\n/* eslint-disable object-property-newline */\nexport {encode, decode, roundTrip, convertKeyToValue, convertValueToKeyValueDecoded,\n convertValueToMultiEntryKeyDecoded,\n convertValueToKey,\n convertValueToMultiEntryKey, convertValueToKeyRethrowingAndIfInvalid,\n extractKeyFromValueUsingKeyPath, evaluateKeyPathOnValue,\n extractKeyValueDecodedFromValueUsingKeyPath, injectKeyIntoValueUsingKeyPath, checkKeyCouldBeInjectedIntoValue,\n isMultiEntryMatch, isKeyInRange, findMultiEntryMatches,\n generateKeyForStore, possiblyUpdateKeyGenerator};\n","import Typeson from 'typeson';\nimport StructuredCloning from 'typeson-registry/presets/structured-cloning-throwing';\n// import Blob from 'w3c-blob'; // Needed by Node; uses native if available (browser)\n\nimport {createDOMException, ShimDOMException} from './DOMException';\n\n// Todo: Register `ImageBitmap` and add `Blob`/`File`/`FileList`\n// Todo: add a proper polyfill for `ImageData` using node-canvas\n// See also: http://stackoverflow.com/questions/42170826/categories-for-rejection-by-the-structured-cloning-algorithm\n\nconst typeson = new Typeson().register(StructuredCloning);\n\n// We are keeping the callback approach for now in case we wish to reexpose Blob, File, FileList\nfunction encode (obj, cb) {\n let ret;\n try {\n ret = typeson.stringifySync(obj);\n } catch (err) {\n // SCA in typeson-registry using `DOMException` which is not defined (e.g., in Node)\n if (Typeson.hasConstructorOf(err, ReferenceError) ||\n // SCA in typeson-registry threw a cloning error and we are in a\n // supporting environment (e.g., the browser) where `ShimDOMException` is\n // an alias for `DOMException`; if typeson-registry ever uses our shim\n // to throw, we can use this condition alone.\n Typeson.hasConstructorOf(err, ShimDOMException)) {\n throw createDOMException('DataCloneError', 'The object cannot be cloned.');\n }\n throw err; // We should rethrow non-cloning exceptions like from\n // throwing getters (as in the W3C test, key-conversion-exceptions.htm)\n }\n if (cb) cb(ret);\n return ret;\n}\n\nfunction decode (obj) {\n return typeson.parse(obj);\n}\n\nfunction clone (val) {\n // We don't return the intermediate `encode` as we'll need to reencode the clone as it may differ\n return decode(encode(val));\n}\n\nexport {encode, decode, clone};\n","// ID_Start (includes Other_ID_Start)\nconst UnicodeIDStart =\n '(?:[$A-Z_a-z\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B4\\\\u08B6-\\\\u08BD\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309B-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AE\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDF00-\\\\uDF19]|\\\\uD806[\\\\uDCA0-\\\\uDCDF\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0]|\\\\uD821[\\\\uDC00-\\\\uDFEC]|\\\\uD822[\\\\uDC00-\\\\uDEF2]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD00-\\\\uDD43]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1]|\\\\uD87E[\\\\uDC00-\\\\uDE1D])';\n\n// ID_Continue (includes Other_ID_Continue)\nconst UnicodeIDContinue =\n '(?:[$0-9A-Z_a-z\\\\xAA\\\\xB5\\\\xB7\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B4\\\\u08B6-\\\\u08BD\\\\u08D4-\\\\u08E1\\\\u08E3-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0AF9\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58-\\\\u0C5A\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C80-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D54-\\\\u0D57\\\\u0D5F-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1369-\\\\u1371\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19DA\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFB-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AE\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C5\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDDFD\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDEE0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF7A\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCA0-\\\\uDCA9\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE6\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2]|\\\\uD804[\\\\uDC00-\\\\uDC46\\\\uDC66-\\\\uDC6F\\\\uDC7F-\\\\uDCBA\\\\uDCD0-\\\\uDCE8\\\\uDCF0-\\\\uDCF9\\\\uDD00-\\\\uDD34\\\\uDD36-\\\\uDD3F\\\\uDD50-\\\\uDD73\\\\uDD76\\\\uDD80-\\\\uDDC4\\\\uDDCA-\\\\uDDCC\\\\uDDD0-\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE37\\\\uDE3E\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEEA\\\\uDEF0-\\\\uDEF9\\\\uDF00-\\\\uDF03\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3C-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF50\\\\uDF57\\\\uDF5D-\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC00-\\\\uDC4A\\\\uDC50-\\\\uDC59\\\\uDC80-\\\\uDCC5\\\\uDCC7\\\\uDCD0-\\\\uDCD9\\\\uDD80-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDD8-\\\\uDDDD\\\\uDE00-\\\\uDE40\\\\uDE44\\\\uDE50-\\\\uDE59\\\\uDE80-\\\\uDEB7\\\\uDEC0-\\\\uDEC9\\\\uDF00-\\\\uDF19\\\\uDF1D-\\\\uDF2B\\\\uDF30-\\\\uDF39]|\\\\uD806[\\\\uDCA0-\\\\uDCE9\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC36\\\\uDC38-\\\\uDC40\\\\uDC50-\\\\uDC59\\\\uDC72-\\\\uDC8F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE60-\\\\uDE69\\\\uDED0-\\\\uDEED\\\\uDEF0-\\\\uDEF4\\\\uDF00-\\\\uDF36\\\\uDF40-\\\\uDF43\\\\uDF50-\\\\uDF59\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50-\\\\uDF7E\\\\uDF8F-\\\\uDF9F\\\\uDFE0]|\\\\uD821[\\\\uDC00-\\\\uDFEC]|\\\\uD822[\\\\uDC00-\\\\uDEF2]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99\\\\uDC9D\\\\uDC9E]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB\\\\uDFCE-\\\\uDFFF]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDCD0-\\\\uDCD6\\\\uDD00-\\\\uDD4A\\\\uDD50-\\\\uDD59]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uDB40[\\\\uDD00-\\\\uDDEF])';\n\nexport {UnicodeIDStart, UnicodeIDContinue};\n","import setGlobalVars from './setGlobalVars';\nimport nodeWebSQL from './nodeWebSQL'; // Importing \"websql\" would not gain us SQLite config ability\nimport CFG from './CFG';\nimport * as UnicodeIdentifiers from './UnicodeIdentifiers';\n\nCFG.win = {openDatabase: nodeWebSQL};\n\nconst __setGlobalVars = function (idb, initialConfig) {\n const obj = setGlobalVars(idb, initialConfig);\n obj.shimIndexedDB.__setUnicodeIdentifiers(UnicodeIdentifiers);\n return obj;\n};\n\nexport default __setGlobalVars;\n","import customOpenDatabase from 'websql/custom';\nimport SQLiteDatabase from 'websql/lib/sqlite/SQLiteDatabase';\nimport CFG from './CFG';\n\nfunction wrappedSQLiteDatabase (name) {\n const db = new SQLiteDatabase(name);\n if (CFG.sqlBusyTimeout) {\n db._db.configure('busyTimeout', CFG.sqlBusyTimeout); // Default is 1000\n }\n if (CFG.sqlTrace) {\n db._db.configure('trace', CFG.sqlTrace);\n }\n if (CFG.sqlProfile) {\n db._db.configure('profile', CFG.sqlProfile);\n }\n return db;\n}\n\nconst nodeWebSQL = customOpenDatabase(wrappedSQLiteDatabase);\nexport default nodeWebSQL;\n","import {createDOMException} from './DOMException';\nimport * as Key from './Key';\n\n// Todo Browser: polyfill IDBVersionChangeEvent, IDBOpenDBRequest?\n\n/**\n * Polyfills missing features in the browser's native IndexedDB implementation.\n * This is used for browsers that DON'T support WebSQL but DO support IndexedDB\n */\nfunction polyfill () {\n if (navigator.userAgent.match(/MSIE/) ||\n navigator.userAgent.match(/Trident/) ||\n navigator.userAgent.match(/Edge/)) {\n // Internet Explorer's native IndexedDB does not support compound keys\n compoundKeyPolyfill();\n }\n}\n\n/**\n * Polyfills support for compound keys\n */\nfunction compoundKeyPolyfill (IDBCursor, IDBCursorWithValue, IDBDatabase, IDBFactory, IDBIndex, IDBKeyRange, IDBObjectStore, IDBRequest, IDBTransaction) {\n const cmp = IDBFactory.prototype.cmp;\n const createObjectStore = IDBDatabase.prototype.createObjectStore;\n const createIndex = IDBObjectStore.prototype.createIndex;\n const add = IDBObjectStore.prototype.add;\n const put = IDBObjectStore.prototype.put;\n const indexGet = IDBIndex.prototype.get;\n const indexGetKey = IDBIndex.prototype.getKey;\n const indexCursor = IDBIndex.prototype.openCursor;\n const indexKeyCursor = IDBIndex.prototype.openKeyCursor;\n const storeGet = IDBObjectStore.prototype.get;\n const storeDelete = IDBObjectStore.prototype.delete;\n const storeCursor = IDBObjectStore.prototype.openCursor;\n const storeKeyCursor = IDBObjectStore.prototype.openKeyCursor;\n const bound = IDBKeyRange.bound;\n const upperBound = IDBKeyRange.upperBound;\n const lowerBound = IDBKeyRange.lowerBound;\n const only = IDBKeyRange.only;\n const requestResult = Object.getOwnPropertyDescriptor(IDBRequest.prototype, 'result');\n const cursorPrimaryKey = Object.getOwnPropertyDescriptor(IDBCursor.prototype, 'primaryKey');\n const cursorKey = Object.getOwnPropertyDescriptor(IDBCursor.prototype, 'key');\n const cursorValue = Object.getOwnPropertyDescriptor(IDBCursorWithValue.prototype, 'value');\n\n IDBFactory.prototype.cmp = function (key1, key2) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key1)) {\n args[0] = encodeCompoundKey(key1);\n }\n if (Array.isArray(key2)) {\n args[1] = encodeCompoundKey(key2);\n }\n return cmp.apply(this, args);\n };\n\n IDBDatabase.prototype.createObjectStore = function (name, opts) {\n if (opts && Array.isArray(opts.keyPath)) {\n opts.keyPath = encodeCompoundKeyPath(opts.keyPath);\n }\n return createObjectStore.apply(this, arguments);\n };\n\n IDBObjectStore.prototype.createIndex = function (name, keyPath, opts) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(keyPath)) {\n args[1] = encodeCompoundKeyPath(keyPath);\n }\n return createIndex.apply(this, args);\n };\n\n IDBObjectStore.prototype.add = function (...args/* value, key */) {\n return this.__insertData(add, args);\n };\n\n IDBObjectStore.prototype.put = function (...args/* value, key */) {\n return this.__insertData(put, args);\n };\n\n IDBObjectStore.prototype.__insertData = function (method, args) {\n args = Array.prototype.slice.call(args);\n const value = args[0];\n const key = args[1];\n\n // out-of-line key\n if (Array.isArray(key)) {\n args[1] = encodeCompoundKey(key);\n }\n\n if (typeof value === 'object') {\n // inline key\n if (isCompoundKey(this.keyPath)) {\n const erred = setInlineCompoundKey(value, this.keyPath);\n if (erred) {\n throw createDOMException('DataError', 'keyPath error');\n }\n }\n\n // inline indexes\n for (let i = 0; i < this.indexNames.length; i++) {\n const index = this.index(this.indexNames[i]);\n if (isCompoundKey(index.keyPath)) {\n try {\n setInlineCompoundKey(value, index.keyPath, index.multiEntry);\n } catch (e) {\n // The value doesn't have a valid key for this index.\n }\n }\n }\n }\n return method.apply(this, args);\n };\n\n IDBIndex.prototype.get = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return indexGet.apply(this, args);\n };\n\n IDBIndex.prototype.getKey = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return indexGetKey.apply(this, args);\n };\n\n IDBIndex.prototype.openCursor = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return indexCursor.apply(this, args);\n };\n\n IDBIndex.prototype.openKeyCursor = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return indexKeyCursor.apply(this, args);\n };\n\n IDBObjectStore.prototype.get = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return storeGet.apply(this, args);\n };\n\n IDBObjectStore.prototype.delete = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return storeDelete.apply(this, args);\n };\n\n IDBObjectStore.prototype.openCursor = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return storeCursor.apply(this, args);\n };\n\n IDBObjectStore.prototype.openKeyCursor = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return storeKeyCursor.apply(this, args);\n };\n\n IDBKeyRange.bound = function (lower, upper, lowerOpen, upperOpen) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(lower)) {\n args[0] = encodeCompoundKey(lower);\n }\n if (Array.isArray(upper)) {\n args[1] = encodeCompoundKey(upper);\n }\n return bound.apply(IDBKeyRange, args);\n };\n\n IDBKeyRange.upperBound = function (key, open) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return upperBound.apply(IDBKeyRange, args);\n };\n\n IDBKeyRange.lowerBound = function (key, open) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return lowerBound.apply(IDBKeyRange, args);\n };\n\n IDBKeyRange.only = function (key) {\n const args = Array.prototype.slice.call(arguments);\n if (Array.isArray(key)) {\n args[0] = encodeCompoundKey(key);\n }\n return only.apply(IDBKeyRange, args);\n };\n\n Object.defineProperty(IDBRequest.prototype, 'result', {\n enumerable: requestResult.enumerable,\n configurable: requestResult.configurable,\n get: function () {\n const result = requestResult.get.call(this);\n return removeInlineCompoundKey(result);\n }\n });\n\n Object.defineProperty(IDBCursor.prototype, 'primaryKey', {\n enumerable: cursorPrimaryKey.enumerable,\n configurable: cursorPrimaryKey.configurable,\n get: function () {\n const result = cursorPrimaryKey.get.call(this);\n return removeInlineCompoundKey(result);\n }\n });\n\n Object.defineProperty(IDBCursor.prototype, 'key', {\n enumerable: cursorKey.enumerable,\n configurable: cursorKey.configurable,\n get: function () {\n const result = cursorKey.get.call(this);\n return removeInlineCompoundKey(result);\n }\n });\n\n Object.defineProperty(IDBCursorWithValue.prototype, 'value', {\n enumerable: cursorValue.enumerable,\n configurable: cursorValue.configurable,\n get: function () {\n const result = cursorValue.get.call(this);\n return removeInlineCompoundKey(result);\n }\n });\n}\n\nconst compoundKeysPropertyName = '__$$compoundKey';\nconst propertySeparatorRegExp = /\\$\\$/g;\nconst propertySeparator = '$$$$'; // \"$$\" after RegExp escaping\nconst keySeparator = '$_$';\n\nfunction isCompoundKey (keyPath) {\n return keyPath && (keyPath.indexOf(compoundKeysPropertyName + '.') === 0);\n}\n\nfunction encodeCompoundKeyPath (keyPath) {\n // Encoded dotted properties\n // [\"name.first\", \"name.last\"] ==> [\"name$$first\", \"name$$last\"]\n for (let i = 0; i < keyPath.length; i++) {\n keyPath[i] = keyPath[i].replace(/\\./g, propertySeparator);\n }\n\n // Encode the array as a single property\n // [\"name$$first\", \"name$$last\"] => \"__$$compoundKey.name$$first$_$name$$last\"\n return compoundKeysPropertyName + '.' + keyPath.join(keySeparator);\n}\n\nfunction decodeCompoundKeyPath (keyPath) {\n // Remove the \"__$$compoundKey.\" prefix\n keyPath = keyPath.substr(compoundKeysPropertyName.length + 1);\n\n // Split the properties into an array\n // \"name$$first$_$name$$last\" ==> [\"name$$first\", \"name$$last\"]\n keyPath = keyPath.split(keySeparator);\n\n // Decode dotted properties\n // [\"name$$first\", \"name$$last\"] ==> [\"name.first\", \"name.last\"]\n for (let i = 0; i < keyPath.length; i++) {\n keyPath[i] = keyPath[i].replace(propertySeparatorRegExp, '.');\n }\n return keyPath;\n}\n\nfunction setInlineCompoundKey (value, encodedKeyPath, multiEntry) {\n // Encode the key\n const keyPath = decodeCompoundKeyPath(encodedKeyPath);\n const key = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, keyPath, multiEntry);\n if (key.failure || key.invalid) {\n return true;\n }\n const encodedKey = encodeCompoundKey(key.value);\n\n // Store the encoded key inline\n encodedKeyPath = encodedKeyPath.substr(compoundKeysPropertyName.length + 1);\n value[compoundKeysPropertyName] = value[compoundKeysPropertyName] || {};\n value[compoundKeysPropertyName][encodedKeyPath] = encodedKey;\n}\n\nfunction removeInlineCompoundKey (value) {\n if (typeof value === 'string' && isCompoundKey(value)) {\n return decodeCompoundKey(value);\n } else if (value && typeof value[compoundKeysPropertyName] === 'object') {\n delete value[compoundKeysPropertyName];\n }\n return value;\n}\n\nfunction encodeCompoundKey (key) {\n // Validate and encode the key\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n key = Key.encode(key);\n\n // Prepend the \"__$$compoundKey.\" prefix\n key = compoundKeysPropertyName + '.' + key;\n\n validateKeyLength(key);\n return key;\n}\n\nfunction decodeCompoundKey (key) {\n validateKeyLength(key);\n\n // Remove the \"__$$compoundKey.\" prefix\n key = key.substr(compoundKeysPropertyName.length + 1);\n\n // Decode the key\n key = Key.decode(key);\n return key;\n}\n\nfunction validateKeyLength (key) {\n // BUG: Internet Explorer truncates string keys at 889 characters\n if (key.length > 889) {\n throw createDOMException('DataError', 'The encoded key is ' + key.length + ' characters long, but IE only allows 889 characters. Consider replacing numeric keys with strings to reduce the encoded length.');\n }\n}\n\nexport default polyfill;\n","/* globals self */\nimport shimIDBVersionChangeEvent from './IDBVersionChangeEvent';\nimport {IDBCursor as shimIDBCursor, IDBCursorWithValue as shimIDBCursorWithValue} from './IDBCursor';\nimport {IDBRequest as shimIDBRequest, IDBOpenDBRequest as shimIDBOpenDBRequest} from './IDBRequest';\nimport {ShimDOMException} from './DOMException';\nimport {shimIndexedDB} from './IDBFactory';\nimport shimIDBKeyRange from './IDBKeyRange';\nimport shimIDBObjectStore from './IDBObjectStore';\nimport shimIDBIndex from './IDBIndex';\nimport shimIDBTransaction from './IDBTransaction';\nimport shimIDBDatabase from './IDBDatabase';\nimport polyfill from './polyfill';\nimport CFG from './CFG';\n\nfunction setConfig (prop, val) {\n if (prop && typeof prop === 'object') {\n for (const p in prop) {\n setConfig(p, prop[p]);\n }\n return;\n }\n if (!(prop in CFG)) {\n throw new Error(prop + ' is not a valid configuration property');\n }\n CFG[prop] = val;\n}\n\nfunction setGlobalVars (idb, initialConfig) {\n if (initialConfig) {\n setConfig(initialConfig);\n }\n const IDB = idb || (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : (typeof global !== 'undefined' ? global : {})));\n function shim (name, value, propDesc) {\n if (!propDesc || !Object.defineProperty) {\n try {\n // Try setting the property. This will fail if the property is read-only.\n IDB[name] = value;\n } catch (e) {\n console.log(e);\n }\n }\n if (IDB[name] !== value && Object.defineProperty) {\n // Setting a read-only property failed, so try re-defining the property\n try {\n const desc = propDesc || {};\n desc.get = function () {\n return value;\n };\n Object.defineProperty(IDB, name, desc);\n /*\n // Due to ,\n // there are problems for us to retain the descriptor\n // and thus the fact that indexedDB is to be implemented\n // as a getter (as expected in interface tests).\n if (name === 'indexedDB') {\n console.log(Object.getOwnPropertyDescriptor(IDB, name));\n }\n */\n } catch (e) {\n // With `indexedDB`, PhantomJS fails here and below but\n // not above, while Chrome is reverse (and Firefox doesn't\n // get here since no WebSQL to use for shimming)\n }\n }\n if (IDB[name] !== value) {\n typeof console !== 'undefined' && console.warn && console.warn('Unable to shim ' + name);\n }\n }\n shim('shimIndexedDB', shimIndexedDB, {\n enumerable: false,\n configurable: true\n });\n if (IDB.shimIndexedDB) {\n IDB.shimIndexedDB.__useShim = function () {\n function setNonIDBGlobals (prefix = '') {\n shim(prefix + 'DOMException', IDB.indexedDB.modules.ShimDOMException);\n shim(prefix + 'DOMStringList', IDB.indexedDB.modules.ShimDOMStringList, {\n enumerable: false,\n configurable: true\n });\n shim(prefix + 'Event', IDB.indexedDB.modules.ShimEvent);\n shim(prefix + 'CustomEvent', IDB.indexedDB.modules.ShimCustomEvent);\n shim(prefix + 'EventTarget', IDB.indexedDB.modules.ShimEventTarget);\n }\n const shimIDBFactory = IDB.shimIndexedDB.modules.IDBFactory;\n if (CFG.win.openDatabase !== undefined) {\n shimIndexedDB.__openDatabase = CFG.win.openDatabase.bind(CFG.win); // We cache here in case the function is overwritten later as by the IndexedDB support promises tests\n // Polyfill ALL of IndexedDB, using WebSQL\n if (CFG.fullIDLSupport) {\n // Slow per MDN so off by default! Though apparently needed for WebIDL: http://stackoverflow.com/questions/41927589/rationales-consequences-of-webidl-class-inheritance-requirements\n const ShimEvent = IDB.shimIndexedDB.modules.ShimEvent;\n const ShimEventTarget = IDB.shimIndexedDB.modules.ShimEventTarget;\n Object.setPrototypeOf(shimIDBDatabase, ShimEventTarget);\n Object.setPrototypeOf(shimIDBRequest, ShimEventTarget);\n Object.setPrototypeOf(shimIDBTransaction, ShimEventTarget);\n Object.setPrototypeOf(shimIDBVersionChangeEvent, ShimEvent);\n Object.setPrototypeOf(ShimDOMException, Error);\n Object.setPrototypeOf(ShimDOMException.prototype, Error.prototype);\n }\n [\n ['indexedDB', shimIndexedDB],\n ['IDBFactory', shimIDBFactory],\n ['IDBDatabase', shimIDBDatabase],\n ['IDBObjectStore', shimIDBObjectStore],\n ['IDBIndex', shimIDBIndex],\n ['IDBTransaction', shimIDBTransaction],\n ['IDBCursor', shimIDBCursor],\n ['IDBCursorWithValue', shimIDBCursorWithValue],\n ['IDBKeyRange', shimIDBKeyRange],\n ['IDBRequest', shimIDBRequest],\n ['IDBOpenDBRequest', shimIDBOpenDBRequest],\n ['IDBVersionChangeEvent', shimIDBVersionChangeEvent]\n ].forEach(([prop, obj]) => {\n shim(prop, obj, {\n enumerable: false,\n configurable: true\n });\n });\n if (IDB.indexedDB && IDB.indexedDB.modules) {\n if (CFG.addNonIDBGlobals) {\n // As `DOMStringList` exists per IDL (and Chrome) in the global\n // thread (but not in workers), we prefix the name to avoid\n // shadowing or conflicts\n setNonIDBGlobals('Shim');\n }\n if (CFG.replaceNonIDBGlobals) {\n setNonIDBGlobals();\n }\n }\n } else if (typeof IDB.indexedDB === 'object') {\n // Polyfill the missing IndexedDB features (no need for the window containing indexedDB itself))\n polyfill(shimIDBCursor, shimIDBCursorWithValue, shimIDBDatabase, shimIDBFactory, shimIDBIndex, shimIDBKeyRange, shimIDBObjectStore, shimIDBRequest, shimIDBTransaction);\n }\n };\n\n IDB.shimIndexedDB.__debug = function (val) {\n CFG.DEBUG = val;\n };\n IDB.shimIndexedDB.__setConfig = setConfig;\n IDB.shimIndexedDB.__getConfig = function (prop) {\n if (!(prop in CFG)) {\n throw new Error(prop + ' is not a valid configuration property');\n }\n return CFG[prop];\n };\n IDB.shimIndexedDB.__setUnicodeIdentifiers = function ({UnicodeIDStart, UnicodeIDContinue}) {\n setConfig({UnicodeIDStart, UnicodeIDContinue});\n };\n }\n\n // Workaround to prevent an error in Firefox\n if (!('indexedDB' in IDB) && typeof window !== 'undefined') { // 2nd condition avoids problems in Node\n IDB.indexedDB = IDB.indexedDB || IDB.webkitIndexedDB || IDB.mozIndexedDB || IDB.oIndexedDB || IDB.msIndexedDB;\n }\n\n // Detect browsers with known IndexedDb issues (e.g. Android pre-4.4)\n let poorIndexedDbSupport = false;\n if (typeof navigator !== 'undefined' && ( // Ignore Node or other environments\n (\n // Bad non-Chrome Android support\n (/Android (?:2|3|4\\.[0-3])/).test(navigator.userAgent) &&\n !navigator.userAgent.includes('Chrome')\n ) ||\n (\n // Bad non-Safari iOS9 support (see )\n (!navigator.userAgent.includes('Safari') || navigator.userAgent.includes('Chrome')) && // Exclude genuine Safari: http://stackoverflow.com/a/7768006/271577\n // Detect iOS: http://stackoverflow.com/questions/9038625/detect-if-device-is-ios/9039885#9039885\n // and detect version 9: http://stackoverflow.com/a/26363560/271577\n (/(iPad|iPhone|iPod).* os 9_/i).test(navigator.userAgent) &&\n !window.MSStream // But avoid IE11\n )\n )) {\n poorIndexedDbSupport = true;\n }\n if (!CFG.DEFAULT_DB_SIZE) {\n CFG.DEFAULT_DB_SIZE = (\n ( // Safari currently requires larger size: (We don't need a larger size for Node as node-websql doesn't use this info)\n // https://github.com/axemclion/IndexedDBShim/issues/41\n // https://github.com/axemclion/IndexedDBShim/issues/115\n typeof navigator !== 'undefined' &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n ) ? 25 : 4) * 1024 * 1024;\n }\n if ((!IDB.indexedDB || poorIndexedDbSupport) && CFG.win.openDatabase !== undefined) {\n IDB.shimIndexedDB.__useShim();\n } else {\n IDB.IDBDatabase = IDB.IDBDatabase || IDB.webkitIDBDatabase;\n IDB.IDBTransaction = IDB.IDBTransaction || IDB.webkitIDBTransaction || {};\n IDB.IDBCursor = IDB.IDBCursor || IDB.webkitIDBCursor;\n IDB.IDBKeyRange = IDB.IDBKeyRange || IDB.webkitIDBKeyRange;\n }\n return IDB;\n}\n\nexport default setGlobalVars;\n","import CFG from './CFG';\nimport expandsOnNFD from 'unicode-9.0.0/Binary_Property/Expands_On_NFD/regex';\n\nfunction escapeNameForSQLiteIdentifier (arg) {\n // http://stackoverflow.com/a/6701665/271577\n return '_' + // Prevent empty string\n arg.replace(/\\^/g, '^^') // Escape our escape\n // http://www.sqlite.org/src/tktview?name=57c971fc74\n .replace(/\\0/g, '^0')\n // We need to avoid identifiers being treated as duplicates based on SQLite's ASCII-only case-insensitive table and column names\n // (For SQL in general, however, see http://stackoverflow.com/a/17215009/271577\n // See also https://www.sqlite.org/faq.html#q18 re: Unicode (non-ASCII) case-insensitive not working\n .replace(/([A-Z])/g, '^$1')\n // http://stackoverflow.com/a/6701665/271577\n .replace(/([\\uD800-\\uDBFF])(?![\\uDC00-\\uDFFF])|(^|[^\\uD800-\\uDBFF])([\\uDC00-\\uDFFF])/g, function (_, unmatchedHighSurrogate, unmatchedLowSurrogate) {\n if (unmatchedHighSurrogate) {\n return '^2' + unmatchedHighSurrogate + '\\uDC00'; // Add a low surrogate for compatibility with `node-sqlite3`: http://bugs.python.org/issue12569 and http://stackoverflow.com/a/6701665/271577\n }\n return '^3\\uD800' + unmatchedLowSurrogate;\n });\n}\n\nfunction escapeSQLiteStatement (arg) {\n return arg.replace(/\\^/g, '^^').replace(/\\0/g, '^0');\n}\nfunction unescapeSQLiteResponse (arg) {\n return arg.replace(/\\^0/g, '\\0').replace(/\\^\\^/g, '^');\n}\n\nfunction sqlEscape (arg) {\n // https://www.sqlite.org/lang_keywords.html\n // http://stackoverflow.com/a/6701665/271577\n // There is no need to escape ', `, or [], as\n // we should always be within double quotes\n // NUL should have already been stripped\n return arg.replace(/\"/g, '\"\"');\n}\n\nfunction sqlQuote (arg) {\n return '\"' + sqlEscape(arg) + '\"';\n}\n\nfunction escapeDatabaseNameForSQLAndFiles (db) {\n if (CFG.escapeDatabaseName) {\n // We at least ensure NUL is escaped by default, but we need to still\n // handle empty string and possibly also length (potentially\n // throwing if too long), escaping casing (including Unicode?),\n // and escaping special characters depending on file system\n return CFG.escapeDatabaseName(escapeSQLiteStatement(db));\n }\n db = 'D' + escapeNameForSQLiteIdentifier(db);\n if (CFG.escapeNFDForDatabaseNames !== false) {\n // ES6 copying of regex with different flags\n db = db.replace(new RegExp(expandsOnNFD, 'g'), function (expandable) {\n return '^4' + expandable.codePointAt().toString(16).padStart(6, '0');\n });\n }\n if (CFG.databaseCharacterEscapeList !== false) {\n db = db.replace(\n (CFG.databaseCharacterEscapeList\n ? new RegExp(CFG.databaseCharacterEscapeList, 'g')\n : /[\\u0000-\\u001F\\u007F\"*/:<>?\\\\|]/g),\n function (n0) {\n return '^1' + n0.charCodeAt().toString(16).padStart(2, '0');\n }\n );\n }\n if (CFG.databaseNameLengthLimit !== false &&\n db.length >= ((CFG.databaseNameLengthLimit || 254) - (CFG.addSQLiteExtension !== false ? 7 /* '.sqlite'.length */ : 0))) {\n throw new Error(\n 'Unexpectedly long database name supplied; length limit required for Node compatibility; passed length: ' +\n db.length + '; length limit setting: ' + (CFG.databaseNameLengthLimit || 254) + '.');\n }\n return db + (CFG.addSQLiteExtension !== false ? '.sqlite' : ''); // Shouldn't have quoting (do we even need NUL/case escaping here?)\n}\n\n// Not in use internally but supplied for convenience\nfunction unescapeDatabaseNameForSQLAndFiles (db) {\n if (CFG.unescapeDatabaseName) {\n // We at least ensure NUL is unescaped by default, but we need to still\n // handle empty string and possibly also length (potentially\n // throwing if too long), unescaping casing (including Unicode?),\n // and unescaping special characters depending on file system\n return CFG.unescapeDatabaseName(unescapeSQLiteResponse(db));\n }\n\n return db.slice(2) // D_\n // CFG.databaseCharacterEscapeList\n .replace(/(\\^+)1([0-9a-f]{2})/g, (_, esc, hex) => esc.length % 2 ? String.fromCharCode(parseInt(hex, 16)) : _)\n // CFG.escapeNFDForDatabaseNames\n .replace(/(\\^+)4([0-9a-f]{6})/g, (_, esc, hex) => esc.length % 2 ? String.fromCodePoint(parseInt(hex, 16)) : _)\n // escapeNameForSQLiteIdentifier\n .replace(/(\\^+)3\\uD800([\\uDC00-\\uDFFF])/g, (_, esc, lowSurr) => esc.length % 2 ? lowSurr : _)\n .replace(/(\\^+)2([\\uD800-\\uDBFF])\\uDC00/g, (_, esc, highSurr) => esc.length % 2 ? highSurr : _)\n .replace(/(\\^+)([A-Z])/g, (_, esc, upperCase) => esc.length % 2 ? upperCase : _)\n .replace(/(\\^+)0/g, (_, esc) => esc.length % 2 ? '\\0' : _)\n .replace(/\\^\\^/g, '^');\n}\n\nfunction escapeStoreNameForSQL (store) {\n return sqlQuote('S' + escapeNameForSQLiteIdentifier(store));\n}\n\nfunction escapeIndexNameForSQL (index) {\n return sqlQuote('I' + escapeNameForSQLiteIdentifier(index));\n}\n\nfunction escapeIndexNameForSQLKeyColumn (index) {\n return 'I' + escapeNameForSQLiteIdentifier(index);\n}\n\nfunction sqlLIKEEscape (str) {\n // https://www.sqlite.org/lang_expr.html#like\n return sqlEscape(str).replace(/\\^/g, '^^');\n}\n\n// Babel doesn't seem to provide a means of using the `instanceof` operator with Symbol.hasInstance (yet?)\nfunction instanceOf (obj, Clss) {\n return Clss[Symbol.hasInstance](obj);\n}\n\nfunction isObj (obj) {\n return obj && typeof obj === 'object';\n}\n\nfunction isDate (obj) {\n return isObj(obj) && typeof obj.getDate === 'function';\n}\n\nfunction isBlob (obj) {\n return isObj(obj) && typeof obj.size === 'number' && typeof obj.slice === 'function' && !('lastModified' in obj);\n}\n\nfunction isRegExp (obj) {\n return isObj(obj) && typeof obj.flags === 'string' && typeof obj.exec === 'function';\n}\n\nfunction isFile (obj) {\n return isObj(obj) && typeof obj.name === 'string' && typeof obj.slice === 'function' && 'lastModified' in obj;\n}\n\nfunction isBinary (obj) {\n return isObj(obj) && typeof obj.byteLength === 'number' && (\n typeof obj.slice === 'function' || // `TypedArray` (view on buffer) or `ArrayBuffer`\n typeof obj.getFloat64 === 'function' // `DataView` (view on buffer)\n );\n}\n\nfunction isIterable (obj) {\n return isObj(obj) && typeof obj[Symbol.iterator] === 'function';\n}\n\nfunction defineReadonlyProperties (obj, props) {\n props = typeof props === 'string' ? [props] : props;\n props.forEach(function (prop) {\n Object.defineProperty(obj, '__' + prop, {\n enumerable: false,\n configurable: false,\n writable: true\n });\n Object.defineProperty(obj, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this['__' + prop];\n }\n });\n });\n}\n\nconst HexDigit = '[0-9a-fA-F]';\n// The commented out line below is technically the grammar, with a SyntaxError\n// to occur if larger than U+10FFFF, but we will prevent the error by\n// establishing the limit in regular expressions\n// const HexDigits = HexDigit + HexDigit + '*';\nconst HexDigits = '0*(?:' + HexDigit + '{1,5}|10' + HexDigit + '{4})*';\nconst UnicodeEscapeSequence = '(?:u' + HexDigit + '{4}|u{' + HexDigits + '})';\n\nfunction isIdentifier (item) {\n // For load-time and run-time performance, we don't provide the complete regular\n // expression for identifiers, but these can be passed in, using the expressions\n // found at https://gist.github.com/brettz9/b4cd6821d990daa023b2e604de371407\n // ID_Start (includes Other_ID_Start)\n const UnicodeIDStart = CFG.UnicodeIDStart || '[$A-Z_a-z]';\n // ID_Continue (includes Other_ID_Continue)\n const UnicodeIDContinue = CFG.UnicodeIDContinue || '[$0-9A-Z_a-z]';\n const IdentifierStart = '(?:' + UnicodeIDStart + '|[$_]|\\\\\\\\' + UnicodeEscapeSequence + ')';\n const IdentifierPart = '(?:' + UnicodeIDContinue + '|[$_]|\\\\\\\\' + UnicodeEscapeSequence + '|\\\\u200C|\\\\u200D)';\n return (new RegExp('^' + IdentifierStart + IdentifierPart + '*$')).test(item);\n}\n\nfunction isValidKeyPathString (keyPathString) {\n return typeof keyPathString === 'string' &&\n (keyPathString === '' || isIdentifier(keyPathString) || keyPathString.split('.').every(isIdentifier));\n}\n\nfunction isValidKeyPath (keyPath) {\n return isValidKeyPathString(keyPath) || (\n Array.isArray(keyPath) && keyPath.length &&\n // Convert array from sparse to dense http://www.2ality.com/2012/06/dense-arrays.html\n Array.apply(null, keyPath).every(function (kpp) {\n // See also https://heycam.github.io/webidl/#idl-DOMString\n return isValidKeyPathString(kpp); // Should already be converted to string by here\n })\n );\n}\n\nfunction enforceRange (number, type) {\n number = Math.floor(Number(number));\n let max, min;\n switch (type) {\n case 'unsigned long long': {\n max = 0x1FFFFFFFFFFFFF; // 2^53 - 1\n min = 0;\n break;\n }\n case 'unsigned long': {\n max = 0xFFFFFFFF; // 2^32 - 1\n min = 0;\n break;\n }\n default:\n throw new Error('Unrecognized type supplied to enforceRange');\n }\n if (isNaN(number) || !isFinite(number) ||\n number > max ||\n number < min) {\n throw new TypeError('Invalid range: ' + number);\n }\n return number;\n}\n\nfunction convertToDOMString (v, treatNullAs) {\n return v === null && treatNullAs ? '' : ToString(v);\n}\n\nfunction ToString (o) { // Todo: See `es-abstract/es7`\n return '' + o; // `String()` will not throw with Symbols\n}\n\nfunction convertToSequenceDOMString (val) {\n // Per , converting to a sequence works with iterables\n if (isIterable(val)) { // We don't want `Array.from` to convert primitives\n // Per , converting to a `DOMString` to be via `ToString`: https://tc39.github.io/ecma262/#sec-tostring\n return Array.from(val).map(ToString);\n }\n return val;\n}\n\nexport {escapeSQLiteStatement, unescapeSQLiteResponse,\n escapeDatabaseNameForSQLAndFiles, unescapeDatabaseNameForSQLAndFiles,\n escapeStoreNameForSQL, escapeIndexNameForSQL, escapeIndexNameForSQLKeyColumn,\n sqlLIKEEscape, sqlQuote,\n instanceOf,\n isObj, isDate, isBlob, isRegExp, isFile, isBinary, isIterable,\n defineReadonlyProperties, isValidKeyPath, enforceRange, convertToDOMString, convertToSequenceDOMString};\n"]} >>>>>>> Update dist ======= {"version":3,"sources":["../node_modules/browser-pack/_prelude.js","../node_modules/babel-polyfill/lib/index.js","../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../node_modules/core-js/fn/regexp/escape.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_a-number-value.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/_an-instance.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_array-copy-within.js","../node_modules/core-js/modules/_array-fill.js","../node_modules/core-js/modules/_array-from-iterable.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_array-reduce.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_bind.js","../node_modules/core-js/modules/_classof.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_collection-strong.js","../node_modules/core-js/modules/_collection-to-json.js","../node_modules/core-js/modules/_collection-weak.js","../node_modules/core-js/modules/_collection.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_create-property.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_date-to-primitive.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_enum-keys.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_fails-is-regexp.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_fix-re-wks.js","../node_modules/core-js/modules/_flags.js","../node_modules/core-js/modules/_for-of.js","../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_html.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_inherit-if-required.js","../node_modules/core-js/modules/_invoke.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_is-array-iter.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_is-integer.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_is-regexp.js","../node_modules/core-js/modules/_iter-call.js","../node_modules/core-js/modules/_iter-create.js","../node_modules/core-js/modules/_iter-define.js","../node_modules/core-js/modules/_iter-detect.js","../node_modules/core-js/modules/_iter-step.js","../node_modules/core-js/modules/_iterators.js","../node_modules/core-js/modules/_keyof.js","../node_modules/core-js/modules/_library.js","../node_modules/core-js/modules/_math-expm1.js","../node_modules/core-js/modules/_math-log1p.js","../node_modules/core-js/modules/_math-sign.js","../node_modules/core-js/modules/_meta.js","../node_modules/core-js/modules/_metadata.js","../node_modules/core-js/modules/_microtask.js","../node_modules/core-js/modules/_object-assign.js","../node_modules/core-js/modules/_object-create.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_object-dps.js","../node_modules/core-js/modules/_object-forced-pam.js","../node_modules/core-js/modules/_object-gopd.js","../node_modules/core-js/modules/_object-gopn-ext.js","../node_modules/core-js/modules/_object-gopn.js","../node_modules/core-js/modules/_object-gops.js","../node_modules/core-js/modules/_object-gpo.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-pie.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/_object-to-array.js","../node_modules/core-js/modules/_own-keys.js","../node_modules/core-js/modules/_parse-float.js","../node_modules/core-js/modules/_parse-int.js","../node_modules/core-js/modules/_partial.js","../node_modules/core-js/modules/_path.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_redefine-all.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_replacer.js","../node_modules/core-js/modules/_same-value.js","../node_modules/core-js/modules/_set-proto.js","../node_modules/core-js/modules/_set-species.js","../node_modules/core-js/modules/_set-to-string-tag.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_species-constructor.js","../node_modules/core-js/modules/_strict-method.js","../node_modules/core-js/modules/_string-at.js","../node_modules/core-js/modules/_string-context.js","../node_modules/core-js/modules/_string-html.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/_string-trim.js","../node_modules/core-js/modules/_string-ws.js","../node_modules/core-js/modules/_task.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_typed-array.js","../node_modules/core-js/modules/_typed-buffer.js","../node_modules/core-js/modules/_typed.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_wks-define.js","../node_modules/core-js/modules/_wks-ext.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/core.get-iterator-method.js","../node_modules/core-js/modules/core.regexp.escape.js","../node_modules/core-js/modules/es6.array.copy-within.js","../node_modules/core-js/modules/es6.array.every.js","../node_modules/core-js/modules/es6.array.fill.js","../node_modules/core-js/modules/es6.array.filter.js","../node_modules/core-js/modules/es6.array.find-index.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/es6.array.for-each.js","../node_modules/core-js/modules/es6.array.from.js","../node_modules/core-js/modules/es6.array.index-of.js","../node_modules/core-js/modules/es6.array.is-array.js","../node_modules/core-js/modules/es6.array.iterator.js","../node_modules/core-js/modules/es6.array.join.js","../node_modules/core-js/modules/es6.array.last-index-of.js","../node_modules/core-js/modules/es6.array.map.js","../node_modules/core-js/modules/es6.array.of.js","../node_modules/core-js/modules/es6.array.reduce-right.js","../node_modules/core-js/modules/es6.array.reduce.js","../node_modules/core-js/modules/es6.array.slice.js","../node_modules/core-js/modules/es6.array.some.js","../node_modules/core-js/modules/es6.array.sort.js","../node_modules/core-js/modules/es6.array.species.js","../node_modules/core-js/modules/es6.date.now.js","../node_modules/core-js/modules/es6.date.to-iso-string.js","../node_modules/core-js/modules/es6.date.to-json.js","../node_modules/core-js/modules/es6.date.to-primitive.js","../node_modules/core-js/modules/es6.date.to-string.js","../node_modules/core-js/modules/es6.function.bind.js","../node_modules/core-js/modules/es6.function.has-instance.js","../node_modules/core-js/modules/es6.function.name.js","../node_modules/core-js/modules/es6.map.js","../node_modules/core-js/modules/es6.math.acosh.js","../node_modules/core-js/modules/es6.math.asinh.js","../node_modules/core-js/modules/es6.math.atanh.js","../node_modules/core-js/modules/es6.math.cbrt.js","../node_modules/core-js/modules/es6.math.clz32.js","../node_modules/core-js/modules/es6.math.cosh.js","../node_modules/core-js/modules/es6.math.expm1.js","../node_modules/core-js/modules/es6.math.fround.js","../node_modules/core-js/modules/es6.math.hypot.js","../node_modules/core-js/modules/es6.math.imul.js","../node_modules/core-js/modules/es6.math.log10.js","../node_modules/core-js/modules/es6.math.log1p.js","../node_modules/core-js/modules/es6.math.log2.js","../node_modules/core-js/modules/es6.math.sign.js","../node_modules/core-js/modules/es6.math.sinh.js","../node_modules/core-js/modules/es6.math.tanh.js","../node_modules/core-js/modules/es6.math.trunc.js","../node_modules/core-js/modules/es6.number.constructor.js","../node_modules/core-js/modules/es6.number.epsilon.js","../node_modules/core-js/modules/es6.number.is-finite.js","../node_modules/core-js/modules/es6.number.is-integer.js","../node_modules/core-js/modules/es6.number.is-nan.js","../node_modules/core-js/modules/es6.number.is-safe-integer.js","../node_modules/core-js/modules/es6.number.max-safe-integer.js","../node_modules/core-js/modules/es6.number.min-safe-integer.js","../node_modules/core-js/modules/es6.number.parse-float.js","../node_modules/core-js/modules/es6.number.parse-int.js","../node_modules/core-js/modules/es6.number.to-fixed.js","../node_modules/core-js/modules/es6.number.to-precision.js","../node_modules/core-js/modules/es6.object.assign.js","../node_modules/core-js/modules/es6.object.create.js","../node_modules/core-js/modules/es6.object.define-properties.js","../node_modules/core-js/modules/es6.object.define-property.js","../node_modules/core-js/modules/es6.object.freeze.js","../node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","../node_modules/core-js/modules/es6.object.get-own-property-names.js","../node_modules/core-js/modules/es6.object.get-prototype-of.js","../node_modules/core-js/modules/es6.object.is-extensible.js","../node_modules/core-js/modules/es6.object.is-frozen.js","../node_modules/core-js/modules/es6.object.is-sealed.js","../node_modules/core-js/modules/es6.object.is.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/es6.object.prevent-extensions.js","../node_modules/core-js/modules/es6.object.seal.js","../node_modules/core-js/modules/es6.object.set-prototype-of.js","../node_modules/core-js/modules/es6.object.to-string.js","../node_modules/core-js/modules/es6.parse-float.js","../node_modules/core-js/modules/es6.parse-int.js","../node_modules/core-js/modules/es6.promise.js","../node_modules/core-js/modules/es6.reflect.apply.js","../node_modules/core-js/modules/es6.reflect.construct.js","../node_modules/core-js/modules/es6.reflect.define-property.js","../node_modules/core-js/modules/es6.reflect.delete-property.js","../node_modules/core-js/modules/es6.reflect.enumerate.js","../node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","../node_modules/core-js/modules/es6.reflect.get-prototype-of.js","../node_modules/core-js/modules/es6.reflect.get.js","../node_modules/core-js/modules/es6.reflect.has.js","../node_modules/core-js/modules/es6.reflect.is-extensible.js","../node_modules/core-js/modules/es6.reflect.own-keys.js","../node_modules/core-js/modules/es6.reflect.prevent-extensions.js","../node_modules/core-js/modules/es6.reflect.set-prototype-of.js","../node_modules/core-js/modules/es6.reflect.set.js","../node_modules/core-js/modules/es6.regexp.constructor.js","../node_modules/core-js/modules/es6.regexp.flags.js","../node_modules/core-js/modules/es6.regexp.match.js","../node_modules/core-js/modules/es6.regexp.replace.js","../node_modules/core-js/modules/es6.regexp.search.js","../node_modules/core-js/modules/es6.regexp.split.js","../node_modules/core-js/modules/es6.regexp.to-string.js","../node_modules/core-js/modules/es6.set.js","../node_modules/core-js/modules/es6.string.anchor.js","../node_modules/core-js/modules/es6.string.big.js","../node_modules/core-js/modules/es6.string.blink.js","../node_modules/core-js/modules/es6.string.bold.js","../node_modules/core-js/modules/es6.string.code-point-at.js","../node_modules/core-js/modules/es6.string.ends-with.js","../node_modules/core-js/modules/es6.string.fixed.js","../node_modules/core-js/modules/es6.string.fontcolor.js","../node_modules/core-js/modules/es6.string.fontsize.js","../node_modules/core-js/modules/es6.string.from-code-point.js","../node_modules/core-js/modules/es6.string.includes.js","../node_modules/core-js/modules/es6.string.italics.js","../node_modules/core-js/modules/es6.string.iterator.js","../node_modules/core-js/modules/es6.string.link.js","../node_modules/core-js/modules/es6.string.raw.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/es6.string.small.js","../node_modules/core-js/modules/es6.string.starts-with.js","../node_modules/core-js/modules/es6.string.strike.js","../node_modules/core-js/modules/es6.string.sub.js","../node_modules/core-js/modules/es6.string.sup.js","../node_modules/core-js/modules/es6.string.trim.js","../node_modules/core-js/modules/es6.symbol.js","../node_modules/core-js/modules/es6.typed.array-buffer.js","../node_modules/core-js/modules/es6.typed.data-view.js","../node_modules/core-js/modules/es6.typed.float32-array.js","../node_modules/core-js/modules/es6.typed.float64-array.js","../node_modules/core-js/modules/es6.typed.int16-array.js","../node_modules/core-js/modules/es6.typed.int32-array.js","../node_modules/core-js/modules/es6.typed.int8-array.js","../node_modules/core-js/modules/es6.typed.uint16-array.js","../node_modules/core-js/modules/es6.typed.uint32-array.js","../node_modules/core-js/modules/es6.typed.uint8-array.js","../node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","../node_modules/core-js/modules/es6.weak-map.js","../node_modules/core-js/modules/es6.weak-set.js","../node_modules/core-js/modules/es7.array.includes.js","../node_modules/core-js/modules/es7.asap.js","../node_modules/core-js/modules/es7.error.is-error.js","../node_modules/core-js/modules/es7.map.to-json.js","../node_modules/core-js/modules/es7.math.iaddh.js","../node_modules/core-js/modules/es7.math.imulh.js","../node_modules/core-js/modules/es7.math.isubh.js","../node_modules/core-js/modules/es7.math.umulh.js","../node_modules/core-js/modules/es7.object.define-getter.js","../node_modules/core-js/modules/es7.object.define-setter.js","../node_modules/core-js/modules/es7.object.entries.js","../node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","../node_modules/core-js/modules/es7.object.lookup-getter.js","../node_modules/core-js/modules/es7.object.lookup-setter.js","../node_modules/core-js/modules/es7.object.values.js","../node_modules/core-js/modules/es7.observable.js","../node_modules/core-js/modules/es7.reflect.define-metadata.js","../node_modules/core-js/modules/es7.reflect.delete-metadata.js","../node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","../node_modules/core-js/modules/es7.reflect.get-metadata.js","../node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","../node_modules/core-js/modules/es7.reflect.get-own-metadata.js","../node_modules/core-js/modules/es7.reflect.has-metadata.js","../node_modules/core-js/modules/es7.reflect.has-own-metadata.js","../node_modules/core-js/modules/es7.reflect.metadata.js","../node_modules/core-js/modules/es7.set.to-json.js","../node_modules/core-js/modules/es7.string.at.js","../node_modules/core-js/modules/es7.string.match-all.js","../node_modules/core-js/modules/es7.string.pad-end.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.trim-left.js","../node_modules/core-js/modules/es7.string.trim-right.js","../node_modules/core-js/modules/es7.symbol.async-iterator.js","../node_modules/core-js/modules/es7.symbol.observable.js","../node_modules/core-js/modules/es7.system.global.js","../node_modules/core-js/modules/web.dom.iterable.js","../node_modules/core-js/modules/web.immediate.js","../node_modules/core-js/modules/web.timers.js","../node_modules/core-js/shim.js","../node_modules/eventtarget/EventTarget.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/sync-promise/dist/sync-promise-commonjs.js","../node_modules/typeson-registry/presets/sparse-undefined.js","../node_modules/typeson-registry/presets/structured-cloning-throwing.js","../node_modules/typeson-registry/presets/structured-cloning.js","../node_modules/typeson-registry/presets/undefined.js","../node_modules/typeson-registry/types/arraybuffer.js","../node_modules/typeson-registry/types/blob.js","../node_modules/typeson-registry/types/dataview.js","../node_modules/typeson-registry/types/date.js","../node_modules/typeson-registry/types/file.js","../node_modules/typeson-registry/types/filelist.js","../node_modules/typeson-registry/types/imagebitmap.js","../node_modules/typeson-registry/types/imagedata.js","../node_modules/typeson-registry/types/intl-types.js","../node_modules/typeson-registry/types/map.js","../node_modules/typeson-registry/types/primitive-objects.js","../node_modules/typeson-registry/types/regexp.js","../node_modules/typeson-registry/types/set.js","../node_modules/typeson-registry/types/special-numbers.js","../node_modules/typeson-registry/types/typed-arrays.js","../node_modules/typeson-registry/types/undefined.js","../node_modules/typeson-registry/types/user-object.js","../node_modules/typeson-registry/utils/array-from-iterator.js","../node_modules/typeson/typeson.js","../node_modules/unicode-9.0.0/Binary_Property/Expands_On_NFD/regex.js","../src/CFG.js","../src/DOMException.js","../src/DOMStringList.js","../src/Event.js","../src/IDBCursor.js","../src/IDBDatabase.js","../src/IDBFactory.js","../src/IDBIndex.js","../src/IDBKeyRange.js","../src/IDBObjectStore.js","../src/IDBRequest.js","../src/IDBTransaction.js","../src/IDBVersionChangeEvent.js","../src/Key.js","../src/Sca.js","../src/UnicodeIdentifiers.js","../src/node-UnicodeIdentifiers.js","../src/nodeWebSQL.js","../src/setGlobalVars.js","../src/util.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","dummyPlaceholder","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","O","key","value","Object","DEFINE_PROPERTY","writable","configurable","_babelPolyfill","String","prototype","padStart","padEnd","split","forEach","Array","Function","bind","chars","lookup","Uint8Array","charCodeAt","encode","arraybuffer","offset","bytes","undefined","byteLength","len","base64","substring","decode","encoded1","encoded2","encoded3","encoded4","bufferLength","p","ArrayBuffer","RegExp","escape","it","TypeError","cof","msg","UNSCOPABLES","ArrayProto","Constructor","name","forbiddenField","isObject","toObject","toIndex","toLength","copyWithin","target","start","to","from","end","arguments","count","Math","min","inc","aLen","index","endPos","forOf","iter","ITERATOR","result","push","toIObject","IS_INCLUDES","$this","el","fromIndex","ctx","IObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","callbackfn","that","val","res","aFunction","memo","isRight","isArray","SPECIES","original","C","constructor","speciesConstructor","invoke","arraySlice","slice","factories","construct","F","args","join","fn","partArgs","bound","concat","TAG","ARG","tryGet","T","B","callee","toString","dP","redefineAll","anInstance","defined","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","SIZE","getEntry","entry","_i","_f","k","getConstructor","wrapper","NAME","ADDER","iterable","_l","clear","data","delete","next","prev","v","has","get","def","setStrong","iterated","kind","_t","_k","classof","getWeak","anObject","createArrayMethod","$has","arrayFind","arrayFindIndex","id","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","store","set","splice","ufstore","$export","redefine","meta","fails","$iterDetect","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","Base","proto","fixMethod","KEY","b","entries","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","NEED","G","W","core","version","__e","$defineProperty","createDesc","object","c","apply","toPrimitive","hint","defineProperty","document","is","createElement","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","hide","type","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","S","IS_PROTO","P","IS_BIND","expProto","U","R","MATCH","re","exec","wks","SYMBOL","fns","strfn","rxfn","string","arg","ignoreCase","multiline","unicode","sticky","isArrayIter","getIterFn","BREAK","RETURN","iterator","iterFn","done","__g","hasOwnProperty","documentElement","setPrototypeOf","un","propertyIsEnumerable","Iterators","floor","isFinite","isRegExp","ret","descriptor","IteratorPrototype","LIBRARY","$iterCreate","getPrototypeOf","BUGGY","keys","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","SAFE_CLOSING","riter","skipClosing","safe","arr","$expm1","expm1","x","log1p","log","sign","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","onFreeze","Map","shared","getOrCreateMetadataMap","targetKey","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","MetadataKey","metadataMap","ordinaryGetOwnMetadata","ordinaryDefineOwnMetadata","MetadataValue","ordinaryOwnMetadataKeys","_","toMetaKey","map","macrotask","Observer","MutationObserver","WebKitMutationObserver","process","Promise","isNode","head","last","notify","flush","parent","domain","exit","enter","nextTick","toggle","node","createTextNode","observe","characterData","resolve","promise","then","task","$assign","assign","A","Symbol","K","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","Attributes","defineProperties","random","__defineSetter__","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getOwnPropertyNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","isEntries","Reflect","ownKeys","$parseFloat","parseFloat","$trim","trim","Infinity","str","charAt","$parseInt","parseInt","ws","hex","radix","test","path","pargs","holder","bitmap","enumerable","SRC","$toString","TPL","inspectSource","isFunction","regExp","replace","replacer","part","y","check","buggy","__proto__","tag","stat","uid","D","method","toInteger","TO_STRING","pos","searchString","createHTML","attribute","p1","toLowerCase","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","ceil","RangeError","spaces","space","non","ltrim","rtrim","exporter","ALIAS","FORCE","defer","channel","port","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","run","listener","event","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","max","isNaN","valueOf","$typed","$buffer","propertyDesc","same","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","$DP","$GOPD","$ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","strictToLength","SAME","number","toOffset","BYTES","validate","speciesFromList","list","fromList","addGetter","internal","_d","$from","mapfn","mapping","$of","TO_LOCALE_BUG","$toLocaleString","every","fill","filter","find","predicate","findIndex","indexOf","searchElement","includes","separator","reverse","middle","some","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","CLAMPED","ISNT_UINT8","GETTER","SETTER","TypedArray","TAC","ABV","TypedArrayPrototype","getter","setter","round","addElement","$offset","$length","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","BaseBuffer","abs","pow","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","m","eLen","eMax","eBias","rt","unpackIEEE754","nBits","NaN","unpackI32","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","numIndex","intIndex","_b","pack","conversion","validateArrayBufferArguments","numberLength","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Typed","TypedArrayConstructors","px","wksExt","$Symbol","USE_SYMBOL","getIteratorMethod","$re","$every","$filter","$find","forced","$forEach","STRICT","createProperty","$indexOf","NEGATIVE_ZERO","addToUnscopables","Arguments","$reduce","upTo","size","cloned","$some","$sort","now","Date","getTime","lz","num","toISOString","d","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toJSON","pv","TO_PRIMITIVE","DateProto","HAS_INSTANCE","FunctionProto","FProto","match","strong","sqrt","$acosh","acosh","Number","MAX_VALUE","asinh","$asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","EPSILON","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","hypot","value1","value2","div","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LN10","log2","sinh","E","tanh","trunc","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","digits","_isFinite","isInteger","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","aNumberValue","$toFixed","toFixed","ERROR","multiply","c2","divide","numToString","acc","x2","fractionDigits","z","$fails","$toPrecision","toPrecision","precision","$freeze","$getOwnPropertyDescriptor","$getPrototypeOf","$isExtensible","$isFrozen","$isSealed","$preventExtensions","$seal","Internal","GenericPromiseCapability","Wrapper","microtask","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","sameConstructor","isThenable","newPromiseCapability","PromiseCapability","reject","$$resolve","$$reject","perform","error","isReject","_n","chain","_c","_v","ok","_s","reaction","handler","fail","_h","onHandleUnhandled","onUnhandled","abrupt","console","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","err","onFulfilled","onRejected","catch","capability","all","remaining","$index","alreadyCalled","race","rApply","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","Enumerate","enumerate","getProto","receiver","setProto","V","existingDescriptor","ownDesc","$flags","$RegExp","re2","CORRECT_NEW","tiRE","piRE","fiU","flags","$match","regexp","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","LENGTH","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","add","$at","codePointAt","context","$endsWith","endsWith","endPosition","search","color","fromCharCode","$fromCodePoint","fromCodePoint","point","url","raw","callSite","tpl","$startsWith","startsWith","wksDefine","keyOf","enumKeys","_create","gOPNExt","$JSON","JSON","_stringify","stringify","HIDDEN","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","for","keyFor","useSetter","useSimple","$replacer","$isView","isView","final","viewS","viewT","init","InternalMap","each","weak","tmp","$WeakMap","freeze","$includes","asap","isError","iaddh","x0","x1","y0","y1","$x0","$x1","$y0","imulh","$u","$v","u0","v0","u1","v1","isubh","umulh","__defineGetter__","getOwnPropertyDescriptors","getDesc","__lookupGetter__","__lookupSetter__","$values","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","complete","$Observable","subscribe","observable","items","Observable","metadata","defineMetadata","metadataKey","metadataValue","deleteMetadata","Set","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","ordinaryGetMetadata","getMetadata","getOwnMetadataKeys","getOwnMetadata","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","at","getFlags","RegExpProto","$RegExpStringIterator","_r","matchAll","rx","$pad","TO_STRING_TAG","ArrayValues","collections","Collection","$task","partial","navigator","MSIE","userAgent","time","setInterval","copyEvent","ev","ShimCustomEvent","bubbles","cancelable","detail","ShimEvent","getListenersOptions","listeners","options","listenersByType","capture","stringifiedOptions","listenersByTypeOptions","obj","EventTarget","ShimDOMException","phases","NONE","CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","DOMException","WeakMap","evCfg","toStringTag","evInit","_ev","_evCfg","composed","initEvent","prop","props","preventDefault","_passive","defaultPrevented","stopImmediatePropagation","_stopImmediatePropagation","stopPropagation","_stopPropagation","_dispatched","initCustomEvent","addListener","listenerOptions","removeListener","hasListener","listenerType","handleEvent","arrStr","__setOptions","customOptions","_defaultSync","defaultSync","_extraProperties","extraProperties","legacyOutputDidListenersThrowFlag","_legacyOutputDidListenersThrowCheck","dispatchEvent","_dispatchEvent","setTarget","finishEventDispatch","eventPhase","currentTarget","_children","invokeDefaults","eventCopy","invokeCurrentListeners","_defaultListeners","continueEventDispatch","me","_lateListeners","_earlyListeners","__getParent","par","root","_listeners","child","pop","checkOnListeners","listOpts","dummyIPos","listenerObj","onListener","tryCatch","once","passive","removeEventListener","cb","triggerErrorEvent","triggerGlobalErrorEvent","useNodeImpl","ErrorEvent","errEv","message","filename","fileName","lineno","lineNumber","colno","columnNumber","__legacyOutputDidListenersThrowError","ShimEventTarget","EventTargetFactory","createInstance","exportObj","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","AsyncIterator","record","hasOwn","__await","unwrapped","enqueue","callInvokeWithMethodAndArg","previousPromise","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","GenStateSuspendedYield","return","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","iteratorSymbol","Op","toStringTagSymbol","inModule","runtime","regeneratorRuntime","NativeIteratorPrototype","Gp","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","isPromise","addReject","prom","SyncPromise","transist","FULFILLED","REJECTED","PENDING","prot","errBack","settle","rej","promises","newPromises","resolved","sparseArrays","testPlainObjects","stateObj","iterateUnsetNumeric","sparseUndefined","revive","checkDataCloneException","stringTag","isClosed","nodeType","insertBefore","Intl","Typeson","B64","b64","Blob","req","XMLHttpRequest","URL","createObjectURL","status","send","stringContents","responseText","replaceAsync","reader","FileReader","readAsText","dw","date","File","lastModified","FileList","fl","item","_files","ImageBitmap","bm","canvas","getContext","drawImage","toDataURL","img","onload","reviveAsync","createImageBitmap","ImageData","array","width","height","Uint8ClampedArray","hasConstructorOf","Collator","resolvedOptions","locale","DateTimeFormat","dtf","NumberFormat","nf","makeArray","StringObject","BooleanObject","Boolean","NumberObject","rexp","SpecialNumber","-Infinity","_global","typeName","Undefined","userObjects","isUserObject","catchCheck","Ctor","fnToString","isPlainObject","plainObjectReplacers","nonplainObjectReplacers","revivers","regTypes","types","opts","stringification","encapsulated","encapsulate","stringifySync","throwOnBadSyncType","sync","stringifyAsync","parse","text","reviver","parseSync","parseAsync","$types","$","checkPromises","promisesData","pd","promResults","promResult","newPromisesData","prData","keyPath","cyclic","parentObj","encaps","_encapsulate","isTypesonPromise","TypesonPromise","encaps2","keypath","$typeof","boolean","iterateIn","refIndex","refObjs","refKeys","isPlainObj","isArr","replaced","clone","ownKeysObj","kp","vl","plainObject","replacers","existing","replaceMethod","promisesDataRoot","encapsulateSync","encapsulateAsync","_revive","ignore$Types","keyPathResolutions","kpr","getByKeyPath","substr","reviveSync","register","typeSpecSets","typeSpec","typeId","spec","existingReplacer","Class","replacerObj","fallback","reviverObj","period","innerObj","typesonResolve","typesonReject","meth","promArr","CFG","validator","createNativeDOMException","createNonNativeDOMException","ShimNonNativeDOMException","logError","_CFG2","default","DEBUG","trace","isErrorOrDOMErrorOrDOMException","_typeof","findError","webSQLErrback","webSQLErr","createDOMException","sqlError","_CFG","codes","IndexSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","EncodingError","NotReadableError","UnknownError","ConstraintError","DataError","TransactionInactiveError","ReadOnlyError","VersionError","OperationError","NotAllowedError","legacyCodes","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","VALIDATION_ERR","TYPE_MISMATCH_ERR","SECURITY_ERR","NETWORK_ERR","ABORT_ERR","URL_MISMATCH_ERR","QUOTA_EXCEEDED_ERR","TIMEOUT_ERR","INVALID_NODE_TYPE_ERR","DATA_CLONE_ERR","_code","_name","_message","DummyDOMException","codeName","useNativeDOMException","cleanInterface","testObject","DOMStringList","_DOMStringList$protot","contains","_items","stringList","__createInstance","_length","addIndexes","sortList","thisArg","_defineProperty","_callee","_context","hasInstance","DOMStringListAlias","nonenumerableReadonly","nonenumerableWritable","createEvent","debug","_eventtarget","_util","util","isObj","IDBCursor","_IDBRequest","_IDBObjectStore","_DOMException","_IDBKeyRange","_IDBFactory","_IDBTransaction","_Key","Key","_Sca","Sca","_IDBIndex","IDBCursorAlias","__super","query","direction","keyColumnName","valueColumnName","defineReadonlyProperties","_IDBObjectStore2","__invalidStateIfDeleted","__indexSource","instanceOf","_IDBIndex2","_IDBTransaction2","__assertActive","transaction","range","convertValueToKeyRange","__key","__primaryKey","__store","__range","__req","IDBRequest","__source","__transaction","__keyColumnName","__valueColumnName","__keyOnly","__valueDecoder","__count","__prefetchedIndex","__multiEntryIndex","multiEntry","__unique","__sqlDirection","__lowerCached","lower","__upperCached","upper","__gotValue","_len","_key","__find","__findMultiEntry","__findBasic","primaryKey","tx","success","recordsToLoad","continueCall","quotedKeyColumnName","sqlQuote","quotedKey","sql","escapeStoreNameForSQL","__currentName","sqlValues","setSQLForKeyRange","op","executeSql","rows","__prefetchedData","__decode","sqlLIKEEscape","ct","rowItem","rowKey","findMultiEntryMatches","_rowItem","_rowKey","_matches","matchingKey","__onsuccess","__value","callback","__matchedKeys","encKey","unescapeSQLiteResponse","encVal","encPrimaryKey","__sourceOrEffectiveObjStoreDeleted","__invalidateCache","__continue","advanceContinue","advanceState","__advanceCount","convertValueToKeyRethrowingAndIfInvalid","cmpResult","cmp","__continueFinish","recordsToPreloadOnContinue","cursorPreloadPackSize","__readyState","__pushToQueue","cursorContinue","executeNextRequest","triggerSuccess","primKey","continuePrimaryKey","noErrors","encObjectStorePos","advance","enforceRange","update","valueToUpdate","addToQueue","clonedValue","__storingRecordObjectStore","request","__assertWritable","__createRequest","_me$__store$__validat","__validateKeyAndValueAndCloneValue","_me$__store$__validat2","_slicedToArray","evaluatedKey","__addToTransactionQueue","escapeSQLiteStatement","rowsAffected","__cursors","cursor","IDBCursorWithValue","IDBCursorWithValueAlias","_IDBCursor$__super","_len2","_key2","IDBDatabase","_Event","_DOMStringList","readonlyProperties","IDBDatabaseAlias","db","oldVersion","storeProperties","_this","__db","__closed","__oldVersion","__version","__name","__transactions","__objectStores","__objectStoreNames","_DOMStringList2","itemCopy","idbdb","objectStoreNames","__oldObjectStoreNames","createObjectStore","storeName","createOptions","__assertVersionChange","__versionTransaction","__assertNotFinishedObjectStoreMethod","convertToSequenceDOMString","isValidKeyPath","__pendingDelete","autoIncrement","autoInc","indexList","__createObjectStore","deleteObjectStore","__deleteObjectStore","__unblocking","storeNames","_this2","mode","isIterable","_toConsumableArray","__assertNotVersionChange","trans","__forceClose","on__abort","evt","__abortTransaction","processNextInConnectionQueue","removeFromQueue","queueItems","shift","origin","getOrigin","connectionQueue","_queueItems$","addRequestToConnectionQueue","triggerAnyVersionChangeAndBlockedEvents","openConnections","newVersion","connectionIsClosed","connection","connectionsClosed","_IDBVersionChangeEvent2","_syncPromise2","unblocking","getLatestCachedWebSQLVersion","websqlDBCache","curr","getLatestCachedWebSQLDB","cleanupDatabaseResources","__openDatabase","escapedDatabaseName","databaseDeleted","dbError","memoryDatabase","latestSQLiteDBCached","warn","_sqliteDB","_db","deleteDatabaseFiles","unlink","_path2","databaseBasePath","DEFAULT_DB_SIZE","tables","deleteTables","createSysDB","failure","sysDbCreateError","sysdb","sysDatabaseBasePath","addSQLiteExtension","systx","IDBFactory","second","encodedKey1","encodedKey2","decodedKey1","decodedKey2","_IDBVersionChangeEvent","_IDBDatabase","_syncPromise","_path","location","hasNullOrigin","checkOrigin","nameCounter","IDBFactoryAlias","modules","Event","ShimDOMStringList","utils","__connections","dbCreateError","calledDbCreateError","__error","__result","openDB","useMemoryDatabase","useDatabaseCache","finishRequest","_IDBDatabase2","sysdbFinishedCb","er","reportError","sqlSafeName","versionSet","__addNonRequestToTransactionQueue","finished","on__beforecomplete","__transFinishedCb","on__preabort","on__complete","currentTask","rollback","commit","readOnly","IDBOpenDBRequest","autoName","cacheDatabaseInstances","escapeDatabaseNameForSQLAndFiles","latestCachedVersion","readTransaction","sysReadTx","deleteDatabase","calledDBError","sysdbFinishedCbDelete","completeDatabaseDelete","key1","key2","webkitGetDatabaseNames","dbGetDatabaseNamesError","dbNames","dbName","connIdx","forceClose","conn","__setConnectionQueueOrigin","shimIndexedDB","IDBIndex","executeFetchIndexData","unboundedDisallowed","hasKey","opType","multiChecks","isCount","records","recordCount","escapedIndexNameForKeyCol","escapeIndexNameForSQLKeyColumn","encodedKey","_ret","row","isMultiEntryMatch","_record","buildFetchIndexDataSQL","nullDisallowed","hasRange","col","escapeIndexNameForSQL","objectStore","innerKey","convertedRange","_IDBCursor","IDBIndexAlias","indexProperties","__objectStore","__originalName","columnName","__keyPath","optionalParams","__multiEntry","unique","__deleted","cursors","__pendingName","newName","convertToDOMString","oldName","__indexes","indexNames","storeHandle","__storeHandles","oldIndexHandle","__indexHandles","colInfoToPreserveArr","indexName","__renameIndex","__updateIndexList","__pendingCreate","__errored","__clone","idx","__createIndex","indexHandle","applyIndex","addIndexEntry","indexKey","extractKeyValueDecodedFromValueUsingKeyPath","invalid","indexValues","__recreated","columnExists","__deleteIndex","deleted","__fetchIndexData","fetchArgs","openCursor","_arguments","openKeyCursor","_arguments2","getKey","getAll","_arguments3","getAllKeys","_arguments4","IDBKeyRange","escapedStoreNameSQL","escapedTmpStoreNameSQL","colNamesToPreserve","colInfo","colInfoToPreserve","listColInfoToPreserve","listColsToPreserve","addAnd","checkCached","encodedLowerKey","encodedUpperKey","hasLower","hasUpper","lowerOpen","upperOpen","only","IDBKeyRangeAlias","lowerConverted","upperConverted","roundTrip","__lower","__upper","__lowerOpen","__upperOpen","isKeyInRange","lowerBound","upperBound","IDBObjectStore","IDBObjectStoreAlias","__idbdb","__autoIncrement","__indexNames","__oldIndexNames","oldStore","oldHandle","newStore","storeHandles","encodedKeyPath","cursorUpdate","_clonedValue","checkKeyCouldBeInjectedIntoValue","__deriveKey","failCb","keyCloneThenSuccess","generateKeyForStore","injectKeyIntoValueUsingKeyPath","possiblyUpdateKeyGenerator","__insertData","encoded","clonedKeyOrCurrentNumber","paramMap","indexPromises","setIndexInfo","multiCheck","sqlStart","sqlEnd","insertSqlValues","insertSql","_me$__validateKeyAndV","_me$__validateKeyAndV2","ky","put","_me$__validateKeyAndV3","_me$__validateKeyAndV4","__overwrite","noOverwrite","insert","__get","sqlArr","__assertNotFinished","createIndex","optionalParameters","deleteIndex","doneFlagGetters","_classCallCheck","openListeners","IDBOpenDBRequestAlias","_this3","IDBTransaction","uniqueID","IDBTransactionAlias","__id","__active","__running","__requests","__mode","readonlyProp","__executeRequests","requestsFinished","__completed","__internal","__requestsFinished","__transactionFinished","__transactionEndCallback","q","addLateEventListener","addDefaultEventListener","__tx","objectStoreName","abort","errOrResult","reqEvt","__abortFinished","IDBVersionChangeEvent","__eventInitDict","padBase32Exponent","padBase32Mantissa","zeros","flipBase32","flipped","pow32","mantissa","exponent","roundToPrecision","whole","fraction","expansion","negate","getKeyType","isDate","isBinary","keyType","convertValueToKey","input","seen","convertValueToKeyValueDecoded","convertValueToMultiEntryKey","getCopyBytesHeldByBufferSource","fullKeys","_type","convertValueToMultiEntryKeyDecoded","extractKeyFromValueUsingKeyPath","evaluateKeyPathOnValue","evaluateKeyPathOnValueToDecodedValue","idntfr","isBlob","isFile","identifiers","identifier","lowerMatch","upperMatch","_encode","encodedEntry","collations","keyEntry","matches","nested","convertKeyToValue","inArray","_decode","getCurrentNumber","sqlFailCb","currNum","setCurrentNumber","successCb","MAX_ALLOWED_CURRENT_NUMBER","cn","signValues","key32","decimalIndex","significantDigitIndex","encodedItem","decoded","decodedItem","binary","typeson","_typeson2","ReferenceError","_typeson","_structuredCloningThrowing","_structuredCloningThrowing2","UnicodeIDStart","UnicodeIDContinue","_setGlobalVars","_nodeWebSQL","_UnicodeIdentifiers","UnicodeIdentifiers","win","openDatabase","_nodeWebSQL2","__setGlobalVars","idb","initialConfig","_setGlobalVars2","__setUnicodeIdentifiers","wrappedSQLiteDatabase","_SQLiteDatabase2","sqlBusyTimeout","configure","sqlTrace","sqlProfile","_custom","_SQLiteDatabase","nodeWebSQL","_custom2","setConfig","setGlobalVars","shim","propDesc","IDB","__useShim","setNonIDBGlobals","prefix","indexedDB","shimIDBFactory","fullIDLSupport","_IDBKeyRange2","_ref","_ref2","addNonIDBGlobals","replaceNonIDBGlobals","__debug","__setConfig","__getConfig","_ref3","webkitIndexedDB","mozIndexedDB","oIndexedDB","msIndexedDB","poorIndexedDbSupport","MSStream","webkitIDBDatabase","webkitIDBTransaction","webkitIDBCursor","webkitIDBKeyRange","escapeNameForSQLiteIdentifier","unmatchedHighSurrogate","unmatchedLowSurrogate","sqlEscape","escapeDatabaseName","escapeNFDForDatabaseNames","_regex2","expandable","databaseCharacterEscapeList","n0","databaseNameLengthLimit","unescapeDatabaseNameForSQLAndFiles","unescapeDatabaseName","esc","lowSurr","highSurr","upperCase","Clss","getDate","isIdentifier","IdentifierStart","UnicodeEscapeSequence","IdentifierPart","isValidKeyPathString","keyPathString","kpp","treatNullAs","ToString","_regex"],"mappings":"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","file":"indexeddbshim-UnicodeIdentifiers-node.min.js","sourceRoot":"http://nparashuram.com/IndexedDBShim/dist/","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(i+3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})();\n","require('../../modules/core.regexp.escape');\nmodule.exports = require('../../modules/_core').RegExp.escape;","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","var cof = require('./_cof');\nmodule.exports = function(it, msg){\n if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);\n return +it;\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","module.exports = function(it, Constructor, name, forbiddenField){\n if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object')\n , toIndex = require('./_to-index')\n , toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){\n var O = toObject(this)\n , len = toLength(O.length)\n , to = toIndex(target, len)\n , from = toIndex(start, len)\n , end = arguments.length > 2 ? arguments[2] : undefined\n , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)\n , inc = 1;\n if(from < to && to < from + count){\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while(count-- > 0){\n if(from in O)O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object')\n , toIndex = require('./_to-index')\n , toLength = require('./_to-length');\nmodule.exports = function fill(value /*, start = 0, end = @length */){\n var O = toObject(this)\n , length = toLength(O.length)\n , aLen = arguments.length\n , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)\n , end = aLen > 2 ? arguments[2] : undefined\n , endPos = end === undefined ? length : toIndex(end, length);\n while(endPos > index)O[index++] = value;\n return O;\n};","var forOf = require('./_for-of');\n\nmodule.exports = function(iter, ITERATOR){\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","var aFunction = require('./_a-function')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , toLength = require('./_to-length');\n\nmodule.exports = function(that, callbackfn, aLen, memo, isRight){\n aFunction(callbackfn);\n var O = toObject(that)\n , self = IObject(O)\n , length = toLength(O.length)\n , index = isRight ? length - 1 : 0\n , i = isRight ? -1 : 1;\n if(aLen < 2)for(;;){\n if(index in self){\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if(isRight ? index < 0 : length <= index){\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for(;isRight ? index >= 0 : length > index; index += i)if(index in self){\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","'use strict';\nvar aFunction = require('./_a-function')\n , isObject = require('./_is-object')\n , invoke = require('./_invoke')\n , arraySlice = [].slice\n , factories = {};\n\nvar construct = function(F, len, args){\n if(!(len in factories)){\n for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /*, args... */){\n var fn = aFunction(this)\n , partArgs = arraySlice.call(arguments, 1);\n var bound = function(/* args... */){\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if(isObject(fn.prototype))bound.prototype = fn.prototype;\n return bound;\n};","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(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(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","'use strict';\nvar dP = require('./_object-dp').f\n , create = require('./_object-create')\n , redefineAll = require('./_redefine-all')\n , ctx = require('./_ctx')\n , anInstance = require('./_an-instance')\n , defined = require('./_defined')\n , forOf = require('./_for-of')\n , $iterDefine = require('./_iter-define')\n , step = require('./_iter-step')\n , setSpecies = require('./_set-species')\n , DESCRIPTORS = require('./_descriptors')\n , fastKey = require('./_meta').fastKey\n , SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n anInstance(that, C, NAME, '_i');\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n anInstance(this, C, 'forEach');\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)dP(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof')\n , from = require('./_array-from-iterable');\nmodule.exports = function(NAME){\n return function toJSON(){\n if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};","'use strict';\nvar redefineAll = require('./_redefine-all')\n , getWeak = require('./_meta').getWeak\n , anObject = require('./_an-object')\n , isObject = require('./_is-object')\n , anInstance = require('./_an-instance')\n , forOf = require('./_for-of')\n , createArrayMethod = require('./_array-methods')\n , $has = require('./_has')\n , arrayFind = createArrayMethod(5)\n , arrayFindIndex = createArrayMethod(6)\n , id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function(that){\n return that._l || (that._l = new UncaughtFrozenStore);\n};\nvar UncaughtFrozenStore = function(){\n this.a = [];\n};\nvar findUncaughtFrozen = function(store, key){\n return arrayFind(store.a, function(it){\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function(key){\n var entry = findUncaughtFrozen(this, key);\n if(entry)return entry[1];\n },\n has: function(key){\n return !!findUncaughtFrozen(this, key);\n },\n set: function(key, value){\n var entry = findUncaughtFrozen(this, key);\n if(entry)entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function(key){\n var index = arrayFindIndex(this.a, function(it){\n return it[0] === key;\n });\n if(~index)this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n anInstance(that, C, NAME, '_i');\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function(key){\n if(!isObject(key))return false;\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this)['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key){\n if(!isObject(key))return false;\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var data = getWeak(anObject(key), true);\n if(data === true)uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};","'use strict';\nvar global = require('./_global')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , redefineAll = require('./_redefine-all')\n , meta = require('./_meta')\n , forOf = require('./_for-of')\n , anInstance = require('./_an-instance')\n , isObject = require('./_is-object')\n , fails = require('./_fails')\n , $iterDetect = require('./_iter-detect')\n , setToStringTag = require('./_set-to-string-tag')\n , inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n var fixMethod = function(KEY){\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function(a){\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a){\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a){\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if(typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C\n // early implementations not supports chaining\n , HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n , THROWS_ON_PRIMITIVES = fails(function(){ instance.has(1); })\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n , ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n , BUGGY_ZERO = !IS_WEAK && fails(function(){\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C()\n , index = 5;\n while(index--)$instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if(!ACCEPT_ITERABLES){ \n C = wrapper(function(target, iterable){\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base, target, C);\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if(BUGGY_ZERO || HASNT_CHAINING)fixMethod(ADDER);\n // weak collections should not contains .clear method\n if(IS_WEAK && proto.clear)delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","'use strict';\nvar anObject = require('./_an-object')\n , toPrimitive = require('./_to-primitive')\n , NUMBER = 'number';\n\nmodule.exports = function(hint){\n if(hint !== 'string' && hint !== NUMBER && hint !== 'default')throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var MATCH = require('./_wks')('match');\nmodule.exports = function(KEY){\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch(e){\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch(f){ /* empty */ }\n } return true;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","'use strict';\nvar hide = require('./_hide')\n , redefine = require('./_redefine')\n , fails = require('./_fails')\n , defined = require('./_defined')\n , wks = require('./_wks');\n\nmodule.exports = function(KEY, length, exec){\n var SYMBOL = wks(KEY)\n , fns = exec(defined, SYMBOL, ''[KEY])\n , strfn = fns[0]\n , rxfn = fns[1];\n if(fails(function(){\n var O = {};\n O[SYMBOL] = function(){ return 7; };\n return ''[KEY](O) != 7;\n })){\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function(string, arg){ return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function(string){ return rxfn.call(string, this); }\n );\n }\n};","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function(){\n var that = anObject(this)\n , result = '';\n if(that.global) result += 'g';\n if(that.ignoreCase) result += 'i';\n if(that.multiline) result += 'm';\n if(that.unicode) result += 'u';\n if(that.sticky) result += 'y';\n return result;\n};","var ctx = require('./_ctx')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , anObject = require('./_an-object')\n , toLength = require('./_to-length')\n , getIterFn = require('./core.get-iterator-method')\n , BREAK = {}\n , RETURN = {};\nvar exports = module.exports = function(iterable, entries, fn, that, ITERATOR){\n var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator, result;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if(result === BREAK || result === RETURN)return result;\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n result = call(iterator, f, step.value, entries);\n if(result === BREAK || result === RETURN)return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","module.exports = require('./_global').document && document.documentElement;","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function(that, target, C){\n var P, S = target.constructor;\n if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){\n setPrototypeOf(that, P);\n } return that;\n};","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function(fn, args, that){\n var un = that === undefined;\n switch(args.length){\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object')\n , floor = Math.floor;\nmodule.exports = function isInteger(it){\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object')\n , cof = require('./_cof')\n , MATCH = require('./_wks')('match');\nmodule.exports = function(it){\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};","'use strict';\nvar LIBRARY = require('./_library')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , hide = require('./_hide')\n , has = require('./_has')\n , Iterators = require('./_iterators')\n , $iterCreate = require('./_iter-create')\n , setToStringTag = require('./_set-to-string-tag')\n , getPrototypeOf = require('./_object-gpo')\n , ITERATOR = require('./_wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n , methods, key, IteratorPrototype;\n // Fix native\n if($anyNative){\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n if(IteratorPrototype !== Object.prototype){\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};","module.exports = function(done, value){\n return {value: value, done: !!done};\n};","module.exports = {};","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};","module.exports = false;","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x){\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x){\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x){\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\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 setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\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 setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};","var Map = require('./es6.map')\n , $export = require('./_export')\n , shared = require('./_shared')('metadata')\n , store = shared.store || (shared.store = new (require('./es6.weak-map')));\n\nvar getOrCreateMetadataMap = function(target, targetKey, create){\n var targetMetadata = store.get(target);\n if(!targetMetadata){\n if(!create)return undefined;\n store.set(target, targetMetadata = new Map);\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if(!keyMetadata){\n if(!create)return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map);\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function(MetadataKey, O, P){\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function(MetadataKey, O, P){\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function(target, targetKey){\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false)\n , keys = [];\n if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });\n return keys;\n};\nvar toMetaKey = function(it){\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function(O){\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};","var global = require('./_global')\n , macrotask = require('./_task').set\n , Observer = global.MutationObserver || global.WebKitMutationObserver\n , process = global.process\n , Promise = global.Promise\n , isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function(){\n var head, last, notify;\n\n var flush = function(){\n var parent, fn;\n if(isNode && (parent = process.domain))parent.exit();\n while(head){\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch(e){\n if(head)notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if(parent)parent.enter();\n };\n\n // Node.js\n if(isNode){\n notify = function(){\n process.nextTick(flush);\n };\n // browsers with MutationObserver\n } else if(Observer){\n var toggle = true\n , node = document.createTextNode('');\n new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new\n notify = function(){\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if(Promise && Promise.resolve){\n var promise = Promise.resolve();\n notify = function(){\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function(){\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function(fn){\n var task = {fn: fn, next: undefined};\n if(last)last.next = task;\n if(!head){\n head = task;\n notify();\n } last = task;\n };\n};","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object')\n , dPs = require('./_object-dps')\n , enumBugKeys = require('./_enum-bug-keys')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , Empty = function(){ /* empty */ }\n , PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe')\n , i = enumBugKeys.length\n , lt = '<'\n , gt = '>'\n , iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n var result;\n if(O !== null){\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty;\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* 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};","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};","// Forced replacement prototype accessors methods\nmodule.exports = require('./_library')|| !require('./_fails')(function(){\n var K = Math.random();\n // In FF throws only define methods\n __defineSetter__.call(null, K, function(){ /* empty */});\n delete require('./_global')[K];\n});","var pIE = require('./_object-pie')\n , createDesc = require('./_property-desc')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){\n O = toIObject(O);\n P = toPrimitive(P, true);\n if(IE8_DOM_DEFINE)try {\n return gOPD(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n};","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal')\n , hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){\n return $keys(O, hiddenKeys);\n};","exports.f = Object.getOwnPropertySymbols;","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","exports.f = {}.propertyIsEnumerable;","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject')\n , isEnum = require('./_object-pie').f;\nmodule.exports = function(isEntries){\n return function(it){\n var O = toIObject(it)\n , keys = getKeys(O)\n , length = keys.length\n , i = 0\n , result = []\n , key;\n while(length > i)if(isEnum.call(O, key = keys[i++])){\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn')\n , gOPS = require('./_object-gops')\n , anObject = require('./_an-object')\n , Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it){\n var keys = gOPN.f(anObject(it))\n , getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};","var $parseFloat = require('./_global').parseFloat\n , $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str){\n var string = $trim(String(str), 3)\n , result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;","var $parseInt = require('./_global').parseInt\n , $trim = require('./_string-trim').trim\n , ws = require('./_string-ws')\n , hex = /^[\\-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;","'use strict';\nvar path = require('./_path')\n , invoke = require('./_invoke')\n , aFunction = require('./_a-function');\nmodule.exports = function(/* ...pargs */){\n var fn = aFunction(this)\n , length = arguments.length\n , pargs = Array(length)\n , i = 0\n , _ = path._\n , holder = false;\n while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;\n return function(/* ...args */){\n var that = this\n , aLen = arguments.length\n , j = 0, k = 0, args;\n if(!holder && !aLen)return invoke(fn, pargs, that);\n args = pargs.slice();\n if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];\n while(aLen > k)args.push(arguments[k++]);\n return invoke(fn, args, that);\n };\n};","module.exports = require('./_global');","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var redefine = require('./_redefine');\nmodule.exports = function(target, src, safe){\n for(var key in src)redefine(target, key, src[key], safe);\n return target;\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(regExp, replace){\n var replacer = replace === Object(replace) ? function(part){\n return replace[part];\n } : replace;\n return function(it){\n return String(it).replace(regExp, replacer);\n };\n};","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y){\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};","'use strict';\nvar global = require('./_global')\n , dP = require('./_object-dp')\n , DESCRIPTORS = require('./_descriptors')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(KEY){\n var C = global[KEY];\n if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {\n configurable: true,\n get: function(){ return this; }\n });\n};","var def = require('./_object-dp').f\n , has = require('./_has')\n , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object')\n , aFunction = require('./_a-function')\n , SPECIES = require('./_wks')('species');\nmodule.exports = function(O, D){\n var C = anObject(O).constructor, S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};","var fails = require('./_fails');\n\nmodule.exports = function(method, arg){\n return !!method && fails(function(){\n arg ? method.call(null, function(){}, 1) : method.call(null);\n });\n};","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp')\n , defined = require('./_defined');\n\nmodule.exports = function(that, searchString, NAME){\n if(isRegExp(searchString))throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};","var $export = require('./_export')\n , fails = require('./_fails')\n , defined = require('./_defined')\n , quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function(string, tag, attribute, value) {\n var S = String(defined(string))\n , p1 = '<' + tag;\n if(attribute !== '')p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function(NAME, exec){\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function(){\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export')\n , defined = require('./_defined')\n , fails = require('./_fails')\n , spaces = require('./_string-ws')\n , space = '[' + spaces + ']'\n , non = '\\u200b\\u0085'\n , ltrim = RegExp('^' + space + space + '*')\n , rtrim = RegExp(space + space + '*$');\n\nvar exporter = function(KEY, exec, ALIAS){\n var exp = {};\n var FORCE = fails(function(){\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if(ALIAS)exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function(string, TYPE){\n string = String(defined(string));\n if(TYPE & 1)string = string.replace(ltrim, '');\n if(TYPE & 2)string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';","var ctx = require('./_ctx')\n , invoke = require('./_invoke')\n , html = require('./_html')\n , cel = require('./_dom-create')\n , global = require('./_global')\n , process = global.process\n , setTask = global.setImmediate\n , clearTask = global.clearImmediate\n , MessageChannel = global.MessageChannel\n , counter = 0\n , queue = {}\n , ONREADYSTATECHANGE = 'onreadystatechange'\n , defer, channel, port;\nvar run = function(){\n var id = +this;\n if(queue.hasOwnProperty(id)){\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function(event){\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif(!setTask || !clearTask){\n setTask = function setImmediate(fn){\n var args = [], i = 1;\n while(arguments.length > i)args.push(arguments[i++]);\n queue[++counter] = function(){\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id){\n delete queue[id];\n };\n // Node.js 0.8-\n if(require('./_cof')(process) == 'process'){\n defer = function(id){\n process.nextTick(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if(MessageChannel){\n channel = new MessageChannel;\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){\n defer = function(id){\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if(ONREADYSTATECHANGE in cel('script')){\n defer = function(id){\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function(id){\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","'use strict';\nif(require('./_descriptors')){\n var LIBRARY = require('./_library')\n , global = require('./_global')\n , fails = require('./_fails')\n , $export = require('./_export')\n , $typed = require('./_typed')\n , $buffer = require('./_typed-buffer')\n , ctx = require('./_ctx')\n , anInstance = require('./_an-instance')\n , propertyDesc = require('./_property-desc')\n , hide = require('./_hide')\n , redefineAll = require('./_redefine-all')\n , toInteger = require('./_to-integer')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , same = require('./_same-value')\n , classof = require('./_classof')\n , isObject = require('./_is-object')\n , toObject = require('./_to-object')\n , isArrayIter = require('./_is-array-iter')\n , create = require('./_object-create')\n , getPrototypeOf = require('./_object-gpo')\n , gOPN = require('./_object-gopn').f\n , getIterFn = require('./core.get-iterator-method')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , createArrayMethod = require('./_array-methods')\n , createArrayIncludes = require('./_array-includes')\n , speciesConstructor = require('./_species-constructor')\n , ArrayIterators = require('./es6.array.iterator')\n , Iterators = require('./_iterators')\n , $iterDetect = require('./_iter-detect')\n , setSpecies = require('./_set-species')\n , arrayFill = require('./_array-fill')\n , arrayCopyWithin = require('./_array-copy-within')\n , $DP = require('./_object-dp')\n , $GOPD = require('./_object-gopd')\n , dP = $DP.f\n , gOPD = $GOPD.f\n , RangeError = global.RangeError\n , TypeError = global.TypeError\n , Uint8Array = global.Uint8Array\n , ARRAY_BUFFER = 'ArrayBuffer'\n , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER\n , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'\n , PROTOTYPE = 'prototype'\n , ArrayProto = Array[PROTOTYPE]\n , $ArrayBuffer = $buffer.ArrayBuffer\n , $DataView = $buffer.DataView\n , arrayForEach = createArrayMethod(0)\n , arrayFilter = createArrayMethod(2)\n , arraySome = createArrayMethod(3)\n , arrayEvery = createArrayMethod(4)\n , arrayFind = createArrayMethod(5)\n , arrayFindIndex = createArrayMethod(6)\n , arrayIncludes = createArrayIncludes(true)\n , arrayIndexOf = createArrayIncludes(false)\n , arrayValues = ArrayIterators.values\n , arrayKeys = ArrayIterators.keys\n , arrayEntries = ArrayIterators.entries\n , arrayLastIndexOf = ArrayProto.lastIndexOf\n , arrayReduce = ArrayProto.reduce\n , arrayReduceRight = ArrayProto.reduceRight\n , arrayJoin = ArrayProto.join\n , arraySort = ArrayProto.sort\n , arraySlice = ArrayProto.slice\n , arrayToString = ArrayProto.toString\n , arrayToLocaleString = ArrayProto.toLocaleString\n , ITERATOR = wks('iterator')\n , TAG = wks('toStringTag')\n , TYPED_CONSTRUCTOR = uid('typed_constructor')\n , DEF_CONSTRUCTOR = uid('def_constructor')\n , ALL_CONSTRUCTORS = $typed.CONSTR\n , TYPED_ARRAY = $typed.TYPED\n , VIEW = $typed.VIEW\n , WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function(O, length){\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function(){\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){\n new Uint8Array(1).set({});\n });\n\n var strictToLength = function(it, SAME){\n if(it === undefined)throw TypeError(WRONG_LENGTH);\n var number = +it\n , length = toLength(it);\n if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);\n return length;\n };\n\n var toOffset = function(it, BYTES){\n var offset = toInteger(it);\n if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function(it){\n if(isObject(it) && TYPED_ARRAY in it)return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function(C, length){\n if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function(O, list){\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function(C, list){\n var index = 0\n , length = list.length\n , result = allocate(C, length);\n while(length > index)result[index] = list[index++];\n return result;\n };\n\n var addGetter = function(it, key, internal){\n dP(it, key, {get: function(){ return this._d[internal]; }});\n };\n\n var $from = function from(source /*, mapfn, thisArg */){\n var O = toObject(source)\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , iterFn = getIterFn(O)\n , i, length, values, result, step, iterator;\n if(iterFn != undefined && !isArrayIter(iterFn)){\n for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){\n values.push(step.value);\n } O = values;\n }\n if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);\n for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/*...items*/){\n var index = 0\n , length = arguments.length\n , result = allocate(this, length);\n while(length > index)result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString(){\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /*, end */){\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /*, thisArg */){\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /*, thisArg */){\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /*, thisArg */){\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /*, thisArg */){\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /*, thisArg */){\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /*, fromIndex */){\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /*, fromIndex */){\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator){ // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /*, thisArg */){\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse(){\n var that = this\n , length = validate(that).length\n , middle = Math.floor(length / 2)\n , index = 0\n , value;\n while(index < middle){\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /*, thisArg */){\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn){\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end){\n var O = validate(this)\n , length = O.length\n , $begin = toIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end){\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /*, offset */){\n validate(this);\n var offset = toOffset(arguments[1], 1)\n , length = this.length\n , src = toObject(arrayLike)\n , len = toLength(src.length)\n , index = 0;\n if(len + offset > length)throw RangeError(WRONG_LENGTH);\n while(index < len)this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries(){\n return arrayEntries.call(validate(this));\n },\n keys: function keys(){\n return arrayKeys.call(validate(this));\n },\n values: function values(){\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function(target, key){\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key){\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc){\n if(isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ){\n target[key] = desc.value;\n return target;\n } else return dP(target, key, desc);\n };\n\n if(!ALL_CONSTRUCTORS){\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if(fails(function(){ arrayToString.call({}); })){\n arrayToString = arrayToLocaleString = function toString(){\n return arrayJoin.call(this);\n }\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function(){ /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function(){ return this[TYPED_ARRAY]; }\n });\n\n module.exports = function(KEY, BYTES, wrapper, CLAMPED){\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'\n , ISNT_UINT8 = NAME != 'Uint8Array'\n , GETTER = 'get' + KEY\n , SETTER = 'set' + KEY\n , TypedArray = global[NAME]\n , Base = TypedArray || {}\n , TAC = TypedArray && getPrototypeOf(TypedArray)\n , FORCED = !TypedArray || !$typed.ABV\n , O = {}\n , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function(that, index){\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function(that, index, value){\n var data = that._d;\n if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function(that, index){\n dP(that, index, {\n get: function(){\n return getter(this, index);\n },\n set: function(value){\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if(FORCED){\n TypedArray = wrapper(function(that, data, $offset, $length){\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0\n , offset = 0\n , buffer, byteLength, length, klass;\n if(!isObject(data)){\n length = strictToLength(data, true)\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if($length === undefined){\n if($len % BYTES)throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if(byteLength < 0)throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if(TYPED_ARRAY in data){\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while(index < length)addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if(!$iterDetect(function(iter){\n // V8 works with iterators, but fails in many other cases\n // https://code.google.com/p/v8/issues/detail?id=4552\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)){\n TypedArray = wrapper(function(that, data, $offset, $length){\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));\n if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if(TYPED_ARRAY in data)return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){\n if(!(key in TypedArray))hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR]\n , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)\n , $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){\n dP(TypedArrayPrototype, TAG, {\n get: function(){ return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES,\n from: $from,\n of: $of\n });\n\n if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});\n\n $export($export.P + $export.F * fails(function(){\n new TypedArray(1).slice();\n }), NAME, {slice: $slice});\n\n $export($export.P + $export.F * (fails(function(){\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()\n }) || !fails(function(){\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, {toLocaleString: $toLocaleString});\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function(){ /* empty */ };","'use strict';\nvar global = require('./_global')\n , DESCRIPTORS = require('./_descriptors')\n , LIBRARY = require('./_library')\n , $typed = require('./_typed')\n , hide = require('./_hide')\n , redefineAll = require('./_redefine-all')\n , fails = require('./_fails')\n , anInstance = require('./_an-instance')\n , toInteger = require('./_to-integer')\n , toLength = require('./_to-length')\n , gOPN = require('./_object-gopn').f\n , dP = require('./_object-dp').f\n , arrayFill = require('./_array-fill')\n , setToStringTag = require('./_set-to-string-tag')\n , ARRAY_BUFFER = 'ArrayBuffer'\n , DATA_VIEW = 'DataView'\n , PROTOTYPE = 'prototype'\n , WRONG_LENGTH = 'Wrong length!'\n , WRONG_INDEX = 'Wrong index!'\n , $ArrayBuffer = global[ARRAY_BUFFER]\n , $DataView = global[DATA_VIEW]\n , Math = global.Math\n , RangeError = global.RangeError\n , Infinity = global.Infinity\n , BaseBuffer = $ArrayBuffer\n , abs = Math.abs\n , pow = Math.pow\n , floor = Math.floor\n , log = Math.log\n , LN2 = Math.LN2\n , BUFFER = 'buffer'\n , BYTE_LENGTH = 'byteLength'\n , BYTE_OFFSET = 'byteOffset'\n , $BUFFER = DESCRIPTORS ? '_b' : BUFFER\n , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH\n , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar packIEEE754 = function(value, mLen, nBytes){\n var buffer = Array(nBytes)\n , eLen = nBytes * 8 - mLen - 1\n , eMax = (1 << eLen) - 1\n , eBias = eMax >> 1\n , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0\n , i = 0\n , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0\n , e, m, c;\n value = abs(value)\n if(value != value || value === Infinity){\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if(value * (c = pow(2, -e)) < 1){\n e--;\n c *= 2;\n }\n if(e + eBias >= 1){\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if(value * c >= 2){\n e++;\n c /= 2;\n }\n if(e + eBias >= eMax){\n m = 0;\n e = eMax;\n } else if(e + eBias >= 1){\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n};\nvar unpackIEEE754 = function(buffer, mLen, nBytes){\n var eLen = nBytes * 8 - mLen - 1\n , eMax = (1 << eLen) - 1\n , eBias = eMax >> 1\n , nBits = eLen - 7\n , i = nBytes - 1\n , s = buffer[i--]\n , e = s & 127\n , m;\n s >>= 7;\n for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if(e === 0){\n e = 1 - eBias;\n } else if(e === eMax){\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n};\n\nvar unpackI32 = function(bytes){\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n};\nvar packI8 = function(it){\n return [it & 0xff];\n};\nvar packI16 = function(it){\n return [it & 0xff, it >> 8 & 0xff];\n};\nvar packI32 = function(it){\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n};\nvar packF64 = function(it){\n return packIEEE754(it, 52, 8);\n};\nvar packF32 = function(it){\n return packIEEE754(it, 23, 4);\n};\n\nvar addGetter = function(C, key, internal){\n dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});\n};\n\nvar get = function(view, bytes, index, isLittleEndian){\n var numIndex = +index\n , intIndex = toInteger(numIndex);\n if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b\n , start = intIndex + view[$OFFSET]\n , pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n};\nvar set = function(view, bytes, index, conversion, value, isLittleEndian){\n var numIndex = +index\n , intIndex = toInteger(numIndex);\n if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b\n , start = intIndex + view[$OFFSET]\n , pack = conversion(+value);\n for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n};\n\nvar validateArrayBufferArguments = function(that, length){\n anInstance(that, $ArrayBuffer, ARRAY_BUFFER);\n var numberLength = +length\n , byteLength = toLength(numberLength);\n if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);\n return byteLength;\n};\n\nif(!$typed.ABV){\n $ArrayBuffer = function ArrayBuffer(length){\n var byteLength = validateArrayBufferArguments(this, length);\n this._b = arrayFill.call(Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength){\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH]\n , offset = toInteger(byteOffset);\n if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if(DESCRIPTORS){\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset){\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset){\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /*, littleEndian */){\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /*, littleEndian */){\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /*, littleEndian */){\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /*, littleEndian */){\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /*, littleEndian */){\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /*, littleEndian */){\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value){\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value){\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /*, littleEndian */){\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /*, littleEndian */){\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /*, littleEndian */){\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /*, littleEndian */){\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if(!fails(function(){\n new $ArrayBuffer; // eslint-disable-line no-new\n }) || !fails(function(){\n new $ArrayBuffer(.5); // eslint-disable-line no-new\n })){\n $ArrayBuffer = function ArrayBuffer(length){\n return new BaseBuffer(validateArrayBufferArguments(this, length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){\n if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);\n };\n if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2))\n , $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value){\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value){\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;","var global = require('./_global')\n , hide = require('./_hide')\n , uid = require('./_uid')\n , TYPED = uid('typed_array')\n , VIEW = uid('view')\n , ABV = !!(global.ArrayBuffer && global.DataView)\n , CONSTR = ABV\n , i = 0, l = 9, Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile(i < l){\n if(Typed = global[TypedArrayConstructors[i++]]){\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , core = require('./_core')\n , LIBRARY = require('./_library')\n , wksExt = require('./_wks-ext')\n , defineProperty = require('./_object-dp').f;\nmodule.exports = function(name){\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});\n};","exports.f = require('./_wks');","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var classof = require('./_classof')\n , ITERATOR = require('./_wks')('iterator')\n , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};","// https://github.com/benjamingr/RexExp.escape\nvar $export = require('./_export')\n , $re = require('./_replacer')(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\n$export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', {copyWithin: require('./_array-copy-within')});\n\nrequire('./_add-to-unscopables')('copyWithin');","'use strict';\nvar $export = require('./_export')\n , $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */){\n return $every(this, callbackfn, arguments[1]);\n }\n});","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', {fill: require('./_array-fill')});\n\nrequire('./_add-to-unscopables')('fill');","'use strict';\nvar $export = require('./_export')\n , $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */){\n return $filter(this, callbackfn, arguments[1]);\n }\n});","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(6)\n , KEY = 'findIndex'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","'use strict';\nvar $export = require('./_export')\n , $forEach = require('./_array-methods')(0)\n , STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */){\n return $forEach(this, callbackfn, arguments[1]);\n }\n});","'use strict';\nvar ctx = require('./_ctx')\n , $export = require('./_export')\n , toObject = require('./_to-object')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , toLength = require('./_to-length')\n , createProperty = require('./_create-property')\n , getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n var O = toObject(arrayLike)\n , C = typeof this == 'function' ? this : Array\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , index = 0\n , iterFn = getIterFn(O)\n , length, result, step, iterator;\n if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for(result = new C(length); length > index; index++){\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export')\n , $indexOf = require('./_array-includes')(false)\n , $native = [].indexOf\n , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /*, fromIndex = 0 */){\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', {isArray: require('./_is-array')});","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export')\n , toIObject = require('./_to-iobject')\n , arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator){\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});","'use strict';\nvar $export = require('./_export')\n , toIObject = require('./_to-iobject')\n , toInteger = require('./_to-integer')\n , toLength = require('./_to-length')\n , $native = [].lastIndexOf\n , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){\n // convert -0 to +0\n if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;\n var O = toIObject(this)\n , length = toLength(O.length)\n , index = length - 1;\n if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));\n if(index < 0)index = length + index;\n for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;\n return -1;\n }\n});","'use strict';\nvar $export = require('./_export')\n , $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */){\n return $map(this, callbackfn, arguments[1]);\n }\n});","'use strict';\nvar $export = require('./_export')\n , createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function(){\n function F(){}\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */){\n var index = 0\n , aLen = arguments.length\n , result = new (typeof this == 'function' ? this : Array)(aLen);\n while(aLen > index)createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});","'use strict';\nvar $export = require('./_export')\n , $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */){\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});","'use strict';\nvar $export = require('./_export')\n , $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */){\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});","'use strict';\nvar $export = require('./_export')\n , html = require('./_html')\n , cof = require('./_cof')\n , toIndex = require('./_to-index')\n , toLength = require('./_to-length')\n , arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function(){\n if(html)arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end){\n var len = toLength(this.length)\n , klass = cof(this);\n end = end === undefined ? len : end;\n if(klass == 'Array')return arraySlice.call(this, begin, end);\n var start = toIndex(begin, len)\n , upTo = toIndex(end, len)\n , size = toLength(upTo - start)\n , cloned = Array(size)\n , i = 0;\n for(; i < size; i++)cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});","'use strict';\nvar $export = require('./_export')\n , $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */){\n return $some(this, callbackfn, arguments[1]);\n }\n});","'use strict';\nvar $export = require('./_export')\n , aFunction = require('./_a-function')\n , toObject = require('./_to-object')\n , fails = require('./_fails')\n , $sort = [].sort\n , test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function(){\n // IE8-\n test.sort(undefined);\n}) || !fails(function(){\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn){\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});","require('./_set-species')('Array');","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export')\n , fails = require('./_fails')\n , getTime = Date.prototype.getTime;\n\nvar lz = function(num){\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (fails(function(){\n return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';\n}) || !fails(function(){\n new Date(NaN).toISOString();\n})), 'Date', {\n toISOString: function toISOString(){\n if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');\n var d = this\n , y = d.getUTCFullYear()\n , m = d.getUTCMilliseconds()\n , s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function(){\n return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;\n}), 'Date', {\n toJSON: function toJSON(key){\n var O = toObject(this)\n , pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});","var TO_PRIMITIVE = require('./_wks')('toPrimitive')\n , proto = Date.prototype;\n\nif(!(TO_PRIMITIVE in proto))require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));","var DateProto = Date.prototype\n , INVALID_DATE = 'Invalid Date'\n , TO_STRING = 'toString'\n , $toString = DateProto[TO_STRING]\n , getTime = DateProto.getTime;\nif(new Date(NaN) + '' != INVALID_DATE){\n require('./_redefine')(DateProto, TO_STRING, function toString(){\n var value = getTime.call(this);\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', {bind: require('./_bind')});","'use strict';\nvar isObject = require('./_is-object')\n , getPrototypeOf = require('./_object-gpo')\n , HAS_INSTANCE = require('./_wks')('hasInstance')\n , FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif(!(HAS_INSTANCE in FunctionProto))require('./_object-dp').f(FunctionProto, HAS_INSTANCE, {value: function(O){\n if(typeof this != 'function' || !isObject(O))return false;\n if(!isObject(this.prototype))return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while(O = getPrototypeOf(O))if(this.prototype === O)return true;\n return false;\n}});","var dP = require('./_object-dp').f\n , createDesc = require('./_property-desc')\n , has = require('./_has')\n , FProto = Function.prototype\n , nameRE = /^\\s*function ([^ (]*)/\n , NAME = 'name';\n\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function(){\n try {\n var that = this\n , name = ('' + that).match(nameRE)[1];\n has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));\n return name;\n } catch(e){\n return '';\n }\n }\n});","'use strict';\nvar strong = require('./_collection-strong');\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')('Map', function(get){\n return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key){\n var entry = strong.getEntry(this, key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value){\n return strong.def(this, key === 0 ? 0 : key, value);\n }\n}, strong, true);","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export')\n , log1p = require('./_math-log1p')\n , sqrt = Math.sqrt\n , $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN \n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x){\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export')\n , $asinh = Math.asinh;\n\nfunction asinh(x){\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0 \n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh});","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export')\n , $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0 \n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x){\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export')\n , sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x){\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x){\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export')\n , exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x){\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export')\n , $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1});","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export')\n , sign = require('./_math-sign')\n , pow = Math.pow\n , EPSILON = pow(2, -52)\n , EPSILON32 = pow(2, -23)\n , MAX32 = pow(2, 127) * (2 - EPSILON32)\n , MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function(n){\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n\n$export($export.S, 'Math', {\n fround: function fround(x){\n var $abs = Math.abs(x)\n , $sign = sign(x)\n , a, result;\n if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n if(result > MAX32 || result != result)return $sign * Infinity;\n return $sign * result;\n }\n});","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export')\n , abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars\n var sum = 0\n , i = 0\n , aLen = arguments.length\n , larg = 0\n , arg, div;\n while(i < aLen){\n arg = abs(arguments[i++]);\n if(larg < arg){\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if(arg > 0){\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export')\n , $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function(){\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y){\n var UINT16 = 0xffff\n , xn = +x\n , yn = +y\n , xl = UINT16 & xn\n , yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x){\n return Math.log(x) / Math.LN10;\n }\n});","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {log1p: require('./_math-log1p')});","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x){\n return Math.log(x) / Math.LN2;\n }\n});","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {sign: require('./_math-sign')});","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export')\n , expm1 = require('./_math-expm1')\n , exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function(){\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x){\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export')\n , expm1 = require('./_math-expm1')\n , exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x){\n var a = expm1(x = +x)\n , b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it){\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});","'use strict';\nvar global = require('./_global')\n , has = require('./_has')\n , cof = require('./_cof')\n , inheritIfRequired = require('./_inherit-if-required')\n , toPrimitive = require('./_to-primitive')\n , fails = require('./_fails')\n , gOPN = require('./_object-gopn').f\n , gOPD = require('./_object-gopd').f\n , dP = require('./_object-dp').f\n , $trim = require('./_string-trim').trim\n , NUMBER = 'Number'\n , $Number = global[NUMBER]\n , Base = $Number\n , proto = $Number.prototype\n // Opera ~12 has broken Object#toString\n , BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER\n , TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function(argument){\n var it = toPrimitive(argument, false);\n if(typeof it == 'string' && it.length > 2){\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0)\n , third, radix, maxCode;\n if(first === 43 || first === 45){\n third = it.charCodeAt(2);\n if(third === 88 || third === 120)return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if(first === 48){\n switch(it.charCodeAt(1)){\n case 66 : case 98 : radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79 : case 111 : radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default : return +it;\n }\n for(var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++){\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if(code < 48 || code > maxCode)return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif(!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')){\n $Number = function Number(value){\n var it = arguments.length < 1 ? 0 : value\n , that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for(var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++){\n if(has(Base, key = keys[j]) && !has($Number, key)){\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export')\n , _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it){\n return typeof it == 'number' && _isFinite(it);\n }\n});","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {isInteger: require('./_is-integer')});","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number){\n return number != number;\n }\n});","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export')\n , isInteger = require('./_is-integer')\n , abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number){\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});","var $export = require('./_export')\n , $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat});","var $export = require('./_export')\n , $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});","'use strict';\nvar $export = require('./_export')\n , toInteger = require('./_to-integer')\n , aNumberValue = require('./_a-number-value')\n , repeat = require('./_string-repeat')\n , $toFixed = 1..toFixed\n , floor = Math.floor\n , data = [0, 0, 0, 0, 0, 0]\n , ERROR = 'Number.toFixed: incorrect invocation!'\n , ZERO = '0';\n\nvar multiply = function(n, c){\n var i = -1\n , c2 = c;\n while(++i < 6){\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function(n){\n var i = 6\n , c = 0;\n while(--i >= 0){\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function(){\n var i = 6\n , s = '';\n while(--i >= 0){\n if(s !== '' || i === 0 || data[i] !== 0){\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function(x, n, acc){\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function(x){\n var n = 0\n , x2 = x;\n while(x2 >= 4096){\n n += 12;\n x2 /= 4096;\n }\n while(x2 >= 2){\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128..toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function(){\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits){\n var x = aNumberValue(this, ERROR)\n , f = toInteger(fractionDigits)\n , s = ''\n , m = ZERO\n , e, z, j, k;\n if(f < 0 || f > 20)throw RangeError(ERROR);\n if(x != x)return 'NaN';\n if(x <= -1e21 || x >= 1e21)return String(x);\n if(x < 0){\n s = '-';\n x = -x;\n }\n if(x > 1e-21){\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if(e > 0){\n multiply(0, z);\n j = f;\n while(j >= 7){\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while(j >= 23){\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if(f > 0){\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});","'use strict';\nvar $export = require('./_export')\n , $fails = require('./_fails')\n , aNumberValue = require('./_a-number-value')\n , $toPrecision = 1..toPrecision;\n\n$export($export.P + $export.F * ($fails(function(){\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function(){\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision){\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); \n }\n});","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperties: require('./_object-dps')});","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object')\n , meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function($freeze){\n return function freeze(it){\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function(){\n return require('./_object-gopn-ext').f;\n});","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object')\n , $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function(){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function($isExtensible){\n return function isExtensible(it){\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function($isFrozen){\n return function isFrozen(it){\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function($isSealed){\n return function isSealed(it){\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', {is: require('./_same-value')});","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object')\n , meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function($preventExtensions){\n return function preventExtensions(it){\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object')\n , meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function($seal){\n return function seal(it){\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof')\n , test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif(test + '' != '[object z]'){\n require('./_redefine')(Object.prototype, 'toString', function toString(){\n return '[object ' + classof(this) + ']';\n }, true);\n}","var $export = require('./_export')\n , $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat});","var $export = require('./_export')\n , $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt});","'use strict';\nvar LIBRARY = require('./_library')\n , global = require('./_global')\n , ctx = require('./_ctx')\n , classof = require('./_classof')\n , $export = require('./_export')\n , isObject = require('./_is-object')\n , aFunction = require('./_a-function')\n , anInstance = require('./_an-instance')\n , forOf = require('./_for-of')\n , speciesConstructor = require('./_species-constructor')\n , task = require('./_task').set\n , microtask = require('./_microtask')()\n , PROMISE = 'Promise'\n , TypeError = global.TypeError\n , process = global.process\n , $Promise = global[PROMISE]\n , process = global.process\n , isNode = classof(process) == 'process'\n , empty = function(){ /* empty */ }\n , Internal, GenericPromiseCapability, Wrapper;\n\nvar USE_NATIVE = !!function(){\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1)\n , FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function(exec){ exec(empty, empty); };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n } catch(e){ /* empty */ }\n}();\n\n// helpers\nvar sameConstructor = function(a, b){\n // with library wrapper special case\n return a === b || a === $Promise && b === Wrapper;\n};\nvar isThenable = function(it){\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar newPromiseCapability = function(C){\n return sameConstructor($Promise, C)\n ? new PromiseCapability(C)\n : new GenericPromiseCapability(C);\n};\nvar PromiseCapability = GenericPromiseCapability = function(C){\n var resolve, reject;\n this.promise = new C(function($$resolve, $$reject){\n if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\nvar perform = function(exec){\n try {\n exec();\n } catch(e){\n return {error: e};\n }\n};\nvar notify = function(promise, isReject){\n if(promise._n)return;\n promise._n = true;\n var chain = promise._c;\n microtask(function(){\n var value = promise._v\n , ok = promise._s == 1\n , i = 0;\n var run = function(reaction){\n var handler = ok ? reaction.ok : reaction.fail\n , resolve = reaction.resolve\n , reject = reaction.reject\n , domain = reaction.domain\n , result, then;\n try {\n if(handler){\n if(!ok){\n if(promise._h == 2)onHandleUnhandled(promise);\n promise._h = 1;\n }\n if(handler === true)result = value;\n else {\n if(domain)domain.enter();\n result = handler(value);\n if(domain)domain.exit();\n }\n if(result === reaction.promise){\n reject(TypeError('Promise-chain cycle'));\n } else if(then = isThenable(result)){\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch(e){\n reject(e);\n }\n };\n while(chain.length > i)run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if(isReject && !promise._h)onUnhandled(promise);\n });\n};\nvar onUnhandled = function(promise){\n task.call(global, function(){\n var value = promise._v\n , abrupt, handler, console;\n if(isUnhandled(promise)){\n abrupt = perform(function(){\n if(isNode){\n process.emit('unhandledRejection', value, promise);\n } else if(handler = global.onunhandledrejection){\n handler({promise: promise, reason: value});\n } else if((console = global.console) && console.error){\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if(abrupt)throw abrupt.error;\n });\n};\nvar isUnhandled = function(promise){\n if(promise._h == 1)return false;\n var chain = promise._a || promise._c\n , i = 0\n , reaction;\n while(chain.length > i){\n reaction = chain[i++];\n if(reaction.fail || !isUnhandled(reaction.promise))return false;\n } return true;\n};\nvar onHandleUnhandled = function(promise){\n task.call(global, function(){\n var handler;\n if(isNode){\n process.emit('rejectionHandled', promise);\n } else if(handler = global.onrejectionhandled){\n handler({promise: promise, reason: promise._v});\n }\n });\n};\nvar $reject = function(value){\n var promise = this;\n if(promise._d)return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if(!promise._a)promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function(value){\n var promise = this\n , then;\n if(promise._d)return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if(promise === value)throw TypeError(\"Promise can't be resolved itself\");\n if(then = isThenable(value)){\n microtask(function(){\n var wrapper = {_w: promise, _d: false}; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch(e){\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch(e){\n $reject.call({_w: promise, _d: false}, e); // wrap\n }\n};\n\n// constructor polyfill\nif(!USE_NATIVE){\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor){\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch(err){\n $reject.call(this, err);\n }\n };\n Internal = function Promise(executor){\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected){\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if(this._a)this._a.push(reaction);\n if(this._s)notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function(onRejected){\n return this.then(undefined, onRejected);\n }\n });\n PromiseCapability = function(){\n var promise = new Internal;\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r){\n var capability = newPromiseCapability(this)\n , $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x){\n // instanceof instead of internal slot check because we should fix it without replacement native Promise core\n if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;\n var capability = newPromiseCapability(this)\n , $$resolve = capability.resolve;\n $$resolve(x);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function(iter){\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable){\n var C = this\n , capability = newPromiseCapability(C)\n , resolve = capability.resolve\n , reject = capability.reject;\n var abrupt = perform(function(){\n var values = []\n , index = 0\n , remaining = 1;\n forOf(iterable, false, function(promise){\n var $index = index++\n , alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function(value){\n if(alreadyCalled)return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if(abrupt)reject(abrupt.error);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable){\n var C = this\n , capability = newPromiseCapability(C)\n , reject = capability.reject;\n var abrupt = perform(function(){\n forOf(iterable, false, function(promise){\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if(abrupt)reject(abrupt.error);\n return capability.promise;\n }\n});","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export')\n , aFunction = require('./_a-function')\n , anObject = require('./_an-object')\n , rApply = (require('./_global').Reflect || {}).apply\n , fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function(){\n rApply(function(){});\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList){\n var T = aFunction(target)\n , L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export')\n , create = require('./_object-create')\n , aFunction = require('./_a-function')\n , anObject = require('./_an-object')\n , isObject = require('./_is-object')\n , fails = require('./_fails')\n , bind = require('./_bind')\n , rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function(){\n function F(){}\n return !(rConstruct(function(){}, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function(){\n rConstruct(function(){});\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /*, newTarget*/){\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);\n if(Target == newTarget){\n // w/o altered newTarget, optimization for 0-4 arguments\n switch(args.length){\n case 0: return new Target;\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args));\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype\n , instance = create(isObject(proto) ? proto : Object.prototype)\n , result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp')\n , $export = require('./_export')\n , anObject = require('./_an-object')\n , toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function(){\n Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes){\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch(e){\n return false;\n }\n }\n});","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export')\n , gOPD = require('./_object-gopd').f\n , anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey){\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export')\n , anObject = require('./_an-object');\nvar Enumerate = function(iterated){\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = [] // keys\n , key;\n for(key in iterated)keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function(){\n var that = this\n , keys = that._k\n , key;\n do {\n if(that._i >= keys.length)return {value: undefined, done: true};\n } while(!((key = keys[that._i++]) in that._t));\n return {value: key, done: false};\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target){\n return new Enumerate(target);\n }\n});","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd')\n , $export = require('./_export')\n , anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){\n return gOPD.f(anObject(target), propertyKey);\n }\n});","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export')\n , getProto = require('./_object-gpo')\n , anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target){\n return getProto(anObject(target));\n }\n});","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd')\n , getPrototypeOf = require('./_object-gpo')\n , has = require('./_has')\n , $export = require('./_export')\n , isObject = require('./_is-object')\n , anObject = require('./_an-object');\n\nfunction get(target, propertyKey/*, receiver*/){\n var receiver = arguments.length < 3 ? target : arguments[2]\n , desc, proto;\n if(anObject(target) === receiver)return target[propertyKey];\n if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', {get: get});","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey){\n return propertyKey in target;\n }\n});","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export')\n , anObject = require('./_an-object')\n , $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target){\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {ownKeys: require('./_own-keys')});","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export')\n , anObject = require('./_an-object')\n , $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target){\n anObject(target);\n try {\n if($preventExtensions)$preventExtensions(target);\n return true;\n } catch(e){\n return false;\n }\n }\n});","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export')\n , setProto = require('./_set-proto');\n\nif(setProto)$export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto){\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch(e){\n return false;\n }\n }\n});","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp')\n , gOPD = require('./_object-gopd')\n , getPrototypeOf = require('./_object-gpo')\n , has = require('./_has')\n , $export = require('./_export')\n , createDesc = require('./_property-desc')\n , anObject = require('./_an-object')\n , isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V/*, receiver*/){\n var receiver = arguments.length < 4 ? target : arguments[3]\n , ownDesc = gOPD.f(anObject(target), propertyKey)\n , existingDescriptor, proto;\n if(!ownDesc){\n if(isObject(proto = getPrototypeOf(target))){\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if(has(ownDesc, 'value')){\n if(ownDesc.writable === false || !isObject(receiver))return false;\n existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', {set: set});","var global = require('./_global')\n , inheritIfRequired = require('./_inherit-if-required')\n , dP = require('./_object-dp').f\n , gOPN = require('./_object-gopn').f\n , isRegExp = require('./_is-regexp')\n , $flags = require('./_flags')\n , $RegExp = global.RegExp\n , Base = $RegExp\n , proto = $RegExp.prototype\n , re1 = /a/g\n , re2 = /a/g\n // \"new\" creates a new object, old webkit buggy here\n , CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif(require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function(){\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))){\n $RegExp = function RegExp(p, f){\n var tiRE = this instanceof $RegExp\n , piRE = isRegExp(p)\n , fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function(key){\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function(){ return Base[key]; },\n set: function(it){ Base[key] = it; }\n });\n };\n for(var keys = gOPN(Base), i = 0; keys.length > i; )proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');","// 21.2.5.3 get RegExp.prototype.flags()\nif(require('./_descriptors') && /./g.flags != 'g')require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function(defined, MATCH, $match){\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp){\n 'use strict';\n var O = defined(this)\n , fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, $match];\n});","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function(defined, REPLACE, $replace){\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue){\n 'use strict';\n var O = defined(this)\n , fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n }, $replace];\n});","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function(defined, SEARCH, $search){\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp){\n 'use strict';\n var O = defined(this)\n , fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function(defined, SPLIT, $split){\n 'use strict';\n var isRegExp = require('./_is-regexp')\n , _split = $split\n , $push = [].push\n , $SPLIT = 'split'\n , LENGTH = 'length'\n , LAST_INDEX = 'lastIndex';\n if(\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ){\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function(separator, limit){\n var string = String(this);\n if(separator === undefined && limit === 0)return [];\n // If `separator` is not a regex, use native split\n if(!isRegExp(separator))return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if(!NPCG)separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while(match = separatorCopy.exec(string)){\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if(lastIndex > lastLastIndex){\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n if(!NPCG && match[LENGTH] > 1)match[0].replace(separator2, function(){\n for(i = 1; i < arguments[LENGTH] - 2; i++)if(arguments[i] === undefined)match[i] = undefined;\n });\n if(match[LENGTH] > 1 && match.index < string[LENGTH])$push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if(output[LENGTH] >= splitLimit)break;\n }\n if(separatorCopy[LAST_INDEX] === match.index)separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if(lastLastIndex === string[LENGTH]){\n if(lastLength || !separatorCopy.test(''))output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if('0'[$SPLIT](undefined, 0)[LENGTH]){\n $split = function(separator, limit){\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit){\n var O = defined(this)\n , fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object')\n , $flags = require('./_flags')\n , DESCRIPTORS = require('./_descriptors')\n , TO_STRING = 'toString'\n , $toString = /./[TO_STRING];\n\nvar define = function(fn){\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif(require('./_fails')(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){\n define(function toString(){\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if($toString.name != TO_STRING){\n define(function toString(){\n return $toString.call(this);\n });\n}","'use strict';\nvar strong = require('./_collection-strong');\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function(createHTML){\n return function anchor(name){\n return createHTML(this, 'a', 'name', name);\n }\n});","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function(createHTML){\n return function big(){\n return createHTML(this, 'big', '', '');\n }\n});","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function(createHTML){\n return function blink(){\n return createHTML(this, 'blink', '', '');\n }\n});","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function(createHTML){\n return function bold(){\n return createHTML(this, 'b', '', '');\n }\n});","'use strict';\nvar $export = require('./_export')\n , $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos){\n return $at(this, pos);\n }\n});","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export')\n , toLength = require('./_to-length')\n , context = require('./_string-context')\n , ENDS_WITH = 'endsWith'\n , $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /*, endPosition = @length */){\n var that = context(this, searchString, ENDS_WITH)\n , endPosition = arguments.length > 1 ? arguments[1] : undefined\n , len = toLength(that.length)\n , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)\n , search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function(createHTML){\n return function fixed(){\n return createHTML(this, 'tt', '', '');\n }\n});","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function(createHTML){\n return function fontcolor(color){\n return createHTML(this, 'font', 'color', color);\n }\n});","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function(createHTML){\n return function fontsize(size){\n return createHTML(this, 'font', 'size', size);\n }\n});","var $export = require('./_export')\n , toIndex = require('./_to-index')\n , fromCharCode = String.fromCharCode\n , $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars\n var res = []\n , aLen = arguments.length\n , i = 0\n , code;\n while(aLen > i){\n code = +arguments[i++];\n if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export')\n , context = require('./_string-context')\n , INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /*, position = 0 */){\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function(createHTML){\n return function italics(){\n return createHTML(this, 'i', '', '');\n }\n});","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function(createHTML){\n return function link(url){\n return createHTML(this, 'a', 'href', url);\n }\n});","var $export = require('./_export')\n , toIObject = require('./_to-iobject')\n , toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite){\n var tpl = toIObject(callSite.raw)\n , len = toLength(tpl.length)\n , aLen = arguments.length\n , res = []\n , i = 0;\n while(len > i){\n res.push(String(tpl[i++]));\n if(i < aLen)res.push(String(arguments[i]));\n } return res.join('');\n }\n});","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function(createHTML){\n return function small(){\n return createHTML(this, 'small', '', '');\n }\n});","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export')\n , toLength = require('./_to-length')\n , context = require('./_string-context')\n , STARTS_WITH = 'startsWith'\n , $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /*, position = 0 */){\n var that = context(this, searchString, STARTS_WITH)\n , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))\n , search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function(createHTML){\n return function strike(){\n return createHTML(this, 'strike', '', '');\n }\n});","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function(createHTML){\n return function sub(){\n return createHTML(this, 'sub', '', '');\n }\n});","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function(createHTML){\n return function sup(){\n return createHTML(this, 'sup', '', '');\n }\n});","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function($trim){\n return function trim(){\n return $trim(this, 3);\n };\n});","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);","'use strict';\nvar $export = require('./_export')\n , $typed = require('./_typed')\n , buffer = require('./_typed-buffer')\n , anObject = require('./_an-object')\n , toIndex = require('./_to-index')\n , toLength = require('./_to-length')\n , isObject = require('./_is-object')\n , ArrayBuffer = require('./_global').ArrayBuffer\n , speciesConstructor = require('./_species-constructor')\n , $ArrayBuffer = buffer.ArrayBuffer\n , $DataView = buffer.DataView\n , $isView = $typed.ABV && ArrayBuffer.isView\n , $slice = $ArrayBuffer.prototype.slice\n , VIEW = $typed.VIEW\n , ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it){\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function(){\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end){\n if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength\n , first = toIndex(start, len)\n , final = toIndex(end === undefined ? len : end, len)\n , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))\n , viewS = new $DataView(this)\n , viewT = new $DataView(result)\n , index = 0;\n while(first < final){\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});","require('./_typed-array')('Float32', 4, function(init){\n return function Float32Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Float64', 8, function(init){\n return function Float64Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Int16', 2, function(init){\n return function Int16Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Int32', 4, function(init){\n return function Int32Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Int8', 1, function(init){\n return function Int8Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Uint16', 2, function(init){\n return function Uint16Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Uint32', 4, function(init){\n return function Uint32Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Uint8', 1, function(init){\n return function Uint8Array(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n});","require('./_typed-array')('Uint8', 1, function(init){\n return function Uint8ClampedArray(data, byteOffset, length){\n return init(this, data, byteOffset, length);\n };\n}, true);","'use strict';\nvar each = require('./_array-methods')(0)\n , redefine = require('./_redefine')\n , meta = require('./_meta')\n , assign = require('./_object-assign')\n , weak = require('./_collection-weak')\n , isObject = require('./_is-object')\n , getWeak = meta.getWeak\n , isExtensible = Object.isExtensible\n , uncaughtFrozenStore = weak.ufstore\n , tmp = {}\n , InternalMap;\n\nvar wrapper = function(get){\n return function WeakMap(){\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key){\n if(isObject(key)){\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value){\n return weak.def(this, key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')('WeakMap', wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){\n InternalMap = weak.getConstructor(wrapper);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function(key){\n var proto = $WeakMap.prototype\n , method = proto[key];\n redefine(proto, key, function(a, b){\n // store frozen objects on internal weakmap shim\n if(isObject(a) && !isExtensible(a)){\n if(!this._f)this._f = new InternalMap;\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}","'use strict';\nvar weak = require('./_collection-weak');\n\n// 23.4 WeakSet Objects\nrequire('./_collection')('WeakSet', function(get){\n return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value){\n return weak.def(this, value, true);\n }\n}, weak, false, true);","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export')\n , $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /*, fromIndex = 0 */){\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');","// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask\nvar $export = require('./_export')\n , microtask = require('./_microtask')()\n , process = require('./_global').process\n , isNode = require('./_cof')(process) == 'process';\n\n$export($export.G, {\n asap: function asap(fn){\n var domain = isNode && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});","// https://github.com/ljharb/proposal-is-error\nvar $export = require('./_export')\n , cof = require('./_cof');\n\n$export($export.S, 'Error', {\n isError: function isError(it){\n return cof(it) === 'Error';\n }\n});","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', {toJSON: require('./_collection-to-json')('Map')});","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n iaddh: function iaddh(x0, x1, y0, y1){\n var $x0 = x0 >>> 0\n , $x1 = x1 >>> 0\n , $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n imulh: function imulh(u, v){\n var UINT16 = 0xffff\n , $u = +u\n , $v = +v\n , u0 = $u & UINT16\n , v0 = $v & UINT16\n , u1 = $u >> 16\n , v1 = $v >> 16\n , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n isubh: function isubh(x0, x1, y0, y1){\n var $x0 = x0 >>> 0\n , $x1 = x1 >>> 0\n , $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n umulh: function umulh(u, v){\n var UINT16 = 0xffff\n , $u = +u\n , $v = +v\n , u0 = $u & UINT16\n , v0 = $v & UINT16\n , u1 = $u >>> 16\n , v1 = $v >>> 16\n , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , aFunction = require('./_a-function')\n , $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter){\n $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , aFunction = require('./_a-function')\n , $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter){\n $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});\n }\n});","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export')\n , $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it){\n return $entries(it);\n }\n});","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export')\n , ownKeys = require('./_own-keys')\n , toIObject = require('./_to-iobject')\n , gOPD = require('./_object-gopd')\n , createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){\n var O = toIObject(object)\n , getDesc = gOPD.f\n , keys = ownKeys(O)\n , result = {}\n , i = 0\n , key;\n while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));\n return result;\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive')\n , getPrototypeOf = require('./_object-gpo')\n , getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P){\n var O = toObject(this)\n , K = toPrimitive(P, true)\n , D;\n do {\n if(D = getOwnPropertyDescriptor(O, K))return D.get;\n } while(O = getPrototypeOf(O));\n }\n});","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive')\n , getPrototypeOf = require('./_object-gpo')\n , getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P){\n var O = toObject(this)\n , K = toPrimitive(P, true)\n , D;\n do {\n if(D = getOwnPropertyDescriptor(O, K))return D.set;\n } while(O = getPrototypeOf(O));\n }\n});","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export')\n , $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it){\n return $values(it);\n }\n});","'use strict';\n// https://github.com/zenparsing/es-observable\nvar $export = require('./_export')\n , global = require('./_global')\n , core = require('./_core')\n , microtask = require('./_microtask')()\n , OBSERVABLE = require('./_wks')('observable')\n , aFunction = require('./_a-function')\n , anObject = require('./_an-object')\n , anInstance = require('./_an-instance')\n , redefineAll = require('./_redefine-all')\n , hide = require('./_hide')\n , forOf = require('./_for-of')\n , RETURN = forOf.RETURN;\n\nvar getMethod = function(fn){\n return fn == null ? undefined : aFunction(fn);\n};\n\nvar cleanupSubscription = function(subscription){\n var cleanup = subscription._c;\n if(cleanup){\n subscription._c = undefined;\n cleanup();\n }\n};\n\nvar subscriptionClosed = function(subscription){\n return subscription._o === undefined;\n};\n\nvar closeSubscription = function(subscription){\n if(!subscriptionClosed(subscription)){\n subscription._o = undefined;\n cleanupSubscription(subscription);\n }\n};\n\nvar Subscription = function(observer, subscriber){\n anObject(observer);\n this._c = undefined;\n this._o = observer;\n observer = new SubscriptionObserver(this);\n try {\n var cleanup = subscriber(observer)\n , subscription = cleanup;\n if(cleanup != null){\n if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };\n else aFunction(cleanup);\n this._c = cleanup;\n }\n } catch(e){\n observer.error(e);\n return;\n } if(subscriptionClosed(this))cleanupSubscription(this);\n};\n\nSubscription.prototype = redefineAll({}, {\n unsubscribe: function unsubscribe(){ closeSubscription(this); }\n});\n\nvar SubscriptionObserver = function(subscription){\n this._s = subscription;\n};\n\nSubscriptionObserver.prototype = redefineAll({}, {\n next: function next(value){\n var subscription = this._s;\n if(!subscriptionClosed(subscription)){\n var observer = subscription._o;\n try {\n var m = getMethod(observer.next);\n if(m)return m.call(observer, value);\n } catch(e){\n try {\n closeSubscription(subscription);\n } finally {\n throw e;\n }\n }\n }\n },\n error: function error(value){\n var subscription = this._s;\n if(subscriptionClosed(subscription))throw value;\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.error);\n if(!m)throw value;\n value = m.call(observer, value);\n } catch(e){\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n },\n complete: function complete(value){\n var subscription = this._s;\n if(!subscriptionClosed(subscription)){\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.complete);\n value = m ? m.call(observer, value) : undefined;\n } catch(e){\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n }\n }\n});\n\nvar $Observable = function Observable(subscriber){\n anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);\n};\n\nredefineAll($Observable.prototype, {\n subscribe: function subscribe(observer){\n return new Subscription(observer, this._f);\n },\n forEach: function forEach(fn){\n var that = this;\n return new (core.Promise || global.Promise)(function(resolve, reject){\n aFunction(fn);\n var subscription = that.subscribe({\n next : function(value){\n try {\n return fn(value);\n } catch(e){\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n});\n\nredefineAll($Observable, {\n from: function from(x){\n var C = typeof this === 'function' ? this : $Observable;\n var method = getMethod(anObject(x)[OBSERVABLE]);\n if(method){\n var observable = anObject(method.call(x));\n return observable.constructor === C ? observable : new C(function(observer){\n return observable.subscribe(observer);\n });\n }\n return new C(function(observer){\n var done = false;\n microtask(function(){\n if(!done){\n try {\n if(forOf(x, false, function(it){\n observer.next(it);\n if(done)return RETURN;\n }) === RETURN)return;\n } catch(e){\n if(done)throw e;\n observer.error(e);\n return;\n } observer.complete();\n }\n });\n return function(){ done = true; };\n });\n },\n of: function of(){\n for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];\n return new (typeof this === 'function' ? this : $Observable)(function(observer){\n var done = false;\n microtask(function(){\n if(!done){\n for(var i = 0; i < items.length; ++i){\n observer.next(items[i]);\n if(done)return;\n } observer.complete();\n }\n });\n return function(){ done = true; };\n });\n }\n});\n\nhide($Observable.prototype, OBSERVABLE, function(){ return this; });\n\n$export($export.G, {Observable: $Observable});\n\nrequire('./_set-species')('Observable');","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , toMetaKey = metadata.key\n , ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , toMetaKey = metadata.key\n , getOrCreateMetadataMap = metadata.map\n , store = metadata.store;\n\nmetadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])\n , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;\n if(metadataMap.size)return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n}});","var Set = require('./es6.set')\n , from = require('./_array-from-iterable')\n , metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryOwnMetadataKeys = metadata.keys\n , toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function(O, P){\n var oKeys = ordinaryOwnMetadataKeys(O, P)\n , parent = getPrototypeOf(O);\n if(parent === null)return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryHasOwnMetadata = metadata.has\n , ordinaryGetOwnMetadata = metadata.get\n , toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function(MetadataKey, O, P){\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryOwnMetadataKeys = metadata.keys\n , toMetaKey = metadata.key;\n\nmetadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryGetOwnMetadata = metadata.get\n , toMetaKey = metadata.key;\n\nmetadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryHasOwnMetadata = metadata.has\n , toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function(MetadataKey, O, P){\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if(hasOwn)return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryHasOwnMetadata = metadata.has\n , toMetaKey = metadata.key;\n\nmetadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , aFunction = require('./_a-function')\n , toMetaKey = metadata.key\n , ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({metadata: function metadata(metadataKey, metadataValue){\n return function decorator(target, targetKey){\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n}});","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', {toJSON: require('./_collection-to-json')('Set')});","'use strict';\n// https://github.com/mathiasbynens/String.prototype.at\nvar $export = require('./_export')\n , $at = require('./_string-at')(true);\n\n$export($export.P, 'String', {\n at: function at(pos){\n return $at(this, pos);\n }\n});","'use strict';\n// https://tc39.github.io/String.prototype.matchAll/\nvar $export = require('./_export')\n , defined = require('./_defined')\n , toLength = require('./_to-length')\n , isRegExp = require('./_is-regexp')\n , getFlags = require('./_flags')\n , RegExpProto = RegExp.prototype;\n\nvar $RegExpStringIterator = function(regexp, string){\n this._r = regexp;\n this._s = string;\n};\n\nrequire('./_iter-create')($RegExpStringIterator, 'RegExp String', function next(){\n var match = this._r.exec(this._s);\n return {value: match, done: match === null};\n});\n\n$export($export.P, 'String', {\n matchAll: function matchAll(regexp){\n defined(this);\n if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');\n var S = String(this)\n , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)\n , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);\n rx.lastIndex = toLength(regexp.lastIndex);\n return new $RegExpStringIterator(rx, S);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimLeft', function($trim){\n return function trimLeft(){\n return $trim(this, 1);\n };\n}, 'trimStart');","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimRight', function($trim){\n return function trimRight(){\n return $trim(this, 2);\n };\n}, 'trimEnd');","require('./_wks-define')('asyncIterator');","require('./_wks-define')('observable');","// https://github.com/ljharb/proposal-global\nvar $export = require('./_export');\n\n$export($export.S, 'System', {global: require('./_global')});","var $iterators = require('./es6.array.iterator')\n , redefine = require('./_redefine')\n , global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , wks = require('./_wks')\n , ITERATOR = wks('iterator')\n , TO_STRING_TAG = wks('toStringTag')\n , ArrayValues = Iterators.Array;\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype\n , key;\n if(proto){\n if(!proto[ITERATOR])hide(proto, ITERATOR, ArrayValues);\n if(!proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n for(key in $iterators)if(!proto[key])redefine(proto, key, $iterators[key], true);\n }\n}","var $export = require('./_export')\n , $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global')\n , $export = require('./_export')\n , invoke = require('./_invoke')\n , partial = require('./_partial')\n , navigator = global.navigator\n , MSIE = !!navigator && /MSIE .\\./.test(navigator.userAgent); // <- dirty ie9- check\nvar wrap = function(set){\n return MSIE ? function(fn, time /*, ...args */){\n return set(invoke(\n partial,\n [].slice.call(arguments, 2),\n typeof fn == 'function' ? fn : Function(fn)\n ), time);\n } : set;\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});","require('./modules/es6.symbol');\nrequire('./modules/es6.object.create');\nrequire('./modules/es6.object.define-property');\nrequire('./modules/es6.object.define-properties');\nrequire('./modules/es6.object.get-own-property-descriptor');\nrequire('./modules/es6.object.get-prototype-of');\nrequire('./modules/es6.object.keys');\nrequire('./modules/es6.object.get-own-property-names');\nrequire('./modules/es6.object.freeze');\nrequire('./modules/es6.object.seal');\nrequire('./modules/es6.object.prevent-extensions');\nrequire('./modules/es6.object.is-frozen');\nrequire('./modules/es6.object.is-sealed');\nrequire('./modules/es6.object.is-extensible');\nrequire('./modules/es6.object.assign');\nrequire('./modules/es6.object.is');\nrequire('./modules/es6.object.set-prototype-of');\nrequire('./modules/es6.object.to-string');\nrequire('./modules/es6.function.bind');\nrequire('./modules/es6.function.name');\nrequire('./modules/es6.function.has-instance');\nrequire('./modules/es6.parse-int');\nrequire('./modules/es6.parse-float');\nrequire('./modules/es6.number.constructor');\nrequire('./modules/es6.number.to-fixed');\nrequire('./modules/es6.number.to-precision');\nrequire('./modules/es6.number.epsilon');\nrequire('./modules/es6.number.is-finite');\nrequire('./modules/es6.number.is-integer');\nrequire('./modules/es6.number.is-nan');\nrequire('./modules/es6.number.is-safe-integer');\nrequire('./modules/es6.number.max-safe-integer');\nrequire('./modules/es6.number.min-safe-integer');\nrequire('./modules/es6.number.parse-float');\nrequire('./modules/es6.number.parse-int');\nrequire('./modules/es6.math.acosh');\nrequire('./modules/es6.math.asinh');\nrequire('./modules/es6.math.atanh');\nrequire('./modules/es6.math.cbrt');\nrequire('./modules/es6.math.clz32');\nrequire('./modules/es6.math.cosh');\nrequire('./modules/es6.math.expm1');\nrequire('./modules/es6.math.fround');\nrequire('./modules/es6.math.hypot');\nrequire('./modules/es6.math.imul');\nrequire('./modules/es6.math.log10');\nrequire('./modules/es6.math.log1p');\nrequire('./modules/es6.math.log2');\nrequire('./modules/es6.math.sign');\nrequire('./modules/es6.math.sinh');\nrequire('./modules/es6.math.tanh');\nrequire('./modules/es6.math.trunc');\nrequire('./modules/es6.string.from-code-point');\nrequire('./modules/es6.string.raw');\nrequire('./modules/es6.string.trim');\nrequire('./modules/es6.string.iterator');\nrequire('./modules/es6.string.code-point-at');\nrequire('./modules/es6.string.ends-with');\nrequire('./modules/es6.string.includes');\nrequire('./modules/es6.string.repeat');\nrequire('./modules/es6.string.starts-with');\nrequire('./modules/es6.string.anchor');\nrequire('./modules/es6.string.big');\nrequire('./modules/es6.string.blink');\nrequire('./modules/es6.string.bold');\nrequire('./modules/es6.string.fixed');\nrequire('./modules/es6.string.fontcolor');\nrequire('./modules/es6.string.fontsize');\nrequire('./modules/es6.string.italics');\nrequire('./modules/es6.string.link');\nrequire('./modules/es6.string.small');\nrequire('./modules/es6.string.strike');\nrequire('./modules/es6.string.sub');\nrequire('./modules/es6.string.sup');\nrequire('./modules/es6.date.now');\nrequire('./modules/es6.date.to-json');\nrequire('./modules/es6.date.to-iso-string');\nrequire('./modules/es6.date.to-string');\nrequire('./modules/es6.date.to-primitive');\nrequire('./modules/es6.array.is-array');\nrequire('./modules/es6.array.from');\nrequire('./modules/es6.array.of');\nrequire('./modules/es6.array.join');\nrequire('./modules/es6.array.slice');\nrequire('./modules/es6.array.sort');\nrequire('./modules/es6.array.for-each');\nrequire('./modules/es6.array.map');\nrequire('./modules/es6.array.filter');\nrequire('./modules/es6.array.some');\nrequire('./modules/es6.array.every');\nrequire('./modules/es6.array.reduce');\nrequire('./modules/es6.array.reduce-right');\nrequire('./modules/es6.array.index-of');\nrequire('./modules/es6.array.last-index-of');\nrequire('./modules/es6.array.copy-within');\nrequire('./modules/es6.array.fill');\nrequire('./modules/es6.array.find');\nrequire('./modules/es6.array.find-index');\nrequire('./modules/es6.array.species');\nrequire('./modules/es6.array.iterator');\nrequire('./modules/es6.regexp.constructor');\nrequire('./modules/es6.regexp.to-string');\nrequire('./modules/es6.regexp.flags');\nrequire('./modules/es6.regexp.match');\nrequire('./modules/es6.regexp.replace');\nrequire('./modules/es6.regexp.search');\nrequire('./modules/es6.regexp.split');\nrequire('./modules/es6.promise');\nrequire('./modules/es6.map');\nrequire('./modules/es6.set');\nrequire('./modules/es6.weak-map');\nrequire('./modules/es6.weak-set');\nrequire('./modules/es6.typed.array-buffer');\nrequire('./modules/es6.typed.data-view');\nrequire('./modules/es6.typed.int8-array');\nrequire('./modules/es6.typed.uint8-array');\nrequire('./modules/es6.typed.uint8-clamped-array');\nrequire('./modules/es6.typed.int16-array');\nrequire('./modules/es6.typed.uint16-array');\nrequire('./modules/es6.typed.int32-array');\nrequire('./modules/es6.typed.uint32-array');\nrequire('./modules/es6.typed.float32-array');\nrequire('./modules/es6.typed.float64-array');\nrequire('./modules/es6.reflect.apply');\nrequire('./modules/es6.reflect.construct');\nrequire('./modules/es6.reflect.define-property');\nrequire('./modules/es6.reflect.delete-property');\nrequire('./modules/es6.reflect.enumerate');\nrequire('./modules/es6.reflect.get');\nrequire('./modules/es6.reflect.get-own-property-descriptor');\nrequire('./modules/es6.reflect.get-prototype-of');\nrequire('./modules/es6.reflect.has');\nrequire('./modules/es6.reflect.is-extensible');\nrequire('./modules/es6.reflect.own-keys');\nrequire('./modules/es6.reflect.prevent-extensions');\nrequire('./modules/es6.reflect.set');\nrequire('./modules/es6.reflect.set-prototype-of');\nrequire('./modules/es7.array.includes');\nrequire('./modules/es7.string.at');\nrequire('./modules/es7.string.pad-start');\nrequire('./modules/es7.string.pad-end');\nrequire('./modules/es7.string.trim-left');\nrequire('./modules/es7.string.trim-right');\nrequire('./modules/es7.string.match-all');\nrequire('./modules/es7.symbol.async-iterator');\nrequire('./modules/es7.symbol.observable');\nrequire('./modules/es7.object.get-own-property-descriptors');\nrequire('./modules/es7.object.values');\nrequire('./modules/es7.object.entries');\nrequire('./modules/es7.object.define-getter');\nrequire('./modules/es7.object.define-setter');\nrequire('./modules/es7.object.lookup-getter');\nrequire('./modules/es7.object.lookup-setter');\nrequire('./modules/es7.map.to-json');\nrequire('./modules/es7.set.to-json');\nrequire('./modules/es7.system.global');\nrequire('./modules/es7.error.is-error');\nrequire('./modules/es7.math.iaddh');\nrequire('./modules/es7.math.isubh');\nrequire('./modules/es7.math.imulh');\nrequire('./modules/es7.math.umulh');\nrequire('./modules/es7.reflect.define-metadata');\nrequire('./modules/es7.reflect.delete-metadata');\nrequire('./modules/es7.reflect.get-metadata');\nrequire('./modules/es7.reflect.get-metadata-keys');\nrequire('./modules/es7.reflect.get-own-metadata');\nrequire('./modules/es7.reflect.get-own-metadata-keys');\nrequire('./modules/es7.reflect.has-metadata');\nrequire('./modules/es7.reflect.has-own-metadata');\nrequire('./modules/es7.reflect.metadata');\nrequire('./modules/es7.asap');\nrequire('./modules/es7.observable');\nrequire('./modules/web.timers');\nrequire('./modules/web.immediate');\nrequire('./modules/web.dom.iterable');\nmodule.exports = require('./modules/_core');","(function () {\n 'use strict';\n\n var ShimDOMException;\n var phases = {\n NONE: 0,\n CAPTURING_PHASE: 1,\n AT_TARGET: 2,\n BUBBLING_PHASE: 3\n };\n\n if (typeof DOMException === 'undefined') {\n // Todo: Better polyfill (if even needed here)\n ShimDOMException = function DOMException (msg, name) { // No need for `toString` as same as for `Error`\n var err = new Error(msg);\n err.name = name;\n return err;\n };\n } else {\n ShimDOMException = DOMException;\n }\n\n var ev = new WeakMap();\n var evCfg = new WeakMap();\n\n // Todo: Set _ev argument outside of this function\n /**\n * We use an adapter class rather than a proxy not only for compatibility but also since we have to clone\n * native event properties anyways in order to properly set `target`, etc.\n * @note The regular DOM method `dispatchEvent` won't work with this polyfill as it expects a native event\n */\n var ShimEvent = function Event (type) { // eslint-disable-line no-native-reassign\n // For WebIDL checks of function's `length`, we check `arguments` for the optional arguments\n this[Symbol.toStringTag] = 'Event';\n this.toString = function () {\n return '[object Event]';\n };\n var evInit = arguments[1];\n var _ev = arguments[2];\n if (!arguments.length) {\n throw new TypeError(\"Failed to construct 'Event': 1 argument required, but only 0 present.\");\n }\n evInit = evInit || {};\n _ev = _ev || {};\n\n var _evCfg = {};\n if ('composed' in evInit) {\n _evCfg.composed = evInit.composed;\n }\n\n // _evCfg.isTrusted = true; // We are not always using this for user-created events\n // _evCfg.timeStamp = new Date().valueOf(); // This is no longer a timestamp, but monotonic (elapsed?)\n\n ev.set(this, _ev);\n evCfg.set(this, _evCfg);\n this.initEvent(type, evInit.bubbles, evInit.cancelable);\n Object.defineProperties(this,\n ['target', 'currentTarget', 'eventPhase', 'defaultPrevented'].reduce(function (obj, prop) {\n obj[prop] = {\n get: function () {\n return (/* prop in _evCfg && */ _evCfg[prop] !== undefined) ? _evCfg[prop] : (\n prop in _ev ? _ev[prop] : (\n // Defaults\n prop === 'eventPhase' ? 0 : (prop === 'defaultPrevented' ? false : null)\n )\n );\n }\n };\n return obj;\n }, {})\n );\n var props = [\n // Event\n 'type',\n 'bubbles', 'cancelable', // Defaults to false\n 'isTrusted', 'timeStamp',\n 'initEvent',\n // Other event properties (not used by our code)\n 'composedPath', 'composed'\n ];\n if (this.toString() === '[object CustomEvent]') {\n props.push('detail', 'initCustomEvent');\n }\n\n Object.defineProperties(this, props.reduce(function (obj, prop) {\n obj[prop] = {\n get: function () {\n return prop in _evCfg ? _evCfg[prop] : (prop in _ev ? _ev[prop] : (\n ['bubbles', 'cancelable', 'composed'].indexOf(prop) > -1 ? false : undefined\n ));\n }\n };\n return obj;\n }, {}));\n };\n\n ShimEvent.prototype.preventDefault = function () {\n if (!(this instanceof ShimEvent)) {\n throw new TypeError('Illegal invocation');\n }\n var _ev = ev.get(this);\n var _evCfg = evCfg.get(this);\n if (this.cancelable && !_evCfg._passive) {\n _evCfg.defaultPrevented = true;\n if (typeof _ev.preventDefault === 'function') { // Prevent any predefined defaults\n _ev.preventDefault();\n }\n };\n };\n ShimEvent.prototype.stopImmediatePropagation = function () {\n var _evCfg = evCfg.get(this);\n _evCfg._stopImmediatePropagation = true;\n };\n ShimEvent.prototype.stopPropagation = function () {\n var _evCfg = evCfg.get(this);\n _evCfg._stopPropagation = true;\n };\n ShimEvent.prototype.initEvent = function (type, bubbles, cancelable) { // Chrome currently has function length 1 only but WebIDL says 3\n // var bubbles = arguments[1];\n // var cancelable = arguments[2];\n var _evCfg = evCfg.get(this);\n\n if (_evCfg._dispatched) {\n return;\n }\n\n _evCfg.type = type;\n if (bubbles !== undefined) {\n _evCfg.bubbles = bubbles;\n }\n if (cancelable !== undefined) {\n _evCfg.cancelable = cancelable;\n }\n };\n ['type', 'target', 'currentTarget'].forEach(function (prop) {\n Object.defineProperty(ShimEvent.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n });\n ['eventPhase', 'defaultPrevented', 'bubbles', 'cancelable', 'timeStamp'].forEach(function (prop) {\n Object.defineProperty(ShimEvent.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n });\n ['NONE', 'CAPTURING_PHASE', 'AT_TARGET', 'BUBBLING_PHASE'].forEach(function (prop, i) {\n Object.defineProperty(ShimEvent, prop, {\n enumerable: true,\n writable: false,\n value: i\n });\n Object.defineProperty(ShimEvent.prototype, prop, {\n writable: false,\n value: i\n });\n });\n ShimEvent[Symbol.toStringTag] = 'Function';\n ShimEvent.prototype[Symbol.toStringTag] = 'EventPrototype';\n Object.defineProperty(ShimEvent, 'prototype', {\n writable: false\n });\n\n var ShimCustomEvent = function CustomEvent (type) {\n var evInit = arguments[1];\n var _ev = arguments[2];\n ShimEvent.call(this, type, evInit, _ev);\n this[Symbol.toStringTag] = 'CustomEvent';\n this.toString = function () {\n return '[object CustomEvent]';\n };\n // var _evCfg = evCfg.get(this);\n evInit = evInit || {};\n this.initCustomEvent(type, evInit.bubbles, evInit.cancelable, 'detail' in evInit ? evInit.detail : null);\n };\n Object.defineProperty(ShimCustomEvent.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: ShimCustomEvent\n });\n ShimCustomEvent.prototype.initCustomEvent = function (type, bubbles, cancelable, detail) {\n if (!(this instanceof ShimCustomEvent)) {\n throw new TypeError('Illegal invocation');\n }\n var _evCfg = evCfg.get(this);\n ShimCustomEvent.call(this, type, {bubbles: bubbles, cancelable: cancelable, detail: detail}, arguments[4]);\n\n if (_evCfg._dispatched) {\n return;\n }\n\n if (detail !== undefined) {\n _evCfg.detail = detail;\n }\n Object.defineProperty(this, 'detail', {\n get: function () {\n return _evCfg.detail;\n }\n });\n };\n ShimCustomEvent[Symbol.toStringTag] = 'Function';\n ShimCustomEvent.prototype[Symbol.toStringTag] = 'CustomEventPrototype';\n Object.setPrototypeOf(ShimCustomEvent, ShimEvent); // TODO: IDL needs but reported as slow!\n Object.defineProperty(ShimCustomEvent.prototype, 'detail', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n Object.setPrototypeOf(ShimCustomEvent.prototype, ShimEvent.prototype); // TODO: IDL needs but reported as slow!\n Object.defineProperty(ShimCustomEvent, 'prototype', {\n writable: false\n });\n\n function copyEvent (ev) {\n if ('detail' in ev) {\n return new ShimCustomEvent(ev.type, {bubbles: ev.bubbles, cancelable: ev.cancelable, detail: ev.detail}, ev);\n }\n return new ShimEvent(ev.type, {bubbles: ev.bubbles, cancelable: ev.cancelable}, ev);\n }\n\n function getListenersOptions (listeners, type, options) {\n var listenersByType = listeners[type];\n if (listenersByType === undefined) listeners[type] = listenersByType = [];\n options = typeof options === 'boolean' ? {capture: options} : (options || {});\n var stringifiedOptions = JSON.stringify(options);\n var listenersByTypeOptions = listenersByType.filter(function (obj) {\n return stringifiedOptions === JSON.stringify(obj.options);\n });\n return {listenersByTypeOptions: listenersByTypeOptions, options: options, listenersByType: listenersByType};\n }\n\n var methods = {\n addListener: function addListener (listeners, listener, type, options) {\n var listenerOptions = getListenersOptions(listeners, type, options);\n var listenersByTypeOptions = listenerOptions.listenersByTypeOptions;\n options = listenerOptions.options;\n var listenersByType = listenerOptions.listenersByType;\n\n if (listenersByTypeOptions.some(function (l) {\n return l.listener === listener;\n })) return;\n listenersByType.push({listener: listener, options: options});\n },\n\n removeListener: function removeListener (listeners, listener, type, options) {\n var listenerOptions = getListenersOptions(listeners, type, options);\n var listenersByType = listenerOptions.listenersByType;\n var stringifiedOptions = JSON.stringify(listenerOptions.options);\n\n listenersByType.some(function (l, i) {\n if (l.listener === listener && stringifiedOptions === JSON.stringify(l.options)) {\n listenersByType.splice(i, 1);\n if (!listenersByType.length) delete listeners[type];\n return true;\n }\n });\n },\n\n hasListener: function hasListener (listeners, listener, type, options) {\n var listenerOptions = getListenersOptions(listeners, type, options);\n var listenersByTypeOptions = listenerOptions.listenersByTypeOptions;\n return listenersByTypeOptions.some(function (l) {\n return l.listener === listener;\n });\n }\n };\n\n function EventTarget () {\n throw new TypeError('Illegal constructor');\n }\n\n Object.assign(EventTarget.prototype, ['Early', '', 'Late', 'Default'].reduce(function (obj, listenerType) {\n ['add', 'remove', 'has'].forEach(function (method) {\n obj[method + listenerType + 'EventListener'] = function (type, listener) {\n var options = arguments[2]; // We keep the listener `length` as per WebIDL\n if (arguments.length < 2) throw new TypeError('2 or more arguments required');\n if (typeof type !== 'string') throw new ShimDOMException('UNSPECIFIED_EVENT_TYPE_ERR', 'UNSPECIFIED_EVENT_TYPE_ERR'); // eslint-disable-line eqeqeq\n if (listener.handleEvent) { listener = listener.handleEvent.bind(listener); }\n var arrStr = '_' + listenerType.toLowerCase() + (listenerType === '' ? 'l' : 'L') + 'isteners';\n if (!this[arrStr]) Object.defineProperty(this, arrStr, {value: {}});\n return methods[method + 'Listener'](this[arrStr], listener, type, options);\n };\n });\n return obj;\n }, {}));\n\n Object.assign(EventTarget.prototype, {\n __setOptions: function (customOptions) {\n customOptions = customOptions || {};\n // Todo: Make into event properties?\n this._defaultSync = customOptions.defaultSync;\n this._extraProperties = customOptions.extraProperties || [];\n if (customOptions.legacyOutputDidListenersThrowFlag) { // IndexedDB\n this._legacyOutputDidListenersThrowCheck = true;\n this._extraProperties.push('__legacyOutputDidListenersThrowError');\n }\n },\n dispatchEvent: function (ev) {\n return this._dispatchEvent(ev, true);\n },\n _dispatchEvent: function (ev, setTarget) {\n var me = this;\n ['early', '', 'late', 'default'].forEach(function (listenerType) {\n var arrStr = '_' + listenerType + (listenerType === '' ? 'l' : 'L') + 'isteners';\n if (!this[arrStr]) Object.defineProperty(this, arrStr, {value: {}});\n }, this);\n\n var _evCfg = evCfg.get(ev);\n if (_evCfg && setTarget && _evCfg._dispatched) throw new ShimDOMException('The object is in an invalid state.', 'InvalidStateError');\n\n var eventCopy;\n if (_evCfg) {\n eventCopy = ev;\n } else {\n eventCopy = copyEvent(ev);\n _evCfg = evCfg.get(eventCopy);\n _evCfg._dispatched = true;\n this._extraProperties.forEach(function (prop) {\n if (prop in ev) {\n eventCopy[prop] = ev[prop]; // Todo: Put internal to `ShimEvent`?\n }\n });\n }\n var type = eventCopy.type;\n\n function finishEventDispatch () {\n _evCfg.eventPhase = phases.NONE;\n _evCfg.currentTarget = null;\n delete _evCfg._children;\n }\n function invokeDefaults () {\n // Ignore stopPropagation from defaults\n _evCfg._stopImmediatePropagation = undefined;\n _evCfg._stopPropagation = undefined;\n // We check here for whether we should invoke since may have changed since timeout (if late listener prevented default)\n if (!eventCopy.defaultPrevented || !_evCfg.cancelable) { // 2nd check should be redundant\n _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke default listeners\n eventCopy.target.invokeCurrentListeners(eventCopy.target._defaultListeners, eventCopy, type);\n }\n finishEventDispatch();\n }\n function continueEventDispatch () {\n // Ignore stop propagation of user now\n _evCfg._stopImmediatePropagation = undefined;\n _evCfg._stopPropagation = undefined;\n if (!me._defaultSync) {\n setTimeout(invokeDefaults, 0);\n } else invokeDefaults();\n\n _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke late listeners\n // Sync default might have stopped\n if (!_evCfg._stopPropagation) {\n _evCfg._stopImmediatePropagation = undefined;\n _evCfg._stopPropagation = undefined;\n // We could allow stopPropagation by only executing upon (_evCfg._stopPropagation)\n eventCopy.target.invokeCurrentListeners(eventCopy.target._lateListeners, eventCopy, type);\n }\n finishEventDispatch();\n\n return !eventCopy.defaultPrevented;\n }\n\n if (setTarget) _evCfg.target = this;\n\n switch (eventCopy.eventPhase) {\n default: case phases.NONE:\n\n _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke early listeners\n this.invokeCurrentListeners(this._earlyListeners, eventCopy, type);\n if (!this.__getParent) {\n _evCfg.eventPhase = phases.AT_TARGET;\n return this._dispatchEvent(eventCopy, false);\n }\n\n var par = this;\n var root = this;\n while (par.__getParent && (par = par.__getParent()) !== null) {\n if (!_evCfg._children) {\n _evCfg._children = [];\n }\n _evCfg._children.push(root);\n root = par;\n }\n root._defaultSync = me._defaultSync;\n _evCfg.eventPhase = phases.CAPTURING_PHASE;\n return root._dispatchEvent(eventCopy, false);\n case phases.CAPTURING_PHASE:\n if (_evCfg._stopPropagation) {\n return continueEventDispatch();\n }\n this.invokeCurrentListeners(this._listeners, eventCopy, type);\n var child = _evCfg._children && _evCfg._children.length && _evCfg._children.pop();\n if (!child || child === eventCopy.target) {\n _evCfg.eventPhase = phases.AT_TARGET;\n }\n if (child) child._defaultSync = me._defaultSync;\n return (child || this)._dispatchEvent(eventCopy, false);\n case phases.AT_TARGET:\n if (_evCfg._stopPropagation) {\n return continueEventDispatch();\n }\n this.invokeCurrentListeners(this._listeners, eventCopy, type, true);\n if (!_evCfg.bubbles) {\n return continueEventDispatch();\n }\n _evCfg.eventPhase = phases.BUBBLING_PHASE;\n return this._dispatchEvent(eventCopy, false);\n case phases.BUBBLING_PHASE:\n if (_evCfg._stopPropagation) {\n return continueEventDispatch();\n }\n var parent = this.__getParent && this.__getParent();\n if (!parent) {\n return continueEventDispatch();\n }\n parent.invokeCurrentListeners(parent._listeners, eventCopy, type, true);\n parent._defaultSync = me._defaultSync;\n return parent._dispatchEvent(eventCopy, false);\n }\n },\n invokeCurrentListeners: function (listeners, eventCopy, type, checkOnListeners) {\n var _evCfg = evCfg.get(eventCopy);\n var me = this;\n _evCfg.currentTarget = this;\n\n var listOpts = getListenersOptions(listeners, type, {});\n var listenersByType = listOpts.listenersByType.concat();\n var dummyIPos = listenersByType.length ? 1 : 0;\n\n listenersByType.some(function (listenerObj, i) {\n var onListener = checkOnListeners ? me['on' + type] : null;\n if (_evCfg._stopImmediatePropagation) return true;\n if (i === dummyIPos && typeof onListener === 'function') {\n // We don't splice this in as could be overwritten; executes here per\n // https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-attributes:event-handlers-14\n this.tryCatch(eventCopy, function () {\n var ret = onListener.call(eventCopy.currentTarget, eventCopy);\n if (ret === false) {\n eventCopy.preventDefault();\n }\n });\n }\n var options = listenerObj.options;\n var once = options.once; // Remove listener after invoking once\n var passive = options.passive; // Don't allow `preventDefault`\n var capture = options.capture; // Use `_children` and set `eventPhase`\n _evCfg._passive = passive;\n\n if ((capture && eventCopy.target !== eventCopy.currentTarget && eventCopy.eventPhase === phases.CAPTURING_PHASE) ||\n (eventCopy.eventPhase === phases.AT_TARGET ||\n (!capture && eventCopy.target !== eventCopy.currentTarget && eventCopy.eventPhase === phases.BUBBLING_PHASE))\n ) {\n var listener = listenerObj.listener;\n this.tryCatch(eventCopy, function () {\n listener.call(eventCopy.currentTarget, eventCopy);\n });\n if (once) {\n this.removeEventListener(type, listener, options);\n }\n }\n }, this);\n this.tryCatch(eventCopy, function () {\n var onListener = checkOnListeners ? me['on' + type] : null;\n if (typeof onListener === 'function' && listenersByType.length < 2) {\n var ret = onListener.call(eventCopy.currentTarget, eventCopy); // Won't have executed if too short\n if (ret === false) {\n eventCopy.preventDefault();\n }\n }\n });\n\n return !eventCopy.defaultPrevented;\n },\n tryCatch: function (ev, cb) {\n try {\n // Per MDN: Exceptions thrown by event handlers are reported\n // as uncaught exceptions; the event handlers run on a nested\n // callstack: they block the caller until they complete, but\n // exceptions do not propagate to the caller.\n cb();\n } catch (err) {\n this.triggerErrorEvent(err, ev);\n }\n },\n triggerErrorEvent: function (err, ev) {\n var error = err;\n if (typeof err === 'string') {\n error = new Error('Uncaught exception: ' + err);\n }\n\n var triggerGlobalErrorEvent;\n var useNodeImpl = false;\n if (typeof window === 'undefined' || typeof ErrorEvent === 'undefined' || (\n window && typeof window === 'object' && !window.dispatchEvent)\n ) {\n useNodeImpl = true;\n triggerGlobalErrorEvent = function () {\n setTimeout(function () { // Node won't be able to catch in this way if we throw in the main thread\n // console.log(err); // Should we auto-log for user?\n throw error; // Let user listen to `process.on('uncaughtException', function(err) {});`\n });\n };\n } else {\n triggerGlobalErrorEvent = function () {\n // See https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n // and https://github.com/w3c/IndexedDB/issues/49\n\n // Note that a regular Event will properly trigger\n // `window.addEventListener('error')` handlers, but it will not trigger\n // `window.onerror` as per https://html.spec.whatwg.org/multipage/webappapis.html#handler-onerror\n // Note also that the following line won't handle `window.addEventListener` handlers\n // if (window.onerror) window.onerror(error.message, err.fileName, err.lineNumber, error.columnNumber, error);\n\n // `ErrorEvent` properly triggers `window.onerror` and `window.addEventListener('error')` handlers\n var errEv = new ErrorEvent('error', {\n error: err,\n message: error.message || '',\n // We can't get the actually useful user's values!\n filename: error.fileName || '',\n lineno: error.lineNumber || 0,\n colno: error.columnNumber || 0\n });\n window.dispatchEvent(errEv);\n // console.log(err); // Should we auto-log for user?\n };\n }\n\n // Todo: This really should always run here but as we can't set the global\n // `window` (e.g., using jsdom) since `setGlobalVars` becomes unable to\n // shim `indexedDB` in such a case currently (apparently due to\n // ), we can't\n // avoid the above Node implementation (which, while providing some\n // fallback mechanism, is unstable)\n if (!useNodeImpl || !this._legacyOutputDidListenersThrowCheck) triggerGlobalErrorEvent();\n\n // See https://dom.spec.whatwg.org/#concept-event-listener-inner-invoke and\n // https://github.com/w3c/IndexedDB/issues/140 (also https://github.com/w3c/IndexedDB/issues/49 )\n if (this._legacyOutputDidListenersThrowCheck) {\n ev.__legacyOutputDidListenersThrowError = error;\n }\n }\n });\n EventTarget.prototype[Symbol.toStringTag] = 'EventTargetPrototype';\n\n Object.defineProperty(EventTarget, 'prototype', {\n writable: false\n });\n\n var ShimEventTarget = EventTarget;\n var EventTargetFactory = {\n createInstance: function (customOptions) {\n function EventTarget () {\n this.__setOptions(customOptions);\n }\n EventTarget.prototype = ShimEventTarget.prototype;\n return new EventTarget();\n }\n };\n\n EventTarget.ShimEvent = ShimEvent;\n EventTarget.ShimCustomEvent = ShimCustomEvent;\n EventTarget.ShimDOMException = ShimDOMException;\n EventTarget.ShimEventTarget = EventTarget;\n EventTarget.EventTargetFactory = EventTargetFactory;\n\n // Todo: Move to own library (but allowing WeakMaps to be passed in for sharing here)\n\n var exportObj = (typeof module !== 'undefined' && module.exports) ? exports : window;\n exportObj.ShimEvent = ShimEvent;\n exportObj.ShimCustomEvent = ShimCustomEvent;\n exportObj.ShimDOMException = ShimDOMException;\n exportObj.ShimEventTarget = EventTarget;\n exportObj.EventTargetFactory = EventTargetFactory;\n}());\n","/**\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * https://raw.github.com/facebook/regenerator/master/LICENSE file. An\n * additional grant of patent rights can be found in the PATENTS file in\n * the same directory.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n if (typeof process === \"object\" && process.domain) {\n invoke = process.domain.bind(invoke);\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // Among the various tricks for obtaining a reference to the global\n // object, this seems to be the most reliable technique that does not\n // use indirect eval (which violates Content Security Policy).\n typeof global === \"object\" ? global :\n typeof window === \"object\" ? window :\n typeof self === \"object\" ? self : this\n);\n","// Since [immediate](https://github.com/calvinmetcalf/immediate) is\n// not doing the trick for our WebSQL transactions (at least in Node),\n// we are forced to make the promises run fully synchronously.\n\nfunction isPromise(p) {\n return p && typeof p.then === 'function';\n}\nfunction addReject(prom, reject) {\n prom.then(null, reject) // Use this style for sake of non-Promise thenables (e.g., jQuery Deferred)\n}\n\n// States\nvar PENDING = 2,\n FULFILLED = 0, // We later abuse these as array indices\n REJECTED = 1;\n\nfunction SyncPromise(fn) {\n var self = this;\n self.v = 0; // Value, this will be set to either a resolved value or rejected reason\n self.s = PENDING; // State of the promise\n self.c = [[],[]]; // Callbacks c[0] is fulfillment and c[1] contains rejection callbacks\n function transist(val, state) {\n self.v = val;\n self.s = state;\n self.c[state].forEach(function(fn) { fn(val); });\n // Release memory, but if no handlers have been added, as we\n // assume that we will resolve/reject (truly) synchronously\n // and thus we avoid flagging checks about whether we've\n // already resolved/rejected.\n if (self.c[state].length) self.c = null;\n }\n function resolve(val) {\n if (!self.c) {\n // Already resolved (or will be resolved), do nothing.\n } else if (isPromise(val)) {\n addReject(val.then(resolve), reject);\n } else {\n transist(val, FULFILLED);\n }\n }\n function reject(reason) {\n if (!self.c) {\n // Already resolved (or will be resolved), do nothing.\n } else if (isPromise(reason)) {\n addReject(reason.then(reject), reject);\n } else {\n transist(reason, REJECTED);\n }\n }\n try {\n fn(resolve, reject);\n } catch (err) {\n reject(err);\n }\n}\n\nvar prot = SyncPromise.prototype;\n\nprot.then = function(cb, errBack) {\n var self = this;\n return new SyncPromise(function(resolve, reject) {\n var rej = typeof errBack === 'function' ? errBack : reject;\n function settle() {\n try {\n resolve(cb ? cb(self.v) : self.v);\n } catch(e) {\n rej(e);\n }\n }\n if (self.s === FULFILLED) {\n settle();\n } else if (self.s === REJECTED) {\n rej(self.v);\n } else {\n self.c[FULFILLED].push(settle);\n self.c[REJECTED].push(rej);\n }\n });\n};\n\nprot.catch = function(cb) {\n var self = this;\n return new SyncPromise(function(resolve, reject) {\n function settle() {\n try {\n resolve(cb(self.v));\n } catch(e) {\n reject(e);\n }\n }\n if (self.s === REJECTED) {\n settle();\n } else if (self.s === FULFILLED) {\n resolve(self.v);\n } else {\n self.c[REJECTED].push(settle);\n self.c[FULFILLED].push(resolve);\n }\n });\n};\n\nSyncPromise.all = function(promises) {\n return new SyncPromise(function(resolve, reject, l) {\n l = promises.length;\n var hasPromises = false;\n var newPromises = [];\n if (!l) {\n resolve(newPromises);\n return;\n }\n promises.forEach(function(p, i) {\n if (isPromise(p)) {\n addReject(p.then(function(res) {\n newPromises[i] = res;\n --l || resolve(newPromises);\n }), reject);\n } else {\n newPromises[i] = p;\n --l || resolve(promises);\n }\n });\n });\n};\n\nSyncPromise.race = function(promises) {\n var resolved = false;\n return new SyncPromise(function(resolve, reject) {\n promises.some(function(p, i) {\n if (isPromise(p)) {\n addReject(p.then(function(res) {\n if (resolved) {\n return;\n }\n resolve(res);\n resolved = true;\n }), reject);\n } else {\n resolve(p);\n resolved = true;\n return true;\n }\n });\n });\n};\n\nSyncPromise.resolve = function(val) {\n return new SyncPromise(function(resolve, reject) {\n resolve(val);\n });\n};\n\nSyncPromise.reject = function(val) {\n return new SyncPromise(function(resolve, reject) {\n reject(val);\n });\n};\nmodule.exports = SyncPromise;\n","module.exports = [\n {\n sparseArrays: {\n testPlainObjects: true,\n test: function (x) {return Array.isArray(x);},\n replace: function (a, stateObj) {\n stateObj.iterateUnsetNumeric = true;\n return a;\n }\n }\n },\n {\n sparseUndefined: {\n test: function (x, stateObj) { return typeof x === 'undefined' && stateObj.ownKeys === false; },\n replace: function (n) { return null; },\n revive: function (s) { return undefined;} // Will avoid adding anything\n }\n }\n];\n","module.exports = require('./structured-cloning').concat({checkDataCloneException: [function (val) {\n // Should also throw with:\n // 1. `IsDetachedBuffer` (a process not called within the ECMAScript spec)\n // 2. `IsCallable` (covered by `typeof === 'function'` or a function's `toStringTag`)\n // 3. internal slots besides [[Prototype]] or [[Extensible]] (e.g., [[PromiseState]] or [[WeakMapData]])\n // 4. exotic object (e.g., `Proxy`) (which does not have default behavior for one or more of the\n // essential internal methods that are limited to the following for non-function objects (we auto-exclude functions):\n // [[GetPrototypeOf]],[[SetPrototypeOf]],[[IsExtensible]],[[PreventExtensions]],[[GetOwnProperty]],\n // [[DefineOwnProperty]],[[HasProperty]],[[Get]],[[Set]],[[Delete]],[[OwnPropertyKeys]]);\n // except for the standard, built-in exotic objects, we'd need to know whether these methods had distinct behaviors\n // Note: There is no apparent way for us to detect a `Proxy` and reject (Chrome at least is not rejecting anyways)\n var stringTag = ({}.toString.call(val).slice(8, -1));\n if ([\n 'symbol', // Symbol's `toStringTag` is only \"Symbol\" for its initial value, so we check `typeof`\n 'function' // All functions including bound function exotic objects\n ].includes(typeof val) ||\n [\n 'Arguments', // A non-array exotic object\n 'Module', // A non-array exotic object\n 'Error', // `Error` and other errors have the [[ErrorData]] internal slot and give \"Error\"\n 'Promise', // Promise instances have an extra slot ([[PromiseState]]) but not throwing in Chrome `postMessage`\n 'WeakMap', // WeakMap instances have an extra slot ([[WeakMapData]]) but not throwing in Chrome `postMessage`\n 'WeakSet' // WeakSet instances have an extra slot ([[WeakSetData]]) but not throwing in Chrome `postMessage`\n ].includes(stringTag) ||\n val === Object.prototype || // A non-array exotic object but not throwing in Chrome `postMessage`\n ((stringTag === 'Blob' || stringTag === 'File') && val.isClosed) ||\n (val && typeof val === 'object' && typeof val.nodeType === 'number' && typeof val.insertBefore === 'function') // Duck-type DOM node objects (non-array exotic? objects which cannot be cloned by the SCA)\n ) {\n throw new DOMException('The object cannot be cloned.', 'DataCloneError');\n }\n return false;\n}]});\n","/* This preset includes types for the Structured Cloning Algorithm. */\nmodule.exports = [\n // Todo: Might also register `ImageBitmap` and synchronous `Blob`/`File`/`FileList`\n // ES5\n require('../types/user-object'), // Processed last\n require('../presets/undefined'),\n require('../types/primitive-objects'),\n require('../types/special-numbers'),\n require('../types/date'),\n require('../types/regexp'),\n // ES2015 (ES6)\n typeof Map === 'function' && require('../types/map'),\n typeof Set === 'function' && require('../types/set'),\n typeof ArrayBuffer === 'function' && require('../types/arraybuffer'),\n typeof Uint8Array === 'function' && require('../types/typed-arrays'),\n typeof DataView === 'function' && require('../types/dataview'),\n typeof Intl !== 'undefined' && require('../types/intl-types'),\n // Non-built-ins\n require('../types/imagedata'),\n require('../types/imagebitmap'), // Async return\n require('../types/file'),\n require('../types/filelist'),\n require('../types/blob')\n];\n","module.exports = [\n require('../presets/sparse-undefined'),\n require('../types/undefined')\n];\n","var Typeson = require('typeson');\nvar B64 = require ('base64-arraybuffer');\n\nexports.ArrayBuffer = [\n function test (x) { return Typeson.toStringTag(x) === 'ArrayBuffer';},\n function encapsulate (b) { return B64.encode(b); },\n function revive (b64) { return B64.decode(b64); }\n];\n// See also typed-arrays!\n","var Typeson = require('typeson');\nexports.Blob = {\n test: function (x) { return Typeson.toStringTag(x) === 'Blob'; },\n replace: function encapsulate (b) { // Sync\n var req = new XMLHttpRequest();\n req.open('GET', URL.createObjectURL(b), false); // Sync\n if (req.status !== 200 && req.status !== 0) throw new Error('Bad Blob access: ' + req.status);\n req.send();\n return {\n type: b.type,\n stringContents: req.responseText\n };\n },\n revive: function (o) {return new Blob([o.stringContents], {\n type: o.type\n });},\n replaceAsync: function encapsulateAsync (b) {\n return new Typeson.Promise(function (resolve, reject) {\n if (b.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob\n reject(new Error('The Blob is closed'));\n return;\n }\n var reader = new FileReader();\n reader.addEventListener('load', function () {\n resolve({\n type: b.type,\n stringContents: reader.result\n });\n });\n reader.addEventListener('error', function () {\n reject(reader.error);\n });\n reader.readAsText(b);\n });\n }\n};\n","var Typeson = require('typeson');\nvar B64 = require ('base64-arraybuffer');\nexports.DataView = [\n function (x) { return Typeson.toStringTag(x) === 'DataView'; },\n function (dw) { return { buffer: B64.encode(dw.buffer), byteOffset: dw.byteOffset, byteLength: dw.byteLength }; },\n function (obj) { return new DataView(B64.decode(obj.buffer), obj.byteOffset, obj.byteLength); }\n];\n","var Typeson = require('typeson');\nexports.Date = [\n function (x) { return Typeson.toStringTag(x) === 'Date'; },\n function (date) { return date.getTime(); },\n function (time) { return new Date(time); }\n];\n","var Typeson = require('typeson');\nexports.File = {\n test: function (x) { return Typeson.toStringTag(x) === 'File'; },\n replace: function encapsulate (f) { // Sync\n var req = new XMLHttpRequest();\n req.open('GET', URL.createObjectURL(f), false); // Sync\n if (req.status !== 200 && req.status !== 0) throw new Error('Bad Blob access: ' + req.status);\n req.send();\n return {\n type: f.type,\n stringContents: req.responseText,\n name: f.name,\n lastModified: f.lastModified\n };\n },\n revive: function (o) {return new File([o.stringContents], o.name, {\n type: o.type,\n lastModified: o.lastModified\n });},\n replaceAsync: function encapsulateAsync (f) {\n return new Typeson.Promise(function (resolve, reject) {\n if (f.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob\n reject(new Error('The File is closed'));\n return;\n }\n var reader = new FileReader();\n reader.addEventListener('load', function () {\n resolve({\n type: f.type,\n stringContents: reader.result,\n name: f.name,\n lastModified: f.lastModified\n });\n });\n reader.addEventListener('error', function () {\n reject(reader.error);\n });\n reader.readAsText(f);\n });\n }\n};\n","var Typeson = require('typeson');\nexports.File = require('./file').File;\nexports.FileList = {\n test: function (x) { return Typeson.toStringTag(x) === 'FileList'; },\n replace: function (fl) {\n var arr = [];\n for (var i = 0; i < fl.length; i++) {\n arr[i] = fl.item(i);\n }\n return arr;\n },\n revive: function (o) {\n function FileList () {\n this._files = arguments[0];\n this.length = this._files.length;\n }\n FileList.prototype.item = function (index) {\n return this._files[index];\n };\n FileList.prototype[Symbol.toStringTag] = 'FileList';\n return new FileList(o);\n }\n};\n","/** ImageBitmap is browser / DOM specific. It also can only work same-domain (or CORS)\n*/\nvar Typeson = require('typeson');\nexports.ImageBitmap = {\n test: function (x) { return Typeson.toStringTag(x) === 'ImageBitmap'; },\n replace: function (bm) {\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n ctx.drawImage(bm, 0, 0);\n // Although `width` and `height` are part of `ImageBitMap`, these will\n // be auto-created for us when reviving with the data URL (and they are\n // not settable even if they weren't)\n // return {width: bm.width, height: bm.height, dataURL: canvas.toDataURL()};\n return canvas.toDataURL();\n },\n revive: function (o) {\n /*\n var req = new XMLHttpRequest();\n req.open('GET', o, false); // Sync\n if (req.status !== 200 && req.status !== 0) throw new Error('Bad ImageBitmap access: ' + req.status);\n req.send();\n return req.responseText;\n */\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var img = document.createElement('img');\n // The onload is needed by some browsers per http://stackoverflow.com/a/4776378/271577\n img.onload = function () {\n ctx.drawImage(img, 0, 0);\n };\n img.src = o;\n return canvas; // Works in contexts allowing an ImageBitmap (We might use `OffscreenCanvas.transferToBitmap` when supported)\n },\n reviveAsync: function reviveAsync (o) {\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var img = document.createElement('img');\n // The onload is needed by some browsers per http://stackoverflow.com/a/4776378/271577\n img.onload = function () {\n ctx.drawImage(img, 0, 0);\n };\n img.src = o; // o.dataURL;\n return createImageBitmap(canvas); // Returns a promise\n }\n};\n","/** ImageData is browser / DOM specific (though `node-canvas` has it available on `Canvas`).\n*/\nvar Typeson = require('typeson');\nexports.ImageData = [\n function (x) { return Typeson.toStringTag(x) === 'ImageData'; },\n function (d) {\n return {\n array: Array.from(d.data), // Ensure `length` gets preserved for revival\n width: d.width,\n height: d.height\n };\n },\n function (o) {return new ImageData(new Uint8ClampedArray(o.array), o.width, o.height);}\n];\n","var Typeson = require('typeson');\nexports[\"Intl.Collator\"] = [\n function (x) { return Typeson.hasConstructorOf(x, Intl.Collator); },\n function (c) { return c.resolvedOptions(); },\n function (options) { return new Intl.Collator(options.locale, options); }\n];\n\nexports[\"Intl.DateTimeFormat\"] = [\n function (x) { return Typeson.hasConstructorOf(x, Intl.DateTimeFormat); },\n function (dtf) { return dtf.resolvedOptions(); },\n function (options) { return new Intl.DateTimeFormat(options.locale, options); }\n];\n\nexports[\"Intl.NumberFormat\"] = [\n function (x) { return Typeson.hasConstructorOf(x, Intl.NumberFormat); },\n function (nf) { return nf.resolvedOptions(); },\n function (options) { return new Intl.NumberFormat(options.locale, options); }\n];\n","var Typeson = require('typeson');\nvar makeArray = require('../utils/array-from-iterator');\nexports.Map = [\n function (x) { return Typeson.toStringTag(x) === 'Map'; },\n function (map) { return makeArray(map.entries()); },\n function (entries) { return new Map(entries); }\n];\n","// This module is for objectified primitives (such as new Number(3) or\n// new String(\"foo\"))\nvar Typeson = require('typeson');\nmodule.exports = {\n // String Object (not primitive string which need no type spec)\n StringObject: [\n function (x) { return Typeson.toStringTag(x) === 'String' && typeof x === 'object'; },\n function (s) { return String(s); }, // convert to primitive string\n function (s) { return new String(s); } // Revive to an objectified string\n ],\n // Boolean Object (not primitive boolean which need no type spec)\n BooleanObject: [\n function (x) { return Typeson.toStringTag(x) === 'Boolean' && typeof x === 'object'; },\n function (b) { return Boolean(b); }, // convert to primitive boolean\n function (b) { return new Boolean(b); } // Revive to an objectified Boolean\n ],\n // Number Object (not primitive number which need no type spec)\n NumberObject: [\n function (x) { return Typeson.toStringTag(x) === 'Number' && typeof x === 'object'; },\n function (n) { return Number(n); }, // convert to primitive number\n function (n) { return new Number(n); } // Revive to an objectified number\n ]\n};\n","var Typeson = require('typeson');\nexports.RegExp = [\n function (x) { return Typeson.toStringTag(x) === 'RegExp'; },\n function (rexp) {\n return {\n source: rexp.source,\n flags: (rexp.global?'g':'')+(rexp.ignoreCase?'i':'')+(rexp.multiline?'m':'')+(rexp.sticky?'y':'')+(rexp.unicode?'u':'')\n };\n },\n function (data) { return new RegExp (data.source, data.flags); }\n];\n","var Typeson = require('typeson');\nvar makeArray = require('../utils/array-from-iterator');\nexports.Set = [\n function (x) { return Typeson.toStringTag(x) === 'Set'; },\n function (set) { return makeArray(set.values()); },\n function (values) { return new Set(values); }\n];\n","exports.SpecialNumber = [\n function (x) { return typeof x === 'number' && (isNaN(x) || x === Infinity || x === -Infinity); },\n function (n) { return isNaN(n) ? \"NaN\" : n > 0 ? \"Infinity\" : \"-Infinity\" },\n function (s) { return {NaN: NaN, Infinity: Infinity, \"-Infinity\": -Infinity}[s];}\n];\n","var Typeson = require('typeson');\nvar B64 = require ('base64-arraybuffer');\n\nvar _global = typeof self === 'undefined' ? global : self;\n\n[\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Uint16Array\",\n \"Int32Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Float64Array\"\n].forEach(function (typeName) {\n var TypedArray = _global[typeName];\n if (TypedArray) exports[typeName] = [\n function test (x) { return Typeson.toStringTag(x) === typeName; },\n function encapsulate (a) { return B64.encode (a.buffer, a.byteOffset, a.byteLength); },\n function revive (b64) { return new TypedArray (B64.decode(b64)); }\n ];\n});\n","// This does not preserve `undefined` in sparse arrays; see the `undefined` or `sparse-undefined` preset\nvar Typeson = require('typeson');\nmodule.exports = {\n undefined: [\n function (x, stateObj) { return typeof x === 'undefined' && (stateObj.ownKeys || !('ownKeys' in stateObj)); },\n function (n) { return null; },\n function (s) { return new Typeson.Undefined();} // Will add `undefined` (returning `undefined` would instead avoid explicitly setting)\n ]\n};\n","var Typeson = require('typeson');\nexports.userObjects = [\n function (x, stateObj) { return Typeson.isUserObject(x); },\n function (n) { return Object.assign({}, n); },\n function (s) { return s;}\n];\n","module.exports = Array.from || function (iterator) {\n var res = [];\n for (var i=iterator.next(); !i.done; i = iterator.next()) {\n res.push(i.value);\n }\n return res;\n}\n","var keys = Object.keys,\n isArray = Array.isArray,\n toString = ({}.toString),\n getProto = Object.getPrototypeOf,\n hasOwn = ({}.hasOwnProperty),\n fnToString = hasOwn.toString;\n\nfunction isThenable (v, catchCheck) {\n return Typeson.isObject(v) && typeof v.then === 'function' && (!catchCheck || typeof v.catch === 'function');\n}\n\nfunction toStringTag (val) {\n return toString.call(val).slice(8, -1);\n}\n\nfunction hasConstructorOf (a, b) {\n if (!a || typeof a !== 'object') {\n return false;\n }\n var proto = getProto(a);\n if (!proto) {\n return false;\n }\n var Ctor = hasOwn.call(proto, 'constructor') && proto.constructor;\n if (typeof Ctor !== 'function') {\n return b === null;\n }\n return typeof Ctor === 'function' && b !== null && fnToString.call(Ctor) === fnToString.call(b);\n}\n\nfunction isPlainObject (val) { // Mirrors jQuery's\n if (!val || toStringTag(val) !== 'Object') {\n return false;\n }\n\n var proto = getProto(val);\n if (!proto) { // `Object.create(null)`\n return true;\n }\n\n return hasConstructorOf(val, Object);\n}\n\nfunction isUserObject (val) {\n if (!val || toStringTag(val) !== 'Object') {\n return false;\n }\n\n var proto = getProto(val);\n if (!proto) { // `Object.create(null)`\n return true;\n }\n return hasConstructorOf(val, Object) || isUserObject(proto);\n}\n\nfunction isObject (v) {\n return v && typeof v === 'object'\n}\n\n/* Typeson - JSON with types\n * License: The MIT License (MIT)\n * Copyright (c) 2016 David Fahlander\n */\n\n/** An instance of this class can be used to call stringify() and parse().\n * Typeson resolves cyclic references by default. Can also be extended to\n * support custom types using the register() method.\n *\n * @constructor\n * @param {{cyclic: boolean}} [options] - if cyclic (default true), cyclic references will be handled gracefully.\n */\nfunction Typeson (options) {\n // Replacers signature: replace (value). Returns falsy if not replacing. Otherwise ['Date', value.getTime()]\n var plainObjectReplacers = [];\n var nonplainObjectReplacers = [];\n // Revivers: map {type => reviver}. Sample: {'Date': value => new Date(value)}\n var revivers = {};\n\n /** Types registered via register() */\n var regTypes = this.types = {};\n\n /** Serialize given object to Typeson.\n *\n * Arguments works identical to those of JSON.stringify().\n */\n var stringify = this.stringify = function (obj, replacer, space, opts) { // replacer here has nothing to do with our replacers.\n opts = Object.assign({}, options, opts, {stringification: true});\n var encapsulated = encapsulate(obj, null, opts);\n if (isArray(encapsulated)) {\n return JSON.stringify(encapsulated[0], replacer, space);\n }\n return encapsulated.then(function (res) {\n return JSON.stringify(res, replacer, space);\n });\n };\n\n // Also sync but throws on non-sync result\n this.stringifySync = function (obj, replacer, space, opts) {\n return stringify(obj, replacer, space, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true}));\n };\n this.stringifyAsync = function (obj, replacer, space, opts) {\n return stringify(obj, replacer, space, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false}));\n };\n\n /** Parse Typeson back into an obejct.\n *\n * Arguments works identical to those of JSON.parse().\n */\n var parse = this.parse = function (text, reviver, opts) {\n opts = Object.assign({}, options, opts, {parse: true});\n return revive(JSON.parse(text, reviver), opts); // This reviver has nothing to do with our revivers.\n };\n\n // Also sync but throws on non-sync result\n this.parseSync = function (text, reviver, opts) {\n return parse(text, reviver, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true})); // This reviver has nothing to do with our revivers.\n };\n this.parseAsync = function (text, reviver, opts) {\n return parse(text, reviver, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false})); // This reviver has nothing to do with our revivers.\n };\n\n /** Encapsulate a complex object into a plain Object by replacing registered types with\n * plain objects representing the types data.\n *\n * This method is used internally by Typeson.stringify().\n * @param {Object} obj - Object to encapsulate.\n */\n var encapsulate = this.encapsulate = function (obj, stateObj, opts) {\n opts = Object.assign({sync: true}, options, opts);\n var sync = opts.sync;\n var types = {},\n refObjs = [], // For checking cyclic references\n refKeys = [], // For checking cyclic references\n promisesDataRoot = [];\n // Clone the object deeply while at the same time replacing any special types or cyclic reference:\n var cyclic = opts && ('cyclic' in opts) ? opts.cyclic : true;\n var ret = _encapsulate('', obj, cyclic, stateObj || {}, promisesDataRoot);\n function finish (ret) {\n // Add $types to result only if we ever bumped into a special type (or special case where object has own `$types`)\n if (keys(types).length) {\n if (!ret || !isPlainObject(ret) || // Special if array (or a primitive) was serialized because JSON would ignore custom `$types` prop on it\n ret.hasOwnProperty('$types') // Also need to handle if this is an object with its own `$types` property (to avoid ambiguity)\n ) ret = {$: ret, $types: {$: types}};\n else ret.$types = types;\n } else if (isObject(ret) && ret.hasOwnProperty('$types')) {\n ret = {$: ret, $types: true};\n }\n return ret;\n }\n function checkPromises (ret, promisesData) {\n return Promise.all(\n promisesData.map(function (pd) {return pd[1].p;})\n ).then(function (promResults) {\n return Promise.all(\n promResults.map(function (promResult) {\n var newPromisesData = [];\n var prData = promisesData.splice(0, 1)[0];\n // var [keypath, , cyclic, stateObj, parentObj, key] = prData;\n var keyPath = prData[0];\n var cyclic = prData[2];\n var stateObj = prData[3];\n var parentObj = prData[4];\n var key = prData[5];\n var encaps = _encapsulate(keyPath, promResult, cyclic, stateObj, newPromisesData);\n var isTypesonPromise = hasConstructorOf(encaps, TypesonPromise);\n if (keyPath && isTypesonPromise) { // Handle case where an embedded custom type itself returns a `Typeson.Promise`\n return encaps.p.then(function (encaps2) {\n parentObj[key] = encaps2;\n return checkPromises(ret, newPromisesData);\n });\n }\n if (keyPath) parentObj[key] = encaps;\n else if (isTypesonPromise) { ret = encaps.p; }\n else ret = encaps; // If this is itself a `Typeson.Promise` (because the original value supplied was a promise or because the supplied custom type value resolved to one), returning it below will be fine since a promise is expected anyways given current config (and if not a promise, it will be ready as the resolve value)\n return checkPromises(ret, newPromisesData);\n })\n );\n }).then(function () {\n return ret;\n });\n };\n return promisesDataRoot.length\n ? sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Sync method requested but async result obtained\");\n }())\n : Promise.resolve(checkPromises(ret, promisesDataRoot)).then(finish)\n : !sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Async method requested but sync result obtained\");\n }())\n : (opts.stringification && sync // If this is a synchronous request for stringification, yet a promise is the result, we don't want to resolve leading to an async result, so we return an array to avoid ambiguity\n ? [finish(ret)]\n : (sync\n ? finish(ret)\n : Promise.resolve(finish(ret))\n ));\n\n function _encapsulate (keypath, value, cyclic, stateObj, promisesData) {\n var $typeof = typeof value;\n if ($typeof in {string: 1, boolean: 1, number: 1, undefined: 1 })\n return value === undefined || ($typeof === 'number' &&\n (isNaN(value) || value === -Infinity || value === Infinity)) ?\n replace(keypath, value, stateObj, promisesData) :\n value;\n if (value === null) return value;\n if (cyclic && !stateObj.iterateIn && !stateObj.iterateUnsetNumeric) {\n // Options set to detect cyclic references and be able to rewrite them.\n var refIndex = refObjs.indexOf(value);\n if (refIndex < 0) {\n if (cyclic === true) {\n refObjs.push(value);\n refKeys.push(keypath);\n }\n } else {\n types[keypath] = '#';\n return '#' + refKeys[refIndex];\n }\n }\n var isPlainObj = isPlainObject(value);\n var isArr = isArray(value);\n var replaced = (\n ((isPlainObj || isArr) && (!plainObjectReplacers.length || stateObj.replaced)) ||\n stateObj.iterateIn // Running replace will cause infinite loop as will test positive again\n )\n // Optimization: if plain object and no plain-object replacers, don't try finding a replacer\n ? value\n : replace(keypath, value, stateObj, promisesData, isPlainObj || isArr);\n if (replaced !== value) return replaced;\n var clone;\n if (isArr || stateObj.iterateIn === 'array')\n clone = new Array(value.length);\n else if (isPlainObj || stateObj.iterateIn === 'object')\n clone = {};\n else if (keypath === '' && hasConstructorOf(value, TypesonPromise)) {\n promisesData.push([keypath, value, cyclic, stateObj]);\n return value;\n }\n else return value; // Only clone vanilla objects and arrays\n\n // Iterate object or array\n if (stateObj.iterateIn) {\n for (var key in value) {\n var ownKeysObj = {ownKeys: value.hasOwnProperty(key)};\n var kp = keypath + (keypath ? '.' : '') + key;\n var val = _encapsulate(kp, value[key], !!cyclic, ownKeysObj, promisesData);\n if (hasConstructorOf(val, TypesonPromise)) {\n promisesData.push([kp, val, !!cyclic, ownKeysObj, clone, key]);\n } else if (val !== undefined) clone[key] = val;\n }\n } else { // Note: Non-indexes on arrays won't survive stringify so somewhat wasteful for arrays, but so too is iterating all numeric indexes on sparse arrays when not wanted or filtering own keys for positive integers\n keys(value).forEach(function (key) {\n var kp = keypath + (keypath ? '.' : '') + key;\n var val = _encapsulate(kp, value[key], !!cyclic, {ownKeys: true}, promisesData);\n if (hasConstructorOf(val, TypesonPromise)) {\n promisesData.push([kp, val, !!cyclic, {ownKeys: true}, clone, key]);\n } else if (val !== undefined) clone[key] = val;\n });\n }\n // Iterate array for non-own numeric properties (we can't replace the prior loop though as it iterates non-integer keys)\n if (stateObj.iterateUnsetNumeric) {\n for (var i = 0, vl = value.length; i < vl; i++) {\n if (!(i in value)) {\n var kp = keypath + (keypath ? '.' : '') + i;\n var val = _encapsulate(kp, undefined, !!cyclic, {ownKeys: false}, promisesData);\n if (hasConstructorOf(val, TypesonPromise)) {\n promisesData.push([kp, val, !!cyclic, {ownKeys: false}, clone, i]);\n } else if (val !== undefined) clone[i] = val;\n }\n }\n }\n return clone;\n }\n\n function replace (key, value, stateObj, promisesData, plainObject) {\n // Encapsulate registered types\n var replacers = plainObject ? plainObjectReplacers : nonplainObjectReplacers;\n var i = replacers.length;\n while (i--) {\n if (replacers[i].test(value, stateObj)) {\n var type = replacers[i].type;\n if (revivers[type]) {\n // Record the type only if a corresponding reviver exists.\n // This is to support specs where only replacement is done.\n // For example ensuring deep cloning of the object, or\n // replacing a type to its equivalent without the need to revive it.\n var existing = types[key];\n // type can comprise an array of types (see test shouldSupportIntermediateTypes)\n types[key] = existing ? [type].concat(existing) : type;\n }\n // Now, also traverse the result in case it contains it own types to replace\n stateObj = Object.assign(stateObj, {replaced: true});\n if ((sync || !replacers[i].replaceAsync) && !replacers[i].replace) {\n return _encapsulate(key, value, cyclic && 'readonly', stateObj, promisesData);\n }\n\n var replaceMethod = sync || !replacers[i].replaceAsync ? 'replace' : 'replaceAsync';\n return _encapsulate(key, replacers[i][replaceMethod](value, stateObj), cyclic && 'readonly', stateObj, promisesData);\n }\n }\n return value;\n }\n };\n\n // Also sync but throws on non-sync result\n this.encapsulateSync = function (obj, stateObj, opts) {\n return encapsulate(obj, stateObj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true}));\n };\n this.encapsulateAsync = function (obj, stateObj, opts) {\n return encapsulate(obj, stateObj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false}));\n };\n\n /** Revive an encapsulated object.\n * This method is used internally by JSON.parse().\n * @param {Object} obj - Object to revive. If it has $types member, the properties that are listed there\n * will be replaced with its true type instead of just plain objects.\n */\n var revive = this.revive = function (obj, opts) {\n opts = Object.assign({sync: true}, options, opts);\n var sync = opts.sync;\n var types = obj && obj.$types,\n ignore$Types = true;\n if (!types) return obj; // No type info added. Revival not needed.\n if (types === true) return obj.$; // Object happened to have own `$types` property but with no actual types, so we unescape and return that object\n if (types.$ && isPlainObject(types.$)) {\n // Special when root object is not a trivial Object, it will be encapsulated in $. It will also be encapsulated in $ if it has its own `$` property to avoid ambiguity\n obj = obj.$;\n types = types.$;\n ignore$Types = false;\n }\n var keyPathResolutions = [];\n var ret = _revive('', obj, null, opts);\n ret = hasConstructorOf(ret, Undefined) ? undefined : ret;\n return isThenable(ret)\n ? sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Sync method requested but async result obtained\");\n }())\n : ret\n : !sync && opts.throwOnBadSyncType\n ? (function () {\n throw new TypeError(\"Async method requested but sync result obtained\");\n }())\n : sync\n ? ret\n : Promise.resolve(ret);\n\n function _revive (keypath, value, target, opts, clone, key) {\n if (ignore$Types && keypath === '$types') return;\n var type = types[keypath];\n if (isArray(value) || isPlainObject(value)) {\n var clone = isArray(value) ? new Array(value.length) : {};\n // Iterate object or array\n keys(value).forEach(function (key) {\n var val = _revive(keypath + (keypath ? '.' : '') + key, value[key], target || clone, opts, clone, key);\n if (hasConstructorOf(val, Undefined)) clone[key] = undefined;\n else if (val !== undefined) clone[key] = val;\n });\n value = clone;\n while (keyPathResolutions.length) { // Try to resolve cyclic reference as soon as available\n var kpr = keyPathResolutions[0];\n var target = kpr[0];\n var keyPath = kpr[1];\n var clone = kpr[2];\n var key = kpr[3];\n var val = getByKeyPath(target, keyPath);\n if (hasConstructorOf(val, Undefined)) clone[key] = undefined;\n else if (val !== undefined) clone[key] = val;\n else break;\n keyPathResolutions.splice(0, 1);\n }\n }\n if (!type) return value;\n if (type === '#') {\n var ret = getByKeyPath(target, value.substr(1));\n if (ret === undefined) { // Cyclic reference not yet available\n keyPathResolutions.push([target, value.substr(1), clone, key]);\n }\n return ret;\n }\n var sync = opts.sync;\n return [].concat(type).reduce(function (val, type) {\n var reviver = revivers[type];\n if (!reviver) throw new Error ('Unregistered type: ' + type);\n return reviver[\n sync && reviver.revive\n ? 'revive'\n : !sync && reviver.reviveAsync\n ? 'reviveAsync'\n : 'revive'\n ](val);\n }, value);\n }\n };\n\n // Also sync but throws on non-sync result\n this.reviveSync = function (obj, opts) {\n return revive(obj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: true}));\n };\n this.reviveAsync = function (obj, opts) {\n return revive(obj, Object.assign({}, {throwOnBadSyncType: true}, opts, {sync: false}));\n };\n\n /** Register types.\n * For examples how to use this method, see https://github.com/dfahlander/typeson-registry/tree/master/types\n * @param {Array.>} typeSpec - Types and their functions [test, encapsulate, revive];\n */\n this.register = function (typeSpecSets, opts) {\n opts = opts || {};\n [].concat(typeSpecSets).forEach(function R (typeSpec) {\n if (isArray(typeSpec)) return typeSpec.map(R); // Allow arrays of arrays of arrays...\n typeSpec && keys(typeSpec).forEach(function (typeId) {\n if (typeId === '#') {\n throw new TypeError('# cannot be used as a type name as it is reserved for cyclic objects');\n }\n var spec = typeSpec[typeId];\n var replacers = spec.testPlainObjects ? plainObjectReplacers : nonplainObjectReplacers;\n var existingReplacer = replacers.filter(function(r){ return r.type === typeId; });\n if (existingReplacer.length) {\n // Remove existing spec and replace with this one.\n replacers.splice(replacers.indexOf(existingReplacer[0]), 1);\n delete revivers[typeId];\n delete regTypes[typeId];\n }\n if (spec) {\n if (typeof spec === 'function') {\n // Support registering just a class without replacer/reviver\n var Class = spec;\n spec = {\n test: function (x) { return x.constructor === Class; },\n replace: function (x) { return assign({}, x); },\n revive: function (x) { return assign(Object.create(Class.prototype), x); }\n };\n } else if (isArray(spec)) {\n spec = {\n test: spec[0],\n replace: spec[1],\n revive: spec[2]\n };\n }\n var replacerObj = {\n type: typeId,\n test: spec.test.bind(spec)\n };\n if (spec.replace) {\n replacerObj.replace = spec.replace.bind(spec);\n }\n if (spec.replaceAsync) {\n replacerObj.replaceAsync = spec.replaceAsync.bind(spec);\n }\n var start = typeof opts.fallback === 'number' ? opts.fallback : (opts.fallback ? 0 : Infinity);\n if (spec.testPlainObjects) {\n plainObjectReplacers.splice(start, 0, replacerObj);\n } else {\n nonplainObjectReplacers.splice(start, 0, replacerObj);\n }\n // Todo: We might consider a testAsync type\n if (spec.revive || spec.reviveAsync) {\n var reviverObj = {};\n if (spec.revive) reviverObj.revive = spec.revive.bind(spec);\n if (spec.reviveAsync) reviverObj.reviveAsync = spec.reviveAsync.bind(spec);\n revivers[typeId] = reviverObj;\n }\n\n regTypes[typeId] = spec; // Record to be retrieved via public types property.\n }\n });\n });\n return this;\n };\n}\n\nfunction assign(t,s) {\n keys(s).map(function (k) { t[k] = s[k]; });\n return t;\n}\n\n/** getByKeyPath() utility */\nfunction getByKeyPath (obj, keyPath) {\n if (keyPath === '') return obj;\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj === undefined ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return obj[keyPath];\n}\n\nfunction Undefined () {}\n\n// With ES6 classes, we may be able to simply use `class TypesonPromise extends Promise` and add a string tag for detection\nfunction TypesonPromise (f) {\n this.p = new Promise(f);\n};\nTypesonPromise.prototype.then = function (onFulfilled, onRejected) {\n var that = this;\n return new TypesonPromise(function (typesonResolve, typesonReject) {\n that.p.then(function (res) {\n typesonResolve(onFulfilled ? onFulfilled(res) : res);\n }, function (r) {\n that.p['catch'](function (res) {\n return onRejected ? onRejected(res) : Promise.reject(res);\n }).then(typesonResolve, typesonReject);\n });\n });\n};\nTypesonPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nTypesonPromise.resolve = function (v) {\n return new TypesonPromise(function (typesonResolve) {\n typesonResolve(v);\n });\n};\nTypesonPromise.reject = function (v) {\n return new TypesonPromise(function (typesonResolve, typesonReject) {\n typesonReject(v);\n });\n};\n['all', 'race'].map(function (meth) {\n TypesonPromise[meth] = function (promArr) {\n return new TypesonPromise(function (typesonResolve, typesonReject) {\n Promise[meth](promArr.map(function (prom) {return prom.p;})).then(typesonResolve, typesonReject);\n });\n };\n});\n\n// The following provide classes meant to avoid clashes with other values\nTypeson.Undefined = Undefined; // To insist `undefined` should be added\nTypeson.Promise = TypesonPromise; // To support async encapsulation/stringification\n\n// Some fundamental type-checking utilities\nTypeson.isThenable = isThenable;\nTypeson.toStringTag = toStringTag;\nTypeson.hasConstructorOf = hasConstructorOf;\nTypeson.isObject = isObject;\nTypeson.isPlainObject = isPlainObject;\nTypeson.isUserObject = isUserObject;\n\nmodule.exports = Typeson;\n","module.exports=/[\\xC0-\\xC5\\xC7-\\xCF\\xD1-\\xD6\\xD9-\\xDD\\xE0-\\xE5\\xE7-\\xEF\\xF1-\\xF6\\xF9-\\xFD\\xFF-\\u010F\\u0112-\\u0125\\u0128-\\u0130\\u0134-\\u0137\\u0139-\\u013E\\u0143-\\u0148\\u014C-\\u0151\\u0154-\\u0165\\u0168-\\u017E\\u01A0\\u01A1\\u01AF\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E3\\u01E6-\\u01F0\\u01F4\\u01F5\\u01F8-\\u021B\\u021E\\u021F\\u0226-\\u0233\\u0344\\u0385\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u0390\\u03AA-\\u03B0\\u03CA-\\u03CE\\u03D3\\u03D4\\u0400\\u0401\\u0403\\u0407\\u040C-\\u040E\\u0419\\u0439\\u0450\\u0451\\u0453\\u0457\\u045C-\\u045E\\u0476\\u0477\\u04C1\\u04C2\\u04D0-\\u04D3\\u04D6\\u04D7\\u04DA-\\u04DF\\u04E2-\\u04E7\\u04EA-\\u04F5\\u04F8\\u04F9\\u0622-\\u0626\\u06C0\\u06C2\\u06D3\\u0929\\u0931\\u0934\\u0958-\\u095F\\u09CB\\u09CC\\u09DC\\u09DD\\u09DF\\u0A33\\u0A36\\u0A59-\\u0A5B\\u0A5E\\u0B48\\u0B4B\\u0B4C\\u0B5C\\u0B5D\\u0B94\\u0BCA-\\u0BCC\\u0C48\\u0CC0\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0D4A-\\u0D4C\\u0DDA\\u0DDC-\\u0DDE\\u0F43\\u0F4D\\u0F52\\u0F57\\u0F5C\\u0F69\\u0F73\\u0F75\\u0F76\\u0F78\\u0F81\\u0F93\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9\\u1026\\u1B06\\u1B08\\u1B0A\\u1B0C\\u1B0E\\u1B12\\u1B3B\\u1B3D\\u1B40\\u1B41\\u1B43\\u1E00-\\u1E99\\u1E9B\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FC1-\\u1FC4\\u1FC6-\\u1FD3\\u1FD6-\\u1FDB\\u1FDD-\\u1FEE\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u212B\\u219A\\u219B\\u21AE\\u21CD-\\u21CF\\u2204\\u2209\\u220C\\u2224\\u2226\\u2241\\u2244\\u2247\\u2249\\u2260\\u2262\\u226D-\\u2271\\u2274\\u2275\\u2278\\u2279\\u2280\\u2281\\u2284\\u2285\\u2288\\u2289\\u22AC-\\u22AF\\u22E0-\\u22E3\\u22EA-\\u22ED\\u2ADC\\u304C\\u304E\\u3050\\u3052\\u3054\\u3056\\u3058\\u305A\\u305C\\u305E\\u3060\\u3062\\u3065\\u3067\\u3069\\u3070\\u3071\\u3073\\u3074\\u3076\\u3077\\u3079\\u307A\\u307C\\u307D\\u3094\\u309E\\u30AC\\u30AE\\u30B0\\u30B2\\u30B4\\u30B6\\u30B8\\u30BA\\u30BC\\u30BE\\u30C0\\u30C2\\u30C5\\u30C7\\u30C9\\u30D0\\u30D1\\u30D3\\u30D4\\u30D6\\u30D7\\u30D9\\u30DA\\u30DC\\u30DD\\u30F4\\u30F7-\\u30FA\\u30FE\\uAC00-\\uD7A3\\uFB1D\\uFB1F\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFB4E]|\\uD804[\\uDC9A\\uDC9C\\uDCAB\\uDD2E\\uDD2F\\uDF4B\\uDF4C]|\\uD805[\\uDCBB\\uDCBC\\uDCBE\\uDDBA\\uDDBB]|\\uD834[\\uDD5E-\\uDD64\\uDDBB-\\uDDC0]/","const map = {};\nconst CFG = {};\n\n[\n // Boolean for verbose reporting\n 'DEBUG', // Effectively defaults to false (ignored unless `true`)\n\n 'cacheDatabaseInstances', // Boolean (effectively defaults to true) on whether to cache WebSQL `openDatabase` instances\n 'autoName', // Boolean on whether to auto-name databases (based on an auto-increment) when\n // the empty string is supplied; useful with `memoryDatabase`; defaults to `false`\n // which means the empty string will be used as the (valid) database name\n\n // Determines whether the slow-performing `Object.setPrototypeOf` calls required\n // for full WebIDL compliance will be used. Probably only needed for testing\n // or environments where full introspection on class relationships is required;\n // see http://stackoverflow.com/questions/41927589/rationales-consequences-of-webidl-class-inheritance-requirements\n 'fullIDLSupport', // Effectively defaults to false (ignored unless `true`)\n\n // Boolean on whether to perform origin checks in `IDBFactory` methods\n 'checkOrigin', // Effectively defaults to `true` (must be set to `false` to cancel checks)\n\n // Used by `IDBCursor` continue methods for number of records to cache;\n 'cursorPreloadPackSize', // Defaults to 100\n\n // See optional API (`shimIndexedDB.__setUnicodeIdentifiers`);\n // or just use the Unicode builds which invoke this method\n // automatically using the large, fully spec-compliant, regular\n // expression strings of `src/UnicodeIdentifiers.js`)\n 'UnicodeIDStart', // In the non-Unicode builds, defaults to /[$A-Z_a-z]/\n 'UnicodeIDContinue', // In the non-Unicode builds, defaults to /[$0-9A-Z_a-z]/\n\n // -----------SQL CONFIG----------\n // Object (`window` in the browser) on which there may be an\n // `openDatabase` method (if any) for WebSQL. (The browser\n // throws if attempting to call `openDatabase` without the window\n // so this is why the config doesn't just allow the function.)\n 'win', // Defaults to `window` or `self` in browser builds or\n // a singleton object with the `openDatabase` method set to\n // the \"websql\" package in Node.\n\n // For internal `openDatabase` calls made by `IDBFactory` methods;\n // per the WebSQL spec, \"User agents are expected to use the display name\n // and the estimated database size to optimize the user experience.\n // For example, a user agent could use the estimated size to suggest an\n // initial quota to the user. This allows a site that is aware that it\n // will try to use hundreds of megabytes to declare this upfront, instead\n // of the user agent prompting the user for permission to increase the\n // quota every five megabytes.\"\n 'DEFAULT_DB_SIZE', // Defaults to (4 * 1024 * 1024) or (25 * 1024 * 1024) in Safari\n\n // NODE-IMPINGING SETTINGS (created for sake of limitations in Node or desktop file\n // system implementation but applied by default in browser for parity)\n\n // Used when setting global shims to determine whether to try to add\n // other globals shimmed by the library (`ShimDOMException`, `ShimDOMStringList`,\n // `ShimEvent`, `ShimCustomEvent`, `ShimEventTarget`)\n 'addNonIDBGlobals', // Effectively defaults to `false` (ignored unless `true`)\n // Used when setting global shims to determine whether to try to overwrite\n // other globals shimmed by the library (`DOMException`, `DOMStringList`,\n // `Event`, `CustomEvent`, `EventTarget`)\n 'replaceNonIDBGlobals', // Effectively defaults to `false` (ignored unless `true`)\n\n // Overcoming limitations with node-sqlite3/storing database name on file systems\n // https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words\n 'escapeDatabaseName', // Defaults to prefixing database with `D_`, escaping\n // `databaseCharacterEscapeList`, escaping NUL, and\n // escaping upper case letters, as well as enforcing\n // `databaseNameLengthLimit`\n 'unescapeDatabaseName', // Not used internally; usable as a convenience method\n 'databaseCharacterEscapeList', // Defaults to global regex representing the following\n // (characters nevertheless commonly reserved in modern, Unicode-supporting\n // systems): 0x00-0x1F 0x7F \" * / : < > ? \\ |\n 'databaseNameLengthLimit', // Defaults to 254 (shortest typical modern file length limit)\n 'escapeNFDForDatabaseNames', // Boolean defaulting to true on whether to escape NFD-escaping\n // characters to avoid clashes on MacOS which performs NFD on files\n // Boolean on whether to add the `.sqlite` extension to file names;\n // defaults to `true`\n 'addSQLiteExtension',\n ['memoryDatabase', (val) => { // Various types of in-memory databases that can auto-delete\n if (!(/^(?::memory:|file::memory:(\\?[^#]*)?(#.*)?)?$/).test(val)) {\n throw new TypeError('`memoryDatabase` must be the empty string, \":memory:\", or a \"file::memory:[?queryString][#hash] URL\".');\n }\n }],\n\n // NODE-SPECIFIC CONFIG\n // Boolean on whether to delete the database file itself after `deleteDatabase`;\n // defaults to `true` as the database will be empty\n 'deleteDatabaseFiles',\n 'databaseBasePath',\n 'sysDatabaseBasePath',\n\n // NODE-SPECIFIC WEBSQL CONFIG\n 'sqlBusyTimeout', // Defaults to 1000\n 'sqlTrace', // Callback not used by default\n 'sqlProfile' // Callback not used by default\n].forEach((prop) => {\n let validator;\n if (Array.isArray(prop)) {\n validator = prop[1];\n prop = prop[0];\n }\n Object.defineProperty(CFG, prop, {\n get: function () {\n return map[prop];\n },\n set: function (val) {\n if (validator) {\n validator(val);\n }\n map[prop] = val;\n }\n });\n});\n\nexport default CFG;\n","/* globals DOMException */\nimport CFG from './CFG';\n\n/**\n * Creates a native DOMException, for browsers that support it\n * @returns {DOMException}\n */\nfunction createNativeDOMException (name, message) {\n return new DOMException.prototype.constructor(message, name || 'DOMException');\n}\n\nconst codes = { // From web-platform-tests testharness.js name_code_map (though not in new spec)\n IndexSizeError: 1,\n HierarchyRequestError: 3,\n WrongDocumentError: 4,\n InvalidCharacterError: 5,\n NoModificationAllowedError: 7,\n NotFoundError: 8,\n NotSupportedError: 9,\n InUseAttributeError: 10,\n InvalidStateError: 11,\n SyntaxError: 12,\n InvalidModificationError: 13,\n NamespaceError: 14,\n InvalidAccessError: 15,\n TypeMismatchError: 17,\n SecurityError: 18,\n NetworkError: 19,\n AbortError: 20,\n URLMismatchError: 21,\n QuotaExceededError: 22,\n TimeoutError: 23,\n InvalidNodeTypeError: 24,\n DataCloneError: 25,\n\n EncodingError: 0,\n NotReadableError: 0,\n UnknownError: 0,\n ConstraintError: 0,\n DataError: 0,\n TransactionInactiveError: 0,\n ReadOnlyError: 0,\n VersionError: 0,\n OperationError: 0,\n NotAllowedError: 0\n};\n\nconst legacyCodes = {\n INDEX_SIZE_ERR: 1,\n DOMSTRING_SIZE_ERR: 2,\n HIERARCHY_REQUEST_ERR: 3,\n WRONG_DOCUMENT_ERR: 4,\n INVALID_CHARACTER_ERR: 5,\n NO_DATA_ALLOWED_ERR: 6,\n NO_MODIFICATION_ALLOWED_ERR: 7,\n NOT_FOUND_ERR: 8,\n NOT_SUPPORTED_ERR: 9,\n INUSE_ATTRIBUTE_ERR: 10,\n INVALID_STATE_ERR: 11,\n SYNTAX_ERR: 12,\n INVALID_MODIFICATION_ERR: 13,\n NAMESPACE_ERR: 14,\n INVALID_ACCESS_ERR: 15,\n VALIDATION_ERR: 16,\n TYPE_MISMATCH_ERR: 17,\n SECURITY_ERR: 18,\n NETWORK_ERR: 19,\n ABORT_ERR: 20,\n URL_MISMATCH_ERR: 21,\n QUOTA_EXCEEDED_ERR: 22,\n TIMEOUT_ERR: 23,\n INVALID_NODE_TYPE_ERR: 24,\n DATA_CLONE_ERR: 25\n};\n\nfunction createNonNativeDOMExceptionClass () {\n function DOMException (message, name) {\n // const err = Error.prototype.constructor.call(this, message); // Any use to this? Won't set this.message\n this[Symbol.toStringTag] = 'DOMException';\n this._code = name in codes ? codes[name] : (legacyCodes[name] || 0);\n this._name = name || 'Error';\n this._message = message === undefined ? '' : ('' + message); // Not String() which converts Symbols\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: this._code\n });\n if (name !== undefined) {\n Object.defineProperty(this, 'name', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: this._name\n });\n }\n if (message !== undefined) {\n Object.defineProperty(this, 'message', {\n configurable: true,\n enumerable: false,\n writable: true,\n value: this._message\n });\n }\n }\n\n // Necessary for W3C tests which complains if `DOMException` has properties on its \"own\" prototype\n\n // class DummyDOMException extends Error {}; // Sometimes causing problems in Node\n const DummyDOMException = function DOMException () {};\n DummyDOMException.prototype = Object.create(Error.prototype); // Intended for subclassing\n ['name', 'message'].forEach((prop) => {\n Object.defineProperty(DummyDOMException.prototype, prop, {\n enumerable: true,\n get: function () {\n if (!(this instanceof DOMException ||\n this instanceof DummyDOMException ||\n this instanceof Error)) {\n throw new TypeError('Illegal invocation');\n }\n return this['_' + prop];\n }\n });\n });\n // DOMException uses the same `toString` as `Error`\n Object.defineProperty(DummyDOMException.prototype, 'code', {\n configurable: true,\n enumerable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n DOMException.prototype = new DummyDOMException();\n\n DOMException.prototype[Symbol.toStringTag] = 'DOMExceptionPrototype';\n Object.defineProperty(DOMException, 'prototype', {\n writable: false\n });\n\n Object.keys(codes).forEach((codeName) => {\n Object.defineProperty(DOMException.prototype, codeName, {\n enumerable: true,\n configurable: false,\n value: codes[codeName]\n });\n Object.defineProperty(DOMException, codeName, {\n enumerable: true,\n configurable: false,\n value: codes[codeName]\n });\n });\n Object.keys(legacyCodes).forEach((codeName) => {\n Object.defineProperty(DOMException.prototype, codeName, {\n enumerable: true,\n configurable: false,\n value: legacyCodes[codeName]\n });\n Object.defineProperty(DOMException, codeName, {\n enumerable: true,\n configurable: false,\n value: legacyCodes[codeName]\n });\n });\n Object.defineProperty(DOMException.prototype, 'constructor', {\n writable: true,\n configurable: true,\n enumerable: false,\n value: DOMException\n });\n\n return DOMException;\n}\n\nconst ShimNonNativeDOMException = createNonNativeDOMExceptionClass();\n\n/**\n * Creates a generic Error object\n * @returns {Error}\n */\nfunction createNonNativeDOMException (name, message) {\n return new ShimNonNativeDOMException(message, name);\n}\n\n/**\n * Logs detailed error information to the console.\n * @param {string} name\n * @param {string} message\n * @param {string|Error|null} error\n */\nfunction logError (name, message, error) {\n if (CFG.DEBUG) {\n if (error && error.message) {\n error = error.message;\n }\n\n const method = typeof (console.error) === 'function' ? 'error' : 'log';\n console[method](name + ': ' + message + '. ' + (error || ''));\n console.trace && console.trace();\n }\n}\n\nfunction isErrorOrDOMErrorOrDOMException (obj) {\n return obj && typeof obj === 'object' && // We don't use util.isObj here as mutual dependency causing problems in Babel with browser\n typeof obj.name === 'string';\n}\n\n/**\n * Finds the error argument. This is useful because some WebSQL callbacks\n * pass the error as the first argument, and some pass it as the second argument.\n * @param {array} args\n * @returns {Error|DOMException|undefined}\n */\nfunction findError (args) {\n let err;\n if (args) {\n if (args.length === 1) {\n return args[0];\n }\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (isErrorOrDOMErrorOrDOMException(arg)) {\n return arg;\n }\n if (arg && typeof arg.message === 'string') {\n err = arg;\n }\n }\n }\n return err;\n}\n\nfunction webSQLErrback (webSQLErr) {\n let name, message;\n switch (webSQLErr.code) {\n case 4: { // SQLError.QUOTA_ERR\n name = 'QuotaExceededError';\n message = 'The operation failed because there was not enough remaining storage space, or the storage quota was reached and the user declined to give more space to the database.';\n break;\n }\n /*\n // Should a WebSQL timeout treat as IndexedDB `TransactionInactiveError` or `UnknownError`?\n case 7: { // SQLError.TIMEOUT_ERR\n // All transaction errors abort later, so no need to mark inactive\n name = 'TransactionInactiveError';\n message = 'A request was placed against a transaction which is currently not active, or which is finished (Internal SQL Timeout).';\n break;\n }\n */\n default: {\n name = 'UnknownError';\n message = 'The operation failed for reasons unrelated to the database itself and not covered by any other errors.';\n break;\n }\n }\n message += ' (' + webSQLErr.message + ')--(' + webSQLErr.code + ')';\n const err = createDOMException(name, message);\n err.sqlError = webSQLErr;\n return err;\n}\n\nlet test, useNativeDOMException = false;\n\n// Test whether we can use the browser's native DOMException class\ntry {\n test = createNativeDOMException('test name', 'test message');\n if (isErrorOrDOMErrorOrDOMException(test) && test.name === 'test name' && test.message === 'test message') {\n // Native DOMException works as expected\n useNativeDOMException = true;\n }\n} catch (e) {}\n\nlet createDOMException, ShimDOMException;\nif (useNativeDOMException) {\n ShimDOMException = DOMException;\n createDOMException = function (name, message, error) {\n logError(name, message, error);\n return createNativeDOMException(name, message);\n };\n} else {\n ShimDOMException = ShimNonNativeDOMException;\n createDOMException = function (name, message, error) {\n logError(name, message, error);\n return createNonNativeDOMException(name, message);\n };\n}\n\nexport {logError, findError, ShimDOMException, createDOMException, webSQLErrback};\n","let cleanInterface = false;\n\nconst testObject = {test: true};\n// Test whether Object.defineProperty really works.\nif (Object.defineProperty) {\n try {\n Object.defineProperty(testObject, 'test', { enumerable: false });\n if (testObject.test) {\n cleanInterface = true;\n }\n } catch (e) {\n // Object.defineProperty does not work as intended.\n }\n}\n\n/**\n * Shim the DOMStringList object.\n *\n */\nconst DOMStringList = function () {\n throw new TypeError('Illegal constructor');\n};\nDOMStringList.prototype = {\n constructor: DOMStringList,\n // Interface.\n contains: function (str) {\n if (!arguments.length) {\n throw new TypeError('DOMStringList.contains must be supplied a value');\n }\n return this._items.includes(str);\n },\n item: function (key) {\n if (!arguments.length) {\n throw new TypeError('DOMStringList.item must be supplied a value');\n }\n if (key < 0 || key >= this.length || !Number.isInteger(key)) {\n return null;\n }\n return this._items[key];\n },\n\n // Helpers. Should only be used internally.\n clone: function () {\n const stringList = DOMStringList.__createInstance();\n stringList._items = this._items.slice();\n stringList._length = this.length;\n stringList.addIndexes();\n return stringList;\n },\n addIndexes: function () {\n for (let i = 0; i < this._items.length; i++) {\n this[i] = this._items[i];\n }\n },\n sortList: function () {\n // http://w3c.github.io/IndexedDB/#sorted-list\n // https://tc39.github.io/ecma262/#sec-abstract-relational-comparison\n this._items.sort();\n this.addIndexes();\n return this._items;\n },\n forEach: function (cb, thisArg) {\n this._items.forEach(cb, thisArg);\n },\n map: function (cb, thisArg) {\n return this._items.map(cb, thisArg);\n },\n indexOf: function (str) {\n return this._items.indexOf(str);\n },\n push: function (item) {\n this._items.push(item);\n this._length++;\n this.sortList();\n },\n splice: function (...args /* index, howmany, item1, ..., itemX */) {\n this._items.splice(...args);\n this._length = this._items.length;\n for (const i in this) {\n if (i === String(parseInt(i, 10))) {\n delete this[i];\n }\n }\n this.sortList();\n },\n [Symbol.toStringTag]: 'DOMStringListPrototype',\n // At least because `DOMStringList`, as a [list](https://infra.spec.whatwg.org/#list)\n // can be converted to a sequence per https://infra.spec.whatwg.org/#list-iterate\n // and particularly as some methods, e.g., `IDBDatabase.transaction`\n // expect such sequence (or DOMString), we need an iterator (some of\n // the Mocha tests rely on these)\n [Symbol.iterator]: function * () {\n let i = 0;\n while (i < this._items.length) {\n yield this._items[i++];\n }\n }\n};\nObject.defineProperty(DOMStringList, Symbol.hasInstance, {\n value: function (obj) {\n return ({}.toString.call(obj) === 'DOMStringListPrototype');\n }\n});\nconst DOMStringListAlias = DOMStringList;\nObject.defineProperty(DOMStringList, '__createInstance', {\n value: function () {\n const DOMStringList = function DOMStringList () {\n this.toString = function () {\n return '[object DOMStringList]';\n };\n // Internal functions on the prototype have been made non-enumerable below.\n Object.defineProperty(this, 'length', {\n enumerable: true,\n get: function () {\n return this._length;\n }\n });\n this._items = [];\n this._length = 0;\n };\n DOMStringList.prototype = DOMStringListAlias.prototype;\n return new DOMStringList();\n }\n});\n\nif (cleanInterface) {\n Object.defineProperty(DOMStringList, 'prototype', {\n writable: false\n });\n\n const nonenumerableReadonly = ['addIndexes', 'sortList', 'forEach', 'map', 'indexOf', 'push', 'splice', 'constructor', '__createInstance'];\n nonenumerableReadonly.forEach((nonenumerableReadonly) => {\n Object.defineProperty(DOMStringList.prototype, nonenumerableReadonly, {\n enumerable: false\n });\n });\n\n // Illegal invocations\n Object.defineProperty(DOMStringList.prototype, 'length', {\n configurable: true,\n enumerable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n\n const nonenumerableWritable = ['_items', '_length'];\n nonenumerableWritable.forEach((nonenumerableWritable) => {\n Object.defineProperty(DOMStringList.prototype, nonenumerableWritable, {\n enumerable: false,\n writable: true\n });\n });\n}\n\nexport default DOMStringList;\n","import {ShimEventTarget, ShimEvent, ShimCustomEvent} from 'eventtarget';\nimport * as util from './util';\n\nfunction createEvent (type, debug, evInit) {\n const ev = new ShimEvent(type, evInit);\n ev.debug = debug;\n return ev;\n}\n\n// We don't add within polyfill repo as might not always be the desired implementation\nObject.defineProperty(ShimEvent, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && 'target' in obj && typeof obj.bubbles === 'boolean'\n});\n\nexport {createEvent, ShimEvent, ShimCustomEvent, ShimEventTarget};\n","\nimport {IDBRequest} from './IDBRequest';\nimport IDBObjectStore from './IDBObjectStore';\nimport {createDOMException} from './DOMException';\nimport {setSQLForKeyRange, convertValueToKeyRange} from './IDBKeyRange';\nimport {cmp} from './IDBFactory';\nimport * as util from './util';\nimport IDBTransaction from './IDBTransaction';\nimport * as Key from './Key';\nimport * as Sca from './Sca';\nimport IDBIndex from './IDBIndex';\nimport CFG from './CFG';\n\n/**\n * The IndexedDB Cursor Object\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBCursor\n * @param {IDBKeyRange} range\n * @param {string} direction\n * @param {IDBObjectStore} store\n * @param {IDBObjectStore|IDBIndex} source\n * @param {string} keyColumnName\n * @param {string} valueColumnName\n * @param {boolean} count\n */\nfunction IDBCursor () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBCursorAlias = IDBCursor;\nIDBCursor.__super = function IDBCursor (query, direction, store, source, keyColumnName, valueColumnName, count) {\n this[Symbol.toStringTag] = 'IDBCursor';\n util.defineReadonlyProperties(this, ['key', 'primaryKey']);\n IDBObjectStore.__invalidStateIfDeleted(store);\n this.__indexSource = util.instanceOf(source, IDBIndex);\n if (this.__indexSource) IDBIndex.__invalidStateIfDeleted(source);\n IDBTransaction.__assertActive(store.transaction);\n const range = convertValueToKeyRange(query);\n if (direction !== undefined && !(['next', 'prev', 'nextunique', 'prevunique'].includes(direction))) {\n throw new TypeError(direction + 'is not a valid cursor direction');\n }\n\n Object.defineProperties(this, {\n // Babel is not respecting default writable false here, so make explicit\n source: {writable: false, value: source},\n direction: {writable: false, value: direction || 'next'}\n });\n this.__key = undefined;\n this.__primaryKey = undefined;\n\n this.__store = store;\n this.__range = range;\n this.__req = IDBRequest.__createInstance();\n this.__req.__source = source;\n this.__req.__transaction = this.__store.transaction;\n this.__keyColumnName = keyColumnName;\n this.__valueColumnName = valueColumnName;\n this.__keyOnly = valueColumnName === 'key';\n this.__valueDecoder = this.__keyOnly ? Key : Sca;\n this.__count = count;\n this.__prefetchedIndex = -1;\n this.__multiEntryIndex = this.__indexSource ? source.multiEntry : false;\n this.__unique = this.direction.includes('unique');\n this.__sqlDirection = ['prev', 'prevunique'].includes(this.direction) ? 'DESC' : 'ASC';\n\n if (range !== undefined) {\n // Encode the key range and cache the encoded values, so we don't have to re-encode them over and over\n range.__lowerCached = range.lower !== undefined && Key.encode(range.lower, this.__multiEntryIndex);\n range.__upperCached = range.upper !== undefined && Key.encode(range.upper, this.__multiEntryIndex);\n }\n this.__gotValue = true;\n this['continue']();\n};\n\nIDBCursor.__createInstance = function (...args) {\n const IDBCursor = IDBCursorAlias.__super;\n IDBCursor.prototype = IDBCursorAlias.prototype;\n return new IDBCursor(...args);\n};\n\nIDBCursor.prototype.__find = function (...args /* key, tx, success, error, recordsToLoad */) {\n if (this.__multiEntryIndex) {\n this.__findMultiEntry(...args);\n } else {\n this.__findBasic(...args);\n }\n};\n\nIDBCursor.prototype.__findBasic = function (key, primaryKey, tx, success, error, recordsToLoad) {\n const continueCall = recordsToLoad !== undefined;\n recordsToLoad = recordsToLoad || 1;\n\n const me = this;\n const quotedKeyColumnName = util.sqlQuote(me.__keyColumnName);\n const quotedKey = util.sqlQuote('key');\n let sql = ['SELECT * FROM', util.escapeStoreNameForSQL(me.__store.__currentName)];\n const sqlValues = [];\n sql.push('WHERE', quotedKeyColumnName, 'NOT NULL');\n setSQLForKeyRange(me.__range, quotedKeyColumnName, sql, sqlValues, true, true);\n\n // Determine the ORDER BY direction based on the cursor.\n const direction = me.__sqlDirection;\n const op = direction === 'ASC' ? '>' : '<';\n\n if (primaryKey !== undefined) {\n sql.push('AND', quotedKey, op + '= ?');\n // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`\n sqlValues.push(Key.encode(primaryKey));\n }\n if (key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + '= ?');\n // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`\n sqlValues.push(Key.encode(key));\n } else if (continueCall && me.__key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + ' ?');\n // Key.convertValueToKey(me.__key); // Already checked when stored\n sqlValues.push(Key.encode(me.__key));\n }\n\n if (!me.__count) {\n // 1. Sort by key\n sql.push('ORDER BY', quotedKeyColumnName, direction);\n\n // 2. Sort by primaryKey (if defined and not unique)\n if (!me.__unique && me.__keyColumnName !== 'key') { // Avoid adding 'key' twice\n sql.push(',', quotedKey, direction);\n }\n\n // 3. Sort by position (if defined)\n\n if (!me.__unique && me.__indexSource) {\n // 4. Sort by object store position (if defined and not unique)\n sql.push(',', util.sqlQuote(me.__valueColumnName), direction);\n }\n sql.push('LIMIT', recordsToLoad);\n }\n sql = sql.join(' ');\n CFG.DEBUG && console.log(sql, sqlValues);\n\n tx.executeSql(sql, sqlValues, function (tx, data) {\n if (me.__count) {\n success(undefined, data.rows.length, undefined);\n } else if (data.rows.length > 1) {\n me.__prefetchedIndex = 0;\n me.__prefetchedData = data.rows;\n CFG.DEBUG && console.log('Preloaded ' + me.__prefetchedData.length + ' records for cursor');\n me.__decode(data.rows.item(0), success);\n } else if (data.rows.length === 1) {\n me.__decode(data.rows.item(0), success);\n } else {\n CFG.DEBUG && console.log('Reached end of cursors');\n success(undefined, undefined, undefined);\n }\n }, function (tx, err) {\n CFG.DEBUG && console.log('Could not execute Cursor.continue', sql, sqlValues);\n error(err);\n });\n};\n\nIDBCursor.prototype.__findMultiEntry = function (key, primaryKey, tx, success, error) {\n const me = this;\n\n if (me.__prefetchedData && me.__prefetchedData.length === me.__prefetchedIndex) {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n success(undefined, undefined, undefined);\n return;\n }\n\n const quotedKeyColumnName = util.sqlQuote(me.__keyColumnName);\n let sql = ['SELECT * FROM', util.escapeStoreNameForSQL(me.__store.__currentName)];\n const sqlValues = [];\n sql.push('WHERE', quotedKeyColumnName, 'NOT NULL');\n if (me.__range && (me.__range.lower !== undefined && Array.isArray(me.__range.upper))) {\n if (me.__range.upper.indexOf(me.__range.lower) === 0) {\n sql.push('AND', quotedKeyColumnName, \"LIKE ? ESCAPE '^'\");\n sqlValues.push('%' + util.sqlLIKEEscape(me.__range.__lowerCached.slice(0, -1)) + '%');\n }\n }\n\n // Determine the ORDER BY direction based on the cursor.\n const direction = me.__sqlDirection;\n const op = direction === 'ASC' ? '>' : '<';\n const quotedKey = util.sqlQuote('key');\n\n if (primaryKey !== undefined) {\n sql.push('AND', quotedKey, op + '= ?');\n // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`\n sqlValues.push(Key.encode(primaryKey));\n }\n if (key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + '= ?');\n // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`\n sqlValues.push(Key.encode(key));\n } else if (me.__key !== undefined) {\n sql.push('AND', quotedKeyColumnName, op + ' ?');\n // Key.convertValueToKey(me.__key); // Already checked when entered\n sqlValues.push(Key.encode(me.__key));\n }\n\n if (!me.__count) {\n // 1. Sort by key\n sql.push('ORDER BY', quotedKeyColumnName, direction);\n\n // 2. Sort by primaryKey (if defined and not unique)\n if (!me.__unique && me.__keyColumnName !== 'key') { // Avoid adding 'key' twice\n sql.push(',', util.sqlQuote('key'), direction);\n }\n\n // 3. Sort by position (if defined)\n\n if (!me.__unique && me.__indexSource) {\n // 4. Sort by object store position (if defined and not unique)\n sql.push(',', util.sqlQuote(me.__valueColumnName), direction);\n }\n }\n sql = sql.join(' ');\n CFG.DEBUG && console.log(sql, sqlValues);\n\n tx.executeSql(sql, sqlValues, function (tx, data) {\n if (data.rows.length > 0) {\n if (me.__count) { // Avoid caching and other processing below\n let ct = 0;\n for (let i = 0; i < data.rows.length; i++) {\n const rowItem = data.rows.item(i);\n const rowKey = Key.decode(rowItem[me.__keyColumnName], true);\n const matches = Key.findMultiEntryMatches(rowKey, me.__range);\n ct += matches.length;\n }\n success(undefined, ct, undefined);\n return;\n }\n const rows = [];\n for (let i = 0; i < data.rows.length; i++) {\n const rowItem = data.rows.item(i);\n const rowKey = Key.decode(rowItem[me.__keyColumnName], true);\n const matches = Key.findMultiEntryMatches(rowKey, me.__range);\n\n for (let j = 0; j < matches.length; j++) {\n const matchingKey = matches[j];\n const clone = {\n matchingKey: Key.encode(matchingKey, true),\n key: rowItem.key\n };\n clone[me.__keyColumnName] = rowItem[me.__keyColumnName];\n clone[me.__valueColumnName] = rowItem[me.__valueColumnName];\n rows.push(clone);\n }\n }\n const reverse = me.direction.indexOf('prev') === 0;\n rows.sort(function (a, b) {\n if (a.matchingKey.replace('[', 'z') < b.matchingKey.replace('[', 'z')) {\n return reverse ? 1 : -1;\n }\n if (a.matchingKey.replace('[', 'z') > b.matchingKey.replace('[', 'z')) {\n return reverse ? -1 : 1;\n }\n if (a.key < b.key) {\n return me.direction === 'prev' ? 1 : -1;\n }\n if (a.key > b.key) {\n return me.direction === 'prev' ? -1 : 1;\n }\n return 0;\n });\n\n if (rows.length > 1) {\n me.__prefetchedIndex = 0;\n me.__prefetchedData = {\n data: rows,\n length: rows.length,\n item: function (index) {\n return this.data[index];\n }\n };\n CFG.DEBUG && console.log('Preloaded ' + me.__prefetchedData.length + ' records for multiEntry cursor');\n me.__decode(rows[0], success);\n } else if (rows.length === 1) {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n me.__decode(rows[0], success);\n } else {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n success(undefined, undefined, undefined);\n }\n } else {\n CFG.DEBUG && console.log('Reached end of multiEntry cursor');\n success(undefined, undefined, undefined);\n }\n }, function (tx, err) {\n CFG.DEBUG && console.log('Could not execute Cursor.continue', sql, sqlValues);\n error(err);\n });\n};\n\n/**\n * Creates an \"onsuccess\" callback\n * @private\n */\nIDBCursor.prototype.__onsuccess = function (success) {\n const me = this;\n return function (key, value, primaryKey) {\n if (me.__count) {\n success(value, me.__req);\n } else {\n if (key !== undefined) {\n me.__gotValue = true;\n }\n me.__key = key === undefined ? null : key;\n me.__primaryKey = primaryKey === undefined ? null : primaryKey;\n me.__value = value === undefined ? null : value;\n const result = key === undefined ? null : me;\n success(result, me.__req);\n }\n };\n};\n\nIDBCursor.prototype.__decode = function (rowItem, callback) {\n const me = this;\n if (me.__multiEntryIndex && me.__unique) {\n if (!me.__matchedKeys) {\n me.__matchedKeys = {};\n }\n if (me.__matchedKeys[rowItem.matchingKey]) {\n callback(undefined, undefined, undefined); // eslint-disable-line standard/no-callback-literal\n return;\n }\n me.__matchedKeys[rowItem.matchingKey] = true;\n }\n const encKey = util.unescapeSQLiteResponse(me.__multiEntryIndex\n ? rowItem.matchingKey\n : rowItem[me.__keyColumnName]\n );\n const encVal = util.unescapeSQLiteResponse(rowItem[me.__valueColumnName]);\n const encPrimaryKey = util.unescapeSQLiteResponse(rowItem.key);\n\n const key = Key.decode(\n encKey,\n me.__multiEntryIndex\n );\n const val = me.__valueDecoder.decode(encVal);\n const primaryKey = Key.decode(encPrimaryKey);\n callback(key, val, primaryKey, encKey /*, encVal, encPrimaryKey */);\n};\n\nIDBCursor.prototype.__sourceOrEffectiveObjStoreDeleted = function () {\n IDBObjectStore.__invalidStateIfDeleted(this.__store, \"The cursor's effective object store has been deleted\");\n if (this.__indexSource) IDBIndex.__invalidStateIfDeleted(this.source, \"The cursor's index source has been deleted\");\n};\n\nIDBCursor.prototype.__invalidateCache = function () {\n this.__prefetchedData = null;\n};\n\nIDBCursor.prototype.__continue = function (key, advanceContinue) {\n const me = this;\n const advanceState = me.__advanceCount !== undefined;\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__gotValue && !advanceContinue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n if (key !== undefined) {\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n const cmpResult = cmp(key, me.key);\n if (cmpResult === 0 ||\n (me.direction.includes('next') && cmpResult === -1) ||\n (me.direction.includes('prev') && cmpResult === 1)\n ) {\n throw createDOMException('DataError', 'Cannot ' + (advanceState ? 'advance' : 'continue') + ' the cursor in an unexpected direction');\n }\n }\n this.__continueFinish(key, undefined, advanceState);\n};\n\nIDBCursor.prototype.__continueFinish = function (key, primaryKey, advanceState) {\n const me = this;\n const recordsToPreloadOnContinue = me.__advanceCount || CFG.cursorPreloadPackSize || 100;\n me.__gotValue = false;\n me.__req.__readyState = 'pending'; // Unset done flag\n\n me.__store.transaction.__pushToQueue(me.__req, function cursorContinue (tx, args, success, error, executeNextRequest) {\n function triggerSuccess (k, val, primKey) {\n if (advanceState) {\n if (me.__advanceCount >= 2 && k !== undefined) {\n me.__advanceCount--;\n me.__key = k;\n me.__continue(undefined, true);\n executeNextRequest(); // We don't call success yet but do need to advance the transaction queue\n return;\n }\n me.__advanceCount = undefined;\n }\n me.__onsuccess(success)(k, val, primKey);\n }\n if (me.__prefetchedData) {\n // We have pre-loaded data for the cursor\n me.__prefetchedIndex++;\n if (me.__prefetchedIndex < me.__prefetchedData.length) {\n me.__decode(me.__prefetchedData.item(me.__prefetchedIndex), function (k, val, primKey, encKey) {\n function checkKey () {\n const cmpResult = key === undefined || cmp(k, key);\n if (cmpResult > 0 || (\n cmpResult === 0 && (\n me.__unique || primaryKey === undefined || cmp(primKey, primaryKey) >= 0\n )\n )) {\n triggerSuccess(k, val, primKey);\n return;\n }\n cursorContinue(tx, args, success, error);\n }\n if (me.__unique && !me.__multiEntryIndex &&\n encKey === Key.encode(me.key, me.__multiEntryIndex)) {\n cursorContinue(tx, args, success, error);\n return;\n }\n checkKey();\n });\n return;\n }\n }\n\n // No (or not enough) pre-fetched data, do query\n me.__find(key, primaryKey, tx, triggerSuccess, function (...args) {\n me.__advanceCount = undefined;\n error(...args);\n }, recordsToPreloadOnContinue);\n });\n};\n\nIDBCursor.prototype['continue'] = function (/* key */) {\n this.__continue(arguments[0]);\n};\n\nIDBCursor.prototype.continuePrimaryKey = function (key, primaryKey) {\n const me = this;\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__indexSource) {\n throw createDOMException('InvalidAccessError', '`continuePrimaryKey` may only be called on an index source.');\n }\n if (!['next', 'prev'].includes(me.direction)) {\n throw createDOMException('InvalidAccessError', '`continuePrimaryKey` may not be called with unique cursors.');\n }\n if (!me.__gotValue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n Key.convertValueToKeyRethrowingAndIfInvalid(primaryKey);\n\n const cmpResult = cmp(key, me.key);\n if (\n (me.direction === 'next' && cmpResult === -1) ||\n (me.direction === 'prev' && cmpResult === 1)\n ) {\n throw createDOMException('DataError', 'Cannot continue the cursor in an unexpected direction');\n }\n function noErrors () {\n me.__continueFinish(key, primaryKey, false);\n }\n if (cmpResult === 0) {\n Sca.encode(primaryKey, function (encPrimaryKey) {\n Sca.encode(me.primaryKey, function (encObjectStorePos) {\n if (encPrimaryKey === encObjectStorePos ||\n (me.direction === 'next' && encPrimaryKey < encObjectStorePos) ||\n (me.direction === 'prev' && encPrimaryKey > encObjectStorePos)\n ) {\n throw createDOMException('DataError', 'Cannot continue the cursor in an unexpected direction');\n }\n noErrors();\n });\n });\n } else {\n noErrors();\n }\n};\n\nIDBCursor.prototype.advance = function (count) {\n const me = this;\n count = util.enforceRange(count, 'unsigned long');\n if (count === 0) {\n throw new TypeError('Calling advance() with count argument 0');\n }\n if (me.__gotValue) { // Only set the count if not running in error (otherwise will override earlier good advance calls)\n me.__advanceCount = count;\n }\n me.__continue();\n};\n\nIDBCursor.prototype.update = function (valueToUpdate) {\n const me = this;\n if (!arguments.length) throw new TypeError('A value must be passed to update()');\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__store.transaction.__assertWritable();\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__gotValue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n if (me.__keyOnly) {\n throw createDOMException('InvalidStateError', 'This cursor method cannot be called when the key only flag has been set.');\n }\n const request = me.__store.transaction.__createRequest(me);\n const key = me.primaryKey;\n function addToQueue (clonedValue) {\n IDBObjectStore.__storingRecordObjectStore(request, me.__store, clonedValue, false, key);\n }\n if (me.__store.keyPath !== null) {\n const [evaluatedKey, clonedValue] = me.__store.__validateKeyAndValueAndCloneValue(valueToUpdate, undefined, true);\n if (cmp(me.primaryKey, evaluatedKey) !== 0) {\n throw createDOMException('DataError', 'The key of the supplied value to `update` is not equal to the cursor\\'s effective key');\n }\n addToQueue(clonedValue);\n } else {\n const clonedValue = Sca.clone(valueToUpdate);\n addToQueue(clonedValue);\n }\n return request;\n};\n\nIDBCursor.prototype['delete'] = function () {\n const me = this;\n IDBTransaction.__assertActive(me.__store.transaction);\n me.__store.transaction.__assertWritable();\n me.__sourceOrEffectiveObjStoreDeleted();\n if (!me.__gotValue) {\n throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n }\n if (me.__keyOnly) {\n throw createDOMException('InvalidStateError', 'This cursor method cannot be called when the key only flag has been set.');\n }\n return this.__store.transaction.__addToTransactionQueue(function cursorDelete (tx, args, success, error) {\n me.__find(undefined, undefined, tx, function (key, value, primaryKey) {\n const sql = 'DELETE FROM ' + util.escapeStoreNameForSQL(me.__store.__currentName) + ' WHERE \"key\" = ?';\n CFG.DEBUG && console.log(sql, key, primaryKey);\n // Key.convertValueToKey(primaryKey); // Already checked when entered\n tx.executeSql(sql, [util.escapeSQLiteStatement(Key.encode(primaryKey))], function (tx, data) {\n if (data.rowsAffected === 1) {\n me.__store.__cursors.forEach((cursor) => {\n cursor.__invalidateCache(); // Delete\n });\n success(undefined);\n } else {\n error('No rows with key found' + key);\n }\n }, function (tx, data) {\n error(data);\n });\n }, error);\n }, undefined, me);\n};\n\nIDBCursor.prototype[Symbol.toStringTag] = 'IDBCursorPrototype';\n\n['source', 'direction', 'key', 'primaryKey'].forEach((prop) => {\n Object.defineProperty(IDBCursor.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\nObject.defineProperty(IDBCursor, 'prototype', {\n writable: false\n});\n\nclass IDBCursorWithValue extends IDBCursor {}\nconst IDBCursorWithValueAlias = IDBCursorWithValue;\nIDBCursorWithValue.__createInstance = function (...args) {\n function IDBCursorWithValue () {\n IDBCursor.__super.call(this, ...args);\n this[Symbol.toStringTag] = 'IDBCursorWithValue';\n util.defineReadonlyProperties(this, 'value');\n }\n IDBCursorWithValue.prototype = IDBCursorWithValueAlias.prototype;\n return new IDBCursorWithValue();\n};\n\nObject.defineProperty(IDBCursorWithValue.prototype, 'value', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n});\n\nIDBCursorWithValue.prototype[Symbol.toStringTag] = 'IDBCursorWithValuePrototype';\n\nObject.defineProperty(IDBCursorWithValue, 'prototype', {\n writable: false\n});\n\nexport {IDBCursor, IDBCursorWithValue};\n","import {createDOMException} from './DOMException';\nimport {createEvent} from './Event';\nimport * as util from './util';\nimport DOMStringList from './DOMStringList';\nimport IDBObjectStore from './IDBObjectStore';\nimport IDBTransaction from './IDBTransaction';\nimport * as Sca from './Sca';\nimport CFG from './CFG';\nimport {EventTargetFactory} from 'eventtarget';\n\nconst listeners = ['onabort', 'onclose', 'onerror', 'onversionchange'];\nconst readonlyProperties = ['name', 'version', 'objectStoreNames'];\n\n/**\n * IDB Database Object\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#database-interface\n * @constructor\n */\nfunction IDBDatabase () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBDatabaseAlias = IDBDatabase;\nIDBDatabase.__createInstance = function (db, name, oldVersion, version, storeProperties) {\n function IDBDatabase () {\n this[Symbol.toStringTag] = 'IDBDatabase';\n util.defineReadonlyProperties(this, readonlyProperties);\n this.__db = db;\n this.__closed = false;\n this.__oldVersion = oldVersion;\n this.__version = version;\n this.__name = name;\n listeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n });\n listeners.forEach((l) => {\n this[l] = null;\n });\n this.__setOptions({\n legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n });\n\n this.__transactions = [];\n this.__objectStores = {};\n this.__objectStoreNames = DOMStringList.__createInstance();\n const itemCopy = {};\n for (let i = 0; i < storeProperties.rows.length; i++) {\n const item = storeProperties.rows.item(i);\n // Safari implements `item` getter return object's properties\n // as readonly, so we copy all its properties (except our\n // custom `currNum` which we don't need) onto a new object\n itemCopy.name = item.name;\n itemCopy.keyPath = Sca.decode(item.keyPath);\n ['autoInc', 'indexList'].forEach(function (prop) {\n itemCopy[prop] = JSON.parse(item[prop]);\n });\n itemCopy.idbdb = this;\n const store = IDBObjectStore.__createInstance(itemCopy);\n this.__objectStores[store.name] = store;\n this.objectStoreNames.push(store.name);\n }\n this.__oldObjectStoreNames = this.objectStoreNames.clone();\n }\n IDBDatabase.prototype = IDBDatabaseAlias.prototype;\n return new IDBDatabase();\n};\n\nIDBDatabase.prototype = EventTargetFactory.createInstance();\nIDBDatabase.prototype[Symbol.toStringTag] = 'IDBDatabasePrototype';\n\n/**\n * Creates a new object store.\n * @param {string} storeName\n * @param {object} [createOptions]\n * @returns {IDBObjectStore}\n */\nIDBDatabase.prototype.createObjectStore = function (storeName /* , createOptions */) {\n let createOptions = arguments[1];\n storeName = String(storeName); // W3C test within IDBObjectStore.js seems to accept string conversion\n if (!(this instanceof IDBDatabase)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No object store name was specified');\n }\n IDBTransaction.__assertVersionChange(this.__versionTransaction); // this.__versionTransaction may not exist if called mistakenly by user in onsuccess\n IDBTransaction.__assertNotFinishedObjectStoreMethod(this.__versionTransaction);\n IDBTransaction.__assertActive(this.__versionTransaction);\n\n createOptions = Object.assign({}, createOptions);\n let keyPath = createOptions.keyPath;\n keyPath = keyPath === undefined ? null : keyPath = util.convertToSequenceDOMString(keyPath);\n if (keyPath !== null && !util.isValidKeyPath(keyPath)) {\n throw createDOMException('SyntaxError', 'The keyPath argument contains an invalid key path.');\n }\n\n if (this.__objectStores[storeName] && !this.__objectStores[storeName].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Object store \"' + storeName + '\" already exists in ' + this.name);\n }\n\n const autoIncrement = createOptions.autoIncrement;\n if (autoIncrement && (keyPath === '' || Array.isArray(keyPath))) {\n throw createDOMException('InvalidAccessError', 'With autoIncrement set, the keyPath argument must not be an array or empty string.');\n }\n\n /** @name IDBObjectStoreProperties **/\n const storeProperties = {\n name: storeName,\n keyPath: keyPath,\n autoInc: autoIncrement,\n indexList: {},\n idbdb: this\n };\n const store = IDBObjectStore.__createInstance(storeProperties, this.__versionTransaction);\n return IDBObjectStore.__createObjectStore(this, store);\n};\n\n/**\n * Deletes an object store.\n * @param {string} storeName\n */\nIDBDatabase.prototype.deleteObjectStore = function (storeName) {\n if (!(this instanceof IDBDatabase)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No object store name was specified');\n }\n IDBTransaction.__assertVersionChange(this.__versionTransaction);\n IDBTransaction.__assertNotFinishedObjectStoreMethod(this.__versionTransaction);\n IDBTransaction.__assertActive(this.__versionTransaction);\n\n const store = this.__objectStores[storeName];\n if (!store) {\n throw createDOMException('NotFoundError', 'Object store \"' + storeName + '\" does not exist in ' + this.name);\n }\n\n IDBObjectStore.__deleteObjectStore(this, store);\n};\n\nIDBDatabase.prototype.close = function () {\n if (!(this instanceof IDBDatabase)) {\n throw new TypeError('Illegal invocation');\n }\n this.__closed = true;\n if (this.__unblocking) {\n this.__unblocking.check();\n }\n};\n\n/**\n * Starts a new transaction.\n * @param {string|string[]} storeNames\n * @param {string} mode\n * @returns {IDBTransaction}\n */\nIDBDatabase.prototype.transaction = function (storeNames /* , mode */) {\n let mode = arguments[1];\n storeNames = typeof storeNames === 'string'\n ? [storeNames]\n : (util.isIterable(storeNames)\n ? [ // Creating new array also ensures sequence is passed by value: https://heycam.github.io/webidl/#idl-sequence\n ...new Set( // to be unique\n util.convertToSequenceDOMString(storeNames) // iterables have `ToString` applied (and we convert to array for convenience)\n )\n ].sort() // must be sorted\n : (function () {\n throw new TypeError('You must supply a valid `storeNames` to `IDBDatabase.transaction`');\n }()));\n\n // Since SQLite (at least node-websql and definitely WebSQL) requires\n // locking of the whole database, to allow simultaneous readwrite\n // operations on transactions without overlapping stores, we'd probably\n // need to save the stores in separate databases (we could also consider\n // prioritizing readonly but not starving readwrite).\n // Even for readonly transactions, due to [issue 17](https://github.com/nolanlawson/node-websql/issues/17),\n // we're not currently actually running the SQL requests in parallel.\n if (typeof mode === 'number') {\n mode = mode === 1 ? 'readwrite' : 'readonly';\n CFG.DEBUG && console.log('Mode should be a string, but was specified as ', mode); // Todo Deprecated: Remove this option as no longer in spec\n } else {\n mode = mode || 'readonly';\n }\n\n IDBTransaction.__assertNotVersionChange(this.__versionTransaction);\n if (this.__closed) {\n throw createDOMException('InvalidStateError', 'An attempt was made to start a new transaction on a database connection that is not open');\n }\n\n const objectStoreNames = DOMStringList.__createInstance();\n storeNames.forEach((storeName) => {\n if (!this.objectStoreNames.contains(storeName)) {\n throw createDOMException('NotFoundError', 'The \"' + storeName + '\" object store does not exist');\n }\n objectStoreNames.push(storeName);\n });\n\n if (storeNames.length === 0) {\n throw createDOMException('InvalidAccessError', 'No valid object store names were specified');\n }\n\n if (mode !== 'readonly' && mode !== 'readwrite') {\n throw new TypeError('Invalid transaction mode: ' + mode);\n }\n\n // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n\n const trans = IDBTransaction.__createInstance(this, objectStoreNames, mode);\n this.__transactions.push(trans);\n return trans;\n};\n\n// Todo __forceClose: Add tests for `__forceClose`\nIDBDatabase.prototype.__forceClose = function (msg) {\n const me = this;\n me.close();\n let ct = 0;\n me.__transactions.forEach(function (trans) {\n trans.on__abort = function () {\n ct++;\n if (ct === me.__transactions.length) {\n // Todo __forceClose: unblock any pending `upgradeneeded` or `deleteDatabase` calls\n const evt = createEvent('close');\n setTimeout(() => {\n me.dispatchEvent(evt);\n });\n }\n };\n trans.__abortTransaction(createDOMException('AbortError', 'The connection was force-closed: ' + (msg || '')));\n });\n};\n\nlisteners.forEach((listener) => {\n Object.defineProperty(IDBDatabase.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBDatabase.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nObject.defineProperty(IDBDatabase.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBDatabase\n});\n\nObject.defineProperty(IDBDatabase, 'prototype', {\n writable: false\n});\n\nexport default IDBDatabase;\n","/* globals location, Event */\nimport {createEvent, ShimEvent, ShimCustomEvent, ShimEventTarget} from './Event';\nimport IDBVersionChangeEvent from './IDBVersionChangeEvent';\nimport {logError, webSQLErrback, createDOMException, ShimDOMException} from './DOMException';\nimport {IDBOpenDBRequest, IDBRequest} from './IDBRequest';\nimport ShimDOMStringList from './DOMStringList';\nimport * as util from './util';\nimport * as Key from './Key';\nimport IDBTransaction from './IDBTransaction';\nimport IDBDatabase from './IDBDatabase';\nimport CFG from './CFG';\nimport SyncPromise from 'sync-promise';\nimport path from 'path';\n\nconst getOrigin = () => (typeof location !== 'object' || !location) ? 'null' : location.origin;\nconst hasNullOrigin = () => CFG.checkOrigin !== false && (getOrigin() === 'null');\n\n// Todo: This really should be process and tab-independent so the\n// origin could vary; in the browser, this might be through a\n// `SharedWorker`\nconst connectionQueue = {};\n\nfunction processNextInConnectionQueue (name, origin = getOrigin()) {\n const queueItems = connectionQueue[origin][name];\n if (!queueItems[0]) { // Nothing left to process\n return;\n }\n const {req, cb} = queueItems[0]; // Keep in queue to prevent continuation\n function removeFromQueue () {\n queueItems.shift();\n processNextInConnectionQueue(name, origin);\n }\n req.addEventListener('success', removeFromQueue);\n req.addEventListener('error', removeFromQueue);\n cb(req);\n}\n\nfunction addRequestToConnectionQueue (req, name, origin = getOrigin(), cb) {\n if (!connectionQueue[origin][name]) {\n connectionQueue[origin][name] = [];\n }\n connectionQueue[origin][name].push({req, cb});\n\n if (connectionQueue[origin][name].length === 1) { // If there are no items in the queue, we have to start it\n processNextInConnectionQueue(name, origin);\n }\n}\n\nfunction triggerAnyVersionChangeAndBlockedEvents (openConnections, req, oldVersion, newVersion) {\n // Todo: For Node (and in browser using service workers if available?) the\n // connections ought to involve those in any process; should also\n // auto-close if unloading\n const connectionIsClosed = (connection) => connection.__closed;\n const connectionsClosed = () => openConnections.every(connectionIsClosed);\n return openConnections.reduce(function (promises, entry) {\n if (connectionIsClosed(entry)) {\n return promises;\n }\n return promises.then(function () {\n if (connectionIsClosed(entry)) {\n // Prior onversionchange must have caused this connection to be closed\n return;\n }\n const e = new IDBVersionChangeEvent('versionchange', {oldVersion, newVersion});\n return new SyncPromise(function (resolve) {\n setTimeout(() => {\n entry.dispatchEvent(e); // No need to catch errors\n resolve();\n });\n });\n });\n }, SyncPromise.resolve()).then(function () {\n if (!connectionsClosed()) {\n return new SyncPromise(function (resolve) {\n const unblocking = {\n check: function check () {\n if (connectionsClosed()) {\n resolve();\n }\n }\n };\n const e = new IDBVersionChangeEvent('blocked', {oldVersion, newVersion});\n setTimeout(() => {\n req.dispatchEvent(e); // No need to catch errors\n if (!connectionsClosed()) {\n openConnections.forEach((connection) => {\n if (!connectionIsClosed(connection)) {\n connection.__unblocking = unblocking;\n }\n });\n } else {\n resolve();\n }\n });\n });\n }\n });\n}\n\nconst websqlDBCache = {};\nlet sysdb;\nlet nameCounter = 0;\n\nfunction getLatestCachedWebSQLVersion (name) {\n return Object.keys(websqlDBCache[name]).map(Number).reduce(\n (prev, curr) => curr > prev ? curr : prev, 0\n );\n}\n\nfunction getLatestCachedWebSQLDB (name) {\n return websqlDBCache[name] && websqlDBCache[name][ // eslint-disable-line standard/computed-property-even-spacing\n getLatestCachedWebSQLVersion()\n ];\n}\n\nfunction cleanupDatabaseResources (__openDatabase, name, escapedDatabaseName, databaseDeleted, dbError) {\n const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n if (useMemoryDatabase) {\n const latestSQLiteDBCached = websqlDBCache[name] ? getLatestCachedWebSQLDB(name) : null;\n if (!latestSQLiteDBCached) {\n console.warn('Could not find a memory database instance to delete.');\n databaseDeleted();\n return;\n }\n const sqliteDB = latestSQLiteDBCached._db && latestSQLiteDBCached._db._db;\n if (!sqliteDB || !sqliteDB.close) {\n console.error('The `openDatabase` implementation does not have the expected `._db._db.close` method for closing the database');\n return;\n }\n sqliteDB.close(function (err) {\n if (err) {\n console.warn('Error closing (destroying) memory database');\n return;\n }\n databaseDeleted();\n });\n return;\n }\n if (CFG.deleteDatabaseFiles !== false && ({}.toString.call(process) === '[object process]')) {\n require('fs').unlink(require('path').resolve(escapedDatabaseName), (err) => {\n if (err && err.code !== 'ENOENT') { // Ignore if file is already deleted\n dbError({code: 0, message: 'Error removing database file: ' + escapedDatabaseName + ' ' + err});\n return;\n }\n databaseDeleted();\n });\n return;\n }\n\n const sqliteDB = __openDatabase(\n path.join(CFG.databaseBasePath || '', escapedDatabaseName),\n 1,\n name,\n CFG.DEFAULT_DB_SIZE\n );\n sqliteDB.transaction(function (tx) {\n tx.executeSql('SELECT \"name\" FROM __sys__', [], function (tx, data) {\n const tables = data.rows;\n (function deleteTables (i) {\n if (i >= tables.length) {\n // If all tables are deleted, delete the housekeeping tables\n tx.executeSql('DROP TABLE IF EXISTS __sys__', [], function () {\n databaseDeleted();\n }, dbError);\n } else {\n // Delete all tables in this database, maintained in the sys table\n tx.executeSql('DROP TABLE ' + util.escapeStoreNameForSQL(\n util.unescapeSQLiteResponse( // Avoid double-escaping\n tables.item(i).name\n )\n ), [], function () {\n deleteTables(i + 1);\n }, function () {\n deleteTables(i + 1);\n });\n }\n }(0));\n }, function (e) {\n // __sys__ table does not exist, but that does not mean delete did not happen\n databaseDeleted();\n });\n });\n}\n\n/**\n * Creates the sysDB to keep track of version numbers for databases\n **/\nfunction createSysDB (__openDatabase, success, failure) {\n function sysDbCreateError (tx, err) {\n err = webSQLErrback(err);\n CFG.DEBUG && console.log('Error in sysdb transaction - when creating dbVersions', err);\n failure(err);\n }\n\n if (sysdb) {\n success();\n } else {\n sysdb = __openDatabase(\n typeof CFG.memoryDatabase === 'string'\n ? CFG.memoryDatabase\n : path.join(\n (typeof CFG.sysDatabaseBasePath === 'string'\n ? CFG.sysDatabaseBasePath\n : (CFG.databaseBasePath || '')),\n '__sysdb__' + (CFG.addSQLiteExtension !== false ? '.sqlite' : '')\n ),\n 1,\n 'System Database',\n CFG.DEFAULT_DB_SIZE\n );\n sysdb.transaction(function (systx) {\n systx.executeSql('CREATE TABLE IF NOT EXISTS dbVersions (name BLOB, version INT);', [], success, sysDbCreateError);\n }, sysDbCreateError);\n }\n}\n\n/**\n * IDBFactory Class\n * https://w3c.github.io/IndexedDB/#idl-def-IDBFactory\n * @constructor\n */\nfunction IDBFactory () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBFactoryAlias = IDBFactory;\nIDBFactory.__createInstance = function () {\n function IDBFactory () {\n this[Symbol.toStringTag] = 'IDBFactory';\n this.modules = { // Export other shims (especially for testing)\n Event: typeof Event !== 'undefined' ? Event : ShimEvent,\n Error, // For test comparisons\n ShimEvent,\n ShimCustomEvent,\n ShimEventTarget,\n ShimDOMException,\n ShimDOMStringList,\n IDBFactory: IDBFactoryAlias\n };\n this.utils = {createDOMException}; // Expose for ease in simulating such exceptions during testing\n this.__connections = {};\n }\n IDBFactory.prototype = IDBFactoryAlias.prototype;\n return new IDBFactory();\n};\n\n/**\n * The IndexedDB Method to create a new database and return the DB\n * @param {string} name\n * @param {number} version\n */\nIDBFactory.prototype.open = function (name /* , version */) {\n const me = this;\n if (!(me instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n let version = arguments[1];\n\n if (arguments.length === 0) {\n throw new TypeError('Database name is required');\n }\n if (version !== undefined) {\n version = util.enforceRange(version, 'unsigned long long');\n if (version === 0) {\n throw new TypeError('Version cannot be 0');\n }\n }\n if (hasNullOrigin()) {\n throw createDOMException('SecurityError', 'Cannot open an IndexedDB database from an opaque origin.');\n }\n\n const req = IDBOpenDBRequest.__createInstance();\n let calledDbCreateError = false;\n\n if (CFG.autoName && name === '') {\n name = 'autoNamedDatabase_' + nameCounter++;\n }\n name = String(name); // cast to a string\n const sqlSafeName = util.escapeSQLiteStatement(name);\n\n const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n const useDatabaseCache = CFG.cacheDatabaseInstances !== false || useMemoryDatabase;\n\n let escapedDatabaseName;\n try {\n escapedDatabaseName = util.escapeDatabaseNameForSQLAndFiles(name);\n } catch (err) {\n throw err; // new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');\n }\n\n function dbCreateError (tx, err) {\n if (calledDbCreateError) {\n return;\n }\n err = err ? webSQLErrback(err) : tx;\n calledDbCreateError = true;\n // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n const evt = createEvent('error', err, {bubbles: true, cancelable: true});\n req.__readyState = 'done';\n req.__error = err;\n req.__result = undefined;\n req.dispatchEvent(evt);\n }\n\n function openDB (oldVersion) {\n let db;\n if ((useMemoryDatabase || useDatabaseCache) && name in websqlDBCache && websqlDBCache[name][version]) {\n db = websqlDBCache[name][version];\n } else {\n db = me.__openDatabase(\n useMemoryDatabase ? CFG.memoryDatabase : path.join(CFG.databaseBasePath || '', escapedDatabaseName),\n 1,\n name,\n CFG.DEFAULT_DB_SIZE\n );\n if (useDatabaseCache) {\n websqlDBCache[name][version] = db;\n }\n }\n\n if (version === undefined) {\n version = oldVersion || 1;\n }\n if (oldVersion > version) {\n const err = createDOMException('VersionError', 'An attempt was made to open a database using a lower version than the existing version.', version);\n dbCreateError(err);\n return;\n }\n\n db.transaction(function (tx) {\n tx.executeSql('CREATE TABLE IF NOT EXISTS __sys__ (name BLOB, keyPath BLOB, autoInc BOOLEAN, indexList BLOB, currNum INTEGER)', [], function () {\n tx.executeSql('SELECT \"name\", \"keyPath\", \"autoInc\", \"indexList\" FROM __sys__', [], function (tx, data) {\n function finishRequest () {\n req.__readyState = 'done';\n req.__result = connection;\n }\n const connection = IDBDatabase.__createInstance(db, name, oldVersion, version, data);\n if (!me.__connections[name]) {\n me.__connections[name] = [];\n }\n me.__connections[name].push(connection);\n\n if (oldVersion < version) {\n const openConnections = me.__connections[name].slice(0, -1);\n triggerAnyVersionChangeAndBlockedEvents(openConnections, req, oldVersion, version).then(function () {\n // DB Upgrade in progress\n let sysdbFinishedCb = function (systx, err, cb) {\n if (err) {\n try {\n systx.executeSql('ROLLBACK', [], cb, cb);\n } catch (er) { // Browser may fail with expired transaction above so\n // no choice but to manually revert\n sysdb.transaction(function (systx) {\n function reportError (msg) {\n throw new Error('Unable to roll back upgrade transaction!' + (msg || ''));\n }\n\n // Attempt to revert\n if (oldVersion === 0) {\n systx.executeSql('DELETE FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function () {\n cb(reportError);\n }, reportError);\n } else {\n systx.executeSql('UPDATE dbVersions SET \"version\" = ? WHERE \"name\" = ?', [oldVersion, sqlSafeName], cb, reportError);\n }\n });\n }\n return;\n }\n cb(); // In browser, should auto-commit\n };\n\n sysdb.transaction(function (systx) {\n function versionSet () {\n const e = new IDBVersionChangeEvent('upgradeneeded', {oldVersion, newVersion: version});\n req.__result = connection;\n req.__transaction = req.__result.__versionTransaction = IDBTransaction.__createInstance(req.__result, req.__result.objectStoreNames, 'versionchange');\n req.__readyState = 'done';\n req.transaction.__addNonRequestToTransactionQueue(function onupgradeneeded (tx, args, finished, error) {\n req.dispatchEvent(e);\n if (e.__legacyOutputDidListenersThrowError) {\n logError('Error', 'An error occurred in an upgradeneeded handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n req.transaction.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n return;\n }\n finished();\n });\n req.transaction.on__beforecomplete = function (ev) {\n req.__result.__versionTransaction = null;\n sysdbFinishedCb(systx, false, function () {\n req.transaction.__transFinishedCb(false, function () {\n if (useDatabaseCache) {\n if (name in websqlDBCache) {\n delete websqlDBCache[name][version];\n }\n }\n ev.complete();\n req.__transaction = null;\n });\n });\n };\n req.transaction.on__preabort = function () {\n // We ensure any cache is deleted before any request error events fire and try to reopen\n if (useDatabaseCache) {\n if (name in websqlDBCache) {\n delete websqlDBCache[name][version];\n }\n }\n };\n req.transaction.on__abort = function () {\n req.__transaction = null;\n connection.close();\n setTimeout(() => {\n const err = createDOMException('AbortError', 'The upgrade transaction was aborted.');\n sysdbFinishedCb(systx, err, function (reportError) {\n if (oldVersion === 0) {\n cleanupDatabaseResources(me.__openDatabase, name, escapedDatabaseName, dbCreateError.bind(null, err), reportError || dbCreateError);\n return;\n }\n dbCreateError(err);\n });\n });\n };\n req.transaction.on__complete = function () {\n if (req.__result.__closed) {\n req.__transaction = null;\n const err = createDOMException('AbortError', 'The connection has been closed.');\n dbCreateError(err);\n return;\n }\n // Since this is running directly after `IDBTransaction.complete`,\n // there should be a new task. However, while increasing the\n // timeout 1ms in `IDBTransaction.__executeRequests` can allow\n // `IDBOpenDBRequest.onsuccess` to trigger faster than a new\n // transaction as required by \"transaction-create_in_versionchange\" in\n // w3c/Transaction.js (though still on a timeout separate from this\n // preceding `IDBTransaction.oncomplete`), this causes a race condition\n // somehow with old transactions (e.g., for the Mocha test,\n // in `IDBObjectStore.deleteIndex`, \"should delete an index that was\n // created in a previous transaction\").\n // setTimeout(() => {\n\n // Todo: Waiting on confirmation re: positioning here of\n // `readyState` (and `result`)--see https://github.com/w3c/IndexedDB/issues/161\n // Note, however, that the readyState and result will be reset anyways\n // req.__readyState = 'pending';\n // req.__result = undefined;\n\n finishRequest();\n\n req.__transaction = null;\n const e = createEvent('success');\n req.dispatchEvent(e);\n // });\n };\n }\n if (oldVersion === 0) {\n systx.executeSql('INSERT INTO dbVersions VALUES (?,?)', [sqlSafeName, version], versionSet, dbCreateError);\n } else {\n systx.executeSql('UPDATE dbVersions SET \"version\" = ? WHERE \"name\" = ?', [version, sqlSafeName], versionSet, dbCreateError);\n }\n }, dbCreateError, null, function (currentTask, err, done, rollback, commit) {\n if (currentTask.readOnly || err) {\n return true;\n }\n sysdbFinishedCb = function (systx, err, cb) {\n if (err) {\n rollback(err, cb);\n } else {\n commit(cb);\n }\n };\n return false;\n });\n });\n } else {\n finishRequest();\n\n const e = createEvent('success');\n req.dispatchEvent(e);\n }\n }, dbCreateError);\n }, dbCreateError);\n }, dbCreateError);\n }\n\n addRequestToConnectionQueue(req, name, /* origin */ undefined, function (req) {\n let latestCachedVersion;\n if (useDatabaseCache) {\n if (!(name in websqlDBCache)) {\n websqlDBCache[name] = {};\n }\n if (version === undefined) {\n latestCachedVersion = getLatestCachedWebSQLVersion(name);\n } else if (websqlDBCache[name][version]) {\n latestCachedVersion = version;\n }\n }\n if (latestCachedVersion) {\n openDB(latestCachedVersion);\n } else {\n createSysDB(me.__openDatabase, function () {\n sysdb.readTransaction(function (sysReadTx) {\n sysReadTx.executeSql('SELECT \"version\" FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function (sysReadTx, data) {\n if (data.rows.length === 0) {\n // Database with this name does not exist\n openDB(0);\n } else {\n openDB(data.rows.item(0).version);\n }\n }, dbCreateError);\n }, dbCreateError);\n }, dbCreateError);\n }\n });\n\n return req;\n};\n\n/**\n * Deletes a database\n * @param {string} name\n * @returns {IDBOpenDBRequest}\n */\nIDBFactory.prototype.deleteDatabase = function (name) {\n const me = this;\n if (!(me instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('Database name is required');\n }\n if (hasNullOrigin()) {\n throw createDOMException('SecurityError', 'Cannot delete an IndexedDB database from an opaque origin.');\n }\n\n name = String(name); // cast to a string\n const sqlSafeName = util.escapeSQLiteStatement(name);\n\n let escapedDatabaseName;\n try {\n escapedDatabaseName = util.escapeDatabaseNameForSQLAndFiles(name);\n } catch (err) {\n throw err; // throw new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');\n }\n\n const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n const useDatabaseCache = CFG.cacheDatabaseInstances !== false || useMemoryDatabase;\n\n const req = IDBOpenDBRequest.__createInstance();\n let calledDBError = false;\n let version = 0;\n\n let sysdbFinishedCbDelete = function (err, cb) {\n cb(err);\n };\n\n // Although the spec has no specific conditions where an error\n // may occur in `deleteDatabase`, it does provide for\n // `UnknownError` as we may require upon a SQL deletion error\n function dbError (tx, err) {\n if (calledDBError || err === true) {\n return;\n }\n err = webSQLErrback(err || tx);\n sysdbFinishedCbDelete(true, function () {\n req.__readyState = 'done';\n req.__error = err;\n req.__result = undefined;\n // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n const e = createEvent('error', err, {bubbles: true, cancelable: true});\n req.dispatchEvent(e);\n calledDBError = true;\n });\n }\n\n addRequestToConnectionQueue(req, name, /* origin */ undefined, function (req) {\n createSysDB(me.__openDatabase, function () {\n // function callback (cb) { cb(); }\n // callback(function () {\n\n function completeDatabaseDelete () {\n req.__result = undefined;\n req.__readyState = 'done';\n const e = new IDBVersionChangeEvent('success', {oldVersion: version, newVersion: null});\n req.dispatchEvent(e);\n }\n\n function databaseDeleted () {\n sysdbFinishedCbDelete(false, function () {\n if (useDatabaseCache && name in websqlDBCache) {\n delete websqlDBCache[name]; // New calls will treat as though never existed\n }\n delete me.__connections[name];\n\n completeDatabaseDelete();\n });\n }\n sysdb.readTransaction(function (sysReadTx) {\n sysReadTx.executeSql('SELECT \"version\" FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function (sysReadTx, data) {\n if (data.rows.length === 0) {\n completeDatabaseDelete();\n return;\n }\n version = data.rows.item(0).version;\n\n const openConnections = me.__connections[name] || [];\n triggerAnyVersionChangeAndBlockedEvents(openConnections, req, version, null).then(function () {\n // Since we need two databases which can't be in a single transaction, we\n // do this deleting from `dbVersions` first since the `__sys__` deleting\n // only impacts file memory whereas this one is critical for avoiding it\n // being found via `open` or `webkitGetDatabaseNames`; however, we will\n // avoid committing anyways until all deletions are made and rollback the\n // `dbVersions` change if they fail\n sysdb.transaction(function (systx) {\n systx.executeSql('DELETE FROM dbVersions WHERE \"name\" = ? ', [sqlSafeName], function () {\n // Todo: We should also check whether `dbVersions` is empty and if so, delete upon\n // `deleteDatabaseFiles` config. We also ought to do this when aborting (see\n // above code with `DELETE FROM dbVersions`)\n cleanupDatabaseResources(me.__openDatabase, name, escapedDatabaseName, databaseDeleted, dbError);\n }, dbError);\n }, dbError, null, function (currentTask, err, done, rollback, commit) {\n if (currentTask.readOnly || err) {\n return true;\n }\n sysdbFinishedCbDelete = function (err, cb) {\n if (err) {\n rollback(err, cb);\n } else {\n commit(cb);\n }\n };\n return false;\n });\n }, dbError);\n }, dbError);\n });\n }, dbError);\n });\n\n return req;\n};\n\n/**\n * Compares two keys\n * @param key1\n * @param key2\n * @returns {number}\n */\nfunction cmp (first, second) {\n const encodedKey1 = Key.encode(first);\n const encodedKey2 = Key.encode(second);\n const result = encodedKey1 > encodedKey2 ? 1 : encodedKey1 === encodedKey2 ? 0 : -1;\n\n if (CFG.DEBUG) {\n // verify that the keys encoded correctly\n let decodedKey1 = Key.decode(encodedKey1);\n let decodedKey2 = Key.decode(encodedKey2);\n if (typeof first === 'object') {\n first = JSON.stringify(first);\n decodedKey1 = JSON.stringify(decodedKey1);\n }\n if (typeof second === 'object') {\n second = JSON.stringify(second);\n decodedKey2 = JSON.stringify(decodedKey2);\n }\n\n // encoding/decoding mismatches are usually due to a loss of floating-point precision\n if (decodedKey1 !== first) {\n console.warn(first + ' was incorrectly encoded as ' + decodedKey1);\n }\n if (decodedKey2 !== second) {\n console.warn(second + ' was incorrectly encoded as ' + decodedKey2);\n }\n }\n\n return result;\n}\n\nIDBFactory.prototype.cmp = function (key1, key2) {\n if (!(this instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length < 2) {\n throw new TypeError('You must provide two keys to be compared');\n }\n // We use encoding facilities already built for proper sorting;\n // the following \"conversions\" are for validation only\n Key.convertValueToKeyRethrowingAndIfInvalid(key1);\n Key.convertValueToKeyRethrowingAndIfInvalid(key2);\n return cmp(key1, key2);\n};\n\n/**\n* NON-STANDARD!! (Also may return outdated information if a database has since been deleted)\n* @link https://www.w3.org/Bugs/Public/show_bug.cgi?id=16137\n* @link http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1537.html\n*/\nIDBFactory.prototype.webkitGetDatabaseNames = function () {\n const me = this;\n if (!(me instanceof IDBFactory)) {\n throw new TypeError('Illegal invocation');\n }\n if (hasNullOrigin()) {\n throw createDOMException('SecurityError', 'Cannot get IndexedDB database names from an opaque origin.');\n }\n\n let calledDbCreateError = false;\n function dbGetDatabaseNamesError (tx, err) {\n if (calledDbCreateError) {\n return;\n }\n err = err ? webSQLErrback(err) : tx;\n calledDbCreateError = true;\n // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n const evt = createEvent('error', err, {bubbles: true, cancelable: true}); // http://stackoverflow.com/questions/40165909/to-where-do-idbopendbrequest-error-events-bubble-up/40181108#40181108\n req.__readyState = 'done';\n req.__error = err;\n req.__result = undefined;\n req.dispatchEvent(evt);\n }\n const req = IDBRequest.__createInstance();\n createSysDB(me.__openDatabase, function () {\n sysdb.readTransaction(function (sysReadTx) {\n sysReadTx.executeSql('SELECT \"name\" FROM dbVersions', [], function (sysReadTx, data) {\n const dbNames = ShimDOMStringList.__createInstance();\n for (let i = 0; i < data.rows.length; i++) {\n dbNames.push(util.unescapeSQLiteResponse(data.rows.item(i).name));\n }\n req.__result = dbNames;\n req.__readyState = 'done';\n const e = createEvent('success'); // http://stackoverflow.com/questions/40165909/to-where-do-idbopendbrequest-error-events-bubble-up/40181108#40181108\n req.dispatchEvent(e);\n }, dbGetDatabaseNamesError);\n }, dbGetDatabaseNamesError);\n }, dbGetDatabaseNamesError);\n return req;\n};\n\n/**\n* @Todo __forceClose: Test\n* This is provided to facilitate unit-testing of the\n* closing of a database connection with a forced flag:\n* \n*/\nIDBFactory.prototype.__forceClose = function (dbName, connIdx, msg) {\n const me = this;\n function forceClose (conn) {\n conn.__forceClose(msg);\n }\n if (dbName == null) {\n Object.values(me.__connections).forEach((conn) => conn.forEach(forceClose));\n } else if (!me.__connections[dbName]) {\n console.log('No database connections with that name to force close');\n } else if (connIdx == null) {\n me.__connections[dbName].forEach(forceClose);\n } else if (!Number.isInteger(connIdx) || connIdx < 0 || connIdx > me.__connections[dbName].length - 1) {\n throw new TypeError(\n 'If providing an argument, __forceClose must be called with a ' +\n 'numeric index to indicate a specific connection to lose'\n );\n } else {\n forceClose(me.__connections[dbName][connIdx]);\n }\n};\n\nIDBFactory.prototype.__setConnectionQueueOrigin = function (origin = getOrigin()) {\n connectionQueue[origin] = {};\n};\n\nIDBFactory.prototype[Symbol.toStringTag] = 'IDBFactoryPrototype';\n\nObject.defineProperty(IDBFactory, 'prototype', {\n writable: false\n});\n\nconst shimIndexedDB = IDBFactory.__createInstance();\nexport {IDBFactory, cmp, shimIndexedDB};\n","import {createDOMException} from './DOMException';\nimport {IDBCursor, IDBCursorWithValue} from './IDBCursor';\nimport * as util from './util';\nimport * as Key from './Key';\nimport {setSQLForKeyRange, IDBKeyRange, convertValueToKeyRange} from './IDBKeyRange';\nimport IDBTransaction from './IDBTransaction';\nimport * as Sca from './Sca';\nimport CFG from './CFG';\nimport IDBObjectStore from './IDBObjectStore';\n\nconst readonlyProperties = ['objectStore', 'keyPath', 'multiEntry', 'unique'];\n\n/**\n * IDB Index\n * http://www.w3.org/TR/IndexedDB/#idl-def-IDBIndex\n * @param {IDBObjectStore} store\n * @param {IDBIndexProperties} indexProperties\n * @constructor\n */\nfunction IDBIndex () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBIndexAlias = IDBIndex;\nIDBIndex.__createInstance = function (store, indexProperties) {\n function IDBIndex () {\n const me = this;\n me[Symbol.toStringTag] = 'IDBIndex';\n util.defineReadonlyProperties(me, readonlyProperties);\n me.__objectStore = store;\n me.__name = me.__originalName = indexProperties.columnName;\n me.__keyPath = Array.isArray(indexProperties.keyPath) ? indexProperties.keyPath.slice() : indexProperties.keyPath;\n const optionalParams = indexProperties.optionalParams;\n me.__multiEntry = !!(optionalParams && optionalParams.multiEntry);\n me.__unique = !!(optionalParams && optionalParams.unique);\n me.__deleted = !!indexProperties.__deleted;\n me.__objectStore.__cursors = indexProperties.cursors || [];\n Object.defineProperty(me, '__currentName', {\n get: function () {\n return '__pendingName' in me ? me.__pendingName : me.name;\n }\n });\n Object.defineProperty(me, 'name', {\n enumerable: false,\n configurable: false,\n get: function () {\n return this.__name;\n },\n set: function (newName) {\n const me = this;\n newName = util.convertToDOMString(newName);\n const oldName = me.name;\n IDBTransaction.__assertVersionChange(me.objectStore.transaction);\n IDBTransaction.__assertActive(me.objectStore.transaction);\n IDBIndexAlias.__invalidStateIfDeleted(me);\n IDBObjectStore.__invalidStateIfDeleted(me);\n if (newName === oldName) {\n return;\n }\n\n if (me.objectStore.__indexes[newName] && !me.objectStore.__indexes[newName].__deleted &&\n !me.objectStore.__indexes[newName].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Index \"' + newName + '\" already exists on ' + me.objectStore.__currentName);\n }\n\n me.__name = newName;\n\n const objectStore = me.objectStore;\n delete objectStore.__indexes[oldName];\n objectStore.__indexes[newName] = me;\n objectStore.indexNames.splice(objectStore.indexNames.indexOf(oldName), 1, newName);\n\n const storeHandle = objectStore.transaction.__storeHandles[objectStore.name];\n const oldIndexHandle = storeHandle.__indexHandles[oldName];\n oldIndexHandle.__name = newName; // Fix old references\n storeHandle.__indexHandles[newName] = oldIndexHandle; // Ensure new reference accessible\n me.__pendingName = oldName;\n\n const colInfoToPreserveArr = [\n ['key', 'BLOB ' + (objectStore.autoIncrement ? 'UNIQUE, inc INTEGER PRIMARY KEY AUTOINCREMENT' : 'PRIMARY KEY')],\n ['value', 'BLOB']\n ].concat(\n Array.from(objectStore.indexNames)\n .filter((indexName) => indexName !== newName)\n .map((indexName) => [util.escapeIndexNameForSQL(indexName), 'BLOB'])\n );\n\n me.__renameIndex(objectStore, oldName, newName, colInfoToPreserveArr, function (tx, success) {\n IDBIndexAlias.__updateIndexList(store, tx, function (store) {\n delete storeHandle.__pendingName;\n success(store);\n });\n });\n }\n });\n }\n IDBIndex.prototype = IDBIndexAlias.prototype;\n return new IDBIndex();\n};\n\nIDBIndex.__invalidStateIfDeleted = function (index, msg) {\n if (index.__deleted || index.__pendingDelete || (\n index.__pendingCreate && index.objectStore.transaction && index.objectStore.transaction.__errored\n )) {\n throw createDOMException('InvalidStateError', msg || 'This index has been deleted');\n }\n};\n\n/**\n * Clones an IDBIndex instance for a different IDBObjectStore instance.\n * @param {IDBIndex} index\n * @param {IDBObjectStore} store\n * @protected\n */\nIDBIndex.__clone = function (index, store) {\n const idx = IDBIndex.__createInstance(store, {\n columnName: index.name,\n keyPath: index.keyPath,\n optionalParams: {\n multiEntry: index.multiEntry,\n unique: index.unique\n }\n });\n ['__pendingCreate', '__pendingDelete', '__deleted', '__originalName', '__recreated'].forEach((p) => {\n idx[p] = index[p];\n });\n return idx;\n};\n\n/**\n * Creates a new index on an object store.\n * @param {IDBObjectStore} store\n * @param {IDBIndex} index\n * @returns {IDBIndex}\n * @protected\n */\nIDBIndex.__createIndex = function (store, index) {\n const indexName = index.name;\n const storeName = store.__currentName;\n const idx = store.__indexes[indexName];\n\n index.__pendingCreate = true;\n\n // Add the index to the IDBObjectStore\n store.indexNames.push(indexName);\n store.__indexes[indexName] = index; // We add to indexes as needs to be available, e.g., if there is a subsequent deleteIndex call\n\n let indexHandle = store.__indexHandles[indexName];\n if (!indexHandle ||\n index.__pendingDelete ||\n index.__deleted ||\n indexHandle.__pendingDelete ||\n indexHandle.__deleted\n ) {\n indexHandle = store.__indexHandles[indexName] = IDBIndex.__clone(index, store);\n }\n\n // Create the index in WebSQL\n const transaction = store.transaction;\n transaction.__addNonRequestToTransactionQueue(function createIndex (tx, args, success, failure) {\n const columnExists = idx && (idx.__deleted || idx.__recreated); // This check must occur here rather than earlier as properties may not have been set yet otherwise\n let indexValues = {};\n\n function error (tx, err) {\n failure(createDOMException('UnknownError', 'Could not create index \"' + indexName + '\"' + err.code + '::' + err.message, err));\n }\n\n function applyIndex (tx) {\n // Update the object store's index list\n IDBIndex.__updateIndexList(store, tx, function () {\n // Add index entries for all existing records\n tx.executeSql('SELECT \"key\", \"value\" FROM ' + util.escapeStoreNameForSQL(storeName), [], function (tx, data) {\n CFG.DEBUG && console.log('Adding existing ' + storeName + ' records to the ' + indexName + ' index');\n addIndexEntry(0);\n\n function addIndexEntry (i) {\n if (i < data.rows.length) {\n try {\n const value = Sca.decode(util.unescapeSQLiteResponse(data.rows.item(i).value));\n let indexKey = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, index.keyPath, index.multiEntry); // Todo: Do we need this stricter error checking?\n if (indexKey.invalid || indexKey.failure) { // Todo: Do we need invalid checks and should we instead treat these as being duplicates?\n throw new Error('Go to catch; ignore bad indexKey');\n }\n indexKey = Key.encode(indexKey.value, index.multiEntry);\n if (index.unique) {\n if (indexValues[indexKey]) {\n indexValues = {};\n failure(createDOMException(\n 'ConstraintError',\n 'Duplicate values already exist within the store'\n ));\n return;\n }\n indexValues[indexKey] = true;\n }\n\n tx.executeSql(\n 'UPDATE ' + util.escapeStoreNameForSQL(storeName) + ' SET ' +\n util.escapeIndexNameForSQL(indexName) + ' = ? WHERE \"key\" = ?',\n [util.escapeSQLiteStatement(indexKey), data.rows.item(i).key],\n function (tx, data) {\n addIndexEntry(i + 1);\n }, error\n );\n } catch (e) {\n // Not a valid value to insert into index, so just continue\n addIndexEntry(i + 1);\n }\n } else {\n delete index.__pendingCreate;\n delete indexHandle.__pendingCreate;\n if (index.__deleted) {\n delete index.__deleted;\n delete indexHandle.__deleted;\n index.__recreated = true;\n indexHandle.__recreated = true;\n }\n indexValues = {};\n success(store);\n }\n }\n }, error);\n }, error);\n }\n\n if (columnExists) {\n // For a previously existing index, just update the index entries in the existing column\n applyIndex(tx);\n } else {\n // For a new index, add a new column to the object store, then apply the index\n const sql = ['ALTER TABLE', util.escapeStoreNameForSQL(storeName), 'ADD', util.escapeIndexNameForSQL(index.name), 'BLOB'].join(' ');\n CFG.DEBUG && console.log(sql);\n tx.executeSql(sql, [], applyIndex, error);\n }\n }, undefined, store);\n};\n\n/**\n * Deletes an index from an object store.\n * @param {IDBObjectStore} store\n * @param {IDBIndex} index\n * @protected\n */\nIDBIndex.__deleteIndex = function (store, index) {\n // Remove the index from the IDBObjectStore\n index.__pendingDelete = true;\n const indexHandle = store.__indexHandles[index.name];\n if (indexHandle) {\n indexHandle.__pendingDelete = true;\n }\n\n store.indexNames.splice(store.indexNames.indexOf(index.name), 1);\n\n // Remove the index in WebSQL\n const transaction = store.transaction;\n transaction.__addNonRequestToTransactionQueue(function deleteIndex (tx, args, success, failure) {\n function error (tx, err) {\n failure(createDOMException('UnknownError', 'Could not delete index \"' + index.name + '\"', err));\n }\n\n // Update the object store's index list\n IDBIndex.__updateIndexList(store, tx, function (store) {\n delete index.__pendingDelete;\n delete index.__recreated;\n index.__deleted = true;\n if (indexHandle) {\n indexHandle.__deleted = true;\n delete indexHandle.__pendingDelete;\n }\n success(store);\n }, error);\n }, undefined, store);\n};\n\n/**\n * Updates index list for the given object store.\n * @param {IDBObjectStore} store\n * @param {object} tx\n * @param {function} success\n * @param {function} failure\n */\nIDBIndex.__updateIndexList = function (store, tx, success, failure) {\n const indexList = {};\n for (let i = 0; i < store.indexNames.length; i++) {\n const idx = store.__indexes[store.indexNames[i]];\n /** @type {IDBIndexProperties} **/\n indexList[idx.name] = {\n columnName: idx.name,\n keyPath: idx.keyPath,\n optionalParams: {\n unique: idx.unique,\n multiEntry: idx.multiEntry\n },\n deleted: !!idx.deleted\n };\n }\n\n CFG.DEBUG && console.log('Updating the index list for ' + store.__currentName, indexList);\n tx.executeSql('UPDATE __sys__ SET \"indexList\" = ? WHERE \"name\" = ?', [JSON.stringify(indexList), util.escapeSQLiteStatement(store.__currentName)], function () {\n success(store);\n }, failure);\n};\n\n/**\n * Retrieves index data for the given key\n * @param {*|IDBKeyRange} range\n * @param {string} opType\n * @param {boolean} nullDisallowed\n * @param {number} count\n * @returns {IDBRequest}\n * @private\n */\nIDBIndex.prototype.__fetchIndexData = function (range, opType, nullDisallowed, count) {\n const me = this;\n if (count !== undefined) {\n count = util.enforceRange(count, 'unsigned long');\n }\n\n IDBIndex.__invalidStateIfDeleted(me);\n IDBObjectStore.__invalidStateIfDeleted(me.objectStore);\n if (me.objectStore.__deleted) {\n throw createDOMException('InvalidStateError', \"This index's object store has been deleted\");\n }\n IDBTransaction.__assertActive(me.objectStore.transaction);\n\n if (nullDisallowed && range == null) {\n throw createDOMException('DataError', 'No key or range was specified');\n }\n\n const fetchArgs = buildFetchIndexDataSQL(nullDisallowed, me, range, opType, false);\n return me.objectStore.transaction.__addToTransactionQueue(function (...args) {\n executeFetchIndexData(count, ...fetchArgs, ...args);\n }, undefined, me);\n};\n\n/**\n * Opens a cursor over the given key range.\n * @param {*|IDBKeyRange} query\n * @param {string} direction\n * @returns {IDBRequest}\n */\nIDBIndex.prototype.openCursor = function (/* query, direction */) {\n const me = this;\n const [query, direction] = arguments;\n const cursor = IDBCursorWithValue.__createInstance(query, direction, me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'value');\n me.__objectStore.__cursors.push(cursor);\n return cursor.__req;\n};\n\n/**\n * Opens a cursor over the given key range. The cursor only includes key values, not data.\n * @param {*|IDBKeyRange} query\n * @param {string} direction\n * @returns {IDBRequest}\n */\nIDBIndex.prototype.openKeyCursor = function (/* query, direction */) {\n const me = this;\n const [query, direction] = arguments;\n const cursor = IDBCursor.__createInstance(query, direction, me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'key');\n me.__objectStore.__cursors.push(cursor);\n return cursor.__req;\n};\n\nIDBIndex.prototype.get = function (query) {\n if (!arguments.length) { // Per https://heycam.github.io/webidl/\n throw new TypeError('A parameter was missing for `IDBIndex.get`.');\n }\n return this.__fetchIndexData(query, 'value', true);\n};\n\nIDBIndex.prototype.getKey = function (query) {\n if (!arguments.length) { // Per https://heycam.github.io/webidl/\n throw new TypeError('A parameter was missing for `IDBIndex.getKey`.');\n }\n return this.__fetchIndexData(query, 'key', true);\n};\n\nIDBIndex.prototype.getAll = function (/* query, count */) {\n const [query, count] = arguments;\n return this.__fetchIndexData(query, 'value', false, count);\n};\n\nIDBIndex.prototype.getAllKeys = function (/* query, count */) {\n const [query, count] = arguments;\n return this.__fetchIndexData(query, 'key', false, count);\n};\n\nIDBIndex.prototype.count = function (/* query */) {\n const me = this;\n const query = arguments[0];\n // With the exception of needing to check whether the index has been\n // deleted, we could, for greater spec parity (if not accuracy),\n // just call:\n // `return me.__objectStore.count(query);`\n\n if (util.instanceOf(query, IDBKeyRange)) { // Todo: Do we need this block?\n // We don't need to add to cursors array since has the count parameter which won't cache\n return IDBCursorWithValue.__createInstance(query, 'next', me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'value', true).__req;\n }\n return me.__fetchIndexData(query, 'count', false);\n};\n\nIDBIndex.prototype.__renameIndex = function (store, oldName, newName, colInfoToPreserveArr = [], cb = null) {\n const newNameType = 'BLOB';\n const storeName = store.__currentName;\n const escapedStoreNameSQL = util.escapeStoreNameForSQL(storeName);\n const escapedTmpStoreNameSQL = util.escapeStoreNameForSQL('tmp_' + storeName);\n const colNamesToPreserve = colInfoToPreserveArr.map((colInfo) => colInfo[0]);\n const colInfoToPreserve = colInfoToPreserveArr.map((colInfo) => colInfo.join(' '));\n const listColInfoToPreserve = (colInfoToPreserve.length ? (colInfoToPreserve.join(', ') + ', ') : '');\n const listColsToPreserve = (colNamesToPreserve.length ? (colNamesToPreserve.join(', ') + ', ') : '');\n\n // We could adapt the approach at http://stackoverflow.com/a/8430746/271577\n // to make the approach reusable without passing column names, but it is a bit fragile\n store.transaction.__addNonRequestToTransactionQueue(function renameIndex (tx, args, success, error) {\n const sql = 'ALTER TABLE ' + escapedStoreNameSQL + ' RENAME TO ' + escapedTmpStoreNameSQL;\n tx.executeSql(sql, [], function (tx, data) {\n const sql = 'CREATE TABLE ' + escapedStoreNameSQL + '(' + listColInfoToPreserve + util.escapeIndexNameForSQL(newName) + ' ' + newNameType + ')';\n tx.executeSql(sql, [], function (tx, data) {\n const sql = 'INSERT INTO ' + escapedStoreNameSQL + '(' +\n listColsToPreserve +\n util.escapeIndexNameForSQL(newName) +\n ') SELECT ' + listColsToPreserve + util.escapeIndexNameForSQL(oldName) + ' FROM ' + escapedTmpStoreNameSQL;\n tx.executeSql(sql, [], function (tx, data) {\n const sql = 'DROP TABLE ' + escapedTmpStoreNameSQL;\n tx.executeSql(sql, [], function (tx, data) {\n if (cb) {\n cb(tx, success);\n return;\n }\n success();\n }, function (tx, err) {\n error(err);\n });\n }, function (tx, err) {\n error(err);\n });\n });\n }, function (tx, err) {\n error(err);\n });\n });\n};\n\nObject.defineProperty(IDBIndex, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && typeof obj.openCursor === 'function' && typeof obj.multiEntry === 'boolean'\n});\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBIndex.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\nObject.defineProperty(IDBIndex.prototype, 'name', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n});\nIDBIndex.prototype[Symbol.toStringTag] = 'IDBIndexPrototype';\n\nObject.defineProperty(IDBIndex, 'prototype', {\n writable: false\n});\n\nfunction executeFetchIndexData (count, unboundedDisallowed, index, hasKey, range, opType, multiChecks, sql, sqlValues, tx, args, success, error) {\n if (unboundedDisallowed) {\n count = 1;\n }\n if (count) {\n sql.push('LIMIT', count);\n }\n const isCount = opType === 'count';\n CFG.DEBUG && console.log('Trying to fetch data for Index', sql.join(' '), sqlValues);\n tx.executeSql(sql.join(' '), sqlValues, function (tx, data) {\n const records = [];\n let recordCount = 0;\n const decode = isCount ? () => {} : (opType === 'key' ? (record) => {\n // Key.convertValueToKey(record.key); // Already validated before storage\n return Key.decode(util.unescapeSQLiteResponse(record.key));\n } : (record) => { // when opType is value\n return Sca.decode(util.unescapeSQLiteResponse(record.value));\n });\n if (index.multiEntry) {\n const escapedIndexNameForKeyCol = util.escapeIndexNameForSQLKeyColumn(index.name);\n const encodedKey = Key.encode(range, index.multiEntry);\n for (let i = 0; i < data.rows.length; i++) {\n const row = data.rows.item(i);\n const rowKey = Key.decode(row[escapedIndexNameForKeyCol]);\n let record;\n if (hasKey && (\n (multiChecks && range.some((check) => rowKey.includes(check))) || // More precise than our SQL\n Key.isMultiEntryMatch(encodedKey, row[escapedIndexNameForKeyCol])\n )) {\n recordCount++;\n record = row;\n } else if (!hasKey && !multiChecks) {\n if (rowKey !== undefined) {\n recordCount += (Array.isArray(rowKey) ? rowKey.length : 1);\n record = row;\n }\n }\n if (record) {\n records.push(decode(record));\n if (unboundedDisallowed) {\n break;\n }\n }\n }\n } else {\n for (let i = 0; i < data.rows.length; i++) {\n const record = data.rows.item(i);\n if (record) {\n records.push(decode(record));\n }\n }\n recordCount = records.length;\n }\n if (isCount) {\n success(recordCount);\n } else if (recordCount === 0) {\n success(unboundedDisallowed ? undefined : []);\n } else {\n success(unboundedDisallowed ? records[0] : records);\n }\n }, error);\n}\n\nfunction buildFetchIndexDataSQL (nullDisallowed, index, range, opType, multiChecks) {\n const hasRange = nullDisallowed || range != null;\n const col = opType === 'count' ? 'key' : opType; // It doesn't matter which column we use for 'count' as long as it is valid\n const sql = [\n 'SELECT', util.sqlQuote(col) + (\n index.multiEntry ? ', ' + util.escapeIndexNameForSQL(index.name) : ''\n ),\n 'FROM', util.escapeStoreNameForSQL(index.objectStore.__currentName),\n 'WHERE', util.escapeIndexNameForSQL(index.name), 'NOT NULL'\n ];\n const sqlValues = [];\n if (hasRange) {\n if (multiChecks) {\n sql.push('AND (');\n range.forEach((innerKey, i) => {\n if (i > 0) sql.push('OR');\n sql.push(util.escapeIndexNameForSQL(index.name), \"LIKE ? ESCAPE '^' \");\n sqlValues.push('%' + util.sqlLIKEEscape(Key.encode(innerKey, index.multiEntry)) + '%');\n });\n sql.push(')');\n } else if (index.multiEntry) {\n sql.push('AND', util.escapeIndexNameForSQL(index.name), \"LIKE ? ESCAPE '^'\");\n sqlValues.push('%' + util.sqlLIKEEscape(Key.encode(range, index.multiEntry)) + '%');\n } else {\n const convertedRange = convertValueToKeyRange(range, nullDisallowed);\n setSQLForKeyRange(convertedRange, util.escapeIndexNameForSQL(index.name), sql, sqlValues, true, false);\n }\n }\n return [nullDisallowed, index, hasRange, range, opType, multiChecks, sql, sqlValues];\n}\n\nexport {buildFetchIndexDataSQL, executeFetchIndexData, IDBIndex, IDBIndex as default};\n","import {createDOMException} from './DOMException';\nimport * as Key from './Key';\nimport * as util from './util';\n\nconst readonlyProperties = ['lower', 'upper', 'lowerOpen', 'upperOpen'];\n\n/**\n * The IndexedDB KeyRange object\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#dfn-key-range\n * @param {Object} lower\n * @param {Object} upper\n * @param {Object} lowerOpen\n * @param {Object} upperOpen\n */\nfunction IDBKeyRange () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBKeyRangeAlias = IDBKeyRange;\nIDBKeyRange.__createInstance = function (lower, upper, lowerOpen, upperOpen) {\n function IDBKeyRange () {\n this[Symbol.toStringTag] = 'IDBKeyRange';\n if (lower === undefined && upper === undefined) {\n throw createDOMException('DataError', 'Both arguments to the key range method cannot be undefined');\n }\n let lowerConverted, upperConverted;\n if (lower !== undefined) {\n lowerConverted = Key.roundTrip(lower); // Todo: does this make the \"conversions\" redundant\n Key.convertValueToKeyRethrowingAndIfInvalid(lower);\n }\n if (upper !== undefined) {\n upperConverted = Key.roundTrip(upper); // Todo: does this make the \"conversions\" redundant\n Key.convertValueToKeyRethrowingAndIfInvalid(upper);\n }\n if (lower !== undefined && upper !== undefined && lower !== upper) {\n if (Key.encode(lower) > Key.encode(upper)) {\n throw createDOMException('DataError', '`lower` must not be greater than `upper` argument in `bound()` call.');\n }\n }\n\n this.__lower = lowerConverted;\n this.__upper = upperConverted;\n this.__lowerOpen = !!lowerOpen;\n this.__upperOpen = !!upperOpen;\n }\n IDBKeyRange.prototype = IDBKeyRangeAlias.prototype;\n return new IDBKeyRange();\n};\nIDBKeyRange.prototype.includes = function (key) {\n // We can't do a regular instanceof check as it will create a loop given our hasInstance implementation\n if (!util.isObj(this) || typeof this.__lowerOpen !== 'boolean') {\n throw new TypeError('Illegal invocation');\n }\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.includes requires a key argument');\n }\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n return Key.isKeyInRange(key, this);\n};\n\nIDBKeyRange.only = function (value) {\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.only requires a value argument');\n }\n return IDBKeyRange.__createInstance(value, value, false, false);\n};\n\nIDBKeyRange.lowerBound = function (value /*, open */) {\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.lowerBound requires a value argument');\n }\n return IDBKeyRange.__createInstance(value, undefined, arguments[1], true);\n};\nIDBKeyRange.upperBound = function (value /*, open */) {\n if (!arguments.length) {\n throw new TypeError('IDBKeyRange.upperBound requires a value argument');\n }\n return IDBKeyRange.__createInstance(undefined, value, true, arguments[1]);\n};\nIDBKeyRange.bound = function (lower, upper /* , lowerOpen, upperOpen */) {\n if (arguments.length <= 1) {\n throw new TypeError('IDBKeyRange.bound requires lower and upper arguments');\n }\n return IDBKeyRange.__createInstance(lower, upper, arguments[2], arguments[3]);\n};\nIDBKeyRange.prototype[Symbol.toStringTag] = 'IDBKeyRangePrototype';\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBKeyRange.prototype, '__' + prop, {\n enumerable: false,\n configurable: false,\n writable: true\n });\n Object.defineProperty(IDBKeyRange.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n // We can't do a regular instanceof check as it will create a loop given our hasInstance implementation\n if (!util.isObj(this) || typeof this.__lowerOpen !== 'boolean') {\n throw new TypeError('Illegal invocation');\n }\n return this['__' + prop];\n }\n });\n});\n\nObject.defineProperty(IDBKeyRange, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && 'upper' in obj && typeof obj.lowerOpen === 'boolean'\n});\n\nObject.defineProperty(IDBKeyRange, 'prototype', {\n writable: false\n});\n\nfunction setSQLForKeyRange (range, quotedKeyColumnName, sql, sqlValues, addAnd, checkCached) {\n if (range && (range.lower !== undefined || range.upper !== undefined)) {\n if (addAnd) sql.push('AND');\n let encodedLowerKey, encodedUpperKey;\n const hasLower = range.lower !== undefined;\n const hasUpper = range.upper !== undefined;\n if (hasLower) {\n encodedLowerKey = checkCached ? range.__lowerCached : Key.encode(range.lower);\n }\n if (hasUpper) {\n encodedUpperKey = checkCached ? range.__upperCached : Key.encode(range.upper);\n }\n if (hasLower) {\n sqlValues.push(util.escapeSQLiteStatement(encodedLowerKey));\n if (hasUpper && encodedLowerKey === encodedUpperKey && !range.lowerOpen && !range.upperOpen) {\n sql.push(quotedKeyColumnName, '=', '?');\n return;\n }\n sql.push(quotedKeyColumnName, (range.lowerOpen ? '>' : '>='), '?');\n }\n (hasLower && hasUpper) && sql.push('AND');\n if (hasUpper) {\n sql.push(quotedKeyColumnName, (range.upperOpen ? '<' : '<='), '?');\n sqlValues.push(util.escapeSQLiteStatement(encodedUpperKey));\n }\n }\n}\n\nfunction convertValueToKeyRange (value, nullDisallowed) {\n if (util.instanceOf(value, IDBKeyRange)) {\n // We still need to validate IDBKeyRange-like objects (the above check is based on loose duck-typing)\n if (!value.toString() !== '[object IDBKeyRange]') {\n return IDBKeyRange.__createInstance(value.lower, value.upper, value.lowerOpen, value.upperOpen);\n }\n return value;\n }\n if (value == null) {\n if (nullDisallowed) {\n throw createDOMException('DataError', 'No key or range was specified');\n }\n return undefined; // Represents unbounded\n }\n Key.convertValueToKeyRethrowingAndIfInvalid(value);\n return IDBKeyRange.only(value);\n}\n\nexport {setSQLForKeyRange, IDBKeyRange, convertValueToKeyRange, IDBKeyRange as default};\n","import {createDOMException} from './DOMException';\nimport {IDBCursor, IDBCursorWithValue} from './IDBCursor';\nimport {setSQLForKeyRange, convertValueToKeyRange} from './IDBKeyRange';\nimport DOMStringList from './DOMStringList';\nimport * as util from './util';\nimport * as Key from './Key';\nimport {executeFetchIndexData, buildFetchIndexDataSQL, IDBIndex} from './IDBIndex';\nimport IDBTransaction from './IDBTransaction';\nimport * as Sca from './Sca';\nimport CFG from './CFG';\nimport SyncPromise from 'sync-promise';\n\nconst readonlyProperties = ['keyPath', 'indexNames', 'transaction', 'autoIncrement'];\n\n/**\n * IndexedDB Object Store\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBObjectStore\n * @param {IDBObjectStoreProperties} storeProperties\n * @param {IDBTransaction} transaction\n * @constructor\n */\nfunction IDBObjectStore () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBObjectStoreAlias = IDBObjectStore;\nIDBObjectStore.__createInstance = function (storeProperties, transaction) {\n function IDBObjectStore () {\n const me = this;\n me[Symbol.toStringTag] = 'IDBObjectStore';\n util.defineReadonlyProperties(this, readonlyProperties);\n me.__name = me.__originalName = storeProperties.name;\n me.__keyPath = Array.isArray(storeProperties.keyPath) ? storeProperties.keyPath.slice() : storeProperties.keyPath;\n me.__transaction = transaction;\n me.__idbdb = storeProperties.idbdb;\n me.__cursors = storeProperties.cursors || [];\n\n // autoInc is numeric (0/1) on WinPhone\n me.__autoIncrement = !!storeProperties.autoInc;\n\n me.__indexes = {};\n me.__indexHandles = {};\n me.__indexNames = DOMStringList.__createInstance();\n const indexList = storeProperties.indexList;\n for (const indexName in indexList) {\n if (indexList.hasOwnProperty(indexName)) {\n const index = IDBIndex.__createInstance(me, indexList[indexName]);\n me.__indexes[index.name] = index;\n if (!index.__deleted) {\n me.indexNames.push(index.name);\n }\n }\n }\n me.__oldIndexNames = me.indexNames.clone();\n Object.defineProperty(this, '__currentName', {\n get: function () {\n return '__pendingName' in this ? this.__pendingName : this.name;\n }\n });\n Object.defineProperty(this, 'name', {\n enumerable: false,\n configurable: false,\n get: function () {\n return this.__name;\n },\n set: function (name) {\n const me = this;\n name = util.convertToDOMString(name);\n const oldName = me.name;\n IDBObjectStoreAlias.__invalidStateIfDeleted(me);\n IDBTransaction.__assertVersionChange(me.transaction);\n IDBTransaction.__assertActive(me.transaction);\n if (oldName === name) {\n return;\n }\n if (me.__idbdb.__objectStores[name] && !me.__idbdb.__objectStores[name].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Object store \"' + name + '\" already exists in ' + me.__idbdb.name);\n }\n\n me.__name = name;\n\n const oldStore = me.__idbdb.__objectStores[oldName];\n oldStore.__name = name; // Fix old references\n me.__idbdb.__objectStores[name] = oldStore; // Ensure new reference accessible\n delete me.__idbdb.__objectStores[oldName]; // Ensure won't be found\n\n me.__idbdb.objectStoreNames.splice(me.__idbdb.objectStoreNames.indexOf(oldName), 1, name);\n\n const oldHandle = me.transaction.__storeHandles[oldName];\n oldHandle.__name = name; // Fix old references\n me.transaction.__storeHandles[name] = oldHandle; // Ensure new reference accessible\n\n me.__pendingName = oldName;\n\n const sql = 'UPDATE __sys__ SET \"name\" = ? WHERE \"name\" = ?';\n const sqlValues = [util.escapeSQLiteStatement(name), util.escapeSQLiteStatement(oldName)];\n CFG.DEBUG && console.log(sql, sqlValues);\n me.transaction.__addNonRequestToTransactionQueue(function objectStoreClear (tx, args, success, error) {\n tx.executeSql(sql, sqlValues, function (tx, data) {\n const sql = 'ALTER TABLE ' + util.escapeStoreNameForSQL(oldName) + ' RENAME TO ' + util.escapeStoreNameForSQL(name);\n CFG.DEBUG && console.log(sql);\n tx.executeSql(sql, [], function (tx, data) {\n delete me.__pendingName;\n success();\n });\n }, function (tx, err) {\n error(err);\n });\n });\n }\n });\n }\n IDBObjectStore.prototype = IDBObjectStoreAlias.prototype;\n return new IDBObjectStore();\n};\n\n/**\n * Clones an IDBObjectStore instance for a different IDBTransaction instance.\n * @param {IDBObjectStore} store\n * @param {IDBTransaction} transaction\n * @protected\n */\nIDBObjectStore.__clone = function (store, transaction) {\n const newStore = IDBObjectStore.__createInstance({\n name: store.__currentName,\n keyPath: Array.isArray(store.keyPath) ? store.keyPath.slice() : store.keyPath,\n autoInc: store.autoIncrement,\n indexList: {},\n idbdb: store.__idbdb,\n cursors: store.__cursors\n }, transaction);\n\n ['__indexes', '__indexNames', '__oldIndexNames', '__deleted', '__pendingDelete', '__pendingCreate', '__originalName'].forEach((p) => {\n newStore[p] = store[p];\n });\n return newStore;\n};\n\nIDBObjectStore.__invalidStateIfDeleted = function (store, msg) {\n if (store.__deleted || store.__pendingDelete || (store.__pendingCreate && (store.transaction && store.transaction.__errored))) {\n throw createDOMException('InvalidStateError', msg || 'This store has been deleted');\n }\n};\n\n/**\n * Creates a new object store in the database.\n * @param {IDBDatabase} db\n * @param {IDBObjectStore} store\n * @protected\n */\nIDBObjectStore.__createObjectStore = function (db, store) {\n // Add the object store to the IDBDatabase\n const storeName = store.__currentName;\n store.__pendingCreate = true;\n db.__objectStores[storeName] = store;\n db.objectStoreNames.push(storeName);\n\n // Add the object store to WebSQL\n const transaction = db.__versionTransaction;\n IDBTransaction.__assertVersionChange(transaction);\n\n const storeHandles = transaction.__storeHandles;\n if (!storeHandles[storeName] ||\n storeHandles[storeName].__pendingDelete ||\n storeHandles[storeName].__deleted) { // The latter conditions are to allow store\n // recreation to create new clone object\n storeHandles[storeName] = IDBObjectStore.__clone(store, transaction);\n }\n\n transaction.__addNonRequestToTransactionQueue(function createObjectStore (tx, args, success, failure) {\n function error (tx, err) {\n CFG.DEBUG && console.log(err);\n failure(createDOMException('UnknownError', 'Could not create object store \"' + storeName + '\"', err));\n }\n\n // key INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE\n const sql = ['CREATE TABLE', util.escapeStoreNameForSQL(storeName), '(key BLOB', store.autoIncrement ? 'UNIQUE, inc INTEGER PRIMARY KEY AUTOINCREMENT' : 'PRIMARY KEY', ', value BLOB)'].join(' ');\n CFG.DEBUG && console.log(sql);\n tx.executeSql(sql, [], function (tx, data) {\n Sca.encode(store.keyPath, function (encodedKeyPath) {\n tx.executeSql('INSERT INTO __sys__ VALUES (?,?,?,?,?)', [util.escapeSQLiteStatement(storeName), encodedKeyPath, store.autoIncrement, '{}', 1], function () {\n delete store.__pendingCreate;\n delete store.__deleted;\n success(store);\n }, error);\n });\n }, error);\n });\n return storeHandles[storeName];\n};\n\n/**\n * Deletes an object store from the database.\n * @param {IDBDatabase} db\n * @param {IDBObjectStore} store\n * @protected\n */\nIDBObjectStore.__deleteObjectStore = function (db, store) {\n // Remove the object store from the IDBDatabase\n store.__pendingDelete = true;\n // We don't delete the other index holders in case need reversion\n store.__indexNames = DOMStringList.__createInstance();\n\n db.objectStoreNames.splice(db.objectStoreNames.indexOf(store.__currentName), 1);\n\n const storeHandle = db.__versionTransaction.__storeHandles[store.__currentName];\n if (storeHandle) {\n storeHandle.__indexNames = DOMStringList.__createInstance();\n storeHandle.__pendingDelete = true;\n }\n\n // Remove the object store from WebSQL\n const transaction = db.__versionTransaction;\n IDBTransaction.__assertVersionChange(transaction);\n\n transaction.__addNonRequestToTransactionQueue(function deleteObjectStore (tx, args, success, failure) {\n function error (tx, err) {\n CFG.DEBUG && console.log(err);\n failure(createDOMException('UnknownError', 'Could not delete ObjectStore', err));\n }\n\n tx.executeSql('SELECT \"name\" FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function (tx, data) {\n if (data.rows.length > 0) {\n tx.executeSql('DROP TABLE ' + util.escapeStoreNameForSQL(store.__currentName), [], function () {\n tx.executeSql('DELETE FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function () {\n delete store.__pendingDelete;\n store.__deleted = true;\n if (storeHandle) {\n delete storeHandle.__pendingDelete;\n storeHandle.__deleted = true;\n }\n success();\n }, error);\n }, error);\n }\n });\n });\n};\n\n// Todo: Although we may end up needing to do cloning genuinely asynchronously (for Blobs and FileLists),\n// and we'll want to ensure the queue starts up synchronously, we nevertheless do the cloning\n// before entering the queue and its callback since the encoding we do is preceded by validation\n// which we must do synchronously anyways. If we reimplement Blobs and FileLists asynchronously,\n// we can detect these types (though validating synchronously as possible) and once entering the\n// queue callback, ensure they load before triggering success or failure (perhaps by returning and\n// a `SyncPromise` from the `Sca.clone` operation and later detecting and ensuring it is resolved\n// before continuing).\n/**\n * Determines whether the given inline or out-of-line key is valid, according to the object store's schema.\n * @param {*} value Used for inline keys\n * @param {*} key Used for out-of-line keys\n * @private\n */\nIDBObjectStore.prototype.__validateKeyAndValueAndCloneValue = function (value, key, cursorUpdate) {\n const me = this;\n if (me.keyPath !== null) {\n if (key !== undefined) {\n throw createDOMException('DataError', 'The object store uses in-line keys and the key parameter was provided', me);\n }\n // Todo Binary: Avoid blobs loading async to ensure cloning (and errors therein)\n // occurs sync; then can make cloning and this method without callbacks (except where ok\n // to be async)\n const clonedValue = Sca.clone(value);\n key = Key.extractKeyValueDecodedFromValueUsingKeyPath(clonedValue, me.keyPath); // May throw so \"rethrow\"\n if (key.invalid) {\n throw createDOMException('DataError', 'KeyPath was specified, but key was invalid.');\n }\n if (key.failure) {\n if (!cursorUpdate) {\n if (!me.autoIncrement) {\n throw createDOMException('DataError', 'Could not evaluate a key from keyPath and there is no key generator');\n }\n if (!Key.checkKeyCouldBeInjectedIntoValue(clonedValue, me.keyPath)) {\n throw createDOMException('DataError', 'A key could not be injected into a value');\n }\n // A key will be generated\n return [undefined, clonedValue];\n }\n throw createDOMException('DataError', 'Could not evaluate a key from keyPath');\n }\n // An `IDBCursor.update` call will also throw if not equal to the cursor’s effective key\n return [key.value, clonedValue];\n }\n if (key === undefined) {\n if (!me.autoIncrement) {\n throw createDOMException('DataError', 'The object store uses out-of-line keys and has no key generator and the key parameter was not provided.', me);\n }\n // A key will be generated\n key = undefined;\n } else {\n Key.convertValueToKeyRethrowingAndIfInvalid(key);\n }\n const clonedValue = Sca.clone(value);\n return [key, clonedValue];\n};\n\n/**\n * From the store properties and object, extracts the value for the key in the object store\n * If the table has auto increment, get the current number (unless it has a keyPath leading to a\n * valid but non-numeric or < 1 key)\n * @param {Object} tx\n * @param {Object} value\n * @param {Object} key\n * @param {function} success\n * @param {function} failure\n */\nIDBObjectStore.prototype.__deriveKey = function (tx, value, key, success, failCb) {\n const me = this;\n\n // Only run if cloning is needed\n function keyCloneThenSuccess () { // We want to return the original key, so we don't need to accept an argument here\n Sca.encode(key, function (key) {\n key = Sca.decode(key);\n success(key);\n });\n }\n\n if (me.autoIncrement) {\n // If auto-increment and no valid primaryKey found on the keyPath, get and set the new value, and use\n if (key === undefined) {\n Key.generateKeyForStore(tx, me, function (failure, key) {\n if (failure) {\n failCb(createDOMException('ConstraintError', 'The key generator\\'s current number has reached the maximum safe integer limit'));\n return;\n }\n if (me.keyPath !== null) {\n // Should not throw now as checked earlier\n Key.injectKeyIntoValueUsingKeyPath(value, key, me.keyPath);\n }\n success(key);\n }, failCb);\n } else {\n Key.possiblyUpdateKeyGenerator(tx, me, key, keyCloneThenSuccess, failCb);\n }\n // Not auto-increment\n } else {\n keyCloneThenSuccess();\n }\n};\n\nIDBObjectStore.prototype.__insertData = function (tx, encoded, value, clonedKeyOrCurrentNumber, success, error) {\n const me = this;\n // The `ConstraintError` to occur for `add` upon a duplicate will occur naturally in attempting an insert\n // We process the index information first as it will stored in the same table as the store\n const paramMap = {};\n const indexPromises = Object.keys(\n // We do not iterate `indexNames` as those can be modified synchronously (e.g.,\n // `deleteIndex` could, by its synchronous removal from `indexNames`, prevent\n // iteration here of an index though per IndexedDB test\n // `idbobjectstore_createIndex4-deleteIndex-event_order.js`, `createIndex`\n // should be allowed to first fail even in such a case).\n me.__indexes\n ).map((indexName) => {\n // While this may sometimes resolve sync and sometimes async, the\n // idea is to avoid, where possible, unnecessary delays (and\n // consuming code ought to only see a difference in the browser\n // where we can't control the transaction timeout anyways).\n return new SyncPromise((resolve, reject) => {\n const index = me.__indexes[indexName];\n if (\n // `createIndex` was called synchronously after the current insertion was added to\n // the transaction queue so although it was added to `__indexes`, it is not yet\n // ready to be checked here for the insertion as it will be when running the\n // `createIndex` operation (e.g., if two items with the same key were added and\n // *then* a unique index was created, it should not continue to err and abort\n // yet, as we're still handling the insertions which must be processed (e.g., to\n // add duplicates which then cause a unique index to fail))\n index.__pendingCreate ||\n // If already deleted (and not just slated for deletion (by `__pendingDelete`\n // after this add), we avoid checks\n index.__deleted\n ) {\n resolve();\n return;\n }\n let indexKey;\n try {\n indexKey = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, index.keyPath, index.multiEntry); // Add as necessary to this and skip past this index if exceptions here)\n if (indexKey.invalid || indexKey.failure) {\n throw new Error('Go to catch');\n }\n } catch (err) {\n resolve();\n return;\n }\n indexKey = indexKey.value;\n function setIndexInfo (index) {\n if (indexKey === undefined) {\n return;\n }\n paramMap[index.__currentName] = Key.encode(indexKey, index.multiEntry);\n }\n if (index.unique) {\n const multiCheck = index.multiEntry && Array.isArray(indexKey);\n const fetchArgs = buildFetchIndexDataSQL(true, index, indexKey, 'key', multiCheck);\n executeFetchIndexData(null, ...fetchArgs, tx, null, function success (key) {\n if (key === undefined) {\n setIndexInfo(index);\n resolve();\n return;\n }\n reject(createDOMException(\n 'ConstraintError',\n 'Index already contains a record equal to ' +\n (multiCheck ? 'one of the subkeys of' : '') +\n '`indexKey`'\n ));\n }, reject);\n } else {\n setIndexInfo(index);\n resolve();\n }\n });\n });\n SyncPromise.all(indexPromises).then(() => {\n const sqlStart = ['INSERT INTO', util.escapeStoreNameForSQL(me.__currentName), '('];\n const sqlEnd = [' VALUES ('];\n const insertSqlValues = [];\n if (clonedKeyOrCurrentNumber !== undefined) {\n // Key.convertValueToKey(primaryKey); // Already run\n sqlStart.push(util.sqlQuote('key'), ',');\n sqlEnd.push('?,');\n insertSqlValues.push(util.escapeSQLiteStatement(Key.encode(clonedKeyOrCurrentNumber)));\n }\n for (const key in paramMap) {\n sqlStart.push(util.escapeIndexNameForSQL(key) + ',');\n sqlEnd.push('?,');\n insertSqlValues.push(util.escapeSQLiteStatement(paramMap[key]));\n }\n // removing the trailing comma\n sqlStart.push(util.sqlQuote('value') + ' )');\n sqlEnd.push('?)');\n insertSqlValues.push(util.escapeSQLiteStatement(encoded));\n\n const insertSql = sqlStart.join(' ') + sqlEnd.join(' ');\n CFG.DEBUG && console.log('SQL for adding', insertSql, insertSqlValues);\n\n tx.executeSql(insertSql, insertSqlValues, function (tx, data) {\n success(clonedKeyOrCurrentNumber);\n }, function (tx, err) {\n // Should occur for `add` operation\n error(createDOMException('ConstraintError', err.message, err));\n });\n }).catch(function (err) {\n error(err);\n });\n};\n\nIDBObjectStore.prototype.add = function (value /* , key */) {\n const me = this;\n const key = arguments[1];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No value was specified');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n const request = me.transaction.__createRequest(me);\n const [ky, clonedValue] = me.__validateKeyAndValueAndCloneValue(value, key, false);\n IDBObjectStore.__storingRecordObjectStore(request, me, clonedValue, true, ky);\n return request;\n};\n\nIDBObjectStore.prototype.put = function (value /*, key */) {\n const me = this;\n const key = arguments[1];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No value was specified');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n const request = me.transaction.__createRequest(me);\n const [ky, clonedValue] = me.__validateKeyAndValueAndCloneValue(value, key, false);\n IDBObjectStore.__storingRecordObjectStore(request, me, clonedValue, false, ky);\n return request;\n};\n\nIDBObjectStore.prototype.__overwrite = function (tx, key, cb, error) {\n const me = this;\n // First try to delete if the record exists\n // Key.convertValueToKey(key); // Already run\n const sql = 'DELETE FROM ' + util.escapeStoreNameForSQL(me.__currentName) + ' WHERE \"key\" = ?';\n const encodedKey = Key.encode(key);\n tx.executeSql(sql, [util.escapeSQLiteStatement(encodedKey)], function (tx, data) {\n CFG.DEBUG && console.log('Did the row with the', key, 'exist? ', data.rowsAffected);\n cb(tx);\n }, function (tx, err) {\n error(err);\n });\n};\n\nIDBObjectStore.__storingRecordObjectStore = function (request, store, value, noOverwrite /* , key */) {\n const key = arguments[4];\n store.transaction.__pushToQueue(request, function (tx, args, success, error) {\n store.__deriveKey(tx, value, key, function (clonedKeyOrCurrentNumber) {\n Sca.encode(value, function (encoded) {\n function insert (tx) {\n store.__insertData(tx, encoded, value, clonedKeyOrCurrentNumber, function (...args) {\n store.__cursors.forEach((cursor) => {\n cursor.__invalidateCache();\n });\n success(...args);\n }, error);\n }\n if (!noOverwrite) {\n store.__overwrite(tx, clonedKeyOrCurrentNumber, insert, error);\n return;\n }\n insert(tx);\n });\n }, error);\n });\n};\n\nIDBObjectStore.prototype.__get = function (query, getKey, getAll, count) {\n const me = this;\n if (count !== undefined) {\n count = util.enforceRange(count, 'unsigned long');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n\n const range = convertValueToKeyRange(query, !getAll);\n\n const col = getKey ? 'key' : 'value';\n let sql = ['SELECT', util.sqlQuote(col), 'FROM', util.escapeStoreNameForSQL(me.__currentName)];\n const sqlValues = [];\n if (range !== undefined) {\n sql.push('WHERE');\n setSQLForKeyRange(range, util.sqlQuote('key'), sql, sqlValues);\n }\n if (!getAll) {\n count = 1;\n }\n if (count) {\n if (typeof count !== 'number' || isNaN(count) || !isFinite(count)) {\n throw new TypeError('The count parameter must be a finite number');\n }\n sql.push('LIMIT', count);\n }\n sql = sql.join(' ');\n return me.transaction.__addToTransactionQueue(function objectStoreGet (tx, args, success, error) {\n CFG.DEBUG && console.log('Fetching', me.__currentName, sqlValues);\n tx.executeSql(sql, sqlValues, function (tx, data) {\n CFG.DEBUG && console.log('Fetched data', data);\n let ret;\n try {\n // Opera can't deal with the try-catch here.\n if (data.rows.length === 0) {\n return getAll ? success([]) : success();\n }\n ret = [];\n if (getKey) {\n for (let i = 0; i < data.rows.length; i++) {\n // Key.convertValueToKey(data.rows.item(i).key); // Already validated before storage\n ret.push(\n Key.decode(util.unescapeSQLiteResponse(data.rows.item(i).key), false)\n );\n }\n } else {\n for (let i = 0; i < data.rows.length; i++) {\n ret.push(\n Sca.decode(util.unescapeSQLiteResponse(data.rows.item(i).value))\n );\n }\n }\n if (!getAll) {\n ret = ret[0];\n }\n } catch (e) {\n // If no result is returned, or error occurs when parsing JSON\n CFG.DEBUG && console.log(e);\n }\n success(ret);\n }, function (tx, err) {\n error(err);\n });\n }, undefined, me);\n};\n\nIDBObjectStore.prototype.get = function (query) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.get`.');\n }\n return this.__get(query);\n};\n\nIDBObjectStore.prototype.getKey = function (query) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.getKey`.');\n }\n return this.__get(query, true);\n};\n\nIDBObjectStore.prototype.getAll = function (/* query, count */) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.getAll`.');\n }\n const [query, count] = arguments;\n return this.__get(query, false, true, count);\n};\n\nIDBObjectStore.prototype.getAllKeys = function (/* query, count */) {\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.getAllKeys`.');\n }\n const [query, count] = arguments;\n return this.__get(query, true, true, count);\n};\n\nIDBObjectStore.prototype['delete'] = function (query) {\n const me = this;\n if (!(this instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (!arguments.length) {\n throw new TypeError('A parameter was missing for `IDBObjectStore.delete`.');\n }\n\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n const range = convertValueToKeyRange(query, true);\n\n const sqlArr = ['DELETE FROM', util.escapeStoreNameForSQL(me.__currentName), 'WHERE'];\n const sqlValues = [];\n setSQLForKeyRange(range, util.sqlQuote('key'), sqlArr, sqlValues);\n const sql = sqlArr.join(' ');\n\n return me.transaction.__addToTransactionQueue(function objectStoreDelete (tx, args, success, error) {\n CFG.DEBUG && console.log('Deleting', me.__currentName, sqlValues);\n tx.executeSql(sql, sqlValues, function (tx, data) {\n CFG.DEBUG && console.log('Deleted from database', data.rowsAffected);\n me.__cursors.forEach((cursor) => {\n cursor.__invalidateCache(); // Delete\n });\n success();\n }, function (tx, err) {\n error(err);\n });\n }, undefined, me);\n};\n\nIDBObjectStore.prototype.clear = function () {\n const me = this;\n if (!(this instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n me.transaction.__assertWritable();\n\n return me.transaction.__addToTransactionQueue(function objectStoreClear (tx, args, success, error) {\n tx.executeSql('DELETE FROM ' + util.escapeStoreNameForSQL(me.__currentName), [], function (tx, data) {\n CFG.DEBUG && console.log('Cleared all records from database', data.rowsAffected);\n me.__cursors.forEach((cursor) => {\n cursor.__invalidateCache(); // Clear\n });\n success();\n }, function (tx, err) {\n error(err);\n });\n }, undefined, me);\n};\n\nIDBObjectStore.prototype.count = function (/* query */) {\n const me = this;\n const query = arguments[0];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n\n // We don't need to add to cursors array since has the count parameter which won't cache\n return IDBCursorWithValue.__createInstance(query, 'next', me, me, 'key', 'value', true).__req;\n};\n\nIDBObjectStore.prototype.openCursor = function (/* query, direction */) {\n const me = this;\n const [query, direction] = arguments;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n const cursor = IDBCursorWithValue.__createInstance(query, direction, me, me, 'key', 'value');\n me.__cursors.push(cursor);\n return cursor.__req;\n};\n\nIDBObjectStore.prototype.openKeyCursor = function (/* query, direction */) {\n const me = this;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n const [query, direction] = arguments;\n const cursor = IDBCursor.__createInstance(query, direction, me, me, 'key', 'key');\n me.__cursors.push(cursor);\n return cursor.__req;\n};\n\nIDBObjectStore.prototype.index = function (indexName) {\n const me = this;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No index name was specified');\n }\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertNotFinished(me.transaction);\n const index = me.__indexes[indexName];\n if (!index || index.__deleted) {\n throw createDOMException('NotFoundError', 'Index \"' + indexName + '\" does not exist on ' + me.__currentName);\n }\n\n if (!me.__indexHandles[indexName] ||\n me.__indexes[indexName].__pendingDelete ||\n me.__indexes[indexName].__deleted\n ) {\n me.__indexHandles[indexName] = IDBIndex.__clone(index, me);\n }\n return me.__indexHandles[indexName];\n};\n\n/**\n * Creates a new index on the object store.\n * @param {string} indexName\n * @param {string} keyPath\n * @param {object} optionalParameters\n * @returns {IDBIndex}\n */\nIDBObjectStore.prototype.createIndex = function (indexName, keyPath /* , optionalParameters */) {\n const me = this;\n let optionalParameters = arguments[2];\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n indexName = String(indexName); // W3C test within IDBObjectStore.js seems to accept string conversion\n if (arguments.length === 0) {\n throw new TypeError('No index name was specified');\n }\n if (arguments.length === 1) {\n throw new TypeError('No key path was specified');\n }\n IDBTransaction.__assertVersionChange(me.transaction);\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n if (me.__indexes[indexName] && !me.__indexes[indexName].__deleted && !me.__indexes[indexName].__pendingDelete) {\n throw createDOMException('ConstraintError', 'Index \"' + indexName + '\" already exists on ' + me.__currentName);\n }\n\n keyPath = util.convertToSequenceDOMString(keyPath);\n if (!util.isValidKeyPath(keyPath)) {\n throw createDOMException('SyntaxError', 'A valid keyPath must be supplied');\n }\n if (Array.isArray(keyPath) && optionalParameters && optionalParameters.multiEntry) {\n throw createDOMException('InvalidAccessError', 'The keyPath argument was an array and the multiEntry option is true.');\n }\n\n optionalParameters = optionalParameters || {};\n /** @name IDBIndexProperties **/\n const indexProperties = {\n columnName: indexName,\n keyPath: keyPath,\n optionalParams: {\n unique: !!optionalParameters.unique,\n multiEntry: !!optionalParameters.multiEntry\n }\n };\n const index = IDBIndex.__createInstance(me, indexProperties);\n IDBIndex.__createIndex(me, index);\n return index;\n};\n\nIDBObjectStore.prototype.deleteIndex = function (name) {\n const me = this;\n if (!(me instanceof IDBObjectStore)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No index name was specified');\n }\n IDBTransaction.__assertVersionChange(me.transaction);\n IDBObjectStore.__invalidStateIfDeleted(me);\n IDBTransaction.__assertActive(me.transaction);\n const index = me.__indexes[name];\n if (!index) {\n throw createDOMException('NotFoundError', 'Index \"' + name + '\" does not exist on ' + me.__currentName);\n }\n\n IDBIndex.__deleteIndex(me, index);\n};\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBObjectStore.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\nObject.defineProperty(IDBObjectStore.prototype, 'name', {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n});\n\nIDBObjectStore.prototype[Symbol.toStringTag] = 'IDBObjectStorePrototype';\n\nObject.defineProperty(IDBObjectStore, 'prototype', {\n writable: false\n});\n\nexport default IDBObjectStore;\n","import {createDOMException} from './DOMException';\nimport {EventTargetFactory} from 'eventtarget';\nimport * as util from './util';\n\nconst listeners = ['onsuccess', 'onerror'];\nconst readonlyProperties = ['source', 'transaction', 'readyState'];\nconst doneFlagGetters = ['result', 'error'];\n\n/**\n * The IDBRequest Object that is returns for all async calls\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#request-api\n */\nclass IDBRequest {\n constructor () {\n throw new TypeError('Illegal constructor');\n }\n}\nIDBRequest.__super = function IDBRequest () {\n this[Symbol.toStringTag] = 'IDBRequest';\n this.__setOptions({\n legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n });\n doneFlagGetters.forEach(function (prop) {\n Object.defineProperty(this, '__' + prop, {\n enumerable: false,\n configurable: false,\n writable: true\n });\n Object.defineProperty(this, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n if (this.__readyState !== 'done') {\n throw createDOMException('InvalidStateError', \"Can't get \" + prop + '; the request is still pending.');\n }\n return this['__' + prop];\n }\n });\n }, this);\n util.defineReadonlyProperties(this, readonlyProperties);\n listeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n configurable: true, // Needed by support.js in W3C IndexedDB tests\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n }, this);\n listeners.forEach((l) => {\n this[l] = null;\n });\n this.__result = undefined;\n this.__error = this.__source = this.__transaction = null;\n this.__readyState = 'pending';\n};\n\nIDBRequest.__createInstance = function () {\n return new IDBRequest.__super();\n};\n\nIDBRequest.prototype = EventTargetFactory.createInstance({extraProperties: ['debug']});\nIDBRequest.prototype[Symbol.toStringTag] = 'IDBRequestPrototype';\n\nIDBRequest.prototype.__getParent = function () {\n if (this.toString() === '[object IDBOpenDBRequest]') {\n return null;\n }\n return this.__transaction;\n};\n\n// Illegal invocations\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBRequest.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\ndoneFlagGetters.forEach(function (prop) {\n Object.defineProperty(IDBRequest.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nlisteners.forEach((listener) => {\n Object.defineProperty(IDBRequest.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nObject.defineProperty(IDBRequest.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBRequest\n});\nIDBRequest.__super.prototype = IDBRequest.prototype;\n\nObject.defineProperty(IDBRequest, 'prototype', {\n writable: false\n});\n\nconst openListeners = ['onblocked', 'onupgradeneeded'];\n\n/**\n * The IDBOpenDBRequest called when a database is opened\n */\nclass IDBOpenDBRequest extends IDBRequest {\n}\nIDBOpenDBRequest.prototype = Object.create(IDBRequest.prototype);\n\nObject.defineProperty(IDBOpenDBRequest.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBOpenDBRequest\n});\n\nconst IDBOpenDBRequestAlias = IDBOpenDBRequest;\nIDBOpenDBRequest.__createInstance = function () {\n function IDBOpenDBRequest () {\n IDBRequest.__super.call(this);\n\n this[Symbol.toStringTag] = 'IDBOpenDBRequest';\n this.__setOptions({\n legacyOutputDidListenersThrowFlag: true, // Event hook for IndexedB\n extraProperties: ['oldVersion', 'newVersion', 'debug']\n }); // Ensure EventTarget preserves our properties\n openListeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n configurable: true, // Needed by support.js in W3C IndexedDB tests\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n }, this);\n openListeners.forEach((l) => {\n this[l] = null;\n });\n }\n IDBOpenDBRequest.prototype = IDBOpenDBRequestAlias.prototype;\n return new IDBOpenDBRequest();\n};\n\nopenListeners.forEach((listener) => {\n Object.defineProperty(IDBOpenDBRequest.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nIDBOpenDBRequest.prototype[Symbol.toStringTag] = 'IDBOpenDBRequestPrototype';\n\nObject.defineProperty(IDBOpenDBRequest, 'prototype', {\n writable: false\n});\n\nexport {IDBRequest, IDBOpenDBRequest};\n","import {createEvent} from './Event';\nimport {logError, findError, webSQLErrback, createDOMException} from './DOMException';\nimport {IDBRequest} from './IDBRequest';\nimport * as util from './util';\nimport IDBObjectStore from './IDBObjectStore';\nimport CFG from './CFG';\nimport {EventTargetFactory} from 'eventtarget';\nimport SyncPromise from 'sync-promise';\n\nlet uniqueID = 0;\nconst listeners = ['onabort', 'oncomplete', 'onerror'];\nconst readonlyProperties = ['objectStoreNames', 'mode', 'db', 'error'];\n\n/**\n * The IndexedDB Transaction\n * http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBTransaction\n * @param {IDBDatabase} db\n * @param {string[]} storeNames\n * @param {string} mode\n * @constructor\n */\nfunction IDBTransaction () {\n throw new TypeError('Illegal constructor');\n}\nconst IDBTransactionAlias = IDBTransaction;\nIDBTransaction.__createInstance = function (db, storeNames, mode) {\n function IDBTransaction () {\n const me = this;\n me[Symbol.toStringTag] = 'IDBTransaction';\n util.defineReadonlyProperties(me, readonlyProperties);\n me.__id = ++uniqueID; // for debugging simultaneous transactions\n me.__active = true;\n me.__running = false;\n me.__errored = false;\n me.__requests = [];\n me.__objectStoreNames = storeNames;\n me.__mode = mode;\n me.__db = db;\n me.__error = null;\n me.__setOptions({\n legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n });\n\n readonlyProperties.forEach((readonlyProp) => {\n Object.defineProperty(this, readonlyProp, {\n configurable: true\n });\n });\n listeners.forEach((listener) => {\n Object.defineProperty(this, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this['__' + listener];\n },\n set: function (val) {\n this['__' + listener] = val;\n }\n });\n });\n listeners.forEach((l) => {\n this[l] = null;\n });\n me.__storeHandles = {};\n\n // Kick off the transaction as soon as all synchronous code is done\n setTimeout(() => { me.__executeRequests(); }, 0);\n }\n IDBTransaction.prototype = IDBTransactionAlias.prototype;\n return new IDBTransaction();\n};\n\nIDBTransaction.prototype = EventTargetFactory.createInstance({defaultSync: true, extraProperties: ['complete']}); // Ensure EventTarget preserves our properties\nIDBTransaction.prototype.__transFinishedCb = function (err, cb) {\n if (err) {\n cb(true); // eslint-disable-line standard/no-callback-literal\n return;\n }\n cb();\n};\nIDBTransaction.prototype.__executeRequests = function () {\n const me = this;\n if (me.__running) {\n CFG.DEBUG && console.log('Looks like the request set is already running', me.mode);\n return;\n }\n\n me.__running = true;\n\n me.db.__db[me.mode === 'readonly' ? 'readTransaction' : 'transaction']( // `readTransaction` is optimized, at least in `node-websql`\n function executeRequests (tx) {\n me.__tx = tx;\n let q = null, i = -1;\n\n function success (result, req) {\n if (me.__errored || me.__requestsFinished) {\n // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n return;\n }\n if (req) {\n q.req = req; // Need to do this in case of cursors\n }\n if (q.req.__readyState === 'done') { // Avoid continuing with aborted requests\n return;\n }\n q.req.__readyState = 'done';\n q.req.__result = result;\n q.req.__error = null;\n\n me.__active = true;\n const e = createEvent('success');\n q.req.dispatchEvent(e);\n // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n if (e.__legacyOutputDidListenersThrowError) {\n logError('Error', 'An error occurred in a success handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n me.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n return;\n }\n executeNextRequest();\n }\n\n function error (...args /* tx, err */) {\n if (me.__errored || me.__requestsFinished) {\n // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n return;\n }\n if (q.req && q.req.__readyState === 'done') { // Avoid continuing with aborted requests\n return;\n }\n const err = findError(args);\n if (!q.req) {\n me.__abortTransaction(err);\n return;\n }\n // Fire an error event for the current IDBRequest\n q.req.__readyState = 'done';\n q.req.__error = err;\n q.req.__result = undefined;\n q.req.addLateEventListener('error', function (e) {\n if (e.cancelable && e.defaultPrevented && !e.__legacyOutputDidListenersThrowError) {\n executeNextRequest();\n }\n });\n q.req.addDefaultEventListener('error', function () {\n me.__abortTransaction(q.req.__error);\n });\n\n me.__active = true;\n const e = createEvent('error', err, {bubbles: true, cancelable: true});\n q.req.dispatchEvent(e);\n // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n if (e.__legacyOutputDidListenersThrowError) {\n logError('Error', 'An error occurred in an error handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n e.preventDefault(); // Prevent 'error' default as steps indicate we should abort with `AbortError` even without cancellation\n me.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n }\n }\n\n function executeNextRequest () {\n if (me.__errored || me.__requestsFinished) {\n // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n return;\n }\n i++;\n if (i >= me.__requests.length) {\n // All requests in the transaction are done\n me.__requests = [];\n if (me.__active) {\n requestsFinished();\n }\n } else {\n try {\n q = me.__requests[i];\n if (!q.req) {\n q.op(tx, q.args, executeNextRequest, error);\n return;\n }\n if (q.req.__readyState === 'done') { // Avoid continuing with aborted requests\n return;\n }\n q.op(tx, q.args, success, error, executeNextRequest);\n } catch (e) {\n error(e);\n }\n }\n }\n\n executeNextRequest();\n },\n function webSQLError (webSQLErr) {\n if (webSQLErr === true) { // Not a genuine SQL error\n return;\n }\n const err = webSQLErrback(webSQLErr);\n me.__abortTransaction(err);\n },\n function () {\n // For Node, we don't need to try running here as we can keep\n // the transaction running long enough to rollback (in the\n // next (non-standard) callback for this transaction call)\n if (me.__transFinishedCb !== IDBTransaction.prototype.__transFinishedCb) { // Node\n return;\n }\n if (!me.__transactionEndCallback && !me.__requestsFinished) {\n me.__transactionFinished = true;\n return;\n }\n if (me.__transactionEndCallback && !me.__completed) {\n me.__transFinishedCb(me.__errored, me.__transactionEndCallback);\n }\n },\n function (currentTask, err, done, rollback, commit) {\n if (currentTask.readOnly || err) {\n return true;\n }\n me.__transFinishedCb = function (err, cb) {\n if (err) {\n rollback(err, cb);\n } else {\n commit(cb);\n }\n };\n if (me.__transactionEndCallback && !me.__completed) {\n me.__transFinishedCb(me.__errored, me.__transactionEndCallback);\n }\n return false;\n }\n );\n\n function requestsFinished () {\n me.__active = false;\n me.__requestsFinished = true;\n\n function complete () {\n me.__completed = true;\n CFG.DEBUG && console.log('Transaction completed');\n const evt = createEvent('complete');\n try {\n me.__internal = true;\n me.dispatchEvent(evt);\n me.__internal = false;\n me.dispatchEvent(createEvent('__complete'));\n } catch (e) {\n me.__internal = false;\n // An error occurred in the \"oncomplete\" handler.\n // It's too late to call \"onerror\" or \"onabort\". Throw a global error instead.\n // (this may seem odd/bad, but it's how all native IndexedDB implementations work)\n me.__errored = true;\n throw e;\n } finally {\n me.__storeHandles = {};\n }\n }\n if (me.mode === 'readwrite') {\n if (me.__transactionFinished) {\n complete();\n return;\n }\n me.__transactionEndCallback = complete;\n return;\n }\n if (me.mode === 'readonly') {\n complete();\n return;\n }\n const ev = createEvent('__beforecomplete');\n ev.complete = complete;\n me.dispatchEvent(ev);\n }\n};\n\n/**\n * Creates a new IDBRequest for the transaction.\n * NOTE: The transaction is not queued until you call {@link IDBTransaction#__pushToQueue}\n * @returns {IDBRequest}\n * @protected\n */\nIDBTransaction.prototype.__createRequest = function (source) {\n const me = this;\n const request = IDBRequest.__createInstance();\n request.__source = source !== undefined ? source : me.db;\n request.__transaction = me;\n return request;\n};\n\n/**\n * Adds a callback function to the transaction queue\n * @param {function} callback\n * @param {*} args\n * @returns {IDBRequest}\n * @protected\n */\nIDBTransaction.prototype.__addToTransactionQueue = function (callback, args, source) {\n const request = this.__createRequest(source);\n this.__pushToQueue(request, callback, args);\n return request;\n};\n\n/**\n * Adds a callback function to the transaction queue without generating a request\n * @param {function} callback\n * @param {*} args\n * @returns {IDBRequest}\n * @protected\n */\nIDBTransaction.prototype.__addNonRequestToTransactionQueue = function (callback, args, source) {\n this.__pushToQueue(null, callback, args);\n};\n\n/**\n * Adds an IDBRequest to the transaction queue\n * @param {IDBRequest} request\n * @param {function} callback\n * @param {*} args\n * @protected\n */\nIDBTransaction.prototype.__pushToQueue = function (request, callback, args) {\n this.__assertActive();\n this.__requests.push({\n 'op': callback,\n 'args': args,\n 'req': request\n });\n};\n\nIDBTransaction.prototype.__assertActive = function () {\n if (!this.__active) {\n throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n }\n};\n\nIDBTransaction.prototype.__assertWritable = function () {\n if (this.mode === 'readonly') {\n throw createDOMException('ReadOnlyError', 'The transaction is read only');\n }\n};\n\nIDBTransaction.prototype.__assertVersionChange = function () {\n IDBTransaction.__assertVersionChange(this);\n};\n\n/**\n * Returns the specified object store.\n * @param {string} objectStoreName\n * @returns {IDBObjectStore}\n */\nIDBTransaction.prototype.objectStore = function (objectStoreName) {\n const me = this;\n if (!(me instanceof IDBTransaction)) {\n throw new TypeError('Illegal invocation');\n }\n if (arguments.length === 0) {\n throw new TypeError('No object store name was specified');\n }\n IDBTransaction.__assertNotFinished(me);\n if (me.__objectStoreNames.indexOf(objectStoreName) === -1) {\n throw createDOMException('NotFoundError', objectStoreName + ' is not participating in this transaction');\n }\n const store = me.db.__objectStores[objectStoreName];\n if (!store) {\n throw createDOMException('NotFoundError', objectStoreName + ' does not exist in ' + me.db.name);\n }\n\n if (!me.__storeHandles[objectStoreName] ||\n me.__storeHandles[objectStoreName].__pendingDelete ||\n me.__storeHandles[objectStoreName].__deleted) { // The latter conditions are to allow store\n // recreation to create new clone object\n me.__storeHandles[objectStoreName] = IDBObjectStore.__clone(store, me);\n }\n return me.__storeHandles[objectStoreName];\n};\n\nIDBTransaction.prototype.__abortTransaction = function (err) {\n const me = this;\n logError('Error', 'An error occurred in a transaction', err);\n if (me.__errored) {\n // We've already called \"onerror\", \"onabort\", or thrown, so don't do it again.\n return;\n }\n me.__errored = true;\n\n if (me.mode === 'versionchange') { // Steps for aborting an upgrade transaction\n me.db.__version = me.db.__oldVersion;\n me.db.__objectStoreNames = me.db.__oldObjectStoreNames;\n me.__objectStoreNames = me.db.__oldObjectStoreNames;\n Object.values(me.db.__objectStores).concat(Object.values(me.__storeHandles)).forEach(function (store) {\n if ('__pendingName' in store && me.db.__oldObjectStoreNames.indexOf(store.__pendingName) > -1) { // Store was already created so we restore to name before the rename\n store.__name = store.__originalName;\n }\n store.__indexNames = store.__oldIndexNames;\n delete store.__pendingDelete;\n Object.values(store.__indexes).concat(Object.values(store.__indexHandles)).forEach(function (index) {\n if ('__pendingName' in index && store.__oldIndexNames.indexOf(index.__pendingName) > -1) { // Index was already created so we restore to name before the rename\n index.__name = index.__originalName;\n }\n delete index.__pendingDelete;\n });\n });\n }\n me.__active = false; // Setting here and in requestsFinished for https://github.com/w3c/IndexedDB/issues/87\n\n if (err !== null) {\n me.__error = err;\n }\n\n if (me.__requestsFinished) {\n // The transaction has already completed, so we can't call \"onerror\" or \"onabort\".\n // So throw the error instead.\n setTimeout(() => {\n throw err;\n }, 0);\n }\n\n function abort (tx, errOrResult) {\n if (!tx) {\n CFG.DEBUG && console.log('Rollback not possible due to missing transaction', me);\n } else if (errOrResult && typeof errOrResult.code === 'number') {\n CFG.DEBUG && console.log('Rollback erred; feature is probably not supported as per WebSQL', me);\n } else {\n CFG.DEBUG && console.log('Rollback succeeded', me);\n }\n\n me.dispatchEvent(createEvent('__preabort'));\n me.__requests.filter(function (q) {\n return q.req && q.req.__readyState !== 'done';\n }).reduce(function (promises, q) {\n // We reduce to a chain of promises to be queued in order, so we cannot use `Promise.all`,\n // and I'm unsure whether `setTimeout` currently behaves first-in-first-out with the same timeout\n // so we could just use a `forEach`.\n return promises.then(function () {\n q.req.__readyState = 'done';\n q.req.__result = undefined;\n q.req.__error = createDOMException('AbortError', 'A request was aborted.');\n const reqEvt = createEvent('error', q.req.__error, {bubbles: true, cancelable: true});\n return new SyncPromise(function (resolve) {\n setTimeout(() => {\n q.req.dispatchEvent(reqEvt); // No need to catch errors\n resolve();\n });\n });\n });\n }, SyncPromise.resolve()).then(function () { // Also works when there are no pending requests\n const evt = createEvent('abort', err, {bubbles: true, cancelable: false});\n setTimeout(() => {\n me.__abortFinished = true;\n me.dispatchEvent(evt);\n me.__storeHandles = {};\n me.dispatchEvent(createEvent('__abort'));\n });\n });\n }\n\n me.__transFinishedCb(true, function (rollback) {\n if (rollback && me.__tx) { // Not supported in standard SQL (and WebSQL errors should\n // rollback automatically), but for Node.js, etc., we give chance for\n // manual aborts which would otherwise not work.\n if (me.mode === 'readwrite') {\n if (me.__transactionFinished) {\n abort();\n return;\n }\n me.__transactionEndCallback = abort;\n return;\n }\n try {\n me.__tx.executeSql('ROLLBACK', [], abort, abort); // Not working in some circumstances, even in Node\n } catch (err) {\n // Browser errs when transaction has ended and since it most likely already erred here,\n // we call to abort\n abort();\n }\n } else {\n abort(null, {code: 0});\n }\n });\n};\n\nIDBTransaction.prototype.abort = function () {\n const me = this;\n if (!(me instanceof IDBTransaction)) {\n throw new TypeError('Illegal invocation');\n }\n CFG.DEBUG && console.log('The transaction was aborted', me);\n IDBTransaction.__assertNotFinished(me);\n me.__abortTransaction(null);\n};\nIDBTransaction.prototype[Symbol.toStringTag] = 'IDBTransactionPrototype';\n\nIDBTransaction.__assertVersionChange = function (tx) {\n if (!tx || tx.mode !== 'versionchange') {\n throw createDOMException('InvalidStateError', 'Not a version transaction');\n }\n};\nIDBTransaction.__assertNotVersionChange = function (tx) {\n if (tx && tx.mode === 'versionchange') {\n throw createDOMException('InvalidStateError', 'Cannot be called during a version transaction');\n }\n};\n\nIDBTransaction.__assertNotFinished = function (tx) {\n if (!tx || tx.__completed || tx.__abortFinished || tx.__errored) {\n throw createDOMException('InvalidStateError', 'Transaction finished by commit or abort');\n }\n};\n\n// object store methods behave differently: see https://github.com/w3c/IndexedDB/issues/192\nIDBTransaction.__assertNotFinishedObjectStoreMethod = function (tx) {\n try {\n IDBTransaction.__assertNotFinished(tx);\n } catch (err) {\n if (tx && !tx.__completed && !tx.__abortFinished) {\n throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n }\n throw err;\n }\n};\n\nIDBTransaction.__assertActive = function (tx) {\n if (!tx || !tx.__active) {\n throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n }\n};\n\n/**\n* Used by our EventTarget.prototype library to implement bubbling/capturing\n*/\nIDBTransaction.prototype.__getParent = function () {\n return this.db;\n};\n\nlisteners.forEach((listener) => {\n Object.defineProperty(IDBTransaction.prototype, listener, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n },\n set: function (val) {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\n// Illegal invocations\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBTransaction.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n throw new TypeError('Illegal invocation');\n }\n });\n});\n\nObject.defineProperty(IDBTransaction.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBTransaction\n});\n\nObject.defineProperty(IDBTransaction, 'prototype', {\n writable: false\n});\n\nexport default IDBTransaction;\n","import {ShimEvent} from './Event';\nimport * as util from './util';\n\nconst readonlyProperties = ['oldVersion', 'newVersion'];\n\n// Babel apparently having a problem adding `hasInstance` to a class, so we are redefining as a function\nfunction IDBVersionChangeEvent (type /* , eventInitDict */) { // eventInitDict is a IDBVersionChangeEventInit (but is not defined as a global)\n ShimEvent.call(this, type);\n this[Symbol.toStringTag] = 'IDBVersionChangeEvent';\n this.toString = function () {\n return '[object IDBVersionChangeEvent]';\n };\n this.__eventInitDict = arguments[1] || {};\n}\n\nIDBVersionChangeEvent.prototype = Object.create(ShimEvent.prototype);\n\nIDBVersionChangeEvent.prototype[Symbol.toStringTag] = 'IDBVersionChangeEventPrototype';\n\nreadonlyProperties.forEach((prop) => {\n Object.defineProperty(IDBVersionChangeEvent.prototype, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n if (!(this instanceof IDBVersionChangeEvent)) {\n throw new TypeError('Illegal invocation');\n }\n return (this.__eventInitDict && this.__eventInitDict[prop]) || (prop === 'oldVersion' ? 0 : null);\n }\n });\n});\n\nObject.defineProperty(IDBVersionChangeEvent, Symbol.hasInstance, {\n value: obj => util.isObj(obj) && 'oldVersion' in obj && typeof obj.defaultPrevented === 'boolean'\n});\n\nObject.defineProperty(IDBVersionChangeEvent.prototype, 'constructor', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: IDBVersionChangeEvent\n});\n\nObject.defineProperty(IDBVersionChangeEvent, 'prototype', {\n writable: false\n});\n\nexport default IDBVersionChangeEvent;\n","import {createDOMException} from './DOMException';\nimport * as util from './util';\nimport {cmp} from './IDBFactory';\nimport CFG from './CFG';\n\n/**\n * Encodes the keys based on their types. This is required to maintain collations\n */\nconst collations = ['invalid', 'number', 'date', 'string', 'binary', 'array'];\n\n/**\n * The sign values for numbers, ordered from least to greatest.\n * - \"negativeInfinity\": Sorts below all other values.\n * - \"bigNegative\": Negative values less than or equal to negative one.\n * - \"smallNegative\": Negative values between negative one and zero, noninclusive.\n * - \"smallPositive\": Positive values between zero and one, including zero but not one.\n * - \"largePositive\": Positive values greater than or equal to one.\n * - \"positiveInfinity\": Sorts above all other values.\n */\nconst signValues = ['negativeInfinity', 'bigNegative', 'smallNegative', 'smallPositive', 'bigPositive', 'positiveInfinity'];\n\nconst types = {\n invalid: {\n encode: function (key) {\n return collations.indexOf('invalid') + '-';\n },\n decode: function (key) {\n return undefined;\n }\n },\n\n // Numbers are represented in a lexically sortable base-32 sign-exponent-mantissa\n // notation.\n //\n // sign: takes a value between zero and five, inclusive. Represents infinite cases\n // and the signs of both the exponent and the fractional part of the number.\n // exponent: padded to two base-32 digits, represented by the 32's compliment in the\n // \"smallPositive\" and \"bigNegative\" cases to ensure proper lexical sorting.\n // mantissa: also called the fractional part. Normed 11-digit base-32 representation.\n // Represented by the 32's compliment in the \"smallNegative\" and \"bigNegative\"\n // cases to ensure proper lexical sorting.\n number: {\n // The encode step checks for six numeric cases and generates 14-digit encoded\n // sign-exponent-mantissa strings.\n encode: function (key) {\n let key32 = Math.abs(key).toString(32);\n // Get the index of the decimal.\n const decimalIndex = key32.indexOf('.');\n // Remove the decimal.\n key32 = (decimalIndex !== -1) ? key32.replace('.', '') : key32;\n // Get the index of the first significant digit.\n const significantDigitIndex = key32.search(/[^0]/);\n // Truncate leading zeros.\n key32 = key32.slice(significantDigitIndex);\n let sign, exponent, mantissa;\n\n // Finite cases:\n if (isFinite(key)) {\n // Negative cases:\n if (key < 0) {\n // Negative exponent case:\n if (key > -1) {\n sign = signValues.indexOf('smallNegative');\n exponent = padBase32Exponent(significantDigitIndex);\n mantissa = flipBase32(padBase32Mantissa(key32));\n // Non-negative exponent case:\n } else {\n sign = signValues.indexOf('bigNegative');\n exponent = flipBase32(padBase32Exponent(\n (decimalIndex !== -1) ? decimalIndex : key32.length\n ));\n mantissa = flipBase32(padBase32Mantissa(key32));\n }\n // Non-negative cases:\n } else {\n // Negative exponent case:\n if (key < 1) {\n sign = signValues.indexOf('smallPositive');\n exponent = flipBase32(padBase32Exponent(significantDigitIndex));\n mantissa = padBase32Mantissa(key32);\n // Non-negative exponent case:\n } else {\n sign = signValues.indexOf('bigPositive');\n exponent = padBase32Exponent(\n (decimalIndex !== -1) ? decimalIndex : key32.length\n );\n mantissa = padBase32Mantissa(key32);\n }\n }\n // Infinite cases:\n } else {\n exponent = zeros(2);\n mantissa = zeros(11);\n sign = signValues.indexOf(\n key > 0 ? 'positiveInfinity' : 'negativeInfinity'\n );\n }\n\n return collations.indexOf('number') + '-' + sign + exponent + mantissa;\n },\n // The decode step must interpret the sign, reflip values encoded as the 32's complements,\n // apply signs to the exponent and mantissa, do the base-32 power operation, and return\n // the original JavaScript number values.\n decode: function (key) {\n const sign = +key.substr(2, 1);\n let exponent = key.substr(3, 2);\n let mantissa = key.substr(5, 11);\n\n switch (signValues[sign]) {\n case 'negativeInfinity':\n return -Infinity;\n case 'positiveInfinity':\n return Infinity;\n case 'bigPositive':\n return pow32(mantissa, exponent);\n case 'smallPositive':\n exponent = negate(flipBase32(exponent));\n return pow32(mantissa, exponent);\n case 'smallNegative':\n exponent = negate(exponent);\n mantissa = flipBase32(mantissa);\n return -pow32(mantissa, exponent);\n case 'bigNegative':\n exponent = flipBase32(exponent);\n mantissa = flipBase32(mantissa);\n return -pow32(mantissa, exponent);\n default:\n throw new Error('Invalid number.');\n }\n }\n },\n\n // Strings are encoded as JSON strings (with quotes and unicode characters escaped).\n //\n // If the strings are in an array, then some extra encoding is done to make sorting work correctly:\n // Since we can't force all strings to be the same length, we need to ensure that characters line-up properly\n // for sorting, while also accounting for the extra characters that are added when the array itself is encoded as JSON.\n // To do this, each character of the string is prepended with a dash (\"-\"), and a space is added to the end of the string.\n // This effectively doubles the size of every string, but it ensures that when two arrays of strings are compared,\n // the indexes of each string's characters line up with each other.\n string: {\n encode: function (key, inArray) {\n if (inArray) {\n // prepend each character with a dash, and append a space to the end\n key = key.replace(/(.)/g, '-$1') + ' ';\n }\n return collations.indexOf('string') + '-' + key;\n },\n decode: function (key, inArray) {\n key = key.slice(2);\n if (inArray) {\n // remove the space at the end, and the dash before each character\n key = key.substr(0, key.length - 1).replace(/-(.)/g, '$1');\n }\n return key;\n }\n },\n\n // Arrays are encoded as JSON strings.\n // An extra, value is added to each array during encoding to make empty arrays sort correctly.\n array: {\n encode: function (key) {\n const encoded = [];\n for (let i = 0; i < key.length; i++) {\n const item = key[i];\n const encodedItem = encode(item, true); // encode the array item\n encoded[i] = encodedItem;\n }\n encoded.push(collations.indexOf('invalid') + '-'); // append an extra item, so empty arrays sort correctly\n return collations.indexOf('array') + '-' + JSON.stringify(encoded);\n },\n decode: function (key) {\n const decoded = JSON.parse(key.slice(2));\n decoded.pop(); // remove the extra item\n for (let i = 0; i < decoded.length; i++) {\n const item = decoded[i];\n const decodedItem = decode(item, true); // decode the item\n decoded[i] = decodedItem;\n }\n return decoded;\n }\n },\n\n // Dates are encoded as ISO 8601 strings, in UTC time zone.\n date: {\n encode: function (key) {\n return collations.indexOf('date') + '-' + key.toJSON();\n },\n decode: function (key) {\n return new Date(key.slice(2));\n }\n },\n binary: { // `ArrayBuffer`/Views on buffers (`TypedArray` or `DataView`)\n encode: function (key) {\n return collations.indexOf('binary') + '-' + (key.byteLength\n ? Array.from(getCopyBytesHeldByBufferSource(key)).map((b) => padStart(b, 3, '0')) // e.g., '255,005,254,000,001,033'\n : '');\n },\n decode: function (key) {\n // Set the entries in buffer's [[ArrayBufferData]] to those in `value`\n const k = key.slice(2);\n const arr = k.length ? k.split(',').map((s) => parseInt(s, 10)) : [];\n const buffer = new ArrayBuffer(arr.length);\n const uint8 = new Uint8Array(buffer);\n uint8.set(arr);\n return buffer;\n }\n }\n};\n\nfunction padStart (str, ct, fill) {\n return new Array(ct - (String(str)).length + 1).join(fill) + str;\n}\n\n/**\n * Return a padded base-32 exponent value.\n * @param {number}\n * @return {string}\n */\nfunction padBase32Exponent (n) {\n n = n.toString(32);\n return (n.length === 1) ? '0' + n : n;\n}\n\n/**\n * Return a padded base-32 mantissa.\n * @param {string}\n * @return {string}\n */\nfunction padBase32Mantissa (s) {\n return (s + zeros(11)).slice(0, 11);\n}\n\n/**\n * Flips each digit of a base-32 encoded string.\n * @param {string} encoded\n */\nfunction flipBase32 (encoded) {\n let flipped = '';\n for (let i = 0; i < encoded.length; i++) {\n flipped += (31 - parseInt(encoded[i], 32)).toString(32);\n }\n return flipped;\n}\n\n/**\n * Base-32 power function.\n * RESEARCH: This function does not precisely decode floats because it performs\n * floating point arithmetic to recover values. But can the original values be\n * recovered exactly?\n * Someone may have already figured out a good way to store JavaScript floats as\n * binary strings and convert back. Barring a better method, however, one route\n * may be to generate decimal strings that `parseFloat` decodes predictably.\n * @param {string}\n * @param {string}\n * @return {number}\n */\nfunction pow32 (mantissa, exponent) {\n exponent = parseInt(exponent, 32);\n if (exponent < 0) {\n return roundToPrecision(\n parseInt(mantissa, 32) * Math.pow(32, exponent - 10)\n );\n } else {\n if (exponent < 11) {\n let whole = mantissa.slice(0, exponent);\n whole = parseInt(whole, 32);\n let fraction = mantissa.slice(exponent);\n fraction = parseInt(fraction, 32) * Math.pow(32, exponent - 11);\n return roundToPrecision(whole + fraction);\n } else {\n const expansion = mantissa + zeros(exponent - 11);\n return parseInt(expansion, 32);\n }\n }\n}\n\n/**\n *\n */\nfunction roundToPrecision (num, precision) {\n precision = precision || 16;\n return parseFloat(num.toPrecision(precision));\n}\n\n/**\n * Returns a string of n zeros.\n * @param {number}\n * @return {string}\n */\nfunction zeros (n) {\n return '0'.repeat(n);\n}\n\n/**\n * Negates numeric strings.\n * @param {string}\n * @return {string}\n */\nfunction negate (s) {\n return '-' + s;\n}\n\n/**\n * Returns the string \"number\", \"date\", \"string\", \"binary\", or \"array\"\n */\nfunction getKeyType (key) {\n if (Array.isArray(key)) return 'array';\n if (util.isDate(key)) return 'date';\n if (util.isBinary(key)) return 'binary';\n const keyType = typeof key;\n return ['string', 'number'].includes(keyType) ? keyType : 'invalid';\n}\n\n/**\n * Keys must be strings, numbers (besides NaN), Dates (if value is not NaN),\n * binary objects or Arrays\n * @param input The key input\n * @param seen An array of already seen keys\n */\nfunction convertValueToKey (input, seen) {\n return convertValueToKeyValueDecoded(input, seen, false, true);\n}\n\n/**\n* Currently not in use\n*/\nfunction convertValueToMultiEntryKey (input) {\n return convertValueToKeyValueDecoded(input, null, true, true);\n}\n\n// https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy-2\nfunction getCopyBytesHeldByBufferSource (O) {\n let offset = 0;\n let length = 0;\n if (ArrayBuffer.isView(O)) { // Has [[ViewedArrayBuffer]] internal slot\n const arrayBuffer = O.buffer;\n if (arrayBuffer === undefined) {\n throw new TypeError('Could not copy the bytes held by a buffer source as the buffer was undefined.');\n }\n offset = O.byteOffset; // [[ByteOffset]] (will also throw as desired if detached)\n length = O.byteLength; // [[ByteLength]] (will also throw as desired if detached)\n } else {\n length = O.byteLength; // [[ArrayBufferByteLength]] on ArrayBuffer (will also throw as desired if detached)\n }\n // const octets = new Uint8Array(input);\n // const octets = types.binary.decode(types.binary.encode(input));\n return new Uint8Array(O.buffer || O, offset, length);\n}\n\n/**\n* Shortcut utility to avoid returning full keys from `convertValueToKey`\n* and subsequent need to process in calling code unless `fullKeys` is\n* set; may throw\n*/\nfunction convertValueToKeyValueDecoded (input, seen, multiEntry, fullKeys) {\n seen = seen || [];\n if (seen.includes(input)) return {type: 'array', invalid: true, message: 'An array key cannot be circular'};\n const type = getKeyType(input);\n const ret = {type, value: input};\n switch (type) {\n case 'number': {\n if (Number.isNaN(input)) {\n return {type: 'NaN', invalid: true}; // List as 'NaN' type for convenience of consumers in reporting errors\n }\n return ret;\n } case 'string': {\n return ret;\n } case 'binary': { // May throw (if detached)\n // Get a copy of the bytes held by the buffer source\n // https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy-2\n const octets = getCopyBytesHeldByBufferSource(input);\n return {type: 'binary', value: octets};\n } case 'array': { // May throw (from binary)\n const len = input.length;\n seen.push(input);\n const keys = [];\n for (let i = 0; i < len; i++) { // We cannot iterate here with array extras as we must ensure sparse arrays are invalidated\n if (!multiEntry && !Object.prototype.hasOwnProperty.call(input, i)) {\n return {type, invalid: true, message: 'Does not have own index property'};\n }\n try {\n const entry = input[i];\n const key = convertValueToKeyValueDecoded(entry, seen, false, fullKeys); // Though steps do not list rethrowing, the next is returnifabrupt when not multiEntry\n if (key.invalid) {\n if (multiEntry) {\n continue;\n }\n return {type, invalid: true, message: 'Bad array entry value-to-key conversion'};\n }\n if (!multiEntry ||\n (!fullKeys && keys.every((k) => cmp(k, key.value) !== 0)) ||\n (fullKeys && keys.every((k) => cmp(k, key) !== 0))\n ) {\n keys.push(fullKeys ? key : key.value);\n }\n } catch (err) {\n if (!multiEntry) {\n throw err;\n }\n }\n }\n return {type, value: keys};\n } case 'date': {\n if (!Number.isNaN(input.getTime())) {\n return fullKeys ? {type, value: input.getTime()} : {type, value: new Date(input.getTime())};\n }\n return {type, invalid: true, message: 'Not a valid date'};\n // Falls through\n } case 'invalid': default: {\n // Other `typeof` types which are not valid keys:\n // 'undefined', 'boolean', 'object' (including `null`), 'symbol', 'function\n const type = input === null ? 'null' : typeof input; // Convert `null` for convenience of consumers in reporting errors\n return {type, invalid: true, message: 'Not a valid key; type ' + type};\n }\n }\n}\nfunction convertValueToMultiEntryKeyDecoded (key, fullKeys) {\n return convertValueToKeyValueDecoded(key, null, true, fullKeys);\n}\n\n/**\n* An internal utility\n*/\nfunction convertValueToKeyRethrowingAndIfInvalid (input, seen) {\n const key = convertValueToKey(input, seen);\n if (key.invalid) {\n throw createDOMException('DataError', key.message || 'Not a valid key; type: ' + key.type);\n }\n return key;\n}\n\nfunction extractKeyFromValueUsingKeyPath (value, keyPath, multiEntry) {\n return extractKeyValueDecodedFromValueUsingKeyPath(value, keyPath, multiEntry, true);\n}\n/**\n* Not currently in use\n*/\nfunction evaluateKeyPathOnValue (value, keyPath, multiEntry) {\n return evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, true);\n}\n\n/**\n* May throw, return `{failure: true}` (e.g., non-object on keyPath resolution)\n* or `{invalid: true}` (e.g., `NaN`)\n*/\nfunction extractKeyValueDecodedFromValueUsingKeyPath (value, keyPath, multiEntry, fullKeys) {\n const r = evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, fullKeys);\n if (r.failure) {\n return r;\n }\n if (!multiEntry) {\n return convertValueToKeyValueDecoded(r.value, null, false, fullKeys);\n }\n return convertValueToMultiEntryKeyDecoded(r.value, fullKeys);\n}\n\n/**\n * Returns the value of an inline key based on a key path (wrapped in an object with key `value`)\n * or `{failure: true}`\n * @param {object} value\n * @param {string|array} keyPath\n * @param {boolean} multiEntry\n * @returns {undefined|array|string}\n */\nfunction evaluateKeyPathOnValueToDecodedValue (value, keyPath, multiEntry, fullKeys) {\n if (Array.isArray(keyPath)) {\n const result = [];\n return keyPath.some((item) => {\n const key = evaluateKeyPathOnValueToDecodedValue(value, item, multiEntry, fullKeys);\n if (key.failure) {\n return true;\n }\n result.push(key.value);\n }, []) ? {failure: true} : {value: result};\n }\n if (keyPath === '') {\n return {value};\n }\n const identifiers = keyPath.split('.');\n return identifiers.some((idntfr, i) => {\n if (idntfr === 'length' && (\n typeof value === 'string' || Array.isArray(value)\n )) {\n value = value.length;\n } else if (util.isBlob(value)) {\n switch (idntfr) {\n case 'size': case 'type':\n value = value[idntfr];\n break;\n }\n } else if (util.isFile(value)) {\n switch (idntfr) {\n case 'name': case 'lastModified':\n value = value[idntfr];\n break;\n case 'lastModifiedDate':\n value = new Date(value.lastModified);\n break;\n }\n } else if (!util.isObj(value) || !Object.prototype.hasOwnProperty.call(value, idntfr)) {\n return true;\n } else {\n value = value[idntfr];\n return value === undefined;\n }\n }) ? {failure: true} : {value};\n}\n\n/**\n * Sets the inline key value\n * @param {object} value\n * @param {*} key\n * @param {string} keyPath\n */\nfunction injectKeyIntoValueUsingKeyPath (value, key, keyPath) {\n const identifiers = keyPath.split('.');\n const last = identifiers.pop();\n for (let i = 0; i < identifiers.length; i++) {\n const identifier = identifiers[i];\n const hop = Object.prototype.hasOwnProperty.call(value, identifier);\n if (!hop) {\n value[identifier] = {};\n }\n value = value[identifier];\n }\n value[last] = key; // key is already a `keyValue` in our processing so no need to convert\n}\n\n// See https://github.com/w3c/IndexedDB/pull/146\nfunction checkKeyCouldBeInjectedIntoValue (value, keyPath) {\n const identifiers = keyPath.split('.');\n identifiers.pop();\n for (let i = 0; i < identifiers.length; i++) {\n if (!util.isObj(value)) {\n return false;\n }\n const identifier = identifiers[i];\n const hop = Object.prototype.hasOwnProperty.call(value, identifier);\n if (!hop) {\n return true;\n }\n value = value[identifier];\n }\n return util.isObj(value);\n}\n\nfunction isKeyInRange (key, range, checkCached) {\n let lowerMatch = range.lower === undefined;\n let upperMatch = range.upper === undefined;\n const encodedKey = encode(key, true);\n const lower = checkCached ? range.__lowerCached : encode(range.lower, true);\n const upper = checkCached ? range.__upperCached : encode(range.upper, true);\n\n if (range.lower !== undefined) {\n if (range.lowerOpen && encodedKey > lower) {\n lowerMatch = true;\n }\n if (!range.lowerOpen && encodedKey >= lower) {\n lowerMatch = true;\n }\n }\n if (range.upper !== undefined) {\n if (range.upperOpen && encodedKey < upper) {\n upperMatch = true;\n }\n if (!range.upperOpen && encodedKey <= upper) {\n upperMatch = true;\n }\n }\n\n return lowerMatch && upperMatch;\n}\n\n/**\n * Determines whether an index entry matches a multi-entry key value.\n * @param {string} encodedEntry The entry value (already encoded)\n * @param {string} encodedKey The full index key (already encoded)\n * @returns {boolean}\n */\nfunction isMultiEntryMatch (encodedEntry, encodedKey) {\n const keyType = collations[encodedKey.slice(0, 1)];\n\n if (keyType === 'array') {\n return encodedKey.indexOf(encodedEntry) > 1;\n } else {\n return encodedKey === encodedEntry;\n }\n}\n\nfunction findMultiEntryMatches (keyEntry, range) {\n const matches = [];\n\n if (Array.isArray(keyEntry)) {\n for (let i = 0; i < keyEntry.length; i++) {\n let key = keyEntry[i];\n\n if (Array.isArray(key)) {\n if (range && range.lower === range.upper) {\n continue;\n }\n if (key.length === 1) {\n key = key[0];\n } else {\n const nested = findMultiEntryMatches(key, range);\n if (nested.length > 0) {\n matches.push(key);\n }\n continue;\n }\n }\n\n if (range == null || isKeyInRange(key, range, true)) {\n matches.push(key);\n }\n }\n } else {\n if (range == null || isKeyInRange(keyEntry, range, true)) {\n matches.push(keyEntry);\n }\n }\n return matches;\n}\n\n/**\n* Not currently in use but keeping for spec parity\n*/\nfunction convertKeyToValue (key) {\n const type = key.type;\n const value = key.value;\n switch (type) {\n case 'number': case 'string': {\n return value;\n } case 'array': {\n const array = [];\n const len = value.length;\n let index = 0;\n while (index < len) {\n const entry = convertKeyToValue(value[index]);\n array[index] = entry;\n index++;\n }\n return array;\n } case 'date': {\n return new Date(value);\n } case 'binary': {\n const len = value.length;\n const buffer = new ArrayBuffer(len);\n // Set the entries in buffer's [[ArrayBufferData]] to those in `value`\n const uint8 = new Uint8Array(buffer, value.byteOffset || 0, value.byteLength);\n uint8.set(value);\n return buffer;\n } case 'invalid': default:\n throw new Error('Bad key');\n }\n}\n\nfunction encode (key, inArray) {\n // Bad keys like `null`, `object`, `boolean`, 'function', 'symbol' should not be passed here due to prior validation\n if (key === undefined) {\n return null;\n }\n // array, date, number, string, binary (should already have detected \"invalid\")\n return types[getKeyType(key)].encode(key, inArray);\n}\nfunction decode (key, inArray) {\n if (typeof key !== 'string') {\n return undefined;\n }\n return types[collations[key.slice(0, 1)]].decode(key, inArray);\n}\n\nfunction roundTrip (key, inArray) {\n return decode(encode(key, inArray), inArray);\n}\n\nconst MAX_ALLOWED_CURRENT_NUMBER = 9007199254740992; // 2 ^ 53 (Also equal to `Number.MAX_SAFE_INTEGER + 1`)\n\nfunction getCurrentNumber (tx, store, callback, sqlFailCb) {\n tx.executeSql('SELECT \"currNum\" FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function (tx, data) {\n if (data.rows.length !== 1) {\n callback(1); // eslint-disable-line standard/no-callback-literal\n } else {\n callback(data.rows.item(0).currNum);\n }\n }, function (tx, error) {\n sqlFailCb(createDOMException('DataError', 'Could not get the auto increment value for key', error));\n });\n}\n\n// Bump up the auto-inc counter if the key path-resolved value is valid (greater than old value and >=1) OR\n// if a manually passed in key is valid (numeric and >= 1) and >= any primaryKey\nfunction setCurrentNumber (tx, store, num, successCb, failCb) {\n const sql = 'UPDATE __sys__ SET \"currNum\" = ? WHERE \"name\" = ?';\n num = num === MAX_ALLOWED_CURRENT_NUMBER\n ? num + 2 // Since incrementing by one will have no effect in JavaScript on this unsafe max, we represent the max as a number incremented by two. The getting of the current number is never returned to the user and is only used in safe comparisons, so it is safe for us to represent it in this manner\n : num + 1;\n const sqlValues = [num, util.escapeSQLiteStatement(store.__currentName)];\n CFG.DEBUG && console.log(sql, sqlValues);\n tx.executeSql(sql, sqlValues, function (tx, data) {\n successCb(num);\n }, function (tx, err) {\n failCb(createDOMException('UnknownError', 'Could not set the auto increment value for key', err));\n });\n}\n\nfunction generateKeyForStore (tx, store, cb, sqlFailCb) {\n getCurrentNumber(tx, store, function (key) {\n if (key > MAX_ALLOWED_CURRENT_NUMBER) { // 2 ^ 53 (See )\n return cb('failure'); // eslint-disable-line standard/no-callback-literal\n }\n // Increment current number by 1 (we cannot leverage SQLite's\n // autoincrement (and decrement when not needed), as decrementing\n // will be overwritten/ignored upon the next insert)\n setCurrentNumber(tx, store, key,\n function () {\n cb(null, key);\n },\n sqlFailCb\n );\n }, sqlFailCb);\n}\n\n// Fractional or numbers exceeding the max do not get changed in the result\n// per https://github.com/w3c/IndexedDB/issues/147\n// so we do not return a key\nfunction possiblyUpdateKeyGenerator (tx, store, key, successCb, sqlFailCb) {\n // Per https://github.com/w3c/IndexedDB/issues/147 , non-finite numbers\n // (or numbers larger than the max) are now to have the explicit effect of\n // setting the current number (up to the max), so we do not optimize them\n // out here\n if (typeof key !== 'number' || key < 1) { // Optimize with no need to get the current number\n // Auto-increment attempted with a bad key;\n // we are not to change the current number, but the steps don't call for failure\n // Numbers < 1 are optimized out as they will never be greater than the current number which must be at least 1\n successCb();\n } else {\n // If auto-increment and the keyPath item is a valid numeric key, get the old auto-increment to compare if the new is higher\n // to determine which to use and whether to update the current number\n getCurrentNumber(tx, store, function (cn) {\n const value = Math.floor(\n Math.min(key, MAX_ALLOWED_CURRENT_NUMBER)\n );\n const useNewKeyForAutoInc = value >= cn;\n if (useNewKeyForAutoInc) {\n setCurrentNumber(tx, store, value, successCb, sqlFailCb);\n } else { // Not updated\n successCb();\n }\n }, sqlFailCb);\n }\n}\n\n/* eslint-disable object-property-newline */\nexport {encode, decode, roundTrip, convertKeyToValue, convertValueToKeyValueDecoded,\n convertValueToMultiEntryKeyDecoded,\n convertValueToKey,\n convertValueToMultiEntryKey, convertValueToKeyRethrowingAndIfInvalid,\n extractKeyFromValueUsingKeyPath, evaluateKeyPathOnValue,\n extractKeyValueDecodedFromValueUsingKeyPath, injectKeyIntoValueUsingKeyPath, checkKeyCouldBeInjectedIntoValue,\n isMultiEntryMatch, isKeyInRange, findMultiEntryMatches,\n generateKeyForStore, possiblyUpdateKeyGenerator};\n","import Typeson from 'typeson';\nimport StructuredCloning from 'typeson-registry/presets/structured-cloning-throwing';\n// import Blob from 'w3c-blob'; // Needed by Node; uses native if available (browser)\n\nimport {createDOMException, ShimDOMException} from './DOMException';\n\n// Todo: Register `ImageBitmap` and add `Blob`/`File`/`FileList`\n// Todo: add a proper polyfill for `ImageData` using node-canvas\n// See also: http://stackoverflow.com/questions/42170826/categories-for-rejection-by-the-structured-cloning-algorithm\n\nconst typeson = new Typeson().register(StructuredCloning);\n\n// We are keeping the callback approach for now in case we wish to reexpose Blob, File, FileList\nfunction encode (obj, cb) {\n let ret;\n try {\n ret = typeson.stringifySync(obj);\n } catch (err) {\n // SCA in typeson-registry using `DOMException` which is not defined (e.g., in Node)\n if (Typeson.hasConstructorOf(err, ReferenceError) ||\n // SCA in typeson-registry threw a cloning error and we are in a\n // supporting environment (e.g., the browser) where `ShimDOMException` is\n // an alias for `DOMException`; if typeson-registry ever uses our shim\n // to throw, we can use this condition alone.\n Typeson.hasConstructorOf(err, ShimDOMException)) {\n throw createDOMException('DataCloneError', 'The object cannot be cloned.');\n }\n throw err; // We should rethrow non-cloning exceptions like from\n // throwing getters (as in the W3C test, key-conversion-exceptions.htm)\n }\n if (cb) cb(ret);\n return ret;\n}\n\nfunction decode (obj) {\n return typeson.parse(obj);\n}\n\nfunction clone (val) {\n // We don't return the intermediate `encode` as we'll need to reencode the clone as it may differ\n return decode(encode(val));\n}\n\nexport {encode, decode, clone};\n","// ID_Start (includes Other_ID_Start)\nconst UnicodeIDStart =\n '(?:[$A-Z_a-z\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B4\\\\u08B6-\\\\u08BD\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309B-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AE\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDF00-\\\\uDF19]|\\\\uD806[\\\\uDCA0-\\\\uDCDF\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0]|\\\\uD821[\\\\uDC00-\\\\uDFEC]|\\\\uD822[\\\\uDC00-\\\\uDEF2]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD00-\\\\uDD43]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1]|\\\\uD87E[\\\\uDC00-\\\\uDE1D])';\n\n// ID_Continue (includes Other_ID_Continue)\nconst UnicodeIDContinue =\n '(?:[$0-9A-Z_a-z\\\\xAA\\\\xB5\\\\xB7\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B4\\\\u08B6-\\\\u08BD\\\\u08D4-\\\\u08E1\\\\u08E3-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0AF9\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58-\\\\u0C5A\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C80-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D54-\\\\u0D57\\\\u0D5F-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1369-\\\\u1371\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19DA\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFB-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AE\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C5\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDDFD\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDEE0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF7A\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCA0-\\\\uDCA9\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE6\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2]|\\\\uD804[\\\\uDC00-\\\\uDC46\\\\uDC66-\\\\uDC6F\\\\uDC7F-\\\\uDCBA\\\\uDCD0-\\\\uDCE8\\\\uDCF0-\\\\uDCF9\\\\uDD00-\\\\uDD34\\\\uDD36-\\\\uDD3F\\\\uDD50-\\\\uDD73\\\\uDD76\\\\uDD80-\\\\uDDC4\\\\uDDCA-\\\\uDDCC\\\\uDDD0-\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE37\\\\uDE3E\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEEA\\\\uDEF0-\\\\uDEF9\\\\uDF00-\\\\uDF03\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3C-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF50\\\\uDF57\\\\uDF5D-\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC00-\\\\uDC4A\\\\uDC50-\\\\uDC59\\\\uDC80-\\\\uDCC5\\\\uDCC7\\\\uDCD0-\\\\uDCD9\\\\uDD80-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDD8-\\\\uDDDD\\\\uDE00-\\\\uDE40\\\\uDE44\\\\uDE50-\\\\uDE59\\\\uDE80-\\\\uDEB7\\\\uDEC0-\\\\uDEC9\\\\uDF00-\\\\uDF19\\\\uDF1D-\\\\uDF2B\\\\uDF30-\\\\uDF39]|\\\\uD806[\\\\uDCA0-\\\\uDCE9\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC36\\\\uDC38-\\\\uDC40\\\\uDC50-\\\\uDC59\\\\uDC72-\\\\uDC8F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE60-\\\\uDE69\\\\uDED0-\\\\uDEED\\\\uDEF0-\\\\uDEF4\\\\uDF00-\\\\uDF36\\\\uDF40-\\\\uDF43\\\\uDF50-\\\\uDF59\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50-\\\\uDF7E\\\\uDF8F-\\\\uDF9F\\\\uDFE0]|\\\\uD821[\\\\uDC00-\\\\uDFEC]|\\\\uD822[\\\\uDC00-\\\\uDEF2]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99\\\\uDC9D\\\\uDC9E]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB\\\\uDFCE-\\\\uDFFF]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDCD0-\\\\uDCD6\\\\uDD00-\\\\uDD4A\\\\uDD50-\\\\uDD59]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uDB40[\\\\uDD00-\\\\uDDEF])';\n\nexport {UnicodeIDStart, UnicodeIDContinue};\n","import setGlobalVars from './setGlobalVars';\nimport nodeWebSQL from './nodeWebSQL'; // Importing \"websql\" would not gain us SQLite config ability\nimport CFG from './CFG';\nimport * as UnicodeIdentifiers from './UnicodeIdentifiers';\n\nCFG.win = {openDatabase: nodeWebSQL};\n\nconst __setGlobalVars = function (idb, initialConfig) {\n const obj = setGlobalVars(idb, initialConfig);\n obj.shimIndexedDB.__setUnicodeIdentifiers(UnicodeIdentifiers);\n return obj;\n};\n\nexport default __setGlobalVars;\n","import customOpenDatabase from 'websql/custom';\nimport SQLiteDatabase from 'websql/lib/sqlite/SQLiteDatabase';\nimport CFG from './CFG';\n\nfunction wrappedSQLiteDatabase (name) {\n const db = new SQLiteDatabase(name);\n if (CFG.sqlBusyTimeout) {\n db._db.configure('busyTimeout', CFG.sqlBusyTimeout); // Default is 1000\n }\n if (CFG.sqlTrace) {\n db._db.configure('trace', CFG.sqlTrace);\n }\n if (CFG.sqlProfile) {\n db._db.configure('profile', CFG.sqlProfile);\n }\n return db;\n}\n\nconst nodeWebSQL = customOpenDatabase(wrappedSQLiteDatabase);\nexport default nodeWebSQL;\n","/* globals self */\nimport 'babel-polyfill'; // `Object.assign` including within `EventTarget`, generator functions, `Array.from`, etc.; see https://babeljs.io/docs/usage/polyfill/\nimport shimIDBVersionChangeEvent from './IDBVersionChangeEvent';\nimport {IDBCursor as shimIDBCursor, IDBCursorWithValue as shimIDBCursorWithValue} from './IDBCursor';\nimport {IDBRequest as shimIDBRequest, IDBOpenDBRequest as shimIDBOpenDBRequest} from './IDBRequest';\nimport {ShimDOMException} from './DOMException';\nimport {shimIndexedDB} from './IDBFactory';\nimport shimIDBKeyRange from './IDBKeyRange';\nimport shimIDBObjectStore from './IDBObjectStore';\nimport shimIDBIndex from './IDBIndex';\nimport shimIDBTransaction from './IDBTransaction';\nimport shimIDBDatabase from './IDBDatabase';\nimport CFG from './CFG';\n\nconst glob = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : self);\nglob._babelPolyfill = false; // http://stackoverflow.com/questions/31282702/conflicting-use-of-babel-register\n\nfunction setConfig (prop, val) {\n if (prop && typeof prop === 'object') {\n for (const p in prop) {\n setConfig(p, prop[p]);\n }\n return;\n }\n if (!(prop in CFG)) {\n throw new Error(prop + ' is not a valid configuration property');\n }\n CFG[prop] = val;\n}\n\nfunction setGlobalVars (idb, initialConfig) {\n if (initialConfig) {\n setConfig(initialConfig);\n }\n const IDB = idb || (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : (typeof global !== 'undefined' ? global : {})));\n function shim (name, value, propDesc) {\n if (!propDesc || !Object.defineProperty) {\n try {\n // Try setting the property. This will fail if the property is read-only.\n IDB[name] = value;\n } catch (e) {\n console.log(e);\n }\n }\n if (IDB[name] !== value && Object.defineProperty) {\n // Setting a read-only property failed, so try re-defining the property\n try {\n const desc = propDesc || {};\n if (!('value' in desc)) {\n desc.get = function () {\n return value;\n };\n }\n Object.defineProperty(IDB, name, desc);\n } catch (e) {\n // With `indexedDB`, PhantomJS fails here and below but\n // not above, while Chrome is reverse (and Firefox doesn't\n // get here since no WebSQL to use for shimming)\n }\n }\n if (IDB[name] !== value) {\n typeof console !== 'undefined' && console.warn && console.warn('Unable to shim ' + name);\n }\n }\n shim('shimIndexedDB', shimIndexedDB, {\n enumerable: false,\n configurable: true\n });\n if (IDB.shimIndexedDB) {\n IDB.shimIndexedDB.__useShim = function () {\n function setNonIDBGlobals (prefix = '') {\n shim(prefix + 'DOMException', IDB.indexedDB.modules.ShimDOMException);\n shim(prefix + 'DOMStringList', IDB.indexedDB.modules.ShimDOMStringList, {\n enumerable: false,\n configurable: true,\n writable: true,\n value: IDB.indexedDB.modules.ShimDOMStringList\n });\n shim(prefix + 'Event', IDB.indexedDB.modules.ShimEvent, {\n configurable: true,\n writable: true,\n value: IDB.indexedDB.modules.ShimEvent,\n enumerable: false\n });\n shim(prefix + 'CustomEvent', IDB.indexedDB.modules.ShimCustomEvent, {\n configurable: true,\n writable: true,\n value: IDB.indexedDB.modules.ShimCustomEvent,\n enumerable: false\n });\n shim(prefix + 'EventTarget', IDB.indexedDB.modules.ShimEventTarget, {\n configurable: true,\n writable: true,\n value: IDB.indexedDB.modules.ShimEventTarget,\n enumerable: false\n });\n }\n const shimIDBFactory = IDB.shimIndexedDB.modules.IDBFactory;\n if (CFG.win.openDatabase !== undefined) {\n shimIndexedDB.__openDatabase = CFG.win.openDatabase.bind(CFG.win); // We cache here in case the function is overwritten later as by the IndexedDB support promises tests\n // Polyfill ALL of IndexedDB, using WebSQL\n if (CFG.fullIDLSupport) {\n // Slow per MDN so off by default! Though apparently needed for WebIDL: http://stackoverflow.com/questions/41927589/rationales-consequences-of-webidl-class-inheritance-requirements\n const ShimEvent = IDB.shimIndexedDB.modules.ShimEvent;\n const ShimEventTarget = IDB.shimIndexedDB.modules.ShimEventTarget;\n Object.setPrototypeOf(shimIDBDatabase, ShimEventTarget);\n Object.setPrototypeOf(shimIDBRequest, ShimEventTarget);\n Object.setPrototypeOf(shimIDBTransaction, ShimEventTarget);\n Object.setPrototypeOf(shimIDBVersionChangeEvent, ShimEvent);\n Object.setPrototypeOf(ShimDOMException, Error);\n Object.setPrototypeOf(ShimDOMException.prototype, Error.prototype);\n }\n [\n ['indexedDB', shimIndexedDB],\n ['IDBFactory', shimIDBFactory],\n ['IDBDatabase', shimIDBDatabase],\n ['IDBObjectStore', shimIDBObjectStore],\n ['IDBIndex', shimIDBIndex],\n ['IDBTransaction', shimIDBTransaction],\n ['IDBCursor', shimIDBCursor],\n ['IDBCursorWithValue', shimIDBCursorWithValue],\n ['IDBKeyRange', shimIDBKeyRange],\n ['IDBRequest', shimIDBRequest],\n ['IDBOpenDBRequest', shimIDBOpenDBRequest],\n ['IDBVersionChangeEvent', shimIDBVersionChangeEvent]\n ].forEach(([prop, obj]) => {\n shim(prop, obj, {\n enumerable: false,\n configurable: true\n });\n });\n if (IDB.indexedDB && IDB.indexedDB.modules) {\n if (CFG.addNonIDBGlobals) {\n // As `DOMStringList` exists per IDL (and Chrome) in the global\n // thread (but not in workers), we prefix the name to avoid\n // shadowing or conflicts\n setNonIDBGlobals('Shim');\n }\n if (CFG.replaceNonIDBGlobals) {\n setNonIDBGlobals();\n }\n }\n IDB.shimIndexedDB.__setConnectionQueueOrigin();\n }\n };\n\n IDB.shimIndexedDB.__debug = function (val) {\n CFG.DEBUG = val;\n };\n IDB.shimIndexedDB.__setConfig = setConfig;\n IDB.shimIndexedDB.__getConfig = function (prop) {\n if (!(prop in CFG)) {\n throw new Error(prop + ' is not a valid configuration property');\n }\n return CFG[prop];\n };\n IDB.shimIndexedDB.__setUnicodeIdentifiers = function ({UnicodeIDStart, UnicodeIDContinue}) {\n setConfig({UnicodeIDStart, UnicodeIDContinue});\n };\n }\n\n // Workaround to prevent an error in Firefox\n if (!('indexedDB' in IDB) && typeof window !== 'undefined') { // 2nd condition avoids problems in Node\n IDB.indexedDB = IDB.indexedDB || IDB.webkitIndexedDB || IDB.mozIndexedDB || IDB.oIndexedDB || IDB.msIndexedDB;\n }\n\n // Detect browsers with known IndexedDb issues (e.g. Android pre-4.4)\n let poorIndexedDbSupport = false;\n if (typeof navigator !== 'undefined' && ( // Ignore Node or other environments\n (\n // Bad non-Chrome Android support\n (/Android (?:2|3|4\\.[0-3])/).test(navigator.userAgent) &&\n !navigator.userAgent.includes('Chrome')\n ) ||\n (\n // Bad non-Safari iOS9 support (see )\n (!navigator.userAgent.includes('Safari') || navigator.userAgent.includes('Chrome')) && // Exclude genuine Safari: http://stackoverflow.com/a/7768006/271577\n // Detect iOS: http://stackoverflow.com/questions/9038625/detect-if-device-is-ios/9039885#9039885\n // and detect version 9: http://stackoverflow.com/a/26363560/271577\n (/(iPad|iPhone|iPod).* os 9_/i).test(navigator.userAgent) &&\n !window.MSStream // But avoid IE11\n )\n )) {\n poorIndexedDbSupport = true;\n }\n if (!CFG.DEFAULT_DB_SIZE) {\n CFG.DEFAULT_DB_SIZE = (\n ( // Safari currently requires larger size: (We don't need a larger size for Node as node-websql doesn't use this info)\n // https://github.com/axemclion/IndexedDBShim/issues/41\n // https://github.com/axemclion/IndexedDBShim/issues/115\n typeof navigator !== 'undefined' &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n ) ? 25 : 4) * 1024 * 1024;\n }\n if ((!IDB.indexedDB || poorIndexedDbSupport) && CFG.win.openDatabase !== undefined) {\n IDB.shimIndexedDB.__useShim();\n } else {\n IDB.IDBDatabase = IDB.IDBDatabase || IDB.webkitIDBDatabase;\n IDB.IDBTransaction = IDB.IDBTransaction || IDB.webkitIDBTransaction || {};\n IDB.IDBCursor = IDB.IDBCursor || IDB.webkitIDBCursor;\n IDB.IDBKeyRange = IDB.IDBKeyRange || IDB.webkitIDBKeyRange;\n }\n return IDB;\n}\n\nexport default setGlobalVars;\n","import CFG from './CFG';\nimport expandsOnNFD from 'unicode-9.0.0/Binary_Property/Expands_On_NFD/regex';\n\nfunction escapeNameForSQLiteIdentifier (arg) {\n // http://stackoverflow.com/a/6701665/271577\n return '_' + // Prevent empty string\n arg.replace(/\\^/g, '^^') // Escape our escape\n // http://www.sqlite.org/src/tktview?name=57c971fc74\n .replace(/\\0/g, '^0')\n // We need to avoid identifiers being treated as duplicates based on SQLite's ASCII-only case-insensitive table and column names\n // (For SQL in general, however, see http://stackoverflow.com/a/17215009/271577\n // See also https://www.sqlite.org/faq.html#q18 re: Unicode (non-ASCII) case-insensitive not working\n .replace(/([A-Z])/g, '^$1')\n // http://stackoverflow.com/a/6701665/271577\n .replace(/([\\uD800-\\uDBFF])(?![\\uDC00-\\uDFFF])|(^|[^\\uD800-\\uDBFF])([\\uDC00-\\uDFFF])/g, function (_, unmatchedHighSurrogate, unmatchedLowSurrogate) {\n if (unmatchedHighSurrogate) {\n return '^2' + unmatchedHighSurrogate + '\\uDC00'; // Add a low surrogate for compatibility with `node-sqlite3`: http://bugs.python.org/issue12569 and http://stackoverflow.com/a/6701665/271577\n }\n return '^3\\uD800' + unmatchedLowSurrogate;\n });\n}\n\nfunction escapeSQLiteStatement (arg) {\n return arg.replace(/\\^/g, '^^').replace(/\\0/g, '^0');\n}\nfunction unescapeSQLiteResponse (arg) {\n return arg.replace(/\\^0/g, '\\0').replace(/\\^\\^/g, '^');\n}\n\nfunction sqlEscape (arg) {\n // https://www.sqlite.org/lang_keywords.html\n // http://stackoverflow.com/a/6701665/271577\n // There is no need to escape ', `, or [], as\n // we should always be within double quotes\n // NUL should have already been stripped\n return arg.replace(/\"/g, '\"\"');\n}\n\nfunction sqlQuote (arg) {\n return '\"' + sqlEscape(arg) + '\"';\n}\n\nfunction escapeDatabaseNameForSQLAndFiles (db) {\n if (CFG.escapeDatabaseName) {\n // We at least ensure NUL is escaped by default, but we need to still\n // handle empty string and possibly also length (potentially\n // throwing if too long), escaping casing (including Unicode?),\n // and escaping special characters depending on file system\n return CFG.escapeDatabaseName(escapeSQLiteStatement(db));\n }\n db = 'D' + escapeNameForSQLiteIdentifier(db);\n if (CFG.escapeNFDForDatabaseNames !== false) {\n // ES6 copying of regex with different flags\n db = db.replace(new RegExp(expandsOnNFD, 'g'), function (expandable) {\n return '^4' + expandable.codePointAt().toString(16).padStart(6, '0');\n });\n }\n if (CFG.databaseCharacterEscapeList !== false) {\n db = db.replace(\n (CFG.databaseCharacterEscapeList\n ? new RegExp(CFG.databaseCharacterEscapeList, 'g')\n : /[\\u0000-\\u001F\\u007F\"*/:<>?\\\\|]/g),\n function (n0) {\n return '^1' + n0.charCodeAt().toString(16).padStart(2, '0');\n }\n );\n }\n if (CFG.databaseNameLengthLimit !== false &&\n db.length >= ((CFG.databaseNameLengthLimit || 254) - (CFG.addSQLiteExtension !== false ? 7 /* '.sqlite'.length */ : 0))) {\n throw new Error(\n 'Unexpectedly long database name supplied; length limit required for Node compatibility; passed length: ' +\n db.length + '; length limit setting: ' + (CFG.databaseNameLengthLimit || 254) + '.');\n }\n return db + (CFG.addSQLiteExtension !== false ? '.sqlite' : ''); // Shouldn't have quoting (do we even need NUL/case escaping here?)\n}\n\n// Not in use internally but supplied for convenience\nfunction unescapeDatabaseNameForSQLAndFiles (db) {\n if (CFG.unescapeDatabaseName) {\n // We at least ensure NUL is unescaped by default, but we need to still\n // handle empty string and possibly also length (potentially\n // throwing if too long), unescaping casing (including Unicode?),\n // and unescaping special characters depending on file system\n return CFG.unescapeDatabaseName(unescapeSQLiteResponse(db));\n }\n\n return db.slice(2) // D_\n // CFG.databaseCharacterEscapeList\n .replace(/(\\^+)1([0-9a-f]{2})/g, (_, esc, hex) => esc.length % 2 ? String.fromCharCode(parseInt(hex, 16)) : _)\n // CFG.escapeNFDForDatabaseNames\n .replace(/(\\^+)4([0-9a-f]{6})/g, (_, esc, hex) => esc.length % 2 ? String.fromCodePoint(parseInt(hex, 16)) : _)\n // escapeNameForSQLiteIdentifier\n .replace(/(\\^+)3\\uD800([\\uDC00-\\uDFFF])/g, (_, esc, lowSurr) => esc.length % 2 ? lowSurr : _)\n .replace(/(\\^+)2([\\uD800-\\uDBFF])\\uDC00/g, (_, esc, highSurr) => esc.length % 2 ? highSurr : _)\n .replace(/(\\^+)([A-Z])/g, (_, esc, upperCase) => esc.length % 2 ? upperCase : _)\n .replace(/(\\^+)0/g, (_, esc) => esc.length % 2 ? '\\0' : _)\n .replace(/\\^\\^/g, '^');\n}\n\nfunction escapeStoreNameForSQL (store) {\n return sqlQuote('S' + escapeNameForSQLiteIdentifier(store));\n}\n\nfunction escapeIndexNameForSQL (index) {\n return sqlQuote('I' + escapeNameForSQLiteIdentifier(index));\n}\n\nfunction escapeIndexNameForSQLKeyColumn (index) {\n return 'I' + escapeNameForSQLiteIdentifier(index);\n}\n\nfunction sqlLIKEEscape (str) {\n // https://www.sqlite.org/lang_expr.html#like\n return sqlEscape(str).replace(/\\^/g, '^^');\n}\n\n// Babel doesn't seem to provide a means of using the `instanceof` operator with Symbol.hasInstance (yet?)\nfunction instanceOf (obj, Clss) {\n return Clss[Symbol.hasInstance](obj);\n}\n\nfunction isObj (obj) {\n return obj && typeof obj === 'object';\n}\n\nfunction isDate (obj) {\n return isObj(obj) && typeof obj.getDate === 'function';\n}\n\nfunction isBlob (obj) {\n return isObj(obj) && typeof obj.size === 'number' && typeof obj.slice === 'function' && !('lastModified' in obj);\n}\n\nfunction isRegExp (obj) {\n return isObj(obj) && typeof obj.flags === 'string' && typeof obj.exec === 'function';\n}\n\nfunction isFile (obj) {\n return isObj(obj) && typeof obj.name === 'string' && typeof obj.slice === 'function' && 'lastModified' in obj;\n}\n\nfunction isBinary (obj) {\n return isObj(obj) && typeof obj.byteLength === 'number' && (\n typeof obj.slice === 'function' || // `TypedArray` (view on buffer) or `ArrayBuffer`\n typeof obj.getFloat64 === 'function' // `DataView` (view on buffer)\n );\n}\n\nfunction isIterable (obj) {\n return isObj(obj) && typeof obj[Symbol.iterator] === 'function';\n}\n\nfunction defineReadonlyProperties (obj, props) {\n props = typeof props === 'string' ? [props] : props;\n props.forEach(function (prop) {\n Object.defineProperty(obj, '__' + prop, {\n enumerable: false,\n configurable: false,\n writable: true\n });\n Object.defineProperty(obj, prop, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this['__' + prop];\n }\n });\n });\n}\n\nconst HexDigit = '[0-9a-fA-F]';\n// The commented out line below is technically the grammar, with a SyntaxError\n// to occur if larger than U+10FFFF, but we will prevent the error by\n// establishing the limit in regular expressions\n// const HexDigits = HexDigit + HexDigit + '*';\nconst HexDigits = '0*(?:' + HexDigit + '{1,5}|10' + HexDigit + '{4})*';\nconst UnicodeEscapeSequence = '(?:u' + HexDigit + '{4}|u{' + HexDigits + '})';\n\nfunction isIdentifier (item) {\n // For load-time and run-time performance, we don't provide the complete regular\n // expression for identifiers, but these can be passed in, using the expressions\n // found at https://gist.github.com/brettz9/b4cd6821d990daa023b2e604de371407\n // ID_Start (includes Other_ID_Start)\n const UnicodeIDStart = CFG.UnicodeIDStart || '[$A-Z_a-z]';\n // ID_Continue (includes Other_ID_Continue)\n const UnicodeIDContinue = CFG.UnicodeIDContinue || '[$0-9A-Z_a-z]';\n const IdentifierStart = '(?:' + UnicodeIDStart + '|[$_]|\\\\\\\\' + UnicodeEscapeSequence + ')';\n const IdentifierPart = '(?:' + UnicodeIDContinue + '|[$_]|\\\\\\\\' + UnicodeEscapeSequence + '|\\\\u200C|\\\\u200D)';\n return (new RegExp('^' + IdentifierStart + IdentifierPart + '*$')).test(item);\n}\n\nfunction isValidKeyPathString (keyPathString) {\n return typeof keyPathString === 'string' &&\n (keyPathString === '' || isIdentifier(keyPathString) || keyPathString.split('.').every(isIdentifier));\n}\n\nfunction isValidKeyPath (keyPath) {\n return isValidKeyPathString(keyPath) || (\n Array.isArray(keyPath) && keyPath.length &&\n // Convert array from sparse to dense http://www.2ality.com/2012/06/dense-arrays.html\n Array.apply(null, keyPath).every(function (kpp) {\n // See also https://heycam.github.io/webidl/#idl-DOMString\n return isValidKeyPathString(kpp); // Should already be converted to string by here\n })\n );\n}\n\nfunction enforceRange (number, type) {\n number = Math.floor(Number(number));\n let max, min;\n switch (type) {\n case 'unsigned long long': {\n max = 0x1FFFFFFFFFFFFF; // 2^53 - 1\n min = 0;\n break;\n }\n case 'unsigned long': {\n max = 0xFFFFFFFF; // 2^32 - 1\n min = 0;\n break;\n }\n default:\n throw new Error('Unrecognized type supplied to enforceRange');\n }\n if (isNaN(number) || !isFinite(number) ||\n number > max ||\n number < min) {\n throw new TypeError('Invalid range: ' + number);\n }\n return number;\n}\n\nfunction convertToDOMString (v, treatNullAs) {\n return v === null && treatNullAs ? '' : ToString(v);\n}\n\nfunction ToString (o) { // Todo: See `es-abstract/es7`\n return '' + o; // `String()` will not throw with Symbols\n}\n\nfunction convertToSequenceDOMString (val) {\n // Per , converting to a sequence works with iterables\n if (isIterable(val)) { // We don't want `Array.from` to convert primitives\n // Per , converting to a `DOMString` to be via `ToString`: https://tc39.github.io/ecma262/#sec-tostring\n return Array.from(val).map(ToString);\n }\n return val;\n}\n\nexport {escapeSQLiteStatement, unescapeSQLiteResponse,\n escapeDatabaseNameForSQLAndFiles, unescapeDatabaseNameForSQLAndFiles,\n escapeStoreNameForSQL, escapeIndexNameForSQL, escapeIndexNameForSQLKeyColumn,\n sqlLIKEEscape, sqlQuote,\n instanceOf,\n isObj, isDate, isBlob, isRegExp, isFile, isBinary, isIterable,\n defineReadonlyProperties, isValidKeyPath, enforceRange, convertToDOMString, convertToSequenceDOMString};\n"]} >>>>>>> (WAITING ON OTHER PRs/FINALIZING BEFORE PUBLISHING)