{"version":3,"file":"j-utils.modern.mjs","sources":["../src/modules/util.ts","../src/modules/warnings.ts","../src/modules/base64ToArrayBuffer/index.ts","../src/modules/nextEvent/index.ts","../src/modules/arrayBufferToBase64/index.ts","../src/modules/retry/index.ts","../src/modules/Object/keys.ts","../src/modules/urlencode/index.ts","../src/modules/Object/assign.ts","../src/modules/Element/append.ts","../src/modules/loadCSS/index.ts","../src/modules/es6/loose/constants.ts","../src/modules/es6/loose/Map/_Symbol.ts","../src/modules/es6/loose/Map/proto.ts","../src/shared.ts","../src/modules/es6/loose/Map/index.ts","../src/modules/es6/loose/Set/_Symbol.ts","../src/modules/es6/loose/Set/index.ts","../src/modules/es6/loose/Set/proto.ts","../src/modules/es6/loose/Weak-shared.ts","../src/modules/es6/loose/WeakMap/index.ts","../src/modules/es6/loose/WeakSet/index.ts","../src/modules/Object/entries.ts","../src/modules/Object/values.ts","../src/modules/Object/fromEntries.ts","../src/modules/Object/is.ts","../src/modules/Element/after.ts","../src/modules/Element/prepend.ts","../src/modules/Pipes/index.ts","../src/modules/cache/index.ts","../src/modules/debounce/index.ts","../src/modules/blobToArrayBuffer/index.ts"],"sourcesContent":["declare var ___this: typeof globalThis;\n\nexport function patchGlobalThis(): typeof globalThis {\n  /** no idea how to write this function in sane typescript */\n  if (typeof globalThis === \"object\") return globalThis;\n  Object.defineProperty(Object.prototype, \"___this\", {\n    get: function () {\n      return this;\n    },\n    configurable: true,\n  });\n\n  (___this as any).globalThis = ___this;\n  const r: typeof globalThis = ___this;\n  delete (Object.prototype as any).___this;\n  return r;\n}\nconst global = patchGlobalThis();\n\nexport const _Sym = global.Symbol || {};\n\nexport const has = (a: string | number | symbol, b: object) => a in b;\n\nexport const emptyObj = {};\nexport const emptyArr = [];\n\nexport const isIterable = (k: any) => k && !!k[_Sym.iterator];\n\nexport const _Object: ObjectConstructor =\n  emptyObj.constructor as ObjectConstructor;\n\nexport const hasOwnProp = emptyObj.hasOwnProperty;\n\nexport function _generateDocFrag(\n  args: (Node | (string | number | boolean | symbol))[]\n) {\n  const frag = document.createDocumentFragment();\n  args.forEach((arg) =>\n    frag.appendChild(\n      arg instanceof Node ? arg : document.createTextNode(String(arg))\n    )\n  );\n  return frag;\n}\n\nexport const domContext =\n  typeof window !== \"undefined\" &&\n  ((window.navigator && !!window.navigator.userAgent) ||\n    (window.document && !!document.createElement));\n\nexport const workerContext =\n  typeof self !== \"undefined\" &&\n  !!self.postMessage &&\n  typeof (global as any as {importScripts: (src: string) => any})\n    .importScripts === \"function\";\nexport const isBrowser = domContext || workerContext;\n","import { isBrowser } from \"./util\";\n// import { isBrowser } from \"./util.js\";\nexport const browserOnlyWarning = {\n  warn(msg?: string) {\n    if (!isBrowser) {\n      return console.warn(\n        msg || \"Some functionality may only work in a browser. Expect errors\"\n      );\n    }\n  },\n  _throw(msg?: string) {\n    if (!isBrowser)\n      throw new Error(\n        msg || \"A web browser is required for this module to run!\"\n      );\n  }\n};\n","import { browserOnlyWarning } from \"../warnings.js\";\n/**\n * base64 string to Array Buffer using Fetch API\n *\n * Only works in Browser environment\n *\n * @param b64 {string} string to get as ArrayBuffer\n */\nexport default function base64ToArrayBuffer(b64: string): Promise<ArrayBuffer> {\n  browserOnlyWarning._throw();\n  const data = fetch(\"data:;base64,\" + b64);\n  return data.then(x => x.arrayBuffer());\n}\n","export default function nextEvent(\n  obj: EventTarget,\n  event: string\n): Promise<any> {\n  return new Promise(res => obj.addEventListener(event, res, { once: true }));\n}\n","import { browserOnlyWarning } from \"../warnings.js\";\n/**\n * ArrayBuffer to base64 implementation using FileReader API\n *\n * Naturally, Only works in browser environment\n *\n * @param buffer {ArrayBuffer} ArrayBuffer to convert into base64\n * @returns {string} base64 encoded string\n */\nexport default function arrayBufferToBase64(\n  buffer: ArrayBuffer\n): Promise<string> {\n  browserOnlyWarning._throw();\n  return new Promise((resolve, _) => {\n    const blob = new Blob([buffer], {\n      type: \"application/octet-binary\"\n    });\n    const reader = new FileReader();\n    reader.onload = evt => {\n      reader.onload = null;\n      if (evt == null || evt.target == null) return null;\n      const dataurl = evt.target.result as string;\n      resolve(dataurl.substr(dataurl.indexOf(\",\") + 1));\n    };\n    reader.readAsDataURL(blob);\n  });\n}\n","function wait(m: number): Promise<void> {\n  return new Promise(resolve => setTimeout(resolve, m));\n}\nexport default function retry<T>(\n  fn: (...a: any[]) => T,\n  max: number = 3,\n  waitInMS?: number,\n  bind?: any\n): () => Promise<T> {\n  return async function() {\n    let tries = 0;\n    while (tries < max) {\n      try {\n        return await Promise.resolve(fn.apply(bind, [].slice.call(arguments)));\n      } catch (e) {\n        tries++;\n        if (waitInMS) await wait(waitInMS);\n      }\n    }\n    throw new Error(\n      \"function \" + (fn.name || \"\") + \" failed \" + max + \" times\"\n    );\n  };\n}\n","import { hasOwnProp, _Object } from \"../util.js\";\nexport default \"keys\" in _Object\n  ? _Object.keys\n  : (function Object_keys(a: object): string[] {\n      const arr = [];\n      for (const i in a) hasOwnProp.call(a, i) && arr.push(i);\n      return arr;\n    } as ObjectConstructor[\"keys\"]);\n","import { patchGlobalThis } from \"../util.js\";\nimport keys from \"../Object/keys.js\";\npatchGlobalThis();\nexport default function urlencode(a: { [k: string]: string }): string {\n  if (globalThis.URLSearchParams) {\n    return new URLSearchParams(a).toString();\n  } else {\n    return (\n      \"\" +\n      keys(a)\n        .map(function(b) {\n          return encodeURIComponent(b) + \"=\" + encodeURIComponent(a[b]);\n        })\n        .join(\"&\")\n    );\n  }\n}\n","import { _Object, hasOwnProp } from \"../util.js\";\nexport default \"assign\" in _Object\n  ? _Object.assign\n  : (function Object_assign(target: import(\"./ot\").default) {\n      for (let i = 1; i < arguments.length; i++) {\n        const source = arguments[i];\n        console.log(source);\n        for (const key in source) {\n          if (hasOwnProp.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n      return target;\n    } as ObjectConstructor[\"assign\"]);\n","import { browserOnlyWarning } from \"../warnings.js\";\nimport { _generateDocFrag, emptyArr, has } from \"../util.js\";\nexport default function Element_append(element: Element) {\n  browserOnlyWarning._throw();\n  if (!element) throw new Error(\"cannot append elements\");\n  const args = emptyArr.slice.call(arguments, 1);\n  if (has(\"append\", element)) {\n    element.append.apply(element, args);\n  }\n  const frag = _generateDocFrag(args);\n  element.appendChild(frag);\n}\n","import { browserOnlyWarning } from \"../warnings.js\";\nimport assign from \"../Object/assign.js\";\nimport append from \"../Element/append.js\";\nexport default function loadCSS(url: string): Promise<void> {\n  browserOnlyWarning._throw();\n  const link: HTMLLinkElement = assign(document.createElement(\"link\"), {\n    rel: \"stylesheet\",\n    href: url\n  });\n  return new Promise((res, rej) => {\n    const opt = { once: true };\n    link.addEventListener(\"load\", () => res(), opt);\n    link.addEventListener(\"error\", () => rej(), opt);\n    (append as any)(document.head, link);\n  });\n}\n","import { patchGlobalThis as patch, has } from \"../../util.js\";\nlet _global = patch();\nexport const HAS_MAP = has(\"Map\", _global);\nexport const HAS_SET = has(\"Set\", _global);\nexport const HAS_WEAK = has(\"WeakMap\", _global) && has(\"WeakSet\", _global);\nexport const m = \"__@@map\";\nexport const s = \"__@@set\";\nconst _isNaN = (k: any) => k !== k;\nexport const _EqCheck = (x: any, y: any) => x === y || (_isNaN(x) && _isNaN(y));\nexport const normalizeNegativeZero = (k: any) => (k === 0 ? 0 : k);\nexport const _mapKey = \"__@@mkey\";\nexport const _mapVal = \"__@mVal\";\n","import { m } from \"../constants.js\";\nlet entries: () => IterableIterator<[any, any]>;\nlet values: () => IterableIterator<any>;\nlet keys: () => IterableIterator<any>;\ntype FakeMap = import(\"./index\").default<any, any>;\nif (typeof Symbol !== \"undefined\") {\n  function mapEntriesIterator(map: FakeMap): IterableIterator<[any, any]> {\n    const _ = map[m];\n    return _[Symbol.iterator]();\n  }\n  entries = function entries(this: FakeMap) {\n    return mapEntriesIterator(this);\n  };\n  function mapKeyValIterator(map: FakeMap, isKey: boolean) {\n    const _ = map[m];\n    let i = 0;\n    const len = _.length;\n    const kv = isKey ? 0 : 1;\n    const obj: IterableIterator<[any, any]> = {\n      [Symbol.iterator]: function() {\n        return this;\n      },\n      next: function() {\n        if (i < len) {\n          return { value: _[i++][kv], done: false };\n        }\n        return { value: void 0, done: true };\n      }\n    };\n    return obj;\n  }\n  values = function values(this: FakeMap) {\n    return mapKeyValIterator(this, false);\n  };\n  keys = function keys(this: FakeMap) {\n    return mapKeyValIterator(this, true);\n  };\n} else {\n  entries = keys = values = function() {\n    console.warn(\"no symbol support\");\n  } as never;\n}\nexport default { keys, values, entries };\n","import { m, _EqCheck as is, normalizeNegativeZero } from \"../constants.js\";\nimport symbolProps from \"./_Symbol.js\";\nimport assign from \"../../../Object/assign.js\";\nfunction __i_getMapArr(that: import(\"./index\").default<any, any>, k: any) {\n  const arr = that[m];\n  const len = arr.length;\n  for (let i = 0; i < len; i++) {\n    const x = arr[i];\n    if (is(x[0], k)) return x;\n  }\n  return null;\n}\nexport default function setPrototypeProps(\n  FakeMap: import(\"./index\").FakeMapConstructor\n) {\n  FakeMap.prototype.set = function set(k, v) {\n    const prevArr = __i_getMapArr(this, k);\n    if (prevArr) {\n      prevArr[1] = v;\n    } else {\n      this[m].push([normalizeNegativeZero(k), v]);\n    }\n    return this;\n  };\n  FakeMap.prototype.has = function has(key) {\n    return !!__i_getMapArr(this, key);\n  };\n  FakeMap.prototype.delete = function del(k) {\n    let had: boolean = false;\n    this[m] = this[m].filter(x => {\n      const c = !is(x[0], k);\n      if (!c) had = true;\n      return c;\n    });\n    return had;\n  };\n  FakeMap.prototype.get = function get(key) {\n    const arr = __i_getMapArr(this, key);\n    return arr ? arr[1] : undefined;\n  };\n  FakeMap.prototype.forEach = function forEach(cb, that) {\n    const arr = this[m];\n    const len = arr.length;\n    for (let i = 0; i < len; i++) {\n      const val = arr[i];\n      const a = val[1],\n        b = val[0],\n        c = this;\n      that ? cb.call(that, a, b, c) : cb(a, b, c);\n    }\n  };\n\n  FakeMap.prototype.clear = function clear() {\n    return void (this[m].length = 0);\n  };\n  Object.defineProperty(FakeMap.prototype, \"size\", {\n    enumerable: false,\n    configurable: true,\n    get: function(this: import(\"./index\").default<any, any>) {\n      return this[m].length;\n    }\n  });\n  if (typeof Symbol !== \"undefined\") {\n    FakeMap.prototype[Symbol.iterator] = symbolProps.entries;\n    FakeMap.prototype[Symbol.toStringTag] = \"Map\";\n  }\n  assign(FakeMap.prototype, symbolProps);\n}\n","function _instanceof(left: any, right: Function) {\n  if (\n    right != null &&\n    typeof Symbol !== \"undefined\" &&\n    right[Symbol.hasInstance]\n  ) {\n    return !!right[Symbol.hasInstance](left);\n  } else {\n    return left instanceof right;\n  }\n}\n\n// light house thinks we're pollyfilling a class\nconst err = \"noitcnuf a sa ssalc a llac tonnaC\".split(\"\").reverse().join(\"\");\nexport function _classCallCheck(instance: any, Constructor: Function) {\n  if (!_instanceof(instance, Constructor)) {\n    throw new TypeError();\n  }\n}\n","import { HAS_MAP, m } from \"../constants.js\";\nimport setup from \"./proto.js\";\nimport { isIterable } from \"../../../util.js\";\nimport { _classCallCheck } from \"../../../../shared.js\";\nfunction generateMap(fm: FakeMap<any, any>, it: Iterable<any> | undefined) {\n  if (it == null) return;\n  if (!isIterable(it))\n    throw new Error(\"value:\" + String(it) + \" is not iterable\");\n  const len = (it as Array<any>).length;\n  for (let i = 0; i < len; i++) {\n    const k = (it as Array<any>)[i];\n    if (!k || k.length !== 2) throw new Error(\"invalid arg\");\n    fm.set(k[0], k[1]);\n  }\n}\ninterface FakeMap<K, V> {\n  clear(): void;\n  delete(key: K): boolean;\n  forEach(\n    callbackfn: (value: V, key: K, map: FakeMap<K, V>) => void,\n    thisArg?: any\n  ): void;\n  get(key: K): V | undefined;\n  has(key: K): boolean;\n  set(key: K, value: V): this;\n  readonly size: number;\n  [m]: Array<[K, V]>;\n  [Symbol.toStringTag]: string;\n  [Symbol.iterator](): IterableIterator<[K, V]>;\n  values(): IterableIterator<V>;\n  keys(): IterableIterator<K>;\n  entries(): IterableIterator<[K, V]>;\n}\n\nexport interface FakeMapConstructor {\n  new (): FakeMap<any, any>;\n  new <K, V>(entries?: ReadonlyArray<readonly [K, V]> | null): FakeMap<K, V>;\n  readonly prototype: FakeMap<any, any>;\n  [Symbol.species]: FakeMapConstructor;\n}\n\n/**\n * Map implementation\n *\n * This Implementation uses One single array to store keys and values in their own arrays\n * Key index - 0\n * Value index - 1\n *\n * we could have used 2 separate Arrays for storing keys and values in matching indices\n * @TODO do a benchmark\n */\nconst FakeMap = (function FakeMap<K, V>(\n  this: FakeMap<K, V>,\n  iterable?: Iterable<[K, V]>,\n  forceUseCustomImplementation?: boolean\n): FakeMap<K, V> | Map<K, V> {\n  _classCallCheck(this, FakeMap);\n  if (!forceUseCustomImplementation && HAS_MAP)\n    return new Map(iterable as Iterable<[K, V]>);\n  this[m] = [];\n  generateMap(this, iterable);\n  return this;\n} as any) as FakeMapConstructor;\nsetup(FakeMap);\nFakeMap[Symbol.species] = FakeMap;\nexport default FakeMap;\n","import { s } from \"../constants.js\";\nlet entries: () => IterableIterator<[any, any]>,\n  values: () => IterableIterator<any>,\n  keys: () => IterableIterator<any>;\ntype FakeSet = import(\"./index\").default<any>;\nif (typeof Symbol !== \"undefined\") {\n  entries = function entries(this: FakeSet): IterableIterator<any> {\n    return setKeyValIterator(this, true);\n  };\n  function setKeyValIterator(set: FakeSet, isDup: boolean) {\n    const _ = set[s];\n    let i = 0;\n    const len = _.length;\n    const obj: IterableIterator<any> = {\n      [Symbol.iterator]: function() {\n        return this;\n      },\n      next: function() {\n        if (i < len) {\n          const v = _[i++];\n          return { value: isDup ? [v, v] : v, done: false };\n        }\n        return { value: void 0, done: true };\n      }\n    };\n    return obj;\n  }\n  values = function values(this: FakeSet) {\n    return setKeyValIterator(this, false);\n  };\n  keys = function keys(this: FakeSet) {\n    return setKeyValIterator(this, false);\n  };\n} else {\n  entries = keys = values = function() {\n    console.warn(\"no symbol support\");\n  } as never;\n}\nexport default { keys, values, entries };\n","import { HAS_SET, s } from \"../constants.js\";\nimport setup from \"./proto.js\";\nimport { isIterable } from \"../../../util.js\";\nimport { _classCallCheck } from \"../../../../shared.js\";\nfunction generateSet(fs: FakeSet<any>, it: Iterable<any> | undefined) {\n  if (it == null) return;\n  if (!isIterable(it))\n    throw new Error(\"value:\" + String(it) + \" is not iterable\");\n  const len = (it as Array<any>).length;\n  for (let i = 0; i < len; i++) {\n    const k = (it as Array<any>)[i];\n    fs.add(k);\n  }\n}\ninterface FakeSet<T> {\n  add(value: T): this;\n  clear(): void;\n  delete(value: T): boolean;\n  forEach(\n    callbackfn: (value: T, value2: T, set: FakeSet<T>) => void,\n    thisArg?: any\n  ): void;\n  has(value: T): boolean;\n  readonly size: number;\n  [s]: Array<T>;\n  [Symbol.toStringTag]: string;\n  [Symbol.iterator](): IterableIterator<T>;\n  entries(): IterableIterator<[T, T]>;\n  keys(): IterableIterator<T>;\n  values(): IterableIterator<T>;\n}\n\nexport interface FakeSetConstructor {\n  new <T = any>(values?: ReadonlyArray<T> | null): FakeSet<T>;\n  readonly prototype: FakeSet<any>;\n  [Symbol.species]: FakeSetConstructor;\n}\n\nconst FakeSet = (function FakeSet<T>(\n  this: FakeSet<T>,\n  iterable?: Iterable<T>,\n  forceUseCustomImplementation?: boolean\n) {\n  _classCallCheck(this, FakeSet);\n  if (!forceUseCustomImplementation && HAS_SET) return new Set(iterable);\n  this[s] = [];\n  generateSet(this, iterable);\n} as any) as FakeSetConstructor;\nsetup(FakeSet);\nFakeSet[Symbol.species] = FakeSet;\nexport default FakeSet;\n","import { s, _EqCheck as is, normalizeNegativeZero } from \"../constants.js\";\nimport symbolProps from \"./_Symbol.js\";\nimport assign from \"../../../Object/assign.js\";\n\nexport default function setPrototypeProps(\n  FakeSet: import(\"./index\").FakeSetConstructor\n) {\n  FakeSet.prototype.add = function set(k) {\n    if (!this.has(k)) this[s].push(normalizeNegativeZero(k));\n    return this;\n  };\n  FakeSet.prototype.has = function has(key) {\n    const arr = this[s];\n    const len = arr.length;\n    for (let i = 0; i < len; i++) {\n      const x = arr[i];\n      if (is(x, key)) return true;\n    }\n    return false;\n  };\n  FakeSet.prototype.delete = function del(k) {\n    let had: boolean = false;\n    this[s] = this[s].filter(x => {\n      const c = !is(x, k);\n      if (!c) had = true;\n      return c;\n    });\n    return had;\n  };\n  FakeSet.prototype.forEach = function forEach(cb, that) {\n    const arr = this[s];\n    const len = arr.length;\n    for (let i = 0; i < len; i++) {\n      const val = arr[i];\n      const a = val,\n        c = this;\n      that ? cb.call(that, a, a, c) : cb(a, a, c);\n    }\n  };\n\n  FakeSet.prototype.clear = function clear() {\n    return void (this[s].length = 0);\n  };\n  Object.defineProperty(FakeSet.prototype, \"size\", {\n    enumerable: false,\n    configurable: true,\n    get: function() {\n      return this[s].length;\n    }\n  });\n  if (typeof Symbol !== \"undefined\") {\n    FakeSet.prototype[Symbol.iterator] = symbolProps.values;\n    FakeSet.prototype[Symbol.toStringTag] = \"Set\";\n  }\n  assign(FakeSet.prototype, symbolProps);\n}\n","import { has, patchGlobalThis } from \"../../util.js\";\n\nimport keys from \"../../Object/keys.js\";\n\nconst e = {};\nconst gl = patchGlobalThis();\nexport function _getCryptoOrMathRandom(): string {\n  const hasCrypto = has(\"crypto\", gl);\n  let rv;\n  if (hasCrypto) {\n    rv = gl.crypto.getRandomValues;\n    if (rv) {\n      rv = rv.bind(crypto);\n      return rv(new Uint8Array(10)).join(\"-\");\n    }\n  }\n  return String(Math.random());\n}\n\nexport function initializeInternalKeyProp(obj: object, key: string): void {\n  if (key in obj) return;\n  Object.defineProperty(obj, key, { value: {}, enumerable: false });\n}\nexport type sealableMethod = \"freeze\" | \"seal\" | \"preventExtensions\";\nexport function _patchObjectSealingMethods(key: string) {\n  function _patch(m: sealableMethod) {\n    const method = Object[m];\n    if ((method as any).__patched === e) return;\n    let fn: <T>(obj: T[]) => <T>(obj: T[]) => any;\n    fn = (Object[m] as any) = function FakeMethod<T>(obj: T[]) {\n      initializeInternalKeyProp(obj, key);\n      return (method as typeof fn)(obj);\n    };\n    (fn as any).__patched = e;\n  }\n  [\"freeze\", \"seal\", \"preventExtensions\"].forEach((i) =>\n    _patch(i as sealableMethod)\n  );\n}\n\nexport function isObjectOrThrow(i: object): void {\n  if (Object(i) !== i) {\n    throw new Error(\"Invalid value\");\n  }\n}\nconst getOwnPropertyDescriptorsKey = [\"get\", \"Own\", \"PropertyDescriptors\"].join(\n  \"\"\n) as \"getOwnPropertyDescriptors\";\n\nconst getOwnPropertyNames = [\"get\", \"Own\", \"PropertyNames\"].join(\n  \"\"\n) as \"getOwnPropertyNames\";\nexport function _patchPropertyDescriptorMethods(key: string) {\n  if (has(getOwnPropertyDescriptorsKey, Object)) {\n    const oldOPD = Object[getOwnPropertyDescriptorsKey];\n    Object[getOwnPropertyDescriptorsKey] = function <T>(\n      o: T\n    ): { [P in keyof T]: TypedPropertyDescriptor<T[P]> } & {\n      [x: string]: PropertyDescriptor;\n    } {\n      const prevDescriptors = oldOPD(o);\n      const ret = {} as typeof prevDescriptors;\n      keys(prevDescriptors).forEach((x) => {\n        if (x !== key) (ret as any)[x] = prevDescriptors[x];\n      });\n      return ret;\n    };\n  }\n  if (has(getOwnPropertyNames, Object)) {\n    const oldOPN = Object[getOwnPropertyNames];\n    Object[getOwnPropertyNames] = function (o: any): string[] {\n      return oldOPN(o).filter((x) => x !== key);\n    };\n  }\n}\n","import { HAS_WEAK } from \"../constants.js\";\nimport { isIterable } from \"../../../util.js\";\nimport {\n  _getCryptoOrMathRandom,\n  initializeInternalKeyProp,\n  _patchObjectSealingMethods,\n  isObjectOrThrow,\n  _patchPropertyDescriptorMethods\n} from \"../Weak-shared.js\";\nimport { _classCallCheck } from \"../../../../shared.js\";\nconst __WEAK__KEY =\n  \"@@WeakMap__\" +\n  +new Date() +\n  Math.random().toString(16) +\n  \"-\" +\n  _getCryptoOrMathRandom();\ninterface patchedObj {\n  [key: string]: {\n    [id: number]: Array<any>;\n  };\n}\nexport const patchObjectSealingMethods = _patchObjectSealingMethods.bind(\n  void 0,\n  __WEAK__KEY\n);\nexport const patchPropertyDescriptorMethods = _patchPropertyDescriptorMethods.bind(\n  void 0,\n  __WEAK__KEY\n);\nfunction generateMap(fm: FakeWeakMap<any, any>, it: Iterable<any> | undefined) {\n  if (it == null) return;\n  if (!isIterable(it))\n    throw new Error(\"value:\" + String(it) + \" is not iterable\");\n  const len = (it as Array<any>).length;\n  for (let i = 0; i < len; i++) {\n    const k = (it as Array<any>)[i];\n    if (!k || k.length !== 2) throw new Error(\"invalid arg\");\n    fm.set(k[0], k[1]);\n  }\n}\ninterface FakeWeakMap<K extends object, V> {\n  delete(key: K): boolean;\n  get(key: K): V | undefined;\n  has(key: K): boolean;\n  set(key: K, value: V): this;\n  [Symbol.toStringTag]: string;\n  _id: number;\n}\ninterface FakeWeakMapConstructor {\n  new <K extends object = object, V = any>(\n    entries?: ReadonlyArray<[K, V]> | null,\n    forceUseCustomImplementation?: boolean\n  ): FakeWeakMap<K, V>;\n  [Symbol.species]: FakeWeakMapConstructor;\n  prototype: FakeWeakMap<object, any>;\n}\nlet weakMapIds = 0;\n/**\n * this implementation holds the value in the key itself instead of holding the key as\n * a reference.\n * however, we need to patch Object.{freeze,seal,preventExtensions}\n * or WeakMaps on previously frozen objects would not work\n *\n */\nconst FakeWeakMap = (function FakeWeakMap<K extends object, V>(\n  this: FakeWeakMap<K, V>,\n  iterable: Iterable<[K, V]>,\n  forceUseCustomImplementation?: boolean\n) {\n  if (!forceUseCustomImplementation && HAS_WEAK) return new WeakMap(iterable);\n  _classCallCheck(this, FakeWeakMap);\n  patchObjectSealingMethods();\n  patchPropertyDescriptorMethods();\n  this._id = ++weakMapIds;\n  generateMap(this, iterable);\n} as any) as FakeWeakMapConstructor;\nfunction _getKeyValArr<K extends patchedObj>(key: K, id: number) {\n  const c = key[__WEAK__KEY];\n  return c ? c[id] : void 0;\n}\nFakeWeakMap[Symbol.species] = FakeWeakMap;\nfunction initSafeSetup<K extends patchedObj>(key: K) {\n  isObjectOrThrow(key);\n  initializeInternalKeyProp(key, __WEAK__KEY);\n}\nFakeWeakMap.prototype = {\n  [Symbol.toStringTag]: \"WeakMap\",\n  _id: 0,\n  delete<K extends patchedObj>(key: K): boolean {\n    initSafeSetup(key);\n    const prevArr = _getKeyValArr(key, this._id);\n    if (!prevArr) return false;\n    delete key[__WEAK__KEY][this._id];\n    return true;\n  },\n  set<K extends patchedObj, V>(key: K, val: V): FakeWeakMap<K, V> {\n    initSafeSetup(key);\n    const prevArr = _getKeyValArr(key, this._id);\n    if (prevArr && prevArr[0] === this._id) {\n      prevArr[1] = val;\n    } else {\n      key[__WEAK__KEY][this._id] = [this._id, val];\n    }\n    return this;\n  },\n  has<K extends patchedObj>(key: K): boolean {\n    initSafeSetup(key);\n    return !!_getKeyValArr(key, this._id);\n  },\n  get<K extends patchedObj>(key: K): any | undefined {\n    initSafeSetup(key);\n    const val = _getKeyValArr(key, this._id);\n    if (val && val[0] === this._id) {\n      return val[1];\n    }\n  }\n};\n\nexport default FakeWeakMap;\n","import _WeakMap from \"../WeakMap/index.js\";\nimport { HAS_WEAK } from \"../constants.js\";\nimport { _classCallCheck } from \"../../../../shared.js\";\nimport { isIterable } from \"../../../util.js\";\n\nfunction generateSet(fs: FakeWeakSet<any>, it: Iterable<any> | undefined) {\n  if (it == null || !fs.__map) return;\n  if (!isIterable(it))\n    throw new Error(\"value:\" + String(it) + \" is not iterable\");\n  const len = (it as Array<any>).length;\n  for (let i = 0; i < len; i++) {\n    const k = (it as Array<any>)[i];\n    fs.__map.set(k, k);\n  }\n}\n\ninterface FakeWeakSet<T extends object> {\n  add(value: T): this;\n  delete(value: T): boolean;\n  has(value: T): boolean;\n  __map?: _WeakMap<T, T>;\n  readonly [Symbol.toStringTag]: string;\n}\n\ninterface FakeWeakSetConstructor {\n  new <T extends object = object>(\n    values?: ReadonlyArray<T> | null\n  ): FakeWeakSet<T>;\n  [Symbol.species]: FakeWeakSetConstructor;\n  prototype: FakeWeakSet<object>;\n}\n/**\n * weak set - either use native or use a weakmap (native or pollyfilled..doesnt matter)\n *\n * @returns {WeakSet}\n * @param {Iterable} iterable\n * @param {boolean} forceUseCustomImplementations\n */\nconst FakeWeakSet = (function FakeWeakSet<T extends object>(\n  this: FakeWeakSet<T>,\n  iterable: Iterable<T>,\n  forceUseCustomImplementations?: boolean\n) {\n  _classCallCheck(this, FakeWeakSet);\n  if (!forceUseCustomImplementations && HAS_WEAK) return new WeakSet(iterable);\n  this.__map = new _WeakMap(null, forceUseCustomImplementations);\n  generateSet(this, iterable);\n} as any) as FakeWeakSetConstructor;\n\nFakeWeakSet[Symbol.species] = FakeWeakSet;\nFakeWeakSet.prototype = {\n  [Symbol.toStringTag]: \"WeakSet\",\n  add<T extends object>(k: T): FakeWeakSet<T> {\n    if (!this.__map) throw new Error(\"Invalid Initialization\");\n    if (this.__map.has(k)) return this as FakeWeakSet<T>;\n    this.__map.set(k, k);\n    return this as FakeWeakSet<T>;\n  },\n  has(k) {\n    if (!this.__map) throw new Error(\"Invalid Initialization\");\n    return this.__map.has(k);\n  },\n  delete(k) {\n    if (!this.__map) throw new Error(\"Invalid Initialization\");\n    return this.__map.delete(k);\n  }\n};\n\nexport default FakeWeakSet;\n","import Object_keys from \"./keys.js\";\nimport { _Object } from \"../util.js\";\nexport default \"entries\" in _Object\n  ? _Object.entries\n  : (function Object_entries(a: { [key: string]: any }) {\n      const keys = Object_keys(a);\n      let kLen = keys.length;\n      const ret = Array(kLen);\n      while (kLen--) {\n        const p = keys[kLen];\n        ret[kLen] = [p, a[p]];\n      }\n      return ret;\n    } as ObjectConstructor[\"entries\"]);\n","import keys from \"./keys.js\";\nimport { _Object } from \"../util.js\";\nexport default \"values\" in _Object\n  ? _Object.values\n  : (function Object_values(a: import(\"./ot\").default) {\n      const arr: Array<any> = [];\n      const keyArr = keys(a);\n      keyArr.forEach(i => arr.push(a[i]));\n      return arr;\n    } as ObjectConstructor[\"values\"]);\n","import { _Object } from \"../util.js\";\n\nexport default \"fromEntries\" in _Object\n  ? _Object.fromEntries\n  : (function Object_fromEntries(entries: import(\"./ot\").default) {\n      const ret: import(\"./ot\").default = {};\n      entries.forEach((k: Array<any>) => (ret[k[0]] = k[1]));\n      return ret;\n    } as ObjectConstructor[\"fromEntries\"]);\n","import { _Object } from \"../util.js\";\nexport default \"is\" in _Object\n  ? _Object.is\n  : (function is(x: any, y: any): boolean {\n      if (x === y) {\n        return x !== 0 || 1 / x === 1 / y;\n      } else {\n        return x !== x && y !== y;\n      }\n    } as ObjectConstructor[\"is\"]);\n","import { browserOnlyWarning } from \"../warnings.js\";\nimport { _generateDocFrag, emptyArr, has } from \"../util.js\";\nexport default function Element_after(element: Element) {\n  if (!element) throw new Error(\"Cannot add elements to null\");\n  browserOnlyWarning._throw();\n  const args = emptyArr.slice.call(arguments, 1);\n  if (has(\"after\", element)) {\n    return element.after.apply(element, args);\n  }\n  const frag = _generateDocFrag(args);\n  const parent = element.parentNode;\n  if (parent == null) throw new Error(\"Cannot append elements after orphan\");\n  parent.insertBefore(frag, element.nextSibling);\n}\n","import { browserOnlyWarning } from \"../warnings.js\";\nimport { _generateDocFrag, emptyArr, has } from \"../util.js\";\nexport default function Element_prepend(element: Element) {\n  browserOnlyWarning._throw();\n  if (!element) throw new Error(\"cannot prepend elements\");\n  const args = emptyArr.slice.call(arguments, 1);\n  if (has(\"prepend\", element)) {\n    return element.prepend.apply(element, args);\n  }\n  const frag = _generateDocFrag(args);\n  element.insertBefore(frag, element.firstChild);\n}\n","type anyFunc = (a: any) => any;\ntype anyAsyncFunc = (a: any) => Promise<any>;\ninterface PipeInterface {\n  readonly _buffer: Array<anyFunc>;\n  readonly _batch: boolean;\n  _value: any;\n  readonly reusable: boolean;\n}\nfunction _clone<T>(arr: Array<T>): Array<T> {\n  const len = arr.length;\n  const ret: Array<T> = Array(len);\n  for (let i = 0; i < len; i++) {\n    ret[i] = arr[i];\n  }\n  return ret;\n}\nexport class Pipe implements PipeInterface {\n  readonly _buffer: Array<anyFunc>;\n  _value: any;\n  constructor(\n    func: anyFunc,\n    readonly _batch: boolean,\n    public readonly reusable: boolean\n  ) {\n    this._buffer = [func];\n    this._value = null;\n  }\n  _commitBuffers() {\n    let fn;\n    const buf = this.reusable ? _clone(this._buffer) : this._buffer;\n    while ((fn = buf.shift())) {\n      this._value = fn(this._value);\n    }\n  }\n  through(nextFunc: anyFunc) {\n    this._buffer.push(nextFunc);\n    return this;\n  }\n  get(arg: any) {\n    this._value = arg;\n    if (!this._batch) this._commitBuffers();\n    return this;\n  }\n  value() {\n    if (this._batch) this._commitBuffers();\n    return this._value;\n  }\n}\n\nexport class AsyncPipe extends Pipe {\n  _buffer: Array<anyAsyncFunc>;\n  constructor(func: anyAsyncFunc, public readonly reusable: boolean) {\n    super(func, true, reusable);\n    this._buffer = [func];\n  }\n  async _commitBuffers() {\n    let fn: anyAsyncFunc;\n    const buf = this.reusable ? _clone(this._buffer) : this._buffer;\n    while ((fn = buf.shift() as anyAsyncFunc)) {\n      this._value = await fn(this._value);\n    }\n  }\n  async value() {\n    await this._commitBuffers();\n    return this._value;\n  }\n}\n","import FakeMap from \"../es6/loose/Map/index\";\n\ninterface CacheOptions {\n  isAsync?: boolean;\n  resolver?(...a: unknown[]): string | number | symbol;\n}\nconst defaultOptions: CacheOptions = {\n  isAsync: false,\n  resolver(args: Array<unknown>) {\n    return String(args[0]);\n  },\n};\n\ninterface UnknownFunction<T> {\n  (...a: unknown[]): T;\n}\n\nexport function cache<T>(\n  func: UnknownFunction<T | Promise<T>>,\n  options?: CacheOptions\n): UnknownFunction<T | Promise<T>> {\n  options = options || {};\n  const resolver = options.resolver || defaultOptions.resolver;\n  const cachedResults = new FakeMap<string | number | symbol, T>();\n\n  const isAsync = options.isAsync || defaultOptions.isAsync;\n\n  function cached(...a: unknown[]): T | Promise<T>;\n  function cached(): T | Promise<T> {\n    const argsArray = [].slice.call(arguments);\n    const key = (resolver as any)(argsArray);\n\n    const ret = cachedResults.get(key);\n    if (ret) return ret;\n\n    const result = func.apply(null, argsArray);\n    if (!isAsync) {\n      cachedResults.set(key, result as T);\n      return result;\n    }\n    return (result as Promise<T>).then((value) => {\n      cachedResults.set(key, value as T);\n      return value;\n    });\n  }\n  cached._Map = cachedResults;\n  return cached;\n}\n","export function debounce<T>(time: number, fn: (...a: unknown[]) => T) {\n  let timer: ReturnType<typeof setTimeout>;\n  return function (this: unknown) {\n    const context = this;\n    clearTimeout(timer);\n    timer = setTimeout(\n      () => fn.apply(context, (arguments as unknown) as unknown[]),\n      time || 400\n    );\n  };\n}\n","export function blobToArrayBuffer(blob: Blob) {\n  if (blob.arrayBuffer) {\n    return blob.arrayBuffer();\n  } else {\n    return new Promise<ArrayBuffer>((resolve) => {\n      const fileReader = new FileReader();\n      fileReader.onload = () => {\n        resolve(fileReader.result as ArrayBuffer);\n      };\n      fileReader.readAsArrayBuffer(blob);\n    });\n  }\n}\n"],"names":["patchGlobalThis","globalThis","Object","defineProperty","prototype","get","configurable","___this","r","global","_Sym","Symbol","has","a","b","emptyObj","emptyArr","isIterable","k","iterator","_Object","constructor","hasOwnProp","hasOwnProperty","_generateDocFrag","args","frag","document","createDocumentFragment","forEach","arg","appendChild","Node","createTextNode","String","domContext","window","navigator","userAgent","createElement","workerContext","self","postMessage","importScripts","isBrowser","browserOnlyWarning","warn","msg","console","_throw","Error","base64ToArrayBuffer","b64","fetch","then","x","arrayBuffer","nextEvent","obj","event","Promise","res","addEventListener","once","arrayBufferToBase64","buffer","resolve","_","blob","Blob","type","reader","FileReader","onload","evt","target","dataurl","result","substr","indexOf","readAsDataURL","wait","m","setTimeout","retry","fn","max","waitInMS","bind","tries","apply","slice","call","arguments","e","name","keys","arr","i","push","urlencode","URLSearchParams","toString","map","encodeURIComponent","join","assign","length","source","log","key","Element_append","element","append","loadCSS","url","link","rel","href","rej","opt","head","_global","patch","HAS_MAP","HAS_SET","HAS_WEAK","s","_isNaN","_EqCheck","y","normalizeNegativeZero","entries","values","mapKeyValIterator","isKey","len","kv","[object Object]","next","value","done","this","__i_getMapArr","that","is","_classCallCheck","instance","Constructor","left","right","hasInstance","TypeError","FakeMap","iterable","forceUseCustomImplementation","Map","fm","it","set","generateMap","v","prevArr","delete","had","filter","c","undefined","cb","val","clear","enumerable","symbolProps","toStringTag","setup","species","setKeyValIterator","isDup","FakeSet","Set","fs","add","generateSet","gl","initializeInternalKeyProp","getOwnPropertyDescriptorsKey","getOwnPropertyNames","__WEAK__KEY","Date","Math","random","rv","crypto","getRandomValues","Uint8Array","_getCryptoOrMathRandom","patchObjectSealingMethods","method","__patched","_patch","patchPropertyDescriptorMethods","oldOPD","o","prevDescriptors","ret","oldOPN","weakMapIds","FakeWeakMap","WeakMap","_id","_getKeyValArr","id","initSafeSetup","isObjectOrThrow","FakeWeakSet","forceUseCustomImplementations","WeakSet","__map","_WeakMap","Object_keys","kLen","Array","p","fromEntries","Element_after","after","parent","parentNode","insertBefore","nextSibling","Element_prepend","prepend","firstChild","_clone","Pipe","func","_batch","reusable","_buffer","_value","_commitBuffers","buf","shift","through","nextFunc","AsyncPipe","super","defaultOptions","isAsync","resolver","cache","options","cachedResults","cached","argsArray","_Map","debounce","time","timer","context","clearTimeout","blobToArrayBuffer","fileReader","readAsArrayBuffer"],"mappings":"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"}