{"version":3,"sources":["jsdelivr-header.js","/npm/node-twitch-api@0.1.2/node-twitch-api.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aACA,IAAI,QAAU,QAAQ,WACjB,OAAS,QAAQ,iBAEtB,MAAM,aACJ,WAAA,CAAY,GACL,IAAQ,EAAS,CAAC,GACnB,iBAAkB,IAAQ,KAAK,aAAe,EAAO,cACrD,UAAW,IAAQ,KAAK,MAAQ,EAAO,OACvC,cAAe,IAAQ,KAAK,UAAY,EAAO,UACrD,CAEA,GAAA,CAAI,EAAU,EAAQ,GACpB,KAAK,QAAQ,MAAO,EAAU,EAAQ,EACxC,CAEA,GAAA,CAAI,EAAU,EAAQ,GACpB,KAAK,QAAQ,MAAO,EAAU,EAAQ,EACxC,CAEA,OAAO,EAAU,EAAQ,GACvB,KAAK,QAAQ,SAAU,EAAU,EAAQ,EAC3C,CAEA,GAAA,CAAI,EAAU,EAAQ,GACpB,KAAK,QAAQ,SAAU,EAAU,EAAQ,EAC3C,CAEA,IAAA,CAAK,EAAU,EAAQ,GACrB,KAAK,QAAQ,OAAQ,EAAU,EAAQ,EACzC,CAEA,OAAA,CAAQ,EAAM,EAAU,EAAQ,GAC9B,KAAM,KAAQ,OAAO,WAAY,MAAM,IAAI,MAAM,wBAAwB,qDACzE,IAAiD,GAA7C,OAAO,UAAU,GAAM,QAAQ,GAAiB,MAAM,IAAI,MAAM,oBAAoB,eAExF,IAAI,EAUJ,IAAK,IAAI,IATY,mBAAV,GACT,EAAW,EACX,EAAM,GAGN,EAAM,KAAK,YAAY,EAAS,GAGlC,GAAO,IACO,EACZ,GAAO,EAAI,IAAM,EAAO,GAAK,IAK/B,KAFM,iBAAkB,IAAW,KAAK,eAAc,GAAO,gBAAgB,KAAK,aAAa,OAElF,UAAR,GAA4B,OAAR,GAAyB,QAAR,GAAqB,iBAAkB,GAAY,KAAK,cAChG,MAAM,IAAI,MAAM,8DAElB,KAAK,SAAS,EAAM,EAAK,EAC3B,CAEA,WAAA,CAAY,EAAU,GAChB,EAAY,EAAU,MAAM,KAChC,IAAK,IAAI,KAAK,EAAW,CACvB,IAAI,EAAW,EAAU,GACzB,GAAI,EAAS,QACP,EAAS,QAAQ,MAAQ,EAAG,CAE9B,IAAI,EAAQ,EAAS,OAAO,GAC5B,KAAM,KAAS,GAAS,CACtB,IAAI,EAAM,EAAU,KAAK,KACzB,MAAM,IAAI,MAAM,SAAS,sCAA0C,IACrE,CAEA,EAAU,GAAK,EAAO,UACf,EAAO,EAChB,CAEJ,CACA,OAAO,EAAU,KAAK,IACxB,CAEA,QAAA,CAAS,EAAM,EAAW,GACxB,IAAK,GAA+B,mBAAZ,EAAwB,OAAO,EACvD,QAAQ,IAAI,WAAW,OAAO,OAAO,MAAM,KACvC,KAAK,YAAW,GAAa,aAAa,KAAK,UAAU,KACzD,KAAK,QAAO,GAAa,SAAS,KAAK,MAAM,KACjD,IAAI,EAAO,CACT,IAAK,OAAO,OAAO,IAAM,GAEvB,EAAO,KAEX,OAAO,GACL,IAAK,MACH,QAAQ,IAAI,EAAM,GAClB,MACF,IAAK,MACH,QAAQ,IAAI,EAAM,GAClB,MACF,IAAK,SACH,QAAQ,OAAO,EAAM,GACrB,MACF,IAAK,OACH,QAAQ,KAAK,EAAM,GAGvB,SAAS,EAAO,EAAK,EAAK,GACxB,EAAO,KAAK,MAAM,GACd,GAAU,EAAS,KAAK,EAAM,EAAK,EACzC,CACF,EAEF,OAAO,QAAU","file":"/npm/node-twitch-api@0.1.2/node-twitch-api.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/node-twitch-api@0.1.2/node-twitch-api.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\"\r\nvar request = require(\"request\"),\r\n     config = require('./config.json')\r\n\r\nclass TwitchClient {\r\n  constructor(config) {\r\n    if (!config) config = {}\r\n    if (\"access_token\" in config) this.access_token = config.access_token\r\n    if (\"scope\" in config) this.scope = config.scope\r\n    if (\"client_id\" in config) this.client_id = config.client_id\r\n  }\r\n\r\n  get(endpoint, params, callback) {\r\n    this.request('get', endpoint, params, callback)\r\n  }\r\n\r\n  put(endpoint, params, callback) {\r\n    this.request('put', endpoint, params, callback)\r\n  }\r\n\r\n  delete(endpoint, params, callback) {\r\n    this.request('delete', endpoint, params, callback)\r\n  }\r\n\r\n  del(endpoint, params, callback) {\r\n    this.request('delete', endpoint, params, callback)\r\n  }\r\n\r\n  post(endpoint, params, callback) {\r\n    this.request('post', endpoint, params, callback)\r\n  }\r\n\r\n  request(type, endpoint, params, callback) {\r\n    if (!(type in config.endpoints)) throw new Error(`Invalid request type ${type} specified, expecting get, put, delete, or post.`)\r\n    if (config.endpoints[type].indexOf(endpoint) == -1) throw new Error(`Invalid endpoint ${endpoint} specified`)\r\n    \r\n    var url;\r\n    if (typeof params == 'function') {\r\n      callback = params\r\n      url = endpoint\r\n    }\r\n    else {\r\n      url = this._fillParams(endpoint,params)\r\n    }\r\n\r\n    url += '?'\r\n    for (var i in params) {\r\n      url += i + '=' + params[i] + '&'\r\n    }\r\n\r\n    if (!(\"access_token\" in params) && this.access_token) url += 'access_token='+this.access_token+'&'\r\n\r\n    if ((type == 'delete' || type == 'put' || type == 'post') && !('access_token' in params) && !this.access_token) {\r\n      throw new Error('Delete, post and put requests require a valid access token')\r\n    }\r\n    this._request(type, url, callback)\r\n  }\r\n\r\n  _fillParams(endpoints,params) {\r\n    var endpoints = endpoints.split(\"/\")\r\n    for (var i in endpoints) {\r\n      var endpoint = endpoints[i]\r\n      if (endpoint.length) {\r\n        if (endpoint.indexOf(':') > -1) {\r\n          //param found\r\n          var param = endpoint.substr(1)\r\n          if (!(param in params)) {\r\n            var str = endpoints.join('/')\r\n            throw new Error(`Param ${param} not passed when calling endpoint ${str}`)\r\n          }\r\n\r\n          endpoints[i] = params[param]\r\n          delete params[param]\r\n        }\r\n      }\r\n    }\r\n    return endpoints.join('/')\r\n  }\r\n\r\n  _request(type, urlSuffix, callback) {\r\n    if (!callback || typeof callback != 'function') return false;\r\n    console.log(`calling ${config.config.url}${urlSuffix}`)\r\n    if (this.client_id) urlSuffix += 'client_id='+this.client_id+'&'\r\n    if (this.scope) urlSuffix += 'scope='+this.scope+'&'\r\n    var opts = {\r\n      url: config.config.url + urlSuffix\r\n    } \r\n    var self = this;\r\n\r\n    switch(type) {\r\n      case \"get\":\r\n        request.get(opts, result)\r\n        break;\r\n      case \"put\":\r\n        request.put(opts, result)\r\n        break;\r\n      case \"delete\":\r\n        request.delete(opts, result)\r\n        break;\r\n      case \"post\":\r\n        request.post(opts, result)\r\n    }\r\n\r\n    function result(err, res, body) {\r\n      body = JSON.parse(body);\r\n      if (callback) callback.call(self, err, body);\r\n    }\r\n  }\r\n}\r\nmodule.exports = TwitchClient;\r\n"]}