@carddb/browser 0.1.5 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -1
- package/dist/browser/index.js +678 -81
- package/dist/browser/index.js.map +1 -1
- package/dist/index.cjs +19 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +45 -2
- package/dist/index.d.ts +45 -2
- package/dist/index.js +20 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/browser/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var h=class X extends Error{response;constructor(t,r){super(t),this.name="CardDBError",this.response=r,Error.captureStackTrace&&Error.captureStackTrace(this,X);}},x=class extends h{constructor(e="Invalid or missing API key",t){super(e,t),this.name="AuthenticationError";}},w=class extends h{retryAfter;limit;remaining;resetAt;constructor(e="Rate limit exceeded",t={}){super(e,t.response),this.name="RateLimitError",this.retryAfter=t.retryAfter??null,this.limit=t.limit??null,this.remaining=t.remaining??null,this.resetAt=t.resetAt??null;}},Ye=class extends h{constructor(e="Resource not found",t){super(e,t),this.name="NotFoundError";}},T=class extends h{errors;constructor(e="Validation error",t={}){super(e,t.response),this.name="ValidationError",this.errors=t.errors??[];}},k=class extends h{constructor(e,t){super(e,t),this.name="RestrictedError";}},Q=class extends h{errors;constructor(e="GraphQL error",t={}){super(e,t.response),this.name="GraphQLError",this.errors=t.errors??[];}},D=class extends h{constructor(e="Connection error",t){super(e,t),this.name="ConnectionError";}},K=class extends D{constructor(e="Request timed out",t){super(e,t),this.name="TimeoutError";}},C=class extends h{status;constructor(e="Server error",t={}){super(e,t.response),this.name="ServerError",this.status=t.status??null;}},He=class extends h{failures;partialResults;constructor(e="Some links could not be resolved",t={}){super(e,t.response),this.name="LinkResolutionError",this.failures=t.failures??[],this.partialResults=t.partialResults;}getFailuresForField(e){return this.failures.filter(t=>t.field===e)}hasFailuresForField(e){return this.failures.some(t=>t.field===e)}};function Xe(e){return {eq:e}}function Qe(e){return {neq:e}}function We(e){return {gt:e}}function Je(e){return {gte:e}}function ze(e){return {lt:e}}function Ze(e){return {lte:e}}function et(e){return {in:e}}function tt(e){return {nin:e}}function rt(e){return {contains:e}}function st(e){return {like:e}}function it(e){return {ilike:e}}function nt(){return {is_null:true}}function ct(){return {is_null:false}}var ue=class W{conditions=[];orGroups=[];where(t,r){if(typeof t=="string")this.conditions.push({[t]:r});else for(let[s,i]of Object.entries(t))this.conditions.push({[s]:i});return this}any(t){let r=new W;t(r);let s=r.getConditions();return s.length>0&&this.orGroups.push({$or:s}),this}whereLink(t,r){let s={};for(let[i,c]of Object.entries(r))s[i]=c;return this.conditions.push({[`${t}._link`]:s}),this}whereAny(t,r){let s={};for(let[i,c]of Object.entries(r))s[i]=c;return this.conditions.push({[`${t}._any`]:s}),this}getConditions(){return this.conditions}build(){let t=[...this.conditions,...this.orGroups];return t.length===0?{}:t.length===1?t[0]:{$and:t}}};function q(e){if(e!==void 0){if(typeof e=="function"){let t=new ue;e(t);let r=t.build();return Object.keys(r).length>0?r:void 0}return Object.keys(e).length>0?e:void 0}}var $=`
|
|
2
2
|
id
|
|
3
3
|
name
|
|
4
4
|
slug
|
|
@@ -39,7 +39,7 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
39
39
|
id
|
|
40
40
|
url
|
|
41
41
|
}
|
|
42
|
-
`,
|
|
42
|
+
`,I=`
|
|
43
43
|
id
|
|
44
44
|
publisherId
|
|
45
45
|
gameId
|
|
@@ -62,7 +62,7 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
62
62
|
key
|
|
63
63
|
name
|
|
64
64
|
}
|
|
65
|
-
`,
|
|
65
|
+
`,le=4;function J(e){return `
|
|
66
66
|
key
|
|
67
67
|
label
|
|
68
68
|
description
|
|
@@ -77,12 +77,12 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
77
77
|
allowedValues
|
|
78
78
|
${e>0?`
|
|
79
79
|
nestedFields {
|
|
80
|
-
${
|
|
80
|
+
${J(e-1)}
|
|
81
81
|
}`:""}
|
|
82
|
-
`}var
|
|
82
|
+
`}var O=`
|
|
83
83
|
schema {
|
|
84
84
|
fields {
|
|
85
|
-
${
|
|
85
|
+
${J(le)}
|
|
86
86
|
}
|
|
87
87
|
filterableFields
|
|
88
88
|
searchableFields
|
|
@@ -94,7 +94,7 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
94
94
|
targetDatasetId
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
`,
|
|
97
|
+
`,de=`
|
|
98
98
|
pricing {
|
|
99
99
|
productId
|
|
100
100
|
prices {
|
|
@@ -106,11 +106,11 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
106
106
|
directLowPrice
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
`;function
|
|
109
|
+
`;function p(e={}){return `
|
|
110
110
|
id
|
|
111
111
|
datasetId
|
|
112
112
|
data
|
|
113
|
-
${e.includePricing?
|
|
113
|
+
${e.includePricing?de:""}
|
|
114
114
|
createdAt
|
|
115
115
|
updatedAt
|
|
116
116
|
dataset {
|
|
@@ -120,7 +120,77 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
120
120
|
gameId
|
|
121
121
|
publisherId
|
|
122
122
|
}
|
|
123
|
-
`}var
|
|
123
|
+
`}var z=p(),P=`
|
|
124
|
+
key
|
|
125
|
+
label
|
|
126
|
+
description
|
|
127
|
+
order
|
|
128
|
+
default
|
|
129
|
+
aliases
|
|
130
|
+
minCards
|
|
131
|
+
maxCards
|
|
132
|
+
excludedFromDeckSize
|
|
133
|
+
legalCardTypes
|
|
134
|
+
metadata
|
|
135
|
+
`,A=`
|
|
136
|
+
id
|
|
137
|
+
datasetId
|
|
138
|
+
recordId
|
|
139
|
+
identifier
|
|
140
|
+
quantity
|
|
141
|
+
section
|
|
142
|
+
sortOrder
|
|
143
|
+
annotations
|
|
144
|
+
display
|
|
145
|
+
record {
|
|
146
|
+
${z}
|
|
147
|
+
}
|
|
148
|
+
`,Z=`
|
|
149
|
+
rulesetId
|
|
150
|
+
rulesetVersionId
|
|
151
|
+
rulesetVersionLabel
|
|
152
|
+
cardDatasetId
|
|
153
|
+
cardDatasetVersionId
|
|
154
|
+
validatedAt
|
|
155
|
+
validationResultSummary
|
|
156
|
+
`,v=`
|
|
157
|
+
code
|
|
158
|
+
severity
|
|
159
|
+
message
|
|
160
|
+
entryIds
|
|
161
|
+
section
|
|
162
|
+
datasetId
|
|
163
|
+
identifier
|
|
164
|
+
metadata
|
|
165
|
+
`,U=`
|
|
166
|
+
deckId
|
|
167
|
+
valid
|
|
168
|
+
blockers {
|
|
169
|
+
${v}
|
|
170
|
+
}
|
|
171
|
+
warnings {
|
|
172
|
+
${v}
|
|
173
|
+
}
|
|
174
|
+
affectedEntries {
|
|
175
|
+
entryId
|
|
176
|
+
datasetId
|
|
177
|
+
recordId
|
|
178
|
+
identifier
|
|
179
|
+
section
|
|
180
|
+
quantity
|
|
181
|
+
}
|
|
182
|
+
validatedAgainst {
|
|
183
|
+
${Z}
|
|
184
|
+
}
|
|
185
|
+
checkedAt
|
|
186
|
+
`,M=`
|
|
187
|
+
deckId
|
|
188
|
+
fromVersionId
|
|
189
|
+
toVersionId
|
|
190
|
+
toDraftRevision
|
|
191
|
+
hasChanges
|
|
192
|
+
diff
|
|
193
|
+
`,b=`
|
|
124
194
|
id
|
|
125
195
|
deckId
|
|
126
196
|
versionNumber
|
|
@@ -135,23 +205,25 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
135
205
|
metadata
|
|
136
206
|
publishNote
|
|
137
207
|
computedDiff
|
|
208
|
+
rulesetId
|
|
209
|
+
rulesetVersionId
|
|
210
|
+
cardDatasetId
|
|
211
|
+
cardDatasetVersionId
|
|
212
|
+
validatedAt
|
|
213
|
+
validationSummary
|
|
214
|
+
validatedAgainst {
|
|
215
|
+
${Z}
|
|
216
|
+
}
|
|
217
|
+
sectionDefinitions {
|
|
218
|
+
${P}
|
|
219
|
+
}
|
|
138
220
|
publishedByAccountId
|
|
139
221
|
publishedByApiApplicationId
|
|
140
222
|
createdAt
|
|
141
223
|
entries {
|
|
142
|
-
|
|
143
|
-
datasetId
|
|
144
|
-
recordId
|
|
145
|
-
identifier
|
|
146
|
-
quantity
|
|
147
|
-
section
|
|
148
|
-
sortOrder
|
|
149
|
-
annotations
|
|
150
|
-
record {
|
|
151
|
-
${F}
|
|
152
|
-
}
|
|
224
|
+
${A}
|
|
153
225
|
}
|
|
154
|
-
`,
|
|
226
|
+
`,G=`
|
|
155
227
|
id
|
|
156
228
|
deckId
|
|
157
229
|
accountId
|
|
@@ -159,7 +231,7 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
159
231
|
createdByAccountId
|
|
160
232
|
createdAt
|
|
161
233
|
updatedAt
|
|
162
|
-
`,
|
|
234
|
+
`,j=`
|
|
163
235
|
id
|
|
164
236
|
deckId
|
|
165
237
|
label
|
|
@@ -168,8 +240,144 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
168
240
|
lastUsedAt
|
|
169
241
|
createdAt
|
|
170
242
|
updatedAt
|
|
171
|
-
`,
|
|
243
|
+
`,Y=`
|
|
172
244
|
id
|
|
245
|
+
deckId
|
|
246
|
+
apiApplicationId
|
|
247
|
+
label
|
|
248
|
+
readMode
|
|
249
|
+
allowedOrigins
|
|
250
|
+
externalSubject
|
|
251
|
+
expiresAt
|
|
252
|
+
revokedAt
|
|
253
|
+
lastUsedAt
|
|
254
|
+
createdAt
|
|
255
|
+
updatedAt
|
|
256
|
+
`,E=`
|
|
257
|
+
id
|
|
258
|
+
deckId
|
|
259
|
+
apiApplicationId
|
|
260
|
+
label
|
|
261
|
+
readModes
|
|
262
|
+
maxTokenLifetimeSeconds
|
|
263
|
+
directSigningAlg
|
|
264
|
+
directSigningKeyId
|
|
265
|
+
directSigningPublicKey
|
|
266
|
+
directSigningKeyRevokedAt
|
|
267
|
+
revokedAt
|
|
268
|
+
createdAt
|
|
269
|
+
updatedAt
|
|
270
|
+
`,he=`
|
|
271
|
+
id
|
|
272
|
+
deckId
|
|
273
|
+
apiApplicationId
|
|
274
|
+
issuerId
|
|
275
|
+
readMode
|
|
276
|
+
externalSubject
|
|
277
|
+
expiresAt
|
|
278
|
+
revokedAt
|
|
279
|
+
lastUsedAt
|
|
280
|
+
createdAt
|
|
281
|
+
updatedAt
|
|
282
|
+
`,F=`
|
|
283
|
+
lineNumber
|
|
284
|
+
raw
|
|
285
|
+
datasetKey
|
|
286
|
+
datasetId
|
|
287
|
+
recordId
|
|
288
|
+
identifier
|
|
289
|
+
quantity
|
|
290
|
+
section
|
|
291
|
+
sortOrder
|
|
292
|
+
display
|
|
293
|
+
record {
|
|
294
|
+
${z}
|
|
295
|
+
}
|
|
296
|
+
`,ee=`
|
|
297
|
+
lineNumber
|
|
298
|
+
raw
|
|
299
|
+
code
|
|
300
|
+
message
|
|
301
|
+
`,L=`
|
|
302
|
+
lineNumber
|
|
303
|
+
raw
|
|
304
|
+
datasetKey
|
|
305
|
+
identifier
|
|
306
|
+
quantity
|
|
307
|
+
section
|
|
308
|
+
code
|
|
309
|
+
message
|
|
310
|
+
`,B=`
|
|
311
|
+
lineNumber
|
|
312
|
+
raw
|
|
313
|
+
datasetKey
|
|
314
|
+
identifier
|
|
315
|
+
quantity
|
|
316
|
+
section
|
|
317
|
+
candidates {
|
|
318
|
+
recordId
|
|
319
|
+
identifier
|
|
320
|
+
display
|
|
321
|
+
}
|
|
322
|
+
`,f=`
|
|
323
|
+
id
|
|
324
|
+
gameId
|
|
325
|
+
key
|
|
326
|
+
name
|
|
327
|
+
description
|
|
328
|
+
enabled
|
|
329
|
+
priority
|
|
330
|
+
datasetKey
|
|
331
|
+
config
|
|
332
|
+
archivedAt
|
|
333
|
+
isArchived
|
|
334
|
+
createdAt
|
|
335
|
+
updatedAt
|
|
336
|
+
`,te=`
|
|
337
|
+
formatId
|
|
338
|
+
key
|
|
339
|
+
name
|
|
340
|
+
confidence
|
|
341
|
+
reason
|
|
342
|
+
`,ye=`
|
|
343
|
+
detection {
|
|
344
|
+
${te}
|
|
345
|
+
}
|
|
346
|
+
entries {
|
|
347
|
+
${F}
|
|
348
|
+
}
|
|
349
|
+
parseErrors {
|
|
350
|
+
${ee}
|
|
351
|
+
}
|
|
352
|
+
unmatched {
|
|
353
|
+
${L}
|
|
354
|
+
}
|
|
355
|
+
ambiguous {
|
|
356
|
+
${B}
|
|
357
|
+
}
|
|
358
|
+
`,fe=`
|
|
359
|
+
entries {
|
|
360
|
+
${F}
|
|
361
|
+
}
|
|
362
|
+
unmatched {
|
|
363
|
+
${L}
|
|
364
|
+
}
|
|
365
|
+
ambiguous {
|
|
366
|
+
${B}
|
|
367
|
+
}
|
|
368
|
+
`,ke=`
|
|
369
|
+
deckId
|
|
370
|
+
format
|
|
371
|
+
text
|
|
372
|
+
entryCount
|
|
373
|
+
`,u=`
|
|
374
|
+
id
|
|
375
|
+
ownerType
|
|
376
|
+
ownerAccountId
|
|
377
|
+
ownerApiApplicationId
|
|
378
|
+
environment
|
|
379
|
+
createdByAccountId
|
|
380
|
+
createdByApiApplicationId
|
|
173
381
|
accountId
|
|
174
382
|
apiApplicationId
|
|
175
383
|
gameId
|
|
@@ -179,13 +387,29 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
179
387
|
description
|
|
180
388
|
formatKey
|
|
181
389
|
visibility
|
|
390
|
+
accessMode
|
|
391
|
+
discoverability
|
|
392
|
+
state
|
|
393
|
+
archivedAt
|
|
394
|
+
deletedAt
|
|
395
|
+
unpublishedAt
|
|
396
|
+
externalRefApiApplicationId
|
|
182
397
|
externalRef
|
|
398
|
+
externalSubjectRef
|
|
399
|
+
rulesetId
|
|
183
400
|
sourceUrl
|
|
184
401
|
metadata
|
|
402
|
+
sectionDefinitions {
|
|
403
|
+
${P}
|
|
404
|
+
}
|
|
185
405
|
latestPublishedVersion {
|
|
186
406
|
${b}
|
|
187
407
|
}
|
|
188
408
|
publishedAt
|
|
409
|
+
draftRevision
|
|
410
|
+
draftUpdatedAt
|
|
411
|
+
draftUpdatedByAccountId
|
|
412
|
+
draftUpdatedByApiApplicationId
|
|
189
413
|
hasUnpublishedChanges
|
|
190
414
|
createdAt
|
|
191
415
|
updatedAt
|
|
@@ -193,19 +417,102 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
193
417
|
${m}
|
|
194
418
|
}
|
|
195
419
|
entries {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
420
|
+
${A}
|
|
421
|
+
}
|
|
422
|
+
`,H=`
|
|
423
|
+
deck {
|
|
424
|
+
${u}
|
|
425
|
+
}
|
|
426
|
+
retainedAppAccess
|
|
427
|
+
`,pe=`
|
|
428
|
+
deck {
|
|
429
|
+
${u}
|
|
430
|
+
}
|
|
431
|
+
copiedFromDeckId
|
|
432
|
+
retainedAppAccess
|
|
433
|
+
`,ge=`
|
|
434
|
+
id
|
|
435
|
+
name
|
|
436
|
+
description
|
|
437
|
+
revokedAt
|
|
438
|
+
`,R=`
|
|
439
|
+
id
|
|
440
|
+
deckId
|
|
441
|
+
deck {
|
|
442
|
+
${u}
|
|
443
|
+
}
|
|
444
|
+
apiApplicationId
|
|
445
|
+
apiApplication {
|
|
446
|
+
${ge}
|
|
447
|
+
}
|
|
448
|
+
role
|
|
449
|
+
grantSource
|
|
450
|
+
externalRef
|
|
451
|
+
createdByAccountId
|
|
452
|
+
createdByApiApplicationId
|
|
453
|
+
revokedAt
|
|
454
|
+
createdAt
|
|
455
|
+
updatedAt
|
|
456
|
+
`,me=`
|
|
457
|
+
deck {
|
|
458
|
+
${u}
|
|
459
|
+
}
|
|
460
|
+
version {
|
|
461
|
+
${b}
|
|
462
|
+
}
|
|
463
|
+
validation {
|
|
464
|
+
${U}
|
|
207
465
|
}
|
|
208
|
-
|
|
466
|
+
blockers {
|
|
467
|
+
${v}
|
|
468
|
+
}
|
|
469
|
+
warnings {
|
|
470
|
+
${v}
|
|
471
|
+
}
|
|
472
|
+
`,S=`
|
|
473
|
+
deck {
|
|
474
|
+
${u}
|
|
475
|
+
}
|
|
476
|
+
entry {
|
|
477
|
+
${A}
|
|
478
|
+
}
|
|
479
|
+
`,re=`
|
|
480
|
+
deck {
|
|
481
|
+
${u}
|
|
482
|
+
}
|
|
483
|
+
entries {
|
|
484
|
+
${A}
|
|
485
|
+
}
|
|
486
|
+
`,De=re,$e=`
|
|
487
|
+
deck {
|
|
488
|
+
${u}
|
|
489
|
+
}
|
|
490
|
+
applied
|
|
491
|
+
dryRun
|
|
492
|
+
replace
|
|
493
|
+
format
|
|
494
|
+
importFormat {
|
|
495
|
+
${f}
|
|
496
|
+
}
|
|
497
|
+
detection {
|
|
498
|
+
${te}
|
|
499
|
+
}
|
|
500
|
+
entries {
|
|
501
|
+
${F}
|
|
502
|
+
}
|
|
503
|
+
parseErrors {
|
|
504
|
+
${ee}
|
|
505
|
+
}
|
|
506
|
+
unmatched {
|
|
507
|
+
${L}
|
|
508
|
+
}
|
|
509
|
+
ambiguous {
|
|
510
|
+
${B}
|
|
511
|
+
}
|
|
512
|
+
validation {
|
|
513
|
+
${U}
|
|
514
|
+
}
|
|
515
|
+
`,Ie=`
|
|
209
516
|
resolvedLinks {
|
|
210
517
|
field
|
|
211
518
|
linkFieldKey
|
|
@@ -216,7 +523,7 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
216
523
|
data
|
|
217
524
|
}
|
|
218
525
|
}
|
|
219
|
-
`;function
|
|
526
|
+
`;function y(e){return `
|
|
220
527
|
totalCount
|
|
221
528
|
pageInfo {
|
|
222
529
|
hasNextPage
|
|
@@ -230,34 +537,34 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
230
537
|
${e}
|
|
231
538
|
}
|
|
232
539
|
}
|
|
233
|
-
`}var
|
|
540
|
+
`}var n={searchPublishers(e={}){let t={},r=[],s=[];e.search!==void 0&&(s.push("$search: String"),r.push("search: $search"),t.search=e.search),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after);let i=s.length>0?`(${s.join(", ")})`:"",c=r.length>0?`(${r.join(", ")})`:"";return {query:`
|
|
234
541
|
query SearchPublishers${i} {
|
|
235
|
-
searchPublishers${
|
|
236
|
-
${
|
|
542
|
+
searchPublishers${c} {
|
|
543
|
+
${y($)}
|
|
237
544
|
}
|
|
238
545
|
}
|
|
239
546
|
`,variables:t}},fetchPublisherById(){return {query:`
|
|
240
547
|
query FetchPublisher($id: UUID!) {
|
|
241
548
|
fetchPublisher(id: $id) {
|
|
242
|
-
${
|
|
549
|
+
${$}
|
|
243
550
|
}
|
|
244
551
|
}
|
|
245
552
|
`}},fetchPublisherBySlug(){return {query:`
|
|
246
553
|
query FetchPublisher($slug: String!) {
|
|
247
554
|
fetchPublisher(slug: $slug) {
|
|
248
|
-
${
|
|
555
|
+
${$}
|
|
249
556
|
}
|
|
250
557
|
}
|
|
251
558
|
`}},fetchPublishers(){return {query:`
|
|
252
559
|
query FetchPublishers($slugs: [String!]!) {
|
|
253
560
|
fetchPublishers(slugs: $slugs) {
|
|
254
|
-
${
|
|
561
|
+
${$}
|
|
255
562
|
}
|
|
256
563
|
}
|
|
257
|
-
`}},searchGames(e={}){let t={},r=[],s=[];e.publisherSlug!==void 0&&(s.push("$publisherSlug: String"),r.push("publisherSlug: $publisherSlug"),t.publisherSlug=e.publisherSlug),e.search!==void 0&&(s.push("$search: String"),r.push("search: $search"),t.search=e.search),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after);let i=s.length>0?`(${s.join(", ")})`:"",
|
|
564
|
+
`}},searchGames(e={}){let t={},r=[],s=[];e.publisherSlug!==void 0&&(s.push("$publisherSlug: String"),r.push("publisherSlug: $publisherSlug"),t.publisherSlug=e.publisherSlug),e.search!==void 0&&(s.push("$search: String"),r.push("search: $search"),t.search=e.search),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after);let i=s.length>0?`(${s.join(", ")})`:"",c=r.length>0?`(${r.join(", ")})`:"";return {query:`
|
|
258
565
|
query SearchGames${i} {
|
|
259
|
-
searchGames${
|
|
260
|
-
${
|
|
566
|
+
searchGames${c} {
|
|
567
|
+
${y(m)}
|
|
261
568
|
}
|
|
262
569
|
}
|
|
263
570
|
`,variables:t}},fetchGameById(){return {query:`
|
|
@@ -278,91 +585,127 @@ var $=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";thi
|
|
|
278
585
|
${m}
|
|
279
586
|
}
|
|
280
587
|
}
|
|
281
|
-
`}},searchDatasets(e={}){let t={},r=[],s=[];e.publisherSlug!==void 0&&(s.push("$publisherSlug: String"),r.push("publisherSlug: $publisherSlug"),t.publisherSlug=e.publisherSlug),e.gameKey!==void 0&&(s.push("$gameKey: String"),r.push("gameKey: $gameKey"),t.gameKey=e.gameKey),e.search!==void 0&&(s.push("$search: String"),r.push("search: $search"),t.search=e.search),e.purpose!==void 0&&(s.push("$purpose: DatasetPurpose"),r.push("purpose: $purpose"),t.purpose=e.purpose),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after);let i=s.length>0?`(${s.join(", ")})`:"",
|
|
588
|
+
`}},searchDatasets(e={}){let t={},r=[],s=[];e.publisherSlug!==void 0&&(s.push("$publisherSlug: String"),r.push("publisherSlug: $publisherSlug"),t.publisherSlug=e.publisherSlug),e.gameKey!==void 0&&(s.push("$gameKey: String"),r.push("gameKey: $gameKey"),t.gameKey=e.gameKey),e.search!==void 0&&(s.push("$search: String"),r.push("search: $search"),t.search=e.search),e.purpose!==void 0&&(s.push("$purpose: DatasetPurpose"),r.push("purpose: $purpose"),t.purpose=e.purpose),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after);let i=s.length>0?`(${s.join(", ")})`:"",c=r.length>0?`(${r.join(", ")})`:"";return {query:`
|
|
282
589
|
query SearchDatasets${i} {
|
|
283
|
-
searchDatasets${
|
|
284
|
-
${
|
|
590
|
+
searchDatasets${c} {
|
|
591
|
+
${y(I)}
|
|
285
592
|
}
|
|
286
593
|
}
|
|
287
594
|
`,variables:t}},fetchDatasetById(){return {query:`
|
|
288
595
|
query FetchDataset($id: UUID!) {
|
|
289
596
|
fetchDataset(id: $id) {
|
|
290
|
-
${
|
|
291
|
-
${
|
|
597
|
+
${I}
|
|
598
|
+
${O}
|
|
292
599
|
}
|
|
293
600
|
}
|
|
294
601
|
`}},fetchDatasetByKeys(){return {query:`
|
|
295
602
|
query FetchDataset($publisherSlug: String!, $gameKey: String!, $datasetKey: String!) {
|
|
296
603
|
fetchDataset(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey) {
|
|
297
|
-
${
|
|
298
|
-
${
|
|
604
|
+
${I}
|
|
605
|
+
${O}
|
|
299
606
|
}
|
|
300
607
|
}
|
|
301
608
|
`}},fetchDatasets(){return {query:`
|
|
302
609
|
query FetchDatasets($ids: [UUID!]!) {
|
|
303
610
|
fetchDatasets(ids: $ids) {
|
|
304
|
-
${
|
|
611
|
+
${I}
|
|
305
612
|
}
|
|
306
613
|
}
|
|
307
|
-
`}},searchRecords(e){let t={publisherSlug:e.publisherSlug,gameKey:e.gameKey,datasetKey:e.datasetKey},r=["publisherSlug: $publisherSlug","gameKey: $gameKey","datasetKey: $datasetKey"],s=["$publisherSlug: String!","$gameKey: String!","$datasetKey: String!"];e.filter!==void 0&&(s.push("$filter: JSON"),r.push("filter: $filter"),t.filter=e.filter),e.search!==void 0&&(s.push("$search: String"),r.push("search: $search"),t.search=e.search),e.orderBy!==void 0&&(s.push("$orderBy: String"),r.push("orderBy: $orderBy"),t.orderBy=e.orderBy),e.resolveLinks!==void 0&&(s.push("$resolveLinks: [String!]"),r.push("resolveLinks: $resolveLinks"),t.resolveLinks=e.resolveLinks),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after),e.validateSchema!==void 0&&(s.push("$validateSchema: Boolean"),r.push("validateSchema: $validateSchema"),t.validateSchema=e.validateSchema);let i=e.resolveLinks&&e.resolveLinks.length>0,
|
|
308
|
-
${
|
|
614
|
+
`}},searchRecords(e){let t={publisherSlug:e.publisherSlug,gameKey:e.gameKey,datasetKey:e.datasetKey},r=["publisherSlug: $publisherSlug","gameKey: $gameKey","datasetKey: $datasetKey"],s=["$publisherSlug: String!","$gameKey: String!","$datasetKey: String!"];e.filter!==void 0&&(s.push("$filter: JSON"),r.push("filter: $filter"),t.filter=e.filter),e.search!==void 0&&(s.push("$search: String"),r.push("search: $search"),t.search=e.search),e.orderBy!==void 0&&(s.push("$orderBy: String"),r.push("orderBy: $orderBy"),t.orderBy=e.orderBy),e.resolveLinks!==void 0&&(s.push("$resolveLinks: [String!]"),r.push("resolveLinks: $resolveLinks"),t.resolveLinks=e.resolveLinks),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after),e.validateSchema!==void 0&&(s.push("$validateSchema: Boolean"),r.push("validateSchema: $validateSchema"),t.validateSchema=e.validateSchema);let i=e.resolveLinks&&e.resolveLinks.length>0,c=p({includePricing:e.includePricing}),a=i?`${c}
|
|
615
|
+
${Ie}`:c;return {query:`
|
|
309
616
|
query SearchRecords(${s.join(", ")}) {
|
|
310
617
|
searchRecords(${r.join(", ")}) {
|
|
311
|
-
${
|
|
618
|
+
${y(a)}
|
|
312
619
|
}
|
|
313
620
|
}
|
|
314
621
|
`,variables:t}},fetchRecordById(e={}){return {query:`
|
|
315
622
|
query FetchRecord($id: UUID!) {
|
|
316
623
|
fetchRecord(id: $id) {
|
|
317
|
-
${
|
|
624
|
+
${p(e)}
|
|
318
625
|
}
|
|
319
626
|
}
|
|
320
627
|
`}},fetchRecordByIdentifier(e={}){return {query:`
|
|
321
628
|
query FetchRecordByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifier: String!) {
|
|
322
629
|
fetchRecordByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifier: $identifier) {
|
|
323
|
-
${
|
|
630
|
+
${p(e)}
|
|
324
631
|
}
|
|
325
632
|
}
|
|
326
633
|
`}},fetchRecordsByIdentifier(e={}){return {query:`
|
|
327
634
|
query FetchRecordsByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifiers: [String!]!) {
|
|
328
635
|
fetchRecordsByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifiers: $identifiers) {
|
|
329
|
-
${
|
|
636
|
+
${p(e)}
|
|
330
637
|
}
|
|
331
638
|
}
|
|
332
639
|
`}},fetchRecords(e={}){return {query:`
|
|
333
640
|
query FetchRecords($ids: [UUID!]!) {
|
|
334
641
|
fetchRecords(ids: $ids) {
|
|
335
|
-
${
|
|
642
|
+
${p(e)}
|
|
336
643
|
}
|
|
337
644
|
}
|
|
338
|
-
`}},listMyDecks(e={}){let t={},r=[],s=[];e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after);let i=s.length>0?`(${s.join(", ")})`:"",
|
|
645
|
+
`}},listMyDecks(e={}){let t={},r=[],s=[];e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after),e.includeArchived!==void 0&&(s.push("$includeArchived: Boolean"),r.push("includeArchived: $includeArchived"),t.includeArchived=e.includeArchived);let i=s.length>0?`(${s.join(", ")})`:"",c=r.length>0?`(${r.join(", ")})`:"";return {query:`
|
|
339
646
|
query MyDecks${i} {
|
|
340
|
-
myDecks${
|
|
341
|
-
${
|
|
647
|
+
myDecks${c} {
|
|
648
|
+
${y(u)}
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
`,variables:t}},viewerDecks(e={}){let t={},r=[],s=[];e.filter!==void 0&&(s.push("$filter: ViewerDecksFilterInput"),r.push("filter: $filter"),t.filter=e.filter),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after);let i=s.length>0?`(${s.join(", ")})`:"",c=r.length>0?`(${r.join(", ")})`:"";return {query:`
|
|
652
|
+
query ViewerDecks${i} {
|
|
653
|
+
viewerDecks${c} {
|
|
654
|
+
${y(u)}
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
`,variables:t}},appDecks(e={}){let t={},r=[],s=[];e.filter!==void 0&&(s.push("$filter: AppDecksFilterInput"),r.push("filter: $filter"),t.filter=e.filter),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after);let i=s.length>0?`(${s.join(", ")})`:"",c=r.length>0?`(${r.join(", ")})`:"";return {query:`
|
|
658
|
+
query AppDecks${i} {
|
|
659
|
+
appDecks${c} {
|
|
660
|
+
${y(u)}
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
`,variables:t}},publicDecks(e={}){let t={},r=[],s=[];e.filter!==void 0&&(s.push("$filter: PublicDecksFilterInput"),r.push("filter: $filter"),t.filter=e.filter),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after);let i=s.length>0?`(${s.join(", ")})`:"",c=r.length>0?`(${r.join(", ")})`:"";return {query:`
|
|
664
|
+
query PublicDecks${i} {
|
|
665
|
+
publicDecks${c} {
|
|
666
|
+
${y(u)}
|
|
342
667
|
}
|
|
343
668
|
}
|
|
344
669
|
`,variables:t}},fetchDeckById(){return {query:`
|
|
345
670
|
query FetchDeck($id: UUID!) {
|
|
346
671
|
fetchDeck(id: $id) {
|
|
347
|
-
${
|
|
672
|
+
${u}
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
`}},deckById(){return {query:`
|
|
676
|
+
query Deck($id: UUID!) {
|
|
677
|
+
deck(id: $id) {
|
|
678
|
+
${u}
|
|
348
679
|
}
|
|
349
680
|
}
|
|
350
681
|
`}},myDeck(){return {query:`
|
|
351
682
|
query MyDeck($id: UUID!) {
|
|
352
683
|
myDeck(id: $id) {
|
|
353
|
-
${
|
|
684
|
+
${u}
|
|
354
685
|
}
|
|
355
686
|
}
|
|
356
687
|
`}},fetchDeckBySlug(){return {query:`
|
|
357
688
|
query FetchDeckBySlug($publisherSlug: String!, $gameKey: String!, $slug: String!) {
|
|
358
689
|
fetchDeckBySlug(publisherSlug: $publisherSlug, gameKey: $gameKey, slug: $slug) {
|
|
359
|
-
${
|
|
690
|
+
${u}
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
`}},deckBySlug(){return {query:`
|
|
694
|
+
query DeckBySlug($publisherSlug: String!, $gameKey: String!, $slug: String!) {
|
|
695
|
+
deckBySlug(publisherSlug: $publisherSlug, gameKey: $gameKey, slug: $slug) {
|
|
696
|
+
${u}
|
|
360
697
|
}
|
|
361
698
|
}
|
|
362
699
|
`}},fetchDeckByExternalRef(){return {query:`
|
|
363
700
|
query FetchDeckByExternalRef($externalRef: String!) {
|
|
364
701
|
fetchDeckByExternalRef(externalRef: $externalRef) {
|
|
365
|
-
${
|
|
702
|
+
${u}
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
`}},deckByExternalRef(){return {query:`
|
|
706
|
+
query DeckByExternalRef($externalRef: String!) {
|
|
707
|
+
deckByExternalRef(externalRef: $externalRef) {
|
|
708
|
+
${u}
|
|
366
709
|
}
|
|
367
710
|
}
|
|
368
711
|
`}},deckVersion(){return {query:`
|
|
@@ -374,53 +717,255 @@ ${X}`:n;return {query:`
|
|
|
374
717
|
`}},deckVersions(e={}){let t={},r=["deckId: $deckId"],s=["$deckId: UUID!"];return e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after),{query:`
|
|
375
718
|
query DeckVersions(${s.join(", ")}) {
|
|
376
719
|
deckVersions(${r.join(", ")}) {
|
|
377
|
-
${
|
|
720
|
+
${y(b)}
|
|
378
721
|
}
|
|
379
722
|
}
|
|
380
723
|
`,variables:t}},deckPreview(){return {query:`
|
|
381
724
|
query DeckPreview($token: String!) {
|
|
382
725
|
deckPreview(token: $token) {
|
|
383
|
-
${
|
|
726
|
+
${u}
|
|
384
727
|
}
|
|
385
728
|
}
|
|
386
|
-
`}},
|
|
729
|
+
`}},deckEmbed(){return {query:`
|
|
730
|
+
query DeckEmbed($token: String!) {
|
|
731
|
+
deckEmbed(token: $token) {
|
|
732
|
+
${u}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
`}},deckAccess(){return {query:`
|
|
736
|
+
query DeckAccess($token: String!) {
|
|
737
|
+
deckAccess(token: $token) {
|
|
738
|
+
${u}
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
`}},deckDraftDiff(){return {query:`
|
|
742
|
+
query DeckDraftDiff($id: UUID!) {
|
|
743
|
+
deckDraftDiff(id: $id) {
|
|
744
|
+
${M}
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
`}},deckVersionDiff(){return {query:`
|
|
748
|
+
query DeckVersionDiff($fromVersionId: UUID!, $toVersionId: UUID!) {
|
|
749
|
+
deckVersionDiff(fromVersionId: $fromVersionId, toVersionId: $toVersionId) {
|
|
750
|
+
${M}
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
`}},deckHydrateEntries(){return {query:`
|
|
754
|
+
query DeckHydrateEntries($input: DeckHydrateEntriesInput!) {
|
|
755
|
+
deckHydrateEntries(input: $input) {
|
|
756
|
+
${fe}
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
`}},deckExport(){return {query:`
|
|
760
|
+
query DeckExport($id: UUID!, $format: DeckExportFormat!) {
|
|
761
|
+
deckExport(id: $id, format: $format) {
|
|
762
|
+
${ke}
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
`}},deckValidate(){return {query:`
|
|
766
|
+
query DeckValidate($id: UUID!, $input: DeckValidateInput) {
|
|
767
|
+
deckValidate(id: $id, input: $input) {
|
|
768
|
+
${U}
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
`}},deckSectionDefinitions(e={}){let t={},r=[],s=[];e.publisherSlug!==void 0&&(s.push("$publisherSlug: String"),r.push("publisherSlug: $publisherSlug"),t.publisherSlug=e.publisherSlug),e.gameKey!==void 0&&(s.push("$gameKey: String"),r.push("gameKey: $gameKey"),t.gameKey=e.gameKey),e.gameId!==void 0&&(s.push("$gameId: UUID"),r.push("gameId: $gameId"),t.gameId=e.gameId),e.rulesetKey!==void 0&&(s.push("$rulesetKey: String"),r.push("rulesetKey: $rulesetKey"),t.rulesetKey=e.rulesetKey),e.rulesetVersionId!==void 0&&(s.push("$rulesetVersionId: UUID"),r.push("rulesetVersionId: $rulesetVersionId"),t.rulesetVersionId=e.rulesetVersionId);let i=s.length>0?`(${s.join(", ")})`:"",c=r.length>0?`(${r.join(", ")})`:"";return {query:`
|
|
772
|
+
query DeckSectionDefinitions${i} {
|
|
773
|
+
deckSectionDefinitions${c} {
|
|
774
|
+
${P}
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
`,variables:t}},deckCollaborators(){return {query:`
|
|
387
778
|
query DeckCollaborators($deckId: UUID!) {
|
|
388
779
|
deckCollaborators(deckId: $deckId) {
|
|
389
|
-
${
|
|
780
|
+
${G}
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
`}},deckEmbedTokens(){return {query:`
|
|
784
|
+
query DeckEmbedTokens($deckId: UUID!) {
|
|
785
|
+
deckEmbedTokens(deckId: $deckId) {
|
|
786
|
+
${Y}
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
`}},deckAccessTokenIssuers(){return {query:`
|
|
790
|
+
query DeckAccessTokenIssuers($deckId: UUID!) {
|
|
791
|
+
deckAccessTokenIssuers(deckId: $deckId) {
|
|
792
|
+
${E}
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
`}},deckApiApplicationAccesses(){return {query:`
|
|
796
|
+
query DeckApiApplicationAccesses($deckId: UUID!, $includeRevoked: Boolean) {
|
|
797
|
+
deckApiApplicationAccesses(deckId: $deckId, includeRevoked: $includeRevoked) {
|
|
798
|
+
${R}
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
`}},myDeckApiApplicationAccesses(){return {query:`
|
|
802
|
+
query MyDeckApiApplicationAccesses($applicationId: UUID) {
|
|
803
|
+
myDeckApiApplicationAccesses(applicationId: $applicationId) {
|
|
804
|
+
${R}
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
`}},deckImportFormats(e){let t={gameId:e.gameId},r=["gameId: $gameId"],s=["$gameId: UUID!"];return e.includeArchived!==void 0&&(s.push("$includeArchived: Boolean"),r.push("includeArchived: $includeArchived"),t.includeArchived=e.includeArchived),e.first!==void 0&&(s.push("$first: Int"),r.push("first: $first"),t.first=e.first),e.after!==void 0&&(s.push("$after: String"),r.push("after: $after"),t.after=e.after),{query:`
|
|
808
|
+
query DeckImportFormats(${s.join(", ")}) {
|
|
809
|
+
deckImportFormats(${r.join(", ")}) {
|
|
810
|
+
${y(f)}
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
`,variables:t}},deckImportFormat(){return {query:`
|
|
814
|
+
query DeckImportFormat($id: UUID!) {
|
|
815
|
+
deckImportFormat(id: $id) {
|
|
816
|
+
${f}
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
`}},deckImportFormatTest(){return {query:`
|
|
820
|
+
query DeckImportFormatTest($input: DeckImportFormatTestInput!) {
|
|
821
|
+
deckImportFormatTest(input: $input) {
|
|
822
|
+
${ye}
|
|
390
823
|
}
|
|
391
824
|
}
|
|
392
825
|
`}},deckPreviewTokens(){return {query:`
|
|
393
826
|
query DeckPreviewTokens($deckId: UUID!) {
|
|
394
827
|
deckPreviewTokens(deckId: $deckId) {
|
|
395
|
-
${
|
|
828
|
+
${j}
|
|
396
829
|
}
|
|
397
830
|
}
|
|
398
831
|
`}},createDeck(){return {query:`
|
|
399
832
|
mutation DeckCreate($input: DeckCreateInput!) {
|
|
400
833
|
deckCreate(input: $input) {
|
|
401
|
-
${
|
|
834
|
+
${u}
|
|
402
835
|
}
|
|
403
836
|
}
|
|
404
837
|
`}},updateDeck(){return {query:`
|
|
405
838
|
mutation DeckUpdate($id: UUID!, $input: DeckUpdateInput!) {
|
|
406
839
|
deckUpdate(id: $id, input: $input) {
|
|
407
|
-
${
|
|
840
|
+
${u}
|
|
408
841
|
}
|
|
409
842
|
}
|
|
410
843
|
`}},deleteDeck(){return {query:`
|
|
411
844
|
mutation DeckDelete($id: UUID!) {
|
|
412
845
|
deckDelete(id: $id)
|
|
413
846
|
}
|
|
847
|
+
`}},archiveDeck(){return {query:`
|
|
848
|
+
mutation DeckArchive($id: UUID!) {
|
|
849
|
+
deckArchive(id: $id) {
|
|
850
|
+
${u}
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
`}},restoreDeck(){return {query:`
|
|
854
|
+
mutation DeckRestore($id: UUID!) {
|
|
855
|
+
deckRestore(id: $id) {
|
|
856
|
+
${u}
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
`}},unpublishDeck(){return {query:`
|
|
860
|
+
mutation DeckUnpublish($id: UUID!) {
|
|
861
|
+
deckUnpublish(id: $id) {
|
|
862
|
+
${u}
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
`}},addDeckEntry(){return {query:`
|
|
866
|
+
mutation DeckEntryAdd($input: DeckEntryAddInput!) {
|
|
867
|
+
deckEntryAdd(input: $input) {
|
|
868
|
+
${S}
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
`}},updateDeckEntry(){return {query:`
|
|
872
|
+
mutation DeckEntryUpdate($id: UUID!, $input: DeckEntryUpdateInput!) {
|
|
873
|
+
deckEntryUpdate(id: $id, input: $input) {
|
|
874
|
+
${S}
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
`}},removeDeckEntry(){return {query:`
|
|
878
|
+
mutation DeckEntryRemove($id: UUID!, $expectedDraftRevision: Int!) {
|
|
879
|
+
deckEntryRemove(id: $id, expectedDraftRevision: $expectedDraftRevision) {
|
|
880
|
+
${S}
|
|
881
|
+
}
|
|
882
|
+
}
|
|
883
|
+
`}},reorderDeckEntries(){return {query:`
|
|
884
|
+
mutation DeckEntryReorder($deckId: UUID!, $input: DeckEntryReorderInput!) {
|
|
885
|
+
deckEntryReorder(deckId: $deckId, input: $input) {
|
|
886
|
+
${re}
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
`}},replaceDeckEntries(){return {query:`
|
|
890
|
+
mutation DeckEntriesReplace($deckId: UUID!, $input: DeckEntriesReplaceInput!) {
|
|
891
|
+
deckEntriesReplace(deckId: $deckId, input: $input) {
|
|
892
|
+
${De}
|
|
893
|
+
}
|
|
894
|
+
}
|
|
895
|
+
`}},importDeck(){return {query:`
|
|
896
|
+
mutation DeckImport($input: DeckImportInput!) {
|
|
897
|
+
deckImport(input: $input) {
|
|
898
|
+
${$e}
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
`}},createDeckImportFormat(){return {query:`
|
|
902
|
+
mutation DeckImportFormatCreate($input: DeckImportFormatCreateInput!) {
|
|
903
|
+
deckImportFormatCreate(input: $input) {
|
|
904
|
+
${f}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
`}},updateDeckImportFormat(){return {query:`
|
|
908
|
+
mutation DeckImportFormatUpdate($id: UUID!, $input: DeckImportFormatUpdateInput!) {
|
|
909
|
+
deckImportFormatUpdate(id: $id, input: $input) {
|
|
910
|
+
${f}
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
`}},archiveDeckImportFormat(){return {query:`
|
|
914
|
+
mutation DeckImportFormatArchive($id: UUID!) {
|
|
915
|
+
deckImportFormatArchive(id: $id) {
|
|
916
|
+
${f}
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
`}},unarchiveDeckImportFormat(){return {query:`
|
|
920
|
+
mutation DeckImportFormatUnarchive($id: UUID!) {
|
|
921
|
+
deckImportFormatUnarchive(id: $id) {
|
|
922
|
+
${f}
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
`}},upsertDeckByExternalRef(){return {query:`
|
|
926
|
+
mutation DeckUpsertByExternalRef($input: DeckUpsertByExternalRefInput!) {
|
|
927
|
+
deckUpsertByExternalRef(input: $input) {
|
|
928
|
+
deck {
|
|
929
|
+
${u}
|
|
930
|
+
}
|
|
931
|
+
created
|
|
932
|
+
idempotentReplay
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
`}},claimDeck(){return {query:`
|
|
936
|
+
mutation DeckClaim($id: UUID!, $input: DeckClaimInput!) {
|
|
937
|
+
deckClaim(id: $id, input: $input) {
|
|
938
|
+
${H}
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
`}},transferDeckOwnership(){return {query:`
|
|
942
|
+
mutation DeckTransferOwnership($id: UUID!, $input: DeckTransferOwnershipInput!) {
|
|
943
|
+
deckTransferOwnership(id: $id, input: $input) {
|
|
944
|
+
${H}
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
`}},copyDeck(){return {query:`
|
|
948
|
+
mutation DeckCopy($id: UUID!, $input: DeckCopyInput!) {
|
|
949
|
+
deckCopy(id: $id, input: $input) {
|
|
950
|
+
${pe}
|
|
951
|
+
}
|
|
952
|
+
}
|
|
414
953
|
`}},publishDeck(){return {query:`
|
|
415
954
|
mutation DeckPublish($id: UUID!, $input: DeckPublishInput!) {
|
|
416
955
|
deckPublish(id: $id, input: $input) {
|
|
417
|
-
${
|
|
956
|
+
${me}
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
`}},removeInvalidDeckEntries(){return {query:`
|
|
960
|
+
mutation DeckRemoveInvalidEntries($id: UUID!, $input: DeckRemoveInvalidEntriesInput!) {
|
|
961
|
+
deckRemoveInvalidEntries(id: $id, input: $input) {
|
|
962
|
+
${u}
|
|
418
963
|
}
|
|
419
964
|
}
|
|
420
965
|
`}},upsertDeckCollaborator(){return {query:`
|
|
421
966
|
mutation DeckCollaboratorUpsert($deckId: UUID!, $accountId: UUID!, $role: DeckCollaboratorRole!) {
|
|
422
967
|
deckCollaboratorUpsert(deckId: $deckId, accountId: $accountId, role: $role) {
|
|
423
|
-
${
|
|
968
|
+
${G}
|
|
424
969
|
}
|
|
425
970
|
}
|
|
426
971
|
`}},removeDeckCollaborator(){return {query:`
|
|
@@ -432,7 +977,7 @@ ${X}`:n;return {query:`
|
|
|
432
977
|
deckPreviewTokenCreate(input: $input) {
|
|
433
978
|
token
|
|
434
979
|
previewToken {
|
|
435
|
-
${
|
|
980
|
+
${j}
|
|
436
981
|
}
|
|
437
982
|
}
|
|
438
983
|
}
|
|
@@ -440,7 +985,59 @@ ${X}`:n;return {query:`
|
|
|
440
985
|
mutation DeckPreviewTokenRevoke($id: UUID!) {
|
|
441
986
|
deckPreviewTokenRevoke(id: $id)
|
|
442
987
|
}
|
|
443
|
-
`}},
|
|
988
|
+
`}},createDeckEmbedToken(){return {query:`
|
|
989
|
+
mutation DeckEmbedTokenCreate($input: DeckEmbedTokenCreateInput!) {
|
|
990
|
+
deckEmbedTokenCreate(input: $input) {
|
|
991
|
+
token
|
|
992
|
+
embedToken {
|
|
993
|
+
${Y}
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
`}},revokeDeckEmbedToken(){return {query:`
|
|
998
|
+
mutation DeckEmbedTokenRevoke($id: UUID!) {
|
|
999
|
+
deckEmbedTokenRevoke(id: $id)
|
|
1000
|
+
}
|
|
1001
|
+
`}},createDeckAccessTokenIssuer(){return {query:`
|
|
1002
|
+
mutation DeckAccessTokenIssuerCreate($input: DeckAccessTokenIssuerCreateInput!) {
|
|
1003
|
+
deckAccessTokenIssuerCreate(input: $input) {
|
|
1004
|
+
${E}
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
`}},revokeDeckAccessTokenIssuer(){return {query:`
|
|
1008
|
+
mutation DeckAccessTokenIssuerRevoke($id: UUID!) {
|
|
1009
|
+
deckAccessTokenIssuerRevoke(id: $id)
|
|
1010
|
+
}
|
|
1011
|
+
`}},revokeDeckAccessTokenIssuerSigningKey(){return {query:`
|
|
1012
|
+
mutation DeckAccessTokenIssuerSigningKeyRevoke($id: UUID!) {
|
|
1013
|
+
deckAccessTokenIssuerSigningKeyRevoke(id: $id) {
|
|
1014
|
+
${E}
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
`}},exchangeDeckAccessToken(){return {query:`
|
|
1018
|
+
mutation DeckAccessTokenExchange($input: DeckAccessTokenExchangeInput!) {
|
|
1019
|
+
deckAccessTokenExchange(input: $input) {
|
|
1020
|
+
token
|
|
1021
|
+
accessToken {
|
|
1022
|
+
${he}
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
`}},grantDeckApiApplicationAccess(){return {query:`
|
|
1027
|
+
mutation DeckApiApplicationAccessGrant($input: DeckAPIApplicationAccessGrantInput!) {
|
|
1028
|
+
deckApiApplicationAccessGrant(input: $input) {
|
|
1029
|
+
${R}
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
`}},revokeDeckApiApplicationAccess(){return {query:`
|
|
1033
|
+
mutation DeckApiApplicationAccessRevoke($deckId: UUID!, $apiApplicationId: UUID!) {
|
|
1034
|
+
deckApiApplicationAccessRevoke(deckId: $deckId, apiApplicationId: $apiApplicationId)
|
|
1035
|
+
}
|
|
1036
|
+
`}},revokeDeckAccessToken(){return {query:`
|
|
1037
|
+
mutation DeckAccessTokenRevoke($id: UUID!) {
|
|
1038
|
+
deckAccessTokenRevoke(id: $id)
|
|
1039
|
+
}
|
|
1040
|
+
`}},deckCreateVariables(e){return {input:e}},deckUpdateVariables(e,t){return {id:e,input:t}},deckEntryAddVariables(e){return {input:e}},deckEntryUpdateVariables(e,t){return {id:e,input:t}},deckEntryRemoveVariables(e,t){return {id:e,expectedDraftRevision:t}},deckEntryReorderVariables(e,t){return {deckId:e,input:t}},deckEntriesReplaceVariables(e,t){return {deckId:e,input:t}},deckImportVariables(e){return {input:e}},deckImportFormatCreateVariables(e){return {input:e}},deckImportFormatUpdateVariables(e,t){return {id:e,input:t}},deckImportFormatTestVariables(e){return {input:e}},deckUpsertByExternalRefVariables(e){return {input:e}},deckClaimVariables(e,t){return {id:e,input:t}},deckTransferOwnershipVariables(e,t){return {id:e,input:t}},deckCopyVariables(e,t){return {id:e,input:t}},deckPublishVariables(e,t){return {id:e,input:t}},deckValidateVariables(e,t){return t===void 0?{id:e}:{id:e,input:t}},deckRemoveInvalidEntriesVariables(e,t){return {id:e,input:t}},deckHydrateEntriesVariables(e){return {input:e}},deckExportVariables(e,t){return {id:e,format:t}},deckVersionDiffVariables(e,t){return {fromVersionId:e,toVersionId:t}},deckCollaboratorVariables(e,t,r){return r===void 0?{deckId:e,accountId:t}:{deckId:e,accountId:t,role:r}},deckPreviewTokenCreateVariables(e){return {input:e}},deckEmbedTokenCreateVariables(e){return {input:e}},deckAccessTokenIssuerCreateVariables(e){return {input:e}},deckAccessTokenExchangeVariables(e){return {input:e}},deckApiApplicationAccessesVariables(e,t){return t===void 0?{deckId:e}:{deckId:e,includeRevoked:t}},myDeckApiApplicationAccessesVariables(e){return e===void 0?{}:{applicationId:e}},deckApiApplicationAccessGrantVariables(e){return {input:e}},deckApiApplicationAccessRevokeVariables(e,t){return {deckId:e,apiApplicationId:t}},fetchMe(){return {query:`
|
|
444
1041
|
query FetchMe {
|
|
445
1042
|
fetchMe {
|
|
446
1043
|
application {
|
|
@@ -462,6 +1059,6 @@ ${X}`:n;return {query:`
|
|
|
462
1059
|
}
|
|
463
1060
|
}
|
|
464
1061
|
}
|
|
465
|
-
`}}},h=class{totalCount;pageInfo;items;nextPageLoader;constructor(e,t={}){this.totalCount=e.totalCount,this.pageInfo=e.pageInfo,this.items=e.edges.map(r=>t.itemTransformer?t.itemTransformer(r.node):r.node),this.nextPageLoader=t.nextPageLoader;}get hasNextPage(){return this.pageInfo.hasNextPage}get hasPreviousPage(){return this.pageInfo.hasPreviousPage}get endCursor(){return this.pageInfo.endCursor}get startCursor(){return this.pageInfo.startCursor}get length(){return this.items.length}get isEmpty(){return this.items.length===0}get first(){return this.items[0]}get last(){return this.items[this.items.length-1]}async nextPage(){if(!this.hasNextPage)return null;if(!this.nextPageLoader)throw new Error("No next page loader configured");return this.endCursor?this.nextPageLoader(this.endCursor):null}async*[Symbol.asyncIterator](){let e=this;for(;e;){for(let t of e.items)yield t;if(!e.hasNextPage)break;e=await e.nextPage();}}async forEach(e){let t=0;for await(let r of this)await e(r,t++);}async map(e){let t=[],r=0;for await(let s of this)t.push(await e(s,r++));return t}async filter(e){let t=[],r=0;for await(let s of this)await e(s,r++)&&t.push(s);return t}async find(e){let t=0;for await(let r of this)if(await e(r,t++))return r}async take(e){let t=[];for await(let r of this){if(t.length>=e)break;t.push(r);}return t}async toArray(){let e=[];for await(let t of this)e.push(t);return e}async*batches(){let e=this;for(;e&&(e.items.length>0&&(yield e.items),!!e.hasNextPage);)e=await e.nextPage();}each(){return this}};var Q="https://carddb.xtda.org/query",H=3e4,J=1e4,W=300,Y=3,z=2,Z=1e3,ee=3e4,te=class N{apiKey;endpoint;timeout;openTimeout;defaultPublisher;defaultGame;allowedPublishers;allowedGames;logger;logLevel;retryOnRateLimit;maxRetries;retryOnNetworkError;maxNetworkRetries;retryBaseDelay;retryMaxDelay;cache;cacheTtl;cacheTtls;constructor(t={}){this.apiKey=t.apiKey,this.endpoint=t.endpoint??Q,this.timeout=t.timeout??H,this.openTimeout=t.openTimeout??J,this.defaultPublisher=t.defaultPublisher,this.defaultGame=t.defaultGame,this.allowedPublishers=t.allowedPublishers,this.allowedGames=t.allowedGames,this.logger=t.logger,this.logLevel=t.logLevel??"info",this.retryOnRateLimit=t.retryOnRateLimit??false,this.maxRetries=t.maxRetries??Y,this.retryOnNetworkError=t.retryOnNetworkError??true,this.maxNetworkRetries=t.maxNetworkRetries??z,this.retryBaseDelay=t.retryBaseDelay??Z,this.retryMaxDelay=t.retryMaxDelay??ee,this.cache=t.cache,this.cacheTtl=t.cacheTtl??W,this.cacheTtls=t.cacheTtls??{};}calculateRetryDelay(t){let r=this.retryBaseDelay*Math.pow(2,t),s=Math.min(r,this.retryMaxDelay),i=s*.25*(Math.random()*2-1);return Math.round(s+i)}cacheTtlFor(t){return this.cacheTtls[t]??this.cacheTtl}resolvePublisher(t){return t??this.defaultPublisher}resolveGame(t){return t??this.defaultGame}validatePublisher(t){if(this.allowedPublishers&&!this.allowedPublishers.includes(t))throw new S(`Publisher '${t}' is not in the allowed publishers list`)}validateGame(t,r){if(!this.allowedGames)return;let s=this.allowedGames[t];if(s&&!s.includes(r))throw new S(`Game '${r}' is not allowed for publisher '${t}'`)}validateAccess(t,r){t&&(this.validatePublisher(t),r&&this.validateGame(t,r));}shouldLog(t){let r={debug:0,info:1,warn:2,error:3};return r[t]>=r[this.logLevel]}merge(t){return new N({apiKey:t.apiKey??this.apiKey,endpoint:t.endpoint??this.endpoint,timeout:t.timeout??this.timeout,openTimeout:t.openTimeout??this.openTimeout,defaultPublisher:t.defaultPublisher??this.defaultPublisher,defaultGame:t.defaultGame??this.defaultGame,allowedPublishers:t.allowedPublishers??this.allowedPublishers,allowedGames:t.allowedGames??this.allowedGames,logger:t.logger??this.logger,logLevel:t.logLevel??this.logLevel,retryOnRateLimit:t.retryOnRateLimit??this.retryOnRateLimit,maxRetries:t.maxRetries??this.maxRetries,retryOnNetworkError:t.retryOnNetworkError??this.retryOnNetworkError,maxNetworkRetries:t.maxNetworkRetries??this.maxNetworkRetries,retryBaseDelay:t.retryBaseDelay??this.retryBaseDelay,retryMaxDelay:t.retryMaxDelay??this.retryMaxDelay,cache:t.cache??this.cache,cacheTtl:t.cacheTtl??this.cacheTtl,cacheTtls:t.cacheTtls??this.cacheTtls})}},G="0.1.0";function re(){if(typeof globalThis<"u"&&"Bun"in globalThis){let e=globalThis.Bun&&typeof globalThis.Bun=="object"&&globalThis.Bun.version;return {name:"bun",version:typeof e=="string"?e:"unknown"}}if(typeof globalThis<"u"&&"Deno"in globalThis){let e=globalThis.Deno&&typeof globalThis.Deno=="object"&&globalThis.Deno.version&&typeof globalThis.Deno.version=="object"&&globalThis.Deno.version.deno;return {name:"deno",version:typeof e=="string"?e:"unknown"}}return typeof process<"u"&&process.versions&&process.versions.node?{name:"node",version:process.versions.node}:typeof navigator<"u"&&navigator.userAgent?se(navigator.userAgent):{name:"unknown",version:"unknown"}}function se(e){let t=e.match(/Edg\/(\d+(?:\.\d+)*)/);if(t)return {name:"edge",version:t[1]};let r=e.match(/Chrome\/(\d+(?:\.\d+)*)/);if(r&&!e.includes("Edg/"))return {name:"chrome",version:r[1]};let s=e.match(/Firefox\/(\d+(?:\.\d+)*)/);if(s)return {name:"firefox",version:s[1]};let i=e.match(/Version\/(\d+(?:\.\d+)*).*Safari/);return i?{name:"safari",version:i[1]}:{name:"browser",version:"unknown"}}function ie(){let e=re();return `CardDB-SDK/js/${G} (${e.name}/${e.version})`}function Xe(){return G}var M=null;function ne(){return M}var ae=class{config;constructor(e){this.config=e;}async execute(e,t={}){let r=this.extractOperationName(e),s=0,i=0;for(;;)try{let n=Date.now();this.logRequest(r,t);let a=await this.fetch(e,t),o=Date.now()-n,u=await this.handleResponse(a);return this.logResponse(r,o),u}catch(n){if(n instanceof p&&this.config.retryOnRateLimit&&s<this.config.maxRetries){s++;let a=n.retryAfter??60;this.logRateLimitRetry(r,s,a),await this.sleep(a*1e3);continue}if(this.isRetryableNetworkError(n)&&this.config.retryOnNetworkError&&i<this.config.maxNetworkRetries){let a=this.config.calculateRetryDelay(i);this.logNetworkRetry(r,i+1,a,n),i++,await this.sleep(a);continue}if(n instanceof I&&this.config.retryOnNetworkError&&i<this.config.maxNetworkRetries){let a=this.config.calculateRetryDelay(i);this.logNetworkRetry(r,i+1,a,n),i++,await this.sleep(a);continue}throw n}}isRetryableNetworkError(e){return e instanceof k||e instanceof x}async fetch(e,t){let r=new AbortController,s=setTimeout(()=>r.abort(),this.config.timeout);try{return await fetch(this.config.endpoint,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":ie(),...this.config.apiKey?{"X-API-Key":this.config.apiKey}:{}},body:JSON.stringify({query:e,variables:t}),signal:r.signal})}catch(i){throw i instanceof Error?i.name==="AbortError"?(this.logError("Request timed out"),new x("Request timed out")):(this.logError(`Connection failed: ${i.message}`),new k(`Connection failed: ${i.message}`)):new k("Connection failed")}finally{clearTimeout(s);}}async handleResponse(e){switch(this.extractRateLimitInfo(e),e.status){case 200:return this.handleSuccessResponse(e);case 401:throw new D("Invalid or missing API key");case 429:return this.handleRateLimitResponse(e);default:if(e.status>=400&&e.status<500)return this.handleClientError(e);if(e.status>=500){let t=await this.parseBody(e);throw new I(`Server error (${e.status})`,{status:e.status,response:t})}throw new l(`Unexpected response status: ${e.status}`)}}async handleSuccessResponse(e){let t=await this.parseBody(e);return t.errors&&t.errors.length>0&&this.handleGraphQLErrors(t.errors,t),t.data??{}}handleGraphQLErrors(e,t){let r=e[0],s=r.message||"GraphQL error";switch(r.extensions?.code){case "UNAUTHENTICATED":throw new D(s,t);case "RATE_LIMITED":throw new p(s,{response:t});case "NOT_FOUND":throw new l(s,t);case "VALIDATION_ERROR":case "BAD_USER_INPUT":throw new R(s,{errors:e,response:t});default:throw new B(s,{errors:e,response:t})}}async handleRateLimitResponse(e){let t=parseInt(e.headers.get("Retry-After")??"60",10),r=parseInt(e.headers.get("X-RateLimit-Limit")??"",10)||null,s=parseInt(e.headers.get("X-RateLimit-Remaining")??"",10)||null,i=parseInt(e.headers.get("X-RateLimit-Reset")??"",10)||null,n=i?new Date(i*1e3):null,a=await this.parseBody(e);throw new p("Rate limit exceeded",{retryAfter:t,limit:r,remaining:s,resetAt:n,response:a})}async handleClientError(e){let t=await this.parseBody(e),r=t.errors?.[0]?.message??`Client error (${e.status})`;throw new R(r,{response:t})}async parseBody(e){try{return await e.json()}catch{return {raw:await e.text()}}}extractRateLimitInfo(e){let t=parseInt(e.headers.get("X-RateLimit-Limit")??"",10)||null,r=parseInt(e.headers.get("X-RateLimit-Remaining")??"",10)||null,s=parseInt(e.headers.get("X-RateLimit-Reset")??"",10)||null;M={limit:t,remaining:r,reset:s};}extractOperationName(e){let t=e.match(/(?:query|mutation)\s+(\w+)/);return t?t[1]:"Unknown"}sleep(e){return new Promise(t=>setTimeout(t,e))}logRequest(e,t){!this.config.logger||!this.config.shouldLog("debug")||this.config.logger.debug(`[CardDB] Executing ${e}`,{variables:t});}logResponse(e,t){!this.config.logger||!this.config.shouldLog("info")||this.config.logger.info(`[CardDB] ${e} completed in ${t}ms`);}logRateLimitRetry(e,t,r){!this.config.logger||!this.config.shouldLog("warn")||this.config.logger.warn(`[CardDB] Rate limited on ${e}, retry ${t}/${this.config.maxRetries} after ${r}s`);}logNetworkRetry(e,t,r,s){if(!this.config.logger||!this.config.shouldLog("warn"))return;let i=s instanceof Error?s.name:"Unknown";this.config.logger.warn(`[CardDB] ${i} on ${e}, retry ${t}/${this.config.maxNetworkRetries} after ${r}ms`);}logError(e){!this.config.logger||!this.config.shouldLog("error")||this.config.logger.error(`[CardDB] ${e}`);}};function ce(e,t,r){let s=Object.entries(r).filter(([,i])=>i!==void 0).sort(([i],[n])=>i.localeCompare(n)).map(([i,n])=>`${i}=${JSON.stringify(n)}`).join("&");return `carddb:${e}:${t}:${s}`}async function oe(e,t){let r=e.get(t);return r}async function ue(e,t,r,s){let i=e.set(t,r,s);i instanceof Promise&&await i;}var g=class{connection;config;constructor(e,t){this.connection=e,this.config=t;}resolvePublisher(e){let t=this.config.resolvePublisher(e);if(!t)throw new Error("publisher_slug is required (no default configured)");return t}resolveGame(e){let t=this.config.resolveGame(e);if(!t)throw new Error("game_key is required (no default configured)");return t}validateAccess(e,t){this.config.validateAccess(e,t);}async withCache(e,t,r,s){let i=r.cache??!!this.config.cache,n=this.config.cache;if(!i||!n)return s();let a=await oe(n,e);if(a!==null)return a;let o=await s();if(o!=null){let u=this.config.cacheTtlFor(t);await ue(n,e,o,u);}return o}cacheKey(e,t,r){return ce(e,t,r)}},le=class extends g{constructor(e,t){super(e,t);}async search(e={}){let{query:t,variables:r}=c.searchPublishers({search:e.search,first:e.first,after:e.after}),s=this.cacheKey("publishers","search",r),i=await this.withCache(s,"publishers",e,async()=>(await this.connection.execute(t,r)).searchPublishers);return new h(i,{nextPageLoader:async n=>this.search({...e,after:n})})}async get(e,t={}){let r=this.isUUID(e),s=this.cacheKey("publishers","get",{[r?"id":"slug"]:e});return this.withCache(s,"publishers",t,async()=>{if(r){let{query:i}=c.fetchPublisherById();return (await this.connection.execute(i,{id:e})).fetchPublisher??null}else {let{query:i}=c.fetchPublisherBySlug();return (await this.connection.execute(i,{slug:e})).fetchPublisher??null}})}async getMany(e,t={}){if(e.length===0)return [];let r=this.cacheKey("publishers","getMany",{slugs:e});return this.withCache(r,"publishers",t,async()=>{let{query:s}=c.fetchPublishers();return (await this.connection.execute(s,{slugs:e})).fetchPublishers??[]})}isUUID(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}},he=class extends g{constructor(e,t){super(e,t);}async search(e={}){let t=this.config.resolvePublisher(e.publisherSlug);t&&this.validateAccess(t);let{query:r,variables:s}=c.searchGames({publisherSlug:t,search:e.search,first:e.first,after:e.after}),i=this.cacheKey("games","search",s),n=await this.withCache(i,"games",e,async()=>(await this.connection.execute(r,s)).searchGames);return new h(n,{nextPageLoader:async a=>this.search({...e,after:a})})}async get(e,t,r){if(typeof t=="string"){let s=e,i=t,n=r??{};this.validateAccess(s,i);let a=this.cacheKey("games","getByKeys",{publisherSlug:s,gameKey:i});return this.withCache(a,"games",n,async()=>{let{query:o}=c.fetchGameByKeys();return (await this.connection.execute(o,{publisherSlug:s,gameKey:i})).fetchGame??null})}else {let s=e,i=t??{},n=this.cacheKey("games","get",{id:s});return this.withCache(n,"games",i,async()=>{let{query:a}=c.fetchGameById();return (await this.connection.execute(a,{id:s})).fetchGame??null})}}async getMany(e,t={}){if(e.length===0)return [];let r=this.cacheKey("games","getMany",{ids:e});return this.withCache(r,"games",t,async()=>{let{query:s}=c.fetchGames();return (await this.connection.execute(s,{ids:e})).fetchGames??[]})}},de=class extends g{constructor(e,t){super(e,t);}async search(e={}){let t=this.config.resolvePublisher(e.publisherSlug),r=this.config.resolveGame(e.gameKey);t&&this.validateAccess(t,r);let{query:s,variables:i}=c.searchDatasets({publisherSlug:t,gameKey:r,search:e.search,purpose:e.purpose,first:e.first,after:e.after}),n=this.cacheKey("datasets","search",i),a=await this.withCache(n,"datasets",e,async()=>(await this.connection.execute(s,i)).searchDatasets);return new h(a,{nextPageLoader:async o=>this.search({...e,after:o})})}async get(e,t,r,s){if(typeof t=="string"&&typeof r=="string"){let i=e,n=t,a=s??{};this.validateAccess(i,n);let o=this.cacheKey("datasets","getByKeys",{publisherSlug:i,gameKey:n,datasetKey:r});return this.withCache(o,"datasets",a,async()=>{let{query:u}=c.fetchDatasetByKeys();return (await this.connection.execute(u,{publisherSlug:i,gameKey:n,datasetKey:r})).fetchDataset??null})}else {let i=e,n=t??{},a=this.cacheKey("datasets","get",{id:i});return this.withCache(a,"datasets",n,async()=>{let{query:o}=c.fetchDatasetById();return (await this.connection.execute(o,{id:i})).fetchDataset??null})}}async getMany(e,t={}){if(e.length===0)return [];let r=this.cacheKey("datasets","getMany",{ids:e});return this.withCache(r,"datasets",t,async()=>{let{query:s}=c.fetchDatasets();return (await this.connection.execute(s,{ids:e})).fetchDatasets??[]})}},fe=class extends g{constructor(e,t){super(e,t);}async fetch(e,t={}){let r=this.cacheKey("decks","fetch",{id:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=c.fetchDeckById();return (await this.connection.execute(s,{id:e})).fetchDeck??null})}async fetchMine(e,t={}){let r=this.cacheKey("decks","fetchMine",{id:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=c.myDeck();return (await this.connection.execute(s,{id:e})).myDeck??null})}async fetchBySlug(e,t,r,s={}){let i=this.cacheKey("decks","fetchBySlug",{publisherSlug:e,gameKey:t,slug:r});return this.withCache(i,"decks",s,async()=>{let{query:n}=c.fetchDeckBySlug();return (await this.connection.execute(n,{publisherSlug:e,gameKey:t,slug:r})).fetchDeckBySlug??null})}async fetchByExternalRef(e,t={}){let r=this.cacheKey("decks","fetchByExternalRef",{externalRef:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=c.fetchDeckByExternalRef();return (await this.connection.execute(s,{externalRef:e})).fetchDeckByExternalRef??null})}async listMine(e={}){let{query:t,variables:r}=c.listMyDecks({first:e.first,after:e.after}),s=this.cacheKey("decks","listMine",r),i=await this.withCache(s,"decks",e,async()=>(await this.connection.execute(t,r)).myDecks);return new h(i,{nextPageLoader:async n=>this.listMine({...e,after:n})})}async fetchVersion(e,t={}){let r=this.cacheKey("decks","fetchVersion",{id:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=c.deckVersion();return (await this.connection.execute(s,{id:e})).deckVersion??null})}async listVersions(e,t={}){let{query:r,variables:s}=c.deckVersions({first:t.first,after:t.after}),i={deckId:e,...s},n=this.cacheKey("decks","listVersions",i),a=await this.withCache(n,"decks",t,async()=>(await this.connection.execute(r,i)).deckVersions);return new h(a,{nextPageLoader:async o=>this.listVersions(e,{...t,after:o})})}async preview(e,t={}){let r=this.cacheKey("decks","preview",{token:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=c.deckPreview();return (await this.connection.execute(s,{token:e})).deckPreview??null})}async listCollaborators(e,t={}){let r=this.cacheKey("decks","listCollaborators",{deckId:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=c.deckCollaborators();return (await this.connection.execute(s,{deckId:e})).deckCollaborators})}async listPreviewTokens(e,t={}){let r=this.cacheKey("decks","listPreviewTokens",{deckId:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=c.deckPreviewTokens();return (await this.connection.execute(s,{deckId:e})).deckPreviewTokens})}async create(e){let{query:t}=c.createDeck(),r=c.deckCreateVariables(e);return (await this.connection.execute(t,r)).deckCreate}async update(e,t){let{query:r}=c.updateDeck(),s=c.deckUpdateVariables(e,t);return (await this.connection.execute(r,s)).deckUpdate}async delete(e){let{query:t}=c.deleteDeck();return !!(await this.connection.execute(t,{id:e})).deckDelete}async publish(e,t={}){let{query:r}=c.publishDeck(),s=c.deckPublishVariables(e,t);return (await this.connection.execute(r,s)).deckPublish}async upsertCollaborator(e,t,r){let{query:s}=c.upsertDeckCollaborator(),i=c.deckCollaboratorVariables(e,t,r);return (await this.connection.execute(s,i)).deckCollaboratorUpsert}async removeCollaborator(e,t){let{query:r}=c.removeDeckCollaborator(),s=c.deckCollaboratorVariables(e,t);return !!(await this.connection.execute(r,s)).deckCollaboratorRemove}async createPreviewToken(e){let{query:t}=c.createDeckPreviewToken(),r=c.deckPreviewTokenCreateVariables(e);return (await this.connection.execute(t,r)).deckPreviewTokenCreate}async revokePreviewToken(e){let{query:t}=c.revokeDeckPreviewToken();return !!(await this.connection.execute(t,{id:e})).deckPreviewTokenRevoke}async hydrateEntries(e){if(e.entries.length===0)return [];let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let s=e.entries.map(o=>o.identifier),i=this.cacheKey("decks","hydrateEntries",{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifiers:s}),n=await this.withCache(i,"decks",e,async()=>{let{query:o}=c.fetchRecordsByIdentifier();return (await this.connection.execute(o,{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifiers:s})).fetchRecordsByIdentifier}),a=ye(n,s,e.identifierField);return e.entries.map(o=>({...o,record:a.get(o.identifier)??null}))}};function ye(e,t,r){let s=new Set(t),i=new Map;for(let n of e){let a=r?n.data[r]:Object.values(n.data).find(u=>s.has(String(u)));if(a==null)continue;let o=String(a);s.has(o)&&(i.set(o,n),s.delete(o));}return i}var ge=class extends g{constructor(e,t){super(e,t);}async search(e){let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let s=P(e.filter),{query:i,variables:n}=c.searchRecords({publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,filter:s,search:e.search,orderBy:e.orderBy,resolveLinks:e.resolveLinks,first:e.first,after:e.after,validateSchema:e.validateSchema,includePricing:e.includePricing}),a=this.cacheKey("records","search",{...n,includePricing:e.includePricing??false}),o=await this.withCache(a,"records",e,async()=>(await this.connection.execute(i,n)).searchRecords);return new h(o,{nextPageLoader:async u=>this.search({...e,after:u})})}async get(e,t={}){let r=this.cacheKey("records","get",{id:e,includePricing:t.includePricing??false});return this.withCache(r,"records",t,async()=>{let{query:s}=c.fetchRecordById({includePricing:t.includePricing});return (await this.connection.execute(s,{id:e})).fetchRecord??null})}async getByIdentifier(e){let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let s=this.cacheKey("records","getByIdentifier",{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifier:e.identifier,includePricing:e.includePricing??false});return this.withCache(s,"records",e,async()=>{let{query:i}=c.fetchRecordByIdentifier({includePricing:e.includePricing});return (await this.connection.execute(i,{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifier:e.identifier})).fetchRecordByIdentifier??null})}async getManyByIdentifier(e){if(e.identifiers.length===0)return [];let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let s=this.cacheKey("records","getManyByIdentifier",{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifiers:e.identifiers,includePricing:e.includePricing??false});return this.withCache(s,"records",e,async()=>{let{query:i}=c.fetchRecordsByIdentifier({includePricing:e.includePricing});return (await this.connection.execute(i,{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifiers:e.identifiers})).fetchRecordsByIdentifier??[]})}async getMany(e,t={}){if(e.length===0)return [];let r=this.cacheKey("records","getMany",{ids:e,includePricing:t.includePricing??false});return this.withCache(r,"records",t,async()=>{let{query:s}=c.fetchRecords({includePricing:t.includePricing});return (await this.connection.execute(s,{ids:e})).fetchRecords??[]})}},me=class extends g{constructor(e,t){super(e,t);}async datasets(e={}){let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let{query:s,variables:i}=c.searchDatasets({publisherSlug:t,gameKey:r,search:e.search,purpose:"RULES",first:e.first,after:e.after}),n=this.cacheKey("rules","datasets",i),a=await this.withCache(n,"datasets",e,async()=>(await this.connection.execute(s,i)).searchDatasets);return new h(a,{nextPageLoader:async o=>this.datasets({...e,after:o})})}async list(e={}){return this.searchRuleRecords("rules",e)}async formats(e={}){return this.searchRuleRecords(e.datasetKey??"formats",e)}async searchRuleRecords(e,t){let r=this.resolvePublisher(t.publisherSlug),s=this.resolveGame(t.gameKey),i=t.datasetKey??e;this.validateAccess(r,s);let n=P(t.filter),{query:a,variables:o}=c.searchRecords({publisherSlug:r,gameKey:s,datasetKey:i,filter:n,search:t.search,orderBy:t.orderBy,resolveLinks:t.resolveLinks,first:t.first,after:t.after,validateSchema:t.validateSchema}),u=this.cacheKey("rules","records",o),E=await this.withCache(u,"records",t,async()=>(await this.connection.execute(a,o)).searchRecords);return new h(E,{nextPageLoader:async C=>this.searchRuleRecords(e,{...t,after:C})})}},Qe=class _{config;connection;publishers;games;datasets;records;decks;rules;constructor(t={}){this.config=new te(t),this.connection=new ae(this.config),this.publishers=new le(this.connection,this.config),this.games=new he(this.connection,this.config),this.datasets=new de(this.connection,this.config),this.records=new ge(this.connection,this.config),this.decks=new fe(this.connection,this.config),this.rules=new me(this.connection,this.config);}async me(){let{query:t}=c.fetchMe();return (await this.connection.execute(t)).fetchMe??null}getRateLimitInfo(){return ne()}withConfig(t){let r=this.config.merge(t);return new _({apiKey:r.apiKey,endpoint:r.endpoint,timeout:r.timeout,openTimeout:r.openTimeout,defaultPublisher:r.defaultPublisher,defaultGame:r.defaultGame,allowedPublishers:r.allowedPublishers,allowedGames:r.allowedGames,logger:r.logger,logLevel:r.logLevel,retryOnRateLimit:r.retryOnRateLimit,maxRetries:r.maxRetries,retryOnNetworkError:r.retryOnNetworkError,maxNetworkRetries:r.maxNetworkRetries,retryBaseDelay:r.retryBaseDelay,retryMaxDelay:r.retryMaxDelay,cache:r.cache,cacheTtl:r.cacheTtl,cacheTtls:r.cacheTtls})}};
|
|
466
|
-
export{
|
|
1062
|
+
`}}},d=class{totalCount;pageInfo;items;nextPageLoader;constructor(e,t={}){this.totalCount=e.totalCount,this.pageInfo=e.pageInfo,this.items=e.edges.map(r=>t.itemTransformer?t.itemTransformer(r.node):r.node),this.nextPageLoader=t.nextPageLoader;}get hasNextPage(){return this.pageInfo.hasNextPage}get hasPreviousPage(){return this.pageInfo.hasPreviousPage}get endCursor(){return this.pageInfo.endCursor}get startCursor(){return this.pageInfo.startCursor}get length(){return this.items.length}get isEmpty(){return this.items.length===0}get first(){return this.items[0]}get last(){return this.items[this.items.length-1]}async nextPage(){if(!this.hasNextPage)return null;if(!this.nextPageLoader)throw new Error("No next page loader configured");return this.endCursor?this.nextPageLoader(this.endCursor):null}async*[Symbol.asyncIterator](){let e=this;for(;e;){for(let t of e.items)yield t;if(!e.hasNextPage)break;e=await e.nextPage();}}async forEach(e){let t=0;for await(let r of this)await e(r,t++);}async map(e){let t=[],r=0;for await(let s of this)t.push(await e(s,r++));return t}async filter(e){let t=[],r=0;for await(let s of this)await e(s,r++)&&t.push(s);return t}async find(e){let t=0;for await(let r of this)if(await e(r,t++))return r}async take(e){let t=[];for await(let r of this){if(t.length>=e)break;t.push(r);}return t}async toArray(){let e=[];for await(let t of this)e.push(t);return e}async*batches(){let e=this;for(;e&&(e.items.length>0&&(yield e.items),!!e.hasNextPage);)e=await e.nextPage();}each(){return this}};var ve="https://carddb.xtda.org/query",be=3e4,we=1e4,Ae=300,Ee=3,Re=2,Se=1e3,xe=3e4,Te=class se{apiKey;publishableKey;secretKey;accessToken;legacyApiKey;environment;endpoint;timeout;openTimeout;defaultPublisher;defaultGame;allowedPublishers;allowedGames;logger;logLevel;retryOnRateLimit;maxRetries;retryOnNetworkError;maxNetworkRetries;retryBaseDelay;retryMaxDelay;cache;cacheTtl;cacheTtls;constructor(t={}){this.legacyApiKey=t.apiKey,this.publishableKey=t.publishableKey,this.secretKey=t.secretKey,this.accessToken=t.accessToken,this.apiKey=t.apiKey??t.publishableKey??t.secretKey,this.environment=t.environment,this.endpoint=t.endpoint??ve,this.timeout=t.timeout??be,this.openTimeout=t.openTimeout??we,this.defaultPublisher=t.defaultPublisher,this.defaultGame=t.defaultGame,this.allowedPublishers=t.allowedPublishers,this.allowedGames=t.allowedGames,this.logger=t.logger,this.logLevel=t.logLevel??"info",this.retryOnRateLimit=t.retryOnRateLimit??false,this.maxRetries=t.maxRetries??Ee,this.retryOnNetworkError=t.retryOnNetworkError??true,this.maxNetworkRetries=t.maxNetworkRetries??Re,this.retryBaseDelay=t.retryBaseDelay??Se,this.retryMaxDelay=t.retryMaxDelay??xe,this.cache=t.cache,this.cacheTtl=t.cacheTtl??Ae,this.cacheTtls=t.cacheTtls??{};}calculateRetryDelay(t){let r=this.retryBaseDelay*Math.pow(2,t),s=Math.min(r,this.retryMaxDelay),i=s*.25*(Math.random()*2-1);return Math.round(s+i)}cacheTtlFor(t){return this.cacheTtls[t]??this.cacheTtl}resolvePublisher(t){return t??this.defaultPublisher}resolveGame(t){return t??this.defaultGame}validatePublisher(t){if(this.allowedPublishers&&!this.allowedPublishers.includes(t))throw new k(`Publisher '${t}' is not in the allowed publishers list`)}validateGame(t,r){if(!this.allowedGames)return;let s=this.allowedGames[t];if(s&&!s.includes(r))throw new k(`Game '${r}' is not allowed for publisher '${t}'`)}validateAccess(t,r){t&&(this.validatePublisher(t),r&&this.validateGame(t,r));}requireSecretCredential(t){if(!(!this.accessToken&&(this.legacyApiKey||this.secretKey&&!this.publishableKey)))throw new k(`${t} requires a server-side secretKey or legacy apiKey credential`)}requestApiKey(){return this.legacyApiKey??this.publishableKey??this.secretKey}configApiKey(){return this.legacyApiKey}shouldLog(t){let r={debug:0,info:1,warn:2,error:3};return r[t]>=r[this.logLevel]}merge(t){return new se({apiKey:t.apiKey??this.legacyApiKey,publishableKey:t.publishableKey??this.publishableKey,secretKey:t.secretKey??this.secretKey,accessToken:t.accessToken??this.accessToken,environment:t.environment??this.environment,endpoint:t.endpoint??this.endpoint,timeout:t.timeout??this.timeout,openTimeout:t.openTimeout??this.openTimeout,defaultPublisher:t.defaultPublisher??this.defaultPublisher,defaultGame:t.defaultGame??this.defaultGame,allowedPublishers:t.allowedPublishers??this.allowedPublishers,allowedGames:t.allowedGames??this.allowedGames,logger:t.logger??this.logger,logLevel:t.logLevel??this.logLevel,retryOnRateLimit:t.retryOnRateLimit??this.retryOnRateLimit,maxRetries:t.maxRetries??this.maxRetries,retryOnNetworkError:t.retryOnNetworkError??this.retryOnNetworkError,maxNetworkRetries:t.maxNetworkRetries??this.maxNetworkRetries,retryBaseDelay:t.retryBaseDelay??this.retryBaseDelay,retryMaxDelay:t.retryMaxDelay??this.retryMaxDelay,cache:t.cache??this.cache,cacheTtl:t.cacheTtl??this.cacheTtl,cacheTtls:t.cacheTtls??this.cacheTtls})}},ie="0.1.0";function Ke(){if(typeof globalThis<"u"&&"Bun"in globalThis){let e=globalThis.Bun&&typeof globalThis.Bun=="object"&&globalThis.Bun.version;return {name:"bun",version:typeof e=="string"?e:"unknown"}}if(typeof globalThis<"u"&&"Deno"in globalThis){let e=globalThis.Deno&&typeof globalThis.Deno=="object"&&globalThis.Deno.version&&typeof globalThis.Deno.version=="object"&&globalThis.Deno.version.deno;return {name:"deno",version:typeof e=="string"?e:"unknown"}}return typeof process<"u"&&process.versions&&process.versions.node?{name:"node",version:process.versions.node}:typeof navigator<"u"&&navigator.userAgent?Ce(navigator.userAgent):{name:"unknown",version:"unknown"}}function Ce(e){let t=e.match(/Edg\/(\d+(?:\.\d+)*)/);if(t)return {name:"edge",version:t[1]};let r=e.match(/Chrome\/(\d+(?:\.\d+)*)/);if(r&&!e.includes("Edg/"))return {name:"chrome",version:r[1]};let s=e.match(/Firefox\/(\d+(?:\.\d+)*)/);if(s)return {name:"firefox",version:s[1]};let i=e.match(/Version\/(\d+(?:\.\d+)*).*Safari/);return i?{name:"safari",version:i[1]}:{name:"browser",version:"unknown"}}function qe(){let e=Ke();return `CardDB-SDK/js/${ie} (${e.name}/${e.version})`}function $t(){return ie}var ne=null;function Pe(){return ne}var Ue=class{config;constructor(e){this.config=e;}async execute(e,t={}){let r=this.extractOperationName(e),s=0,i=0;for(;;)try{let c=Date.now();this.logRequest(r,t);let a=await this.fetch(e,t),o=Date.now()-c,l=await this.handleResponse(a);return this.logResponse(r,o),l}catch(c){if(c instanceof w&&this.config.retryOnRateLimit&&s<this.config.maxRetries){s++;let a=c.retryAfter??60;this.logRateLimitRetry(r,s,a),await this.sleep(a*1e3);continue}if(this.isRetryableNetworkError(c)&&this.config.retryOnNetworkError&&i<this.config.maxNetworkRetries){let a=this.config.calculateRetryDelay(i);this.logNetworkRetry(r,i+1,a,c),i++,await this.sleep(a);continue}if(c instanceof C&&this.config.retryOnNetworkError&&i<this.config.maxNetworkRetries){let a=this.config.calculateRetryDelay(i);this.logNetworkRetry(r,i+1,a,c),i++,await this.sleep(a);continue}throw c}}isRetryableNetworkError(e){return e instanceof D||e instanceof K}async fetch(e,t){let r=new AbortController,s=setTimeout(()=>r.abort(),this.config.timeout),i=this.config.requestApiKey();try{return await fetch(this.config.endpoint,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":qe(),...this.config.accessToken?{Authorization:`Bearer ${this.config.accessToken}`}:{},...!this.config.accessToken&&i?{"X-API-Key":i}:{}},body:JSON.stringify({query:e,variables:t}),signal:r.signal})}catch(c){throw c instanceof Error?c.name==="AbortError"?(this.logError("Request timed out"),new K("Request timed out")):(this.logError(`Connection failed: ${c.message}`),new D(`Connection failed: ${c.message}`)):new D("Connection failed")}finally{clearTimeout(s);}}async handleResponse(e){switch(this.extractRateLimitInfo(e),e.status){case 200:return this.handleSuccessResponse(e);case 401:throw new x("Invalid or missing API key");case 429:return this.handleRateLimitResponse(e);default:if(e.status>=400&&e.status<500)return this.handleClientError(e);if(e.status>=500){let t=await this.parseBody(e);throw new C(`Server error (${e.status})`,{status:e.status,response:t})}throw new h(`Unexpected response status: ${e.status}`)}}async handleSuccessResponse(e){let t=await this.parseBody(e);return t.errors&&t.errors.length>0&&this.handleGraphQLErrors(t.errors,t),t.data??{}}handleGraphQLErrors(e,t){let r=e[0],s=r.message||"GraphQL error";switch(r.extensions?.code){case "UNAUTHENTICATED":throw new x(s,t);case "RATE_LIMITED":throw new w(s,{response:t});case "NOT_FOUND":throw new h(s,t);case "VALIDATION_ERROR":case "BAD_USER_INPUT":throw new T(s,{errors:e,response:t});default:throw new Q(s,{errors:e,response:t})}}async handleRateLimitResponse(e){let t=parseInt(e.headers.get("Retry-After")??"60",10),r=parseInt(e.headers.get("X-RateLimit-Limit")??"",10)||null,s=parseInt(e.headers.get("X-RateLimit-Remaining")??"",10)||null,i=parseInt(e.headers.get("X-RateLimit-Reset")??"",10)||null,c=i?new Date(i*1e3):null,a=await this.parseBody(e);throw new w("Rate limit exceeded",{retryAfter:t,limit:r,remaining:s,resetAt:c,response:a})}async handleClientError(e){let t=await this.parseBody(e),r=t.errors?.[0]?.message??`Client error (${e.status})`;throw new T(r,{response:t})}async parseBody(e){try{return await e.json()}catch{return {raw:await e.text()}}}extractRateLimitInfo(e){let t=parseInt(e.headers.get("X-RateLimit-Limit")??"",10)||null,r=parseInt(e.headers.get("X-RateLimit-Remaining")??"",10)||null,s=parseInt(e.headers.get("X-RateLimit-Reset")??"",10)||null;ne={limit:t,remaining:r,reset:s};}extractOperationName(e){let t=e.match(/(?:query|mutation)\s+(\w+)/);return t?t[1]:"Unknown"}sleep(e){return new Promise(t=>setTimeout(t,e))}logRequest(e,t){!this.config.logger||!this.config.shouldLog("debug")||this.config.logger.debug(`[CardDB] Executing ${e}`,{variables:t});}logResponse(e,t){!this.config.logger||!this.config.shouldLog("info")||this.config.logger.info(`[CardDB] ${e} completed in ${t}ms`);}logRateLimitRetry(e,t,r){!this.config.logger||!this.config.shouldLog("warn")||this.config.logger.warn(`[CardDB] Rate limited on ${e}, retry ${t}/${this.config.maxRetries} after ${r}s`);}logNetworkRetry(e,t,r,s){if(!this.config.logger||!this.config.shouldLog("warn"))return;let i=s instanceof Error?s.name:"Unknown";this.config.logger.warn(`[CardDB] ${i} on ${e}, retry ${t}/${this.config.maxNetworkRetries} after ${r}ms`);}logError(e){!this.config.logger||!this.config.shouldLog("error")||this.config.logger.error(`[CardDB] ${e}`);}};function Fe(e,t,r){let s=Object.entries(r).filter(([,i])=>i!==void 0).sort(([i],[c])=>i.localeCompare(c)).map(([i,c])=>`${i}=${JSON.stringify(c)}`).join("&");return `carddb:${e}:${t}:${s}`}async function Le(e,t){let r=e.get(t);return r}async function Be(e,t,r,s){let i=e.set(t,r,s);i instanceof Promise&&await i;}var g=class{connection;config;constructor(e,t){this.connection=e,this.config=t;}resolvePublisher(e){let t=this.config.resolvePublisher(e);if(!t)throw new Error("publisher_slug is required (no default configured)");return t}resolveGame(e){let t=this.config.resolveGame(e);if(!t)throw new Error("game_key is required (no default configured)");return t}validateAccess(e,t){this.config.validateAccess(e,t);}async withCache(e,t,r,s){let i=r.cache??!!this.config.cache,c=this.config.cache;if(!i||!c)return s();let a=await Le(c,e);if(a!==null)return a;let o=await s();if(o!=null){let l=this.config.cacheTtlFor(t);await Be(c,e,o,l);}return o}cacheKey(e,t,r){return Fe(e,t,r)}},_e=class extends g{constructor(e,t){super(e,t);}async search(e={}){let{query:t,variables:r}=n.searchPublishers({search:e.search,first:e.first,after:e.after}),s=this.cacheKey("publishers","search",r),i=await this.withCache(s,"publishers",e,async()=>(await this.connection.execute(t,r)).searchPublishers);return new d(i,{nextPageLoader:async c=>this.search({...e,after:c})})}async get(e,t={}){let r=this.isUUID(e),s=this.cacheKey("publishers","get",{[r?"id":"slug"]:e});return this.withCache(s,"publishers",t,async()=>{if(r){let{query:i}=n.fetchPublisherById();return (await this.connection.execute(i,{id:e})).fetchPublisher??null}else {let{query:i}=n.fetchPublisherBySlug();return (await this.connection.execute(i,{slug:e})).fetchPublisher??null}})}async getMany(e,t={}){if(e.length===0)return [];let r=this.cacheKey("publishers","getMany",{slugs:e});return this.withCache(r,"publishers",t,async()=>{let{query:s}=n.fetchPublishers();return (await this.connection.execute(s,{slugs:e})).fetchPublishers??[]})}isUUID(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}},Ve=class extends g{constructor(e,t){super(e,t);}async search(e={}){let t=this.config.resolvePublisher(e.publisherSlug);t&&this.validateAccess(t);let{query:r,variables:s}=n.searchGames({publisherSlug:t,search:e.search,first:e.first,after:e.after}),i=this.cacheKey("games","search",s),c=await this.withCache(i,"games",e,async()=>(await this.connection.execute(r,s)).searchGames);return new d(c,{nextPageLoader:async a=>this.search({...e,after:a})})}async get(e,t,r){if(typeof t=="string"){let s=e,i=t,c=r??{};this.validateAccess(s,i);let a=this.cacheKey("games","getByKeys",{publisherSlug:s,gameKey:i});return this.withCache(a,"games",c,async()=>{let{query:o}=n.fetchGameByKeys();return (await this.connection.execute(o,{publisherSlug:s,gameKey:i})).fetchGame??null})}else {let s=e,i=t??{},c=this.cacheKey("games","get",{id:s});return this.withCache(c,"games",i,async()=>{let{query:a}=n.fetchGameById();return (await this.connection.execute(a,{id:s})).fetchGame??null})}}async getMany(e,t={}){if(e.length===0)return [];let r=this.cacheKey("games","getMany",{ids:e});return this.withCache(r,"games",t,async()=>{let{query:s}=n.fetchGames();return (await this.connection.execute(s,{ids:e})).fetchGames??[]})}},Ne=class extends g{constructor(e,t){super(e,t);}async search(e={}){let t=this.config.resolvePublisher(e.publisherSlug),r=this.config.resolveGame(e.gameKey);t&&this.validateAccess(t,r);let{query:s,variables:i}=n.searchDatasets({publisherSlug:t,gameKey:r,search:e.search,purpose:e.purpose,first:e.first,after:e.after}),c=this.cacheKey("datasets","search",i),a=await this.withCache(c,"datasets",e,async()=>(await this.connection.execute(s,i)).searchDatasets);return new d(a,{nextPageLoader:async o=>this.search({...e,after:o})})}async get(e,t,r,s){if(typeof t=="string"&&typeof r=="string"){let i=e,c=t,a=s??{};this.validateAccess(i,c);let o=this.cacheKey("datasets","getByKeys",{publisherSlug:i,gameKey:c,datasetKey:r});return this.withCache(o,"datasets",a,async()=>{let{query:l}=n.fetchDatasetByKeys();return (await this.connection.execute(l,{publisherSlug:i,gameKey:c,datasetKey:r})).fetchDataset??null})}else {let i=e,c=t??{},a=this.cacheKey("datasets","get",{id:i});return this.withCache(a,"datasets",c,async()=>{let{query:o}=n.fetchDatasetById();return (await this.connection.execute(o,{id:i})).fetchDataset??null})}}async getMany(e,t={}){if(e.length===0)return [];let r=this.cacheKey("datasets","getMany",{ids:e});return this.withCache(r,"datasets",t,async()=>{let{query:s}=n.fetchDatasets();return (await this.connection.execute(s,{ids:e})).fetchDatasets??[]})}},Oe=class extends g{constructor(e,t){super(e,t);}async fetch(e,t={}){let r=this.cacheKey("decks","fetch",{id:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.fetchDeckById();return (await this.connection.execute(s,{id:e})).fetchDeck??null})}async get(e,t={}){let r=this.cacheKey("decks","get",{id:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckById();return (await this.connection.execute(s,{id:e})).deck??null})}async fetchMine(e,t={}){let r=this.cacheKey("decks","fetchMine",{id:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.myDeck();return (await this.connection.execute(s,{id:e})).myDeck??null})}async fetchBySlug(e,t,r,s={}){let i=this.cacheKey("decks","fetchBySlug",{publisherSlug:e,gameKey:t,slug:r});return this.withCache(i,"decks",s,async()=>{let{query:c}=n.fetchDeckBySlug();return (await this.connection.execute(c,{publisherSlug:e,gameKey:t,slug:r})).fetchDeckBySlug??null})}async getBySlug(e,t,r,s={}){let i=this.cacheKey("decks","getBySlug",{publisherSlug:e,gameKey:t,slug:r});return this.withCache(i,"decks",s,async()=>{let{query:c}=n.deckBySlug();return (await this.connection.execute(c,{publisherSlug:e,gameKey:t,slug:r})).deckBySlug??null})}async fetchByExternalRef(e,t={}){let r=this.cacheKey("decks","fetchByExternalRef",{externalRef:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.fetchDeckByExternalRef();return (await this.connection.execute(s,{externalRef:e})).fetchDeckByExternalRef??null})}async getByExternalRef(e,t={}){let r=this.cacheKey("decks","getByExternalRef",{externalRef:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckByExternalRef();return (await this.connection.execute(s,{externalRef:e})).deckByExternalRef??null})}async listMine(e={}){let{query:t,variables:r}=n.listMyDecks({first:e.first,after:e.after,includeArchived:e.includeArchived}),s=this.cacheKey("decks","listMine",r),i=await this.withCache(s,"decks",e,async()=>(await this.connection.execute(t,r)).myDecks);return new d(i,{nextPageLoader:async c=>this.listMine({...e,after:c})})}async listViewer(e={}){let{query:t,variables:r}=n.viewerDecks({filter:e.filter,first:e.first,after:e.after}),s=this.cacheKey("decks","listViewer",r),i=await this.withCache(s,"decks",e,async()=>(await this.connection.execute(t,r)).viewerDecks);return new d(i,{nextPageLoader:async c=>this.listViewer({...e,after:c})})}async listApp(e={}){this.config.requireSecretCredential("decks.listApp");let{query:t,variables:r}=n.appDecks({filter:e.filter,first:e.first,after:e.after}),s=this.cacheKey("decks","listApp",r),i=await this.withCache(s,"decks",e,async()=>(await this.connection.execute(t,r)).appDecks);return new d(i,{nextPageLoader:async c=>this.listApp({...e,after:c})})}async listPublic(e={}){let{query:t,variables:r}=n.publicDecks({filter:e.filter,first:e.first,after:e.after}),s=this.cacheKey("decks","listPublic",r),i=await this.withCache(s,"decks",e,async()=>(await this.connection.execute(t,r)).publicDecks);return new d(i,{nextPageLoader:async c=>this.listPublic({...e,after:c})})}async fetchVersion(e,t={}){let r=this.cacheKey("decks","fetchVersion",{id:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckVersion();return (await this.connection.execute(s,{id:e})).deckVersion??null})}async listVersions(e,t={}){let{query:r,variables:s}=n.deckVersions({first:t.first,after:t.after}),i={deckId:e,...s},c=this.cacheKey("decks","listVersions",i),a=await this.withCache(c,"decks",t,async()=>(await this.connection.execute(r,i)).deckVersions);return new d(a,{nextPageLoader:async o=>this.listVersions(e,{...t,after:o})})}async preview(e,t={}){let r=this.cacheKey("decks","preview",{token:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckPreview();return (await this.connection.execute(s,{token:e})).deckPreview??null})}async embed(e,t={}){let r=this.cacheKey("decks","embed",{token:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckEmbed();return (await this.connection.execute(s,{token:e})).deckEmbed??null})}async access(e,t={}){let r=this.cacheKey("decks","access",{token:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckAccess();return (await this.connection.execute(s,{token:e})).deckAccess??null})}async draftDiff(e,t={}){let r=this.cacheKey("decks","draftDiff",{id:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckDraftDiff();return (await this.connection.execute(s,{id:e})).deckDraftDiff})}async versionDiff(e,t,r={}){let s=n.deckVersionDiffVariables(e,t),i=this.cacheKey("decks","versionDiff",s);return this.withCache(i,"decks",r,async()=>{let{query:c}=n.deckVersionDiff();return (await this.connection.execute(c,s)).deckVersionDiff})}async validate(e,t,r={}){let s=n.deckValidateVariables(e,t),i=this.cacheKey("decks","validate",s);return this.withCache(i,"decks",r,async()=>{let{query:c}=n.deckValidate();return (await this.connection.execute(c,s)).deckValidate})}async hydrateDeckEntries(e,t={}){let r=n.deckHydrateEntriesVariables(e),s=this.cacheKey("decks","hydrateDeckEntries",r);return this.withCache(s,"decks",t,async()=>{let{query:i}=n.deckHydrateEntries();return (await this.connection.execute(i,r)).deckHydrateEntries})}async exportDeck(e,t="SIMPLE_TEXT",r={}){let s=n.deckExportVariables(e,t),i=this.cacheKey("decks","exportDeck",s);return this.withCache(i,"decks",r,async()=>{let{query:c}=n.deckExport();return (await this.connection.execute(c,s)).deckExport})}async sectionDefinitions(e={}){let{query:t,variables:r}=n.deckSectionDefinitions({publisherSlug:e.publisherSlug,gameKey:e.gameKey,gameId:e.gameId,rulesetKey:e.rulesetKey,rulesetVersionId:e.rulesetVersionId}),s=this.cacheKey("decks","sectionDefinitions",r);return this.withCache(s,"decks",e,async()=>(await this.connection.execute(t,r)).deckSectionDefinitions)}async listCollaborators(e,t={}){let r=this.cacheKey("decks","listCollaborators",{deckId:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckCollaborators();return (await this.connection.execute(s,{deckId:e})).deckCollaborators})}async listPreviewTokens(e,t={}){let r=this.cacheKey("decks","listPreviewTokens",{deckId:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckPreviewTokens();return (await this.connection.execute(s,{deckId:e})).deckPreviewTokens})}async listEmbedTokens(e,t={}){let r=this.cacheKey("decks","listEmbedTokens",{deckId:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckEmbedTokens();return (await this.connection.execute(s,{deckId:e})).deckEmbedTokens})}async listAccessTokenIssuers(e,t={}){let r=this.cacheKey("decks","listAccessTokenIssuers",{deckId:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckAccessTokenIssuers();return (await this.connection.execute(s,{deckId:e})).deckAccessTokenIssuers})}async listApiApplicationAccesses(e,t={}){let r=n.deckApiApplicationAccessesVariables(e,t.includeRevoked),s=this.cacheKey("decks","listApiApplicationAccesses",r);return this.withCache(s,"decks",t,async()=>{let{query:i}=n.deckApiApplicationAccesses();return (await this.connection.execute(i,r)).deckApiApplicationAccesses})}async listMyApiApplicationAccesses(e={}){let t=n.myDeckApiApplicationAccessesVariables(e.applicationId),r=this.cacheKey("decks","listMyApiApplicationAccesses",t);return this.withCache(r,"decks",e,async()=>{let{query:s}=n.myDeckApiApplicationAccesses();return (await this.connection.execute(s,t)).myDeckApiApplicationAccesses})}async create(e){let{query:t}=n.createDeck(),r=n.deckCreateVariables(e);return (await this.connection.execute(t,r)).deckCreate}async update(e,t){let{query:r}=n.updateDeck(),s=n.deckUpdateVariables(e,t);return (await this.connection.execute(r,s)).deckUpdate}async updateMetadata(e,t){return this.update(e,t)}async upsertByExternalRef(e){this.config.requireSecretCredential("decks.upsertByExternalRef");let{query:t}=n.upsertDeckByExternalRef(),r=n.deckUpsertByExternalRefVariables(e);return (await this.connection.execute(t,r)).deckUpsertByExternalRef}async claim(e,t){let{query:r}=n.claimDeck(),s=n.deckClaimVariables(e,t);return (await this.connection.execute(r,s)).deckClaim}async transferOwnership(e,t){let{query:r}=n.transferDeckOwnership(),s=n.deckTransferOwnershipVariables(e,t);return (await this.connection.execute(r,s)).deckTransferOwnership}async copy(e,t){let{query:r}=n.copyDeck(),s=n.deckCopyVariables(e,t);return (await this.connection.execute(r,s)).deckCopy}async addEntry(e){let{query:t}=n.addDeckEntry(),r=n.deckEntryAddVariables(e);return (await this.connection.execute(t,r)).deckEntryAdd}async updateEntry(e,t){let{query:r}=n.updateDeckEntry(),s=n.deckEntryUpdateVariables(e,t);return (await this.connection.execute(r,s)).deckEntryUpdate}async removeEntry(e,t){let{query:r}=n.removeDeckEntry(),s=n.deckEntryRemoveVariables(e,t);return (await this.connection.execute(r,s)).deckEntryRemove}async reorderEntries(e,t){let{query:r}=n.reorderDeckEntries(),s=n.deckEntryReorderVariables(e,t);return (await this.connection.execute(r,s)).deckEntryReorder}async replaceEntries(e,t){let{query:r}=n.replaceDeckEntries(),s=n.deckEntriesReplaceVariables(e,t);return (await this.connection.execute(r,s)).deckEntriesReplace}async importDeck(e){let{query:t}=n.importDeck(),r=n.deckImportVariables(e);return (await this.connection.execute(t,r)).deckImport}async listImportFormats(e,t={}){let{query:r,variables:s}=n.deckImportFormats({gameId:e,includeArchived:t.includeArchived,first:t.first,after:t.after}),i=this.cacheKey("decks","listImportFormats",s),c=await this.withCache(i,"decks",t,async()=>(await this.connection.execute(r,s)).deckImportFormats);return new d(c,{nextPageLoader:async a=>this.listImportFormats(e,{...t,after:a})})}async fetchImportFormat(e,t={}){let r=this.cacheKey("decks","fetchImportFormat",{id:e});return this.withCache(r,"decks",t,async()=>{let{query:s}=n.deckImportFormat();return (await this.connection.execute(s,{id:e})).deckImportFormat??null})}async testImportFormat(e){let{query:t}=n.deckImportFormatTest(),r=n.deckImportFormatTestVariables(e);return (await this.connection.execute(t,r)).deckImportFormatTest}async createImportFormat(e){let{query:t}=n.createDeckImportFormat(),r=n.deckImportFormatCreateVariables(e);return (await this.connection.execute(t,r)).deckImportFormatCreate}async updateImportFormat(e,t){let{query:r}=n.updateDeckImportFormat(),s=n.deckImportFormatUpdateVariables(e,t);return (await this.connection.execute(r,s)).deckImportFormatUpdate}async archiveImportFormat(e){let{query:t}=n.archiveDeckImportFormat();return (await this.connection.execute(t,{id:e})).deckImportFormatArchive}async unarchiveImportFormat(e){let{query:t}=n.unarchiveDeckImportFormat();return (await this.connection.execute(t,{id:e})).deckImportFormatUnarchive}async delete(e){let{query:t}=n.deleteDeck();return !!(await this.connection.execute(t,{id:e})).deckDelete}async archive(e){let{query:t}=n.archiveDeck();return (await this.connection.execute(t,{id:e})).deckArchive}async restore(e){let{query:t}=n.restoreDeck();return (await this.connection.execute(t,{id:e})).deckRestore}async unpublish(e){let{query:t}=n.unpublishDeck();return (await this.connection.execute(t,{id:e})).deckUnpublish}async publish(e,t){let{query:r}=n.publishDeck(),s=n.deckPublishVariables(e,t);return (await this.connection.execute(r,s)).deckPublish}async removeInvalidEntries(e,t){let{query:r}=n.removeInvalidDeckEntries(),s=n.deckRemoveInvalidEntriesVariables(e,t);return (await this.connection.execute(r,s)).deckRemoveInvalidEntries}async upsertCollaborator(e,t,r){let{query:s}=n.upsertDeckCollaborator(),i=n.deckCollaboratorVariables(e,t,r);return (await this.connection.execute(s,i)).deckCollaboratorUpsert}async removeCollaborator(e,t){let{query:r}=n.removeDeckCollaborator(),s=n.deckCollaboratorVariables(e,t);return !!(await this.connection.execute(r,s)).deckCollaboratorRemove}async createPreviewToken(e){let{query:t}=n.createDeckPreviewToken(),r=n.deckPreviewTokenCreateVariables(e);return (await this.connection.execute(t,r)).deckPreviewTokenCreate}async revokePreviewToken(e){let{query:t}=n.revokeDeckPreviewToken();return !!(await this.connection.execute(t,{id:e})).deckPreviewTokenRevoke}async createEmbedToken(e){let{query:t}=n.createDeckEmbedToken(),r=n.deckEmbedTokenCreateVariables(e);return (await this.connection.execute(t,r)).deckEmbedTokenCreate}async revokeEmbedToken(e){let{query:t}=n.revokeDeckEmbedToken();return !!(await this.connection.execute(t,{id:e})).deckEmbedTokenRevoke}async createAccessTokenIssuer(e){let{query:t}=n.createDeckAccessTokenIssuer(),r=n.deckAccessTokenIssuerCreateVariables(e);return (await this.connection.execute(t,r)).deckAccessTokenIssuerCreate}async revokeAccessTokenIssuer(e){let{query:t}=n.revokeDeckAccessTokenIssuer();return !!(await this.connection.execute(t,{id:e})).deckAccessTokenIssuerRevoke}async revokeAccessTokenIssuerSigningKey(e){let{query:t}=n.revokeDeckAccessTokenIssuerSigningKey();return (await this.connection.execute(t,{id:e})).deckAccessTokenIssuerSigningKeyRevoke}async grantApiApplicationAccess(e){let{query:t}=n.grantDeckApiApplicationAccess(),r=n.deckApiApplicationAccessGrantVariables(e);return (await this.connection.execute(t,r)).deckApiApplicationAccessGrant}async revokeApiApplicationAccess(e,t){let{query:r}=n.revokeDeckApiApplicationAccess(),s=n.deckApiApplicationAccessRevokeVariables(e,t);return !!(await this.connection.execute(r,s)).deckApiApplicationAccessRevoke}async exchangeAccessToken(e){this.config.requireSecretCredential("decks.exchangeAccessToken");let{query:t}=n.exchangeDeckAccessToken(),r=n.deckAccessTokenExchangeVariables(e);return (await this.connection.execute(t,r)).deckAccessTokenExchange}async revokeAccessToken(e){this.config.requireSecretCredential("decks.revokeAccessToken");let{query:t}=n.revokeDeckAccessToken();return !!(await this.connection.execute(t,{id:e})).deckAccessTokenRevoke}async hydrateEntries(e){if(e.entries.length===0)return [];let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let s=e.entries.map(o=>o.identifier),i=this.cacheKey("decks","hydrateEntries",{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifiers:s}),c=await this.withCache(i,"decks",e,async()=>{let{query:o}=n.fetchRecordsByIdentifier();return (await this.connection.execute(o,{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifiers:s})).fetchRecordsByIdentifier}),a=Me(c,s,e.identifierField);return e.entries.map(o=>({...o,record:a.get(o.identifier)??null}))}};function Me(e,t,r){let s=new Set(t),i=new Map;for(let c of e){let a=r?c.data[r]:Object.values(c.data).find(l=>s.has(String(l)));if(a==null)continue;let o=String(a);s.has(o)&&(i.set(o,c),s.delete(o));}return i}var Ge=class extends g{constructor(e,t){super(e,t);}async search(e){let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let s=q(e.filter),{query:i,variables:c}=n.searchRecords({publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,filter:s,search:e.search,orderBy:e.orderBy,resolveLinks:e.resolveLinks,first:e.first,after:e.after,validateSchema:e.validateSchema,includePricing:e.includePricing}),a=this.cacheKey("records","search",{...c,includePricing:e.includePricing??false}),o=await this.withCache(a,"records",e,async()=>(await this.connection.execute(i,c)).searchRecords);return new d(o,{nextPageLoader:async l=>this.search({...e,after:l})})}async get(e,t={}){let r=this.cacheKey("records","get",{id:e,includePricing:t.includePricing??false});return this.withCache(r,"records",t,async()=>{let{query:s}=n.fetchRecordById({includePricing:t.includePricing});return (await this.connection.execute(s,{id:e})).fetchRecord??null})}async getByIdentifier(e){let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let s=this.cacheKey("records","getByIdentifier",{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifier:e.identifier,includePricing:e.includePricing??false});return this.withCache(s,"records",e,async()=>{let{query:i}=n.fetchRecordByIdentifier({includePricing:e.includePricing});return (await this.connection.execute(i,{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifier:e.identifier})).fetchRecordByIdentifier??null})}async getManyByIdentifier(e){if(e.identifiers.length===0)return [];let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let s=this.cacheKey("records","getManyByIdentifier",{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifiers:e.identifiers,includePricing:e.includePricing??false});return this.withCache(s,"records",e,async()=>{let{query:i}=n.fetchRecordsByIdentifier({includePricing:e.includePricing});return (await this.connection.execute(i,{publisherSlug:t,gameKey:r,datasetKey:e.datasetKey,identifiers:e.identifiers})).fetchRecordsByIdentifier??[]})}async getMany(e,t={}){if(e.length===0)return [];let r=this.cacheKey("records","getMany",{ids:e,includePricing:t.includePricing??false});return this.withCache(r,"records",t,async()=>{let{query:s}=n.fetchRecords({includePricing:t.includePricing});return (await this.connection.execute(s,{ids:e})).fetchRecords??[]})}},je=class extends g{constructor(e,t){super(e,t);}async datasets(e={}){let t=this.resolvePublisher(e.publisherSlug),r=this.resolveGame(e.gameKey);this.validateAccess(t,r);let{query:s,variables:i}=n.searchDatasets({publisherSlug:t,gameKey:r,search:e.search,purpose:"RULES",first:e.first,after:e.after}),c=this.cacheKey("rules","datasets",i),a=await this.withCache(c,"datasets",e,async()=>(await this.connection.execute(s,i)).searchDatasets);return new d(a,{nextPageLoader:async o=>this.datasets({...e,after:o})})}async list(e={}){return this.searchRuleRecords("rules",e)}async formats(e={}){return this.searchRuleRecords(e.datasetKey??"formats",e)}async searchRuleRecords(e,t){let r=this.resolvePublisher(t.publisherSlug),s=this.resolveGame(t.gameKey),i=t.datasetKey??e;this.validateAccess(r,s);let c=q(t.filter),{query:a,variables:o}=n.searchRecords({publisherSlug:r,gameKey:s,datasetKey:i,filter:c,search:t.search,orderBy:t.orderBy,resolveLinks:t.resolveLinks,first:t.first,after:t.after,validateSchema:t.validateSchema}),l=this.cacheKey("rules","records",o),V=await this.withCache(l,"records",t,async()=>(await this.connection.execute(a,o)).searchRecords);return new d(V,{nextPageLoader:async N=>this.searchRuleRecords(e,{...t,after:N})})}},ce=class ae{config;connection;publishers;games;datasets;records;decks;rules;constructor(t={}){this.config=new Te(t),this.connection=new Ue(this.config),this.publishers=new _e(this.connection,this.config),this.games=new Ve(this.connection,this.config),this.datasets=new Ne(this.connection,this.config),this.records=new Ge(this.connection,this.config),this.decks=new Oe(this.connection,this.config),this.rules=new je(this.connection,this.config);}async me(){let{query:t}=n.fetchMe();return (await this.connection.execute(t)).fetchMe??null}getRateLimitInfo(){return Pe()}withConfig(t){let r=this.config.merge(t);return new ae({apiKey:r.configApiKey(),publishableKey:r.publishableKey,secretKey:r.secretKey,accessToken:r.accessToken,environment:r.environment,endpoint:r.endpoint,timeout:r.timeout,openTimeout:r.openTimeout,defaultPublisher:r.defaultPublisher,defaultGame:r.defaultGame,allowedPublishers:r.allowedPublishers,allowedGames:r.allowedGames,logger:r.logger,logLevel:r.logLevel,retryOnRateLimit:r.retryOnRateLimit,maxRetries:r.maxRetries,retryOnNetworkError:r.retryOnNetworkError,maxNetworkRetries:r.maxNetworkRetries,retryBaseDelay:r.retryBaseDelay,retryMaxDelay:r.retryMaxDelay,cache:r.cache,cacheTtl:r.cacheTtl,cacheTtls:r.cacheTtls})}};var _=class{storage;prefix;constructor(t={}){let r=t.storage??"localStorage";this.storage=r==="sessionStorage"?globalThis.sessionStorage:globalThis.localStorage,this.prefix=t.prefix??"carddb:";}get(t){try{let r=this.storage.getItem(this.prefix+t);if(!r)return null;let s=JSON.parse(r);return s.expiresAt!==null&&Date.now()>s.expiresAt?(this.storage.removeItem(this.prefix+t),null):s.value}catch{return this.storage.removeItem(this.prefix+t),null}}set(t,r,s){try{let i={value:r,expiresAt:s!==void 0?Date.now()+s*1e3:null};this.storage.setItem(this.prefix+t,JSON.stringify(i));}catch(i){console.warn("[CardDB] Failed to write to cache:",i);}}delete(t){this.storage.removeItem(this.prefix+t);}clear(){let t=[];for(let r=0;r<this.storage.length;r++){let s=this.storage.key(r);s&&s.startsWith(this.prefix)&&t.push(s);}for(let r of t)this.storage.removeItem(r);}has(t){return this.get(t)!==null}get size(){let t=0;for(let r=0;r<this.storage.length;r++){let s=this.storage.key(r);s&&s.startsWith(this.prefix)&&t++;}return t}cleanup(){let t=Date.now(),r=[];for(let s=0;s<this.storage.length;s++){let i=this.storage.key(s);if(i&&i.startsWith(this.prefix))try{let c=this.storage.getItem(i);if(c){let a=JSON.parse(c);a.expiresAt!==null&&t>a.expiresAt&&r.push(i);}}catch{r.push(i);}}for(let s of r)this.storage.removeItem(s);}};var oe=class extends ce{constructor(t={}){if("apiKey"in t&&t.apiKey!==void 0)throw new k("apiKey is not accepted in browsers; use publishableKey or accessToken");if("secretKey"in t&&t.secretKey!==void 0)throw new k("secretKey is server-only; use publishableKey or accessToken in browsers");super(t);}};
|
|
1063
|
+
export{x as AuthenticationError,g as BaseResource,_ as BrowserCache,oe as CardDBClient,h as CardDBError,d as Collection,Te as Configuration,Ue as Connection,D as ConnectionError,Ae as DEFAULT_CACHE_TTL,ve as DEFAULT_ENDPOINT,Re as DEFAULT_MAX_NETWORK_RETRIES,Ee as DEFAULT_MAX_RETRIES,we as DEFAULT_OPEN_TIMEOUT,Se as DEFAULT_RETRY_BASE_DELAY,xe as DEFAULT_RETRY_MAX_DELAY,be as DEFAULT_TIMEOUT,Ne as DatasetsResource,Oe as DecksResource,ue as FilterBuilder,Ve as GamesResource,Q as GraphQLError,He as LinkResolutionError,Ye as NotFoundError,_e as PublishersResource,n as QueryBuilder,w as RateLimitError,Ge as RecordsResource,k as RestrictedError,je as RulesResource,C as ServerError,K as TimeoutError,T as ValidationError,Fe as cacheKey,rt as contains,Xe as eq,Pe as getRateLimitInfo,$t as getSDKVersion,qe as getUserAgent,We as gt,Je as gte,it as ilike,ct as isNotNull,nt as isNull,st as like,ze as lt,Ze as lte,Qe as neq,tt as notWithin,Le as readCache,q as resolveFilter,et as within,Be as writeCache};//# sourceMappingURL=index.js.map
|
|
467
1064
|
//# sourceMappingURL=index.js.map
|