{"version":3,"sources":["../../logger.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-empty-function, no-restricted-syntax */\n\ndeclare const Zotero: any\n\ndeclare const dump: (msg: string) => void\n\nfunction stringifyXPCOM(obj: any): string {\n  if (!obj.QueryInterface) return ''\n  if (obj.message) return `[XPCOM error ${obj.message}]`\n  if (obj.name) return `[XPCOM object ${obj.name}]`\n  return '[XPCOM object]'\n}\n\nfunction stringifyError(obj: any): string {\n  if (obj instanceof Error) return `[error: ${obj.message || '<unspecified error>'}\\n${obj.stack}]`\n  // guess it is an errorevent\n  if (obj.error instanceof Error && obj.message) return `[errorevent: ${obj.message} ${stringifyError(obj.error)}]`\n  if (typeof ErrorEvent !== 'undefined' && obj instanceof ErrorEvent) return `[errorevent: ${obj.message || '<unspecified errorevent>'}]`\n  return ''\n}\n\nfunction replacer() {\n  const seen = new WeakSet()\n  return (key: string, value: any): any => {\n    if (typeof value === 'object' && value !== null) {\n      if (seen.has(value)) return '[Circular]'\n      seen.add(value)\n    }\n\n    if (value === null) return value\n    if (value instanceof Set) return [...value]\n    if (value instanceof Map) return Object.fromEntries(value)\n\n    switch (typeof value) {\n      case 'string':\n      case 'number':\n      case 'boolean':\n        return value\n\n      case 'object':\n        return stringifyXPCOM(value) || stringifyError(value) || value\n    }\n\n    if (Array.isArray(value)) return value\n\n    return undefined\n  }\n}\n\nexport class Logger {\n  public phase = ''\n  public indent?: number\n\n  constructor(public id: string) {\n  }\n\n  #prefix(error?: any) {\n    return `{${error ? 'error: ' : ''}${this.phase}${this.id}} `\n  }\n\n  public debug(...msg: any[]): void {\n    Zotero.debug(`${this.#prefix()}${this.format(...msg)}\\n`)\n  }\n\n  public info(...msg: any[]): void {\n    Zotero.debug(`${this.#prefix()}${this.format(...msg)}\\n`)\n  }\n\n  public error(...msg: any[]): void {\n    Zotero.debug(`${this.#prefix(true)}${this.format(...msg)}\\n`)\n  }\n\n  public dump(msg: string, error?: Error): void {\n    if (error) {\n      dump(`${this.#prefix(error)}${this.format(msg, error)}\\n`)\n    }\n    else {\n      dump(`${this.#prefix()}${this.format(msg)}\\n`)\n    }\n  }\n\n  private to_s(obj: any): string {\n    if (typeof obj === 'string') return obj\n    return JSON.stringify(obj, replacer(), this.indent)\n  }\n\n  public format(...msg: any[]): string {\n    return msg.map(m => this.to_s(m)).join(' ')\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe,KAAkB;AACxC,MAAI,CAAC,IAAI,eAAgB,QAAO;AAChC,MAAI,IAAI,QAAS,QAAO,gBAAgB,IAAI,OAAO;AACnD,MAAI,IAAI,KAAM,QAAO,iBAAiB,IAAI,IAAI;AAC9C,SAAO;AACT;AAEA,SAAS,eAAe,KAAkB;AACxC,MAAI,eAAe,MAAO,QAAO,WAAW,IAAI,WAAW,qBAAqB;AAAA,EAAK,IAAI,KAAK;AAE9F,MAAI,IAAI,iBAAiB,SAAS,IAAI,QAAS,QAAO,gBAAgB,IAAI,OAAO,IAAI,eAAe,IAAI,KAAK,CAAC;AAC9G,MAAI,OAAO,eAAe,eAAe,eAAe,WAAY,QAAO,gBAAgB,IAAI,WAAW,0BAA0B;AACpI,SAAO;AACT;AAEA,SAAS,WAAW;AAClB,QAAM,OAAO,oBAAI,QAAQ;AACzB,SAAO,CAAC,KAAa,UAAoB;AACvC,QAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,UAAI,KAAK,IAAI,KAAK,EAAG,QAAO;AAC5B,WAAK,IAAI,KAAK;AAAA,IAChB;AAEA,QAAI,UAAU,KAAM,QAAO;AAC3B,QAAI,iBAAiB,IAAK,QAAO,CAAC,GAAG,KAAK;AAC1C,QAAI,iBAAiB,IAAK,QAAO,OAAO,YAAY,KAAK;AAEzD,YAAQ,OAAO,OAAO;AAAA,MACpB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MAET,KAAK;AACH,eAAO,eAAe,KAAK,KAAK,eAAe,KAAK,KAAK;AAAA,IAC7D;AAEA,QAAI,MAAM,QAAQ,KAAK,EAAG,QAAO;AAEjC,WAAO;AAAA,EACT;AACF;AAEO,IAAM,SAAN,MAAa;AAAA,EAIlB,YAAmB,IAAY;AAAZ;AAAA,EACnB;AAAA,EAJO,QAAQ;AAAA,EACR;AAAA,EAKP,QAAQ,OAAa;AACnB,WAAO,IAAI,QAAQ,YAAY,EAAE,GAAG,KAAK,KAAK,GAAG,KAAK,EAAE;AAAA,EAC1D;AAAA,EAEO,SAAS,KAAkB;AAChC,WAAO,MAAM,GAAG,KAAK,QAAQ,CAAC,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC;AAAA,CAAI;AAAA,EAC1D;AAAA,EAEO,QAAQ,KAAkB;AAC/B,WAAO,MAAM,GAAG,KAAK,QAAQ,CAAC,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC;AAAA,CAAI;AAAA,EAC1D;AAAA,EAEO,SAAS,KAAkB;AAChC,WAAO,MAAM,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC;AAAA,CAAI;AAAA,EAC9D;AAAA,EAEO,KAAK,KAAa,OAAqB;AAC5C,QAAI,OAAO;AACT,WAAK,GAAG,KAAK,QAAQ,KAAK,CAAC,GAAG,KAAK,OAAO,KAAK,KAAK,CAAC;AAAA,CAAI;AAAA,IAC3D,OACK;AACH,WAAK,GAAG,KAAK,QAAQ,CAAC,GAAG,KAAK,OAAO,GAAG,CAAC;AAAA,CAAI;AAAA,IAC/C;AAAA,EACF;AAAA,EAEQ,KAAK,KAAkB;AAC7B,QAAI,OAAO,QAAQ,SAAU,QAAO;AACpC,WAAO,KAAK,UAAU,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,EACpD;AAAA,EAEO,UAAU,KAAoB;AACnC,WAAO,IAAI,IAAI,OAAK,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG;AAAA,EAC5C;AACF;","names":[]}