text: /*!
   * Bowser - a browser detector
   * https://github.com/lancedikson/bowser
   * MIT License | (c) Dustin Diaz 2012-2015
   * MIT License | (c) Denis Demchenko 2015-2017
   */
  import Parser from './parser.js';
  import {
    BROWSER_MAP,
    ENGINE_MAP,
    OS_MAP,
    PLATFORMS_MAP,
  } from './constants.js';
  
  /**
   * Bowser class.
   * Keep it simple as much as it can be.
   * It's supposed to work with collections of {@link Parser} instances
   * rather then solve one-instance problems.
   * All the one-instance stuff is located in Parser class.
   */
  class Bowser {
    /**
     * Creates a {@link module:parser:Parser} instance
     *
     * @param {String} UA UserAgent string
     * @param {Boolean} [skipParsing=false] same as skipParsing for {@link Parser}
     * @returns {Parser}
     * @throws {Error} when UA is not a String
     *
     * @example
     * const parser = Bowser.getParser(window.navigator.userAgent);
     * const result = parser.getResult();
     */
    static getParser(UA, skipParsing = false) {
      if (typeof UA !== 'string') {
        throw new Error('UserAgent should be a string');
      }
      return new Parser(UA, skipParsing);
    }
  
    /**
     * Creates a {@link Parser} instance and runs {@link Parser.getResult} immediately
     *
     * @param UA
     * @return {ParsedResult}
     *
     * @example
     * const result = Bowser.parse(window.navigator.userAgent);
     */
    static parse(UA) {
      return (new Parser(UA)).getResult();
    }
  }
  
  Bowser.BROWSER_MAP = BROWSER_MAP;
  Bowser.ENGINE_MAP = ENGINE_MAP;
  Bowser.OS_MAP = OS_MAP;
  Bowser.PLATFORMS_MAP = PLATFORMS_MAP;
  
  export default Bowser;
  