constructor(format, options = {}) {
        this.format = format;
        this.current = 0;
        this.total = 0;
        this.tokens = null;
        this.lastDraw = "";
        this.start = 0;
        this.complete = false;
        this.stream = options.stream || process.stderr;
        this.total = options.total;
        this.width = options.width || this.total;
        this.chars = {
            complete: options.complete || "=",
            incomplete: options.incomplete || "-",
            head: options.head || options.complete || "="
        };
    }
Initialize a `ProgressBar` with the given `fmt` string and `options` or`total`.

Options:
  - `curr` current completed index
  - `total` total number of ticks to complete
  - `width` the displayed width of the progress bar defaulting to total
  - `stream` the output stream defaulting to stderr
  - `head` head character defaulting to complete character
  - `complete` completion character defaulting to "="
  - `incomplete` incomplete character defaulting to "-"
  - `renderThrottle` minimum time between updates in milliseconds defaulting to 16
  - `callback` optional function to call when the progress bar completes
  - `clear` will clear the progress bar upon termination

Tokens:
  - `:bar` the progress bar itself
  - `:current` current tick number
  - `:total` total ticks
  - `:elapsed` time elapsed in seconds
  - `:percent` completion percentage
  - `:eta` eta in seconds
  - `:rate` rate of ticks per second