Socket
Socket
Sign inDemoInstall

blizzapi

Package Overview
Dependencies
9
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.5.0 to 2.6.0

2

dist/blizzapi.js

@@ -1,1 +0,1 @@

"use strict";var ce=require("axios"),g=(e=>(e.REGIONS="REGIONS",e.LOCALES="LOCALES",e.DEFAULT_LOCALES="DEFAULT_LOCALES",e.REGION_API_HOSTS="REGION_API_HOSTS",e.SC2_REALMS="SC2_REALMS",e.OAUTH_AUTHORIZE_URIS="OAUTH_AUTHORIZE_URIS",e.OAUTH_TOKEN_URIS="OAUTH_TOKEN_URIS",e.OAUTH_CHECK_TOKEN_URIS="OAUTH_CHECK_TOKEN_URIS",e))(g||{}),R=(e=>(e.us="us",e.eu="eu",e.kr="kr",e.tw="tw",e.cn="cn",e))(R||{}),a=(e=>(e[e.us=1]="us",e[e.eu=2]="eu",e[e.kr=3]="kr",e[e.tw=3]="tw",e[e.cn=5]="cn",e))(a||{}),B=(e=>(e.us="1",e.eu="2",e.kr="3",e.tw="3",e.cn="5",e))(B||{}),h=(e=>(e.en_US="en_US",e.es_MX="es_MX",e.pt_BR="pt_BR",e.en_GB="en_GB",e.es_ES="es_ES",e.fr_FR="fr_FR",e.ru_RU="ru_RU",e.de_DE="de_DE",e.pt_PT="pt_PT",e.it_IT="it_IT",e.ko_KR="ko_KR",e.zh_TW="zh_TW",e.zh_CN="zh_CN",e))(h||{}),A=(e=>(e[e.us=0]="us",e[e.eu=0]="eu",e[e.kr=0]="kr",e[e.tw=0]="tw",e[e.cn=0]="cn",e))(A||{}),m=(e=>(e[e.US=1]="US",e[e.LatAm=2]="LatAm",e[e.Europe=1]="Europe",e[e.Russia=2]="Russia",e[e.Korea=1]="Korea",e[e.Taiwan=2]="Taiwan",e[e.China=1]="China",e))(m||{}),H=(e=>(e.US="1",e.LatAm="2",e.Europe="1",e.Russia="2",e.Korea="1",e.Taiwan="2",e.China="1",e))(H||{}),E=(e=>(e.GET="GET",e.POST="POST",e))(E||{}),k=(e=>(e.us="https://us.battle.net",e.eu="https://eu.battle.net",e.kr="https://apac.battle.net",e.tw="https://apac.battle.net",e.cn="https://www.battlenet.com.cn",e))(k||{}),O=(e=>(e.us="https://us.api.blizzard.com",e.eu="https://eu.api.blizzard.com",e.kr="https://kr.api.blizzard.com",e.tw="https://tw.api.blizzard.com",e.cn="https://gateway.battlenet.com.cn",e))(O||{}),T=(e=>(e.authorize="/oauth/authorize",e.token="/oauth/token",e.checkToken="/oauth/check_token?token=",e))(T||{}),y=(e=>(e.LastModified="last-modified",e))(y||{}),L=(e=>(e[e.NotAuthorized=401]="NotAuthorized",e))(L||{}),_=(e=>(e.InvalidToken="invalid_token",e.AccessTokenInvalid="access_token_invalid",e.AccessTokenExpired="access_token_invalid",e))(_||{});const ie=e=>e[0]==="/",le=e=>e.length>3,ue=[ie,le],de=e=>ue.every(t=>t(e)),ge=e=>/(?:http[s]?:\/\/)[^\s(["<,>]*\.[^\s[",><]*/gm.test(e),he=Object.freeze({[a.us]:A.us,[a.eu]:A.eu,[a.kr]:A.kr,[a.cn]:A.cn}),Re=Object.freeze({[a.us]:Object.freeze([h.en_US,h.es_MX,h.pt_BR]),[a.eu]:Object.freeze([h.en_GB,h.es_ES,h.fr_FR,h.ru_RU,h.de_DE,h.pt_PT,h.it_IT]),[a.kr]:Object.freeze([h.ko_KR,h.zh_TW]),[a.cn]:Object.freeze([h.zh_CN])}),me=Object.freeze({[a.us]:Object.freeze([R.us]),[a.eu]:Object.freeze([R.eu]),[a.kr]:Object.freeze([R.kr,R.tw]),[a.cn]:Object.freeze([R.cn])}),pe=Object.freeze({[a.us]:Object.freeze([m.US,m.LatAm]),[a.eu]:Object.freeze([m.Europe,m.Russia]),[a.kr]:Object.freeze([m.Korea,m.Taiwan]),[a.cn]:Object.freeze([m.China])}),Oe=Object.freeze({[a.us]:O.us,[a.eu]:O.eu,[a.kr]:[O.kr,O.tw],[a.cn]:O.cn}),b=Object.freeze({[a.us]:k.us,[a.eu]:k.eu,[a.kr]:k.kr,[a.cn]:k.cn}),j=e=>Object.freeze({[a.us]:`${b[a.us]}${e}`,[a.eu]:`${b[a.eu]}${e}`,[a.kr]:`${b[a.kr]}${e}`,[a.cn]:`${b[a.cn]}${e}`}),fe=j(T.authorize),Ae=j(T.token),ke=j(T.checkToken),p={[g.REGIONS]:me,[g.LOCALES]:Re,[g.DEFAULT_LOCALES]:he,[g.SC2_REALMS]:pe,[g.REGION_API_HOSTS]:Oe,[g.OAUTH_AUTHORIZE_URIS]:fe,[g.OAUTH_TOKEN_URIS]:Ae,[g.OAUTH_CHECK_TOKEN_URIS]:ke},f=p[g.REGIONS],ve=()=>f,Se=()=>Object.keys(f).map(e=>parseInt(e,10)),Ee=()=>{const e=Object.values(f);return[].concat(...e).map(t=>t.toString())},x=e=>{const t=Object.keys(f),n=e.toString();if(!t.includes(n))throw new RangeError(`${n} is not a valid parameter for getRegionNameById()`);return f[n]},v=e=>{try{return Boolean(x(e))}catch{return!1}},C=e=>{const t=e.toLowerCase(),n=Object.keys(f).filter(s=>f[s].includes(t)),r=Number(n[0])||!1;if(!r)throw new RangeError(`"${e}" is not a valid parameter for getRegionIdByName()`);return r},F=e=>{try{return Boolean(C(e))}catch{return!1}},N=(e,t)=>{const n=typeof e=="string"?e:e.toString();if(!v(n))throw new RangeError(`${n} is not a valid parameter for getConstantByRegionId(${e}, '${t}')`);return p[t][e]},Te=(e,t)=>{if(!F(e))throw new RangeError(`${e} is not a valid parameter for getConstantByRegionName(${e}, '${t}')`);const n=C(e);return p[t][n]},U=(e,t)=>v(e)?N(e,t):Te(e.toString(),t),_e=p[g.LOCALES],K=()=>_e,M=()=>Object.keys(h).filter(e=>Number.isNaN(Number(e))).map(e=>e.toString()),G=e=>N(e,g.LOCALES),D=e=>/^(?:[a-z]{2}_[a-z]{2})$/gi.test(e),V=e=>{if(!D(e))throw new RangeError(`${e} is not a valid parameter for validateLocale()`);const t=M().map(r=>r.toLowerCase()),n=e.toLowerCase();return t.includes(n)},Ie=(e,t)=>{const n=e.toLowerCase(),r=V(n)||!1,s=t.toString(),u=v(s);if(!r)throw new RangeError(`${e} is not a valid locale parameter for isLocaleValidForRegionId()`);if(!u)throw new RangeError(`${t} is not a valid regionId parameter for isLocaleValidForRegionId()`);return G(t).map(l=>l.toLowerCase()).includes(n)},ye=p[g.DEFAULT_LOCALES],be=p[g.LOCALES],q=e=>{const t=e.toString();if(!v(t))throw new RangeError(`${t} is not a valid parameter for getDefaultLocaleNameForRegionId()`);const n=ye[t];return be[e][n]},we=()=>{const e=K(),t=Object.keys(e);return Object.assign({},...t.map(n=>({[n]:q(n)})))},Le=()=>p.SC2_REALMS,Q=()=>{const e=Object.values(p.SC2_REALMS);return[].concat(...e).filter((t,n,r)=>n===r.indexOf(t))},W=e=>N(e,g.SC2_REALMS),z=e=>{const t=e.toString();return/^([1-9]{1})$/gi.test(t)},je=e=>{if(!z(e))throw new RangeError(`${e} is not a valid parameter for validateSc2Realm()`);const t=Q(),n=typeof e=="number"?e:parseInt(e,10);return t.includes(n)},Ce=(e,t)=>{const n=z(e),r=t.toString(),s=v(r);if(!n)throw new RangeError(`${e} is not a valid sc2Realm parameter for isSc2RealmValidForRegionId()`);if(!s)throw new RangeError(`${t} is not a valid regionId parameter for isSc2RealmValidForRegionId()`);const u=W(t),l=typeof e=="number"?e:parseInt(e,10);return u.includes(l)},Ne=e=>{const t=U(e,g.REGION_API_HOSTS);return typeof e=="string"&&e.toLowerCase()===R.kr?t[0]:typeof e=="string"&&e.toLowerCase()===R.tw?t[1]:t},Ue=e=>U(e,g.OAUTH_CHECK_TOKEN_URIS),ze=e=>U(e,g.OAUTH_TOKEN_URIS);var $e=Object.defineProperty,X=Object.getOwnPropertySymbols,Pe=Object.prototype.hasOwnProperty,Be=Object.prototype.propertyIsEnumerable,Z=(e,t,n)=>t in e?$e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))Pe.call(t,n)&&Z(e,n,t[n]);if(X)for(var n of X(t))Be.call(t,n)&&Z(e,n,t[n]);return e},He=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,l);i((n=n.apply(e,t)).next())});const $=e=>He(void 0,null,function*(){const{uri:t,timeout:n,headers:r,params:s,data:u,auth:l}=e,i=e.method||E.GET;if(!ge(t))throw new RangeError(`'${t}' is not a valid parameter for fetchFromUri()`);const o=S(S(S(S({method:i,url:encodeURI(t),timeout:n||1e4},r&&{headers:r}),s&&{params:s}),l&&{auth:l}),u&&{data:u}),c=yield ce.request(o),I=c.headers[y.LastModified]?c.headers[y.LastModified]:null;return S(S({},c.data),I&&{lastModified:I})}),J=e=>{const{region:t,clientId:n,clientSecret:r}=e;if(!n)throw new Error("Cannot get access token because no Battle.net client id was provided");if(!r)throw new Error("Cannot get access token because no Battle.net client secret was provided");const s="grant_type=client_credentials",u={username:n,password:r},l=ze(t);return $({data:s,auth:u,uri:l,method:E.POST})};var xe=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,l);i((n=n.apply(e,t)).next())});const Y=(e,t)=>xe(void 0,null,function*(){try{const n=`${Ue(e)}${t}`;return(yield $({uri:n})).error!==_.InvalidToken}catch{return!1}});var Fe=Object.defineProperty,ee=Object.getOwnPropertySymbols,Ke=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable,te=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w=(e,t)=>{for(var n in t||(t={}))Ke.call(t,n)&&te(e,n,t[n]);if(ee)for(var n of ee(t))Me.call(t,n)&&te(e,n,t[n]);return e},Ge=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,l);i((n=n.apply(e,t)).next())});const ne=(e,t)=>{const{region:n,endpoint:r,options:s}=e,{headers:u,params:l,timeout:i}=s;if(!de(r))throw new RangeError(`${r} is not a valid endpoint.`);const o=`${Ne(n)}${r}`,c={Authorization:`Bearer ${t}`},I=w(w({},u),c);return $(w(w({uri:o,method:E.GET,headers:I},l&&{params:l}),i&&{timeout:i}))},De=e=>Ge(void 0,null,function*(){var t;const{region:n,accessToken:r}=e,{validateAccessTokenOnEachQuery:s,refreshExpiredAccessToken:u,onAccessTokenExpired:l,onAccessTokenRefresh:i}=e.options;if(s&&!(yield Y(n,r)))return{error:_.AccessTokenInvalid};try{return yield ne(e,r)}catch(o){if(((t=o.response)==null?void 0:t.status)===L.NotAuthorized){if(l?.(),u){const c=(yield J(e)).access_token;return i?.(c),ne(e,c)}return Promise.resolve({error:_.AccessTokenExpired})}throw o}});class Ve{constructor(t,n){this.clientId=t,this.clientSecret=n}}var P=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,l);i((n=n.apply(e,t)).next())});class oe extends Ve{constructor(t){super(t.clientId,t.clientSecret),this.getAccessToken=()=>P(this,null,function*(){return(yield this.getAccessTokenObject()).access_token}),this.getAccessTokenObject=()=>this.accessTokenObject?Promise.resolve(this.accessTokenObject):this.setAccessTokenObject(),this.getAccessTokenObjectFromBnet=()=>P(this,null,function*(){return J({region:this.region,clientId:this.clientId,clientSecret:this.clientSecret})}),this.region=t.region,this.accessTokenObject=t.accessToken?{access_token:t.accessToken}:void 0}setAccessToken(){return this.setAccessTokenObject()}setAccessTokenObject(){return P(this,null,function*(){return this.accessTokenObject=yield this.getAccessTokenObjectFromBnet(),this.accessTokenObject})}}oe.validateAccessToken=(e,t)=>Y(e,t);var qe=Object.defineProperty,re=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable,ae=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,se=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&ae(e,n,t[n]);if(re)for(var n of re(t))We.call(t,n)&&ae(e,n,t[n]);return e},Xe=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,l);i((n=n.apply(e,t)).next())});class d extends oe{constructor(t){super({region:t.region,clientId:t.clientId,clientSecret:t.clientSecret,accessToken:t.accessToken}),this.query=(n,r)=>Xe(this,null,function*(){return De({endpoint:n,region:r?.region||this.region,clientId:this.clientId,clientSecret:this.clientSecret,accessToken:yield this.getAccessToken(),options:se(se({},this.options),r)})}),this.options={validateAccessTokenOnEachQuery:t.validateAccessTokenOnEachQuery||!1,refreshExpiredAccessToken:t.refreshExpiredAccessToken||!1,onAccessTokenExpired:t.onAccessTokenExpired||void 0,onAccessTokenRefresh:t.onAccessTokenRefresh||void 0}}setRegion(t){this.region=t}}d.getAllRegions=ve,d.getAllRegionIds=Se,d.getAllRegionNames=Ee,d.getRegionNameById=x,d.validateRegionId=v,d.getRegionIdByName=C,d.validateRegionName=F,d.getAllLocales=K,d.getAllLocaleNames=M,d.getLocalesByRegionId=G,d.checkIfLocaleLooksValid=D,d.validateLocale=V,d.isLocaleValidForRegionId=Ie,d.getAllSc2Realms=Le,d.getAllAvailableSc2Realms=Q,d.getSc2RealmsByRegionId=W,d.checkIfSc2RealmLooksValid=z,d.validateSc2Realm=je,d.isSc2RealmValidForRegionId=Ce,d.getDefaultLocaleNameForRegionId=q,d.getAllDefaultLocaleNames=we,exports.ApiHeaders=y,exports.BlizzAPI=d,exports.ConstantKey=g,exports.DefaultLocaleIndex=A,exports.ErrorCode=L,exports.ErrorResponseMessage=_,exports.HttpMethod=E,exports.Locale=h,exports.OAuthEndpoint=T,exports.OAuthHost=k,exports.RegionHost=O,exports.RegionIdAsStringEnum=B,exports.RegionIdEnum=a,exports.RegionNameEnum=R,exports.Sc2Realm=m,exports.Sc2RealmAsString=H;
"use strict";var le=require("axios"),g=(e=>(e.REGIONS="REGIONS",e.LOCALES="LOCALES",e.DEFAULT_LOCALES="DEFAULT_LOCALES",e.REGION_API_HOSTS="REGION_API_HOSTS",e.SC2_REALMS="SC2_REALMS",e.OAUTH_AUTHORIZE_URIS="OAUTH_AUTHORIZE_URIS",e.OAUTH_TOKEN_URIS="OAUTH_TOKEN_URIS",e.OAUTH_CHECK_TOKEN_URIS="OAUTH_CHECK_TOKEN_URIS",e))(g||{}),R=(e=>(e.us="us",e.eu="eu",e.kr="kr",e.tw="tw",e.cn="cn",e))(R||{}),a=(e=>(e[e.us=1]="us",e[e.eu=2]="eu",e[e.kr=3]="kr",e[e.tw=3]="tw",e[e.cn=5]="cn",e))(a||{}),B=(e=>(e.us="1",e.eu="2",e.kr="3",e.tw="3",e.cn="5",e))(B||{}),h=(e=>(e.en_US="en_US",e.es_MX="es_MX",e.pt_BR="pt_BR",e.en_GB="en_GB",e.es_ES="es_ES",e.fr_FR="fr_FR",e.ru_RU="ru_RU",e.de_DE="de_DE",e.pt_PT="pt_PT",e.it_IT="it_IT",e.ko_KR="ko_KR",e.zh_TW="zh_TW",e.zh_CN="zh_CN",e))(h||{}),A=(e=>(e[e.us=0]="us",e[e.eu=0]="eu",e[e.kr=0]="kr",e[e.tw=0]="tw",e[e.cn=0]="cn",e))(A||{}),m=(e=>(e[e.US=1]="US",e[e.LatAm=2]="LatAm",e[e.Europe=1]="Europe",e[e.Russia=2]="Russia",e[e.Korea=1]="Korea",e[e.Taiwan=2]="Taiwan",e[e.China=1]="China",e))(m||{}),H=(e=>(e.US="1",e.LatAm="2",e.Europe="1",e.Russia="2",e.Korea="1",e.Taiwan="2",e.China="1",e))(H||{}),E=(e=>(e.GET="GET",e.POST="POST",e))(E||{}),k=(e=>(e.us="https://us.battle.net",e.eu="https://eu.battle.net",e.kr="https://apac.battle.net",e.tw="https://apac.battle.net",e.cn="https://www.battlenet.com.cn",e))(k||{}),O=(e=>(e.us="https://us.api.blizzard.com",e.eu="https://eu.api.blizzard.com",e.kr="https://kr.api.blizzard.com",e.tw="https://tw.api.blizzard.com",e.cn="https://gateway.battlenet.com.cn",e))(O||{}),T=(e=>(e.authorize="/oauth/authorize",e.token="/oauth/token",e.checkToken="/oauth/check_token?token=",e))(T||{}),b=(e=>(e.LastModified="last-modified",e))(b||{}),L=(e=>(e[e.NotAuthorized=401]="NotAuthorized",e))(L||{}),_=(e=>(e.InvalidToken="invalid_token",e.AccessTokenInvalid="access_token_invalid",e.AccessTokenExpired="access_token_invalid",e))(_||{});const ue=e=>e[0]==="/",de=e=>e.length>3,ge=[ue,de],he=e=>ge.every(t=>t(e)),Re=e=>/(?:http[s]?:\/\/)[^\s(["<,>]*\.[^\s[",><]*/gm.test(e),me=Object.freeze({[a.us]:A.us,[a.eu]:A.eu,[a.kr]:A.kr,[a.cn]:A.cn}),pe=Object.freeze({[a.us]:Object.freeze([h.en_US,h.es_MX,h.pt_BR]),[a.eu]:Object.freeze([h.en_GB,h.es_ES,h.fr_FR,h.ru_RU,h.de_DE,h.pt_PT,h.it_IT]),[a.kr]:Object.freeze([h.ko_KR,h.zh_TW]),[a.cn]:Object.freeze([h.zh_CN])}),Oe=Object.freeze({[a.us]:Object.freeze([R.us]),[a.eu]:Object.freeze([R.eu]),[a.kr]:Object.freeze([R.kr,R.tw]),[a.cn]:Object.freeze([R.cn])}),fe=Object.freeze({[a.us]:Object.freeze([m.US,m.LatAm]),[a.eu]:Object.freeze([m.Europe,m.Russia]),[a.kr]:Object.freeze([m.Korea,m.Taiwan]),[a.cn]:Object.freeze([m.China])}),Ae=Object.freeze({[a.us]:O.us,[a.eu]:O.eu,[a.kr]:[O.kr,O.tw],[a.cn]:O.cn}),y=Object.freeze({[a.us]:k.us,[a.eu]:k.eu,[a.kr]:k.kr,[a.cn]:k.cn}),j=e=>Object.freeze({[a.us]:`${y[a.us]}${e}`,[a.eu]:`${y[a.eu]}${e}`,[a.kr]:`${y[a.kr]}${e}`,[a.cn]:`${y[a.cn]}${e}`}),ke=j(T.authorize),ve=j(T.token),Se=j(T.checkToken),p={[g.REGIONS]:Oe,[g.LOCALES]:pe,[g.DEFAULT_LOCALES]:me,[g.SC2_REALMS]:fe,[g.REGION_API_HOSTS]:Ae,[g.OAUTH_AUTHORIZE_URIS]:ke,[g.OAUTH_TOKEN_URIS]:ve,[g.OAUTH_CHECK_TOKEN_URIS]:Se},f=p[g.REGIONS],Ee=()=>f,Te=()=>Object.keys(f).map(e=>parseInt(e,10)),_e=()=>{const e=Object.values(f);return[].concat(...e).map(t=>t.toString())},x=e=>{const t=Object.keys(f),n=e.toString();if(!t.includes(n))throw new RangeError(`${n} is not a valid parameter for getRegionNameById()`);return f[n]},v=e=>{try{return!!x(e)}catch{return!1}},C=e=>{const t=e.toLowerCase(),n=Object.keys(f).filter(s=>f[s].includes(t)),r=Number(n[0])||!1;if(!r)throw new RangeError(`"${e}" is not a valid parameter for getRegionIdByName()`);return r},F=e=>{try{return!!C(e)}catch{return!1}},N=(e,t)=>{const n=typeof e=="string"?e:e.toString();if(!v(n))throw new RangeError(`${n} is not a valid parameter for getConstantByRegionId(${e}, '${t}')`);return p[t][e]},Ie=(e,t)=>{if(!F(e))throw new RangeError(`${e} is not a valid parameter for getConstantByRegionName(${e}, '${t}')`);const n=C(e);return p[t][n]},U=(e,t)=>v(e)?N(e,t):Ie(e.toString(),t),be=p[g.LOCALES],K=()=>be,M=()=>Object.keys(h).filter(e=>Number.isNaN(Number(e))).map(e=>e.toString()),G=e=>N(e,g.LOCALES),D=e=>/^(?:[a-z]{2}_[a-z]{2})$/gi.test(e),V=e=>{if(!D(e))throw new RangeError(`${e} is not a valid parameter for validateLocale()`);const t=M().map(r=>r.toLowerCase()),n=e.toLowerCase();return t.includes(n)},ye=(e,t)=>{const n=e.toLowerCase(),r=V(n)||!1,s=t.toString(),u=v(s);if(!r)throw new RangeError(`${e} is not a valid locale parameter for isLocaleValidForRegionId()`);if(!u)throw new RangeError(`${t} is not a valid regionId parameter for isLocaleValidForRegionId()`);return G(t).map(i=>i.toLowerCase()).includes(n)},we=p[g.DEFAULT_LOCALES],Le=p[g.LOCALES],q=e=>{const t=e.toString();if(!v(t))throw new RangeError(`${t} is not a valid parameter for getDefaultLocaleNameForRegionId()`);const n=we[t];return Le[e][n]},je=()=>{const e=K(),t=Object.keys(e);return Object.assign({},...t.map(n=>({[n]:q(n)})))},Ce=()=>p.SC2_REALMS,Q=()=>{const e=Object.values(p.SC2_REALMS);return[].concat(...e).filter((t,n,r)=>n===r.indexOf(t))},W=e=>N(e,g.SC2_REALMS),z=e=>{const t=e.toString();return/^([1-9]{1})$/gi.test(t)},Ne=e=>{if(!z(e))throw new RangeError(`${e} is not a valid parameter for validateSc2Realm()`);const t=Q(),n=typeof e=="number"?e:parseInt(e,10);return t.includes(n)},Ue=(e,t)=>{const n=z(e),r=t.toString(),s=v(r);if(!n)throw new RangeError(`${e} is not a valid sc2Realm parameter for isSc2RealmValidForRegionId()`);if(!s)throw new RangeError(`${t} is not a valid regionId parameter for isSc2RealmValidForRegionId()`);const u=W(t),i=typeof e=="number"?e:parseInt(e,10);return u.includes(i)},ze=e=>{const t=U(e,g.REGION_API_HOSTS);return typeof e=="string"&&e.toLowerCase()===R.kr?t[0]:typeof e=="string"&&e.toLowerCase()===R.tw?t[1]:t},$e=e=>U(e,g.OAUTH_CHECK_TOKEN_URIS),Pe=e=>U(e,g.OAUTH_TOKEN_URIS);var Be=Object.defineProperty,X=Object.getOwnPropertySymbols,He=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable,Z=(e,t,n)=>t in e?Be(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))He.call(t,n)&&Z(e,n,t[n]);if(X)for(var n of X(t))xe.call(t,n)&&Z(e,n,t[n]);return e},Fe=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});const $=e=>Fe(void 0,null,function*(){const{uri:t,timeout:n,headers:r,params:s,data:u,auth:i}=e,c=e.method||E.GET;if(!Re(t))throw new RangeError(`'${t}' is not a valid parameter for fetchFromUri()`);const o=S(S(S(S({method:c,url:encodeURI(t),timeout:n||1e4},r&&{headers:r}),s&&{params:s}),i&&{auth:i}),u&&{data:u}),l=yield le.request(o),I=l.headers[b.LastModified]?l.headers[b.LastModified]:null;return S(S({},l.data),I&&{lastModified:I})}),J=e=>{const{region:t,clientId:n,clientSecret:r}=e;if(!n)throw new Error("Cannot get access token because no Battle.net client id was provided");if(!r)throw new Error("Cannot get access token because no Battle.net client secret was provided");const s="grant_type=client_credentials",u={username:n,password:r},i=Pe(t);return $({data:s,auth:u,uri:i,method:E.POST})};var Ke=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});const Y=(e,t)=>Ke(void 0,null,function*(){try{const n=`${$e(e)}${t}`;return(yield $({uri:n})).error!==_.InvalidToken}catch{return!1}});var Me=Object.defineProperty,ee=Object.getOwnPropertySymbols,Ge=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable,te=(e,t,n)=>t in e?Me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w=(e,t)=>{for(var n in t||(t={}))Ge.call(t,n)&&te(e,n,t[n]);if(ee)for(var n of ee(t))De.call(t,n)&&te(e,n,t[n]);return e},ne=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});const oe=(e,t)=>{const{region:n,endpoint:r,options:s}=e,{headers:u,params:i,timeout:c}=s;if(!he(r))throw new RangeError(`${r} is not a valid endpoint.`);const o=`${ze(n)}${r}`,l={Authorization:`Bearer ${t}`},I=w(w({},u),l);return $(w(w({uri:o,method:E.GET,headers:I},i&&{params:i}),c&&{timeout:c}))},re=e=>ne(void 0,null,function*(){const{onAccessTokenRefresh:t}=e.options,n=(yield J(e)).access_token;return t?.(n),oe(e,n)}),Ve=e=>ne(void 0,null,function*(){var t;const{region:n,accessToken:r}=e,{validateAccessTokenOnEachQuery:s,refreshExpiredAccessToken:u,onAccessTokenExpired:i}=e.options;if(s&&!(yield Y(n,r)))return i?.(),u?re(e):{error:_.AccessTokenInvalid};try{return yield oe(e,r)}catch(c){if(((t=c.response)==null?void 0:t.status)===L.NotAuthorized)return i?.(),u?re(e):Promise.resolve({error:_.AccessTokenExpired});throw c}});class qe{constructor(t,n){this.clientId=t,this.clientSecret=n}}var P=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});class ae extends qe{constructor(t){super(t.clientId,t.clientSecret),this.getAccessToken=()=>P(this,null,function*(){return(yield this.getAccessTokenObject()).access_token}),this.getAccessTokenObject=()=>this.accessTokenObject?Promise.resolve(this.accessTokenObject):this.setAccessTokenObject(),this.getAccessTokenObjectFromBnet=()=>P(this,null,function*(){return J({region:this.region,clientId:this.clientId,clientSecret:this.clientSecret})}),this.region=t.region,this.accessTokenObject=t.accessToken?{access_token:t.accessToken}:void 0}setAccessToken(){return this.setAccessTokenObject()}setAccessTokenObject(){return P(this,null,function*(){return this.accessTokenObject=yield this.getAccessTokenObjectFromBnet(),this.accessTokenObject})}}ae.validateAccessToken=(e,t)=>Y(e,t);var Qe=Object.defineProperty,se=Object.getOwnPropertySymbols,We=Object.prototype.hasOwnProperty,Xe=Object.prototype.propertyIsEnumerable,ce=(e,t,n)=>t in e?Qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ie=(e,t)=>{for(var n in t||(t={}))We.call(t,n)&&ce(e,n,t[n]);if(se)for(var n of se(t))Xe.call(t,n)&&ce(e,n,t[n]);return e},Ze=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});class d extends ae{constructor(t){super({region:t.region,clientId:t.clientId,clientSecret:t.clientSecret,accessToken:t.accessToken}),this.query=(n,r)=>Ze(this,null,function*(){return Ve({endpoint:n,region:r?.region||this.region,clientId:this.clientId,clientSecret:this.clientSecret,accessToken:yield this.getAccessToken(),options:ie(ie({},this.options),r)})}),this.options={validateAccessTokenOnEachQuery:t.validateAccessTokenOnEachQuery||!1,refreshExpiredAccessToken:t.refreshExpiredAccessToken||!1,onAccessTokenExpired:t.onAccessTokenExpired||void 0,onAccessTokenRefresh:t.onAccessTokenRefresh||void 0}}setRegion(t){this.region=t}}d.getAllRegions=Ee,d.getAllRegionIds=Te,d.getAllRegionNames=_e,d.getRegionNameById=x,d.validateRegionId=v,d.getRegionIdByName=C,d.validateRegionName=F,d.getAllLocales=K,d.getAllLocaleNames=M,d.getLocalesByRegionId=G,d.checkIfLocaleLooksValid=D,d.validateLocale=V,d.isLocaleValidForRegionId=ye,d.getAllSc2Realms=Ce,d.getAllAvailableSc2Realms=Q,d.getSc2RealmsByRegionId=W,d.checkIfSc2RealmLooksValid=z,d.validateSc2Realm=Ne,d.isSc2RealmValidForRegionId=Ue,d.getDefaultLocaleNameForRegionId=q,d.getAllDefaultLocaleNames=je,exports.ApiHeaders=b,exports.BlizzAPI=d,exports.ConstantKey=g,exports.DefaultLocaleIndex=A,exports.ErrorCode=L,exports.ErrorResponseMessage=_,exports.HttpMethod=E,exports.Locale=h,exports.OAuthEndpoint=T,exports.OAuthHost=k,exports.RegionHost=O,exports.RegionIdAsStringEnum=B,exports.RegionIdEnum=a,exports.RegionNameEnum=R,exports.Sc2Realm=m,exports.Sc2RealmAsString=H;

