constructor(opts = {}) {
    super(opts)

    // To store a wsEndpoint (= browser instance) > tunnel reference
    this._browserSessions = {}
  }
As the tunnel page is public the plugin will require basic auth.

You can set your own credentials using `opts` or `setAuthCredentials()`.

If you don't specify basic auth credentials the plugin will
generate a password and print it to STDOUT.

**opts**
@param {Object} opts - Options
@param {Object} [opts.auth] - Basic auth credentials for the public page
@param {string} [opts.auth.user] - Username (default: 'user')
@param {string} [opts.auth.pass] - Password (will be generated if not provided)
@param {Object} [opts.prefix] - The prefix to use for the localtunnel.me subdomain (default: 'devtools-tunnel')

@example
const puppeteer = require('puppeteer-extra')
const devtools = require('puppeteer-extra-plugin-devtools')({
  auth: { user: 'francis', pass: 'president' }
})
puppeteer.use(devtools)

puppeteer.launch().then(async browser => {
  console.log('tunnel url:', (await devtools.createTunnel(browser)).url)
  // => tunnel url: https://devtools-tunnel-n9aogqwx3d.localtunnel.me
})