scryfall-api 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/declarations/dist/src/api/CardIdentifierBuilder.d.ts +10 -0
- package/dist/declarations/dist/src/api/Cards.d.ts +19 -0
- package/dist/declarations/dist/src/api/Catalog.d.ts +18 -0
- package/dist/declarations/dist/src/api/Rulings.d.ts +11 -0
- package/dist/declarations/dist/src/api/Sets.d.ts +10 -0
- package/dist/declarations/dist/src/api/Symbology.d.ts +8 -0
- package/dist/declarations/dist/src/error/MagicQueryError.d.ts +5 -0
- package/dist/declarations/dist/src/index.d.ts +10 -0
- package/dist/declarations/dist/src/query/MagicPageResult.d.ts +18 -0
- package/dist/declarations/dist/src/query/MagicQuery.d.ts +13 -0
- package/dist/declarations/dist/src/types/Border.d.ts +7 -0
- package/dist/declarations/dist/src/types/BulkDataDefinition.d.ts +14 -0
- package/dist/declarations/dist/src/types/BulkDataType.d.ts +2 -0
- package/dist/declarations/dist/src/types/BulkDataTypes.d.ts +7 -0
- package/dist/declarations/dist/src/types/Card.d.ts +91 -0
- package/dist/declarations/dist/src/types/CardFace.d.ts +22 -0
- package/dist/declarations/dist/src/types/CardIdentifier.d.ts +10 -0
- package/dist/declarations/dist/src/types/CardSymbol.d.ts +13 -0
- package/dist/declarations/dist/src/types/Color.d.ts +9 -0
- package/dist/declarations/dist/src/types/Format.d.ts +15 -0
- package/dist/declarations/dist/src/types/FrameEffect.d.ts +17 -0
- package/dist/declarations/dist/src/types/Game.d.ts +5 -0
- package/dist/declarations/dist/src/types/HomepageLink.d.ts +9 -0
- package/dist/declarations/dist/src/types/ImageUris.d.ts +8 -0
- package/dist/declarations/dist/src/types/Layout.d.ts +20 -0
- package/dist/declarations/dist/src/types/Legalties.d.ts +5 -0
- package/dist/declarations/dist/src/types/Legalty.d.ts +6 -0
- package/dist/declarations/dist/src/types/ManaCost.d.ts +9 -0
- package/dist/declarations/dist/src/types/PageQuery.d.ts +5 -0
- package/dist/declarations/dist/src/types/PageQueryValue.d.ts +1 -0
- package/dist/declarations/dist/src/types/Preview.d.ts +5 -0
- package/dist/declarations/dist/src/types/Prices.d.ts +6 -0
- package/dist/declarations/dist/src/types/PromoType.d.ts +27 -0
- package/dist/declarations/dist/src/types/PurchaseUris.d.ts +6 -0
- package/dist/declarations/dist/src/types/Query.d.ts +4 -0
- package/dist/declarations/dist/src/types/Rarity.d.ts +6 -0
- package/dist/declarations/dist/src/types/RelatedCard.d.ts +9 -0
- package/dist/declarations/dist/src/types/RelatedCardComponent.d.ts +6 -0
- package/dist/declarations/dist/src/types/RelatedUris.d.ts +7 -0
- package/dist/declarations/dist/src/types/ResultCatalog.d.ts +2 -0
- package/dist/declarations/dist/src/types/ResultData.d.ts +4 -0
- package/dist/declarations/dist/src/types/ResultList.d.ts +7 -0
- package/dist/declarations/dist/src/types/RetryStrategy.d.ts +11 -0
- package/dist/declarations/dist/src/types/Ruling.d.ts +5 -0
- package/dist/declarations/dist/src/types/SearchError.d.ts +7 -0
- package/dist/declarations/dist/src/types/SearchOptions.d.ts +15 -0
- package/dist/declarations/dist/src/types/Set.d.ts +20 -0
- package/dist/declarations/dist/src/types/SetType.d.ts +22 -0
- package/dist/declarations/dist/src/types/Sort.d.ts +15 -0
- package/dist/declarations/dist/src/types/SortDirection.d.ts +5 -0
- package/dist/declarations/dist/src/types/TOrArrayOfT.d.ts +1 -0
- package/dist/declarations/dist/src/types/UniqueStrategy.d.ts +5 -0
- package/dist/declarations/dist/src/types/index.d.ts +42 -0
- package/dist/scryfall-api.cjs.d.ts +1 -1
- package/dist/scryfall-api.cjs.dev.js +53 -122
- package/dist/scryfall-api.cjs.prod.js +53 -122
- package/dist/scryfall-api.esm.js +54 -122
- package/dist/scryfall-api.umd.min.js +1 -1
- package/dist/scryfall-api.umd.min.js.map +1 -1
- package/package.json +59 -7
- package/CHANGELOG.md +0 -13
- package/DOCUMENTATION.md +0 -505
- package/SUPPORT.md +0 -38
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?a(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],a):a((e="undefined"!=typeof globalThis?globalThis:e||self).ScryfallAPI={},e.axios)}(this,(function(e,a){"use strict";function t(e){return e&&e.__esModule?e:{default:e}}var r=t(a);function s(){return s=Object.assign||function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},s.apply(this,arguments)}class n{constructor(e,a,t,r){this.q=e,this.apiPath=a,this.query=t,this.post=r,this._hasMore=!0,this._count=0}get count(){return this._count}get hasMore(){return this._hasMore}async all(){const e=[];for(;this._hasMore;){const a=await this.next();e.push(...a)}return e}async get(e){const a=[];for(;this._hasMore;){const t=await this.next();if(a.push(...t),a.length==e)return a;if(a.length>e)return a.slice(0,e)}return a}async next(){const e=await this.q.query(this.apiPath,this.query,this.post);return this._hasMore=(null==e?void 0:e.has_more)||!1,this._count=Number.parseInt(((null==e?void 0:e.total_cards)||0)+""),this._hasMore&&this.setNextPage(),(null==e?void 0:e.data)||[]}async page(e){return this.query.page=e,this.next()}setNextPage(){this.query.page=this.query.page+1}}class o extends Error{constructor(e){super(null==e?void 0:e.details),this.data=e,Object.setPrototypeOf(this,o.prototype)}}class i{static canRetry(e){return"not_found"!=(null==e?void 0:e.code)&&"bad_request"!=(null==e?void 0:e.code)&&(!i.retry.canRetry||i.retry.canRetry(e))}static async debounce(){const e=Date.now(),a=e-i.lastQuery;if(a>=i.rateLimit)i.lastQuery=e;else{const e=i.rateLimit-a;i.lastQuery+=e,await i.sleep(e)}}static sleep(e=0){return new Promise((a=>setTimeout(a,e)))}static async tryQuery(e,a,t,n){await i.debounce();const l=s({data:t,method:t?"POST":"GET",params:a,url:`${i.endpoint}/${e}`},n);try{return await r.default.request(l)}catch(e){if(e.isAxiosError){var d;throw new o(null==(d=e.response)?void 0:d.data)}throw e}}async query(e,a,t,r){var s;let n,l;for(Array.isArray(e)&&(e=e.join("/")),n=0;n<i.retry.attempts;n++){let s;try{l=await i.tryQuery(`${e}`,a,t,r)}catch(e){if(!(e instanceof o))throw e;s=e.data}if(l||!i.canRetry(s))break;await i.sleep(i.retry.timeout)}return null==(s=l)?void 0:s.data}}i.retry={attempts:1},i.endpoint="https://api.scryfall.com",i.lastQuery=100,i.rateLimit=100;var l=new class extends i{async autoCompleteName(e){const a=await this.query("cards/autocomplete",{q:e});return(null==a?void 0:a.data)||[]}async byArenaId(e){return this.query(["cards/arena",e])}async byId(e){return this.query(["cards",e])}async byMtgoId(e){return this.query(["cards/mtgo",e])}async byMultiverseId(e){return this.query(["cards/multiverse",e])}async byName(e,a,t=!1){return"boolean"==typeof a&&(t=a,a=void 0),this.query("cards/named",{[t?"fuzzy":"exact"]:e,set:a})}async bySet(e,a,t){const r=["cards",e,a];return t&&r.push(t),this.query(r)}async byTcgPlayerId(e){return this.query(["cards/tcgplayer",e])}async collection(...e){const a=[];for(let t=0;t<e.length;t+=75){const r={identifiers:e.slice(t,t+75)},s=await this.query("cards/collection",void 0,r);a.push(...(null==s?void 0:s.data)||[])}return a}async random(){return this.query("cards/random")}search(e,a){return new n(this,"cards/search",s({q:e},"number"==typeof a?{page:a}:s({page:1},a)))}};var d=new class extends i{async artifactTypes(){var e;return(null==(e=await this.query("catalog/artifact-types"))?void 0:e.data)||[]}async artistNames(){var e;return(null==(e=await this.query("catalog/artist-names"))?void 0:e.data)||[]}async cardNames(){var e;return(null==(e=await this.query("catalog/card-names"))?void 0:e.data)||[]}async creatureTypes(){var e;return(null==(e=await this.query("catalog/creature-types"))?void 0:e.data)||[]}async enchantmentTypes(){var e;return(null==(e=await this.query("catalog/enchantment-types"))?void 0:e.data)||[]}async landTypes(){var e;return(null==(e=await this.query("catalog/land-types"))?void 0:e.data)||[]}async loyalties(){var e;return(null==(e=await this.query("catalog/loyalties"))?void 0:e.data)||[]}async planeswalkerTypes(){var e;return(null==(e=await this.query("catalog/planeswalker-types"))?void 0:e.data)||[]}async powers(){var e;return(null==(e=await this.query("catalog/powers"))?void 0:e.data)||[]}async spellTypes(){var e;return(null==(e=await this.query("catalog/spell-types"))?void 0:e.data)||[]}async toughnesses(){var e;return(null==(e=await this.query("catalog/toughnesses"))?void 0:e.data)||[]}async watermarks(){var e;return(null==(e=await this.query("catalog/watermarks"))?void 0:e.data)||[]}async wordBank(){var e;return(null==(e=await this.query("catalog/word-bank"))?void 0:e.data)||[]}};var u=new class extends i{async homepageLinks(){var e;return(null==(e=await this.query("homepage-links"))?void 0:e.data)||[]}};var c=new class extends i{async byArenaId(e){var a;return(null==(a=await this.query(["cards/arena",e,"rulings"]))?void 0:a.data)||[]}async byId(e){var a;return(null==(a=await this.query(["cards",e,"rulings"]))?void 0:a.data)||[]}async byMtgoId(e){var a;return(null==(a=await this.query(["cards/mtgo",e,"rulings"]))?void 0:a.data)||[]}async byMultiverseId(e){var a;return(null==(a=await this.query(["cards/multiverse",e,"rulings"]))?void 0:a.data)||[]}async bySet(e,a){var t;return(null==(t=await this.query(["cards",e,`${a}`,"rulings"]))?void 0:t.data)||[]}};var y=new class extends i{async all(){const e=await this.query("sets");return(null==e?void 0:e.data)||[]}async byCode(e){return await this.query(["sets",e])}async byId(e){return this.query(["sets",e])}async byTcgPlayerId(e){return this.query(["sets/tcgplayer",e])}};var m,p,h,v,g,f,w,b,_,q,k,x,T,I,S,M=new class extends i{async all(){var e;return(null==(e=await this.query("symbology"))?void 0:e.data)||[]}async parseMana(e){return await this.query("symbology/parse-mana",{cost:e})}};e.Border=void 0,(m=e.Border||(e.Border={}))[m.black=0]="black",m[m.borderless=1]="borderless",m[m.gold=2]="gold",m[m.silver=3]="silver",m[m.white=4]="white",e.BulkDataTypes=void 0,(p=e.BulkDataTypes||(e.BulkDataTypes={}))[p.oracle_cards=0]="oracle_cards",p[p.unique_artwork=1]="unique_artwork",p[p.default_cards=2]="default_cards",p[p.all_cards=3]="all_cards",p[p.rulings=4]="rulings",function(e){e[e.W=0]="W",e[e.B=1]="B",e[e.R=2]="R",e[e.U=3]="U",e[e.G=4]="G"}(h||(h={})),e.Format=void 0,(v=e.Format||(e.Format={}))[v.standard=0]="standard",v[v.future=1]="future",v[v.historic=2]="historic",v[v.pioneer=3]="pioneer",v[v.modern=4]="modern",v[v.legacy=5]="legacy",v[v.pauper=6]="pauper",v[v.vintage=7]="vintage",v[v.penny=8]="penny",v[v.commander=9]="commander",v[v.brawl=10]="brawl",v[v.duel=11]="duel",v[v.oldschool=12]="oldschool",e.FrameEffect=void 0,(g=e.FrameEffect||(e.FrameEffect={}))[g.legendary=0]="legendary",g[g.miracle=1]="miracle",g[g.nyxtouched=2]="nyxtouched",g[g.draft=3]="draft",g[g.devoid=4]="devoid",g[g.tombstone=5]="tombstone",g[g.colorshifted=6]="colorshifted",g[g.inverted=7]="inverted",g[g.sunmoondfc=8]="sunmoondfc",g[g.compasslanddfc=9]="compasslanddfc",g[g.originpwdfc=10]="originpwdfc",g[g.mooneldrazidfc=11]="mooneldrazidfc",g[g.moonreversemoondfc=12]="moonreversemoondfc",g[g.showcase=13]="showcase",g[g.extendedart=14]="extendedart",e.Game=void 0,(f=e.Game||(e.Game={}))[f.paper=0]="paper",f[f.arena=1]="arena",f[f.mtgo=2]="mtgo",e.Layout=void 0,(w=e.Layout||(e.Layout={}))[w.normal=0]="normal",w[w.split=1]="split",w[w.flip=2]="flip",w[w.transform=3]="transform",w[w.meld=4]="meld",w[w.leveler=5]="leveler",w[w.saga=6]="saga",w[w.adventure=7]="adventure",w[w.planar=8]="planar",w[w.scheme=9]="scheme",w[w.vanguard=10]="vanguard",w[w.token=11]="token",w[w.double_faced_token=12]="double_faced_token",w[w.emblem=13]="emblem",w[w.augment=14]="augment",w[w.host=15]="host",w[w.art_series=16]="art_series",w[w.double_sided=17]="double_sided",e.Legality=void 0,(b=e.Legality||(e.Legality={}))[b.legal=0]="legal",b[b.not_legal=1]="not_legal",b[b.restricted=2]="restricted",b[b.banned=3]="banned",e.PromoType=void 0,(_=e.PromoType||(e.PromoType={}))[_.tourney=0]="tourney",_[_.prerelease=1]="prerelease",_[_.datestamped=2]="datestamped",_[_.planeswalkerdeck=3]="planeswalkerdeck",_[_.buyabox=4]="buyabox",_[_.judgegift=5]="judgegift",_[_.event=6]="event",_[_.convention=7]="convention",_[_.starterdeck=8]="starterdeck",_[_.instore=9]="instore",_[_.setpromo=10]="setpromo",_[_.fnm=11]="fnm",_[_.openhouse=12]="openhouse",_[_.league=13]="league",_[_.draftweekend=14]="draftweekend",_[_.gameday=15]="gameday",_[_.release=16]="release",_[_.intropack=17]="intropack",_[_.giftbox=18]="giftbox",_[_.duels=19]="duels",_[_.wizardsplaynetwork=20]="wizardsplaynetwork",_[_.premiereshop=21]="premiereshop",_[_.playerrewards=22]="playerrewards",_[_.gateway=23]="gateway",_[_.arenaleague=24]="arenaleague",e.Rarity=void 0,(q=e.Rarity||(e.Rarity={}))[q.common=0]="common",q[q.uncommon=1]="uncommon",q[q.rare=2]="rare",q[q.mythic=3]="mythic",e.RelatedCardComponent=void 0,(k=e.RelatedCardComponent||(e.RelatedCardComponent={}))[k.token=0]="token",k[k.meld_part=1]="meld_part",k[k.meld_result=2]="meld_result",k[k.combo_piece=3]="combo_piece",e.SetType=void 0,(x=e.SetType||(e.SetType={}))[x.core=0]="core",x[x.expansion=1]="expansion",x[x.masters=2]="masters",x[x.masterpiece=3]="masterpiece",x[x.from_the_vault=4]="from_the_vault",x[x.spellbook=5]="spellbook",x[x.premium_deck=6]="premium_deck",x[x.duel_deck=7]="duel_deck",x[x.draft_innovation=8]="draft_innovation",x[x.treasure_chest=9]="treasure_chest",x[x.commander=10]="commander",x[x.planechase=11]="planechase",x[x.archenemy=12]="archenemy",x[x.vanguard=13]="vanguard",x[x.funny=14]="funny",x[x.starter=15]="starter",x[x.box=16]="box",x[x.promo=17]="promo",x[x.token=18]="token",x[x.memorabilia=19]="memorabilia",e.Sort=void 0,(T=e.Sort||(e.Sort={}))[T.name=0]="name",T[T.set=1]="set",T[T.released=2]="released",T[T.rarity=3]="rarity",T[T.color=4]="color",T[T.usd=5]="usd",T[T.tix=6]="tix",T[T.eur=7]="eur",T[T.cmc=8]="cmc",T[T.power=9]="power",T[T.toughness=10]="toughness",T[T.edhrec=11]="edhrec",T[T.artist=12]="artist",e.SortDirection=void 0,(I=e.SortDirection||(e.SortDirection={}))[I.auto=0]="auto",I[I.asc=1]="asc",I[I.desc=2]="desc",e.UniqueStrategy=void 0,(S=e.UniqueStrategy||(e.UniqueStrategy={}))[S.cards=0]="cards",S[S.art=1]="art",S[S.prints=2]="prints",e.CardIdentifierBuilder=class{static byId(e){return{id:e}}static byIllustrationId(e){return{illustration_id:e}}static byMtgoId(e){return{mtgo_id:e}}static byMultiverseId(e){return{multiverse_id:e}}static byName(e,a){return{name:e,set:a}}static byOracleId(e){return{oracle_id:e}}static bySet(e,a){return{collector_number:`${a}`,set:e}}},e.Cards=l,e.Catalog=d,e.MagicQueryError=o,e.Misc=u,e.Rulings=c,e.Sets=y,e.Symbology=M,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).scryfall={},e.axios)}(this,(function(e,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}var r=a(t);class s{constructor(e,t,a,r){this.q=e,this.apiPath=t,this.query=a,this.post=r,this._hasMore=!0,this._count=0}get count(){return this._count}get hasMore(){return this._hasMore}async all(){const e=[];for(;this._hasMore;){const t=await this.next();e.push(...t)}return e}async get(e){const t=[];for(;this._hasMore;){const a=await this.next();if(t.push(...a),t.length==e)return t;if(t.length>e)return t.slice(0,e)}return t}async next(){const e=await this.q.query(this.apiPath,this.query,this.post);return this._hasMore=e?.has_more||!1,this._count=Number.parseInt((e?.total_cards||0)+""),this._hasMore&&this.setNextPage(),e?.data||[]}async page(e){return this.query.page=e,this.next()}setNextPage(){this.query.page=this.query.page+1}}class n extends Error{constructor(e){super(e?.details),this.data=e,Object.setPrototypeOf(this,n.prototype)}}class o{static retry={attempts:1};static endpoint="https://api.scryfall.com";static lastQuery=100;static rateLimit=100;static canRetry(e){return"not_found"!=e?.code&&"bad_request"!=e?.code&&!o.retry.canRetry}static async debounce(){const e=Date.now(),t=e-o.lastQuery;if(t>=o.rateLimit)o.lastQuery=e;else{const e=o.rateLimit-t;o.lastQuery+=e,await o.sleep(e)}}static sleep(e=0){return new Promise((t=>setTimeout(t,e)))}static async tryQuery(e,t,a,s){await o.debounce();const i={data:a,method:a?"POST":"GET",params:t,url:`${o.endpoint}/${e}`,...s};try{return await r.default.request(i)}catch(e){if(e.isAxiosError){throw new n(e.response?.data)}throw e}}async query(e,t,a,r){let s,i;for(Array.isArray(e)&&(e=e.join("/")),s=0;s<o.retry.attempts;s++){let s;try{i=await o.tryQuery(`${e}`,t,a,r)}catch(e){if(!(e instanceof n))throw e;s=e.data}if(i||!o.canRetry(s))break;await o.sleep(o.retry.timeout)}return i?.data}}var i=new class extends o{async autoCompleteName(e){return(await this.query("cards/autocomplete",{q:e}))?.data||[]}async byArenaId(e){return this.query(["cards/arena",e])}async byId(e){return this.query(["cards",e])}async byMtgoId(e){return this.query(["cards/mtgo",e])}async byMultiverseId(e){return this.query(["cards/multiverse",e])}async byName(e,t,a=!1){return"boolean"==typeof t&&(a=t,t=void 0),this.query("cards/named",{[a?"fuzzy":"exact"]:e,set:t})}async bySet(e,t,a){const r=["cards",e,t];return a&&r.push(a),this.query(r)}async byTcgPlayerId(e){return this.query(["cards/tcgplayer",e])}async collection(...e){const t=[];for(let a=0;a<e.length;a+=75){const r={identifiers:e.slice(a,a+75)},s=await this.query("cards/collection",void 0,r);t.push(...s?.data||[])}return t}async random(){return this.query("cards/random")}search(e,t){return new s(this,"cards/search",{q:e,..."number"==typeof t?{page:t}:{page:1,...t}})}};var c=new class extends o{async artifactTypes(){return(await this.query("catalog/artifact-types"))?.data||[]}async artistNames(){return(await this.query("catalog/artist-names"))?.data||[]}async cardNames(){return(await this.query("catalog/card-names"))?.data||[]}async creatureTypes(){return(await this.query("catalog/creature-types"))?.data||[]}async enchantmentTypes(){return(await this.query("catalog/enchantment-types"))?.data||[]}async landTypes(){return(await this.query("catalog/land-types"))?.data||[]}async loyalties(){return(await this.query("catalog/loyalties"))?.data||[]}async planeswalkerTypes(){return(await this.query("catalog/planeswalker-types"))?.data||[]}async powers(){return(await this.query("catalog/powers"))?.data||[]}async spellTypes(){return(await this.query("catalog/spell-types"))?.data||[]}async toughnesses(){return(await this.query("catalog/toughnesses"))?.data||[]}async watermarks(){return(await this.query("catalog/watermarks"))?.data||[]}async wordBank(){return(await this.query("catalog/word-bank"))?.data||[]}};var d=new class extends o{async byArenaId(e){return(await this.query(["cards/arena",e,"rulings"]))?.data||[]}async byId(e){return(await this.query(["cards",e,"rulings"]))?.data||[]}async byMtgoId(e){return(await this.query(["cards/mtgo",e,"rulings"]))?.data||[]}async byMultiverseId(e){return(await this.query(["cards/multiverse",e,"rulings"]))?.data||[]}async bySet(e,t){return(await this.query(["cards",e,`${t}`,"rulings"]))?.data||[]}};var u=new class extends o{async all(){return(await this.query("sets"))?.data||[]}async byCode(e){return await this.query(["sets",e])}async byId(e){return this.query(["sets",e])}async byTcgPlayerId(e){return this.query(["sets/tcgplayer",e])}};var l,y,m,p,h,g,f,w,b,_,v,q,k,x,T,I=new class extends o{async all(){return(await this.query("symbology"))?.data||[]}async parseMana(e){return await this.query("symbology/parse-mana",{cost:e})}};e.Border=void 0,(l=e.Border||(e.Border={}))[l.black=0]="black",l[l.borderless=1]="borderless",l[l.gold=2]="gold",l[l.silver=3]="silver",l[l.white=4]="white",e.BulkDataTypes=void 0,(y=e.BulkDataTypes||(e.BulkDataTypes={}))[y.oracle_cards=0]="oracle_cards",y[y.unique_artwork=1]="unique_artwork",y[y.default_cards=2]="default_cards",y[y.all_cards=3]="all_cards",y[y.rulings=4]="rulings",function(e){e[e.W=0]="W",e[e.B=1]="B",e[e.R=2]="R",e[e.U=3]="U",e[e.G=4]="G"}(m||(m={})),e.Format=void 0,(p=e.Format||(e.Format={}))[p.standard=0]="standard",p[p.future=1]="future",p[p.historic=2]="historic",p[p.pioneer=3]="pioneer",p[p.modern=4]="modern",p[p.legacy=5]="legacy",p[p.pauper=6]="pauper",p[p.vintage=7]="vintage",p[p.penny=8]="penny",p[p.commander=9]="commander",p[p.brawl=10]="brawl",p[p.duel=11]="duel",p[p.oldschool=12]="oldschool",e.FrameEffect=void 0,(h=e.FrameEffect||(e.FrameEffect={}))[h.legendary=0]="legendary",h[h.miracle=1]="miracle",h[h.nyxtouched=2]="nyxtouched",h[h.draft=3]="draft",h[h.devoid=4]="devoid",h[h.tombstone=5]="tombstone",h[h.colorshifted=6]="colorshifted",h[h.inverted=7]="inverted",h[h.sunmoondfc=8]="sunmoondfc",h[h.compasslanddfc=9]="compasslanddfc",h[h.originpwdfc=10]="originpwdfc",h[h.mooneldrazidfc=11]="mooneldrazidfc",h[h.moonreversemoondfc=12]="moonreversemoondfc",h[h.showcase=13]="showcase",h[h.extendedart=14]="extendedart",e.Game=void 0,(g=e.Game||(e.Game={}))[g.paper=0]="paper",g[g.arena=1]="arena",g[g.mtgo=2]="mtgo",e.Layout=void 0,(f=e.Layout||(e.Layout={}))[f.normal=0]="normal",f[f.split=1]="split",f[f.flip=2]="flip",f[f.transform=3]="transform",f[f.meld=4]="meld",f[f.leveler=5]="leveler",f[f.saga=6]="saga",f[f.adventure=7]="adventure",f[f.planar=8]="planar",f[f.scheme=9]="scheme",f[f.vanguard=10]="vanguard",f[f.token=11]="token",f[f.double_faced_token=12]="double_faced_token",f[f.emblem=13]="emblem",f[f.augment=14]="augment",f[f.host=15]="host",f[f.art_series=16]="art_series",f[f.double_sided=17]="double_sided",e.Legality=void 0,(w=e.Legality||(e.Legality={}))[w.legal=0]="legal",w[w.not_legal=1]="not_legal",w[w.restricted=2]="restricted",w[w.banned=3]="banned",e.PromoType=void 0,(b=e.PromoType||(e.PromoType={}))[b.tourney=0]="tourney",b[b.prerelease=1]="prerelease",b[b.datestamped=2]="datestamped",b[b.planeswalkerdeck=3]="planeswalkerdeck",b[b.buyabox=4]="buyabox",b[b.judgegift=5]="judgegift",b[b.event=6]="event",b[b.convention=7]="convention",b[b.starterdeck=8]="starterdeck",b[b.instore=9]="instore",b[b.setpromo=10]="setpromo",b[b.fnm=11]="fnm",b[b.openhouse=12]="openhouse",b[b.league=13]="league",b[b.draftweekend=14]="draftweekend",b[b.gameday=15]="gameday",b[b.release=16]="release",b[b.intropack=17]="intropack",b[b.giftbox=18]="giftbox",b[b.duels=19]="duels",b[b.wizardsplaynetwork=20]="wizardsplaynetwork",b[b.premiereshop=21]="premiereshop",b[b.playerrewards=22]="playerrewards",b[b.gateway=23]="gateway",b[b.arenaleague=24]="arenaleague",e.Rarity=void 0,(_=e.Rarity||(e.Rarity={}))[_.common=0]="common",_[_.uncommon=1]="uncommon",_[_.rare=2]="rare",_[_.mythic=3]="mythic",e.RelatedCardComponent=void 0,(v=e.RelatedCardComponent||(e.RelatedCardComponent={}))[v.token=0]="token",v[v.meld_part=1]="meld_part",v[v.meld_result=2]="meld_result",v[v.combo_piece=3]="combo_piece",e.SetType=void 0,(q=e.SetType||(e.SetType={}))[q.core=0]="core",q[q.expansion=1]="expansion",q[q.masters=2]="masters",q[q.masterpiece=3]="masterpiece",q[q.from_the_vault=4]="from_the_vault",q[q.spellbook=5]="spellbook",q[q.premium_deck=6]="premium_deck",q[q.duel_deck=7]="duel_deck",q[q.draft_innovation=8]="draft_innovation",q[q.treasure_chest=9]="treasure_chest",q[q.commander=10]="commander",q[q.planechase=11]="planechase",q[q.archenemy=12]="archenemy",q[q.vanguard=13]="vanguard",q[q.funny=14]="funny",q[q.starter=15]="starter",q[q.box=16]="box",q[q.promo=17]="promo",q[q.token=18]="token",q[q.memorabilia=19]="memorabilia",e.Sort=void 0,(k=e.Sort||(e.Sort={}))[k.name=0]="name",k[k.set=1]="set",k[k.released=2]="released",k[k.rarity=3]="rarity",k[k.color=4]="color",k[k.usd=5]="usd",k[k.tix=6]="tix",k[k.eur=7]="eur",k[k.cmc=8]="cmc",k[k.power=9]="power",k[k.toughness=10]="toughness",k[k.edhrec=11]="edhrec",k[k.artist=12]="artist",e.SortDirection=void 0,(x=e.SortDirection||(e.SortDirection={}))[x.auto=0]="auto",x[x.asc=1]="asc",x[x.desc=2]="desc",e.UniqueStrategy=void 0,(T=e.UniqueStrategy||(e.UniqueStrategy={}))[T.cards=0]="cards",T[T.art=1]="art",T[T.prints=2]="prints",e.CardIdentifierBuilder=class{static byId(e){return{id:e}}static byIllustrationId(e){return{illustration_id:e}}static byMtgoId(e){return{mtgo_id:e}}static byMultiverseId(e){return{multiverse_id:e}}static byName(e,t){return{name:e,set:t}}static byOracleId(e){return{oracle_id:e}}static bySet(e,t){return{collector_number:`${t}`,set:e}}},e.Cards=i,e.Catalog=c,e.MagicQueryError=n,e.Rulings=d,e.Sets=u,e.Symbology=I,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=scryfall-api.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scryfall-api.umd.min.js","sources":["../src/query/MagicPageResult.ts","../src/error/MagicQueryError.ts","../src/query/MagicQuery.ts","../src/api/Cards.ts","../src/api/Catalog.ts","../src/api/Misc.ts","../src/api/Rulings.ts","../src/api/Sets.ts","../src/types/Border.ts","../src/types/BulkDataTypes.ts","../src/types/Color.ts","../src/types/Format.ts","../src/types/FrameEffect.ts","../src/types/Game.ts","../src/types/Layout.ts","../src/types/Legalty.ts","../src/types/PromoType.ts","../src/types/Rarity.ts","../src/types/RelatedCardComponent.ts","../src/types/SetType.ts","../src/types/Sort.ts","../src/types/SortDirection.ts","../src/types/UniqueStrategy.ts","../src/api/Symbology.ts","../src/api/CardIdentifierBuilder.ts"],"sourcesContent":["import { PageQuery, ResultList } from '../types';\nimport MagicQuery from './MagicQuery';\n\nexport default class MagicPageResult<T, Q extends MagicQuery, P = unknown> {\n\tprivate _hasMore: boolean;\n\tprivate _count: number;\n\n\tconstructor(\n\t\tprivate readonly q: Q,\n\t\tprivate readonly apiPath: string,\n\t\tprivate readonly query: PageQuery,\n\t\tprivate readonly post?: P\n\t) {\n\t\tthis._hasMore = true;\n\t\tthis._count = 0;\n\t}\n\n\tpublic get count(): number {\n\t\treturn this._count;\n\t}\n\n\tpublic get hasMore(): boolean {\n\t\treturn this._hasMore;\n\t}\n\n\tpublic async all(): Promise<T[]> {\n\t\tconst r: T[] = [];\n\t\twhile (this._hasMore) {\n\t\t\tconst result = await this.next();\n\t\t\tr.push(...result);\n\t\t}\n\t\treturn r;\n\t}\n\n\tpublic async get(limit: number): Promise<T[]> {\n\t\tconst r: T[] = [];\n\t\twhile (this._hasMore) {\n\t\t\tconst result = await this.next();\n\t\t\tr.push(...result);\n\t\t\tif (r.length == limit) {\n\t\t\t\treturn r;\n\t\t\t} else if (r.length > limit) {\n\t\t\t\treturn r.slice(0, limit);\n\t\t\t}\n\t\t}\n\t\treturn r;\n\t}\n\n\tpublic async next(): Promise<T[]> {\n\t\tconst results = await this.q.query<ResultList<T>, P>(this.apiPath, this.query, this.post);\n\t\tthis._hasMore = results?.has_more || false;\n\t\tthis._count = Number.parseInt((results?.total_cards || 0) + '');\n\t\tif (this._hasMore) {\n\t\t\tthis.setNextPage();\n\t\t}\n\t\treturn results?.data || [];\n\t}\n\n\tpublic async page(page: number): Promise<T[]> {\n\t\tthis.query.page = page;\n\t\treturn this.next();\n\t}\n\n\tprivate setNextPage(): void {\n\t\tthis.query.page = this.query.page + 1;\n\t}\n}\n","import { SearchError } from '../types/SearchError';\n\nexport class MagicQueryError extends Error {\n\tconstructor(readonly data?: SearchError) {\n\t\tsuper(data?.details);\n\t\tObject.setPrototypeOf(this, MagicQueryError.prototype);\n\t}\n}\n","import Axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { MagicQueryError } from '../error/MagicQueryError';\nimport { Query, RetryStrategy, SearchError, TOrArrayOfT } from '../types';\n\nexport default class MagicQuery {\n\tpublic static retry: RetryStrategy = { attempts: 1 };\n\t// the path to the api\n\tprivate static readonly endpoint = 'https://api.scryfall.com';\n\t// time where the last api call was made\n\tprivate static lastQuery = 100;\n\t// the api requests 50-100 ms between calls, we go on the generous side and never wait less than 100 ms between calls\n\tprivate static readonly rateLimit = 100;\n\n\tprivate static canRetry(error?: SearchError) {\n\t\tif (error?.code == 'not_found' || error?.code == 'bad_request') return false;\n\t\treturn !MagicQuery.retry.canRetry || MagicQuery.retry.canRetry(error);\n\t}\n\n\tprivate static async debounce(): Promise<void> {\n\t\tconst now = Date.now();\n\t\tconst timeSinceLastQuery = now - MagicQuery.lastQuery;\n\t\tif (timeSinceLastQuery >= MagicQuery.rateLimit) {\n\t\t\tMagicQuery.lastQuery = now;\n\t\t} else {\n\t\t\tconst timeUntilNextQuery = MagicQuery.rateLimit - timeSinceLastQuery;\n\t\t\tMagicQuery.lastQuery += timeUntilNextQuery;\n\t\t\tawait MagicQuery.sleep(timeUntilNextQuery);\n\t\t}\n\t}\n\n\tprivate static sleep(ms = 0) {\n\t\treturn new Promise(resolve => setTimeout(resolve, ms));\n\t}\n\n\tprivate static async tryQuery<T, Y>(\n\t\tapiPath: string,\n\t\tquery?: Query,\n\t\tpost?: Y,\n\t\trequestOptions?: AxiosRequestConfig\n\t): Promise<AxiosResponse<T, Y>> {\n\t\tawait MagicQuery.debounce();\n\n\t\tconst config: AxiosRequestConfig<Y> = {\n\t\t\tdata: post,\n\t\t\tmethod: post ? 'POST' : 'GET',\n\t\t\tparams: query,\n\t\t\turl: `${MagicQuery.endpoint}/${apiPath}`,\n\t\t\t...requestOptions,\n\t\t};\n\n\t\ttry {\n\t\t\treturn await Axios.request<T, AxiosResponse<T>, Y>(config);\n\t\t} catch (e: any) {\n\t\t\tif (e['isAxiosError']) {\n\t\t\t\tconst error = e as AxiosError<SearchError>;\n\t\t\t\tthrow new MagicQueryError(error.response?.data);\n\t\t\t} else {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async query<T = unknown, Y = unknown>(\n\t\tapiPath: TOrArrayOfT<string | number | undefined>,\n\t\tquery?: Query,\n\t\tpost?: Y,\n\t\trequestOptions?: AxiosRequestConfig\n\t): Promise<T | undefined> {\n\t\tif (Array.isArray(apiPath)) {\n\t\t\tapiPath = apiPath.join('/');\n\t\t}\n\n\t\tlet retries: number;\n\t\tlet result;\n\n\t\tfor (retries = 0; retries < MagicQuery.retry.attempts; retries++) {\n\t\t\tlet error: SearchError | undefined;\n\t\t\ttry {\n\t\t\t\tresult = await MagicQuery.tryQuery<T, Y>(`${apiPath}`, query, post, requestOptions);\n\t\t\t} catch (e: any) {\n\t\t\t\tif (e instanceof MagicQueryError) {\n\t\t\t\t\terror = e.data;\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result || !MagicQuery.canRetry(error)) break;\n\t\t\tawait MagicQuery.sleep(MagicQuery.retry.timeout);\n\t\t}\n\n\t\treturn result?.data;\n\t}\n}\n","import MagicPageResult from '../query/MagicPageResult';\nimport MagicQuery from '../query/MagicQuery';\nimport { Card, CardIdentifier, ResultCatalog, ResultList, SearchOptions } from '../types';\n\nclass Cards extends MagicQuery {\n\tpublic async autoCompleteName(name: string): Promise<string[]> {\n\t\tconst result = await this.query<ResultCatalog>('cards/autocomplete', {\n\t\t\tq: name,\n\t\t});\n\t\treturn result?.data || [];\n\t}\n\n\tpublic async byArenaId(id: number): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards/arena', id]);\n\t}\n\n\tpublic async byId(id: string): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards', id]);\n\t}\n\n\tpublic async byMtgoId(id: number): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards/mtgo', id]);\n\t}\n\n\tpublic async byMultiverseId(id: number): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards/multiverse', id]);\n\t}\n\n\tpublic async byName(name: string, fuzzy?: boolean): Promise<Card | undefined>;\n\n\tpublic async byName(name: string, set?: string, fuzzy?: boolean): Promise<Card | undefined>;\n\n\tpublic async byName(name: string, set?: string | boolean, fuzzy = false): Promise<Card | undefined> {\n\t\tif (typeof set === 'boolean') {\n\t\t\tfuzzy = set;\n\t\t\tset = undefined;\n\t\t}\n\n\t\treturn this.query<Card>('cards/named', {\n\t\t\t[fuzzy ? 'fuzzy' : 'exact']: name,\n\t\t\tset,\n\t\t});\n\t}\n\n\tpublic async bySet(setCode: string, collectorNumber: number, lang?: string): Promise<Card | undefined> {\n\t\tconst path = ['cards', setCode, collectorNumber];\n\t\tif (lang) path.push(lang);\n\t\treturn this.query<Card>(path);\n\t}\n\n\tpublic async byTcgPlayerId(id: number): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards/tcgplayer', id]);\n\t}\n\n\tpublic async collection(...identifiers: CardIdentifier[]): Promise<Card[]> {\n\t\tconst cards: Card[] = [];\n\t\tfor (let i = 0; i < identifiers.length; i += 75) {\n\t\t\t// the api only supports a max collection size of 75, so we take the list of identifiers (any length)\n\t\t\t// and split it into 75 card-max requests\n\t\t\tconst collectionSection = { identifiers: identifiers.slice(i, i + 75) };\n\n\t\t\tconst result = await this.query<ResultList<Card, CardIdentifier>>(\n\t\t\t\t'cards/collection',\n\t\t\t\tundefined,\n\t\t\t\tcollectionSection\n\t\t\t);\n\t\t\tcards.push(...(result?.data || []));\n\t\t}\n\t\treturn cards;\n\t}\n\n\tpublic async random(): Promise<Card | undefined> {\n\t\treturn this.query<Card>('cards/random');\n\t}\n\n\tpublic search(query: string, options?: SearchOptions | number): MagicPageResult<Card, Cards> {\n\t\treturn new MagicPageResult<Card, Cards>(this, 'cards/search', {\n\t\t\tq: query,\n\t\t\t...(typeof options === 'number' ? { page: options } : { page: 1, ...options }),\n\t\t});\n\t}\n}\n\nexport default new Cards();\n","import MagicQuery from '../query/MagicQuery';\nimport { ResultCatalog } from '../types';\n\nclass Catalog extends MagicQuery {\n\tpublic async artifactTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/artifact-types'))?.data || [];\n\t}\n\n\tpublic async artistNames(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/artist-names'))?.data || [];\n\t}\n\n\tpublic async cardNames(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/card-names'))?.data || [];\n\t}\n\n\tpublic async creatureTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/creature-types'))?.data || [];\n\t}\n\n\tpublic async enchantmentTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/enchantment-types'))?.data || [];\n\t}\n\n\tpublic async landTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/land-types'))?.data || [];\n\t}\n\n\tpublic async loyalties(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/loyalties'))?.data || [];\n\t}\n\n\tpublic async planeswalkerTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/planeswalker-types'))?.data || [];\n\t}\n\n\tpublic async powers(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/powers'))?.data || [];\n\t}\n\n\tpublic async spellTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/spell-types'))?.data || [];\n\t}\n\n\tpublic async toughnesses(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/toughnesses'))?.data || [];\n\t}\n\n\tpublic async watermarks(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/watermarks'))?.data || [];\n\t}\n\n\tpublic async wordBank(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/word-bank'))?.data || [];\n\t}\n}\n\nexport default new Catalog();\n","import MagicQuery from '../query/MagicQuery';\nimport { HomepageLink, ResultList } from '../types';\n\nclass Misc extends MagicQuery {\n\tpublic async homepageLinks(): Promise<HomepageLink[]> {\n\t\treturn (await this.query<ResultList<HomepageLink>>('homepage-links'))?.data || [];\n\t}\n}\n\nexport default new Misc();\n","import MagicQuery from '../query/MagicQuery';\nimport { ResultList, Ruling } from '../types';\n\nclass Rulings extends MagicQuery {\n\tpublic async byArenaId(id: number): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards/arena', id, 'rulings']))?.data || [];\n\t}\n\n\tpublic async byId(id: string): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards', id, 'rulings']))?.data || [];\n\t}\n\n\tpublic async byMtgoId(id: number): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards/mtgo', id, 'rulings']))?.data || [];\n\t}\n\n\tpublic async byMultiverseId(id: number): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards/multiverse', id, 'rulings']))?.data || [];\n\t}\n\n\tpublic async bySet(setCode: string, collectorNumber: string | number): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards', setCode, `${collectorNumber}`, 'rulings']))?.data || [];\n\t}\n}\n\nexport default new Rulings();\n","import MagicQuery from '../query/MagicQuery';\nimport { ResultList, Set } from '../types';\n\nclass Sets extends MagicQuery {\n\tpublic async all(): Promise<Set[]> {\n\t\tconst result = await this.query<ResultList<Set>>('sets');\n\t\treturn result?.data || [];\n\t}\n\n\tpublic async byCode(code: string): Promise<Set | undefined> {\n\t\treturn await this.query<Set>(['sets', code]);\n\t}\n\n\tpublic async byId(id: string): Promise<Set | undefined> {\n\t\treturn this.query<Set>(['sets', id]);\n\t}\n\n\tpublic async byTcgPlayerId(id: number): Promise<Set | undefined> {\n\t\treturn this.query<Set>(['sets/tcgplayer', id]);\n\t}\n}\n\nexport default new Sets();\n","export enum Border {\n\tblack,\n\tborderless,\n\tgold,\n\tsilver,\n\twhite,\n}\n","export enum BulkDataTypes {\n\toracle_cards,\n\tunique_artwork,\n\tdefault_cards,\n\tall_cards,\n\trulings,\n}\n","enum Colors {\n\tW,\n\tB,\n\tR,\n\tU,\n\tG,\n}\n\nexport type Color = keyof typeof Colors;\n","export enum Format {\n\tstandard,\n\tfuture,\n\thistoric,\n\tpioneer,\n\tmodern,\n\tlegacy,\n\tpauper,\n\tvintage,\n\tpenny,\n\tcommander,\n\tbrawl,\n\tduel,\n\toldschool,\n}\n","export enum FrameEffect {\n\tlegendary,\n\tmiracle,\n\tnyxtouched,\n\tdraft,\n\tdevoid,\n\ttombstone,\n\tcolorshifted,\n\tinverted,\n\tsunmoondfc,\n\tcompasslanddfc,\n\toriginpwdfc,\n\tmooneldrazidfc,\n\tmoonreversemoondfc,\n\tshowcase,\n\textendedart,\n}\n","export enum Game {\n\tpaper,\n\tarena,\n\tmtgo,\n}\n","export enum Layout {\n\tnormal,\n\tsplit,\n\tflip,\n\ttransform,\n\tmeld,\n\tleveler,\n\tsaga,\n\tadventure,\n\tplanar,\n\tscheme,\n\tvanguard,\n\ttoken,\n\tdouble_faced_token,\n\temblem,\n\taugment,\n\thost,\n\tart_series,\n\tdouble_sided,\n}\n","export enum Legality {\n\tlegal,\n\tnot_legal,\n\trestricted,\n\tbanned,\n}\n","export enum PromoType {\n\ttourney,\n\tprerelease,\n\tdatestamped,\n\tplaneswalkerdeck,\n\tbuyabox,\n\tjudgegift,\n\tevent,\n\tconvention,\n\tstarterdeck,\n\tinstore,\n\tsetpromo,\n\tfnm,\n\topenhouse,\n\tleague,\n\tdraftweekend,\n\tgameday,\n\trelease,\n\tintropack,\n\tgiftbox,\n\tduels,\n\twizardsplaynetwork,\n\tpremiereshop,\n\tplayerrewards,\n\tgateway,\n\tarenaleague,\n}\n","export enum Rarity {\n\tcommon,\n\tuncommon,\n\trare,\n\tmythic,\n}\n","export enum RelatedCardComponent {\n\ttoken,\n\tmeld_part,\n\tmeld_result,\n\tcombo_piece,\n}\n","export enum SetType {\n\tcore,\n\texpansion,\n\tmasters,\n\tmasterpiece,\n\tfrom_the_vault,\n\tspellbook,\n\tpremium_deck,\n\tduel_deck,\n\tdraft_innovation,\n\ttreasure_chest,\n\tcommander,\n\tplanechase,\n\tarchenemy,\n\tvanguard,\n\tfunny,\n\tstarter,\n\tbox,\n\tpromo,\n\ttoken,\n\tmemorabilia,\n}\n","export enum Sort {\n\tname,\n\tset,\n\treleased,\n\trarity,\n\tcolor,\n\tusd,\n\ttix,\n\teur,\n\tcmc,\n\tpower,\n\ttoughness,\n\tedhrec,\n\tartist,\n}\n","export enum SortDirection {\n\tauto,\n\tasc,\n\tdesc,\n}\n","export enum UniqueStrategy {\n\tcards,\n\tart,\n\tprints,\n}\n","import MagicQuery from '../query/MagicQuery';\nimport { CardSymbol, ManaCost, ResultList } from '../types';\n\nclass Symbology extends MagicQuery {\n\tpublic async all(): Promise<CardSymbol[]> {\n\t\treturn (await this.query<ResultList<CardSymbol>>('symbology'))?.data || [];\n\t}\n\n\tpublic async parseMana(shorthand: string): Promise<ManaCost | undefined> {\n\t\treturn await this.query<ManaCost>('symbology/parse-mana', {\n\t\t\tcost: shorthand,\n\t\t});\n\t}\n}\n\nexport default new Symbology();\n","import { CardIdentifier } from '../types';\n\nexport class CardIdentifierBuilder {\n\tpublic static byId(id: string): CardIdentifier {\n\t\treturn { id };\n\t}\n\n\tpublic static byIllustrationId(id: string): CardIdentifier {\n\t\treturn { illustration_id: id };\n\t}\n\n\tpublic static byMtgoId(id: number): CardIdentifier {\n\t\treturn { mtgo_id: id };\n\t}\n\n\tpublic static byMultiverseId(id: number): CardIdentifier {\n\t\treturn { multiverse_id: id };\n\t}\n\n\tpublic static byName(name: string, set?: string): CardIdentifier {\n\t\treturn { name, set };\n\t}\n\n\tpublic static byOracleId(id: string): CardIdentifier {\n\t\treturn { oracle_id: id };\n\t}\n\n\tpublic static bySet(set: string, collectorNumber: string | number): CardIdentifier {\n\t\treturn { collector_number: `${collectorNumber}`, set };\n\t}\n}\n"],"names":["MagicPageResult","constructor","q","apiPath","query","post","_hasMore","_count","count","this","hasMore","r","result","next","push","limit","length","slice","results","has_more","Number","parseInt","total_cards","setNextPage","data","page","MagicQueryError","Error","details","Object","setPrototypeOf","prototype","MagicQuery","error","code","retry","canRetry","now","Date","timeSinceLastQuery","lastQuery","rateLimit","timeUntilNextQuery","sleep","ms","Promise","resolve","setTimeout","requestOptions","debounce","config","method","params","url","endpoint","Axios","request","e","response","_error$response","retries","Array","isArray","join","attempts","tryQuery","timeout","_result","name","id","set","fuzzy","undefined","setCode","collectorNumber","lang","path","identifiers","cards","i","collectionSection","search","options","Border","BulkDataTypes","Colors","Format","FrameEffect","Game","Layout","Legality","PromoType","Rarity","RelatedCardComponent","SetType","Sort","SortDirection","UniqueStrategy","shorthand","cost","illustration_id","mtgo_id","multiverse_id","oracle_id","collector_number"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scryfall-api.umd.min.js","sources":["../src/query/MagicPageResult.ts","../src/error/MagicQueryError.ts","../src/query/MagicQuery.ts","../src/api/Cards.ts","../src/api/Catalog.ts","../src/api/Rulings.ts","../src/api/Sets.ts","../src/types/Border.ts","../src/types/BulkDataTypes.ts","../src/types/Color.ts","../src/types/Format.ts","../src/types/FrameEffect.ts","../src/types/Game.ts","../src/types/Layout.ts","../src/types/Legalty.ts","../src/types/PromoType.ts","../src/types/Rarity.ts","../src/types/RelatedCardComponent.ts","../src/types/SetType.ts","../src/types/Sort.ts","../src/types/SortDirection.ts","../src/types/UniqueStrategy.ts","../src/api/Symbology.ts","../src/api/CardIdentifierBuilder.ts"],"sourcesContent":["import { PageQuery, ResultList } from '../types';\nimport MagicQuery from './MagicQuery';\n\nexport default class MagicPageResult<T, Q extends MagicQuery, P = unknown> {\n\tprivate _hasMore: boolean;\n\tprivate _count: number;\n\n\tconstructor(\n\t\tprivate readonly q: Q,\n\t\tprivate readonly apiPath: string,\n\t\tprivate readonly query: PageQuery,\n\t\tprivate readonly post?: P\n\t) {\n\t\tthis._hasMore = true;\n\t\tthis._count = 0;\n\t}\n\n\tpublic get count(): number {\n\t\treturn this._count;\n\t}\n\n\tpublic get hasMore(): boolean {\n\t\treturn this._hasMore;\n\t}\n\n\tpublic async all(): Promise<T[]> {\n\t\tconst r: T[] = [];\n\t\twhile (this._hasMore) {\n\t\t\tconst result = await this.next();\n\t\t\tr.push(...result);\n\t\t}\n\t\treturn r;\n\t}\n\n\tpublic async get(limit: number): Promise<T[]> {\n\t\tconst r: T[] = [];\n\t\twhile (this._hasMore) {\n\t\t\tconst result = await this.next();\n\t\t\tr.push(...result);\n\t\t\tif (r.length == limit) {\n\t\t\t\treturn r;\n\t\t\t} else if (r.length > limit) {\n\t\t\t\treturn r.slice(0, limit);\n\t\t\t}\n\t\t}\n\t\treturn r;\n\t}\n\n\tpublic async next(): Promise<T[]> {\n\t\tconst results = await this.q.query<ResultList<T>, P>(this.apiPath, this.query, this.post);\n\t\tthis._hasMore = results?.has_more || false;\n\t\tthis._count = Number.parseInt((results?.total_cards || 0) + '');\n\t\tif (this._hasMore) {\n\t\t\tthis.setNextPage();\n\t\t}\n\t\treturn results?.data || [];\n\t}\n\n\tpublic async page(page: number): Promise<T[]> {\n\t\tthis.query.page = page;\n\t\treturn this.next();\n\t}\n\n\tprivate setNextPage(): void {\n\t\tthis.query.page = this.query.page + 1;\n\t}\n}\n","import { SearchError } from '../types';\n\nexport class MagicQueryError extends Error {\n\tconstructor(readonly data?: SearchError) {\n\t\tsuper(data?.details);\n\t\tObject.setPrototypeOf(this, MagicQueryError.prototype);\n\t}\n}\n","import Axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { MagicQueryError } from '../error/MagicQueryError';\nimport { Query, RetryStrategy, SearchError, TOrArrayOfT } from '../types';\n\nexport default class MagicQuery {\n\tpublic static retry: RetryStrategy = { attempts: 1 };\n\t// the path to the api\n\tprivate static readonly endpoint = 'https://api.scryfall.com';\n\t// time where the last api call was made\n\tprivate static lastQuery = 100;\n\t// the api requests 50-100 ms between calls, we go on the generous side and never wait less than 100 ms between calls\n\tprivate static readonly rateLimit = 100;\n\n\tprivate static canRetry(error?: SearchError) {\n\t\tif (error?.code == 'not_found' || error?.code == 'bad_request') return false;\n\t\treturn !MagicQuery.retry.canRetry || MagicQuery.retry.canRetry(error);\n\t}\n\n\tprivate static async debounce(): Promise<void> {\n\t\tconst now = Date.now();\n\t\tconst timeSinceLastQuery = now - MagicQuery.lastQuery;\n\t\tif (timeSinceLastQuery >= MagicQuery.rateLimit) {\n\t\t\tMagicQuery.lastQuery = now;\n\t\t} else {\n\t\t\tconst timeUntilNextQuery = MagicQuery.rateLimit - timeSinceLastQuery;\n\t\t\tMagicQuery.lastQuery += timeUntilNextQuery;\n\t\t\tawait MagicQuery.sleep(timeUntilNextQuery);\n\t\t}\n\t}\n\n\tprivate static sleep(ms = 0) {\n\t\treturn new Promise(resolve => setTimeout(resolve, ms));\n\t}\n\n\tprivate static async tryQuery<T, Y>(\n\t\tapiPath: string,\n\t\tquery?: Query,\n\t\tpost?: Y,\n\t\trequestOptions?: AxiosRequestConfig\n\t): Promise<AxiosResponse<T, Y>> {\n\t\tawait MagicQuery.debounce();\n\n\t\tconst config: AxiosRequestConfig<Y> = {\n\t\t\tdata: post,\n\t\t\tmethod: post ? 'POST' : 'GET',\n\t\t\tparams: query,\n\t\t\turl: `${MagicQuery.endpoint}/${apiPath}`,\n\t\t\t...requestOptions,\n\t\t};\n\n\t\ttry {\n\t\t\treturn await Axios.request<T, AxiosResponse<T>, Y>(config);\n\t\t} catch (e: any) {\n\t\t\tif (e['isAxiosError']) {\n\t\t\t\tconst error = e as AxiosError<SearchError>;\n\t\t\t\tthrow new MagicQueryError(error.response?.data);\n\t\t\t} else {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async query<T = unknown, Y = unknown>(\n\t\tapiPath: TOrArrayOfT<string | number | undefined>,\n\t\tquery?: Query,\n\t\tpost?: Y,\n\t\trequestOptions?: AxiosRequestConfig\n\t): Promise<T | undefined> {\n\t\tif (Array.isArray(apiPath)) {\n\t\t\tapiPath = apiPath.join('/');\n\t\t}\n\n\t\tlet retries: number;\n\t\tlet result;\n\n\t\tfor (retries = 0; retries < MagicQuery.retry.attempts; retries++) {\n\t\t\tlet error: SearchError | undefined;\n\t\t\ttry {\n\t\t\t\tresult = await MagicQuery.tryQuery<T, Y>(`${apiPath}`, query, post, requestOptions);\n\t\t\t} catch (e: any) {\n\t\t\t\tif (e instanceof MagicQueryError) {\n\t\t\t\t\terror = e.data;\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result || !MagicQuery.canRetry(error)) break;\n\t\t\tawait MagicQuery.sleep(MagicQuery.retry.timeout);\n\t\t}\n\n\t\treturn result?.data;\n\t}\n}\n","import MagicPageResult from '../query/MagicPageResult';\nimport MagicQuery from '../query/MagicQuery';\nimport { Card, CardIdentifier, ResultCatalog, ResultList, SearchOptions } from '../types';\n\nclass Cards extends MagicQuery {\n\tpublic async autoCompleteName(name: string): Promise<string[]> {\n\t\tconst result = await this.query<ResultCatalog>('cards/autocomplete', {\n\t\t\tq: name,\n\t\t});\n\t\treturn result?.data || [];\n\t}\n\n\tpublic async byArenaId(id: number): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards/arena', id]);\n\t}\n\n\tpublic async byId(id: string): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards', id]);\n\t}\n\n\tpublic async byMtgoId(id: number): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards/mtgo', id]);\n\t}\n\n\tpublic async byMultiverseId(id: number): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards/multiverse', id]);\n\t}\n\n\tpublic async byName(name: string, fuzzy?: boolean): Promise<Card | undefined>;\n\n\tpublic async byName(name: string, set?: string, fuzzy?: boolean): Promise<Card | undefined>;\n\n\tpublic async byName(name: string, set?: string | boolean, fuzzy = false): Promise<Card | undefined> {\n\t\tif (typeof set === 'boolean') {\n\t\t\tfuzzy = set;\n\t\t\tset = undefined;\n\t\t}\n\n\t\treturn this.query<Card>('cards/named', {\n\t\t\t[fuzzy ? 'fuzzy' : 'exact']: name,\n\t\t\tset,\n\t\t});\n\t}\n\n\tpublic async bySet(setCode: string, collectorNumber: number, lang?: string): Promise<Card | undefined> {\n\t\tconst path = ['cards', setCode, collectorNumber];\n\t\tif (lang) path.push(lang);\n\t\treturn this.query<Card>(path);\n\t}\n\n\tpublic async byTcgPlayerId(id: number): Promise<Card | undefined> {\n\t\treturn this.query<Card>(['cards/tcgplayer', id]);\n\t}\n\n\tpublic async collection(...identifiers: CardIdentifier[]): Promise<Card[]> {\n\t\tconst cards: Card[] = [];\n\t\tfor (let i = 0; i < identifiers.length; i += 75) {\n\t\t\t// the api only supports a max collection size of 75, so we take the list of identifiers (any length)\n\t\t\t// and split it into 75 card-max requests\n\t\t\tconst collectionSection = { identifiers: identifiers.slice(i, i + 75) };\n\n\t\t\tconst result = await this.query<ResultList<Card, CardIdentifier>>(\n\t\t\t\t'cards/collection',\n\t\t\t\tundefined,\n\t\t\t\tcollectionSection\n\t\t\t);\n\t\t\tcards.push(...(result?.data || []));\n\t\t}\n\t\treturn cards;\n\t}\n\n\tpublic async random(): Promise<Card | undefined> {\n\t\treturn this.query<Card>('cards/random');\n\t}\n\n\tpublic search(query: string, options?: SearchOptions | number): MagicPageResult<Card, Cards> {\n\t\treturn new MagicPageResult<Card, Cards>(this, 'cards/search', {\n\t\t\tq: query,\n\t\t\t...(typeof options === 'number' ? { page: options } : { page: 1, ...options }),\n\t\t});\n\t}\n}\n\nexport default new Cards();\n","import MagicQuery from '../query/MagicQuery';\nimport { ResultCatalog } from '../types';\n\nclass Catalog extends MagicQuery {\n\tpublic async artifactTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/artifact-types'))?.data || [];\n\t}\n\n\tpublic async artistNames(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/artist-names'))?.data || [];\n\t}\n\n\tpublic async cardNames(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/card-names'))?.data || [];\n\t}\n\n\tpublic async creatureTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/creature-types'))?.data || [];\n\t}\n\n\tpublic async enchantmentTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/enchantment-types'))?.data || [];\n\t}\n\n\tpublic async landTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/land-types'))?.data || [];\n\t}\n\n\tpublic async loyalties(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/loyalties'))?.data || [];\n\t}\n\n\tpublic async planeswalkerTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/planeswalker-types'))?.data || [];\n\t}\n\n\tpublic async powers(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/powers'))?.data || [];\n\t}\n\n\tpublic async spellTypes(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/spell-types'))?.data || [];\n\t}\n\n\tpublic async toughnesses(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/toughnesses'))?.data || [];\n\t}\n\n\tpublic async watermarks(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/watermarks'))?.data || [];\n\t}\n\n\tpublic async wordBank(): Promise<string[]> {\n\t\treturn (await this.query<ResultCatalog>('catalog/word-bank'))?.data || [];\n\t}\n}\n\nexport default new Catalog();\n","import MagicQuery from '../query/MagicQuery';\nimport { ResultList, Ruling } from '../types';\n\nclass Rulings extends MagicQuery {\n\tpublic async byArenaId(id: number): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards/arena', id, 'rulings']))?.data || [];\n\t}\n\n\tpublic async byId(id: string): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards', id, 'rulings']))?.data || [];\n\t}\n\n\tpublic async byMtgoId(id: number): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards/mtgo', id, 'rulings']))?.data || [];\n\t}\n\n\tpublic async byMultiverseId(id: number): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards/multiverse', id, 'rulings']))?.data || [];\n\t}\n\n\tpublic async bySet(setCode: string, collectorNumber: string | number): Promise<Ruling[]> {\n\t\treturn (await this.query<ResultList<Ruling>>(['cards', setCode, `${collectorNumber}`, 'rulings']))?.data || [];\n\t}\n}\n\nexport default new Rulings();\n","import MagicQuery from '../query/MagicQuery';\nimport { ResultList, Set } from '../types';\n\nclass Sets extends MagicQuery {\n\tpublic async all(): Promise<Set[]> {\n\t\tconst result = await this.query<ResultList<Set>>('sets');\n\t\treturn result?.data || [];\n\t}\n\n\tpublic async byCode(code: string): Promise<Set | undefined> {\n\t\treturn await this.query<Set>(['sets', code]);\n\t}\n\n\tpublic async byId(id: string): Promise<Set | undefined> {\n\t\treturn this.query<Set>(['sets', id]);\n\t}\n\n\tpublic async byTcgPlayerId(id: number): Promise<Set | undefined> {\n\t\treturn this.query<Set>(['sets/tcgplayer', id]);\n\t}\n}\n\nexport default new Sets();\n","export enum Border {\n\tblack,\n\tborderless,\n\tgold,\n\tsilver,\n\twhite,\n}\n","export enum BulkDataTypes {\n\toracle_cards,\n\tunique_artwork,\n\tdefault_cards,\n\tall_cards,\n\trulings,\n}\n","enum Colors {\n\tW,\n\tB,\n\tR,\n\tU,\n\tG,\n}\n\nexport type Color = keyof typeof Colors;\n","export enum Format {\n\tstandard,\n\tfuture,\n\thistoric,\n\tpioneer,\n\tmodern,\n\tlegacy,\n\tpauper,\n\tvintage,\n\tpenny,\n\tcommander,\n\tbrawl,\n\tduel,\n\toldschool,\n}\n","export enum FrameEffect {\n\tlegendary,\n\tmiracle,\n\tnyxtouched,\n\tdraft,\n\tdevoid,\n\ttombstone,\n\tcolorshifted,\n\tinverted,\n\tsunmoondfc,\n\tcompasslanddfc,\n\toriginpwdfc,\n\tmooneldrazidfc,\n\tmoonreversemoondfc,\n\tshowcase,\n\textendedart,\n}\n","export enum Game {\n\tpaper,\n\tarena,\n\tmtgo,\n}\n","export enum Layout {\n\tnormal,\n\tsplit,\n\tflip,\n\ttransform,\n\tmeld,\n\tleveler,\n\tsaga,\n\tadventure,\n\tplanar,\n\tscheme,\n\tvanguard,\n\ttoken,\n\tdouble_faced_token,\n\temblem,\n\taugment,\n\thost,\n\tart_series,\n\tdouble_sided,\n}\n","export enum Legality {\n\tlegal,\n\tnot_legal,\n\trestricted,\n\tbanned,\n}\n","export enum PromoType {\n\ttourney,\n\tprerelease,\n\tdatestamped,\n\tplaneswalkerdeck,\n\tbuyabox,\n\tjudgegift,\n\tevent,\n\tconvention,\n\tstarterdeck,\n\tinstore,\n\tsetpromo,\n\tfnm,\n\topenhouse,\n\tleague,\n\tdraftweekend,\n\tgameday,\n\trelease,\n\tintropack,\n\tgiftbox,\n\tduels,\n\twizardsplaynetwork,\n\tpremiereshop,\n\tplayerrewards,\n\tgateway,\n\tarenaleague,\n}\n","export enum Rarity {\n\tcommon,\n\tuncommon,\n\trare,\n\tmythic,\n}\n","export enum RelatedCardComponent {\n\ttoken,\n\tmeld_part,\n\tmeld_result,\n\tcombo_piece,\n}\n","export enum SetType {\n\tcore,\n\texpansion,\n\tmasters,\n\tmasterpiece,\n\tfrom_the_vault,\n\tspellbook,\n\tpremium_deck,\n\tduel_deck,\n\tdraft_innovation,\n\ttreasure_chest,\n\tcommander,\n\tplanechase,\n\tarchenemy,\n\tvanguard,\n\tfunny,\n\tstarter,\n\tbox,\n\tpromo,\n\ttoken,\n\tmemorabilia,\n}\n","export enum Sort {\n\tname,\n\tset,\n\treleased,\n\trarity,\n\tcolor,\n\tusd,\n\ttix,\n\teur,\n\tcmc,\n\tpower,\n\ttoughness,\n\tedhrec,\n\tartist,\n}\n","export enum SortDirection {\n\tauto,\n\tasc,\n\tdesc,\n}\n","export enum UniqueStrategy {\n\tcards,\n\tart,\n\tprints,\n}\n","import MagicQuery from '../query/MagicQuery';\nimport { CardSymbol, ManaCost, ResultList } from '../types';\n\nclass Symbology extends MagicQuery {\n\tpublic async all(): Promise<CardSymbol[]> {\n\t\treturn (await this.query<ResultList<CardSymbol>>('symbology'))?.data || [];\n\t}\n\n\tpublic async parseMana(shorthand: string): Promise<ManaCost | undefined> {\n\t\treturn await this.query<ManaCost>('symbology/parse-mana', {\n\t\t\tcost: shorthand,\n\t\t});\n\t}\n}\n\nexport default new Symbology();\n","import { CardIdentifier } from '../types';\n\nexport class CardIdentifierBuilder {\n\tpublic static byId(id: string): CardIdentifier {\n\t\treturn { id };\n\t}\n\n\tpublic static byIllustrationId(id: string): CardIdentifier {\n\t\treturn { illustration_id: id };\n\t}\n\n\tpublic static byMtgoId(id: number): CardIdentifier {\n\t\treturn { mtgo_id: id };\n\t}\n\n\tpublic static byMultiverseId(id: number): CardIdentifier {\n\t\treturn { multiverse_id: id };\n\t}\n\n\tpublic static byName(name: string, set?: string): CardIdentifier {\n\t\treturn { name, set };\n\t}\n\n\tpublic static byOracleId(id: string): CardIdentifier {\n\t\treturn { oracle_id: id };\n\t}\n\n\tpublic static bySet(set: string, collectorNumber: string | number): CardIdentifier {\n\t\treturn { collector_number: `${collectorNumber}`, set };\n\t}\n}\n"],"names":["MagicPageResult","constructor","q","apiPath","query","post","_hasMore","_count","count","this","hasMore","r","result","next","push","limit","length","slice","results","has_more","Number","parseInt","total_cards","setNextPage","data","page","MagicQueryError","Error","details","Object","setPrototypeOf","prototype","MagicQuery","attempts","error","code","retry","canRetry","now","Date","timeSinceLastQuery","lastQuery","rateLimit","timeUntilNextQuery","sleep","ms","Promise","resolve","setTimeout","requestOptions","debounce","config","method","params","url","endpoint","Axios","request","e","response","retries","Array","isArray","join","tryQuery","timeout","name","id","set","fuzzy","undefined","setCode","collectorNumber","lang","path","identifiers","cards","i","collectionSection","search","options","Border","BulkDataTypes","Colors","Format","FrameEffect","Game","Layout","Legality","PromoType","Rarity","RelatedCardComponent","SetType","Sort","SortDirection","UniqueStrategy","shorthand","cost","illustration_id","mtgo_id","multiverse_id","oracle_id","collector_number"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scryfall-api",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "A Javascript library for https://scryfall.com/docs/api written in Typescript.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"magic the gathering",
|
|
@@ -14,7 +14,10 @@
|
|
|
14
14
|
"scryfall",
|
|
15
15
|
"scry"
|
|
16
16
|
],
|
|
17
|
-
"homepage": "https://github.com/MarioMH8/
|
|
17
|
+
"homepage": "https://github.com/MarioMH8/scryfall-api",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/MarioMH8/scryfall-api/issues"
|
|
20
|
+
},
|
|
18
21
|
"repository": {
|
|
19
22
|
"type": "git",
|
|
20
23
|
"url": "https://github.com/MarioMH8/scryfall-api"
|
|
@@ -23,16 +26,65 @@
|
|
|
23
26
|
"main": "dist/scryfall-api.cjs.js",
|
|
24
27
|
"umd:main": "dist/scryfall-api.umd.min.js",
|
|
25
28
|
"module": "dist/scryfall-api.esm.js",
|
|
29
|
+
"files": [
|
|
30
|
+
"dist"
|
|
31
|
+
],
|
|
26
32
|
"scripts": {
|
|
27
|
-
"
|
|
33
|
+
"build": "yarn typecheck && preconstruct build",
|
|
34
|
+
"build:watch": "preconstruct watch",
|
|
35
|
+
"lint": "eslint --ext .ts,.tsx --ignore-path .gitignore .",
|
|
36
|
+
"lint:fix": "eslint --ext .ts,.tsx --ignore-path .gitignore --fix .",
|
|
37
|
+
"prepare": "husky install",
|
|
38
|
+
"prettier": "prettier --ignore-unknown --check .",
|
|
39
|
+
"prettier:fix": "prettier --ignore-unknown --write .",
|
|
40
|
+
"publish": "yarn build && yarn changeset publish",
|
|
41
|
+
"test": "vitest",
|
|
42
|
+
"test:coverage": "vitest run --coverage",
|
|
43
|
+
"typecheck": "tsc --noEmit",
|
|
44
|
+
"version": "yarn changeset version && yarn install --mode update-lockfile",
|
|
45
|
+
"webstorm-integration": "vitest --watch --reporter=dot --reporter=json --outputFile=.vitest-result.json"
|
|
46
|
+
},
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=18"
|
|
49
|
+
},
|
|
50
|
+
"resolutions": {
|
|
51
|
+
"minimist": "1.2.6",
|
|
52
|
+
"terser": "^5.14.2"
|
|
28
53
|
},
|
|
29
54
|
"peerDependencies": {
|
|
30
|
-
"axios": "^0
|
|
55
|
+
"axios": "^0"
|
|
31
56
|
},
|
|
32
57
|
"devDependencies": {
|
|
33
|
-
"
|
|
58
|
+
"@babel/core": "7.18.10",
|
|
59
|
+
"@babel/preset-typescript": "7.18.6",
|
|
60
|
+
"@changesets/cli": "2.24.2",
|
|
61
|
+
"@commitlint/cli": "17.0.3",
|
|
62
|
+
"@commitlint/config-conventional": "17.0.3",
|
|
63
|
+
"@preconstruct/cli": "2.2.1",
|
|
64
|
+
"@types/node": "18.6.4",
|
|
65
|
+
"@typescript-eslint/eslint-plugin": "5.32.0",
|
|
66
|
+
"@typescript-eslint/parser": "5.32.0",
|
|
67
|
+
"axios": "0.27.2",
|
|
68
|
+
"c8": "7.12.0",
|
|
69
|
+
"eslint": "8.21.0",
|
|
70
|
+
"eslint-config-prettier": "8.5.0",
|
|
71
|
+
"eslint-plugin-prettier": "4.2.1",
|
|
72
|
+
"husky": "8.0.1",
|
|
73
|
+
"lint-staged": "13.0.3",
|
|
74
|
+
"prettier": "2.7.1",
|
|
75
|
+
"typescript": "4.7.4",
|
|
76
|
+
"vite": "3.0.4",
|
|
77
|
+
"vitest": "0.21.0"
|
|
78
|
+
},
|
|
79
|
+
"lint-staged": {
|
|
80
|
+
"*.{ts,tsx}": "eslint --fix",
|
|
81
|
+
"*": "prettier --ignore-unknown --write ."
|
|
34
82
|
},
|
|
35
83
|
"preconstruct": {
|
|
36
|
-
"umdName": "
|
|
37
|
-
|
|
84
|
+
"umdName": "scryfall",
|
|
85
|
+
"globals": {
|
|
86
|
+
"axios": "axios"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"packageManager": "yarn@3.2.2"
|
|
38
90
|
}
|