@carddb/client 0.4.5 → 0.5.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/dist/index.cjs +266 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +141 -2
- package/dist/index.d.ts +141 -2
- package/dist/index.js +266 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -901,6 +901,36 @@ var DatasetsResource = class extends BaseResource {
|
|
|
901
901
|
return result["fetchDatasets"] ?? [];
|
|
902
902
|
});
|
|
903
903
|
}
|
|
904
|
+
async filterValues(idOrPublisherSlug, fieldsOrGameKey, datasetKeyOrFields, fieldsOrOptions, maybeOptions) {
|
|
905
|
+
let queryParams;
|
|
906
|
+
let options;
|
|
907
|
+
if (Array.isArray(fieldsOrGameKey)) {
|
|
908
|
+
queryParams = { id: idOrPublisherSlug, fields: fieldsOrGameKey };
|
|
909
|
+
options = datasetKeyOrFields ?? {};
|
|
910
|
+
} else {
|
|
911
|
+
queryParams = {
|
|
912
|
+
publisherSlug: idOrPublisherSlug,
|
|
913
|
+
gameKey: fieldsOrGameKey,
|
|
914
|
+
datasetKey: datasetKeyOrFields,
|
|
915
|
+
fields: fieldsOrOptions
|
|
916
|
+
};
|
|
917
|
+
options = maybeOptions ?? {};
|
|
918
|
+
this.validateAccess(queryParams.publisherSlug, queryParams.gameKey);
|
|
919
|
+
}
|
|
920
|
+
const { query, variables } = QueryBuilder.fetchDatasetFilterValues({
|
|
921
|
+
...queryParams,
|
|
922
|
+
search: options.search,
|
|
923
|
+
includeCounts: options.includeCounts,
|
|
924
|
+
first: options.first,
|
|
925
|
+
after: options.after
|
|
926
|
+
});
|
|
927
|
+
const key = this.cacheKey("datasets", "filterValues", variables);
|
|
928
|
+
return this.withCache(key, "datasets", options, async () => {
|
|
929
|
+
const result = await this.connection.execute(query, variables);
|
|
930
|
+
const dataset = result["fetchDataset"];
|
|
931
|
+
return dataset?.filterValues ?? [];
|
|
932
|
+
});
|
|
933
|
+
}
|
|
904
934
|
};
|
|
905
935
|
var DecksResource = class extends BaseResource {
|
|
906
936
|
constructor(connection, config) {
|
|
@@ -2003,6 +2033,238 @@ var RulesResource = class extends BaseResource {
|
|
|
2003
2033
|
});
|
|
2004
2034
|
}
|
|
2005
2035
|
};
|
|
2036
|
+
var RulesetsResource = class extends BaseResource {
|
|
2037
|
+
constructor(connection, config) {
|
|
2038
|
+
super(connection, config);
|
|
2039
|
+
}
|
|
2040
|
+
/**
|
|
2041
|
+
* List first-class rulesets for a game.
|
|
2042
|
+
*/
|
|
2043
|
+
async list(gameId, options = {}) {
|
|
2044
|
+
const { query, variables } = QueryBuilder.rulesets({
|
|
2045
|
+
gameId,
|
|
2046
|
+
includeArchived: options.includeArchived,
|
|
2047
|
+
first: options.first,
|
|
2048
|
+
after: options.after
|
|
2049
|
+
});
|
|
2050
|
+
const key = this.cacheKey("rulesets", "list", variables);
|
|
2051
|
+
const data = await this.withCache(key, "rulesets", options, async () => {
|
|
2052
|
+
const result = await this.connection.execute(query, variables);
|
|
2053
|
+
return result["rulesets"];
|
|
2054
|
+
});
|
|
2055
|
+
return new Collection(data, {
|
|
2056
|
+
nextPageLoader: async (cursor) => this.list(gameId, { ...options, after: cursor })
|
|
2057
|
+
});
|
|
2058
|
+
}
|
|
2059
|
+
/**
|
|
2060
|
+
* List active public rulesets for a public game.
|
|
2061
|
+
*/
|
|
2062
|
+
async listPublic(gameId, options = {}) {
|
|
2063
|
+
const { query, variables } = QueryBuilder.publicRulesets({
|
|
2064
|
+
gameId,
|
|
2065
|
+
first: options.first,
|
|
2066
|
+
after: options.after
|
|
2067
|
+
});
|
|
2068
|
+
const key = this.cacheKey("rulesets", "listPublic", variables);
|
|
2069
|
+
const data = await this.withCache(key, "rulesets", options, async () => {
|
|
2070
|
+
const result = await this.connection.execute(query, variables);
|
|
2071
|
+
return result["publicRulesets"];
|
|
2072
|
+
});
|
|
2073
|
+
return new Collection(data, {
|
|
2074
|
+
nextPageLoader: async (cursor) => this.listPublic(gameId, { ...options, after: cursor })
|
|
2075
|
+
});
|
|
2076
|
+
}
|
|
2077
|
+
/**
|
|
2078
|
+
* Get one ruleset by UUID.
|
|
2079
|
+
*/
|
|
2080
|
+
async get(id, options = {}) {
|
|
2081
|
+
const variables = { id };
|
|
2082
|
+
const key = this.cacheKey("rulesets", "get", variables);
|
|
2083
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2084
|
+
const { query, variables: variables2 } = QueryBuilder.ruleset({ id });
|
|
2085
|
+
const result = await this.connection.execute(query, variables2);
|
|
2086
|
+
return result["ruleset"] ?? null;
|
|
2087
|
+
});
|
|
2088
|
+
}
|
|
2089
|
+
/**
|
|
2090
|
+
* Get one ruleset by game ID and stable key.
|
|
2091
|
+
*/
|
|
2092
|
+
async getByKey(options) {
|
|
2093
|
+
const variables = { gameId: options.gameId, key: options.key };
|
|
2094
|
+
const cacheKey2 = this.cacheKey("rulesets", "getByKey", variables);
|
|
2095
|
+
return this.withCache(cacheKey2, "rulesets", options, async () => {
|
|
2096
|
+
const { query, variables: variables2 } = QueryBuilder.ruleset({
|
|
2097
|
+
gameId: options.gameId,
|
|
2098
|
+
key: options.key
|
|
2099
|
+
});
|
|
2100
|
+
const result = await this.connection.execute(query, variables2);
|
|
2101
|
+
return result["ruleset"] ?? null;
|
|
2102
|
+
});
|
|
2103
|
+
}
|
|
2104
|
+
/**
|
|
2105
|
+
* List immutable versions for a ruleset.
|
|
2106
|
+
*/
|
|
2107
|
+
async versions(rulesetId, options = {}) {
|
|
2108
|
+
const { query, variables } = QueryBuilder.rulesetVersions({
|
|
2109
|
+
rulesetId,
|
|
2110
|
+
status: options.status,
|
|
2111
|
+
first: options.first,
|
|
2112
|
+
after: options.after
|
|
2113
|
+
});
|
|
2114
|
+
const key = this.cacheKey("rulesets", "versions", variables);
|
|
2115
|
+
const data = await this.withCache(key, "rulesets", options, async () => {
|
|
2116
|
+
const result = await this.connection.execute(query, variables);
|
|
2117
|
+
return result["rulesetVersions"];
|
|
2118
|
+
});
|
|
2119
|
+
return new Collection(data, {
|
|
2120
|
+
nextPageLoader: async (cursor) => this.versions(rulesetId, { ...options, after: cursor })
|
|
2121
|
+
});
|
|
2122
|
+
}
|
|
2123
|
+
/**
|
|
2124
|
+
* Get one immutable ruleset version by UUID.
|
|
2125
|
+
*/
|
|
2126
|
+
async getVersion(id, options = {}) {
|
|
2127
|
+
const key = this.cacheKey("rulesets", "getVersion", { id });
|
|
2128
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2129
|
+
const { query } = QueryBuilder.rulesetVersion();
|
|
2130
|
+
const result = await this.connection.execute(query, { id });
|
|
2131
|
+
return result["rulesetVersion"] ?? null;
|
|
2132
|
+
});
|
|
2133
|
+
}
|
|
2134
|
+
/**
|
|
2135
|
+
* Get the canonical active rules JSON for a ruleset.
|
|
2136
|
+
*/
|
|
2137
|
+
async validationRules(gameId, rulesetKey, options = {}) {
|
|
2138
|
+
const variables = QueryBuilder.rulesetValidationRulesVariables(
|
|
2139
|
+
gameId,
|
|
2140
|
+
rulesetKey,
|
|
2141
|
+
options.rulesetVersionId
|
|
2142
|
+
);
|
|
2143
|
+
const key = this.cacheKey("rulesets", "validationRules", variables);
|
|
2144
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2145
|
+
const { query } = QueryBuilder.rulesetValidationRules();
|
|
2146
|
+
const result = await this.connection.execute(query, variables);
|
|
2147
|
+
return result["rulesetValidationRules"] ?? null;
|
|
2148
|
+
});
|
|
2149
|
+
}
|
|
2150
|
+
/**
|
|
2151
|
+
* Get typed validation rules, including parsed deck sections.
|
|
2152
|
+
*/
|
|
2153
|
+
async deckValidationRules(gameId, rulesetKey, options = {}) {
|
|
2154
|
+
const variables = QueryBuilder.rulesetValidationRulesVariables(
|
|
2155
|
+
gameId,
|
|
2156
|
+
rulesetKey,
|
|
2157
|
+
options.rulesetVersionId
|
|
2158
|
+
);
|
|
2159
|
+
const key = this.cacheKey("rulesets", "deckValidationRules", variables);
|
|
2160
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2161
|
+
const { query } = QueryBuilder.deckValidationRules();
|
|
2162
|
+
const result = await this.connection.execute(query, variables);
|
|
2163
|
+
return result["deckValidationRules"] ?? null;
|
|
2164
|
+
});
|
|
2165
|
+
}
|
|
2166
|
+
/**
|
|
2167
|
+
* Preview compiling a legacy formats dataset record into a draft ruleset version.
|
|
2168
|
+
*/
|
|
2169
|
+
async previewImport(rulesetId, input) {
|
|
2170
|
+
const { query } = QueryBuilder.rulesetVersionDraftImportPreview();
|
|
2171
|
+
const variables = QueryBuilder.rulesetVersionDraftImportPreviewVariables(rulesetId, input);
|
|
2172
|
+
const result = await this.connection.execute(query, variables);
|
|
2173
|
+
return result["rulesetVersionDraftImportPreview"];
|
|
2174
|
+
}
|
|
2175
|
+
/**
|
|
2176
|
+
* Preview validation impact for decks that use a ruleset version's parent ruleset.
|
|
2177
|
+
*/
|
|
2178
|
+
async validationImpact(rulesetVersionId, options = {}) {
|
|
2179
|
+
const { query, variables } = QueryBuilder.rulesetValidationImpact({
|
|
2180
|
+
rulesetVersionId,
|
|
2181
|
+
first: options.first
|
|
2182
|
+
});
|
|
2183
|
+
const key = this.cacheKey("rulesets", "validationImpact", variables);
|
|
2184
|
+
return this.withCache(key, "rulesets", options, async () => {
|
|
2185
|
+
const result = await this.connection.execute(query, variables);
|
|
2186
|
+
return result["rulesetValidationImpact"];
|
|
2187
|
+
});
|
|
2188
|
+
}
|
|
2189
|
+
/**
|
|
2190
|
+
* Create a first-class ruleset. Requires a server-side secret credential.
|
|
2191
|
+
*/
|
|
2192
|
+
async create(input) {
|
|
2193
|
+
this.config.requireSecretCredential("rulesets.create");
|
|
2194
|
+
const { query } = QueryBuilder.createRuleset();
|
|
2195
|
+
const result = await this.connection.execute(query, QueryBuilder.rulesetCreateVariables(input));
|
|
2196
|
+
return result["rulesetCreate"];
|
|
2197
|
+
}
|
|
2198
|
+
/**
|
|
2199
|
+
* Update editable ruleset metadata. Requires a server-side secret credential.
|
|
2200
|
+
*/
|
|
2201
|
+
async update(id, input) {
|
|
2202
|
+
this.config.requireSecretCredential("rulesets.update");
|
|
2203
|
+
const { query } = QueryBuilder.updateRuleset();
|
|
2204
|
+
const result = await this.connection.execute(
|
|
2205
|
+
query,
|
|
2206
|
+
QueryBuilder.rulesetUpdateVariables(id, input)
|
|
2207
|
+
);
|
|
2208
|
+
return result["rulesetUpdate"];
|
|
2209
|
+
}
|
|
2210
|
+
/**
|
|
2211
|
+
* Create a draft ruleset version from an explicit canonical rules payload.
|
|
2212
|
+
*/
|
|
2213
|
+
async createDraft(rulesetId, input) {
|
|
2214
|
+
this.config.requireSecretCredential("rulesets.createDraft");
|
|
2215
|
+
const { query } = QueryBuilder.createRulesetVersionDraft();
|
|
2216
|
+
const result = await this.connection.execute(
|
|
2217
|
+
query,
|
|
2218
|
+
QueryBuilder.rulesetVersionDraftCreateVariables(rulesetId, input)
|
|
2219
|
+
);
|
|
2220
|
+
return result["rulesetVersionDraftCreate"];
|
|
2221
|
+
}
|
|
2222
|
+
/**
|
|
2223
|
+
* Create a draft by compiling a legacy formats dataset record.
|
|
2224
|
+
*/
|
|
2225
|
+
async importDraftFromDatasetRecord(rulesetId, input) {
|
|
2226
|
+
this.config.requireSecretCredential("rulesets.importDraftFromDatasetRecord");
|
|
2227
|
+
const { query } = QueryBuilder.importRulesetVersionDraftFromDatasetRecord();
|
|
2228
|
+
const result = await this.connection.execute(
|
|
2229
|
+
query,
|
|
2230
|
+
QueryBuilder.rulesetVersionDraftImportFromDatasetRecordVariables(rulesetId, input)
|
|
2231
|
+
);
|
|
2232
|
+
return result["rulesetVersionDraftImportFromDatasetRecord"];
|
|
2233
|
+
}
|
|
2234
|
+
/**
|
|
2235
|
+
* Update a draft ruleset version.
|
|
2236
|
+
*/
|
|
2237
|
+
async updateDraft(id, input) {
|
|
2238
|
+
this.config.requireSecretCredential("rulesets.updateDraft");
|
|
2239
|
+
const { query } = QueryBuilder.updateRulesetVersionDraft();
|
|
2240
|
+
const result = await this.connection.execute(
|
|
2241
|
+
query,
|
|
2242
|
+
QueryBuilder.rulesetVersionDraftUpdateVariables(id, input)
|
|
2243
|
+
);
|
|
2244
|
+
return result["rulesetVersionDraftUpdate"];
|
|
2245
|
+
}
|
|
2246
|
+
/**
|
|
2247
|
+
* Publish a draft and make it the current active ruleset version.
|
|
2248
|
+
*/
|
|
2249
|
+
async publishVersion(id, input) {
|
|
2250
|
+
this.config.requireSecretCredential("rulesets.publishVersion");
|
|
2251
|
+
const { query } = QueryBuilder.publishRulesetVersion();
|
|
2252
|
+
const result = await this.connection.execute(
|
|
2253
|
+
query,
|
|
2254
|
+
QueryBuilder.rulesetVersionPublishVariables(id, input)
|
|
2255
|
+
);
|
|
2256
|
+
return result["rulesetVersionPublish"];
|
|
2257
|
+
}
|
|
2258
|
+
/**
|
|
2259
|
+
* Activate an already-published version for rollback.
|
|
2260
|
+
*/
|
|
2261
|
+
async activateVersion(id) {
|
|
2262
|
+
this.config.requireSecretCredential("rulesets.activateVersion");
|
|
2263
|
+
const { query } = QueryBuilder.activateRulesetVersion();
|
|
2264
|
+
const result = await this.connection.execute(query, { id });
|
|
2265
|
+
return result["rulesetVersionActivate"];
|
|
2266
|
+
}
|
|
2267
|
+
};
|
|
2006
2268
|
var ImportFormatsResource = class extends BaseResource {
|
|
2007
2269
|
constructor(connection, config) {
|
|
2008
2270
|
super(connection, config);
|
|
@@ -2841,6 +3103,8 @@ var CardDBClient = class _CardDBClient {
|
|
|
2841
3103
|
decks;
|
|
2842
3104
|
/** Rules resource for game rules and deck formats */
|
|
2843
3105
|
rules;
|
|
3106
|
+
/** First-class rulesets resource for deck validation rules */
|
|
3107
|
+
rulesets;
|
|
2844
3108
|
/** Publisher-managed import format resource */
|
|
2845
3109
|
importFormats;
|
|
2846
3110
|
/** Publisher import job resource */
|
|
@@ -2867,6 +3131,7 @@ var CardDBClient = class _CardDBClient {
|
|
|
2867
3131
|
this.records = new RecordsResource(this.connection, this.config);
|
|
2868
3132
|
this.decks = new DecksResource(this.connection, this.config);
|
|
2869
3133
|
this.rules = new RulesResource(this.connection, this.config);
|
|
3134
|
+
this.rulesets = new RulesetsResource(this.connection, this.config);
|
|
2870
3135
|
this.importFormats = new ImportFormatsResource(this.connection, this.config);
|
|
2871
3136
|
this.imports = new ImportsResource(this.connection, this.config);
|
|
2872
3137
|
this.exports = new ExportsResource(this.connection, this.config);
|
|
@@ -2946,6 +3211,6 @@ var CardDBClient = class _CardDBClient {
|
|
|
2946
3211
|
}
|
|
2947
3212
|
};
|
|
2948
3213
|
|
|
2949
|
-
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 };
|
|
3214
|
+
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 };
|
|
2950
3215
|
//# sourceMappingURL=index.js.map
|
|
2951
3216
|
//# sourceMappingURL=index.js.map
|