@sigil-sifter/magic 1.0.1 → 1.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/LICENSE +7 -7
- package/README.md +95 -95
- package/package.json +1 -1
- package/src/core/MagicCard.js +254 -250
- package/src/core/helpers.js +6 -6
- package/src/core/index.js +3 -3
- package/src/data/abilityWords.js +66 -66
- package/src/data/colors.js +15 -15
- package/src/data/gameFormats.js +25 -25
- package/src/data/games.js +5 -5
- package/src/data/guilds.js +33 -33
- package/src/data/languages.js +30 -30
- package/src/data/rarities.js +25 -25
- package/src/expressions/ArrayLengthExpression.js +15 -15
- package/src/expressions/ColorExpression.js +40 -40
- package/src/expressions/DevotionExpression.js +56 -56
- package/src/expressions/EvenOddExpression.js +43 -43
- package/src/expressions/ExactStringExpression.js +11 -11
- package/src/expressions/FormatExpression.js +19 -19
- package/src/expressions/GameExpression.js +19 -19
- package/src/expressions/KeywordAbilityExpression.js +33 -33
- package/src/expressions/LanguageExpression.js +34 -34
- package/src/expressions/ManaExpression.js +36 -36
- package/src/expressions/PowTouExpression.js +41 -41
- package/src/expressions/ProducesExpression.js +35 -35
- package/src/expressions/RarityExpression.js +30 -30
- package/src/expressions/has/IndicatorExpression.js +11 -11
- package/src/expressions/has/WatermarkExpression.js +11 -11
- package/src/expressions/is/BoosterExpression.js +11 -11
- package/src/expressions/is/DFCExpression.js +11 -11
- package/src/expressions/is/EtchedExpression.js +11 -11
- package/src/expressions/is/FlipExpression.js +11 -11
- package/src/expressions/is/FoilExpression.js +11 -11
- package/src/expressions/is/FrenchVanillaExpression.js +11 -11
- package/src/expressions/is/FullArtExpression.js +11 -11
- package/src/expressions/is/GlossyExpression.js +11 -11
- package/src/expressions/is/HistoricExpression.js +11 -11
- package/src/expressions/is/HybridExpression.js +11 -11
- package/src/expressions/is/LevelerExpression.js +11 -11
- package/src/expressions/is/MDFCExpression.js +11 -11
- package/src/expressions/is/MeldExpression.js +11 -11
- package/src/expressions/is/ModalExpression.js +11 -11
- package/src/expressions/is/NonFoilExpression.js +11 -11
- package/src/expressions/is/PartyExpression.js +11 -11
- package/src/expressions/is/PermanentExpression.js +11 -11
- package/src/expressions/is/PhyrexianExpression.js +11 -11
- package/src/expressions/is/PromoExpression.js +11 -11
- package/src/expressions/is/ReprintExpression.js +11 -11
- package/src/expressions/is/ReservedExpression.js +11 -11
- package/src/expressions/is/SpellExpression.js +11 -11
- package/src/expressions/is/SplitExpression.js +11 -11
- package/src/expressions/is/SpotlightExpression.js +11 -11
- package/src/expressions/is/TextlessExpression.js +11 -11
- package/src/expressions/is/TransformExpression.js +11 -11
- package/src/expressions/is/UniversesBeyondExpression.js +11 -11
- package/src/expressions/is/VanillaExpression.js +11 -11
- package/src/expressions/is/index.js +59 -59
- package/src/extensions/ColorExtension.js +22 -22
- package/src/extensions/FormatExtension.js +15 -15
- package/src/extensions/GameExtension.js +15 -15
- package/src/extensions/KeywordExtension.js +11 -11
- package/src/extensions/LanguageExtension.js +15 -15
- package/src/extensions/RarityExtension.js +20 -20
- package/src/extensions/SetExtension.js +13 -13
- package/src/index.js +30 -30
- package/src/keywords/AbilityKeyword.js +16 -16
- package/src/keywords/ArtistKeyword.js +11 -11
- package/src/keywords/BannedKeyword.js +21 -21
- package/src/keywords/BorderKeyword.js +21 -21
- package/src/keywords/CardTypeKeyword.js +11 -11
- package/src/keywords/CollectorNumberKeyword.js +16 -16
- package/src/keywords/ColorIdentityKeyword.js +11 -11
- package/src/keywords/ColorKeyword.js +17 -17
- package/src/keywords/DevotionKeyword.js +21 -21
- package/src/keywords/FlavorTextKeyword.js +11 -11
- package/src/keywords/FormatKeyword.js +21 -21
- package/src/keywords/FrameKeyword.js +22 -22
- package/src/keywords/GameKeyword.js +21 -21
- package/src/keywords/HasKeyword.js +13 -13
- package/src/keywords/IsKeyword.js +17 -17
- package/src/keywords/LanguageKeyword.js +16 -16
- package/src/keywords/LoyaltyKeyword.js +16 -16
- package/src/keywords/ManaCostKeyword.js +20 -20
- package/src/keywords/ManaValueKeyword.js +17 -17
- package/src/keywords/NameKeyword.js +11 -11
- package/src/keywords/NotKeyword.js +21 -21
- package/src/keywords/PowerKeyword.js +29 -29
- package/src/keywords/ProducesKeyword.js +16 -16
- package/src/keywords/RarityKeyword.js +16 -16
- package/src/keywords/RestrictedKeyword.js +21 -21
- package/src/keywords/RulesTextKeyword.js +11 -11
- package/src/keywords/SetKeyword.js +21 -21
- package/src/keywords/SetTypeKeyword.js +21 -21
- package/src/keywords/StampKeyword.js +21 -21
- package/src/keywords/TagKeyword.js +11 -0
- package/src/keywords/ToughnessKeyword.js +29 -29
- package/src/keywords/WatermarkKeyword.js +16 -16
- package/src/keywords/index.js +67 -65
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { SearchSyntaxError } from 'sigil-sifter/core';
|
|
2
|
-
import { StringExpression } from 'sigil-sifter/expressions';
|
|
3
|
-
|
|
4
|
-
export default class KeywordAbilityExpression extends StringExpression {
|
|
5
|
-
static parse(sifter, match, str) {
|
|
6
|
-
return new KeywordAbilityExpression(sifter, match, str);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
includes(val) {
|
|
10
|
-
return val.includes(this.value);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
equals(val) {
|
|
14
|
-
throw new SearchSyntaxError(
|
|
15
|
-
'Keyword expressions do not support the equals operator',
|
|
16
|
-
this.remainingStr
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
greaterThan(val) {
|
|
21
|
-
throw new SearchSyntaxError(
|
|
22
|
-
'Keyword expressions do not support the greater than operator',
|
|
23
|
-
this.remainingStr
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
lessThan(val) {
|
|
28
|
-
throw new SearchSyntaxError(
|
|
29
|
-
'Keyword expressions do not support the less than operator',
|
|
30
|
-
this.remainingStr
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
1
|
+
import { SearchSyntaxError } from 'sigil-sifter/core';
|
|
2
|
+
import { StringExpression } from 'sigil-sifter/expressions';
|
|
3
|
+
|
|
4
|
+
export default class KeywordAbilityExpression extends StringExpression {
|
|
5
|
+
static parse(sifter, match, str) {
|
|
6
|
+
return new KeywordAbilityExpression(sifter, match, str);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
includes(val) {
|
|
10
|
+
return val.includes(this.value);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
equals(val) {
|
|
14
|
+
throw new SearchSyntaxError(
|
|
15
|
+
'Keyword expressions do not support the equals operator',
|
|
16
|
+
this.remainingStr
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
greaterThan(val) {
|
|
21
|
+
throw new SearchSyntaxError(
|
|
22
|
+
'Keyword expressions do not support the greater than operator',
|
|
23
|
+
this.remainingStr
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
lessThan(val) {
|
|
28
|
+
throw new SearchSyntaxError(
|
|
29
|
+
'Keyword expressions do not support the less than operator',
|
|
30
|
+
this.remainingStr
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { SearchSyntaxError } from 'sigil-sifter/core';
|
|
2
|
-
import { StringExpression } from 'sigil-sifter/expressions';
|
|
3
|
-
|
|
4
|
-
export default class LanguageExpression extends StringExpression {
|
|
5
|
-
constructor(sifter, match, str) {
|
|
6
|
-
super(sifter, match, str);
|
|
7
|
-
this.value = match[1];
|
|
8
|
-
this.language = sifter.LanguageExtension.resolveLanguage(this.value);
|
|
9
|
-
if (!this.language)
|
|
10
|
-
throw new SearchSyntaxError('Unknown language', this.value);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
includes(val) {
|
|
14
|
-
return this.equals(val);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
equals(val) {
|
|
18
|
-
return val === this.language.acronyms[0];
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
greaterThan(val) {
|
|
22
|
-
throw new SearchSyntaxError(
|
|
23
|
-
'Comparison operators are not supported for language ' +
|
|
24
|
-
'expressions, use the includes operator (\':\') instead.'
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
lessThan(val) {
|
|
29
|
-
throw new SearchSyntaxError(
|
|
30
|
-
'Comparison operators are not supported for language ' +
|
|
31
|
-
'expressions, use the includes operator (\':\') instead.'
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
1
|
+
import { SearchSyntaxError } from 'sigil-sifter/core';
|
|
2
|
+
import { StringExpression } from 'sigil-sifter/expressions';
|
|
3
|
+
|
|
4
|
+
export default class LanguageExpression extends StringExpression {
|
|
5
|
+
constructor(sifter, match, str) {
|
|
6
|
+
super(sifter, match, str);
|
|
7
|
+
this.value = match[1];
|
|
8
|
+
this.language = sifter.LanguageExtension.resolveLanguage(this.value);
|
|
9
|
+
if (!this.language)
|
|
10
|
+
throw new SearchSyntaxError('Unknown language', this.value);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
includes(val) {
|
|
14
|
+
return this.equals(val);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
equals(val) {
|
|
18
|
+
return val === this.language.acronyms[0];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
greaterThan(val) {
|
|
22
|
+
throw new SearchSyntaxError(
|
|
23
|
+
'Comparison operators are not supported for language ' +
|
|
24
|
+
'expressions, use the includes operator (\':\') instead.'
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
lessThan(val) {
|
|
29
|
+
throw new SearchSyntaxError(
|
|
30
|
+
'Comparison operators are not supported for language ' +
|
|
31
|
+
'expressions, use the includes operator (\':\') instead.'
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { StringExpression } from 'sigil-sifter/expressions';
|
|
2
|
-
import {SearchSyntaxError} from 'sigil-sifter/core';
|
|
3
|
-
import { ManaCost } from 'mana-scribe';
|
|
4
|
-
|
|
5
|
-
export default class ManaExpression extends StringExpression {
|
|
6
|
-
static parse(sifter, match, str) {
|
|
7
|
-
return new this(sifter, match, str);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
constructor(sifter, match, str) {
|
|
11
|
-
super(sifter, match, str);
|
|
12
|
-
this.searchManaCost = ManaCost.parse(this.value);
|
|
13
|
-
const unparsedManaCost = this.searchManaCost.remainingStr;
|
|
14
|
-
if (unparsedManaCost.length > 0)
|
|
15
|
-
throw new SearchSyntaxError(
|
|
16
|
-
'Failed to parse mana cost',
|
|
17
|
-
unparsedManaCost
|
|
18
|
-
);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
includes(val) {
|
|
22
|
-
return this.greaterThan(val) || this.equals(val);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
equals(val) {
|
|
26
|
-
return val.equals(this.searchManaCost);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
greaterThan(val) {
|
|
30
|
-
return val.greaterThan(this.searchManaCost);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
lessThan(val) {
|
|
34
|
-
return val.lessThan(this.searchManaCost);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
1
|
+
import { StringExpression } from 'sigil-sifter/expressions';
|
|
2
|
+
import {SearchSyntaxError} from 'sigil-sifter/core';
|
|
3
|
+
import { ManaCost } from 'mana-scribe';
|
|
4
|
+
|
|
5
|
+
export default class ManaExpression extends StringExpression {
|
|
6
|
+
static parse(sifter, match, str) {
|
|
7
|
+
return new this(sifter, match, str);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
constructor(sifter, match, str) {
|
|
11
|
+
super(sifter, match, str);
|
|
12
|
+
this.searchManaCost = ManaCost.parse(this.value);
|
|
13
|
+
const unparsedManaCost = this.searchManaCost.remainingStr;
|
|
14
|
+
if (unparsedManaCost.length > 0)
|
|
15
|
+
throw new SearchSyntaxError(
|
|
16
|
+
'Failed to parse mana cost',
|
|
17
|
+
unparsedManaCost
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
includes(val) {
|
|
22
|
+
return this.greaterThan(val) || this.equals(val);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
equals(val) {
|
|
26
|
+
return val.equals(this.searchManaCost);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
greaterThan(val) {
|
|
30
|
+
return val.greaterThan(this.searchManaCost);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
lessThan(val) {
|
|
34
|
+
return val.lessThan(this.searchManaCost);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import { SearchSyntaxError } from 'sigil-sifter/core';
|
|
2
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
3
|
-
|
|
4
|
-
export default class PowTouExpression extends Expression {
|
|
5
|
-
static match(sifter, str) {
|
|
6
|
-
return str.match(/^(pow(er)?|tou(ghness)?)/i);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
static parse(sifter, match, str) {
|
|
10
|
-
return new PowTouExpression(sifter, match, str);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
constructor(sifter, match, str) {
|
|
14
|
-
super(sifter, match, str);
|
|
15
|
-
const key = match[1].toLowerCase();
|
|
16
|
-
this.powerMode = key === 'pow' || key === 'power';
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
includes() {
|
|
20
|
-
throw new SearchSyntaxError(
|
|
21
|
-
'Includes operator is not supported for pow/tou expressions, ' +
|
|
22
|
-
'use a comparison or equality operator instead.'
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
equals({ power, toughness }) {
|
|
27
|
-
return power === toughness;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
greaterThan({ power, toughness }) {
|
|
31
|
-
return this.powerMode
|
|
32
|
-
? power < toughness
|
|
33
|
-
: toughness < power;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
lessThan({ power, toughness }) {
|
|
37
|
-
return this.powerMode
|
|
38
|
-
? power > toughness
|
|
39
|
-
: toughness > power;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
1
|
+
import { SearchSyntaxError } from 'sigil-sifter/core';
|
|
2
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
3
|
+
|
|
4
|
+
export default class PowTouExpression extends Expression {
|
|
5
|
+
static match(sifter, str) {
|
|
6
|
+
return str.match(/^(pow(er)?|tou(ghness)?)/i);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
static parse(sifter, match, str) {
|
|
10
|
+
return new PowTouExpression(sifter, match, str);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
constructor(sifter, match, str) {
|
|
14
|
+
super(sifter, match, str);
|
|
15
|
+
const key = match[1].toLowerCase();
|
|
16
|
+
this.powerMode = key === 'pow' || key === 'power';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
includes() {
|
|
20
|
+
throw new SearchSyntaxError(
|
|
21
|
+
'Includes operator is not supported for pow/tou expressions, ' +
|
|
22
|
+
'use a comparison or equality operator instead.'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
equals({ power, toughness }) {
|
|
27
|
+
return power === toughness;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
greaterThan({ power, toughness }) {
|
|
31
|
+
return this.powerMode
|
|
32
|
+
? power < toughness
|
|
33
|
+
: toughness < power;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
lessThan({ power, toughness }) {
|
|
37
|
+
return this.powerMode
|
|
38
|
+
? power > toughness
|
|
39
|
+
: toughness > power;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class ProducesExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(sifter.ColorExtension.colorNamesExpr)
|
|
6
|
-
|| str.match(/^([wubrgc]+)/i);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
static parse(sifter, match, str) {
|
|
10
|
-
return new this(sifter, match, str);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
constructor(sifter, match, str) {
|
|
14
|
-
super(sifter, match, str);
|
|
15
|
-
this.value = match[0];
|
|
16
|
-
this.colors = sifter.ColorExtension.resolveColors(this.value);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
includes(val) {
|
|
20
|
-
return this.colors.every(c => val.includes(c));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
equals(val) {
|
|
24
|
-
return val.length === this.colors.length && this.includes(val);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
greaterThan(val) {
|
|
28
|
-
return val.length > this.colors.length && this.includes(val);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
lessThan(val) {
|
|
32
|
-
return val.length < this.colors.length
|
|
33
|
-
&& val.every(c => this.colors.includes(c));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class ProducesExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(sifter.ColorExtension.colorNamesExpr)
|
|
6
|
+
|| str.match(/^([wubrgc]+)/i);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
static parse(sifter, match, str) {
|
|
10
|
+
return new this(sifter, match, str);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
constructor(sifter, match, str) {
|
|
14
|
+
super(sifter, match, str);
|
|
15
|
+
this.value = match[0];
|
|
16
|
+
this.colors = sifter.ColorExtension.resolveColors(this.value);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
includes(val) {
|
|
20
|
+
return this.colors.every(c => val.includes(c));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
equals(val) {
|
|
24
|
+
return val.length === this.colors.length && this.includes(val);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
greaterThan(val) {
|
|
28
|
+
return val.length > this.colors.length && this.includes(val);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
lessThan(val) {
|
|
32
|
+
return val.length < this.colors.length
|
|
33
|
+
&& val.every(c => this.colors.includes(c));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { StringExpression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class RarityExpression extends StringExpression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(sifter.RarityExtension.rarityExpr);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
constructor(sifter, match, str) {
|
|
9
|
-
super(sifter, match, str);
|
|
10
|
-
this.rarity = sifter.RarityExtension.resolveRarity(this.value);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
includes(val) {
|
|
14
|
-
return this.equals(val);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
equals(val) {
|
|
18
|
-
return this.rarity.name.toLowerCase() === val;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
greaterThan(val) {
|
|
22
|
-
const valGroup = this.sifter.RarityExtension.resolveRarity(val);
|
|
23
|
-
return this.rarity.index < valGroup.index;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
lessThan(val) {
|
|
27
|
-
const valGroup = this.sifter.RarityExtension.resolveRarity(val);
|
|
28
|
-
return this.rarity.index > valGroup.index;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
1
|
+
import { StringExpression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class RarityExpression extends StringExpression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(sifter.RarityExtension.rarityExpr);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
constructor(sifter, match, str) {
|
|
9
|
+
super(sifter, match, str);
|
|
10
|
+
this.rarity = sifter.RarityExtension.resolveRarity(this.value);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
includes(val) {
|
|
14
|
+
return this.equals(val);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
equals(val) {
|
|
18
|
+
return this.rarity.name.toLowerCase() === val;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
greaterThan(val) {
|
|
22
|
+
const valGroup = this.sifter.RarityExtension.resolveRarity(val);
|
|
23
|
+
return this.rarity.index < valGroup.index;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
lessThan(val) {
|
|
27
|
+
const valGroup = this.sifter.RarityExtension.resolveRarity(val);
|
|
28
|
+
return this.rarity.index > valGroup.index;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class IndicatorExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^indicator/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.hasIndicator;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class IndicatorExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^indicator/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.hasIndicator;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class WatermarkExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^watermark/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.hasWatermark;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class WatermarkExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^watermark/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.hasWatermark;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class BoosterExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^booster/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.isBooster;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class BoosterExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^booster/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.isBooster;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class DFCExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^dfc/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.isDFC;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class DFCExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^dfc/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.isDFC;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class EtchedExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^etched/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.isEtched;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class EtchedExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^etched/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.isEtched;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class FlipExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^flip/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.isFlip;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class FlipExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^flip/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.isFlip;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class FoilExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^foil/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.isFoil;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class FoilExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^foil/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.isFoil;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class FrenchVanillaExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^frenchvanilla/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.isFrenchVanilla;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class FrenchVanillaExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^frenchvanilla/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.isFrenchVanilla;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class FullArtExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^full(art)?/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.isFullArt;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class FullArtExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^full(art)?/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.isFullArt;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
-
|
|
3
|
-
export default class GlossyExpression extends Expression {
|
|
4
|
-
static match(sifter, str) {
|
|
5
|
-
return str.match(/^glossy/i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
includes(card) {
|
|
9
|
-
return card.isGlossy;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { Expression } from 'sigil-sifter/expressions';
|
|
2
|
+
|
|
3
|
+
export default class GlossyExpression extends Expression {
|
|
4
|
+
static match(sifter, str) {
|
|
5
|
+
return str.match(/^glossy/i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
includes(card) {
|
|
9
|
+
return card.isGlossy;
|
|
10
|
+
}
|
|
11
|
+
}
|