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.6.1 to 2.6.2

2

dist/blizzapi.d.ts

@@ -217,2 +217,2 @@ type Uri = string;

export { AccessToken, AccessTokenObject, AccessTokenOptions, ApiHeaders, BattleNetOptions, BattleNetQueryOptions, BlizzAPI, BlizzAPIOptions, ClientId, ClientSecret, ConstantKey, DefaultLocaleIndex, DefaultLocaleIndexArray, Endpoint, ErrorCode, ErrorResponseMessage, ExpiredAccessTokenError, HttpMethod, InvalidAccessTokenError, Locale, LocaleArray, MaybeRegion, OAuthEndpoint, OAuthHost, QueryOptions, RegionHost, RegionId, RegionIdArray, RegionIdAsNumberOrString, RegionIdAsString, RegionIdAsStringEnum, RegionIdEnum, RegionIdKey, RegionIdOrName, RegionIdProperties, RegionName, RegionNameArray, RegionNameEnum, ResponseError, Sc2Realm, Sc2RealmArray, Sc2RealmAsNumberOrString, Sc2RealmAsString, Sc2RealmList, Uri, ValidatorFunction };
export { type AccessToken, type AccessTokenObject, type AccessTokenOptions, ApiHeaders, type BattleNetOptions, type BattleNetQueryOptions, BlizzAPI, type BlizzAPIOptions, type ClientId, type ClientSecret, ConstantKey, DefaultLocaleIndex, type DefaultLocaleIndexArray, type Endpoint, ErrorCode, ErrorResponseMessage, type ExpiredAccessTokenError, HttpMethod, type InvalidAccessTokenError, Locale, type LocaleArray, type MaybeRegion, OAuthEndpoint, OAuthHost, type QueryOptions, RegionHost, type RegionId, type RegionIdArray, type RegionIdAsNumberOrString, type RegionIdAsString, RegionIdAsStringEnum, RegionIdEnum, type RegionIdKey, type RegionIdOrName, type RegionIdProperties, type RegionName, type RegionNameArray, RegionNameEnum, type ResponseError, Sc2Realm, type Sc2RealmArray, type Sc2RealmAsNumberOrString, Sc2RealmAsString, type Sc2RealmList, type Uri, type ValidatorFunction };

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

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

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

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

@@ -59,32 +59,32 @@ "keywords": [

"dependencies": {
"axios": "^1.4.0"
"axios": "^1.6.3"
},
"devDependencies": {
"@types/jest": "^29.5.3",
"@types/node": "^20.4.5",
"@typescript-eslint/eslint-plugin": "^6.2.0",
"@typescript-eslint/parser": "^6.2.0",
"esbuild": "^0.18.17",
"eslint": "^8.45.0",
"@types/jest": "^29.5.11",
"@types/node": "^20.10.5",
"@typescript-eslint/eslint-plugin": "^6.16.0",
"@typescript-eslint/parser": "^6.16.0",
"esbuild": "^0.19.11",
"eslint": "^8.56.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-airbnb-typescript": "^17.1.0",
"eslint-config-prettier": "^8.9.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jest": "^27.2.3",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-prettier": "^5.0.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jest": "^27.6.0",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-unicorn": "^48.0.1",
"eslint-plugin-unicorn": "^50.0.1",
"husky": "^8.0.3",
"jest": "^29.6.2",
"lint-staged": "^13.2.3",
"prettier": "^3.0.0",
"rimraf": "^5.0.1",
"rollup": "^3.26.3",
"rollup-plugin-dts": "^5.3.0",
"rollup-plugin-esbuild": "^5.0.0",
"sort-package-json": "^2.5.1",
"jest": "^29.7.0",
"lint-staged": "^15.2.0",
"prettier": "^3.1.1",
"rimraf": "^5.0.5",
"rollup": "^4.9.1",
"rollup-plugin-dts": "^6.1.0",
"rollup-plugin-esbuild": "^6.1.0",
"sort-package-json": "^2.6.0",
"ts-jest": "^29.1.1",
"typescript": "^5.1.6"
"typescript": "^5.3.3"
},

@@ -91,0 +91,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