{"version":3,"sources":["jsdelivr-header.js","/npm/chainr-proxy@1.0.0-beta/src/lib/types.ts","/npm/chainr-proxy@1.0.0-beta/src/lib/proxy.ts","/npm/chainr-proxy@1.0.0-beta/src/lib/instance.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,oECAO,MAAM,SAAW,OAAO,iB,yBCG7B,WAAA,CAAoB,GAClB,KAAK,KAAO,C,CAGP,GAAA,CAAK,EAAsB,GAEhC,OAAO,YADM,IAAI,KAAK,KAAM,GACH,E,CAGpB,KAAA,CAAO,EAAsB,EAAc,GAEhD,OADiB,EAAO,UACR,KAAK,EAAS,KAAK,KAAM,E,EAI7C,SAAA,YAAyC,EAAqB,GAE5D,OADmB,IAAI,MAAM,EAAQ,IAAI,mBAAmB,G,CCjB9D,SAAA,sBACE,MAAM,EAAY,OAIlB,cAHO,EAAK,YACL,EAAK,OAEL,C,CAGT,SAAA,aAAuB,GACrB,MAAM,EAAS,sBACf,OAAO,OAAO,OAAO,EAAQ,CAAE,CAAC,UAAW,G,CAG7C,SAAA,eAA4C,GAC1C,GAAwB,mBAAb,EACT,MAAM,IAAI,UAAU,gCAGtB,MAAM,EAAS,aAAa,GAC5B,OAAO,YAAe,GAAI,OAAO,OAAO,G","file":"/npm/chainr-proxy@1.0.0-beta/dist/chainr.browser-cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/chainr-proxy@1.0.0-beta/dist/chainr.browser-cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","export interface Chainr {\n  [key: string]: Chainr\n}\n\nexport type ChainrDispatch = (this: any, keys: PropertyKey[], args: any[]) => any\n\nexport const DISPATCH = Symbol('ChainrHandler')\n\nexport interface ChainrTarget {\n  [DISPATCH]: ChainrDispatch\n}\n","import {\n  Chainr,\n  ChainrTarget,\n  DISPATCH\n} from './types'\n\nexport class ChainrProxyHandler implements ProxyHandler<ChainrTarget> {\n  private keys: PropertyKey[]\n\n  public constructor (keys: PropertyKey[]) {\n    this.keys = keys\n  }\n\n  public get (target: ChainrTarget, key: PropertyKey): Chainr {\n    const keys = [...this.keys, key]\n    return createProxy(keys, target)\n  }\n\n  public apply (target: ChainrTarget, thisArg: any, args: any[]) {\n    const dispatch = target[DISPATCH]\n    return dispatch.call(thisArg, this.keys, args)\n  }\n}\n\nexport function createProxy<T = Chainr> (keys: PropertyKey[], target: ChainrTarget): T {\n  const proxy: any = new Proxy(target, new ChainrProxyHandler(keys))\n  return proxy\n}\n","import { createProxy } from './proxy'\nimport {\n  Chainr,\n  ChainrTarget,\n  ChainrDispatch,\n  DISPATCH\n} from './types'\n\nfunction createEmptyFunction (): Function {\n  const noop: any = () => { /* empty */ }\n  delete noop.name\n  delete noop.length\n\n  return noop\n}\n\nfunction createTarget (dispatch: ChainrDispatch): ChainrTarget {\n  const target = createEmptyFunction()\n  return Object.assign(target, { [DISPATCH]: dispatch })\n}\n\nexport function createInstance<T = Chainr> (dispatch: ChainrDispatch): T {\n  if (typeof dispatch !== 'function') {\n    throw new TypeError('Dispatch function is missing')\n  }\n\n  const target = createTarget(dispatch)\n  return createProxy<T>([], Object.freeze(target) as ChainrTarget)\n}\n"]}