@@ -1,1 +0,1 @@

(function(g,E){typeof exports=="object"&&typeof module<"u"?E(exports,require("axios")):typeof define=="function"&&define.amd?define(["exports","axios"],E):(g=typeof globalThis<"u"?globalThis:g||self,E(g.BlizzAPI={},g.axios))})(this,function(g,E){"use strict";var h=(e=>(e.REGIONS="REGIONS",e.LOCALES="LOCALES",e.DEFAULT_LOCALES="DEFAULT_LOCALES",e.REGION_API_HOSTS="REGION_API_HOSTS",e.SC2_REALMS="SC2_REALMS",e.OAUTH_AUTHORIZE_URIS="OAUTH_AUTHORIZE_URIS",e.OAUTH_TOKEN_URIS="OAUTH_TOKEN_URIS",e.OAUTH_CHECK_TOKEN_URIS="OAUTH_CHECK_TOKEN_URIS",e))(h||{}),m=(e=>(e.us="us",e.eu="eu",e.kr="kr",e.tw="tw",e.cn="cn",e))(m||{}),a=(e=>(e[e.us=1]="us",e[e.eu=2]="eu",e[e.kr=3]="kr",e[e.tw=3]="tw",e[e.cn=5]="cn",e))(a||{}),F=(e=>(e.us="1",e.eu="2",e.kr="3",e.tw="3",e.cn="5",e))(F||{}),R=(e=>(e.en_US="en_US",e.es_MX="es_MX",e.pt_BR="pt_BR",e.en_GB="en_GB",e.es_ES="es_ES",e.fr_FR="fr_FR",e.ru_RU="ru_RU",e.de_DE="de_DE",e.pt_PT="pt_PT",e.it_IT="it_IT",e.ko_KR="ko_KR",e.zh_TW="zh_TW",e.zh_CN="zh_CN",e))(R||{}),k=(e=>(e[e.us=0]="us",e[e.eu=0]="eu",e[e.kr=0]="kr",e[e.tw=0]="tw",e[e.cn=0]="cn",e))(k||{}),f=(e=>(e[e.US=1]="US",e[e.LatAm=2]="LatAm",e[e.Europe=1]="Europe",e[e.Russia=2]="Russia",e[e.Korea=1]="Korea",e[e.Taiwan=2]="Taiwan",e[e.China=1]="China",e))(f||{}),K=(e=>(e.US="1",e.LatAm="2",e.Europe="1",e.Russia="2",e.Korea="1",e.Taiwan="2",e.China="1",e))(K||{}),_=(e=>(e.GET="GET",e.POST="POST",e))(_||{}),S=(e=>(e.us="https://us.battle.net",e.eu="https://eu.battle.net",e.kr="https://apac.battle.net",e.tw="https://apac.battle.net",e.cn="https://www.battlenet.com.cn",e))(S||{}),p=(e=>(e.us="https://us.api.blizzard.com",e.eu="https://eu.api.blizzard.com",e.kr="https://kr.api.blizzard.com",e.tw="https://tw.api.blizzard.com",e.cn="https://gateway.battlenet.com.cn",e))(p||{}),I=(e=>(e.authorize="/oauth/authorize",e.token="/oauth/token",e.checkToken="/oauth/check_token?token=",e))(I||{}),b=(e=>(e.LastModified="last-modified",e))(b||{}),C=(e=>(e[e.NotAuthorized=401]="NotAuthorized",e))(C||{}),y=(e=>(e.InvalidToken="invalid_token",e.AccessTokenInvalid="access_token_invalid",e.AccessTokenExpired="access_token_invalid",e))(y||{});const le=e=>e[0]==="/",ue=e=>e.length>3,de=[le,ue],ge=e=>de.every(t=>t(e)),he=e=>/(?:http[s]?:\/\/)[^\s(["<,>]*\.[^\s[",><]*/gm.test(e),Re=Object.freeze({[a.us]:k.us,[a.eu]:k.eu,[a.kr]:k.kr,[a.cn]:k.cn}),me=Object.freeze({[a.us]:Object.freeze([R.en_US,R.es_MX,R.pt_BR]),[a.eu]:Object.freeze([R.en_GB,R.es_ES,R.fr_FR,R.ru_RU,R.de_DE,R.pt_PT,R.it_IT]),[a.kr]:Object.freeze([R.ko_KR,R.zh_TW]),[a.cn]:Object.freeze([R.zh_CN])}),fe=Object.freeze({[a.us]:Object.freeze([m.us]),[a.eu]:Object.freeze([m.eu]),[a.kr]:Object.freeze([m.kr,m.tw]),[a.cn]:Object.freeze([m.cn])}),Oe=Object.freeze({[a.us]:Object.freeze([f.US,f.LatAm]),[a.eu]:Object.freeze([f.Europe,f.Russia]),[a.kr]:Object.freeze([f.Korea,f.Taiwan]),[a.cn]:Object.freeze([f.China])}),pe=Object.freeze({[a.us]:p.us,[a.eu]:p.eu,[a.kr]:[p.kr,p.tw],[a.cn]:p.cn}),w=Object.freeze({[a.us]:S.us,[a.eu]:S.eu,[a.kr]:S.kr,[a.cn]:S.cn}),z=e=>Object.freeze({[a.us]:`${w[a.us]}${e}`,[a.eu]:`${w[a.eu]}${e}`,[a.kr]:`${w[a.kr]}${e}`,[a.cn]:`${w[a.cn]}${e}`}),Ae=z(I.authorize),ke=z(I.token),Se=z(I.checkToken),O={[h.REGIONS]:fe,[h.LOCALES]:me,[h.DEFAULT_LOCALES]:Re,[h.SC2_REALMS]:Oe,[h.REGION_API_HOSTS]:pe,[h.OAUTH_AUTHORIZE_URIS]:Ae,[h.OAUTH_TOKEN_URIS]:ke,[h.OAUTH_CHECK_TOKEN_URIS]:Se},A=O[h.REGIONS],ve=()=>A,Te=()=>Object.keys(A).map(e=>parseInt(e,10)),Ee=()=>{const e=Object.values(A);return[].concat(...e).map(t=>t.toString())},M=e=>{const t=Object.keys(A),n=e.toString();if(!t.includes(n))throw new RangeError(`${n} is not a valid parameter for getRegionNameById()`);return A[n]},v=e=>{try{return Boolean(M(e))}catch{return!1}},N=e=>{const t=e.toLowerCase(),n=Object.keys(A).filter(s=>A[s].includes(t)),r=Number(n[0])||!1;if(!r)throw new RangeError(`"${e}" is not a valid parameter for getRegionIdByName()`);return r},x=e=>{try{return Boolean(N(e))}catch{return!1}},U=(e,t)=>{const n=typeof e=="string"?e:e.toString();if(!v(n))throw new RangeError(`${n} is not a valid parameter for getConstantByRegionId(${e}, '${t}')`);return O[t][e]},_e=(e,t)=>{if(!x(e))throw new RangeError(`${e} is not a valid parameter for getConstantByRegionName(${e}, '${t}')`);const n=N(e);return O[t][n]},$=(e,t)=>v(e)?U(e,t):_e(e.toString(),t),Ie=O[h.LOCALES],G=()=>Ie,D=()=>Object.keys(R).filter(e=>Number.isNaN(Number(e))).map(e=>e.toString()),V=e=>U(e,h.LOCALES),q=e=>/^(?:[a-z]{2}_[a-z]{2})$/gi.test(e),Q=e=>{if(!q(e))throw new RangeError(`${e} is not a valid parameter for validateLocale()`);const t=D().map(r=>r.toLowerCase()),n=e.toLowerCase();return t.includes(n)},ye=(e,t)=>{const n=e.toLowerCase(),r=Q(n)||!1,s=t.toString(),d=v(s);if(!r)throw new RangeError(`${e} is not a valid locale parameter for isLocaleValidForRegionId()`);if(!d)throw new RangeError(`${t} is not a valid regionId parameter for isLocaleValidForRegionId()`);return V(t).map(l=>l.toLowerCase()).includes(n)},be=O[h.DEFAULT_LOCALES],we=O[h.LOCALES],W=e=>{const t=e.toString();if(!v(t))throw new RangeError(`${t} is not a valid parameter for getDefaultLocaleNameForRegionId()`);const n=be[t];return we[e][n]},Le=()=>{const e=G(),t=Object.keys(e);return Object.assign({},...t.map(n=>({[n]:W(n)})))},je=()=>O.SC2_REALMS,X=()=>{const e=Object.values(O.SC2_REALMS);return[].concat(...e).filter((t,n,r)=>n===r.indexOf(t))},Z=e=>U(e,h.SC2_REALMS),P=e=>{const t=e.toString();return/^([1-9]{1})$/gi.test(t)},Ce=e=>{if(!P(e))throw new RangeError(`${e} is not a valid parameter for validateSc2Realm()`);const t=X(),n=typeof e=="number"?e:parseInt(e,10);return t.includes(n)},ze=(e,t)=>{const n=P(e),r=t.toString(),s=v(r);if(!n)throw new RangeError(`${e} is not a valid sc2Realm parameter for isSc2RealmValidForRegionId()`);if(!s)throw new RangeError(`${t} is not a valid regionId parameter for isSc2RealmValidForRegionId()`);const d=Z(t),l=typeof e=="number"?e:parseInt(e,10);return d.includes(l)},Ne=e=>{const t=$(e,h.REGION_API_HOSTS);return typeof e=="string"&&e.toLowerCase()===m.kr?t[0]:typeof e=="string"&&e.toLowerCase()===m.tw?t[1]:t},Ue=e=>$(e,h.OAUTH_CHECK_TOKEN_URIS),$e=e=>$(e,h.OAUTH_TOKEN_URIS);var Pe=Object.defineProperty,J=Object.getOwnPropertySymbols,Be=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable,Y=(e,t,n)=>t in e?Pe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,T=(e,t)=>{for(var n in t||(t={}))Be.call(t,n)&&Y(e,n,t[n]);if(J)for(var n of J(t))He.call(t,n)&&Y(e,n,t[n]);return e},Fe=(e,t,n)=>new Promise((r,s)=>{var d=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(d,l);i((n=n.apply(e,t)).next())});const B=e=>Fe(void 0,null,function*(){const{uri:t,timeout:n,headers:r,params:s,data:d,auth:l}=e,i=e.method||_.GET;if(!he(t))throw new RangeError(`'${t}' is not a valid parameter for fetchFromUri()`);const o=T(T(T(T({method:i,url:encodeURI(t),timeout:n||1e4},r&&{headers:r}),s&&{params:s}),l&&{auth:l}),d&&{data:d}),c=yield E.request(o),j=c.headers[b.LastModified]?c.headers[b.LastModified]:null;return T(T({},c.data),j&&{lastModified:j})}),ee=e=>{const{region:t,clientId:n,clientSecret:r}=e;if(!n)throw new Error("Cannot get access token because no Battle.net client id was provided");if(!r)throw new Error("Cannot get access token because no Battle.net client secret was provided");const s="grant_type=client_credentials",d={username:n,password:r},l=$e(t);return B({data:s,auth:d,uri:l,method:_.POST})};var Ke=(e,t,n)=>new Promise((r,s)=>{var d=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(d,l);i((n=n.apply(e,t)).next())});const te=(e,t)=>Ke(void 0,null,function*(){try{const n=`${Ue(e)}${t}`;return(yield B({uri:n})).error!==y.InvalidToken}catch{return!1}});var Me=Object.defineProperty,ne=Object.getOwnPropertySymbols,xe=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable,oe=(e,t,n)=>t in e?Me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L=(e,t)=>{for(var n in t||(t={}))xe.call(t,n)&&oe(e,n,t[n]);if(ne)for(var n of ne(t))Ge.call(t,n)&&oe(e,n,t[n]);return e},De=(e,t,n)=>new Promise((r,s)=>{var d=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(d,l);i((n=n.apply(e,t)).next())});const re=(e,t)=>{const{region:n,endpoint:r,options:s}=e,{headers:d,params:l,timeout:i}=s;if(!ge(r))throw new RangeError(`${r} is not a valid endpoint.`);const o=`${Ne(n)}${r}`,c={Authorization:`Bearer ${t}`},j=L(L({},d),c);return B(L(L({uri:o,method:_.GET,headers:j},l&&{params:l}),i&&{timeout:i}))},Ve=e=>De(void 0,null,function*(){var t;const{region:n,accessToken:r}=e,{validateAccessTokenOnEachQuery:s,refreshExpiredAccessToken:d,onAccessTokenExpired:l,onAccessTokenRefresh:i}=e.options;if(s&&!(yield te(n,r)))return{error:y.AccessTokenInvalid};try{return yield re(e,r)}catch(o){if(((t=o.response)==null?void 0:t.status)===C.NotAuthorized){if(l?.(),d){const c=(yield ee(e)).access_token;return i?.(c),re(e,c)}return Promise.resolve({error:y.AccessTokenExpired})}throw o}});class qe{constructor(t,n){this.clientId=t,this.clientSecret=n}}var H=(e,t,n)=>new Promise((r,s)=>{var d=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(d,l);i((n=n.apply(e,t)).next())});class ae extends qe{constructor(t){super(t.clientId,t.clientSecret),this.getAccessToken=()=>H(this,null,function*(){return(yield this.getAccessTokenObject()).access_token}),this.getAccessTokenObject=()=>this.accessTokenObject?Promise.resolve(this.accessTokenObject):this.setAccessTokenObject(),this.getAccessTokenObjectFromBnet=()=>H(this,null,function*(){return ee({region:this.region,clientId:this.clientId,clientSecret:this.clientSecret})}),this.region=t.region,this.accessTokenObject=t.accessToken?{access_token:t.accessToken}:void 0}setAccessToken(){return this.setAccessTokenObject()}setAccessTokenObject(){return H(this,null,function*(){return this.accessTokenObject=yield this.getAccessTokenObjectFromBnet(),this.accessTokenObject})}}ae.validateAccessToken=(e,t)=>te(e,t);var Qe=Object.defineProperty,se=Object.getOwnPropertySymbols,We=Object.prototype.hasOwnProperty,Xe=Object.prototype.propertyIsEnumerable,ce=(e,t,n)=>t in e?Qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ie=(e,t)=>{for(var n in t||(t={}))We.call(t,n)&&ce(e,n,t[n]);if(se)for(var n of se(t))Xe.call(t,n)&&ce(e,n,t[n]);return e},Ze=(e,t,n)=>new Promise((r,s)=>{var d=o=>{try{i(n.next(o))}catch(c){s(c)}},l=o=>{try{i(n.throw(o))}catch(c){s(c)}},i=o=>o.done?r(o.value):Promise.resolve(o.value).then(d,l);i((n=n.apply(e,t)).next())});class u extends ae{constructor(t){super({region:t.region,clientId:t.clientId,clientSecret:t.clientSecret,accessToken:t.accessToken}),this.query=(n,r)=>Ze(this,null,function*(){return Ve({endpoint:n,region:r?.region||this.region,clientId:this.clientId,clientSecret:this.clientSecret,accessToken:yield this.getAccessToken(),options:ie(ie({},this.options),r)})}),this.options={validateAccessTokenOnEachQuery:t.validateAccessTokenOnEachQuery||!1,refreshExpiredAccessToken:t.refreshExpiredAccessToken||!1,onAccessTokenExpired:t.onAccessTokenExpired||void 0,onAccessTokenRefresh:t.onAccessTokenRefresh||void 0}}setRegion(t){this.region=t}}u.getAllRegions=ve,u.getAllRegionIds=Te,u.getAllRegionNames=Ee,u.getRegionNameById=M,u.validateRegionId=v,u.getRegionIdByName=N,u.validateRegionName=x,u.getAllLocales=G,u.getAllLocaleNames=D,u.getLocalesByRegionId=V,u.checkIfLocaleLooksValid=q,u.validateLocale=Q,u.isLocaleValidForRegionId=ye,u.getAllSc2Realms=je,u.getAllAvailableSc2Realms=X,u.getSc2RealmsByRegionId=Z,u.checkIfSc2RealmLooksValid=P,u.validateSc2Realm=Ce,u.isSc2RealmValidForRegionId=ze,u.getDefaultLocaleNameForRegionId=W,u.getAllDefaultLocaleNames=Le,g.ApiHeaders=b,g.BlizzAPI=u,g.ConstantKey=h,g.DefaultLocaleIndex=k,g.ErrorCode=C,g.ErrorResponseMessage=y,g.HttpMethod=_,g.Locale=R,g.OAuthEndpoint=I,g.OAuthHost=S,g.RegionHost=p,g.RegionIdAsStringEnum=F,g.RegionIdEnum=a,g.RegionNameEnum=m,g.Sc2Realm=f,g.Sc2RealmAsString=K});
(function(g,E){typeof exports=="object"&&typeof module<"u"?E(exports,require("axios")):typeof define=="function"&&define.amd?define(["exports","axios"],E):(g=typeof globalThis<"u"?globalThis:g||self,E(g.BlizzAPI={},g.axios))})(this,function(g,E){"use strict";var h=(e=>(e.REGIONS="REGIONS",e.LOCALES="LOCALES",e.DEFAULT_LOCALES="DEFAULT_LOCALES",e.REGION_API_HOSTS="REGION_API_HOSTS",e.SC2_REALMS="SC2_REALMS",e.OAUTH_AUTHORIZE_URIS="OAUTH_AUTHORIZE_URIS",e.OAUTH_TOKEN_URIS="OAUTH_TOKEN_URIS",e.OAUTH_CHECK_TOKEN_URIS="OAUTH_CHECK_TOKEN_URIS",e))(h||{}),m=(e=>(e.us="us",e.eu="eu",e.kr="kr",e.tw="tw",e.cn="cn",e))(m||{}),a=(e=>(e[e.us=1]="us",e[e.eu=2]="eu",e[e.kr=3]="kr",e[e.tw=3]="tw",e[e.cn=5]="cn",e))(a||{}),F=(e=>(e.us="1",e.eu="2",e.kr="3",e.tw="3",e.cn="5",e))(F||{}),R=(e=>(e.en_US="en_US",e.es_MX="es_MX",e.pt_BR="pt_BR",e.en_GB="en_GB",e.es_ES="es_ES",e.fr_FR="fr_FR",e.ru_RU="ru_RU",e.de_DE="de_DE",e.pt_PT="pt_PT",e.it_IT="it_IT",e.ko_KR="ko_KR",e.zh_TW="zh_TW",e.zh_CN="zh_CN",e))(R||{}),k=(e=>(e[e.us=0]="us",e[e.eu=0]="eu",e[e.kr=0]="kr",e[e.tw=0]="tw",e[e.cn=0]="cn",e))(k||{}),f=(e=>(e[e.US=1]="US",e[e.LatAm=2]="LatAm",e[e.Europe=1]="Europe",e[e.Russia=2]="Russia",e[e.Korea=1]="Korea",e[e.Taiwan=2]="Taiwan",e[e.China=1]="China",e))(f||{}),K=(e=>(e.US="1",e.LatAm="2",e.Europe="1",e.Russia="2",e.Korea="1",e.Taiwan="2",e.China="1",e))(K||{}),_=(e=>(e.GET="GET",e.POST="POST",e))(_||{}),v=(e=>(e.us="https://us.battle.net",e.eu="https://eu.battle.net",e.kr="https://apac.battle.net",e.tw="https://apac.battle.net",e.cn="https://www.battlenet.com.cn",e))(v||{}),O=(e=>(e.us="https://us.api.blizzard.com",e.eu="https://eu.api.blizzard.com",e.kr="https://kr.api.blizzard.com",e.tw="https://tw.api.blizzard.com",e.cn="https://gateway.battlenet.com.cn",e))(O||{}),I=(e=>(e.authorize="/oauth/authorize",e.token="/oauth/token",e.checkToken="/oauth/check_token?token=",e))(I||{}),b=(e=>(e.LastModified="last-modified",e))(b||{}),C=(e=>(e[e.NotAuthorized=401]="NotAuthorized",e))(C||{}),y=(e=>(e.InvalidToken="invalid_token",e.AccessTokenInvalid="access_token_invalid",e.AccessTokenExpired="access_token_invalid",e))(y||{});const de=e=>e[0]==="/",ge=e=>e.length>3,he=[de,ge],Re=e=>he.every(t=>t(e)),me=e=>/(?:http[s]?:\/\/)[^\s(["<,>]*\.[^\s[",><]*/gm.test(e),fe=Object.freeze({[a.us]:k.us,[a.eu]:k.eu,[a.kr]:k.kr,[a.cn]:k.cn}),pe=Object.freeze({[a.us]:Object.freeze([R.en_US,R.es_MX,R.pt_BR]),[a.eu]:Object.freeze([R.en_GB,R.es_ES,R.fr_FR,R.ru_RU,R.de_DE,R.pt_PT,R.it_IT]),[a.kr]:Object.freeze([R.ko_KR,R.zh_TW]),[a.cn]:Object.freeze([R.zh_CN])}),Oe=Object.freeze({[a.us]:Object.freeze([m.us]),[a.eu]:Object.freeze([m.eu]),[a.kr]:Object.freeze([m.kr,m.tw]),[a.cn]:Object.freeze([m.cn])}),Ae=Object.freeze({[a.us]:Object.freeze([f.US,f.LatAm]),[a.eu]:Object.freeze([f.Europe,f.Russia]),[a.kr]:Object.freeze([f.Korea,f.Taiwan]),[a.cn]:Object.freeze([f.China])}),ke=Object.freeze({[a.us]:O.us,[a.eu]:O.eu,[a.kr]:[O.kr,O.tw],[a.cn]:O.cn}),w=Object.freeze({[a.us]:v.us,[a.eu]:v.eu,[a.kr]:v.kr,[a.cn]:v.cn}),z=e=>Object.freeze({[a.us]:`${w[a.us]}${e}`,[a.eu]:`${w[a.eu]}${e}`,[a.kr]:`${w[a.kr]}${e}`,[a.cn]:`${w[a.cn]}${e}`}),ve=z(I.authorize),Se=z(I.token),Te=z(I.checkToken),p={[h.REGIONS]:Oe,[h.LOCALES]:pe,[h.DEFAULT_LOCALES]:fe,[h.SC2_REALMS]:Ae,[h.REGION_API_HOSTS]:ke,[h.OAUTH_AUTHORIZE_URIS]:ve,[h.OAUTH_TOKEN_URIS]:Se,[h.OAUTH_CHECK_TOKEN_URIS]:Te},A=p[h.REGIONS],Ee=()=>A,_e=()=>Object.keys(A).map(e=>parseInt(e,10)),Ie=()=>{const e=Object.values(A);return[].concat(...e).map(t=>t.toString())},M=e=>{const t=Object.keys(A),n=e.toString();if(!t.includes(n))throw new RangeError(`${n} is not a valid parameter for getRegionNameById()`);return A[n]},S=e=>{try{return!!M(e)}catch{return!1}},N=e=>{const t=e.toLowerCase(),n=Object.keys(A).filter(s=>A[s].includes(t)),r=Number(n[0])||!1;if(!r)throw new RangeError(`"${e}" is not a valid parameter for getRegionIdByName()`);return r},x=e=>{try{return!!N(e)}catch{return!1}},U=(e,t)=>{const n=typeof e=="string"?e:e.toString();if(!S(n))throw new RangeError(`${n} is not a valid parameter for getConstantByRegionId(${e}, '${t}')`);return p[t][e]},ye=(e,t)=>{if(!x(e))throw new RangeError(`${e} is not a valid parameter for getConstantByRegionName(${e}, '${t}')`);const n=N(e);return p[t][n]},$=(e,t)=>S(e)?U(e,t):ye(e.toString(),t),be=p[h.LOCALES],G=()=>be,D=()=>Object.keys(R).filter(e=>Number.isNaN(Number(e))).map(e=>e.toString()),V=e=>U(e,h.LOCALES),q=e=>/^(?:[a-z]{2}_[a-z]{2})$/gi.test(e),Q=e=>{if(!q(e))throw new RangeError(`${e} is not a valid parameter for validateLocale()`);const t=D().map(r=>r.toLowerCase()),n=e.toLowerCase();return t.includes(n)},we=(e,t)=>{const n=e.toLowerCase(),r=Q(n)||!1,s=t.toString(),u=S(s);if(!r)throw new RangeError(`${e} is not a valid locale parameter for isLocaleValidForRegionId()`);if(!u)throw new RangeError(`${t} is not a valid regionId parameter for isLocaleValidForRegionId()`);return V(t).map(i=>i.toLowerCase()).includes(n)},Le=p[h.DEFAULT_LOCALES],je=p[h.LOCALES],W=e=>{const t=e.toString();if(!S(t))throw new RangeError(`${t} is not a valid parameter for getDefaultLocaleNameForRegionId()`);const n=Le[t];return je[e][n]},Ce=()=>{const e=G(),t=Object.keys(e);return Object.assign({},...t.map(n=>({[n]:W(n)})))},ze=()=>p.SC2_REALMS,X=()=>{const e=Object.values(p.SC2_REALMS);return[].concat(...e).filter((t,n,r)=>n===r.indexOf(t))},Z=e=>U(e,h.SC2_REALMS),P=e=>{const t=e.toString();return/^([1-9]{1})$/gi.test(t)},Ne=e=>{if(!P(e))throw new RangeError(`${e} is not a valid parameter for validateSc2Realm()`);const t=X(),n=typeof e=="number"?e:parseInt(e,10);return t.includes(n)},Ue=(e,t)=>{const n=P(e),r=t.toString(),s=S(r);if(!n)throw new RangeError(`${e} is not a valid sc2Realm parameter for isSc2RealmValidForRegionId()`);if(!s)throw new RangeError(`${t} is not a valid regionId parameter for isSc2RealmValidForRegionId()`);const u=Z(t),i=typeof e=="number"?e:parseInt(e,10);return u.includes(i)},$e=e=>{const t=$(e,h.REGION_API_HOSTS);return typeof e=="string"&&e.toLowerCase()===m.kr?t[0]:typeof e=="string"&&e.toLowerCase()===m.tw?t[1]:t},Pe=e=>$(e,h.OAUTH_CHECK_TOKEN_URIS),Be=e=>$(e,h.OAUTH_TOKEN_URIS);var He=Object.defineProperty,J=Object.getOwnPropertySymbols,Fe=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable,Y=(e,t,n)=>t in e?He(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,T=(e,t)=>{for(var n in t||(t={}))Fe.call(t,n)&&Y(e,n,t[n]);if(J)for(var n of J(t))Ke.call(t,n)&&Y(e,n,t[n]);return e},Me=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});const B=e=>Me(void 0,null,function*(){const{uri:t,timeout:n,headers:r,params:s,data:u,auth:i}=e,c=e.method||_.GET;if(!me(t))throw new RangeError(`'${t}' is not a valid parameter for fetchFromUri()`);const o=T(T(T(T({method:c,url:encodeURI(t),timeout:n||1e4},r&&{headers:r}),s&&{params:s}),i&&{auth:i}),u&&{data:u}),l=yield E.request(o),j=l.headers[b.LastModified]?l.headers[b.LastModified]:null;return T(T({},l.data),j&&{lastModified:j})}),ee=e=>{const{region:t,clientId:n,clientSecret:r}=e;if(!n)throw new Error("Cannot get access token because no Battle.net client id was provided");if(!r)throw new Error("Cannot get access token because no Battle.net client secret was provided");const s="grant_type=client_credentials",u={username:n,password:r},i=Be(t);return B({data:s,auth:u,uri:i,method:_.POST})};var xe=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});const te=(e,t)=>xe(void 0,null,function*(){try{const n=`${Pe(e)}${t}`;return(yield B({uri:n})).error!==y.InvalidToken}catch{return!1}});var Ge=Object.defineProperty,ne=Object.getOwnPropertySymbols,De=Object.prototype.hasOwnProperty,Ve=Object.prototype.propertyIsEnumerable,oe=(e,t,n)=>t in e?Ge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L=(e,t)=>{for(var n in t||(t={}))De.call(t,n)&&oe(e,n,t[n]);if(ne)for(var n of ne(t))Ve.call(t,n)&&oe(e,n,t[n]);return e},re=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});const ae=(e,t)=>{const{region:n,endpoint:r,options:s}=e,{headers:u,params:i,timeout:c}=s;if(!Re(r))throw new RangeError(`${r} is not a valid endpoint.`);const o=`${$e(n)}${r}`,l={Authorization:`Bearer ${t}`},j=L(L({},u),l);return B(L(L({uri:o,method:_.GET,headers:j},i&&{params:i}),c&&{timeout:c}))},se=e=>re(void 0,null,function*(){const{onAccessTokenRefresh:t}=e.options,n=(yield ee(e)).access_token;return t?.(n),ae(e,n)}),qe=e=>re(void 0,null,function*(){var t;const{region:n,accessToken:r}=e,{validateAccessTokenOnEachQuery:s,refreshExpiredAccessToken:u,onAccessTokenExpired:i}=e.options;if(s&&!(yield te(n,r)))return i?.(),u?se(e):{error:y.AccessTokenInvalid};try{return yield ae(e,r)}catch(c){if(((t=c.response)==null?void 0:t.status)===C.NotAuthorized)return i?.(),u?se(e):Promise.resolve({error:y.AccessTokenExpired});throw c}});class Qe{constructor(t,n){this.clientId=t,this.clientSecret=n}}var H=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});class ce extends Qe{constructor(t){super(t.clientId,t.clientSecret),this.getAccessToken=()=>H(this,null,function*(){return(yield this.getAccessTokenObject()).access_token}),this.getAccessTokenObject=()=>this.accessTokenObject?Promise.resolve(this.accessTokenObject):this.setAccessTokenObject(),this.getAccessTokenObjectFromBnet=()=>H(this,null,function*(){return ee({region:this.region,clientId:this.clientId,clientSecret:this.clientSecret})}),this.region=t.region,this.accessTokenObject=t.accessToken?{access_token:t.accessToken}:void 0}setAccessToken(){return this.setAccessTokenObject()}setAccessTokenObject(){return H(this,null,function*(){return this.accessTokenObject=yield this.getAccessTokenObjectFromBnet(),this.accessTokenObject})}}ce.validateAccessToken=(e,t)=>te(e,t);var We=Object.defineProperty,ie=Object.getOwnPropertySymbols,Xe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,le=(e,t,n)=>t in e?We(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ue=(e,t)=>{for(var n in t||(t={}))Xe.call(t,n)&&le(e,n,t[n]);if(ie)for(var n of ie(t))Ze.call(t,n)&&le(e,n,t[n]);return e},Je=(e,t,n)=>new Promise((r,s)=>{var u=o=>{try{c(n.next(o))}catch(l){s(l)}},i=o=>{try{c(n.throw(o))}catch(l){s(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(u,i);c((n=n.apply(e,t)).next())});class d extends ce{constructor(t){super({region:t.region,clientId:t.clientId,clientSecret:t.clientSecret,accessToken:t.accessToken}),this.query=(n,r)=>Je(this,null,function*(){return qe({endpoint:n,region:r?.region||this.region,clientId:this.clientId,clientSecret:this.clientSecret,accessToken:yield this.getAccessToken(),options:ue(ue({},this.options),r)})}),this.options={validateAccessTokenOnEachQuery:t.validateAccessTokenOnEachQuery||!1,refreshExpiredAccessToken:t.refreshExpiredAccessToken||!1,onAccessTokenExpired:t.onAccessTokenExpired||void 0,onAccessTokenRefresh:t.onAccessTokenRefresh||void 0}}setRegion(t){this.region=t}}d.getAllRegions=Ee,d.getAllRegionIds=_e,d.getAllRegionNames=Ie,d.getRegionNameById=M,d.validateRegionId=S,d.getRegionIdByName=N,d.validateRegionName=x,d.getAllLocales=G,d.getAllLocaleNames=D,d.getLocalesByRegionId=V,d.checkIfLocaleLooksValid=q,d.validateLocale=Q,d.isLocaleValidForRegionId=we,d.getAllSc2Realms=ze,d.getAllAvailableSc2Realms=X,d.getSc2RealmsByRegionId=Z,d.checkIfSc2RealmLooksValid=P,d.validateSc2Realm=Ne,d.isSc2RealmValidForRegionId=Ue,d.getDefaultLocaleNameForRegionId=W,d.getAllDefaultLocaleNames=Ce,g.ApiHeaders=b,g.BlizzAPI=d,g.ConstantKey=h,g.DefaultLocaleIndex=k,g.ErrorCode=C,g.ErrorResponseMessage=y,g.HttpMethod=_,g.Locale=R,g.OAuthEndpoint=I,g.OAuthHost=v,g.RegionHost=O,g.RegionIdAsStringEnum=F,g.RegionIdEnum=a,g.RegionNameEnum=m,g.Sc2Realm=f,g.Sc2RealmAsString=K});
{
"name": "blizzapi",
"version": "2.5.0",
"version": "2.6.0",
"description": "Flexible and feature-rich library for easy access to Blizzard Battle.net APIs",

@@ -62,18 +62,18 @@ "keywords": [

"devDependencies": {
"@types/jest": "^29.4.0",
"@types/node": "^18.14.1",
"esbuild": "^0.17.10",
"eslint": "^8.34.0",
"eslint-config-lukemnet": "^1.0.2",
"@types/jest": "^29.5.0",
"@types/node": "^18.15.6",
"esbuild": "^0.17.12",
"eslint": "^8.36.0",
"eslint-config-lukemnet": "^1.0.3",
"husky": "^8.0.3",
"jest": "^29.4.3",
"lint-staged": "^13.1.2",
"prettier": "^2.8.4",
"rimraf": "^4.1.2",
"rollup": "^3.17.2",
"rollup-plugin-dts": "^5.2.0",
"jest": "^29.5.0",
"lint-staged": "^13.2.0",
"prettier": "^2.8.6",
"rimraf": "^4.4.1",
"rollup": "^3.20.1",
"rollup-plugin-dts": "^5.3.0",
"rollup-plugin-esbuild": "^5.0.0",
"sort-package-json": "^2.4.1",
"ts-jest": "^29.0.5",
"typescript": "^4.9.5"
"typescript": "^5.0.2"
},

@@ -80,0 +80,0 @@ "licenses": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc