@carddb/client 0.4.2 → 0.4.6
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/dist/index.cjs +303 -140
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +156 -61
- package/dist/index.d.ts +156 -61
- package/dist/index.js +303 -141
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -920,14 +920,27 @@ var DecksResource = class extends BaseResource {
|
|
|
920
920
|
/**
|
|
921
921
|
* Fetch a deck by UUID using the ownership-aware `deck` API.
|
|
922
922
|
*/
|
|
923
|
-
async get(id, options
|
|
924
|
-
const
|
|
923
|
+
async get(id, options) {
|
|
924
|
+
const variables = QueryBuilder.deckReadVariables(id, options.readState, options.version);
|
|
925
|
+
const key = this.cacheKey("decks", "get", variables);
|
|
925
926
|
return this.withCache(key, "decks", options, async () => {
|
|
926
927
|
const { query } = QueryBuilder.deckById();
|
|
927
|
-
const result = await this.connection.execute(query,
|
|
928
|
+
const result = await this.connection.execute(query, variables);
|
|
928
929
|
return result["deck"] ?? null;
|
|
929
930
|
});
|
|
930
931
|
}
|
|
932
|
+
/**
|
|
933
|
+
* Fetch mutable draft data for a deck by UUID.
|
|
934
|
+
*/
|
|
935
|
+
async getDraft(id, options = {}) {
|
|
936
|
+
return this.get(id, { ...options, readState: "DRAFT" });
|
|
937
|
+
}
|
|
938
|
+
/**
|
|
939
|
+
* Fetch immutable published data for a deck by UUID.
|
|
940
|
+
*/
|
|
941
|
+
async getPublished(id, options = {}) {
|
|
942
|
+
return this.get(id, { ...options, readState: "PUBLISHED", version: options.version });
|
|
943
|
+
}
|
|
931
944
|
/**
|
|
932
945
|
* Fetch one deck owned by the current account or API application.
|
|
933
946
|
*/
|
|
@@ -975,14 +988,35 @@ var DecksResource = class extends BaseResource {
|
|
|
975
988
|
/**
|
|
976
989
|
* Fetch by external reference using the ownership-aware `deckByExternalRef` API.
|
|
977
990
|
*/
|
|
978
|
-
async getByExternalRef(externalRef, options
|
|
979
|
-
const
|
|
991
|
+
async getByExternalRef(externalRef, options) {
|
|
992
|
+
const variables = QueryBuilder.deckExternalRefReadVariables(
|
|
993
|
+
externalRef,
|
|
994
|
+
options.readState,
|
|
995
|
+
options.version
|
|
996
|
+
);
|
|
997
|
+
const key = this.cacheKey("decks", "getByExternalRef", variables);
|
|
980
998
|
return this.withCache(key, "decks", options, async () => {
|
|
981
999
|
const { query } = QueryBuilder.deckByExternalRef();
|
|
982
|
-
const result = await this.connection.execute(query,
|
|
1000
|
+
const result = await this.connection.execute(query, variables);
|
|
983
1001
|
return result["deckByExternalRef"] ?? null;
|
|
984
1002
|
});
|
|
985
1003
|
}
|
|
1004
|
+
/**
|
|
1005
|
+
* Fetch mutable draft data by API-application external reference.
|
|
1006
|
+
*/
|
|
1007
|
+
async getDraftByExternalRef(externalRef, options = {}) {
|
|
1008
|
+
return this.getByExternalRef(externalRef, { ...options, readState: "DRAFT" });
|
|
1009
|
+
}
|
|
1010
|
+
/**
|
|
1011
|
+
* Fetch immutable published data by API-application external reference.
|
|
1012
|
+
*/
|
|
1013
|
+
async getPublishedByExternalRef(externalRef, options = {}) {
|
|
1014
|
+
return this.getByExternalRef(externalRef, {
|
|
1015
|
+
...options,
|
|
1016
|
+
readState: "PUBLISHED",
|
|
1017
|
+
version: options.version
|
|
1018
|
+
});
|
|
1019
|
+
}
|
|
986
1020
|
/**
|
|
987
1021
|
* List decks owned by the current account or API application.
|
|
988
1022
|
*/
|
|
@@ -1085,39 +1119,6 @@ var DecksResource = class extends BaseResource {
|
|
|
1085
1119
|
nextPageLoader: async (cursor) => this.listVersions(deckId, { ...options, after: cursor })
|
|
1086
1120
|
});
|
|
1087
1121
|
}
|
|
1088
|
-
/**
|
|
1089
|
-
* Fetch current draft data using a revocable preview token.
|
|
1090
|
-
*/
|
|
1091
|
-
async preview(token, options = {}) {
|
|
1092
|
-
const key = this.cacheKey("decks", "preview", { token });
|
|
1093
|
-
return this.withCache(key, "decks", options, async () => {
|
|
1094
|
-
const { query } = QueryBuilder.deckPreview();
|
|
1095
|
-
const result = await this.connection.execute(query, { token });
|
|
1096
|
-
return result["deckPreview"] ?? null;
|
|
1097
|
-
});
|
|
1098
|
-
}
|
|
1099
|
-
/**
|
|
1100
|
-
* Fetch published embed data using a revocable embed token.
|
|
1101
|
-
*/
|
|
1102
|
-
async embed(token, options = {}) {
|
|
1103
|
-
const key = this.cacheKey("decks", "embed", { token });
|
|
1104
|
-
return this.withCache(key, "decks", options, async () => {
|
|
1105
|
-
const { query } = QueryBuilder.deckEmbed();
|
|
1106
|
-
const result = await this.connection.execute(query, { token });
|
|
1107
|
-
return result["deckEmbed"] ?? null;
|
|
1108
|
-
});
|
|
1109
|
-
}
|
|
1110
|
-
/**
|
|
1111
|
-
* Fetch token-authorized published data using an exchanged access token.
|
|
1112
|
-
*/
|
|
1113
|
-
async access(token, options = {}) {
|
|
1114
|
-
const key = this.cacheKey("decks", "access", { token });
|
|
1115
|
-
return this.withCache(key, "decks", options, async () => {
|
|
1116
|
-
const { query } = QueryBuilder.deckAccess();
|
|
1117
|
-
const result = await this.connection.execute(query, { token });
|
|
1118
|
-
return result["deckAccess"] ?? null;
|
|
1119
|
-
});
|
|
1120
|
-
}
|
|
1121
1122
|
/**
|
|
1122
1123
|
* Compare the current draft against the latest published version.
|
|
1123
1124
|
*/
|
|
@@ -1205,39 +1206,6 @@ var DecksResource = class extends BaseResource {
|
|
|
1205
1206
|
return result["deckCollaborators"];
|
|
1206
1207
|
});
|
|
1207
1208
|
}
|
|
1208
|
-
/**
|
|
1209
|
-
* List draft preview tokens for a deck.
|
|
1210
|
-
*/
|
|
1211
|
-
async listPreviewTokens(deckId, options = {}) {
|
|
1212
|
-
const key = this.cacheKey("decks", "listPreviewTokens", { deckId });
|
|
1213
|
-
return this.withCache(key, "decks", options, async () => {
|
|
1214
|
-
const { query } = QueryBuilder.deckPreviewTokens();
|
|
1215
|
-
const result = await this.connection.execute(query, { deckId });
|
|
1216
|
-
return result["deckPreviewTokens"];
|
|
1217
|
-
});
|
|
1218
|
-
}
|
|
1219
|
-
/**
|
|
1220
|
-
* List published embed tokens for a deck.
|
|
1221
|
-
*/
|
|
1222
|
-
async listEmbedTokens(deckId, options = {}) {
|
|
1223
|
-
const key = this.cacheKey("decks", "listEmbedTokens", { deckId });
|
|
1224
|
-
return this.withCache(key, "decks", options, async () => {
|
|
1225
|
-
const { query } = QueryBuilder.deckEmbedTokens();
|
|
1226
|
-
const result = await this.connection.execute(query, { deckId });
|
|
1227
|
-
return result["deckEmbedTokens"];
|
|
1228
|
-
});
|
|
1229
|
-
}
|
|
1230
|
-
/**
|
|
1231
|
-
* List trusted access token issuers for a deck.
|
|
1232
|
-
*/
|
|
1233
|
-
async listAccessTokenIssuers(deckId, options = {}) {
|
|
1234
|
-
const key = this.cacheKey("decks", "listAccessTokenIssuers", { deckId });
|
|
1235
|
-
return this.withCache(key, "decks", options, async () => {
|
|
1236
|
-
const { query } = QueryBuilder.deckAccessTokenIssuers();
|
|
1237
|
-
const result = await this.connection.execute(query, { deckId });
|
|
1238
|
-
return result["deckAccessTokenIssuers"];
|
|
1239
|
-
});
|
|
1240
|
-
}
|
|
1241
1209
|
/**
|
|
1242
1210
|
* List API applications with explicit access to one owned deck.
|
|
1243
1211
|
*/
|
|
@@ -1522,63 +1490,32 @@ var DecksResource = class extends BaseResource {
|
|
|
1522
1490
|
return Boolean(result["deckCollaboratorRemove"]);
|
|
1523
1491
|
}
|
|
1524
1492
|
/**
|
|
1525
|
-
* Create a
|
|
1526
|
-
*/
|
|
1527
|
-
async createPreviewToken(input) {
|
|
1528
|
-
const { query } = QueryBuilder.createDeckPreviewToken();
|
|
1529
|
-
const variables = QueryBuilder.deckPreviewTokenCreateVariables(input);
|
|
1530
|
-
const result = await this.connection.execute(query, variables);
|
|
1531
|
-
return result["deckPreviewTokenCreate"];
|
|
1532
|
-
}
|
|
1533
|
-
/**
|
|
1534
|
-
* Revoke a draft preview token.
|
|
1535
|
-
*/
|
|
1536
|
-
async revokePreviewToken(id) {
|
|
1537
|
-
const { query } = QueryBuilder.revokeDeckPreviewToken();
|
|
1538
|
-
const result = await this.connection.execute(query, { id });
|
|
1539
|
-
return Boolean(result["deckPreviewTokenRevoke"]);
|
|
1540
|
-
}
|
|
1541
|
-
/**
|
|
1542
|
-
* Create a revocable published embed token.
|
|
1493
|
+
* Create a unified deck token issuer for the current secret-key API application.
|
|
1543
1494
|
*/
|
|
1544
|
-
async
|
|
1545
|
-
|
|
1546
|
-
const
|
|
1495
|
+
async createTokenIssuer(input) {
|
|
1496
|
+
this.config.requireSecretCredential("decks.createTokenIssuer");
|
|
1497
|
+
const { query } = QueryBuilder.createDeckTokenIssuer();
|
|
1498
|
+
const variables = QueryBuilder.deckTokenIssuerCreateVariables(input);
|
|
1547
1499
|
const result = await this.connection.execute(query, variables);
|
|
1548
|
-
return result["
|
|
1500
|
+
return result["deckTokenIssuerCreate"];
|
|
1549
1501
|
}
|
|
1550
1502
|
/**
|
|
1551
|
-
* Revoke a
|
|
1503
|
+
* Revoke a unified deck token issuer.
|
|
1552
1504
|
*/
|
|
1553
|
-
async
|
|
1554
|
-
|
|
1505
|
+
async revokeTokenIssuer(id) {
|
|
1506
|
+
this.config.requireSecretCredential("decks.revokeTokenIssuer");
|
|
1507
|
+
const { query } = QueryBuilder.revokeDeckTokenIssuer();
|
|
1555
1508
|
const result = await this.connection.execute(query, { id });
|
|
1556
|
-
return Boolean(result["
|
|
1509
|
+
return Boolean(result["deckTokenIssuerRevoke"]);
|
|
1557
1510
|
}
|
|
1558
1511
|
/**
|
|
1559
|
-
*
|
|
1512
|
+
* Revoke only the direct signing key for a unified deck token issuer.
|
|
1560
1513
|
*/
|
|
1561
|
-
async
|
|
1562
|
-
|
|
1563
|
-
const
|
|
1564
|
-
const result = await this.connection.execute(query, variables);
|
|
1565
|
-
return result["deckAccessTokenIssuerCreate"];
|
|
1566
|
-
}
|
|
1567
|
-
/**
|
|
1568
|
-
* Revoke a trusted deck access token issuer.
|
|
1569
|
-
*/
|
|
1570
|
-
async revokeAccessTokenIssuer(id) {
|
|
1571
|
-
const { query } = QueryBuilder.revokeDeckAccessTokenIssuer();
|
|
1572
|
-
const result = await this.connection.execute(query, { id });
|
|
1573
|
-
return Boolean(result["deckAccessTokenIssuerRevoke"]);
|
|
1574
|
-
}
|
|
1575
|
-
/**
|
|
1576
|
-
* Revoke only the direct signing key for a trusted deck access token issuer.
|
|
1577
|
-
*/
|
|
1578
|
-
async revokeAccessTokenIssuerSigningKey(id) {
|
|
1579
|
-
const { query } = QueryBuilder.revokeDeckAccessTokenIssuerSigningKey();
|
|
1514
|
+
async revokeTokenIssuerSigningKey(id) {
|
|
1515
|
+
this.config.requireSecretCredential("decks.revokeTokenIssuerSigningKey");
|
|
1516
|
+
const { query } = QueryBuilder.revokeDeckTokenIssuerSigningKey();
|
|
1580
1517
|
const result = await this.connection.execute(query, { id });
|
|
1581
|
-
return result["
|
|
1518
|
+
return result["deckTokenIssuerSigningKeyRevoke"];
|
|
1582
1519
|
}
|
|
1583
1520
|
/**
|
|
1584
1521
|
* Grant or update one OAuth app's selected-deck access.
|
|
@@ -1599,33 +1536,23 @@ var DecksResource = class extends BaseResource {
|
|
|
1599
1536
|
return Boolean(result["deckApiApplicationAccessRevoke"]);
|
|
1600
1537
|
}
|
|
1601
1538
|
/**
|
|
1602
|
-
* Exchange the current
|
|
1603
|
-
*/
|
|
1604
|
-
async exchangeAccessToken(input) {
|
|
1605
|
-
this.config.requireSecretCredential("decks.exchangeAccessToken");
|
|
1606
|
-
const { query } = QueryBuilder.exchangeDeckAccessToken();
|
|
1607
|
-
const variables = QueryBuilder.deckAccessTokenExchangeVariables(input);
|
|
1608
|
-
const result = await this.connection.execute(query, variables);
|
|
1609
|
-
return result["deckAccessTokenExchange"];
|
|
1610
|
-
}
|
|
1611
|
-
/**
|
|
1612
|
-
* Exchange the current secret API application credential for an app-owned deck session token.
|
|
1539
|
+
* Exchange the current secret API application credential for a unified deck token.
|
|
1613
1540
|
*/
|
|
1614
|
-
async
|
|
1615
|
-
this.config.requireSecretCredential("decks.
|
|
1616
|
-
const { query } = QueryBuilder.
|
|
1617
|
-
const variables = QueryBuilder.
|
|
1541
|
+
async exchangeToken(input) {
|
|
1542
|
+
this.config.requireSecretCredential("decks.exchangeToken");
|
|
1543
|
+
const { query } = QueryBuilder.exchangeDeckToken();
|
|
1544
|
+
const variables = QueryBuilder.deckTokenExchangeVariables(input);
|
|
1618
1545
|
const result = await this.connection.execute(query, variables);
|
|
1619
|
-
return result["
|
|
1546
|
+
return result["deckTokenExchange"];
|
|
1620
1547
|
}
|
|
1621
1548
|
/**
|
|
1622
|
-
* Revoke an exchanged deck
|
|
1549
|
+
* Revoke an exchanged unified deck token.
|
|
1623
1550
|
*/
|
|
1624
|
-
async
|
|
1625
|
-
this.config.requireSecretCredential("decks.
|
|
1626
|
-
const { query } = QueryBuilder.
|
|
1551
|
+
async revokeToken(id) {
|
|
1552
|
+
this.config.requireSecretCredential("decks.revokeToken");
|
|
1553
|
+
const { query } = QueryBuilder.revokeDeckToken();
|
|
1627
1554
|
const result = await this.connection.execute(query, { id });
|
|
1628
|
-
return Boolean(result["
|
|
1555
|
+
return Boolean(result["deckTokenRevoke"]);
|
|
1629
1556
|
}
|
|
1630
1557
|
/**
|
|
1631
1558
|
* Hydrate third-party-owned deck entries without storing them in CardDB.
|
|
@@ -2076,6 +2003,238 @@ var RulesResource = class extends BaseResource {
|
|
|
2076
2003
|
});
|
|
2077
2004
|
}
|
|
2078
2005
|
};
|
|
2006
|
+
var RulesetsResource = class extends BaseResource {
|
|
2007
|
+
constructor(connection, config) {
|
|
2008
|
+
super(connection, config);
|
|
2009
|
+
}
|
|
2010
|
+
/**
|
|
2011
|
+
* List first-class rulesets for a game.
|
|
2012
|
+
*/
|
|
2013
|
+
async list(gameId, options = {}) {
|
|
2014
|
+
const { query, variables } = QueryBuilder.rulesets({
|
|
2015
|
+
gameId,
|
|
2016
|
+
includeArchived: options.includeArchived,
|
|
2017
|
+
first: options.first,
|
|
2018
|
+
after: options.after
|
|
2019
|
+
});
|
|
2020
|
+
const key = this.cacheKey("rulesets", "list", variables);
|
|
2021
|
+
const data = await this.withCache(key, "rulesets", options, async () => {
|
|
2022
|
+
const result = await this.connection.execute(query, variables);
|
|
2023
|
+
return result["rulesets"];
|
|
2024
|
+
});
|
|
2025
|
+
return new Collection(data, {
|
|
2026
|
+
nextPageLoader: async (cursor) => this.list(gameId, { ...options, after: cursor })
|
|
2027
|
+
});
|
|
2028
|
+
}
|
|
2029
|
+
/**
|
|
2030
|
+
* List active public rulesets for a public game.
|
|
2031
|
+
*/
|
|
2032
|
+
async listPublic(gameId, options = {}) {
|
|
2033
|
+
const { query, variables } = QueryBuilder.publicRulesets({
|
|
2034
|
+
gameId,
|
|
2035
|
+
first: options.first,
|
|
2036
|
+
after: options.after
|
|
2037
|
+
});
|
|
2038
|
+
const key = this.cacheKey("rulesets", "listPublic", variables);
|
|
2039
|
+
const data = await this.withCache(key, "rulesets", options, async () => {
|
|
2040
|
+
const result = await this.connection.execute(query, variables);
|
|
2041
|
+
return result["publicRulesets"];
|
|
2042
|
+
});
|
|
2043
|
+
return new Collection(data, {
|
|
2044
|
+
nextPageLoader: async (cursor) => this.listPublic(gameId, { ...options, after: cursor })
|
|
2045
|
+
});
|
|
2046
|
+
}
|
|
2047
|
+
/**
|
|
2048
|
+
* Get one ruleset by UUID.
|
|
2049
|
+
*/
|
|
2050
|
+
async get(id, options = {}) {
|
|
2051
|
+
const variables = { id };
|
|
2052
|
+
const key = this.cacheKey("rulesets", "get", variables);
|
|
2053
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2054
|
+
const { query, variables: variables2 } = QueryBuilder.ruleset({ id });
|
|
2055
|
+
const result = await this.connection.execute(query, variables2);
|
|
2056
|
+
return result["ruleset"] ?? null;
|
|
2057
|
+
});
|
|
2058
|
+
}
|
|
2059
|
+
/**
|
|
2060
|
+
* Get one ruleset by game ID and stable key.
|
|
2061
|
+
*/
|
|
2062
|
+
async getByKey(options) {
|
|
2063
|
+
const variables = { gameId: options.gameId, key: options.key };
|
|
2064
|
+
const cacheKey2 = this.cacheKey("rulesets", "getByKey", variables);
|
|
2065
|
+
return this.withCache(cacheKey2, "rulesets", options, async () => {
|
|
2066
|
+
const { query, variables: variables2 } = QueryBuilder.ruleset({
|
|
2067
|
+
gameId: options.gameId,
|
|
2068
|
+
key: options.key
|
|
2069
|
+
});
|
|
2070
|
+
const result = await this.connection.execute(query, variables2);
|
|
2071
|
+
return result["ruleset"] ?? null;
|
|
2072
|
+
});
|
|
2073
|
+
}
|
|
2074
|
+
/**
|
|
2075
|
+
* List immutable versions for a ruleset.
|
|
2076
|
+
*/
|
|
2077
|
+
async versions(rulesetId, options = {}) {
|
|
2078
|
+
const { query, variables } = QueryBuilder.rulesetVersions({
|
|
2079
|
+
rulesetId,
|
|
2080
|
+
status: options.status,
|
|
2081
|
+
first: options.first,
|
|
2082
|
+
after: options.after
|
|
2083
|
+
});
|
|
2084
|
+
const key = this.cacheKey("rulesets", "versions", variables);
|
|
2085
|
+
const data = await this.withCache(key, "rulesets", options, async () => {
|
|
2086
|
+
const result = await this.connection.execute(query, variables);
|
|
2087
|
+
return result["rulesetVersions"];
|
|
2088
|
+
});
|
|
2089
|
+
return new Collection(data, {
|
|
2090
|
+
nextPageLoader: async (cursor) => this.versions(rulesetId, { ...options, after: cursor })
|
|
2091
|
+
});
|
|
2092
|
+
}
|
|
2093
|
+
/**
|
|
2094
|
+
* Get one immutable ruleset version by UUID.
|
|
2095
|
+
*/
|
|
2096
|
+
async getVersion(id, options = {}) {
|
|
2097
|
+
const key = this.cacheKey("rulesets", "getVersion", { id });
|
|
2098
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2099
|
+
const { query } = QueryBuilder.rulesetVersion();
|
|
2100
|
+
const result = await this.connection.execute(query, { id });
|
|
2101
|
+
return result["rulesetVersion"] ?? null;
|
|
2102
|
+
});
|
|
2103
|
+
}
|
|
2104
|
+
/**
|
|
2105
|
+
* Get the canonical active rules JSON for a ruleset.
|
|
2106
|
+
*/
|
|
2107
|
+
async validationRules(gameId, rulesetKey, options = {}) {
|
|
2108
|
+
const variables = QueryBuilder.rulesetValidationRulesVariables(
|
|
2109
|
+
gameId,
|
|
2110
|
+
rulesetKey,
|
|
2111
|
+
options.rulesetVersionId
|
|
2112
|
+
);
|
|
2113
|
+
const key = this.cacheKey("rulesets", "validationRules", variables);
|
|
2114
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2115
|
+
const { query } = QueryBuilder.rulesetValidationRules();
|
|
2116
|
+
const result = await this.connection.execute(query, variables);
|
|
2117
|
+
return result["rulesetValidationRules"] ?? null;
|
|
2118
|
+
});
|
|
2119
|
+
}
|
|
2120
|
+
/**
|
|
2121
|
+
* Get typed validation rules, including parsed deck sections.
|
|
2122
|
+
*/
|
|
2123
|
+
async deckValidationRules(gameId, rulesetKey, options = {}) {
|
|
2124
|
+
const variables = QueryBuilder.rulesetValidationRulesVariables(
|
|
2125
|
+
gameId,
|
|
2126
|
+
rulesetKey,
|
|
2127
|
+
options.rulesetVersionId
|
|
2128
|
+
);
|
|
2129
|
+
const key = this.cacheKey("rulesets", "deckValidationRules", variables);
|
|
2130
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2131
|
+
const { query } = QueryBuilder.deckValidationRules();
|
|
2132
|
+
const result = await this.connection.execute(query, variables);
|
|
2133
|
+
return result["deckValidationRules"] ?? null;
|
|
2134
|
+
});
|
|
2135
|
+
}
|
|
2136
|
+
/**
|
|
2137
|
+
* Preview compiling a legacy formats dataset record into a draft ruleset version.
|
|
2138
|
+
*/
|
|
2139
|
+
async previewImport(rulesetId, input) {
|
|
2140
|
+
const { query } = QueryBuilder.rulesetVersionDraftImportPreview();
|
|
2141
|
+
const variables = QueryBuilder.rulesetVersionDraftImportPreviewVariables(rulesetId, input);
|
|
2142
|
+
const result = await this.connection.execute(query, variables);
|
|
2143
|
+
return result["rulesetVersionDraftImportPreview"];
|
|
2144
|
+
}
|
|
2145
|
+
/**
|
|
2146
|
+
* Preview validation impact for decks that use a ruleset version's parent ruleset.
|
|
2147
|
+
*/
|
|
2148
|
+
async validationImpact(rulesetVersionId, options = {}) {
|
|
2149
|
+
const { query, variables } = QueryBuilder.rulesetValidationImpact({
|
|
2150
|
+
rulesetVersionId,
|
|
2151
|
+
first: options.first
|
|
2152
|
+
});
|
|
2153
|
+
const key = this.cacheKey("rulesets", "validationImpact", variables);
|
|
2154
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2155
|
+
const result = await this.connection.execute(query, variables);
|
|
2156
|
+
return result["rulesetValidationImpact"];
|
|
2157
|
+
});
|
|
2158
|
+
}
|
|
2159
|
+
/**
|
|
2160
|
+
* Create a first-class ruleset. Requires a server-side secret credential.
|
|
2161
|
+
*/
|
|
2162
|
+
async create(input) {
|
|
2163
|
+
this.config.requireSecretCredential("rulesets.create");
|
|
2164
|
+
const { query } = QueryBuilder.createRuleset();
|
|
2165
|
+
const result = await this.connection.execute(query, QueryBuilder.rulesetCreateVariables(input));
|
|
2166
|
+
return result["rulesetCreate"];
|
|
2167
|
+
}
|
|
2168
|
+
/**
|
|
2169
|
+
* Update editable ruleset metadata. Requires a server-side secret credential.
|
|
2170
|
+
*/
|
|
2171
|
+
async update(id, input) {
|
|
2172
|
+
this.config.requireSecretCredential("rulesets.update");
|
|
2173
|
+
const { query } = QueryBuilder.updateRuleset();
|
|
2174
|
+
const result = await this.connection.execute(
|
|
2175
|
+
query,
|
|
2176
|
+
QueryBuilder.rulesetUpdateVariables(id, input)
|
|
2177
|
+
);
|
|
2178
|
+
return result["rulesetUpdate"];
|
|
2179
|
+
}
|
|
2180
|
+
/**
|
|
2181
|
+
* Create a draft ruleset version from an explicit canonical rules payload.
|
|
2182
|
+
*/
|
|
2183
|
+
async createDraft(rulesetId, input) {
|
|
2184
|
+
this.config.requireSecretCredential("rulesets.createDraft");
|
|
2185
|
+
const { query } = QueryBuilder.createRulesetVersionDraft();
|
|
2186
|
+
const result = await this.connection.execute(
|
|
2187
|
+
query,
|
|
2188
|
+
QueryBuilder.rulesetVersionDraftCreateVariables(rulesetId, input)
|
|
2189
|
+
);
|
|
2190
|
+
return result["rulesetVersionDraftCreate"];
|
|
2191
|
+
}
|
|
2192
|
+
/**
|
|
2193
|
+
* Create a draft by compiling a legacy formats dataset record.
|
|
2194
|
+
*/
|
|
2195
|
+
async importDraftFromDatasetRecord(rulesetId, input) {
|
|
2196
|
+
this.config.requireSecretCredential("rulesets.importDraftFromDatasetRecord");
|
|
2197
|
+
const { query } = QueryBuilder.importRulesetVersionDraftFromDatasetRecord();
|
|
2198
|
+
const result = await this.connection.execute(
|
|
2199
|
+
query,
|
|
2200
|
+
QueryBuilder.rulesetVersionDraftImportFromDatasetRecordVariables(rulesetId, input)
|
|
2201
|
+
);
|
|
2202
|
+
return result["rulesetVersionDraftImportFromDatasetRecord"];
|
|
2203
|
+
}
|
|
2204
|
+
/**
|
|
2205
|
+
* Update a draft ruleset version.
|
|
2206
|
+
*/
|
|
2207
|
+
async updateDraft(id, input) {
|
|
2208
|
+
this.config.requireSecretCredential("rulesets.updateDraft");
|
|
2209
|
+
const { query } = QueryBuilder.updateRulesetVersionDraft();
|
|
2210
|
+
const result = await this.connection.execute(
|
|
2211
|
+
query,
|
|
2212
|
+
QueryBuilder.rulesetVersionDraftUpdateVariables(id, input)
|
|
2213
|
+
);
|
|
2214
|
+
return result["rulesetVersionDraftUpdate"];
|
|
2215
|
+
}
|
|
2216
|
+
/**
|
|
2217
|
+
* Publish a draft and make it the current active ruleset version.
|
|
2218
|
+
*/
|
|
2219
|
+
async publishVersion(id, input) {
|
|
2220
|
+
this.config.requireSecretCredential("rulesets.publishVersion");
|
|
2221
|
+
const { query } = QueryBuilder.publishRulesetVersion();
|
|
2222
|
+
const result = await this.connection.execute(
|
|
2223
|
+
query,
|
|
2224
|
+
QueryBuilder.rulesetVersionPublishVariables(id, input)
|
|
2225
|
+
);
|
|
2226
|
+
return result["rulesetVersionPublish"];
|
|
2227
|
+
}
|
|
2228
|
+
/**
|
|
2229
|
+
* Activate an already-published version for rollback.
|
|
2230
|
+
*/
|
|
2231
|
+
async activateVersion(id) {
|
|
2232
|
+
this.config.requireSecretCredential("rulesets.activateVersion");
|
|
2233
|
+
const { query } = QueryBuilder.activateRulesetVersion();
|
|
2234
|
+
const result = await this.connection.execute(query, { id });
|
|
2235
|
+
return result["rulesetVersionActivate"];
|
|
2236
|
+
}
|
|
2237
|
+
};
|
|
2079
2238
|
var ImportFormatsResource = class extends BaseResource {
|
|
2080
2239
|
constructor(connection, config) {
|
|
2081
2240
|
super(connection, config);
|
|
@@ -2914,6 +3073,8 @@ var CardDBClient = class _CardDBClient {
|
|
|
2914
3073
|
decks;
|
|
2915
3074
|
/** Rules resource for game rules and deck formats */
|
|
2916
3075
|
rules;
|
|
3076
|
+
/** First-class rulesets resource for deck validation rules */
|
|
3077
|
+
rulesets;
|
|
2917
3078
|
/** Publisher-managed import format resource */
|
|
2918
3079
|
importFormats;
|
|
2919
3080
|
/** Publisher import job resource */
|
|
@@ -2940,6 +3101,7 @@ var CardDBClient = class _CardDBClient {
|
|
|
2940
3101
|
this.records = new RecordsResource(this.connection, this.config);
|
|
2941
3102
|
this.decks = new DecksResource(this.connection, this.config);
|
|
2942
3103
|
this.rules = new RulesResource(this.connection, this.config);
|
|
3104
|
+
this.rulesets = new RulesetsResource(this.connection, this.config);
|
|
2943
3105
|
this.importFormats = new ImportFormatsResource(this.connection, this.config);
|
|
2944
3106
|
this.imports = new ImportsResource(this.connection, this.config);
|
|
2945
3107
|
this.exports = new ExportsResource(this.connection, this.config);
|
|
@@ -3019,6 +3181,6 @@ var CardDBClient = class _CardDBClient {
|
|
|
3019
3181
|
}
|
|
3020
3182
|
};
|
|
3021
3183
|
|
|
3022
|
-
export { BaseResource, CardDBClient, Configuration, Connection, DEFAULT_CACHE_TTL, DEFAULT_ENDPOINT, DEFAULT_MAX_NETWORK_RETRIES, DEFAULT_MAX_RETRIES, DEFAULT_OPEN_TIMEOUT, DEFAULT_RETRY_BASE_DELAY, DEFAULT_RETRY_MAX_DELAY, DEFAULT_TIMEOUT, DatasetsResource, DecksResource, ExportsResource, FilesResource, GamesResource, ImportFormatsResource, ImportsResource, PublishersResource, RecordsResource, RulesResource, ScanTemplatesResource, ScansResource, cacheKey, getRateLimitInfo, getSDKVersion, getUserAgent, readCache, writeCache };
|
|
3184
|
+
export { BaseResource, CardDBClient, Configuration, Connection, DEFAULT_CACHE_TTL, DEFAULT_ENDPOINT, DEFAULT_MAX_NETWORK_RETRIES, DEFAULT_MAX_RETRIES, DEFAULT_OPEN_TIMEOUT, DEFAULT_RETRY_BASE_DELAY, DEFAULT_RETRY_MAX_DELAY, DEFAULT_TIMEOUT, DatasetsResource, DecksResource, ExportsResource, FilesResource, GamesResource, ImportFormatsResource, ImportsResource, PublishersResource, RecordsResource, RulesResource, RulesetsResource, ScanTemplatesResource, ScansResource, cacheKey, getRateLimitInfo, getSDKVersion, getUserAgent, readCache, writeCache };
|
|
3023
3185
|
//# sourceMappingURL=index.js.map
|
|
3024
3186
|
//# sourceMappingURL=index.js.map
|