{"version":3,"file":"peek42.browser.mjs","sources":["../src/universal/base.js","../src/browser/console/flash.js","../src/browser/console/resize.js","../src/browser/console/log-entry.js","../src/browser/console/console.js","../src/browser/error.js","../src/browser/config.js","../src/browser/intercept.js","../src/browser/cable.js","../src/browser/peek42.js"],"sourcesContent":["import {\n  name as LIB_NAME,\n  version as LIB_VERSION\n} from '../../package.json';\n\nfunction _isNullProtoObject(val) {\n  return typeof val === 'object' &&\n    val !== null &&\n    val.__proto__ === undefined;\n}\n\nfunction _string(val) {\n  return (_isNullProtoObject(val)) ?\n    '[object Object(proto:Null)]' :\n    String(val);\n}\n\nfunction _comment(comment, val, note = undefined) {\n  if (comment !== undefined && comment !== '') {\n    return comment;\n  }\n\n  let str = _string(val).replace(/\\s+/gm, ' ');\n  let max = 69;\n\n  if (str.length > max) {\n    str = `${str.substr(0, max)}...`;\n  }\n\n  return (note === undefined) ?\n    str :\n    `(${note}) ${str}`;\n}\n\nconst _outputOptsDefaults = {\n  level: 'log',\n  collapsed: false\n};\n\nfunction _prettyMakesSense(val) {\n  return (val instanceof Object && !(val instanceof Function)) ||\n    _isNullProtoObject(val);\n}\n\nfunction pretty(val) {\n  let objs = [];\n  let keys = [];\n\n  return JSON.stringify(val, (k, v) => {\n    if (v instanceof Object || _isNullProtoObject(v)) {\n      let seen = objs.indexOf(v);\n\n      if (seen === -1) {\n        objs.push(v);\n        keys.push(k || 'ROOT');\n\n        return v;\n      }\n\n      return `${_string(v)} (ref to ${keys[seen]})`;\n    }\n\n    return v;\n  }, 2);\n}\n\nfunction p(val, comment = undefined, opts = undefined) {\n  peek42._output(\n    val,\n    _comment(comment, val, 'value'),\n    opts\n  );\n}\n\np.pretty = function (val, comment = undefined, opts = undefined) {\n  peek42._output(\n    (_prettyMakesSense(val)) ? pretty(val) : val,\n    _comment(comment, val, 'pretty'),\n    opts\n  );\n};\n\nfunction pp(...args) {\n  ((p.inspect) ? p.inspect : p.pretty)(...args);\n}\n\nfunction use(lib) {\n  Object.assign(p,\n    lib.peek42(p, _comment)\n  );\n\n  return peek42;\n}\n\nconst peek42 = {\n  get [Symbol.toStringTag]() {\n    return LIB_NAME;\n  },\n  version: LIB_VERSION,\n  pretty,\n  p,\n  pp,\n  use\n};\n\nexport {\n  _string,\n  _comment,\n  _outputOptsDefaults,\n  _prettyMakesSense,\n  pretty,\n  p,\n  pp,\n  use\n};\nexport default peek42;\n","function flash1(el, className) {\n  el.classList.add(className);\n  setTimeout(() => el.classList.remove(className), 300);\n}\n\nfunction flash2(el, className) {\n  el.classList.add(className);\n  setTimeout(() => {\n    el.classList.remove(className);\n    setTimeout(() => {\n      el.classList.add(className);\n      setTimeout(() => el.classList.remove(className), 300);\n    }, 200);\n  }, 300);\n}\n\nfunction flashSizeLimit(el) { flash1(el, 'peek42-flash-size-limit'); }\nfunction flashNotice(el) { flash1(el, 'peek42-flash-notice'); }\nfunction flashSuccess(el) { flash1(el, 'peek42-flash-success'); }\nfunction flashWarning(el) { flash2(el, 'peek42-flash-warning'); }\nfunction flashError(el) { flash2(el, 'peek42-flash-error'); }\n\nfunction flashOutput(el, level) {\n  switch (level) {\n  case 'info': flashNotice(el); break;\n  case 'warn': flashWarning(el); break;\n  case 'error': flashError(el); break;\n  case 'log':\n  default: flashSuccess(el); break;\n  }\n}\n\nconst flash = {\n  flash1,\n  flash2,\n  flashSizeLimit,\n  flashNotice,\n  flashSuccess,\n  flashWarning,\n  flashError,\n  flashOutput\n};\n\nexport {\n  flash1,\n  flash2,\n  flashSizeLimit,\n  flashNotice,\n  flashSuccess,\n  flashWarning,\n  flashError,\n  flashOutput\n};\nexport default flash;\n","import {flashSizeLimit} from './flash';\n\nclass Resizer {\n  constructor(elResizee, {\n    elFlashSizeLimit = elResizee,\n    elsMakeSameHeight = [],\n    ratio = 0.42,\n    minRatio = 0.05,\n    maxRatio = 0.85\n  } = {}) {\n    this._elResizee = elResizee;\n    this._elFlashSizeLimit = elFlashSizeLimit;\n    this._elsMakeSameHeight = elsMakeSameHeight;\n    this._ratio = ratio;\n    this._minRatio = minRatio;\n    this._maxRatio = maxRatio;\n    this._height = window.innerHeight * this._ratio;\n    this._resizeY = 0;\n    this._resizeYDelta = 0;\n    this._isResizing = false;\n\n    this._syncHeights();\n  }\n\n  get ratio() {\n    return this._ratio;\n  }\n\n  get height() {\n    return this._height;\n  }\n\n  set height(v) {\n    if (typeof v !== 'number') {\n      throw new TypeError(`Expected number, got ${typeof v}`);\n    }\n\n    this._height = v;\n\n    this._syncHeights();\n  }\n\n  _syncHeights() {\n    let styleHeight = `${this._height}px`;\n\n    this._elResizee.style.height = styleHeight;\n    this._elsMakeSameHeight.forEach(el => el.style.height = styleHeight);\n  }\n\n  get isResizing() {\n    return this._isResizing;\n  }\n\n  resizeStart(clientY) {\n    this._resizeY = clientY;\n    this._resizeYDelta = 0;\n    this._isResizing = true;\n  }\n\n  resize(clientY) {\n    let minHeight = window.innerHeight * this._minRatio;\n    let maxHeight = window.innerHeight * this._maxRatio;\n\n    this._resizeYDelta = this._resizeY - clientY;\n    this._height += this._resizeYDelta;\n\n    if (this._height > minHeight && this._height < maxHeight) {\n      this._resizeY = clientY;\n      this._syncHeights();\n    } else {\n      this._height = Math.min(Math.max(this._height, minHeight), maxHeight);\n      this._syncHeights();\n\n      flashSizeLimit(this._elFlashSizeLimit);\n      this.resizeEnd();\n    }\n  }\n\n  resizeEnd() {\n    this._ratio = this._height / window.innerHeight;\n    this._resizeY = 0;\n    this._resizeYDelta = 0;\n    this._isResizing = false;\n  }\n}\n\nexport default Resizer;\n","function _logEntryToggleAndBody(elHead) {\n  return [\n    elHead.firstElementChild,\n    elHead.nextElementSibling\n  ];\n}\n\nfunction _logEntryExpand(elToggle, elBody) {\n  elToggle.innerHTML = '&#x25be;';\n  elBody.style.display = '';\n}\n\nfunction _logEntryCollapse(elToggle, elBody) {\n  elToggle.innerHTML = '&#x25b8;';\n  elBody.style.display = 'none';\n}\n\nfunction _logEntryToggle(elToggle, elBody) {\n  if (elBody.style.display === 'none') {\n    _logEntryExpand(elToggle, elBody);\n  } else {\n    _logEntryCollapse(elToggle, elBody);\n  }\n}\n\nfunction _onLogEntryHeadClick(ev) {\n  _logEntryToggle(..._logEntryToggleAndBody(ev.currentTarget));\n}\n\nfunction addLogEntry({\n  elLog,\n  entrySimpleText,\n  entryDesc,\n  entryText,\n  entryHtml,\n  hidden = false,\n  level = 'log',\n  collapsed = false\n} = {}) {\n  let elEntry = document.createElement('div');\n\n  elEntry.classList.add(`peek42-log-entry-${level}`);\n\n  if (hidden) {\n    elEntry.style.display = 'none';\n  }\n\n  if (entrySimpleText) {\n    elEntry.classList.add('peek42-log-entry-simple');\n    elEntry.textContent = entrySimpleText;\n  } else {\n    elEntry.classList.add('peek42-log-entry');\n    elEntry.innerHTML = `<div class=\"peek42-log-entry-head\">\\\n<span class=\"peek42-log-entry-toggle\">&#x25be;</span>\\\n<span class=\"peek42-log-entry-desc\"></span>\\\n</div>\\\n<div class=\"peek42-log-entry-body\"></div>`;\n\n    let elHead = elEntry.firstElementChild;\n    let [elToggle, elBody] = _logEntryToggleAndBody(elHead);\n    let elDesc = elToggle.nextElementSibling;\n\n    elDesc.textContent = entryDesc;\n\n    if (entryHtml) {\n      elBody.appendChild(entryHtml);\n    } else {\n      elBody.textContent = entryText;\n    }\n\n    elHead.addEventListener('click', _onLogEntryHeadClick);\n    if (collapsed) {\n      _logEntryCollapse(elToggle, elBody);\n    }\n  }\n\n  elLog.insertBefore(elEntry, elLog.firstChild);\n  elLog.scrollTop = 0;\n}\n\nexport {\n  _logEntryToggleAndBody,\n  _logEntryExpand,\n  _logEntryCollapse,\n  addLogEntry\n};\n","import {_string, _outputOptsDefaults} from '../../universal/base';\nimport consoleHTML from './console.html';\nimport './styles/console.scss';\nimport Resizer from './resize';\nimport {\n  flashNotice,\n  flashOutput\n} from './flash';\nimport {\n  _logEntryToggleAndBody,\n  _logEntryExpand,\n  _logEntryCollapse,\n  addLogEntry\n} from './log-entry';\n\nclass Console {\n  static _html = consoleHTML;\n  static _instance = null;\n  static _printFnMap = {\n    v: ['peek42.p', 'value'],\n    value: ['peek42.p', 'value'],\n    p: ['peek42.p.pretty', 'pretty'],\n    pretty: ['peek42.p.pretty', 'pretty'],\n    t: ['peek42.p.type', 'type'],\n    type: ['peek42.p.type', 'type'],\n    d: ['peek42.p.desc', 'desc'],\n    desc: ['peek42.p.desc', 'desc'],\n    M: ['peek42.p.member', 'member'],\n    member: ['peek42.p.member', 'member'],\n    m: ['peek42.p.members', 'members'],\n    members: ['peek42.p.members', 'members'],\n    i: ['peek42.p.inspect', 'inspect'],\n    inspect: ['peek42.p.inspect', 'inspect'],\n    c: ['peek42.p.chain', 'chain'],\n    chain: ['peek42.p.chain', 'chain'],\n    a: ['peek42.p.api', 'api'],\n    api: ['peek42.p.api', 'api'],\n    x: ['peek42.p.dom', 'dom'],\n    dom: ['peek42.p.dom', 'dom']\n  };\n\n  static get instance() {\n    return new Promise((resolve, reject) => {\n      if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', () => {\n          resolve(this._instance = this._instance || new this());\n        });\n      } else {\n        resolve(this._instance = this._instance || new this());\n      }\n    });\n  }\n\n  constructor() {\n    if (document.readyState === 'loading') {\n      throw new Error(`Cannot create ${new.target.name} before DOM ready`);\n    }\n\n    if (document.querySelector('.peek42-console')) {\n      throw new Error(`${new.target.name} already created`);\n    }\n\n    this._container = document.createElement('div');\n    this._container.setAttribute('class', 'peek42-console');\n    this._container.innerHTML = new.target._html;\n    document.body.appendChild(this._container);\n    //this._container.classList.add('peek42-dev');\n\n    [\n      'bar',\n        'title',\n        'eval',\n        'clear', 'resize', 'quietl', 'quiet', 'toggle',\n      'view',\n        'log',\n        'bar1',\n          'entries-expand', 'entries-collapse',\n          'entries-info', 'entries-log', 'entries-warn', 'entries-error'\n    ].forEach(name => {\n      this[`_${name}`] = this._container.querySelector(`.peek42-${name}`);\n    });\n\n    this._resizer = new Resizer(this._log, {\n      elFlashSizeLimit: this._container,\n      elsMakeSameHeight: [this._bar1]\n    });\n\n    this._isMinimized = false;\n\n    this._countsByLevel = {\n      info: 0,\n      log: 0,\n      warn: 0,\n      error: 0\n    };\n\n    this._title.addEventListener('click', ev => {\n      this._onTitleClick(ev);\n    });\n\n    this._eval.addEventListener('keypress', ev => {\n      this._onEvalKeyPress(ev);\n    });\n\n    this._clear.addEventListener('click', ev => {\n      this._onClearClick(ev);\n    });\n\n    this._resize.addEventListener('touchstart', ev => {\n      this._onResizeTouchStart(ev);\n    });\n    document.body.addEventListener('touchmove', ev => {\n      this._onBodyTouchMove(ev);\n    });\n    document.body.addEventListener('touchend', ev => {\n      this._onBodyTouchEnd(ev);\n    });\n    window.addEventListener('resize', ev => {\n      this._onWindowResize(ev);\n    });\n\n    this._quietl.addEventListener('click', ev => {\n      this._onQuietClick(ev);\n    });\n\n    this._toggle.addEventListener('click', ev => {\n      this._onToggleClick(ev);\n    });\n\n    [\n      'entries-expand',\n      'entries-collapse'\n    ].forEach(name => {\n      this[`_${name}`].addEventListener('click', ev => {\n        this[`_on-${name}`](ev);\n      });\n    });\n\n    [\n      'entries-info',\n      'entries-log',\n      'entries-warn',\n      'entries-error'\n    ].forEach(name => {\n      this[`_${name}`].addEventListener('click', ev => {\n        this[`_${name}`].classList.toggle(`peek42-${name}-active`);\n\n        this[`_on-toggle-${name}`](ev);\n      });\n    });\n\n    this.minimize();\n  }\n\n  _isLevelActive(level) {\n    return this[`_entries-${level}`].classList.\n      contains(`peek42-entries-${level}-active`);\n  }\n\n  _output(val, comment, opts = {}) {\n    opts = {..._outputOptsDefaults, ...opts};\n    let active = this._isLevelActive(opts.level);\n\n    if (this.isMinimized && active && !this.isQuiet) {\n      this.show();\n    }\n\n    if (val instanceof HTMLElement && val.dataset.peek42HtmlEntry) {\n      addLogEntry({\n        elLog: this._log,\n        entryDesc: String(comment),\n        entryHtml: val,\n        hidden: !active,\n        ...opts\n      });\n    } else {\n      if (comment === null) {\n        addLogEntry({\n          elLog: this._log,\n          entrySimpleText: _string(val),\n          hidden: !active,\n          ...opts\n        });\n      } else {\n        addLogEntry({\n          elLog: this._log,\n          entryDesc: String(comment),\n          entryText: _string(val),\n          hidden: !active,\n          ...opts\n        });\n      }\n    }\n\n    this._countsByLevel[opts.level] += 1;\n    this[`_entries-${opts.level}`].\n      textContent = this._countsByLevel[opts.level];\n\n    flashOutput(this._container, opts.level);\n  }\n\n  _onTitleClick(ev) {\n    ev.preventDefault();\n    ev.stopPropagation();\n\n    this.toggleLogPos();\n  }\n\n  _onEvalKeyPress(ev) {\n    let crCode = '\\r'.charCodeAt(0);\n    let lfCode = '\\n'.charCodeAt(0);\n\n    if (ev.charCode === crCode || ev.charCode === lfCode) {\n      this.evalJS();\n    }\n  }\n\n  _onClearClick(ev) {\n    ev.preventDefault();\n    ev.stopPropagation();\n\n    this.clear();\n  }\n\n  _onResizeTouchStart(ev) {\n    ev.preventDefault();\n    ev.stopPropagation();\n\n    this._resizer.resizeStart(ev.touches[0].clientY);\n  }\n\n  _onBodyTouchMove(ev) {\n    if (this._resizer.isResizing) {\n      ev.preventDefault();\n      ev.stopPropagation();\n\n      this._resizer.resize(ev.touches[0].clientY);\n    }\n  }\n\n  _onBodyTouchEnd(ev) {\n    if (this._resizer.isResizing) {\n      this._resizer.resizeEnd();\n    }\n  }\n\n  _onWindowResize(ev) {\n    this._resizer.height = window.innerHeight * this._resizer.ratio;\n  }\n\n  _onQuietClick(ev) {\n    ev.preventDefault();\n    ev.stopPropagation();\n\n    this.toggleQuiet();\n  }\n\n  _onToggleClick(ev) {\n    ev.preventDefault();\n    ev.stopPropagation();\n\n    this.toggleDisplay();\n  }\n\n  ['_on-entries-expand'](ev) {\n    this._log.\n      querySelectorAll('.peek42-log-entry-head').\n        forEach(elHead => _logEntryExpand(..._logEntryToggleAndBody(elHead)));\n  }\n\n  ['_on-entries-collapse'](ev) {\n    this._log.\n      querySelectorAll('.peek42-log-entry-head').\n        forEach(elHead => _logEntryCollapse(..._logEntryToggleAndBody(elHead)));\n  }\n\n  _toggleEntriesDisplay(elCtrl, level) {\n    let activeClass = `peek42-entries-${level}-active`;\n    let entriesClass = `.peek42-log-entry-${level}`;\n    let display = (elCtrl.classList.contains(activeClass)) ? '' : 'none';\n\n    this._log.\n      querySelectorAll(entriesClass).\n        forEach(elEntry => elEntry.style.display = display);\n  }\n\n  ['_on-toggle-entries-info'](ev) {\n    this._toggleEntriesDisplay(ev.currentTarget, 'info');\n  }\n\n  ['_on-toggle-entries-log'](ev) {\n    this._toggleEntriesDisplay(ev.currentTarget, 'log');\n  }\n\n  ['_on-toggle-entries-warn'](ev) {\n    this._toggleEntriesDisplay(ev.currentTarget, 'warn');\n  }\n\n  ['_on-toggle-entries-error'](ev) {\n    this._toggleEntriesDisplay(ev.currentTarget, 'error');\n  }\n\n  get logIsAtTop() {\n    return this._log.scrollTop === 0;\n  }\n\n  toggleLogPos() {\n    (this.logIsAtTop) ? this.logPosBottom() : this.logPosTop();\n  }\n\n  logPosBottom() {\n    this._log.scrollTop = this._log.scrollHeight;\n  }\n\n  logPosTop() {\n    this._log.scrollTop = 0;\n  }\n\n  get jsToEval() {\n    return this._eval.value;\n  }\n\n  set jsToEval(v) {\n    this._eval.value = v;\n  }\n\n  evalJS() {\n    let val = this._eval.value;\n\n    if (val.match(/^\\s*$/gm)) {\n      return;\n    }\n\n    let str = val.replace(/'/gm, '\"');\n    let keys = Object.keys(this.constructor._printFnMap);\n    let pattern = `^(${keys.join('|')})\\\\s+(.+)`;\n    let parts = str.match(new RegExp(pattern));\n    let dummy, k, expr, fn, note, js;\n\n    if (parts) {\n      [dummy, k, expr] = parts;\n      [fn, note] = this.constructor._printFnMap[k];\n    } else {\n      expr = str;\n      [fn, note] = this.constructor._printFnMap['v'];\n    }\n\n    js = `'use strict';\n\n${fn}(${expr}, '(${note}) ${expr}');\n`;\n\n    try {\n      (new Function(js))();\n    } catch (err) {\n      if (!err.sourceURL) {\n        err.sourceText = js;\n        err.line = (err.line || 4) - 1;\n      }\n\n      throw err;\n    }\n  }\n\n  clear() {\n    this._log.textContent = '';\n\n    ['info', 'log', 'warn', 'error'].forEach(level => {\n      this._countsByLevel[level] = 0;\n      this[`_entries-${level}`].textContent = 0;\n    });\n\n    flashNotice(this._container);\n  }\n\n  get isQuiet() {\n    return this._quiet.checked;\n  }\n\n  toggleQuiet() {\n    this._quiet.checked = !this._quiet.checked;\n  }\n\n  quiet() {\n    this._quiet.checked = true;\n  }\n\n  unquiet() {\n    this._quiet.checked = false;\n  }\n\n  get isMinimized() {\n    return this._isMinimized;\n  }\n\n  toggleDisplay() {\n    (this.isMinimized) ? this.show() : this.minimize();\n  }\n\n  show() {\n    this._eval.style.display = '';\n    this._resize.style.display = '';\n    this._quietl.style.display = 'none';\n    this._quiet.style.display = 'none';\n    this._toggle.innerHTML = 'Minimize';\n    this._view.style.display = '';\n\n    this._isMinimized = false;\n  }\n\n  minimize() {\n    this._eval.style.display = 'none';\n    this._resize.style.display = 'none';\n    this._quietl.style.display = '';\n    this._quiet.style.display = '';\n    this._toggle.innerHTML = 'Restore';\n    this._view.style.display = 'none';\n\n    this._isMinimized = true;\n  }\n\n  get content() {\n    return this._log.textContent;\n  }\n}\n\nexport default Console;\n","import {pretty, p, pp} from '../universal/base';\n\nconst reTestTranspiledScriptStack =\n  /\\nrun\\S+babel/m;\nconst reCaptureSourceMappingURL =\n  // match[1] - sourceMappingURL\n  /\\/\\/# sourceMappingURL=(.+)\\s*$/m;\nconst reCaptureEmbeddedSourceMap =\n  // match[1] - embeddedSourceMap (base64)\n  /^data:application\\/json;(?:charset=[^;]+;)?base64,(.+)$/;\nconst reTestAbsoluteURL =\n  /^(?:[a-z]+:)?\\/\\//i;\nconst reCapturePathAndName =\n  // match[1] - path (includes trailing slash)\n  // match[2] - name (includes extension)\n  /^(.+\\/)?([^\\/]+)$/;\n\nfunction isInlineScriptError(err) {\n  return !!(\n    err.sourceURL &&\n    err.sourceURL === window.location.href\n  );\n}\n\nfunction isTranspiledScriptError(err) {\n  return !!(\n    err.stack &&\n    reTestTranspiledScriptStack.test(err.stack)\n  );\n}\n\nfunction inlineScripts() {\n  return Array.from(document.scripts).\n    filter(script => !script.getAttribute('src')).\n    map(script => ({\n      source: script.textContent,\n      sourceMap: null,\n      originalErrorInfo: null\n    }));\n}\n\nfunction transpiledInlineScripts(_inlineScripts) {\n  return _inlineScripts.\n    map(scriptInfo => {\n      scriptInfo.sourceMap = embeddedSourceMap(\n        sourceMappingURL(scriptInfo.source)\n      );\n\n      return scriptInfo;\n    }).\n    filter(scriptInfo => !!scriptInfo.sourceMap);\n}\n\nasync function transpiledInlineScriptsWithOriginalErrorInfoAsync(\n  _transpiledInlineScripts,\n  err\n) {\n  return Promise.all(\n    _transpiledInlineScripts.\n      map(async scriptInfo => {\n        scriptInfo.originalErrorInfo = await originalErrorInfoAsync(\n          scriptInfo.sourceMap, err\n        );\n\n        return scriptInfo;\n      })\n  );\n}\n\nasync function transpiledInlineScriptsSourceTracesAsync(err) {\n  let scripts = transpiledInlineScripts(inlineScripts());\n\n  try {\n    return (await transpiledInlineScriptsWithOriginalErrorInfoAsync(\n      scripts,\n      err\n    )).\n      map(scriptInfo => sourceTrace(\n        ...sourceTraceArgs(scriptInfo.originalErrorInfo)\n      ));\n  } catch (err1) {\n    console.warn(`sourceMap library support missing/incomplete or error retrieving source information\\n${err1}`);\n\n    return scripts.\n      map((scriptInfo, i) => sourceTrace(\n        scriptInfo.source,\n        `Transpiled inline script #${i + 1}`,\n        err.line,\n        err.column\n      ));\n  }\n}\n\nasync function errorSourceAsync(err) {\n  if (err.sourceText) {\n    return err.sourceText;\n  }\n\n  if (!err.sourceURL) {\n    throw new Error('sourceURL unavailable');\n  }\n\n  let url = err.sourceURL;\n  let res = null;\n\n  try {\n    res = await fetch(url);\n  } catch (err) {\n    throw new Error(`Cannot retrieve ${url}`);\n  }\n\n  if (!res.ok) {\n    throw new Error(`${res.status} (${res.statusText}) ${url}`);\n  }\n\n  return res.text();\n}\n\nfunction sourceMappingURL(source) {\n  return (\n    source.match(reCaptureSourceMappingURL) || []\n  )[1];\n}\n\nfunction isEmbeddedSourceMap(_sourceMappingURL) {\n  return reCaptureEmbeddedSourceMap.test(_sourceMappingURL);\n}\n\nfunction embeddedSourceMap(_sourceMappingURL) {\n  let base64 = (\n    (_sourceMappingURL || '').match(reCaptureEmbeddedSourceMap) || []\n  )[1];\n\n  return (base64) ? JSON.parse(atob(base64)) : null;\n}\n\nfunction isAbsoluteURL(url) {\n  return reTestAbsoluteURL.test(url);\n}\n\nfunction pathAndName(url) {\n  let [\n    ,\n    path,\n    name\n  ] = (url || '').match(reCapturePathAndName) || [];\n\n  return [path, name];\n}\n\nasync function tryFetchAsync(url, {\n  as = 'text'\n} = {}) {\n  try {\n    let res = await fetch(url);\n\n    return (res.ok) ? res[as]() : null;\n  } catch (err) {\n    return null;\n  }\n}\n\nasync function sourceMapAsync(source, sourceURL) {\n  let url = sourceMappingURL(source);\n  let map = null;\n\n  if (!url) {\n    return null;\n  }\n\n  if ( (map = embeddedSourceMap(url)) ) {\n    return map;\n  }\n\n  if (isAbsoluteURL(url)) {\n    return tryFetchAsync(url, {as: 'json'});\n  }\n\n  let [path, name] = pathAndName(sourceURL);\n\n  if ( (map = await tryFetchAsync(`${path}${url}`, {as: 'json'})) ) {\n    return map;\n  }\n\n  return tryFetchAsync(`${path}${name}.map`, {as: 'json'});\n}\n\nasync function originalErrorInfoAsync(_sourceMap, err) {\n  const {SourceMapConsumer} = sourceMap;\n\n  return SourceMapConsumer.with(_sourceMap, null, consumer => {\n    let position = consumer.originalPositionFor({\n      line: err.line || 1,\n      // The sourceMap lib expects 0-based columns\n      column: (err.column || 1) - 1\n    }) || {};\n    let source = consumer.sourceContentFor(position.source, true) || '';\n\n    return {\n      position,\n      source\n    };\n  });\n}\n\nfunction sourceTraceArgs(_originalErrorInfo) {\n  let {source, position} = _originalErrorInfo;\n\n  return [\n    source,\n    position.source || '',\n    position.line || 1,\n    // The sourceTrace func expects 1-based columns\n    // position.name is the erroneous token\n    // Place the error marker after it for consistency with runtime errors\n    (position.column || 0) + 1 + (position.name || '').length\n  ];\n}\n\nfunction sourceTrace(source, url, line1, column1, {\n  indent = '',\n  peekLines = 2\n} = {}) {\n  let lines = (source || '').split('\\n');\n  let [path = 'path n/a', name = 'code'] = pathAndName(url);\n  let iLine = (line1 || 1) - 1;\n  let iColumn = (column1 || 1) - 1;\n  let traceLines = [];\n  let iTraceLineMax = Math.max(0, lines.length - 1);\n  let iTraceLineBeg = Math.max(0, iLine - peekLines);\n  let iTraceLineEnd = Math.min(iTraceLineMax, iLine + peekLines);\n  let padMax = `${lines.length}`.length;\n  let margin = '|';\n  let linePointer = ' ';\n  let columnFill = '~';\n  let columnPointer = `${columnFill.repeat(iColumn)}^`;\n\n  for (let i = iTraceLineBeg; i <= iTraceLineEnd; i++) {\n    let pad = ' '.repeat(padMax - `${i + 1}`.length);\n    let lineMarker = (i == iLine) ?\n      linePointer :\n      ' '.repeat(linePointer.length);\n    let columnMarker = (i == iLine) ?\n      `\\n${indent}${' '.repeat(linePointer.length)}${columnFill.repeat(padMax + margin.length)}${columnPointer}` :\n      '';\n\n    traceLines.push(`${indent}${lineMarker}${pad}${i + 1}${margin}${lines[i]}${columnMarker}`);\n  }\n\n  return `${indent}${name}:${line1 || 'n/a'}:${column1 || 'n/a'} (${path})\\n${traceLines.join('\\n')}`;\n}\n\nasync function formatErrorAsync(err, {\n  includeStack = true\n} = {}) {\n  let trace;\n\n  try {\n    if (isInlineScriptError(err)) {\n      if (isTranspiledScriptError(err)) {\n        trace = (\n          await transpiledInlineScriptsSourceTracesAsync(err)\n        ).join('\\n');\n      } else {\n        trace = sourceTrace(\n          await errorSourceAsync(err), err.sourceURL, err.line, err.column\n        );\n      }\n    } else {\n      let source = await errorSourceAsync(err);\n      let map = await sourceMapAsync(source, err.sourceURL);\n\n      if (map) {\n        try {\n          trace = sourceTrace(\n            ...sourceTraceArgs(await originalErrorInfoAsync(map, err))\n          );\n        } catch (err1) {\n          console.warn(`sourceMap library support missing/incomplete or error retrieving source information\\n${err1}`);\n        }\n      }\n\n      if (!trace) {\n        trace = sourceTrace(\n          source, err.sourceURL, err.line, err.column\n        );\n      }\n    }\n  } catch (err1) {\n    err.sourceTraceNA = `${err1}`;\n\n    trace = pretty(err);\n  }\n\n  return (includeStack) ?\n    `${trace}\\nstack:\\n  ${\n      (err &&\n        err.stack &&\n        err.stack.replace(/\\n/gm, '\\n  ')\n      ) || 'n/a'\n    }` :\n    `${trace}`;\n}\n\nfunction reportError(err, {\n  includeStack = true,\n  note = 'error'\n} = {}) {\n  formatErrorAsync(err, {includeStack}).then(str => {\n    p(str,\n      `(${note}) ${err}`,\n      {level: 'error'});\n  });\n}\n\nexport {\n  sourceTrace,\n  formatErrorAsync,\n  reportError\n};\nexport default reportError;\n","const _configDefaults = {\n  interceptConsole: true,\n  addGlobals: true,\n  autoUse: true\n};\n\nconst _config = {..._configDefaults, ...window.PEEK42_CONFIG};\n\nexport default _config;\n","import {_string, _comment, p, pp} from '../universal/base';\nimport {formatErrorAsync} from './error';\n\nwindow.console = window.console || {};\nconst _fnOrig = {};\n\nfunction _interceptNativeConsoleFn(name) {\n  _fnOrig[name] = window.console[name];\n  const {map} = Array.prototype;\n\n  window.console[name] = function () {\n    let str = map.call(arguments, arg => _string(arg)).join(' ');\n    let stack = ((new Error).stack || '\\n').split('\\n');\n    let loc = (stack.shift(), stack.shift() || '[source location n/a]');\n\n    p(str,\n      _comment('', '', `console.${name}@${loc}`),\n      {level: name});\n\n    try {\n      _fnOrig[name] && _fnOrig[name].apply(window.console, arguments);\n    } catch (err) {\n      formatErrorAsync(err).then(str => {\n        p(str,\n          _comment('', err, `console.${name}@${loc}`),\n          {level: 'error', collapsed: true});\n      });\n    }\n  };\n}\n\nfunction _restoreNativeConsoleFns() {\n  Object.keys(_fnOrig).forEach(name => {\n    window.console[name] = _fnOrig[name];\n  });\n}\n\nexport {\n  _interceptNativeConsoleFn,\n  _restoreNativeConsoleFns\n};\n","import {p, pp} from '../universal/base';\n\nclass WS {\n  constructor(url = `${location.origin.replace(/^http/, 'ws')}/peek42`) {\n    this._url = url;\n    this._ws = new WebSocket(this._url);\n\n    this._ws.addEventListener('open', ev => {\n      p(`peek42 WebSocket open (url: ${this._url})`,\n        null, {level: 'info'});\n    });\n    this._ws.addEventListener('close', ev => {\n      p(`peek42 WebSocket close (url: ${this._url}, code: ${ev.code})`,\n        null, {level: 'warn'});\n    });\n    this._ws.addEventListener('error', ev => {\n      throw new Error(`peek42 WebSocket error (url: ${this._url})`);\n    });\n\n    this._ws.addEventListener('message', ev => {\n      let serverWireData = ev.data;\n      let serverData = JSON.parse(serverWireData);\n\n      this.onmessage(serverData);\n    });\n  }\n\n  onmessage(serverData) {\n    let {val, comment, opts} = serverData;\n\n    if (comment === null) {\n      val = `(server) ${val}`;\n    } else {\n      comment = `(server) ${comment}`;\n    }\n\n    p(val, comment, opts);\n  }\n}\n\nconst cable = {\n  init(url) {\n    this._websocket = new WS(url);\n  }\n};\n\nexport {\n  cable\n};\n","import peek42, {_comment, p, pp, use} from '../universal/base';\nimport './styles/base.scss';\nimport Console from './console/console';\nimport reportError, {\n  sourceTrace,\n  formatErrorAsync\n} from './error';\nimport _config from './config';\nimport {\n  _interceptNativeConsoleFn,\n  _restoreNativeConsoleFns\n} from './intercept';\nimport {cable} from './cable';\n\nfunction _output(...args) {\n  // Allow peek42.console.content to be used without\n  // Console.instance.then wait (or the setTimeout 0 trick)\n  // after console has been created and assigned\n  if (peek42.console) {\n    return peek42.console._output(...args);\n  }\n\n  Console.instance.then(console => {\n    Object.assign(peek42, {\n      console\n    });\n\n    console._output(...args);\n  });\n}\n\nConsole.instance.then(console => {\n  Object.assign(peek42, {\n    console\n  });\n});\n\np.trace = (comment = undefined, opts = undefined) => {\n  let stack = ((new Error).stack || '\\n').split('\\n');\n  let trace = (stack.shift(), stack);\n  let loc = trace[0];\n\n  _output(\n    trace.join('\\n'),\n    _comment(comment, loc, `trace`),\n    opts\n  );\n};\n\nfunction walk(elem, fnVisit, {\n  level = 0\n} = {}) {\n  fnVisit(elem, level);\n\n  for (let node = elem.firstChild;\n    node;\n    node = node.nextSibling\n  ) {\n    walk(node, fnVisit, {level: level + 1});\n  }\n\n  return elem;\n}\n\nconst nodeTypeNames = Object.keys(Node).\n  filter(k => k.match(/_NODE$/)).\n  reduce((obj, k) =>\n    (obj[Node[k]] = k.slice(0, -5).toLowerCase(), obj),\n    {__proto__: null}\n  );\n\nfunction formatAttrs(attrs) {\n  return Array.from(attrs,\n    // TODO: Handle quotes within attribute value\n    attr => `${attr.name}=\"${attr.value}\"`\n  );\n}\n\nfunction formatNode(types, node, level) {\n  let tag = (node.tagName && node.tagName.toLowerCase()) ||\n    nodeTypeNames[node.nodeType];\n\n  switch (node.nodeType) {\n  case Node.ELEMENT_NODE: {\n    let attrs = (types.has(Node.ATTRIBUTE_NODE)) ?\n      formatAttrs(node.attributes) :\n      [];\n\n    return (attrs.length > 0) ?\n      `${tag}(${attrs.join(', ')})` :\n      tag;\n  } case Node.COMMENT_NODE: {\n    let text = node.textContent.trim();\n\n    return `//${JSON.stringify(text)}`;\n  } case Node.TEXT_NODE: {\n    let text = node.textContent.trim();\n\n    return (text) ? JSON.stringify(text) : '';\n  } default:\n    return tag;\n  }\n}\n\nfunction domStr(elemOrSel = document, {\n  nodeTypes = [\n    Node.DOCUMENT_NODE,\n    Node.DOCUMENT_FRAGMENT_NODE,\n    Node.ELEMENT_NODE,\n    Node.ATTRIBUTE_NODE,\n    Node.COMMENT_NODE,\n    Node.TEXT_NODE,\n  ],\n  include = [],\n  exclude = [],\n  level = 0\n} = {}) {\n  elemOrSel = (typeof elemOrSel === 'string') ?\n    document.querySelector(elemOrSel) :\n    elemOrSel;\n  let types = new Set(\n    nodeTypes.concat(include).\n      filter(k => !exclude.includes(k))\n  );\n  let str = '';\n\n  walk(elemOrSel, (node, level) => {\n    if (types.has(node.nodeType)) {\n      let pad = '  '.repeat(level);\n      let sn = formatNode(types, node, level);\n\n      if (sn) {\n        str += `${pad}${sn}\\n`;\n      }\n    }\n  }, {level});\n\n  return str;\n}\n\np.domStr = (elemOrSel, comment = undefined, opts = undefined) => {\n  _output(\n    domStr(elemOrSel, (opts || {}).dom),\n    _comment(comment, elemOrSel || document, `dom`),\n    opts\n  );\n};\n\np.dom = p.domStr;\n\nObject.assign(peek42, {\n  _output,\n  Console,\n  sourceTrace,\n  formatErrorAsync,\n  reportError,\n  cable\n});\n\nfunction _onError(ev) {\n  reportError(ev.error, {\n    note: 'uncaught exception'\n  });\n}\n\nfunction _onUnhandledRejection(ev) {\n  reportError(ev.reason, {\n    note: 'unhandled rejection'\n  });\n}\n\nwindow.addEventListener('error', _onError);\nwindow.addEventListener('unhandledrejection', _onUnhandledRejection);\n\nif (_config.interceptConsole) {\n  _interceptNativeConsoleFn('log');\n  _interceptNativeConsoleFn('info');\n  _interceptNativeConsoleFn('warn');\n  _interceptNativeConsoleFn('error');\n}\n\nif (_config.addGlobals) {\n  Object.assign(window, {\n    p,\n    pp\n  });\n}\n\nif (_config.autoUse) {\n  window.apivis && use(apivis);\n}\n\nexport default peek42;\n"],"names":["_isNullProtoObject","val","__proto__","undefined","_string","String","_comment","comment","note","str","replace","max","length","substr","_outputOptsDefaults","level","collapsed","_prettyMakesSense","Object","Function","pretty","objs","keys","JSON","stringify","k","v","seen","indexOf","push","p","opts","peek42","_output","pp","args","inspect","use","lib","assign","Symbol","toStringTag","LIB_NAME","version","LIB_VERSION","flash1","el","className","classList","add","setTimeout","remove","flash2","flashSizeLimit","flashNotice","flashSuccess","flashWarning","flashError","flashOutput","Resizer","constructor","elResizee","elFlashSizeLimit","elsMakeSameHeight","ratio","minRatio","maxRatio","_elResizee","_elFlashSizeLimit","_elsMakeSameHeight","_ratio","_minRatio","_maxRatio","_height","window","innerHeight","_resizeY","_resizeYDelta","_isResizing","_syncHeights","height","TypeError","styleHeight","style","forEach","isResizing","resizeStart","clientY","resize","minHeight","maxHeight","Math","min","resizeEnd","_logEntryToggleAndBody","elHead","firstElementChild","nextElementSibling","_logEntryExpand","elToggle","elBody","innerHTML","display","_logEntryCollapse","_logEntryToggle","_onLogEntryHeadClick","ev","currentTarget","addLogEntry","elLog","entrySimpleText","entryDesc","entryText","entryHtml","hidden","elEntry","document","createElement","textContent","elDesc","appendChild","addEventListener","insertBefore","firstChild","scrollTop","Console","instance","Promise","resolve","reject","readyState","_instance","Error","new","target","name","querySelector","_container","setAttribute","_html","body","_resizer","_log","_bar1","_isMinimized","_countsByLevel","info","log","warn","error","_title","_onTitleClick","_eval","_onEvalKeyPress","_clear","_onClearClick","_resize","_onResizeTouchStart","_onBodyTouchMove","_onBodyTouchEnd","_onWindowResize","_quietl","_onQuietClick","_toggle","_onToggleClick","toggle","minimize","_isLevelActive","contains","active","isMinimized","isQuiet","show","HTMLElement","dataset","peek42HtmlEntry","preventDefault","stopPropagation","toggleLogPos","crCode","charCodeAt","lfCode","charCode","evalJS","clear","touches","toggleQuiet","toggleDisplay","querySelectorAll","_toggleEntriesDisplay","elCtrl","activeClass","entriesClass","logIsAtTop","logPosBottom","logPosTop","scrollHeight","jsToEval","value","match","_printFnMap","pattern","join","parts","RegExp","dummy","expr","fn","js","err","sourceURL","sourceText","line","_quiet","checked","quiet","unquiet","_view","content","consoleHTML","t","type","d","desc","M","member","m","members","i","c","chain","a","api","x","dom","reTestTranspiledScriptStack","reCaptureSourceMappingURL","reCaptureEmbeddedSourceMap","reTestAbsoluteURL","reCapturePathAndName","isInlineScriptError","location","href","isTranspiledScriptError","stack","test","inlineScripts","Array","from","scripts","filter","script","getAttribute","map","source","sourceMap","originalErrorInfo","transpiledInlineScripts","_inlineScripts","scriptInfo","embeddedSourceMap","sourceMappingURL","transpiledInlineScriptsWithOriginalErrorInfoAsync","_transpiledInlineScripts","all","originalErrorInfoAsync","transpiledInlineScriptsSourceTracesAsync","sourceTrace","sourceTraceArgs","err1","console","column","errorSourceAsync","url","res","fetch","ok","status","statusText","text","_sourceMappingURL","base64","parse","atob","isAbsoluteURL","pathAndName","path","tryFetchAsync","as","sourceMapAsync","_sourceMap","SourceMapConsumer","with","consumer","position","originalPositionFor","sourceContentFor","_originalErrorInfo","line1","column1","indent","peekLines","lines","split","iLine","iColumn","traceLines","iTraceLineMax","iTraceLineBeg","iTraceLineEnd","padMax","margin","linePointer","columnFill","columnPointer","repeat","pad","lineMarker","columnMarker","formatErrorAsync","includeStack","trace","sourceTraceNA","reportError","then","_configDefaults","interceptConsole","addGlobals","autoUse","_config","PEEK42_CONFIG","_fnOrig","_interceptNativeConsoleFn","prototype","call","arguments","arg","loc","shift","apply","WS","origin","_url","_ws","WebSocket","code","serverWireData","data","serverData","onmessage","cable","init","_websocket","walk","elem","fnVisit","node","nextSibling","nodeTypeNames","Node","reduce","obj","slice","toLowerCase","formatAttrs","attrs","attr","formatNode","types","tag","tagName","nodeType","ELEMENT_NODE","has","ATTRIBUTE_NODE","attributes","COMMENT_NODE","trim","TEXT_NODE","domStr","elemOrSel","nodeTypes","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","include","exclude","Set","concat","includes","sn","_onError","_onUnhandledRejection","reason","apivis"],"mappings":"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"}