scryfall-api 2.1.1 → 2.2.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/CHANGELOG.md +23 -0
- package/README.md +2 -2
- package/lib/api/{CardIdfentifier.d.ts → CardIdentifierBuilder.d.ts} +2 -1
- package/lib/index.d.ts +10 -0
- package/lib/query/MagicPageResult.d.ts +3 -2
- package/lib/skryfall.es5.js +412 -6
- package/lib/skryfall.es5.js.map +1 -1
- package/lib/skryfall.es5.min.js +2 -2
- package/lib/skryfall.es5.min.js.map +1 -1
- package/lib/skryfall.umd.js +418 -5
- package/lib/skryfall.umd.js.map +1 -1
- package/lib/skryfall.umd.min.js +2 -2
- package/lib/skryfall.umd.min.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [2.2.0](https://bitbucket.org/MarioMH/scryfall-api/compare/v2.1.4...v2.2.0) (2021-10-18)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* exposed hasMore property in MagicPageResult ([c21ea6e](https://bitbucket.org/MarioMH/scryfall-api/commit/c21ea6e3c814de9742169c888f7e41f3713c3cb9))
|
|
11
|
+
|
|
12
|
+
### [2.1.4](https://bitbucket.org/MarioMH/scryfall-api/compare/v2.1.3...v2.1.4) (2021-10-18)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* fixed index exports ([d0e8835](https://bitbucket.org/MarioMH/scryfall-api/commit/d0e8835b61467b8119b33fc3407f64ea3aa333d1))
|
|
18
|
+
|
|
19
|
+
### [2.1.3](https://bitbucket.org/MarioMH/scryfall-api/compare/v2.1.2...v2.1.3) (2021-10-18)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* fixed index exports ([5087d91](https://bitbucket.org/MarioMH/scryfall-api/commit/5087d91cd8129b572332aff73a6e24fe0bd5470b))
|
|
25
|
+
|
|
26
|
+
### [2.1.2](https://bitbucket.org/MarioMH/scryfall-api/compare/v2.1.1...v2.1.2) (2021-10-16)
|
|
27
|
+
|
|
5
28
|
### [2.1.1](https://bitbucket.org/MarioMH/scryfall-api/compare/v2.1.0...v2.1.1) (2021-10-16)
|
|
6
29
|
|
|
7
30
|
## 2.1.0 (2021-10-16)
|
package/README.md
CHANGED
|
@@ -29,13 +29,13 @@ npm install
|
|
|
29
29
|
|
|
30
30
|
You can now make changes to the repository.
|
|
31
31
|
|
|
32
|
-
To compile
|
|
32
|
+
To compile:
|
|
33
33
|
|
|
34
34
|
```bat
|
|
35
35
|
npm run build
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
To compile
|
|
38
|
+
To compile on every file change:
|
|
39
39
|
|
|
40
40
|
```bat
|
|
41
41
|
npm run build:watch
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { CardIdentifier } from '../types';
|
|
2
|
+
export declare class CardIdentifierBuilder {
|
|
2
3
|
static byId(id: string): CardIdentifier;
|
|
3
4
|
static byIllustrationId(id: string): CardIdentifier;
|
|
4
5
|
static byMtgoId(id: number): CardIdentifier;
|
package/lib/index.d.ts
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
1
|
export { default as Cards } from './api/Cards';
|
|
2
|
+
export { default as Catalog } from './api/Catalog';
|
|
3
|
+
export { default as Misc } from './api/Misc';
|
|
4
|
+
export { default as Rulings } from './api/Rulings';
|
|
5
|
+
export { default as Sets } from './api/Sets';
|
|
6
|
+
export { default as Symbology } from './api/Symbology';
|
|
7
|
+
export * from './api/CardIdentifierBuilder';
|
|
8
|
+
export * from './error/MagicQueryError';
|
|
9
|
+
export * from './query/MagicQuery';
|
|
10
|
+
export * from './query/MagicPageResult';
|
|
11
|
+
export * from './types';
|
|
@@ -5,10 +5,11 @@ export default class MagicPageResult<T, Q extends MagicQuery, P = unknown> {
|
|
|
5
5
|
private readonly apiPath;
|
|
6
6
|
private readonly query;
|
|
7
7
|
private readonly post?;
|
|
8
|
-
private
|
|
9
|
-
constructor(q: Q, apiPath: string, query: PageQuery, post?: P | undefined);
|
|
8
|
+
private _hasMore;
|
|
10
9
|
private _count?;
|
|
10
|
+
constructor(q: Q, apiPath: string, query: PageQuery, post?: P | undefined);
|
|
11
11
|
get count(): number | undefined;
|
|
12
|
+
get hasMore(): number | undefined;
|
|
12
13
|
all(): Promise<T[]>;
|
|
13
14
|
get(limit: number): Promise<T[]>;
|
|
14
15
|
next(): Promise<T[]>;
|
package/lib/skryfall.es5.js
CHANGED
|
@@ -31,15 +31,18 @@ class MagicPageResult {
|
|
|
31
31
|
this.apiPath = apiPath;
|
|
32
32
|
this.query = query;
|
|
33
33
|
this.post = post;
|
|
34
|
-
this.
|
|
34
|
+
this._hasMore = true;
|
|
35
35
|
}
|
|
36
36
|
get count() {
|
|
37
|
+
return this.hasMore;
|
|
38
|
+
}
|
|
39
|
+
get hasMore() {
|
|
37
40
|
return this._count;
|
|
38
41
|
}
|
|
39
42
|
all() {
|
|
40
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
44
|
const r = [];
|
|
42
|
-
while (this.
|
|
45
|
+
while (this._hasMore) {
|
|
43
46
|
const result = yield this.next();
|
|
44
47
|
r.push(...result);
|
|
45
48
|
}
|
|
@@ -49,7 +52,7 @@ class MagicPageResult {
|
|
|
49
52
|
get(limit) {
|
|
50
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
54
|
const r = [];
|
|
52
|
-
while (this.
|
|
55
|
+
while (this._hasMore) {
|
|
53
56
|
const result = yield this.next();
|
|
54
57
|
r.push(...result);
|
|
55
58
|
if (r.length == limit) {
|
|
@@ -65,9 +68,9 @@ class MagicPageResult {
|
|
|
65
68
|
next() {
|
|
66
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
70
|
const results = yield this.q.query(this.apiPath, this.query, this.post);
|
|
68
|
-
this.
|
|
71
|
+
this._hasMore = (results === null || results === void 0 ? void 0 : results.has_more) || false;
|
|
69
72
|
this._count = Number.parseInt(((results === null || results === void 0 ? void 0 : results.total_cards) || 0) + '');
|
|
70
|
-
if (this.
|
|
73
|
+
if (this._hasMore) {
|
|
71
74
|
this.setNextPage();
|
|
72
75
|
}
|
|
73
76
|
return (results === null || results === void 0 ? void 0 : results.data) || [];
|
|
@@ -250,5 +253,408 @@ class Cards extends MagicQuery {
|
|
|
250
253
|
}
|
|
251
254
|
var Cards$1 = new Cards();
|
|
252
255
|
|
|
253
|
-
|
|
256
|
+
class Catalog extends MagicQuery {
|
|
257
|
+
artifactTypes() {
|
|
258
|
+
var _a;
|
|
259
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
260
|
+
return (((_a = (yield this.query('catalog/artifact-types'))) === null || _a === void 0 ? void 0 : _a.data) || []);
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
artistNames() {
|
|
264
|
+
var _a;
|
|
265
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
266
|
+
return (((_a = (yield this.query('catalog/artist-names'))) === null || _a === void 0 ? void 0 : _a.data) || []);
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
cardNames() {
|
|
270
|
+
var _a;
|
|
271
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
272
|
+
return ((_a = (yield this.query('catalog/card-names'))) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
creatureTypes() {
|
|
276
|
+
var _a;
|
|
277
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
278
|
+
return (((_a = (yield this.query('catalog/creature-types'))) === null || _a === void 0 ? void 0 : _a.data) || []);
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
enchantmentTypes() {
|
|
282
|
+
var _a;
|
|
283
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
284
|
+
return (((_a = (yield this.query('catalog/enchantment-types'))) === null || _a === void 0 ? void 0 : _a.data) || []);
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
landTypes() {
|
|
288
|
+
var _a;
|
|
289
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
290
|
+
return ((_a = (yield this.query('catalog/land-types'))) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
loyalties() {
|
|
294
|
+
var _a;
|
|
295
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
296
|
+
return ((_a = (yield this.query('catalog/loyalties'))) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
planeswalkerTypes() {
|
|
300
|
+
var _a;
|
|
301
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
302
|
+
return (((_a = (yield this.query('catalog/planeswalker-types'))) === null || _a === void 0 ? void 0 : _a.data) ||
|
|
303
|
+
[]);
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
powers() {
|
|
307
|
+
var _a;
|
|
308
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
309
|
+
return ((_a = (yield this.query('catalog/powers'))) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
spellTypes() {
|
|
313
|
+
var _a;
|
|
314
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
315
|
+
return ((_a = (yield this.query('catalog/spell-types'))) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
toughnesses() {
|
|
319
|
+
var _a;
|
|
320
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
321
|
+
return ((_a = (yield this.query('catalog/toughnesses'))) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
watermarks() {
|
|
325
|
+
var _a;
|
|
326
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
327
|
+
return ((_a = (yield this.query('catalog/watermarks'))) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
wordBank() {
|
|
331
|
+
var _a;
|
|
332
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
333
|
+
return ((_a = (yield this.query('catalog/word-bank'))) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
var Catalog$1 = new Catalog();
|
|
338
|
+
|
|
339
|
+
class Misc extends MagicQuery {
|
|
340
|
+
homepageLinks() {
|
|
341
|
+
var _a;
|
|
342
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
343
|
+
return (((_a = (yield this.query('homepage-links'))) === null || _a === void 0 ? void 0 : _a.data) || []);
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
var Misc$1 = new Misc();
|
|
348
|
+
|
|
349
|
+
class Rulings extends MagicQuery {
|
|
350
|
+
byArenaId(id) {
|
|
351
|
+
var _a;
|
|
352
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
353
|
+
return (((_a = (yield this.query(['cards/arena', id, 'rulings']))) === null || _a === void 0 ? void 0 : _a.data) || []);
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
byId(id) {
|
|
357
|
+
var _a;
|
|
358
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
359
|
+
return (((_a = (yield this.query(['cards', id, 'rulings']))) === null || _a === void 0 ? void 0 : _a.data) ||
|
|
360
|
+
[]);
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
byMtgoId(id) {
|
|
364
|
+
var _a;
|
|
365
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
366
|
+
return (((_a = (yield this.query(['cards/mtgo', id, 'rulings']))) === null || _a === void 0 ? void 0 : _a.data) || []);
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
byMultiverseId(id) {
|
|
370
|
+
var _a;
|
|
371
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
372
|
+
return (((_a = (yield this.query([
|
|
373
|
+
'cards/multiverse',
|
|
374
|
+
id,
|
|
375
|
+
'rulings',
|
|
376
|
+
]))) === null || _a === void 0 ? void 0 : _a.data) || []);
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
bySet(setCode, collectorNumber) {
|
|
380
|
+
var _a;
|
|
381
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
382
|
+
return (((_a = (yield this.query([
|
|
383
|
+
'cards',
|
|
384
|
+
setCode,
|
|
385
|
+
`${collectorNumber}`,
|
|
386
|
+
'rulings',
|
|
387
|
+
]))) === null || _a === void 0 ? void 0 : _a.data) || []);
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
var Rulings$1 = new Rulings();
|
|
392
|
+
|
|
393
|
+
class Sets extends MagicQuery {
|
|
394
|
+
all() {
|
|
395
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
396
|
+
const result = yield this.query('sets');
|
|
397
|
+
return (result === null || result === void 0 ? void 0 : result.data) || [];
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
byCode(code) {
|
|
401
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
402
|
+
return yield this.query(['sets', code]);
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
byId(id) {
|
|
406
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
407
|
+
return this.query(['sets', id]);
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
byTcgPlayerId(id) {
|
|
411
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
412
|
+
return this.query(['sets/tcgplayer', id]);
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
var Sets$1 = new Sets();
|
|
417
|
+
|
|
418
|
+
class Symbology extends MagicQuery {
|
|
419
|
+
all() {
|
|
420
|
+
var _a;
|
|
421
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
422
|
+
return ((_a = (yield this.query('symbology'))) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
parseMana(shorthand) {
|
|
426
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
427
|
+
return yield this.query('symbology/parse-mana', {
|
|
428
|
+
cost: shorthand,
|
|
429
|
+
});
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
var Symbology$1 = new Symbology();
|
|
434
|
+
|
|
435
|
+
class CardIdentifierBuilder {
|
|
436
|
+
static byId(id) {
|
|
437
|
+
return { id };
|
|
438
|
+
}
|
|
439
|
+
static byIllustrationId(id) {
|
|
440
|
+
return { illustration_id: id };
|
|
441
|
+
}
|
|
442
|
+
static byMtgoId(id) {
|
|
443
|
+
return { mtgo_id: id };
|
|
444
|
+
}
|
|
445
|
+
static byMultiverseId(id) {
|
|
446
|
+
return { multiverse_id: id };
|
|
447
|
+
}
|
|
448
|
+
static byName(name, set) {
|
|
449
|
+
return { name, set };
|
|
450
|
+
}
|
|
451
|
+
static byOracleId(id) {
|
|
452
|
+
return { oracle_id: id };
|
|
453
|
+
}
|
|
454
|
+
static bySet(set, collectorNumber) {
|
|
455
|
+
return { collector_number: `${collectorNumber}`, set };
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
var Border;
|
|
460
|
+
(function (Border) {
|
|
461
|
+
Border[Border["black"] = 0] = "black";
|
|
462
|
+
Border[Border["borderless"] = 1] = "borderless";
|
|
463
|
+
Border[Border["gold"] = 2] = "gold";
|
|
464
|
+
Border[Border["silver"] = 3] = "silver";
|
|
465
|
+
Border[Border["white"] = 4] = "white";
|
|
466
|
+
})(Border || (Border = {}));
|
|
467
|
+
|
|
468
|
+
var BulkDataTypes;
|
|
469
|
+
(function (BulkDataTypes) {
|
|
470
|
+
BulkDataTypes[BulkDataTypes["oracle_cards"] = 0] = "oracle_cards";
|
|
471
|
+
BulkDataTypes[BulkDataTypes["unique_artwork"] = 1] = "unique_artwork";
|
|
472
|
+
BulkDataTypes[BulkDataTypes["default_cards"] = 2] = "default_cards";
|
|
473
|
+
BulkDataTypes[BulkDataTypes["all_cards"] = 3] = "all_cards";
|
|
474
|
+
BulkDataTypes[BulkDataTypes["rulings"] = 4] = "rulings";
|
|
475
|
+
})(BulkDataTypes || (BulkDataTypes = {}));
|
|
476
|
+
|
|
477
|
+
var Colors;
|
|
478
|
+
(function (Colors) {
|
|
479
|
+
Colors[Colors["W"] = 0] = "W";
|
|
480
|
+
Colors[Colors["B"] = 1] = "B";
|
|
481
|
+
Colors[Colors["R"] = 2] = "R";
|
|
482
|
+
Colors[Colors["U"] = 3] = "U";
|
|
483
|
+
Colors[Colors["G"] = 4] = "G";
|
|
484
|
+
})(Colors || (Colors = {}));
|
|
485
|
+
|
|
486
|
+
var Format;
|
|
487
|
+
(function (Format) {
|
|
488
|
+
Format[Format["standard"] = 0] = "standard";
|
|
489
|
+
Format[Format["future"] = 1] = "future";
|
|
490
|
+
Format[Format["historic"] = 2] = "historic";
|
|
491
|
+
Format[Format["pioneer"] = 3] = "pioneer";
|
|
492
|
+
Format[Format["modern"] = 4] = "modern";
|
|
493
|
+
Format[Format["legacy"] = 5] = "legacy";
|
|
494
|
+
Format[Format["pauper"] = 6] = "pauper";
|
|
495
|
+
Format[Format["vintage"] = 7] = "vintage";
|
|
496
|
+
Format[Format["penny"] = 8] = "penny";
|
|
497
|
+
Format[Format["commander"] = 9] = "commander";
|
|
498
|
+
Format[Format["brawl"] = 10] = "brawl";
|
|
499
|
+
Format[Format["duel"] = 11] = "duel";
|
|
500
|
+
Format[Format["oldschool"] = 12] = "oldschool";
|
|
501
|
+
})(Format || (Format = {}));
|
|
502
|
+
|
|
503
|
+
var FrameEffect;
|
|
504
|
+
(function (FrameEffect) {
|
|
505
|
+
FrameEffect[FrameEffect["legendary"] = 0] = "legendary";
|
|
506
|
+
FrameEffect[FrameEffect["miracle"] = 1] = "miracle";
|
|
507
|
+
FrameEffect[FrameEffect["nyxtouched"] = 2] = "nyxtouched";
|
|
508
|
+
FrameEffect[FrameEffect["draft"] = 3] = "draft";
|
|
509
|
+
FrameEffect[FrameEffect["devoid"] = 4] = "devoid";
|
|
510
|
+
FrameEffect[FrameEffect["tombstone"] = 5] = "tombstone";
|
|
511
|
+
FrameEffect[FrameEffect["colorshifted"] = 6] = "colorshifted";
|
|
512
|
+
FrameEffect[FrameEffect["inverted"] = 7] = "inverted";
|
|
513
|
+
FrameEffect[FrameEffect["sunmoondfc"] = 8] = "sunmoondfc";
|
|
514
|
+
FrameEffect[FrameEffect["compasslanddfc"] = 9] = "compasslanddfc";
|
|
515
|
+
FrameEffect[FrameEffect["originpwdfc"] = 10] = "originpwdfc";
|
|
516
|
+
FrameEffect[FrameEffect["mooneldrazidfc"] = 11] = "mooneldrazidfc";
|
|
517
|
+
FrameEffect[FrameEffect["moonreversemoondfc"] = 12] = "moonreversemoondfc";
|
|
518
|
+
FrameEffect[FrameEffect["showcase"] = 13] = "showcase";
|
|
519
|
+
FrameEffect[FrameEffect["extendedart"] = 14] = "extendedart";
|
|
520
|
+
})(FrameEffect || (FrameEffect = {}));
|
|
521
|
+
|
|
522
|
+
var Game;
|
|
523
|
+
(function (Game) {
|
|
524
|
+
Game[Game["paper"] = 0] = "paper";
|
|
525
|
+
Game[Game["arena"] = 1] = "arena";
|
|
526
|
+
Game[Game["mtgo"] = 2] = "mtgo";
|
|
527
|
+
})(Game || (Game = {}));
|
|
528
|
+
|
|
529
|
+
var Layout;
|
|
530
|
+
(function (Layout) {
|
|
531
|
+
Layout[Layout["normal"] = 0] = "normal";
|
|
532
|
+
Layout[Layout["split"] = 1] = "split";
|
|
533
|
+
Layout[Layout["flip"] = 2] = "flip";
|
|
534
|
+
Layout[Layout["transform"] = 3] = "transform";
|
|
535
|
+
Layout[Layout["meld"] = 4] = "meld";
|
|
536
|
+
Layout[Layout["leveler"] = 5] = "leveler";
|
|
537
|
+
Layout[Layout["saga"] = 6] = "saga";
|
|
538
|
+
Layout[Layout["adventure"] = 7] = "adventure";
|
|
539
|
+
Layout[Layout["planar"] = 8] = "planar";
|
|
540
|
+
Layout[Layout["scheme"] = 9] = "scheme";
|
|
541
|
+
Layout[Layout["vanguard"] = 10] = "vanguard";
|
|
542
|
+
Layout[Layout["token"] = 11] = "token";
|
|
543
|
+
Layout[Layout["double_faced_token"] = 12] = "double_faced_token";
|
|
544
|
+
Layout[Layout["emblem"] = 13] = "emblem";
|
|
545
|
+
Layout[Layout["augment"] = 14] = "augment";
|
|
546
|
+
Layout[Layout["host"] = 15] = "host";
|
|
547
|
+
Layout[Layout["art_series"] = 16] = "art_series";
|
|
548
|
+
Layout[Layout["double_sided"] = 17] = "double_sided";
|
|
549
|
+
})(Layout || (Layout = {}));
|
|
550
|
+
|
|
551
|
+
var Legality;
|
|
552
|
+
(function (Legality) {
|
|
553
|
+
Legality[Legality["legal"] = 0] = "legal";
|
|
554
|
+
Legality[Legality["not_legal"] = 1] = "not_legal";
|
|
555
|
+
Legality[Legality["restricted"] = 2] = "restricted";
|
|
556
|
+
Legality[Legality["banned"] = 3] = "banned";
|
|
557
|
+
})(Legality || (Legality = {}));
|
|
558
|
+
|
|
559
|
+
var PromoType;
|
|
560
|
+
(function (PromoType) {
|
|
561
|
+
PromoType[PromoType["tourney"] = 0] = "tourney";
|
|
562
|
+
PromoType[PromoType["prerelease"] = 1] = "prerelease";
|
|
563
|
+
PromoType[PromoType["datestamped"] = 2] = "datestamped";
|
|
564
|
+
PromoType[PromoType["planeswalkerdeck"] = 3] = "planeswalkerdeck";
|
|
565
|
+
PromoType[PromoType["buyabox"] = 4] = "buyabox";
|
|
566
|
+
PromoType[PromoType["judgegift"] = 5] = "judgegift";
|
|
567
|
+
PromoType[PromoType["event"] = 6] = "event";
|
|
568
|
+
PromoType[PromoType["convention"] = 7] = "convention";
|
|
569
|
+
PromoType[PromoType["starterdeck"] = 8] = "starterdeck";
|
|
570
|
+
PromoType[PromoType["instore"] = 9] = "instore";
|
|
571
|
+
PromoType[PromoType["setpromo"] = 10] = "setpromo";
|
|
572
|
+
PromoType[PromoType["fnm"] = 11] = "fnm";
|
|
573
|
+
PromoType[PromoType["openhouse"] = 12] = "openhouse";
|
|
574
|
+
PromoType[PromoType["league"] = 13] = "league";
|
|
575
|
+
PromoType[PromoType["draftweekend"] = 14] = "draftweekend";
|
|
576
|
+
PromoType[PromoType["gameday"] = 15] = "gameday";
|
|
577
|
+
PromoType[PromoType["release"] = 16] = "release";
|
|
578
|
+
PromoType[PromoType["intropack"] = 17] = "intropack";
|
|
579
|
+
PromoType[PromoType["giftbox"] = 18] = "giftbox";
|
|
580
|
+
PromoType[PromoType["duels"] = 19] = "duels";
|
|
581
|
+
PromoType[PromoType["wizardsplaynetwork"] = 20] = "wizardsplaynetwork";
|
|
582
|
+
PromoType[PromoType["premiereshop"] = 21] = "premiereshop";
|
|
583
|
+
PromoType[PromoType["playerrewards"] = 22] = "playerrewards";
|
|
584
|
+
PromoType[PromoType["gateway"] = 23] = "gateway";
|
|
585
|
+
PromoType[PromoType["arenaleague"] = 24] = "arenaleague";
|
|
586
|
+
})(PromoType || (PromoType = {}));
|
|
587
|
+
|
|
588
|
+
var Rarity;
|
|
589
|
+
(function (Rarity) {
|
|
590
|
+
Rarity[Rarity["common"] = 0] = "common";
|
|
591
|
+
Rarity[Rarity["uncommon"] = 1] = "uncommon";
|
|
592
|
+
Rarity[Rarity["rare"] = 2] = "rare";
|
|
593
|
+
Rarity[Rarity["mythic"] = 3] = "mythic";
|
|
594
|
+
})(Rarity || (Rarity = {}));
|
|
595
|
+
|
|
596
|
+
var RelatedCardComponent;
|
|
597
|
+
(function (RelatedCardComponent) {
|
|
598
|
+
RelatedCardComponent[RelatedCardComponent["token"] = 0] = "token";
|
|
599
|
+
RelatedCardComponent[RelatedCardComponent["meld_part"] = 1] = "meld_part";
|
|
600
|
+
RelatedCardComponent[RelatedCardComponent["meld_result"] = 2] = "meld_result";
|
|
601
|
+
RelatedCardComponent[RelatedCardComponent["combo_piece"] = 3] = "combo_piece";
|
|
602
|
+
})(RelatedCardComponent || (RelatedCardComponent = {}));
|
|
603
|
+
|
|
604
|
+
var SetType;
|
|
605
|
+
(function (SetType) {
|
|
606
|
+
SetType[SetType["core"] = 0] = "core";
|
|
607
|
+
SetType[SetType["expansion"] = 1] = "expansion";
|
|
608
|
+
SetType[SetType["masters"] = 2] = "masters";
|
|
609
|
+
SetType[SetType["masterpiece"] = 3] = "masterpiece";
|
|
610
|
+
SetType[SetType["from_the_vault"] = 4] = "from_the_vault";
|
|
611
|
+
SetType[SetType["spellbook"] = 5] = "spellbook";
|
|
612
|
+
SetType[SetType["premium_deck"] = 6] = "premium_deck";
|
|
613
|
+
SetType[SetType["duel_deck"] = 7] = "duel_deck";
|
|
614
|
+
SetType[SetType["draft_innovation"] = 8] = "draft_innovation";
|
|
615
|
+
SetType[SetType["treasure_chest"] = 9] = "treasure_chest";
|
|
616
|
+
SetType[SetType["commander"] = 10] = "commander";
|
|
617
|
+
SetType[SetType["planechase"] = 11] = "planechase";
|
|
618
|
+
SetType[SetType["archenemy"] = 12] = "archenemy";
|
|
619
|
+
SetType[SetType["vanguard"] = 13] = "vanguard";
|
|
620
|
+
SetType[SetType["funny"] = 14] = "funny";
|
|
621
|
+
SetType[SetType["starter"] = 15] = "starter";
|
|
622
|
+
SetType[SetType["box"] = 16] = "box";
|
|
623
|
+
SetType[SetType["promo"] = 17] = "promo";
|
|
624
|
+
SetType[SetType["token"] = 18] = "token";
|
|
625
|
+
SetType[SetType["memorabilia"] = 19] = "memorabilia";
|
|
626
|
+
})(SetType || (SetType = {}));
|
|
627
|
+
|
|
628
|
+
var Sort;
|
|
629
|
+
(function (Sort) {
|
|
630
|
+
Sort[Sort["name"] = 0] = "name";
|
|
631
|
+
Sort[Sort["set"] = 1] = "set";
|
|
632
|
+
Sort[Sort["released"] = 2] = "released";
|
|
633
|
+
Sort[Sort["rarity"] = 3] = "rarity";
|
|
634
|
+
Sort[Sort["color"] = 4] = "color";
|
|
635
|
+
Sort[Sort["usd"] = 5] = "usd";
|
|
636
|
+
Sort[Sort["tix"] = 6] = "tix";
|
|
637
|
+
Sort[Sort["eur"] = 7] = "eur";
|
|
638
|
+
Sort[Sort["cmc"] = 8] = "cmc";
|
|
639
|
+
Sort[Sort["power"] = 9] = "power";
|
|
640
|
+
Sort[Sort["toughness"] = 10] = "toughness";
|
|
641
|
+
Sort[Sort["edhrec"] = 11] = "edhrec";
|
|
642
|
+
Sort[Sort["artist"] = 12] = "artist";
|
|
643
|
+
})(Sort || (Sort = {}));
|
|
644
|
+
|
|
645
|
+
var SortDirection;
|
|
646
|
+
(function (SortDirection) {
|
|
647
|
+
SortDirection[SortDirection["auto"] = 0] = "auto";
|
|
648
|
+
SortDirection[SortDirection["asc"] = 1] = "asc";
|
|
649
|
+
SortDirection[SortDirection["desc"] = 2] = "desc";
|
|
650
|
+
})(SortDirection || (SortDirection = {}));
|
|
651
|
+
|
|
652
|
+
var UniqueStrategy;
|
|
653
|
+
(function (UniqueStrategy) {
|
|
654
|
+
UniqueStrategy[UniqueStrategy["cards"] = 0] = "cards";
|
|
655
|
+
UniqueStrategy[UniqueStrategy["art"] = 1] = "art";
|
|
656
|
+
UniqueStrategy[UniqueStrategy["prints"] = 2] = "prints";
|
|
657
|
+
})(UniqueStrategy || (UniqueStrategy = {}));
|
|
658
|
+
|
|
659
|
+
export { Border, BulkDataTypes, CardIdentifierBuilder, Cards$1 as Cards, Catalog$1 as Catalog, Format, FrameEffect, Game, Layout, Legality, MagicQueryError, Misc$1 as Misc, PromoType, Rarity, RelatedCardComponent, Rulings$1 as Rulings, SetType, Sets$1 as Sets, Sort, SortDirection, Symbology$1 as Symbology, UniqueStrategy };
|
|
254
660
|
//# sourceMappingURL=skryfall.es5.js.map
|
package/lib/skryfall.es5.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skryfall.es5.js","sources":["../src/query/MagicPageResult.ts","../src/error/MagicQueryError.ts","../src/query/MagicQuery.ts","../src/api/Cards.ts"],"sourcesContent":["import { PageQuery, ResultList } from '../types';\nimport MagicQuery from './MagicQuery';\n\nexport default class MagicPageResult<T, Q extends MagicQuery, P = unknown> {\n private hasMore: boolean;\n\n constructor(\n private readonly q: Q,\n private readonly apiPath: string,\n private readonly query: PageQuery,\n private readonly post?: P\n ) {\n this.hasMore = true;\n }\n\n private _count?: number;\n\n public get count() {\n return this._count;\n }\n\n public async all(): Promise<T[]> {\n const r: T[] = [];\n while (this.hasMore) {\n const result = await this.next();\n r.push(...result);\n }\n return r;\n }\n\n public async get(limit: number): Promise<T[]> {\n const r: T[] = [];\n while (this.hasMore) {\n const result = await this.next();\n r.push(...result);\n if (r.length == limit) {\n return r;\n } else if (r.length > limit) {\n return r.slice(0, limit);\n }\n }\n return r;\n }\n\n public async next(): Promise<T[]> {\n const results = await this.q.query<ResultList<T>, P>(\n this.apiPath,\n this.query,\n this.post\n );\n this.hasMore = results?.has_more || false;\n this._count = Number.parseInt((results?.total_cards || 0) + '');\n if (this.hasMore) {\n this.setNextPage();\n }\n return results?.data || [];\n }\n\n public async page(page: number): Promise<T[]> {\n this.query.page = page;\n return this.next();\n }\n\n private setNextPage(): void {\n this.query.page = this.query.page + 1;\n }\n}\n","import { SearchError } from '../types/SearchError';\n\nexport class MagicQueryError extends Error {\n constructor(readonly data?: SearchError) {\n super(data?.details);\n Object.setPrototypeOf(this, MagicQueryError.prototype);\n }\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 public static retry: RetryStrategy = { attempts: 1 };\n // the path to the api\n private static readonly endpoint = 'https://api.scryfall.com';\n // time where the last api call was made\n private static lastQuery = 100;\n // the api requests 50-100 ms between calls, we go on the generous side and never wait less than 100 ms between calls\n private static readonly rateLimit = 100;\n\n private static canRetry(error?: SearchError) {\n if (error?.code == 'not_found' || error?.code == 'bad_request')\n return false;\n return !MagicQuery.retry.canRetry || MagicQuery.retry.canRetry(error);\n }\n\n private static async debounce(): Promise<void> {\n const now = Date.now();\n const timeSinceLastQuery = now - MagicQuery.lastQuery;\n if (timeSinceLastQuery >= MagicQuery.rateLimit) {\n MagicQuery.lastQuery = now;\n } else {\n const timeUntilNextQuery = MagicQuery.rateLimit - timeSinceLastQuery;\n MagicQuery.lastQuery += timeUntilNextQuery;\n await MagicQuery.sleep(timeUntilNextQuery);\n }\n }\n\n private static sleep(ms = 0) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private static async tryQuery<T, Y>(\n apiPath: string,\n query?: Query,\n post?: Y,\n requestOptions?: AxiosRequestConfig\n ): Promise<AxiosResponse<T, Y>> {\n await MagicQuery.debounce();\n\n const config: AxiosRequestConfig<Y> = {\n data: post,\n method: post ? 'POST' : 'GET',\n params: query,\n url: `${MagicQuery.endpoint}/${apiPath}`,\n ...requestOptions,\n };\n\n try {\n return await Axios.request<T, AxiosResponse<T>, Y>(config);\n } catch (e: any) {\n if (e['isAxiosError']) {\n const error = e as AxiosError<SearchError>;\n throw new MagicQueryError(error.response?.data);\n } else {\n throw e;\n }\n }\n }\n\n public async query<T = unknown, Y = unknown>(\n apiPath: TOrArrayOfT<string | number | undefined>,\n query?: Query,\n post?: Y,\n requestOptions?: AxiosRequestConfig\n ): Promise<T | undefined> {\n if (Array.isArray(apiPath)) {\n apiPath = apiPath.join('/');\n }\n\n let retries: number;\n let result;\n\n for (retries = 0; retries < MagicQuery.retry.attempts; retries++) {\n let error: SearchError | undefined;\n try {\n result = await MagicQuery.tryQuery<T, Y>(\n `${apiPath}`,\n query,\n post,\n requestOptions\n );\n } catch (e: any) {\n if (e instanceof MagicQueryError) {\n error = e.data;\n } else {\n throw e;\n }\n }\n if (result || !MagicQuery.canRetry(error)) break;\n await MagicQuery.sleep(MagicQuery.retry.timeout);\n }\n\n return result?.data;\n }\n}\n","import MagicPageResult from '../query/MagicPageResult';\nimport MagicQuery from '../query/MagicQuery';\nimport {\n Card,\n CardIdentifier,\n ResultCatalog,\n ResultList,\n SearchOptions,\n} from '../types';\n\nclass Cards extends MagicQuery {\n public async autoCompleteName(name: string): Promise<string[]> {\n const result = await this.query<ResultCatalog>('cards/autocomplete', {\n q: name,\n });\n return result?.data || [];\n }\n\n public async byArenaId(id: number): Promise<Card | undefined> {\n return this.query<Card>(['cards/arena', id]);\n }\n\n public async byId(id: string): Promise<Card | undefined> {\n return this.query<Card>(['cards', id]);\n }\n\n public async byMtgoId(id: number): Promise<Card | undefined> {\n return this.query<Card>(['cards/mtgo', id]);\n }\n\n public async byMultiverseId(id: number): Promise<Card | undefined> {\n return this.query<Card>(['cards/multiverse', id]);\n }\n\n public async byName(name: string, fuzzy?: boolean): Promise<Card | undefined>;\n\n public async byName(\n name: string,\n set?: string,\n fuzzy?: boolean\n ): Promise<Card | undefined>;\n\n public async byName(\n name: string,\n set?: string | boolean,\n fuzzy = false\n ): Promise<Card | undefined> {\n if (typeof set === 'boolean') {\n fuzzy = set;\n set = undefined;\n }\n\n return this.query<Card>('cards/named', {\n [fuzzy ? 'fuzzy' : 'exact']: name,\n set,\n });\n }\n\n public async bySet(\n setCode: string,\n collectorNumber: number,\n lang?: string\n ): Promise<Card | undefined> {\n const path = ['cards', setCode, collectorNumber];\n if (lang) path.push(lang);\n return this.query<Card>(path);\n }\n\n public async byTcgPlayerId(id: number): Promise<Card | undefined> {\n return this.query<Card>(['cards/tcgplayer', id]);\n }\n\n public async collection(...identifiers: CardIdentifier[]): Promise<Card[]> {\n const cards: Card[] = [];\n for (let i = 0; i < identifiers.length; i += 75) {\n // the api only supports a max collection size of 75, so we take the list of identifiers (any length)\n // and split it into 75 card-max requests\n const collectionSection = { identifiers: identifiers.slice(i, i + 75) };\n\n const result = await this.query<ResultList<Card, CardIdentifier>>(\n 'cards/collection',\n undefined,\n collectionSection\n );\n cards.push(...(result?.data || []));\n }\n return cards;\n }\n\n public async random(): Promise<Card | undefined> {\n return this.query<Card>('cards/random');\n }\n\n public search(\n query: string,\n options?: SearchOptions | number\n ): MagicPageResult<Card, Cards> {\n return new MagicPageResult<Card, Cards>(this, 'cards/search', {\n q: query,\n ...(typeof options === 'number'\n ? { page: options }\n : { page: 1, ...options }),\n });\n }\n}\n\nexport default new Cards();\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skryfall.es5.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/api/Symbology.ts","../src/api/CardIdentifierBuilder.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"],"sourcesContent":["import { PageQuery, ResultList } from '../types';\nimport MagicQuery from './MagicQuery';\n\nexport default class MagicPageResult<T, Q extends MagicQuery, P = unknown> {\n private _hasMore: boolean;\n private _count?: number;\n\n constructor(\n private readonly q: Q,\n private readonly apiPath: string,\n private readonly query: PageQuery,\n private readonly post?: P\n ) {\n this._hasMore = true;\n }\n\n public get count() {\n return this.hasMore;\n }\n\n public get hasMore() {\n return this._count;\n }\n\n public async all(): Promise<T[]> {\n const r: T[] = [];\n while (this._hasMore) {\n const result = await this.next();\n r.push(...result);\n }\n return r;\n }\n\n public async get(limit: number): Promise<T[]> {\n const r: T[] = [];\n while (this._hasMore) {\n const result = await this.next();\n r.push(...result);\n if (r.length == limit) {\n return r;\n } else if (r.length > limit) {\n return r.slice(0, limit);\n }\n }\n return r;\n }\n\n public async next(): Promise<T[]> {\n const results = await this.q.query<ResultList<T>, P>(\n this.apiPath,\n this.query,\n this.post\n );\n this._hasMore = results?.has_more || false;\n this._count = Number.parseInt((results?.total_cards || 0) + '');\n if (this._hasMore) {\n this.setNextPage();\n }\n return results?.data || [];\n }\n\n public async page(page: number): Promise<T[]> {\n this.query.page = page;\n return this.next();\n }\n\n private setNextPage(): void {\n this.query.page = this.query.page + 1;\n }\n}\n","import { SearchError } from '../types/SearchError';\n\nexport class MagicQueryError extends Error {\n constructor(readonly data?: SearchError) {\n super(data?.details);\n Object.setPrototypeOf(this, MagicQueryError.prototype);\n }\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 public static retry: RetryStrategy = { attempts: 1 };\n // the path to the api\n private static readonly endpoint = 'https://api.scryfall.com';\n // time where the last api call was made\n private static lastQuery = 100;\n // the api requests 50-100 ms between calls, we go on the generous side and never wait less than 100 ms between calls\n private static readonly rateLimit = 100;\n\n private static canRetry(error?: SearchError) {\n if (error?.code == 'not_found' || error?.code == 'bad_request')\n return false;\n return !MagicQuery.retry.canRetry || MagicQuery.retry.canRetry(error);\n }\n\n private static async debounce(): Promise<void> {\n const now = Date.now();\n const timeSinceLastQuery = now - MagicQuery.lastQuery;\n if (timeSinceLastQuery >= MagicQuery.rateLimit) {\n MagicQuery.lastQuery = now;\n } else {\n const timeUntilNextQuery = MagicQuery.rateLimit - timeSinceLastQuery;\n MagicQuery.lastQuery += timeUntilNextQuery;\n await MagicQuery.sleep(timeUntilNextQuery);\n }\n }\n\n private static sleep(ms = 0) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private static async tryQuery<T, Y>(\n apiPath: string,\n query?: Query,\n post?: Y,\n requestOptions?: AxiosRequestConfig\n ): Promise<AxiosResponse<T, Y>> {\n await MagicQuery.debounce();\n\n const config: AxiosRequestConfig<Y> = {\n data: post,\n method: post ? 'POST' : 'GET',\n params: query,\n url: `${MagicQuery.endpoint}/${apiPath}`,\n ...requestOptions,\n };\n\n try {\n return await Axios.request<T, AxiosResponse<T>, Y>(config);\n } catch (e: any) {\n if (e['isAxiosError']) {\n const error = e as AxiosError<SearchError>;\n throw new MagicQueryError(error.response?.data);\n } else {\n throw e;\n }\n }\n }\n\n public async query<T = unknown, Y = unknown>(\n apiPath: TOrArrayOfT<string | number | undefined>,\n query?: Query,\n post?: Y,\n requestOptions?: AxiosRequestConfig\n ): Promise<T | undefined> {\n if (Array.isArray(apiPath)) {\n apiPath = apiPath.join('/');\n }\n\n let retries: number;\n let result;\n\n for (retries = 0; retries < MagicQuery.retry.attempts; retries++) {\n let error: SearchError | undefined;\n try {\n result = await MagicQuery.tryQuery<T, Y>(\n `${apiPath}`,\n query,\n post,\n requestOptions\n );\n } catch (e: any) {\n if (e instanceof MagicQueryError) {\n error = e.data;\n } else {\n throw e;\n }\n }\n if (result || !MagicQuery.canRetry(error)) break;\n await MagicQuery.sleep(MagicQuery.retry.timeout);\n }\n\n return result?.data;\n }\n}\n","import MagicPageResult from '../query/MagicPageResult';\nimport MagicQuery from '../query/MagicQuery';\nimport {\n Card,\n CardIdentifier,\n ResultCatalog,\n ResultList,\n SearchOptions,\n} from '../types';\n\nclass Cards extends MagicQuery {\n public async autoCompleteName(name: string): Promise<string[]> {\n const result = await this.query<ResultCatalog>('cards/autocomplete', {\n q: name,\n });\n return result?.data || [];\n }\n\n public async byArenaId(id: number): Promise<Card | undefined> {\n return this.query<Card>(['cards/arena', id]);\n }\n\n public async byId(id: string): Promise<Card | undefined> {\n return this.query<Card>(['cards', id]);\n }\n\n public async byMtgoId(id: number): Promise<Card | undefined> {\n return this.query<Card>(['cards/mtgo', id]);\n }\n\n public async byMultiverseId(id: number): Promise<Card | undefined> {\n return this.query<Card>(['cards/multiverse', id]);\n }\n\n public async byName(name: string, fuzzy?: boolean): Promise<Card | undefined>;\n\n public async byName(\n name: string,\n set?: string,\n fuzzy?: boolean\n ): Promise<Card | undefined>;\n\n public async byName(\n name: string,\n set?: string | boolean,\n fuzzy = false\n ): Promise<Card | undefined> {\n if (typeof set === 'boolean') {\n fuzzy = set;\n set = undefined;\n }\n\n return this.query<Card>('cards/named', {\n [fuzzy ? 'fuzzy' : 'exact']: name,\n set,\n });\n }\n\n public async bySet(\n setCode: string,\n collectorNumber: number,\n lang?: string\n ): Promise<Card | undefined> {\n const path = ['cards', setCode, collectorNumber];\n if (lang) path.push(lang);\n return this.query<Card>(path);\n }\n\n public async byTcgPlayerId(id: number): Promise<Card | undefined> {\n return this.query<Card>(['cards/tcgplayer', id]);\n }\n\n public async collection(...identifiers: CardIdentifier[]): Promise<Card[]> {\n const cards: Card[] = [];\n for (let i = 0; i < identifiers.length; i += 75) {\n // the api only supports a max collection size of 75, so we take the list of identifiers (any length)\n // and split it into 75 card-max requests\n const collectionSection = { identifiers: identifiers.slice(i, i + 75) };\n\n const result = await this.query<ResultList<Card, CardIdentifier>>(\n 'cards/collection',\n undefined,\n collectionSection\n );\n cards.push(...(result?.data || []));\n }\n return cards;\n }\n\n public async random(): Promise<Card | undefined> {\n return this.query<Card>('cards/random');\n }\n\n public search(\n query: string,\n options?: SearchOptions | number\n ): MagicPageResult<Card, Cards> {\n return new MagicPageResult<Card, Cards>(this, 'cards/search', {\n q: query,\n ...(typeof options === 'number'\n ? { page: options }\n : { page: 1, ...options }),\n });\n }\n}\n\nexport default new Cards();\n","import MagicQuery from '../query/MagicQuery';\nimport { ResultCatalog } from '../types';\n\nclass Catalog extends MagicQuery {\n public async artifactTypes(): Promise<string[]> {\n return (\n (await this.query<ResultCatalog>('catalog/artifact-types'))?.data || []\n );\n }\n\n public async artistNames(): Promise<string[]> {\n return (\n (await this.query<ResultCatalog>('catalog/artist-names'))?.data || []\n );\n }\n\n public async cardNames(): Promise<string[]> {\n return (await this.query<ResultCatalog>('catalog/card-names'))?.data || [];\n }\n\n public async creatureTypes(): Promise<string[]> {\n return (\n (await this.query<ResultCatalog>('catalog/creature-types'))?.data || []\n );\n }\n\n public async enchantmentTypes(): Promise<string[]> {\n return (\n (await this.query<ResultCatalog>('catalog/enchantment-types'))?.data || []\n );\n }\n\n public async landTypes(): Promise<string[]> {\n return (await this.query<ResultCatalog>('catalog/land-types'))?.data || [];\n }\n\n public async loyalties(): Promise<string[]> {\n return (await this.query<ResultCatalog>('catalog/loyalties'))?.data || [];\n }\n\n public async planeswalkerTypes(): Promise<string[]> {\n return (\n (await this.query<ResultCatalog>('catalog/planeswalker-types'))?.data ||\n []\n );\n }\n\n public async powers(): Promise<string[]> {\n return (await this.query<ResultCatalog>('catalog/powers'))?.data || [];\n }\n\n public async spellTypes(): Promise<string[]> {\n return (await this.query<ResultCatalog>('catalog/spell-types'))?.data || [];\n }\n\n public async toughnesses(): Promise<string[]> {\n return (await this.query<ResultCatalog>('catalog/toughnesses'))?.data || [];\n }\n\n public async watermarks(): Promise<string[]> {\n return (await this.query<ResultCatalog>('catalog/watermarks'))?.data || [];\n }\n\n public async wordBank(): Promise<string[]> {\n return (await this.query<ResultCatalog>('catalog/word-bank'))?.data || [];\n }\n}\n\nexport default new Catalog();\n","import MagicQuery from '../query/MagicQuery';\nimport { HomepageLink, ResultList } from '../types';\n\nclass Misc extends MagicQuery {\n public async homepageLinks(): Promise<HomepageLink[]> {\n return (\n (await this.query<ResultList<HomepageLink>>('homepage-links'))?.data || []\n );\n }\n}\n\nexport default new Misc();\n","import MagicQuery from '../query/MagicQuery';\nimport { ResultList, Ruling } from '../types';\n\nclass Rulings extends MagicQuery {\n public async byArenaId(id: number): Promise<Ruling[]> {\n return (\n (await this.query<ResultList<Ruling>>(['cards/arena', id, 'rulings']))\n ?.data || []\n );\n }\n\n public async byId(id: string): Promise<Ruling[]> {\n return (\n (await this.query<ResultList<Ruling>>(['cards', id, 'rulings']))?.data ||\n []\n );\n }\n\n public async byMtgoId(id: number): Promise<Ruling[]> {\n return (\n (await this.query<ResultList<Ruling>>(['cards/mtgo', id, 'rulings']))\n ?.data || []\n );\n }\n\n public async byMultiverseId(id: number): Promise<Ruling[]> {\n return (\n (\n await this.query<ResultList<Ruling>>([\n 'cards/multiverse',\n id,\n 'rulings',\n ])\n )?.data || []\n );\n }\n\n public async bySet(\n setCode: string,\n collectorNumber: string | number\n ): Promise<Ruling[]> {\n return (\n (\n await this.query<ResultList<Ruling>>([\n 'cards',\n setCode,\n `${collectorNumber}`,\n 'rulings',\n ])\n )?.data || []\n );\n }\n}\n\nexport default new Rulings();\n","import MagicQuery from '../query/MagicQuery';\nimport { ResultList, Set } from '../types';\n\nclass Sets extends MagicQuery {\n public async all(): Promise<Set[]> {\n const result = await this.query<ResultList<Set>>('sets');\n return result?.data || [];\n }\n\n public async byCode(code: string): Promise<Set | undefined> {\n return await this.query<Set>(['sets', code]);\n }\n\n public async byId(id: string): Promise<Set | undefined> {\n return this.query<Set>(['sets', id]);\n }\n\n public async byTcgPlayerId(id: number): Promise<Set | undefined> {\n return this.query<Set>(['sets/tcgplayer', id]);\n }\n}\n\nexport default new Sets();\n","import MagicQuery from '../query/MagicQuery';\nimport { CardSymbol, ManaCost, ResultList } from '../types';\n\nclass Symbology extends MagicQuery {\n public async all(): Promise<CardSymbol[]> {\n return (await this.query<ResultList<CardSymbol>>('symbology'))?.data || [];\n }\n\n public async parseMana(shorthand: string): Promise<ManaCost | undefined> {\n return await this.query<ManaCost>('symbology/parse-mana', {\n cost: shorthand,\n });\n }\n}\n\nexport default new Symbology();\n","import { CardIdentifier } from '../types';\n\nexport class CardIdentifierBuilder {\n public static byId(id: string): CardIdentifier {\n return { id };\n }\n\n public static byIllustrationId(id: string): CardIdentifier {\n return { illustration_id: id };\n }\n\n public static byMtgoId(id: number): CardIdentifier {\n return { mtgo_id: id };\n }\n\n public static byMultiverseId(id: number): CardIdentifier {\n return { multiverse_id: id };\n }\n\n public static byName(name: string, set?: string): CardIdentifier {\n return { name, set };\n }\n\n public static byOracleId(id: string): CardIdentifier {\n return { oracle_id: id };\n }\n\n public static bySet(\n set: string,\n collectorNumber: string | number\n ): CardIdentifier {\n return { collector_number: `${collectorNumber}`, set };\n }\n}\n","export enum Border {\n black,\n borderless,\n gold,\n silver,\n white,\n}\n","export enum BulkDataTypes {\n oracle_cards,\n unique_artwork,\n default_cards,\n all_cards,\n rulings,\n}\n","enum Colors {\n W,\n B,\n R,\n U,\n G,\n}\n\nexport type Color = keyof typeof Colors;\n","export enum Format {\n standard,\n future,\n historic,\n pioneer,\n modern,\n legacy,\n pauper,\n vintage,\n penny,\n commander,\n brawl,\n duel,\n oldschool,\n}\n","export enum FrameEffect {\n legendary,\n miracle,\n nyxtouched,\n draft,\n devoid,\n tombstone,\n colorshifted,\n inverted,\n sunmoondfc,\n compasslanddfc,\n originpwdfc,\n mooneldrazidfc,\n moonreversemoondfc,\n showcase,\n extendedart,\n}\n","export enum Game {\n paper,\n arena,\n mtgo,\n}\n","export enum Layout {\n normal,\n split,\n flip,\n transform,\n meld,\n leveler,\n saga,\n adventure,\n planar,\n scheme,\n vanguard,\n token,\n double_faced_token,\n emblem,\n augment,\n host,\n art_series,\n double_sided,\n}\n","export enum Legality {\n legal,\n not_legal,\n restricted,\n banned,\n}\n","export enum PromoType {\n tourney,\n prerelease,\n datestamped,\n planeswalkerdeck,\n buyabox,\n judgegift,\n event,\n convention,\n starterdeck,\n instore,\n setpromo,\n fnm,\n openhouse,\n league,\n draftweekend,\n gameday,\n release,\n intropack,\n giftbox,\n duels,\n wizardsplaynetwork,\n premiereshop,\n playerrewards,\n gateway,\n arenaleague,\n}\n","export enum Rarity {\n common,\n uncommon,\n rare,\n mythic,\n}\n","export enum RelatedCardComponent {\n token,\n meld_part,\n meld_result,\n combo_piece,\n}\n","export enum SetType {\n core,\n expansion,\n masters,\n masterpiece,\n from_the_vault,\n spellbook,\n premium_deck,\n duel_deck,\n draft_innovation,\n treasure_chest,\n commander,\n planechase,\n archenemy,\n vanguard,\n funny,\n starter,\n box,\n promo,\n token,\n memorabilia,\n}\n","export enum Sort {\n name,\n set,\n released,\n rarity,\n color,\n usd,\n tix,\n eur,\n cmc,\n power,\n toughness,\n edhrec,\n artist,\n}\n","export enum SortDirection {\n auto,\n asc,\n desc,\n}\n","export enum UniqueStrategy {\n cards,\n art,\n prints,\n}\n"],"names":[],"mappings":"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"}
|