'use strict'; const Axios = require('axios'); const Utils = require('./Utils'); const Constants = require('./Constants'); const EventEmitter = require('events'); const Uuid = require('uuid'); class OAuth extends EventEmitter { constructor(auth_info) { super(); this.refresh_interval = 5; this.oauth_code_url = `${Constants.URLS.YT_BASE_URL}/o/oauth2/device/code`; this.oauth_token_url = `${Constants.URLS.YT_BASE_URL}/o/oauth2/token`; this.guide_url = `${Constants.URLS.YT_BASE_URL}/youtubei/v1/guide`; this.model_name = Constants.OAUTH.MODEL_NAME; this.grant_type = Constants.OAUTH.GRANT_TYPE; this.scope = Constants.OAUTH.SCOPE; this.auth_script_regex = /