{
  "version": 3,
  "sources": ["../src/index.ts", "../src/loggers/probe-log.ts", "../src/utils/assert.ts", "../src/loggers/log-utils.ts", "../src/loggers/base-log.ts", "../src/utils/local-storage.ts", "../src/utils/formatters.ts", "../src/utils/color.ts", "../src/utils/autobind.ts", "../src/utils/hi-res-timestamp.ts", "../src/loggers/console-log.ts", "../src/loggers/memory-log.ts", "../src/init.ts"],
  "sourcesContent": ["import {ProbeLog} from './loggers/probe-log';\n\n// DEFAULT EXPORT IS A LOG INSTANCE\nexport default new ProbeLog({id: '@probe.gl/log'});\n\n// LOGGING\nexport type {Logger} from './loggers/logger';\nexport {ProbeLog, ProbeLog as Log} from './loggers/probe-log';\nexport {ConsoleLog} from './loggers/console-log';\nexport {BaseLog} from './loggers/base-log';\nexport type {MemoryLogMessage} from './loggers/memory-log';\nexport {MemoryLog} from './loggers/memory-log';\n\n// UTILITIES\nexport {COLOR} from './utils/color';\nexport {addColor} from './utils/color';\nexport {leftPad, rightPad} from './utils/formatters';\nexport {autobind} from './utils/autobind';\nexport {LocalStorage} from './utils/local-storage';\nexport {getHiResTimestamp} from './utils/hi-res-timestamp';\n\nimport './init';\n", "// probe.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable no-console,prefer-rest-params */\nimport {VERSION, isBrowser} from '@probe.gl/env';\nimport {LogFunction} from './logger';\nimport {BaseLog, NormalizedLogArguments, noop} from './base-log';\nimport {LocalStorage} from '../utils/local-storage';\nimport {formatTime, leftPad} from '../utils/formatters';\nimport {addColor} from '../utils/color';\nimport {autobind} from '../utils/autobind';\nimport assert from '../utils/assert';\nimport {getHiResTimestamp} from '../utils/hi-res-timestamp';\n\n/** \"Global\" log configuration settings */\ntype ProbeLogConfiguration = {\n  enabled?: boolean;\n  level?: number;\n  [key: string]: unknown;\n};\n\ntype Table = Record<string, any>;\n\n// Instrumentation in other packages may override console methods, so preserve them here\nconst originalConsole = {\n  debug: isBrowser() ? console.debug || console.log : console.log,\n  log: console.log,\n  info: console.info,\n  warn: console.warn,\n  error: console.error\n};\n\nconst DEFAULT_LOG_CONFIGURATION: Required<ProbeLogConfiguration> = {\n  enabled: true,\n  level: 0\n};\n\n/** A console wrapper */\n\nexport class ProbeLog extends BaseLog {\n  static VERSION = VERSION;\n\n  id: string;\n  VERSION: string = VERSION;\n  _startTs: number = getHiResTimestamp();\n  _deltaTs: number = getHiResTimestamp();\n  _storage: LocalStorage<Record<string, ProbeLogConfiguration>>;\n  override userData = {};\n\n  // TODO - fix support from throttling groups\n  LOG_THROTTLE_TIMEOUT: number = 0; // Time before throttled messages are logged again\n\n  constructor({id} = {id: ''}) {\n    super({level: 0});\n    this.id = id;\n    this.userData = {};\n    this._storage = new LocalStorage<Record<string, ProbeLogConfiguration>>(\n      `__probe-${this.id}__`,\n      {[this.id]: DEFAULT_LOG_CONFIGURATION}\n    );\n\n    this.timeStamp(`${this.id} started`);\n\n    autobind(this);\n    Object.seal(this);\n  }\n\n  isEnabled(): boolean {\n    return this._getConfiguration().enabled;\n  }\n\n  override getLevel(): number {\n    return this._getConfiguration().level;\n  }\n\n  /** @return milliseconds, with fractions */\n  getTotal(): number {\n    return Number((getHiResTimestamp() - this._startTs).toPrecision(10));\n  }\n\n  /** @return milliseconds, with fractions */\n  getDelta(): number {\n    return Number((getHiResTimestamp() - this._deltaTs).toPrecision(10));\n  }\n\n  /** @deprecated use logLevel */\n  set priority(newPriority: number) {\n    this.level = newPriority;\n  }\n\n  /** @deprecated use logLevel */\n  get priority(): number {\n    return this.level;\n  }\n\n  /** @deprecated use logLevel */\n  getPriority(): number {\n    return this.level;\n  }\n\n  // Configure\n\n  enable(enabled: boolean = true): this {\n    this._updateConfiguration({enabled});\n    return this;\n  }\n\n  override setLevel(level: number): this {\n    this._updateConfiguration({level});\n    return this;\n  }\n\n  /** return the current status of the setting */\n  get(setting: string): any {\n    return this._getConfiguration()[setting];\n  }\n\n  // update the status of the setting\n  set(setting: string, value: any): void {\n    this._updateConfiguration({[setting]: value});\n  }\n\n  /** Logs the current settings as a table */\n  settings(): void {\n    if (console.table) {\n      console.table(this._storage.config);\n    } else {\n      console.log(this._storage.config);\n    }\n  }\n\n  // Unconditional logging\n\n  assert(condition: unknown, message?: string): asserts condition {\n    if (!condition) {\n      throw new Error(message || 'Assertion failed');\n    }\n  }\n\n  /** Warn, but only once, no console flooding */\n  override warn(message: string, ...args: unknown[]): LogFunction;\n  override warn(message: string, ...args: unknown[]): LogFunction {\n    return this._log('warn', 0, message, args, {\n      method: originalConsole.warn,\n      once: true\n    });\n  }\n\n  /** Print an error */\n  override error(message: string, ...args: unknown[]): LogFunction;\n  override error(message: string, ...args: unknown[]): LogFunction {\n    return this._log('error', 0, message, args, {\n      method: originalConsole.error\n    });\n  }\n\n  /** Print a deprecation warning */\n  deprecated(oldUsage: string, newUsage: string): LogFunction {\n    return this.warn(`\\`${oldUsage}\\` is deprecated and will be removed \\\nin a later version. Use \\`${newUsage}\\` instead`);\n  }\n\n  /** Print a removal warning */\n  removed(oldUsage: string, newUsage: string): LogFunction {\n    return this.error(`\\`${oldUsage}\\` has been removed. Use \\`${newUsage}\\` instead`);\n  }\n\n  // Conditional logging\n\n  /** Log to a group */\n  probe(logLevel, message?, ...args: unknown[]): LogFunction;\n  probe(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('log', logLevel, message, args, {\n      method: originalConsole.log,\n      time: true,\n      once: true\n    });\n  }\n\n  /** Log a debug message */\n  override log(logLevel, message?, ...args: unknown[]): LogFunction;\n  override log(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('log', logLevel, message, args, {\n      method: originalConsole.debug\n    });\n  }\n\n  /** Log a normal message */\n  override info(logLevel, message?, ...args: unknown[]): LogFunction;\n  override info(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('info', logLevel, message, args, {method: console.info});\n  }\n\n  /** Log a normal message, but only once, no console flooding */\n  override once(logLevel, message?, ...args: unknown[]): LogFunction;\n  override once(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('once', logLevel, message, args, {\n      method: originalConsole.debug || originalConsole.info,\n      once: true\n    });\n  }\n\n  /** Logs an object as a table */\n  table(logLevel, table?, columns?): LogFunction {\n    if (table) {\n      return this._log('table', logLevel, table, (columns && [columns]) || [], {\n        method: console.table || noop,\n        tag: getTableHeader(table)\n      });\n    }\n    return noop;\n  }\n\n  time(logLevel, message) {\n    return this._log('time', logLevel, message, [], {\n      method: console.time ? console.time : console.info\n    });\n  }\n\n  timeEnd(logLevel, message) {\n    return this._log('time', logLevel, message, [], {\n      method: console.timeEnd ? console.timeEnd : console.info\n    });\n  }\n\n  timeStamp(logLevel, message?) {\n    return this._log('time', logLevel, message, [], {\n      method: console.timeStamp || noop\n    });\n  }\n\n  group(logLevel, message, opts = {collapsed: false}) {\n    const method = (opts.collapsed ? console.groupCollapsed : console.group) || console.info;\n    return this._log('group', logLevel, message, [], {method});\n  }\n\n  groupCollapsed(logLevel, message, opts = {}) {\n    return this.group(logLevel, message, Object.assign({}, opts, {collapsed: true}));\n  }\n\n  groupEnd(logLevel) {\n    return this._log('groupEnd', logLevel, '', [], {\n      method: console.groupEnd || noop\n    });\n  }\n\n  // EXPERIMENTAL\n\n  withGroup(logLevel: number, message: string, func: Function): void {\n    this.group(logLevel, message)();\n\n    try {\n      func();\n    } finally {\n      this.groupEnd(logLevel)();\n    }\n  }\n\n  trace(): void {\n    if (console.trace) {\n      console.trace();\n    }\n  }\n\n  protected override _shouldLog(logLevel: unknown): boolean {\n    return this.isEnabled() && super._shouldLog(logLevel);\n  }\n\n  protected override _emit(_type: string, normalized: NormalizedLogArguments): LogFunction {\n    const method = normalized.method;\n    assert(method);\n\n    normalized.total = this.getTotal();\n    normalized.delta = this.getDelta();\n    // reset delta timer\n    this._deltaTs = getHiResTimestamp();\n\n    const message = decorateMessage(this.id, normalized.message, normalized);\n\n    // Bind console function so that it can be called after being returned\n    return method.bind(console, message, ...normalized.args);\n  }\n\n  _getConfiguration(): Required<ProbeLogConfiguration> {\n    if (!this._storage.config[this.id]) {\n      this._updateConfiguration(DEFAULT_LOG_CONFIGURATION);\n    }\n\n    // @ts-expect-error guaranteed to be defined\n    return this._storage.config[this.id];\n  }\n\n  _updateConfiguration(configuration: ProbeLogConfiguration): void {\n    const currentConfiguration = this._storage.config[this.id] || {\n      ...DEFAULT_LOG_CONFIGURATION\n    };\n    this._storage.setConfiguration({\n      [this.id]: {...currentConfiguration, ...configuration}\n    });\n  }\n}\n\nfunction decorateMessage(id, message, opts) {\n  if (typeof message === 'string') {\n    const time = opts.time ? leftPad(formatTime(opts.total)) : '';\n    message = opts.time ? `${id}: ${time}  ${message}` : `${id}: ${message}`;\n    message = addColor(message, opts.color, opts.background);\n  }\n  return message;\n}\n\nfunction getTableHeader(table: Table): string {\n  for (const key in table) {\n    for (const title in table[key]) {\n      return title || 'untitled';\n    }\n  }\n  return 'empty';\n}\n\nexport {normalizeArguments} from './log-utils';\nexport {normalizeLogLevel} from './log-utils';\n", "export default function assert(condition: unknown, message?: string): asserts condition {\n  if (!condition) {\n    throw new Error(message || 'Assertion failed');\n  }\n}\n", "// probe.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport assert from '../utils/assert';\n\n/**\n * Get logLevel from first argument:\n * - log(logLevel, message, args) => logLevel\n * - log(message, args) => 0\n * - log({logLevel, ...}, message, args) => logLevel\n * - log({logLevel, message, args}) => logLevel\n */\nexport function normalizeLogLevel(logLevel: unknown): number {\n  if (!logLevel) {\n    return 0;\n  }\n  let resolvedLevel;\n\n  switch (typeof logLevel) {\n    case 'number':\n      resolvedLevel = logLevel;\n      break;\n\n    case 'object':\n      // Backward compatibility\n      // TODO - deprecate `priority`\n      // @ts-expect-error\n      resolvedLevel = logLevel.logLevel || logLevel.priority || 0;\n      break;\n\n    default:\n      return 0;\n  }\n  // 'log level must be a number'\n  assert(Number.isFinite(resolvedLevel) && resolvedLevel >= 0);\n\n  return resolvedLevel;\n}\n\n/**\n * \"Normalizes\" the various argument patterns into an object with known types\n * - log(logLevel, message, args) => {logLevel, message, args}\n * - log(message, args) => {logLevel: 0, message, args}\n * - log({logLevel, ...}, message, args) => {logLevel, message, args}\n * - log({logLevel, message, args}) => {logLevel, message, args}\n */\nexport function normalizeArguments(opts: {\n  logLevel;\n  message;\n  collapsed?: boolean;\n  args?: IArguments | any[] | undefined;\n  opts?;\n}): NormalizedArguments {\n  const {logLevel, message} = opts;\n  opts.logLevel = normalizeLogLevel(logLevel);\n\n  // We use `arguments` instead of rest parameters (...args) because IE\n  // does not support the syntax. Rest parameters is transpiled to code with\n  // perf impact. Doing it here instead avoids constructing args when logging is\n  // disabled.\n  // TODO - remove when/if IE support is dropped\n  const args: any[] = opts.args ? Array.from(opts.args) : [];\n  // args should only contain arguments that appear after `message`\n  // eslint-disable-next-line no-empty\n  while (args.length && args.shift() !== message) {}\n\n  switch (typeof logLevel) {\n    case 'string':\n    case 'function':\n      if (message !== undefined) {\n        args.unshift(message);\n      }\n      opts.message = logLevel;\n      break;\n\n    case 'object':\n      Object.assign(opts, logLevel);\n      break;\n\n    default:\n  }\n\n  // Resolve functions into strings by calling them\n  if (typeof opts.message === 'function') {\n    opts.message = opts.message();\n  }\n  const messageType = typeof opts.message;\n  // 'log message must be a string' or object\n  assert(messageType === 'string' || messageType === 'object');\n\n  // original opts + normalized opts + opts arg + fixed up message\n  return Object.assign(opts, {args}, opts.opts);\n}\nexport type NormalizedArguments = {\n  logLevel: number;\n  message: any;\n  args: any[];\n  tag?: unknown;\n  method?: Function;\n  once?: boolean;\n  total?: number;\n  delta?: number;\n  [key: string]: any;\n};\n", "// probe.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Logger, LogFunction} from './logger';\nimport {NormalizedArguments, normalizeArguments, normalizeLogLevel} from './log-utils';\n\nconst noop = () => {};\n\nexport type NormalizedLogArguments = NormalizedArguments;\ntype LogType = 'log' | 'info' | 'once' | 'warn' | 'error' | 'table' | 'group' | 'groupEnd' | 'time';\n\ntype LogOptions = Partial<NormalizedLogArguments>;\n\n/**\n * Base logger that implements log level handling and once de-duplication.\n * Concrete loggers implement `_emit` to perform actual output.\n */\nexport abstract class BaseLog implements Logger {\n  userData: Record<string, unknown> = {};\n\n  protected _level: number;\n  protected _onceCache = new Set<unknown>();\n\n  constructor({level = 0}: {level?: number} = {}) {\n    this._level = level;\n  }\n\n  set level(newLevel: number) {\n    this.setLevel(newLevel);\n  }\n\n  get level(): number {\n    return this.getLevel();\n  }\n\n  setLevel(level: number): this {\n    this._level = level;\n    return this;\n  }\n\n  getLevel(): number {\n    return this._level;\n  }\n\n  // Unconditional logging\n\n  warn(message: string, ...args: unknown[]): LogFunction {\n    return this._log('warn', 0, message, args, {once: true});\n  }\n\n  error(message: string, ...args: unknown[]): LogFunction {\n    return this._log('error', 0, message, args);\n  }\n\n  // Conditional logging\n\n  log(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('log', logLevel, message, args);\n  }\n\n  info(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('info', logLevel, message, args);\n  }\n\n  once(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('once', logLevel, message, args, {once: true});\n  }\n\n  protected _log(\n    type: LogType,\n    logLevel: unknown,\n    message: unknown,\n    args: unknown[],\n    options: LogOptions = {}\n  ): LogFunction {\n    const normalized = normalizeArguments({\n      logLevel,\n      message,\n      args: this._buildArgs(logLevel, message, args),\n      opts: options\n    });\n\n    return this._createLogFunction(type, normalized, options);\n  }\n\n  protected _buildArgs(logLevel: unknown, message: unknown, args: unknown[]): unknown[] {\n    return [logLevel, message, ...args];\n  }\n\n  protected _createLogFunction(\n    type: LogType,\n    normalized: NormalizedLogArguments,\n    options: LogOptions\n  ): LogFunction {\n    if (!this._shouldLog(normalized.logLevel)) {\n      return noop;\n    }\n\n    const tag = this._getOnceTag(options.tag ?? normalized.tag ?? normalized.message);\n    if ((options.once || normalized.once) && tag !== undefined) {\n      if (this._onceCache.has(tag)) {\n        return noop;\n      }\n      this._onceCache.add(tag);\n    }\n\n    return this._emit(type, normalized);\n  }\n\n  protected _shouldLog(logLevel: unknown): boolean {\n    return this.getLevel() >= normalizeLogLevel(logLevel);\n  }\n\n  protected _getOnceTag(tag: unknown): unknown {\n    if (tag === undefined) {\n      return undefined;\n    }\n    try {\n      return typeof tag === 'string' ? tag : String(tag);\n    } catch {\n      return undefined;\n    }\n  }\n\n  /** Create the actual log function for this logger implementation. */\n  protected abstract _emit(type: LogType, normalized: NormalizedLogArguments): LogFunction;\n}\n\nexport {noop};\n", "// probe.gl, MIT license\n\nexport type StorageType = 'sessionStorage' | 'localStorage';\n\nfunction getStorage(type: StorageType): Storage | null {\n  try {\n    const storage: Storage = window[type];\n    const x = '__storage_test__';\n    storage.setItem(x, x);\n    storage.removeItem(x);\n    return storage;\n  } catch (e) {\n    return null;\n  }\n}\n\n// Store keys in local storage via simple interface\nexport class LocalStorage<Configuration extends {}> {\n  storage: Storage | null;\n  id: string;\n  config: Required<Configuration>;\n\n  constructor(\n    id: string,\n    defaultConfig: Required<Configuration>,\n    type: StorageType = 'sessionStorage'\n  ) {\n    this.storage = getStorage(type);\n    this.id = id;\n    this.config = defaultConfig;\n    this._loadConfiguration();\n  }\n\n  getConfiguration(): Required<Configuration> {\n    return this.config;\n  }\n\n  setConfiguration(configuration: Configuration): void {\n    Object.assign(this.config, configuration);\n    if (this.storage) {\n      const serialized = JSON.stringify(this.config);\n      this.storage.setItem(this.id, serialized);\n    }\n  }\n\n  // Get config from persistent store, if available\n  _loadConfiguration() {\n    let configuration = {};\n    if (this.storage) {\n      const serializedConfiguration = this.storage.getItem(this.id);\n      configuration = serializedConfiguration ? JSON.parse(serializedConfiguration) : {};\n    }\n    Object.assign(this.config, configuration);\n    return this;\n  }\n}\n", "// probe.gl, MIT license\n\nexport type FormatValueOptions = {\n  isInteger?: boolean;\n  maxElts?: number;\n  size?: number;\n};\n\n/**\n * Format time\n */\nexport function formatTime(ms: number): string {\n  let formatted;\n  if (ms < 10) {\n    formatted = `${ms.toFixed(2)}ms`;\n  } else if (ms < 100) {\n    formatted = `${ms.toFixed(1)}ms`;\n  } else if (ms < 1000) {\n    formatted = `${ms.toFixed(0)}ms`;\n  } else {\n    formatted = `${(ms / 1000).toFixed(2)}s`;\n  }\n  return formatted;\n}\n\nexport function leftPad(string: string, length: number = 8): string {\n  const padLength = Math.max(length - string.length, 0);\n  return `${' '.repeat(padLength)}${string}`;\n}\n\nexport function rightPad(string: string, length: number = 8): string {\n  const padLength = Math.max(length - string.length, 0);\n  return `${string}${' '.repeat(padLength)}`;\n}\n\nexport function formatValue(v: unknown, options: FormatValueOptions = {}): string {\n  const EPSILON = 1e-16;\n  const {isInteger = false} = options;\n  if (Array.isArray(v) || ArrayBuffer.isView(v)) {\n    return formatArrayValue(v, options);\n  }\n  if (!Number.isFinite(v)) {\n    return String(v);\n  }\n  // @ts-expect-error\n  if (Math.abs(v) < EPSILON) {\n    return isInteger ? '0' : '0.';\n  }\n  if (isInteger) {\n    // @ts-expect-error\n    return v.toFixed(0);\n  }\n  // @ts-expect-error\n  if (Math.abs(v) > 100 && Math.abs(v) < 10000) {\n    // @ts-expect-error\n    return v.toFixed(0);\n  }\n  // @ts-expect-error\n  const string = v.toPrecision(2);\n  const decimal = string.indexOf('.0');\n  return decimal === string.length - 2 ? string.slice(0, -1) : string;\n}\n\n/** Helper to formatValue */\nfunction formatArrayValue(v: any, options: FormatValueOptions) {\n  const {maxElts = 16, size = 1} = options;\n  let string = '[';\n  for (let i = 0; i < v.length && i < maxElts; ++i) {\n    if (i > 0) {\n      string += `,${i % size === 0 ? ' ' : ''}`;\n    }\n    string += formatValue(v[i], options);\n  }\n  const terminator = v.length > maxElts ? '...' : ']';\n  return `${string}${terminator}`;\n}\n", "import {isBrowser} from '@probe.gl/env';\n\nexport enum COLOR {\n  BLACK = 30,\n  RED = 31,\n  GREEN = 32,\n  YELLOW = 33,\n  BLUE = 34,\n  MAGENTA = 35,\n  CYAN = 36,\n  WHITE = 37,\n\n  BRIGHT_BLACK = 90,\n  BRIGHT_RED = 91,\n  BRIGHT_GREEN = 92,\n  BRIGHT_YELLOW = 93,\n  BRIGHT_BLUE = 94,\n  BRIGHT_MAGENTA = 95,\n  BRIGHT_CYAN = 96,\n  BRIGHT_WHITE = 97\n}\n\nconst BACKGROUND_INCREMENT = 10;\n\nfunction getColor(color: string | COLOR): number {\n  if (typeof color !== 'string') {\n    return color;\n  }\n  color = color.toUpperCase();\n  return COLOR[color] || COLOR.WHITE;\n}\n\nexport function addColor(\n  string: string,\n  color: string | COLOR,\n  background?: string | COLOR\n): string {\n  if (!isBrowser && typeof string === 'string') {\n    if (color) {\n      const colorCode = getColor(color);\n      string = `\\u001b[${colorCode}m${string}\\u001b[39m`;\n    }\n    if (background) {\n      // background colors values are +10\n      const colorCode = getColor(background);\n      string = `\\u001b[${colorCode + BACKGROUND_INCREMENT}m${string}\\u001b[49m`;\n    }\n  }\n  return string;\n}\n", "// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/**\n * Binds the \"this\" argument of all functions on a class instance to the instance\n * @param obj - class instance (typically a react component)\n */\nexport function autobind(obj: object, predefined = ['constructor']): void {\n  const proto = Object.getPrototypeOf(obj);\n  const propNames = Object.getOwnPropertyNames(proto);\n\n  const object = obj as Record<string, unknown>;\n  for (const key of propNames) {\n    const value = object[key];\n    if (typeof value === 'function') {\n      if (!predefined.find((name) => key === name)) {\n        object[key] = value.bind(obj);\n      }\n    }\n  }\n}\n", "// probe.gl, MIT license\n\nimport {window, process, isBrowser} from '@probe.gl/env';\n\n/** Get best timer available. */\nexport function getHiResTimestamp() {\n  let timestamp;\n  if (isBrowser() && window.performance) {\n    timestamp = window?.performance?.now?.();\n  } else if ('hrtime' in process) {\n    // @ts-ignore\n    const timeParts = process?.hrtime?.();\n    timestamp = timeParts[0] * 1000 + timeParts[1] / 1e6;\n  } else {\n    timestamp = Date.now();\n  }\n\n  return timestamp;\n}\n", "// probe.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable no-console */\n\nimport {LogFunction} from './logger';\nimport {BaseLog, NormalizedLogArguments, noop} from './base-log';\n\n/**\n * Minimal console-backed logger. Does not persist configuration or implement log levels.\n * Intended as a lightweight Logger implementation.\n */\nexport class ConsoleLog extends BaseLog {\n  override warn(message: string, ...args: unknown[]): LogFunction {\n    return this._log('warn', 0, message, args, {\n      method: console.warn || console.log,\n      once: true\n    });\n  }\n\n  override error(message: string, ...args: unknown[]): LogFunction {\n    return this._log('error', 0, message, args, {method: console.error});\n  }\n\n  override log(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('log', logLevel, message, args, {\n      method: console.debug || console.log\n    });\n  }\n\n  override info(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('info', logLevel, message, args, {\n      method: console.info || console.log\n    });\n  }\n\n  override once(logLevel, message?, ...args: unknown[]): LogFunction {\n    return this._log('once', logLevel, message, args, {\n      method: console.debug || console.info || console.log,\n      once: true\n    });\n  }\n\n  protected override _emit(_type: string, normalized: NormalizedLogArguments): LogFunction {\n    const method = normalized.method;\n    if (!method) {\n      return noop;\n    }\n    return method.bind(console, normalized.message, ...normalized.args);\n  }\n}\n", "// probe.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {LogFunction} from './logger';\nimport {BaseLog, NormalizedLogArguments} from './base-log';\n\nexport type MemoryLogMessage = {\n  level: number;\n  type: 'warning' | 'error' | 'log' | 'info' | 'once' | 'table';\n  message: string;\n  args: unknown[];\n};\n\nexport class MemoryLog extends BaseLog {\n  override userData: Record<string, unknown> = {};\n\n  messages: MemoryLogMessage[] = [];\n  onMessage?: ((message: MemoryLogMessage) => void) | undefined;\n\n  constructor(\n    options: {\n      onMessage?: (message: MemoryLogMessage) => void;\n      level?: number;\n    } = {}\n  ) {\n    super({level: options.level ?? 0});\n    this.onMessage = options.onMessage;\n  }\n\n  protected override _emit(type: string, normalized: NormalizedLogArguments): LogFunction {\n    const messageText = String(normalized.message);\n    const entry: MemoryLogMessage = {\n      type: this._normalizeType(type),\n      level: normalized.logLevel,\n      message: messageText,\n      args: normalized.args\n    };\n\n    return () => {\n      this.messages.push(entry);\n      if (this.onMessage) {\n        this.onMessage(entry);\n      }\n    };\n  }\n\n  private _normalizeType(type: string): MemoryLogMessage['type'] {\n    switch (type) {\n      case 'warn':\n        return 'warning';\n      case 'error':\n        return 'error';\n      case 'info':\n        return 'info';\n      case 'once':\n        return 'once';\n      case 'table':\n        return 'table';\n      default:\n        return 'log';\n    }\n  }\n}\n", "// @ts-nocheck\n/* eslint-disable */\nglobalThis.probe = {};\n"],
  "mappings": "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",
  "names": ["import_env", "COLOR", "import_env"]
}
