@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.
@@ -1,4 +1,4 @@
1
- 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 n=this.storage.getItem(i);if(n){let a=JSON.parse(n);a.expiresAt!==null&&t>a.expiresAt&&r.push(i);}}catch{r.push(i);}}for(let s of r)this.storage.removeItem(s);}};var l=class L extends Error{response;constructor(t,r){super(t),this.name="CardDBError",this.response=r,Error.captureStackTrace&&Error.captureStackTrace(this,L);}},D=class extends l{constructor(e="Invalid or missing API key",t){super(e,t),this.name="AuthenticationError";}},p=class extends l{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;}},we=class extends l{constructor(e="Resource not found",t){super(e,t),this.name="NotFoundError";}},R=class extends l{errors;constructor(e="Validation error",t={}){super(e,t.response),this.name="ValidationError",this.errors=t.errors??[];}},S=class extends l{constructor(e,t){super(e,t),this.name="RestrictedError";}},B=class extends l{errors;constructor(e="GraphQL error",t={}){super(e,t.response),this.name="GraphQLError",this.errors=t.errors??[];}},k=class extends l{constructor(e="Connection error",t){super(e,t),this.name="ConnectionError";}},x=class extends k{constructor(e="Request timed out",t){super(e,t),this.name="TimeoutError";}},I=class extends l{status;constructor(e="Server error",t={}){super(e,t.response),this.name="ServerError",this.status=t.status??null;}},ve=class extends l{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 be(e){return {eq:e}}function pe(e){return {neq:e}}function $e(e){return {gt:e}}function De(e){return {gte:e}}function Re(e){return {lt:e}}function Se(e){return {lte:e}}function xe(e){return {in:e}}function Ie(e){return {nin:e}}function Pe(e){return {contains:e}}function Ee(e){return {like:e}}function Ce(e){return {ilike:e}}function Te(){return {is_null:true}}function Ke(){return {is_null:false}}var V=class A{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 A;t(r);let s=r.getConditions();return s.length>0&&this.orGroups.push({$or:s}),this}whereLink(t,r){let s={};for(let[i,n]of Object.entries(r))s[i]=n;return this.conditions.push({[`${t}._link`]:s}),this}whereAny(t,r){let s={};for(let[i,n]of Object.entries(r))s[i]=n;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 P(e){if(e!==void 0){if(typeof e=="function"){let t=new V;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 w=`
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
- `,v=`
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
- `,O=4;function U(e){return `
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
- ${U(e-1)}
80
+ ${J(e-1)}
81
81
  }`:""}
82
- `}var T=`
82
+ `}var O=`
83
83
  schema {
84
84
  fields {
85
- ${U(O)}
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
- `,j=`
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 y(e={}){return `
109
+ `;function p(e={}){return `
110
110
  id
111
111
  datasetId
112
112
  data
113
- ${e.includePricing?j:""}
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 F=y(),b=`
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
- id
143
- datasetId
144
- recordId
145
- identifier
146
- quantity
147
- section
148
- sortOrder
149
- annotations
150
- record {
151
- ${F}
152
- }
224
+ ${A}
153
225
  }
154
- `,K=`
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
- `,q=`
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
- `,d=`
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
- id
197
- datasetId
198
- recordId
199
- identifier
200
- quantity
201
- section
202
- sortOrder
203
- annotations
204
- record {
205
- ${F}
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
- `,X=`
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 f(e){return `
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 c={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(", ")})`:"",n=r.length>0?`(${r.join(", ")})`:"";return {query:`
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${n} {
236
- ${f(w)}
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
- ${w}
549
+ ${$}
243
550
  }
244
551
  }
245
552
  `}},fetchPublisherBySlug(){return {query:`
246
553
  query FetchPublisher($slug: String!) {
247
554
  fetchPublisher(slug: $slug) {
248
- ${w}
555
+ ${$}
249
556
  }
250
557
  }
251
558
  `}},fetchPublishers(){return {query:`
252
559
  query FetchPublishers($slugs: [String!]!) {
253
560
  fetchPublishers(slugs: $slugs) {
254
- ${w}
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(", ")})`:"",n=r.length>0?`(${r.join(", ")})`:"";return {query:`
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${n} {
260
- ${f(m)}
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(", ")})`:"",n=r.length>0?`(${r.join(", ")})`:"";return {query:`
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${n} {
284
- ${f(v)}
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
- ${v}
291
- ${T}
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
- ${v}
298
- ${T}
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
- ${v}
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,n=y({includePricing:e.includePricing}),a=i?`${n}
308
- ${X}`:n;return {query:`
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
- ${f(a)}
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
- ${y(e)}
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
- ${y(e)}
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
- ${y(e)}
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
- ${y(e)}
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(", ")})`:"",n=r.length>0?`(${r.join(", ")})`:"";return {query:`
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${n} {
341
- ${f(d)}
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
- ${d}
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
- ${d}
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
- ${d}
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
- ${d}
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
- ${f(b)}
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
- ${d}
726
+ ${u}
384
727
  }
385
728
  }
386
- `}},deckCollaborators(){return {query:`
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
- ${K}
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
- ${q}
828
+ ${j}
396
829
  }
397
830
  }
398
831
  `}},createDeck(){return {query:`
399
832
  mutation DeckCreate($input: DeckCreateInput!) {
400
833
  deckCreate(input: $input) {
401
- ${d}
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
- ${d}
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
- ${b}
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
- ${K}
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
- ${q}
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
- `}},deckCreateVariables(e){return {input:e}},deckUpdateVariables(e,t){return {id:e,input:t}},deckPublishVariables(e,t={}){return {id:e,input:t}},deckCollaboratorVariables(e,t,r){return r===void 0?{deckId:e,accountId:t}:{deckId:e,accountId:t,role:r}},deckPreviewTokenCreateVariables(e){return {input:e}},fetchMe(){return {query:`
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{D as AuthenticationError,g as BaseResource,$ as BrowserCache,Qe as CardDBClient,l as CardDBError,h as Collection,te as Configuration,ae as Connection,k as ConnectionError,W as DEFAULT_CACHE_TTL,Q as DEFAULT_ENDPOINT,z as DEFAULT_MAX_NETWORK_RETRIES,Y as DEFAULT_MAX_RETRIES,J as DEFAULT_OPEN_TIMEOUT,Z as DEFAULT_RETRY_BASE_DELAY,ee as DEFAULT_RETRY_MAX_DELAY,H as DEFAULT_TIMEOUT,de as DatasetsResource,fe as DecksResource,V as FilterBuilder,he as GamesResource,B as GraphQLError,ve as LinkResolutionError,we as NotFoundError,le as PublishersResource,c as QueryBuilder,p as RateLimitError,ge as RecordsResource,S as RestrictedError,me as RulesResource,I as ServerError,x as TimeoutError,R as ValidationError,ce as cacheKey,Pe as contains,be as eq,ne as getRateLimitInfo,Xe as getSDKVersion,ie as getUserAgent,$e as gt,De as gte,Ce as ilike,Ke as isNotNull,Te as isNull,Ee as like,Re as lt,Se as lte,pe as neq,Ie as notWithin,oe as readCache,P as resolveFilter,xe as within,ue as writeCache};//# sourceMappingURL=index.js.map
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