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