@carddb/core 0.5.0 → 0.5.1

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 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/errors.ts","../src/operators.ts","../src/filter-builder.ts","../src/query-builder.ts","../src/collection.ts"],"sourcesContent":["/**\n * @carddb/core - Core types and utilities for CardDB JavaScript clients\n */\n\n// Types\nexport type {\n // Configuration\n CardDBConfig,\n LogLevel,\n ResourceType,\n Logger,\n Cache,\n // Resources\n PublisherStatus,\n Publisher,\n PublisherRef,\n FileStatus,\n FileUploadInput,\n UploadPurpose,\n File,\n PresignedUpload,\n Game,\n GameRef,\n GameVisibility,\n GameCreateInput,\n GameUpdateInput,\n ScanJobStatus,\n CreateScanJobInput,\n CreateScanUploadSessionInput,\n ConfirmScanUploadInput,\n ScanJobPayload,\n ScanJob,\n ScanBestMatch,\n ScanCandidate,\n ScanJobError,\n ScanWebhookState,\n ScanJobMetrics,\n ScanStageMetrics,\n SubmitScanFeedbackInput,\n ScanFeedbackPayload,\n ScanMetricsInput,\n ScanMetrics,\n ScanFeedbackMetrics,\n ScanFeatureVersionMetrics,\n ResolveScanTemplateInput,\n ScanTemplatesInput,\n SaveScanTemplateInput,\n PreviewScanTemplateInput,\n ScanTemplateRegionInput,\n ScanTemplateResolution,\n ScanTemplateList,\n ScanTemplatePayload,\n ScanTemplatePreview,\n ScanTemplate,\n ScanTemplateRegion,\n ScanTemplateRegionPreview,\n ScanTemplateWarning,\n GameScanRegion,\n Dataset,\n DatasetRef,\n DatasetPurpose,\n DatasetVisibility,\n DatasetRecord,\n ImportFormat,\n ImportMode,\n OnConflict,\n ImportJobStatus,\n ImportLogLevel,\n BulkInsertMode,\n ImportOptions,\n CsvOptions,\n FieldMappingOverrideInput,\n ImportJobAssetInput,\n ImportJobAsset,\n ImportValidationError,\n BulkRecordError,\n ImportStats,\n BulkImportResult,\n BulkCreateResult,\n ImportJob,\n ImportJobConnection,\n ImportJobLog,\n ImportJobLogConnection,\n DatasetImportFromFileInput,\n DatasetImportFromPayloadInput,\n DatasetImportFromUrlInput,\n DatasetImportRunInput,\n DatasetImportPreviewInput,\n DatasetImportValidateInput,\n FieldMappingStatus,\n InferredChildField,\n FieldMapping,\n ImportWarningSeverity,\n ImportWarning,\n DatasetImportPreviewResult,\n GameImportPreviewInput,\n DatasetImportPreview,\n GameImportPreview,\n GameImportFromFileInput,\n GameImportFromPayloadInput,\n GameImportFromUrlInput,\n GameImportRunInput,\n GameImportDatasetStatus,\n GameImportJob,\n GameImportJobConnection,\n DatasetRecordsUpsertInput,\n DatasetRecordsUpsertPayload,\n DatasetRecordDeleteJobStatus,\n DatasetRecordDeleteTargetType,\n DatasetRecordDeleteResultStatus,\n DatasetRecordsDeleteInput,\n DatasetRecordDeleteJobResult,\n DatasetRecordDeleteJob,\n DatasetRecordDeleteJobConnection,\n ExportFormat,\n ExportJobStatus,\n DatasetExportInput,\n ExportJob,\n ExportJobConnection,\n TCGPlayerPricing,\n TCGPlayerPrice,\n Deck,\n DeckEntry,\n DeckVisibility,\n DeckOwnerType,\n DeckEnvironment,\n DeckAccessMode,\n DeckDiscoverability,\n DeckState,\n DeckReadState,\n DeckRepresentation,\n DeckTokenScope,\n DeckTokenSigningAlgorithm,\n DeckImportFormat,\n DeckExportFormat,\n DeckCollaboratorRole,\n DeckAppAccessRetention,\n DeckAPIApplicationAccessRole,\n DeckAPIApplicationAccessGrantSource,\n DeckValidationSeverity,\n ViewerDecksFilterInput,\n AppDecksFilterInput,\n PublicDecksFilterInput,\n DeckVersion,\n DeckVersionConnection,\n DeckCollaborator,\n DeckOwnershipTransferPayload,\n DeckCopyPayload,\n DeckAccessApplication,\n DeckAPIApplicationAccess,\n DeckPublishedVersionSelector,\n DeckTokenIssuer,\n DeckToken,\n DeckTokenExchangePayload,\n DeckEntryInput,\n DeckCreateInput,\n DeckUpsertByExternalRefInput,\n DeckUpsertByExternalRefPayload,\n DeckUpdateInput,\n DeckPublishInput,\n DeckEntryAddInput,\n DeckEntryUpdateInput,\n DeckEntryReorderItemInput,\n DeckEntryReorderInput,\n DeckEntriesReplaceInput,\n DeckEntryMutationPayload,\n DeckEntryReorderPayload,\n DeckEntriesReplacePayload,\n DeckPublishPayload,\n DeckValidateInput,\n DeckRemoveInvalidEntriesInput,\n DeckClaimInput,\n DeckTransferOwnershipInput,\n DeckCopyInput,\n DeckTokenIssuerCreateInput,\n DeckTokenIssuerSigningKeyInput,\n DeckTokenExchangeInput,\n DeckValidatedAgainst,\n DeckValidationAffectedEntry,\n DeckValidationIssue,\n DeckValidation,\n DeckDiff,\n DeckSectionDefinition,\n RulesetVersionStatus,\n Ruleset,\n RulesetVersion,\n RulesetConnection,\n RulesetVersionConnection,\n DeckValidationRules,\n RulesetValidationImpact,\n RulesetValidationImpactDeck,\n RulesetVersionDraftImportPreview,\n RulesetCreateInput,\n RulesetUpdateInput,\n RulesetVersionDraftCreateInput,\n RulesetVersionDraftImportFromDatasetRecordInput,\n RulesetVersionDraftUpdateInput,\n RulesetVersionPublishInput,\n DeckAPIApplicationAccessGrantInput,\n DeckImportInput,\n DeckImportEntry,\n DeckImportIssue,\n DeckImportUnmatchedEntry,\n DeckImportCandidate,\n DeckImportAmbiguousEntry,\n DeckImportFormatDefinition,\n DeckImportFormatDefinitionConnection,\n DeckImportFormatDetection,\n DeckImportFormatTestPayload,\n DeckImportFormatCreateInput,\n DeckImportFormatUpdateInput,\n DeckImportFormatTestInput,\n DeckImportPayload,\n DeckHydrateEntriesInput,\n DeckHydrateEntriesPayload,\n DeckExportPayload,\n HydrateDeckEntryInput,\n HydratedDeckEntry,\n ResolvedLink,\n FileInfo,\n DatasetFilterValue,\n DatasetFilterValueEdge,\n DatasetFilterValueConnection,\n // Schema\n DatasetSchema,\n FieldInfo,\n FieldType,\n ObjectField,\n LinkFieldInfo,\n // API Key\n APIKeyInfo,\n APIApplication,\n APIAccount,\n // Pagination\n PageInfo,\n Edge,\n Connection,\n // Filters\n FilterOperatorValue,\n FilterValue,\n FilterCondition,\n FilterInput,\n FilterBuilderInterface,\n // Rate Limit\n RateLimitInfo,\n} from './types.js'\n\n// Errors\nexport {\n CardDBError,\n AuthenticationError,\n RateLimitError,\n NotFoundError,\n ValidationError,\n RestrictedError,\n GraphQLError,\n ConnectionError,\n TimeoutError,\n ServerError,\n LinkResolutionError,\n} from './errors.js'\n\nexport type { GraphQLErrorInfo, LinkResolutionFailure } from './errors.js'\n\n// Filter Operators\nexport {\n eq,\n neq,\n gt,\n gte,\n lt,\n lte,\n within,\n notWithin,\n contains,\n like,\n ilike,\n isNull,\n isNotNull,\n} from './operators.js'\n\n// Filter Builder\nexport { FilterBuilder, resolveFilter } from './filter-builder.js'\n\n// Query Builder\nexport { QueryBuilder } from './query-builder.js'\n\nexport type {\n SearchPublishersParams,\n SearchGamesParams,\n SearchDatasetsParams,\n SearchRecordsParams,\n ListDecksParams,\n ListDeckVersionsParams,\n DeckSectionDefinitionsParams,\n ViewerDecksParams,\n AppDecksParams,\n PublicDecksParams,\n ListDeckImportFormatsParams,\n ListRulesetsParams,\n ListPublicRulesetsParams,\n RulesetLookupParams,\n ListRulesetVersionsParams,\n RulesetValidationRulesParams,\n RulesetValidationImpactParams,\n} from './query-builder.js'\n\n// Collection\nexport { Collection } from './collection.js'\n\nexport type { NextPageLoader } from './collection.js'\n","/**\n * Error classes for CardDB clients\n */\n\nexport interface GraphQLErrorInfo {\n message: string\n path?: string[]\n extensions?: Record<string, unknown>\n}\n\n/**\n * Base error class for all CardDB errors\n */\nexport class CardDBError extends Error {\n /** The full response body if available */\n readonly response?: unknown\n\n constructor(message: string, response?: unknown) {\n super(message)\n this.name = 'CardDBError'\n this.response = response\n // Maintains proper stack trace for where error was thrown (V8 only)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CardDBError)\n }\n }\n}\n\n/**\n * Raised when authentication fails (invalid API key or token)\n */\nexport class AuthenticationError extends CardDBError {\n constructor(message = 'Invalid or missing API key', response?: unknown) {\n super(message, response)\n this.name = 'AuthenticationError'\n }\n}\n\n/**\n * Raised when rate limits are exceeded\n */\nexport class RateLimitError extends CardDBError {\n /** Seconds until rate limit resets */\n readonly retryAfter: number | null\n\n /** Maximum requests allowed */\n readonly limit: number | null\n\n /** Remaining requests in window */\n readonly remaining: number | null\n\n /** Time when the rate limit resets */\n readonly resetAt: Date | null\n\n constructor(\n message = 'Rate limit exceeded',\n options: {\n retryAfter?: number | null\n limit?: number | null\n remaining?: number | null\n resetAt?: Date | null\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'RateLimitError'\n this.retryAfter = options.retryAfter ?? null\n this.limit = options.limit ?? null\n this.remaining = options.remaining ?? null\n this.resetAt = options.resetAt ?? null\n }\n}\n\n/**\n * Raised when a requested resource is not found\n */\nexport class NotFoundError extends CardDBError {\n constructor(message = 'Resource not found', response?: unknown) {\n super(message, response)\n this.name = 'NotFoundError'\n }\n}\n\n/**\n * Raised when request validation fails\n */\nexport class ValidationError extends CardDBError {\n /** List of validation errors */\n readonly errors: GraphQLErrorInfo[]\n\n constructor(\n message = 'Validation error',\n options: {\n errors?: GraphQLErrorInfo[]\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'ValidationError'\n this.errors = options.errors ?? []\n }\n}\n\n/**\n * Raised when accessing a restricted publisher or game\n */\nexport class RestrictedError extends CardDBError {\n constructor(message: string, response?: unknown) {\n super(message, response)\n this.name = 'RestrictedError'\n }\n}\n\n/**\n * Raised for GraphQL-level errors\n */\nexport class GraphQLError extends CardDBError {\n /** List of GraphQL errors */\n readonly errors: GraphQLErrorInfo[]\n\n constructor(\n message = 'GraphQL error',\n options: {\n errors?: GraphQLErrorInfo[]\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'GraphQLError'\n this.errors = options.errors ?? []\n }\n}\n\n/**\n * Raised for network/connection issues\n */\nexport class ConnectionError extends CardDBError {\n constructor(message = 'Connection error', response?: unknown) {\n super(message, response)\n this.name = 'ConnectionError'\n }\n}\n\n/**\n * Raised when request times out\n */\nexport class TimeoutError extends ConnectionError {\n constructor(message = 'Request timed out', response?: unknown) {\n super(message, response)\n this.name = 'TimeoutError'\n }\n}\n\n/**\n * Raised when the server returns an unexpected response\n */\nexport class ServerError extends CardDBError {\n /** HTTP status code */\n readonly status: number | null\n\n constructor(\n message = 'Server error',\n options: {\n status?: number | null\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'ServerError'\n this.status = options.status ?? null\n }\n}\n\n/**\n * Information about a failed link resolution\n */\nexport interface LinkResolutionFailure {\n /** The link field key that failed */\n field: string\n /** The value that couldn't be resolved */\n value: string | null\n /** The reason for the failure */\n reason: 'not_found' | 'invalid' | 'permission_denied' | 'unknown'\n /** Optional error message from the server */\n message?: string\n}\n\n/**\n * Raised when link resolution fails for one or more links\n *\n * This is a warning-level error that contains the partial results along with\n * information about which links failed to resolve. The application can choose\n * to handle this gracefully or treat it as a fatal error.\n */\nexport class LinkResolutionError extends CardDBError {\n /** List of link resolution failures */\n readonly failures: LinkResolutionFailure[]\n\n /** Partial results that were successfully resolved */\n readonly partialResults?: unknown\n\n constructor(\n message = 'Some links could not be resolved',\n options: {\n failures?: LinkResolutionFailure[]\n partialResults?: unknown\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'LinkResolutionError'\n this.failures = options.failures ?? []\n this.partialResults = options.partialResults\n }\n\n /**\n * Get failures for a specific field\n */\n getFailuresForField(field: string): LinkResolutionFailure[] {\n return this.failures.filter((f) => f.field === field)\n }\n\n /**\n * Check if a specific field had resolution failures\n */\n hasFailuresForField(field: string): boolean {\n return this.failures.some((f) => f.field === field)\n }\n}\n","/**\n * Filter operator helper functions\n *\n * These functions create operator objects that can be used in filters.\n *\n * @example\n * // With filter builder\n * filter: (f) => f\n * .where('hp', gte(100))\n * .where('types', contains('Pokemon'))\n *\n * @example\n * // With object literal\n * filter: {\n * hp: gte(100),\n * types: contains('Pokemon')\n * }\n */\n\nimport type { FilterOperatorValue } from './types.js'\n\n/** Equality operator */\nexport function eq(value: unknown): FilterOperatorValue {\n return { eq: value }\n}\n\n/** Not equal operator */\nexport function neq(value: unknown): FilterOperatorValue {\n return { neq: value }\n}\n\n/** Greater than operator */\nexport function gt(value: number): FilterOperatorValue {\n return { gt: value }\n}\n\n/** Greater than or equal operator */\nexport function gte(value: number): FilterOperatorValue {\n return { gte: value }\n}\n\n/** Less than operator */\nexport function lt(value: number): FilterOperatorValue {\n return { lt: value }\n}\n\n/** Less than or equal operator */\nexport function lte(value: number): FilterOperatorValue {\n return { lte: value }\n}\n\n/** Value in array operator */\nexport function within(values: unknown[]): FilterOperatorValue {\n return { in: values }\n}\n\n/** Value not in array operator */\nexport function notWithin(values: unknown[]): FilterOperatorValue {\n return { nin: values }\n}\n\n/** Array contains value operator */\nexport function contains(value: unknown): FilterOperatorValue {\n return { contains: value }\n}\n\n/** Case-sensitive pattern match (SQL LIKE) */\nexport function like(pattern: string): FilterOperatorValue {\n return { like: pattern }\n}\n\n/** Case-insensitive pattern match (SQL ILIKE) */\nexport function ilike(pattern: string): FilterOperatorValue {\n return { ilike: pattern }\n}\n\n/** Is null operator */\nexport function isNull(): FilterOperatorValue {\n return { is_null: true }\n}\n\n/** Is not null operator */\nexport function isNotNull(): FilterOperatorValue {\n return { is_null: false }\n}\n","/**\n * Filter builder for constructing complex filter queries\n *\n * Supports both builder pattern and object literal styles:\n *\n * @example Builder pattern\n * filter: (f) => f\n * .where('hp', gte(100))\n * .where('types', contains('Pokemon'))\n * .any(or => or\n * .where('rarity', 'rare')\n * .where('rarity', 'mythic')\n * )\n *\n * @example Object literal\n * filter: {\n * hp: { gte: 100 },\n * types: { contains: 'Pokemon' },\n * $or: [\n * { rarity: 'rare' },\n * { rarity: 'mythic' }\n * ]\n * }\n */\n\nimport type { FilterCondition, FilterValue, FilterInput } from './types.js'\n\nexport class FilterBuilder {\n private conditions: FilterCondition[] = []\n private orGroups: FilterCondition[] = []\n\n /**\n * Add a condition to the filter\n *\n * @example Single field\n * .where('name', 'Pikachu')\n * .where('hp', gte(100))\n *\n * @example Multiple fields (object)\n * .where({ name: 'Pikachu', hp: gte(100) })\n */\n where(field: string, value: FilterValue): this\n where(conditions: Record<string, FilterValue>): this\n where(fieldOrConditions: string | Record<string, FilterValue>, value?: FilterValue): this {\n if (typeof fieldOrConditions === 'string') {\n this.conditions.push({ [fieldOrConditions]: value })\n } else {\n for (const [field, val] of Object.entries(fieldOrConditions)) {\n this.conditions.push({ [field]: val })\n }\n }\n return this\n }\n\n /**\n * Add an OR group (any of the conditions must match)\n *\n * @example\n * .where('type', 'creature')\n * .any(or => or\n * .where('color', 'red')\n * .where('color', 'blue')\n * )\n */\n any(callback: (builder: FilterBuilder) => void): this {\n const orBuilder = new FilterBuilder()\n callback(orBuilder)\n const orConditions = orBuilder.getConditions()\n if (orConditions.length > 0) {\n this.orGroups.push({ $or: orConditions })\n }\n return this\n }\n\n /**\n * Add a link filter condition (filter on linked records)\n *\n * @example\n * .whereLink('set_id', { code: 'DMU' })\n * .whereLink('set_id', { name: ilike('%dominaria%') })\n */\n whereLink(field: string, conditions: Record<string, FilterValue>): this {\n const linkFilter: Record<string, FilterValue> = {}\n for (const [key, val] of Object.entries(conditions)) {\n linkFilter[key] = val\n }\n this.conditions.push({ [`${field}._link`]: linkFilter })\n return this\n }\n\n /**\n * Add an array element filter (for ARRAY of HASH fields)\n * Matches if any element in the array matches all conditions\n *\n * @example\n * .whereAny('attacks', { damage: gte(50) })\n * .whereAny('attacks', { name: ilike('%thunder%') })\n */\n whereAny(field: string, conditions: Record<string, FilterValue>): this {\n const anyFilter: Record<string, FilterValue> = {}\n for (const [key, val] of Object.entries(conditions)) {\n anyFilter[key] = val\n }\n this.conditions.push({ [`${field}._any`]: anyFilter })\n return this\n }\n\n /**\n * Get the conditions array (used internally for OR groups)\n */\n getConditions(): FilterCondition[] {\n return this.conditions\n }\n\n /**\n * Build the final filter object\n */\n build(): FilterCondition {\n const allConditions = [...this.conditions, ...this.orGroups]\n\n if (allConditions.length === 0) {\n return {}\n }\n\n if (allConditions.length === 1) {\n return allConditions[0]!\n }\n\n return { $and: allConditions }\n }\n}\n\n/**\n * Resolve a filter input to a filter condition object\n *\n * Handles both builder functions and object literals\n */\nexport function resolveFilter(input: FilterInput | undefined): FilterCondition | undefined {\n if (input === undefined) {\n return undefined\n }\n\n if (typeof input === 'function') {\n const builder = new FilterBuilder()\n input(builder)\n const result = builder.build()\n return Object.keys(result).length > 0 ? result : undefined\n }\n\n return Object.keys(input).length > 0 ? input : undefined\n}\n","/**\n * GraphQL query builder for CardDB API\n */\n\nimport type {\n DeckAPIApplicationAccessGrantInput,\n DeckClaimInput,\n DeckCollaboratorRole,\n DeckCopyInput,\n DeckCreateInput,\n DeckEntriesReplaceInput,\n DeckEntryAddInput,\n DeckEntryReorderInput,\n DeckEntryUpdateInput,\n DeckExportFormat,\n DeckHydrateEntriesInput,\n DeckImportFormatCreateInput,\n DeckImportFormatTestInput,\n DeckImportFormatUpdateInput,\n DeckImportInput,\n DeckPublishedVersionSelector,\n DeckPublishInput,\n DeckReadState,\n DeckRemoveInvalidEntriesInput,\n DeckTokenExchangeInput,\n DeckTokenIssuerCreateInput,\n DeckTransferOwnershipInput,\n DeckUpsertByExternalRefInput,\n DeckUpdateInput,\n DeckValidateInput,\n ConfirmScanUploadInput,\n CreateScanJobInput,\n CreateScanUploadSessionInput,\n DatasetExportInput,\n DatasetImportFromFileInput,\n DatasetImportFromPayloadInput,\n DatasetImportFromUrlInput,\n DatasetImportPreviewInput,\n DatasetImportValidateInput,\n DatasetRecordsDeleteInput,\n DatasetRecordsUpsertInput,\n FilterCondition,\n FileUploadInput,\n GameCreateInput,\n GameImportFromFileInput,\n GameImportFromPayloadInput,\n GameImportFromUrlInput,\n GameImportPreviewInput,\n GameUpdateInput,\n ImportJobStatus,\n PreviewScanTemplateInput,\n ResolveScanTemplateInput,\n SaveScanTemplateInput,\n ScanMetricsInput,\n ScanTemplatesInput,\n SubmitScanFeedbackInput,\n AppDecksFilterInput,\n PublicDecksFilterInput,\n RulesetCreateInput,\n RulesetUpdateInput,\n RulesetVersionDraftCreateInput,\n RulesetVersionDraftImportFromDatasetRecordInput,\n RulesetVersionDraftUpdateInput,\n RulesetVersionPublishInput,\n RulesetVersionStatus,\n ViewerDecksFilterInput,\n DatasetRecordDeleteJobStatus,\n ExportJobStatus,\n} from './types.js'\nimport { ValidationError } from './errors.js'\n\nconst DECK_JSON_OBJECT_KEYS = new Set(['metadata', 'annotations'])\n\nfunction normalizeDeckJsonInput<T>(input: T): T {\n return normalizeDeckJsonValue(input, 'input') as T\n}\n\nfunction normalizeDeckJsonValue(value: unknown, path: string): unknown {\n if (!isRecord(value)) {\n return value\n }\n\n const normalized: Record<string, unknown> = {}\n for (const [key, child] of Object.entries(value)) {\n const childPath = `${path}.${key}`\n if (DECK_JSON_OBJECT_KEYS.has(key)) {\n normalized[key] = normalizeJsonObject(child, childPath)\n } else if (key === 'entries' && Array.isArray(child)) {\n normalized[key] = child.map((entry, index) =>\n normalizeDeckJsonValue(entry, `${childPath}[${index}]`)\n )\n } else {\n normalized[key] = child\n }\n }\n return normalized\n}\n\nfunction normalizeJsonObject(value: unknown, path: string): unknown {\n if (value == null || isRecord(value)) {\n return value\n }\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value) as unknown\n if (isRecord(parsed)) {\n return parsed\n }\n } catch {\n // Fall through to the consistent validation error below.\n }\n }\n\n throw new ValidationError(`${path} must be a JSON object`)\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\n// ============================================================================\n// Field Definitions\n// ============================================================================\n\nconst FILE_FIELDS = `\n id\n createdAt\n updatedAt\n key\n filename\n contentType\n size\n status\n isPublic\n entityType\n entityId\n url\n`\n\nconst PRESIGNED_UPLOAD_FIELDS = `\n file {\n ${FILE_FIELDS}\n }\n uploadUrl\n expiresAt\n`\n\nconst PUBLISHER_FIELDS = `\n id\n name\n slug\n status\n description\n website\n createdAt\n updatedAt\n logoFile {\n id\n url\n }\n bannerFile {\n id\n url\n }\n`\n\nconst GAME_FIELDS = `\n id\n publisherId\n key\n name\n description\n metafyGameUuid\n metafyGameSlug\n website\n visibility\n isArchived\n createdAt\n updatedAt\n publisher {\n id\n name\n slug\n }\n logoFile {\n id\n url\n }\n coverFile {\n id\n url\n }\n`\n\nconst DATASET_FIELDS = `\n id\n publisherId\n gameId\n key\n name\n description\n purpose\n activeVersionId\n tcgplayerProductIdFieldKey\n visibility\n posX\n posY\n sortOrder\n archivedAt\n isArchived\n createdAt\n updatedAt\n publisher {\n id\n name\n slug\n }\n game {\n id\n key\n name\n }\n`\n\nconst SCHEMA_NESTED_FIELDS_DEPTH = 4\n\nfunction fieldInfoFields(depth: number): string {\n const nestedFields =\n depth > 0\n ? `\n nestedFields {\n ${fieldInfoFields(depth - 1)}\n }`\n : ''\n\n return `\n key\n label\n description\n type\n isRequired\n filterable\n searchable\n isIdentifier\n sortOrder\n itemType\n linkDatasetId\n linkDatasetKey\n linkDatasetName\n linkFieldKey\n linkAlias\n linkDirection\n displayFormat\n semanticType\n placeholder\n isHidden\n isComputed\n isSystemField\n defaultValue\n allowedValues\n minLength\n maxLength\n minValue\n maxValue\n pattern\n isUnique\n ${nestedFields}\n `\n}\n\nconst SCHEMA_FIELDS = `\n schema {\n fields {\n ${fieldInfoFields(SCHEMA_NESTED_FIELDS_DEPTH)}\n }\n filterableFields\n searchableFields\n linkFields {\n key\n label\n targetDatasetKey\n targetDatasetName\n targetDatasetId\n targetFieldKey\n linkAlias\n linkDirection\n isArray\n }\n }\n`\n\nconst DATASET_FILTER_VALUE_CONNECTION_FIELDS = `\n field\n edges {\n cursor\n node {\n value\n count\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n`\n\nconst OBJECT_FIELD_FIELDS = `\n id\n objectTypeId\n key\n label\n dataType\n isRequired\n isFilterable\n isSearchable\n isIdentifier\n sortOrder\n description\n placeholder\n displayFormat\n semanticType\n isHidden\n isComputed\n isSystemField\n defaultValue\n allowedValues\n minLength\n maxLength\n minValue\n maxValue\n pattern\n isUnique\n itemType\n linkDatasetId\n linkFieldKey\n linkAlias\n linkDirection\n parentFieldId\n createdAt\n updatedAt\n`\n\ninterface RecordFieldOptions {\n includePricing?: boolean\n}\n\nconst TCGPLAYER_PRICING_FIELDS = `\n pricing {\n productId\n prices {\n subTypeName\n lowPrice\n midPrice\n highPrice\n marketPrice\n directLowPrice\n }\n }\n`\n\nfunction recordFields(options: RecordFieldOptions = {}): string {\n return `\n id\n datasetId\n data\n ${options.includePricing ? TCGPLAYER_PRICING_FIELDS : ''}\n createdAt\n updatedAt\n dataset {\n id\n key\n name\n gameId\n publisherId\n }\n `\n}\n\nconst RECORD_FIELDS = recordFields()\n\nconst DECK_SECTION_DEFINITION_FIELDS = `\n key\n label\n description\n order\n default\n aliases\n minCards\n maxCards\n excludedFromDeckSize\n legalCardTypes\n metadata\n`\n\nconst DECK_ENTRY_FIELDS = `\n id\n datasetId\n recordId\n identifier\n quantity\n section\n sortOrder\n annotations\n display\n record {\n ${RECORD_FIELDS}\n }\n`\n\nconst DECK_VALIDATED_AGAINST_FIELDS = `\n rulesetId\n rulesetVersionId\n rulesetVersionLabel\n cardDatasetId\n cardDatasetVersionId\n validatedAt\n validationResultSummary\n`\n\nconst DECK_VALIDATION_ISSUE_FIELDS = `\n code\n severity\n message\n entryIds\n section\n datasetId\n identifier\n metadata\n`\n\nconst DECK_VALIDATION_FIELDS = `\n deckId\n valid\n blockers {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n warnings {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n affectedEntries {\n entryId\n datasetId\n recordId\n identifier\n section\n quantity\n }\n validatedAgainst {\n ${DECK_VALIDATED_AGAINST_FIELDS}\n }\n checkedAt\n`\n\nconst RULESET_VERSION_FIELDS = `\n id\n rulesetId\n versionLabel\n status\n rules\n sectionDefinitions {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n cardDatasetId\n cardDatasetVersionId\n sourceDatasetId\n sourceDatasetVersionId\n sourceDatasetRecordId\n sourceRecordIdentifier\n rulesFingerprint\n effectiveAt\n changelog\n createdByAccountId\n publishedByAccountId\n publishedAt\n supersededAt\n createdAt\n updatedAt\n`\n\nconst RULESET_FIELDS = `\n id\n gameId\n game {\n id\n key\n name\n }\n key\n name\n description\n tags\n sortOrder\n currentVersionId\n currentVersion {\n ${RULESET_VERSION_FIELDS}\n }\n archivedAt\n isArchived\n createdAt\n updatedAt\n`\n\nconst DECK_VALIDATION_RULES_FIELDS = `\n rulesetId\n rulesetVersionId\n rulesetKey\n rulesetVersionLabel\n rules\n sections {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n`\n\nconst RULESET_VALIDATION_IMPACT_DECK_FIELDS = `\n deckId\n title\n slug\n state\n hasUnpublishedChanges\n valid\n blockerCount\n warningCount\n affectedEntryCount\n issues {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n`\n\nconst RULESET_VALIDATION_IMPACT_FIELDS = `\n rulesetId\n rulesetVersionId\n checkedAt\n affectedDeckCount\n invalidDeckCount\n blockerCount\n warningCount\n results {\n ${RULESET_VALIDATION_IMPACT_DECK_FIELDS}\n }\n`\n\nconst RULESET_VERSION_DRAFT_IMPORT_PREVIEW_FIELDS = `\n sourceDatasetId\n sourceDatasetVersionId\n sourceDatasetRecordId\n sourceRecordIdentifier\n rules\n sectionDefinitions {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n rulesFingerprint\n summary\n sectionCount\n copyLimitCount\n`\n\nconst DECK_DIFF_FIELDS = `\n deckId\n fromVersionId\n toVersionId\n toDraftRevision\n hasChanges\n diff\n`\n\nconst DECK_VERSION_FIELDS = `\n id\n deckId\n versionNumber\n slug\n identifier\n title\n description\n formatKey\n visibility\n externalRef\n sourceUrl\n metadata\n publishNote\n computedDiff\n rulesetId\n rulesetVersionId\n cardDatasetId\n cardDatasetVersionId\n validatedAt\n validationSummary\n validatedAgainst {\n ${DECK_VALIDATED_AGAINST_FIELDS}\n }\n sectionDefinitions {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n publishedByAccountId\n publishedByApiApplicationId\n createdAt\n entries {\n ${DECK_ENTRY_FIELDS}\n }\n`\n\nconst DECK_COLLABORATOR_FIELDS = `\n id\n deckId\n accountId\n role\n createdByAccountId\n createdAt\n updatedAt\n`\n\nconst DECK_TOKEN_ISSUER_FIELDS = `\n id\n apiApplicationId\n label\n allowedScopes\n allowedRepresentations\n maxTokenLifetimeSeconds\n directSigningAlg\n directSigningKeyId\n directSigningPublicKey\n directSigningKeyRevokedAt\n revokedAt\n createdAt\n updatedAt\n`\n\nconst DECK_TOKEN_FIELDS = `\n id\n apiApplicationId\n issuerId\n deckId\n gameId\n externalSubject\n scopes\n representation\n expiresAt\n revokedAt\n lastUsedAt\n createdAt\n updatedAt\n`\n\nconst DECK_IMPORT_ENTRY_FIELDS = `\n lineNumber\n raw\n datasetKey\n datasetId\n recordId\n identifier\n quantity\n section\n sortOrder\n display\n record {\n ${RECORD_FIELDS}\n }\n`\n\nconst DECK_IMPORT_ISSUE_FIELDS = `\n lineNumber\n raw\n code\n message\n`\n\nconst DECK_IMPORT_UNMATCHED_FIELDS = `\n lineNumber\n raw\n datasetKey\n identifier\n quantity\n section\n code\n message\n`\n\nconst DECK_IMPORT_AMBIGUOUS_FIELDS = `\n lineNumber\n raw\n datasetKey\n identifier\n quantity\n section\n candidates {\n recordId\n identifier\n display\n }\n`\n\nconst DECK_IMPORT_FORMAT_DEFINITION_FIELDS = `\n id\n gameId\n key\n name\n description\n enabled\n priority\n datasetKey\n config\n archivedAt\n isArchived\n createdAt\n updatedAt\n`\n\nconst DECK_IMPORT_FORMAT_DETECTION_FIELDS = `\n formatId\n key\n name\n confidence\n reason\n`\n\nconst DECK_IMPORT_FORMAT_TEST_PAYLOAD_FIELDS = `\n detection {\n ${DECK_IMPORT_FORMAT_DETECTION_FIELDS}\n }\n entries {\n ${DECK_IMPORT_ENTRY_FIELDS}\n }\n parseErrors {\n ${DECK_IMPORT_ISSUE_FIELDS}\n }\n unmatched {\n ${DECK_IMPORT_UNMATCHED_FIELDS}\n }\n ambiguous {\n ${DECK_IMPORT_AMBIGUOUS_FIELDS}\n }\n`\n\nconst DECK_HYDRATE_ENTRIES_PAYLOAD_FIELDS = `\n entries {\n ${DECK_IMPORT_ENTRY_FIELDS}\n }\n unmatched {\n ${DECK_IMPORT_UNMATCHED_FIELDS}\n }\n ambiguous {\n ${DECK_IMPORT_AMBIGUOUS_FIELDS}\n }\n`\n\nconst DECK_EXPORT_PAYLOAD_FIELDS = `\n deckId\n format\n text\n entryCount\n`\n\nconst DECK_FIELDS = `\n id\n ownerType\n ownerAccountId\n ownerApiApplicationId\n environment\n createdByAccountId\n createdByApiApplicationId\n accountId\n apiApplicationId\n gameId\n slug\n identifier\n title\n description\n formatKey\n visibility\n accessMode\n discoverability\n state\n archivedAt\n deletedAt\n unpublishedAt\n externalRefApiApplicationId\n externalRef\n externalSubjectRef\n rulesetId\n sourceUrl\n metadata\n sectionDefinitions {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n latestPublishedVersion {\n ${DECK_VERSION_FIELDS}\n }\n publishedAt\n draftRevision\n draftUpdatedAt\n draftUpdatedByAccountId\n draftUpdatedByApiApplicationId\n hasUnpublishedChanges\n createdAt\n updatedAt\n game {\n ${GAME_FIELDS}\n }\n entries {\n ${DECK_ENTRY_FIELDS}\n }\n`\n\nconst DECK_OWNERSHIP_TRANSFER_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n retainedAppAccess\n`\n\nconst DECK_COPY_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n copiedFromDeckId\n retainedAppAccess\n`\n\nconst DECK_ACCESS_APPLICATION_FIELDS = `\n id\n name\n description\n revokedAt\n`\n\nconst DECK_API_APPLICATION_ACCESS_FIELDS = `\n id\n deckId\n deck {\n ${DECK_FIELDS}\n }\n apiApplicationId\n apiApplication {\n ${DECK_ACCESS_APPLICATION_FIELDS}\n }\n role\n grantSource\n externalRef\n createdByAccountId\n createdByApiApplicationId\n revokedAt\n createdAt\n updatedAt\n`\n\nconst DECK_PUBLISH_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n version {\n ${DECK_VERSION_FIELDS}\n }\n validation {\n ${DECK_VALIDATION_FIELDS}\n }\n blockers {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n warnings {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n`\n\nconst DECK_ENTRY_MUTATION_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n entry {\n ${DECK_ENTRY_FIELDS}\n }\n`\n\nconst DECK_ENTRY_REORDER_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n entries {\n ${DECK_ENTRY_FIELDS}\n }\n`\n\nconst DECK_ENTRIES_REPLACE_PAYLOAD_FIELDS = DECK_ENTRY_REORDER_PAYLOAD_FIELDS\n\nconst DECK_IMPORT_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n applied\n dryRun\n replace\n format\n importFormat {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n detection {\n ${DECK_IMPORT_FORMAT_DETECTION_FIELDS}\n }\n entries {\n ${DECK_IMPORT_ENTRY_FIELDS}\n }\n parseErrors {\n ${DECK_IMPORT_ISSUE_FIELDS}\n }\n unmatched {\n ${DECK_IMPORT_UNMATCHED_FIELDS}\n }\n ambiguous {\n ${DECK_IMPORT_AMBIGUOUS_FIELDS}\n }\n validation {\n ${DECK_VALIDATION_FIELDS}\n }\n`\n\nconst RESOLVED_LINKS_FIELDS = `\n resolvedLinks {\n field\n linkFieldKey\n values\n records {\n id\n datasetId\n data\n }\n }\n`\n\nconst BULK_RECORD_ERROR_FIELDS = `\n datasetKey\n index\n errors {\n field\n message\n details\n }\n`\n\nconst IMPORT_STATS_FIELDS = `\n total\n inserted\n updated\n skipped\n failed\n`\n\nconst BULK_IMPORT_RESULT_FIELDS = `\n inserted {\n ${RECORD_FIELDS}\n }\n updated {\n ${RECORD_FIELDS}\n }\n skipped\n errors {\n ${BULK_RECORD_ERROR_FIELDS}\n }\n createdFields {\n ${OBJECT_FIELD_FIELDS}\n }\n stats {\n ${IMPORT_STATS_FIELDS}\n }\n`\n\nconst IMPORT_JOB_ASSET_FIELDS = `\n fileId\n filename\n file {\n ${FILE_FIELDS}\n }\n`\n\nconst IMPORT_JOB_FIELDS = `\n id\n publisherId\n publisher {\n ${PUBLISHER_FIELDS}\n }\n datasetId\n dataset {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n accountId\n status\n mode\n onConflict\n format\n fileId\n progress\n totalRecords\n processedRecords\n insertedCount\n updatedCount\n skippedCount\n failedCount\n createdFields {\n ${OBJECT_FIELD_FIELDS}\n }\n errors {\n ${BULK_RECORD_ERROR_FIELDS}\n }\n errorMessage\n assets {\n ${IMPORT_JOB_ASSET_FIELDS}\n }\n startedAt\n completedAt\n createdAt\n updatedAt\n lastCheckpointIndex\n isResumed\n imagesPending\n imagesCompleted\n imagesFailed\n`\n\nconst IMPORT_JOB_LOG_FIELDS = `\n id\n importJobId\n level\n message\n datasetKey\n recordIndex\n fieldKey\n details\n createdAt\n`\n\nconst DATASET_RECORDS_UPSERT_PAYLOAD_FIELDS = `\n job {\n ${IMPORT_JOB_FIELDS}\n }\n dryRunResult {\n ${BULK_IMPORT_RESULT_FIELDS}\n }\n`\n\nconst DELETE_JOB_RESULT_FIELDS = `\n target\n recordId\n identifier\n status\n message\n`\n\nconst DATASET_RECORD_DELETE_JOB_FIELDS = `\n id\n publisherId\n publisher {\n ${PUBLISHER_FIELDS}\n }\n datasetId\n dataset {\n ${DATASET_FIELDS}\n }\n accountId\n status\n targetType\n dryRun\n targets\n progress\n totalTargets\n processedTargets\n matchedCount\n deletedCount\n missingCount\n blockedCount\n failedCount\n results {\n ${DELETE_JOB_RESULT_FIELDS}\n }\n errorMessage\n startedAt\n completedAt\n createdAt\n updatedAt\n`\n\nconst FIELD_MAPPING_FIELDS = `\n sourceField\n targetField\n targetFieldLabel\n inferredType\n inferredItemType\n inferredChildren {\n key\n label\n type\n required\n itemType\n children {\n key\n label\n type\n required\n itemType\n }\n }\n inferredLinkDataset\n inferredLinkFieldKey\n inferredLinkDirection\n targetFieldType\n sampleValues\n status\n`\n\nconst IMPORT_WARNING_FIELDS = `\n datasetKey\n field\n message\n severity\n`\n\nconst DATASET_IMPORT_PREVIEW_FIELDS = `\n datasetKey\n datasetName\n datasetId\n exists\n recordCount\n fieldMappings {\n ${FIELD_MAPPING_FIELDS}\n }\n warnings {\n ${IMPORT_WARNING_FIELDS}\n }\n canProceed\n sampleRecords\n availableDatasets {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n`\n\nconst GAME_IMPORT_PREVIEW_FIELDS = `\n datasets {\n datasetKey\n datasetName\n datasetId\n exists\n recordCount\n fieldMappings {\n ${FIELD_MAPPING_FIELDS}\n }\n warnings {\n ${IMPORT_WARNING_FIELDS}\n }\n sampleRecords\n }\n importOrder\n warnings {\n ${IMPORT_WARNING_FIELDS}\n }\n canProceed\n`\n\nconst GAME_IMPORT_DATASET_STATUS_FIELDS = `\n datasetKey\n datasetId\n datasetName\n status\n recordCount\n insertedCount\n updatedCount\n skippedCount\n failedCount\n errorMessage\n`\n\nconst GAME_IMPORT_JOB_FIELDS = `\n id\n publisherId\n publisher {\n ${PUBLISHER_FIELDS}\n }\n gameId\n game {\n ${GAME_FIELDS}\n }\n accountId\n status\n mode\n onConflict\n fileId\n assets {\n ${IMPORT_JOB_ASSET_FIELDS}\n }\n totalDatasets\n completedDatasets\n progress\n importOrder\n datasetStatuses {\n ${GAME_IMPORT_DATASET_STATUS_FIELDS}\n }\n errorMessage\n startedAt\n completedAt\n createdAt\n updatedAt\n completedDatasetKeys\n currentDatasetKey\n lastCheckpointIndex\n isResumed\n imagesPending\n imagesCompleted\n imagesFailed\n phase\n linkBuildingDataset\n linkBuildingTotalDatasets\n linkBuildingCompletedDatasets\n linkBuildingProcessedRecords\n linkBuildingTotalRecords\n`\n\nconst EXPORT_JOB_FIELDS = `\n id\n publisherId\n publisher {\n ${PUBLISHER_FIELDS}\n }\n datasetId\n dataset {\n ${DATASET_FIELDS}\n }\n accountId\n status\n format\n filter\n totalRecords\n processedRecords\n progress\n fileId\n downloadUrl\n downloadExpiresAt\n errorMessage\n startedAt\n completedAt\n createdAt\n updatedAt\n lastCheckpointIndex\n`\n\nconst SCAN_CANDIDATE_FIELDS = `\n recordId\n rank\n score\n confidence\n reasons\n`\n\nconst SCAN_WEBHOOK_FIELDS = `\n configured\n url\n latestDeliveryId\n status\n attemptCount\n nextAttemptAt\n lastAttemptAt\n deliveredAt\n lastStatusCode\n lastError\n`\n\nconst SCAN_JOB_METRICS_FIELDS = `\n featureVersion\n candidateCount\n confidenceScore\n confidenceLabel\n stages {\n name\n status\n durationMs\n completedAt\n details\n }\n timings\n`\n\nconst SCAN_JOB_FIELDS = `\n jobId\n status\n publisherSlug\n gameKey\n datasetKey\n fileId\n clientRequestId\n templateId\n templateVersionId\n bestMatch {\n recordId\n score\n confidence\n }\n candidates {\n ${SCAN_CANDIDATE_FIELDS}\n }\n extracted\n metrics {\n ${SCAN_JOB_METRICS_FIELDS}\n }\n webhook {\n ${SCAN_WEBHOOK_FIELDS}\n }\n error {\n code\n message\n }\n createdAt\n updatedAt\n startedAt\n completedAt\n`\n\nconst SCAN_METRICS_FIELDS = `\n publisherSlug\n gameKey\n datasetKey\n since\n until\n generatedAt\n totalJobs\n completedJobs\n failedJobs\n failureRate\n noMatchCount\n noMatchRate\n averageShortlistSize\n vectorQueryCount\n vectorFallbackCount\n averageVectorCandidates\n averageVectorQueryMs\n averageEmbeddingMs\n confidenceDistribution\n feedback {\n total\n correct\n corrected\n unknown\n accuracy\n }\n featureVersions {\n featureVersion\n jobCount\n completedJobs\n failedJobs\n noMatchCount\n averageConfidence\n averageShortlistSize\n vectorQueryCount\n vectorFallbackCount\n averageVectorCandidates\n averageVectorQueryMs\n averageEmbeddingMs\n feedbackCount\n correctFeedback\n correctedFeedback\n feedbackAccuracy\n }\n`\n\nconst SCAN_TEMPLATE_WARNING_FIELDS = `\n code\n region\n message\n`\n\nconst SCAN_TEMPLATE_REGION_FIELDS = `\n id\n key\n label\n sortOrder\n shapeType\n geometry\n semanticType\n extractionMode\n lookupMode\n isRequired\n weight\n config\n`\n\nconst SCAN_TEMPLATE_FIELDS = `\n id\n key\n name\n status\n version\n isDefault\n publisherSlug\n gameKey\n datasetKey\n exampleFileId\n coordinateSpace\n cardAspectRatio\n notes\n config\n regions {\n ${SCAN_TEMPLATE_REGION_FIELDS}\n }\n createdAt\n updatedAt\n`\n\nconst SCAN_TEMPLATE_PREVIEW_REGION_FIELDS = `\n key\n label\n semanticType\n extractionMode\n lookupMode\n rawText\n normalizedValue\n source\n status\n confidence\n`\n\nconst GAME_SCAN_REGION_FIELDS = `\n id\n key\n name\n description\n sortOrder\n isActive\n metadata\n createdAt\n updatedAt\n`\n\nfunction connectionFields(nodeFields: string): string {\n return `\n totalCount\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n ${nodeFields}\n }\n }\n `\n}\n\n// ============================================================================\n// Query Builder\n// ============================================================================\n\nexport interface SearchPublishersParams {\n search?: string\n first?: number\n after?: string\n}\n\nexport interface SearchGamesParams {\n publisherSlug?: string\n search?: string\n first?: number\n after?: string\n}\n\nexport interface SearchDatasetsParams {\n publisherSlug?: string\n gameKey?: string\n search?: string\n purpose?: 'DATA' | 'RULES'\n first?: number\n after?: string\n}\n\nexport interface SearchRecordsParams {\n publisherSlug: string\n gameKey: string\n datasetKey: string\n filter?: FilterCondition\n search?: string\n orderBy?: string\n resolveLinks?: string[]\n first?: number\n after?: string\n validateSchema?: boolean\n includePricing?: boolean\n}\n\nexport interface ListGamesParams {\n publisherId: string\n first?: number\n after?: string\n includeArchived?: boolean\n}\n\nexport interface GameLookupParams {\n id?: string\n publisherId?: string\n publisherSlug?: string\n gameKey?: string\n gameSlug?: string\n}\n\nexport interface ListDatasetsParams {\n publisherId: string\n gameId?: string\n first?: number\n after?: string\n includeArchived?: boolean\n purpose?: 'DATA' | 'RULES'\n}\n\nexport interface DatasetLookupParams {\n id?: string\n publisherId?: string\n gameId?: string\n datasetKey?: string\n}\n\nexport interface DatasetFilterValuesParams {\n id?: string\n publisherSlug?: string\n gameKey?: string\n datasetKey?: string\n fields: string[]\n search?: string\n includeCounts?: boolean\n first?: number\n after?: string\n}\n\nexport interface ListDatasetRecordsParams {\n datasetId: string\n filter?: FilterCondition\n orderBy?: { field: string; direction?: 'ASC' | 'DESC' }\n first?: number\n after?: string\n last?: number\n before?: string\n validateSchema?: boolean\n}\n\nexport interface DatasetRecordLookupParams {\n id?: string\n datasetId?: string\n identifier?: string\n publisherSlug?: string\n gameKey?: string\n datasetKey?: string\n recordId?: string\n resolveLinks?: string[]\n validateSchema?: boolean\n includePricing?: boolean\n}\n\nexport interface ListImportJobsParams {\n publisherId: string\n datasetId?: string\n status?: ImportJobStatus\n first?: number\n after?: string\n}\n\nexport interface ListGameImportJobsParams {\n gameId: string\n status?: ImportJobStatus\n first?: number\n after?: string\n}\n\nexport interface ListDatasetRecordDeleteJobsParams {\n publisherId: string\n datasetId?: string\n status?: DatasetRecordDeleteJobStatus\n first?: number\n after?: string\n}\n\nexport interface ListExportJobsParams {\n publisherId: string\n gameId?: string\n datasetId?: string\n status?: ExportJobStatus\n first?: number\n after?: string\n}\n\nexport interface ListDecksParams {\n first?: number\n after?: string\n includeArchived?: boolean\n}\n\nexport interface ListDeckVersionsParams {\n first?: number\n after?: string\n}\n\nexport interface DeckSectionDefinitionsParams {\n publisherSlug?: string\n gameKey?: string\n gameId?: string\n rulesetKey?: string\n rulesetVersionId?: string\n}\n\nexport interface ListRulesetsParams {\n gameId: string\n includeArchived?: boolean\n first?: number\n after?: string\n}\n\nexport interface ListPublicRulesetsParams {\n gameId: string\n first?: number\n after?: string\n}\n\nexport interface RulesetLookupParams {\n id?: string\n gameId?: string\n key?: string\n}\n\nexport interface ListRulesetVersionsParams {\n rulesetId: string\n status?: RulesetVersionStatus\n first?: number\n after?: string\n}\n\nexport interface RulesetValidationRulesParams {\n gameId: string\n rulesetKey: string\n rulesetVersionId?: string\n}\n\nexport interface RulesetValidationImpactParams {\n rulesetVersionId: string\n first?: number\n}\n\nexport interface ViewerDecksParams {\n filter?: ViewerDecksFilterInput\n first?: number\n after?: string\n}\n\nexport interface AppDecksParams {\n filter?: AppDecksFilterInput\n first?: number\n after?: string\n}\n\nexport interface PublicDecksParams {\n filter?: PublicDecksFilterInput\n first?: number\n after?: string\n}\n\nexport interface ListDeckImportFormatsParams {\n publisherId?: string\n gameId?: string\n includeArchived?: boolean\n first?: number\n after?: string\n}\n\nexport const QueryBuilder = {\n // Publishers\n searchPublishers(params: SearchPublishersParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.search !== undefined) {\n defs.push('$search: String')\n args.push('search: $search')\n variables['search'] = params.search\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query SearchPublishers${defStr} {\n searchPublishers${argStr} {\n ${connectionFields(PUBLISHER_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchPublisherById(): { query: string } {\n return {\n query: `\n query FetchPublisher($id: UUID!) {\n fetchPublisher(id: $id) {\n ${PUBLISHER_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchPublisherBySlug(): { query: string } {\n return {\n query: `\n query FetchPublisher($slug: String!) {\n fetchPublisher(slug: $slug) {\n ${PUBLISHER_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchPublishers(): { query: string } {\n return {\n query: `\n query FetchPublishers($slugs: [String!]!) {\n fetchPublishers(slugs: $slugs) {\n ${PUBLISHER_FIELDS}\n }\n }\n `,\n }\n },\n\n // Games\n searchGames(params: SearchGamesParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.search !== undefined) {\n defs.push('$search: String')\n args.push('search: $search')\n variables['search'] = params.search\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query SearchGames${defStr} {\n searchGames${argStr} {\n ${connectionFields(GAME_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchGameById(): { query: string } {\n return {\n query: `\n query FetchGame($id: UUID!) {\n fetchGame(id: $id) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchGameByKeys(): { query: string } {\n return {\n query: `\n query FetchGame($publisherSlug: String!, $gameKey: String!) {\n fetchGame(publisherSlug: $publisherSlug, gameKey: $gameKey) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchGames(): { query: string } {\n return {\n query: `\n query FetchGames($ids: [UUID!]!) {\n fetchGames(ids: $ids) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n listGames(params: ListGamesParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n\n return {\n query: `\n query Games(${defs.join(', ')}) {\n games(${args.join(', ')}) {\n ${connectionFields(GAME_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n game(params: GameLookupParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.id !== undefined) {\n defs.push('$id: UUID')\n args.push('id: $id')\n variables['id'] = params.id\n }\n if (params.publisherId !== undefined) {\n defs.push('$publisherId: UUID')\n args.push('publisherId: $publisherId')\n variables['publisherId'] = params.publisherId\n }\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.gameKey !== undefined) {\n defs.push('$gameKey: String')\n args.push('gameKey: $gameKey')\n variables['gameKey'] = params.gameKey\n }\n if (params.gameSlug !== undefined) {\n defs.push('$gameSlug: String')\n args.push('gameSlug: $gameSlug')\n variables['gameSlug'] = params.gameSlug\n }\n\n return {\n query: `\n query Game(${defs.join(', ')}) {\n game(${args.join(', ')}) {\n ${GAME_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n createGame(): { query: string } {\n return {\n query: `\n mutation GameCreate($input: GameCreateInput!) {\n gameCreate(input: $input) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n updateGame(): { query: string } {\n return {\n query: `\n mutation GameUpdate($id: UUID!, $input: GameUpdateInput!) {\n gameUpdate(id: $id, input: $input) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n // Datasets\n searchDatasets(params: SearchDatasetsParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.gameKey !== undefined) {\n defs.push('$gameKey: String')\n args.push('gameKey: $gameKey')\n variables['gameKey'] = params.gameKey\n }\n if (params.search !== undefined) {\n defs.push('$search: String')\n args.push('search: $search')\n variables['search'] = params.search\n }\n if (params.purpose !== undefined) {\n defs.push('$purpose: DatasetPurpose')\n args.push('purpose: $purpose')\n variables['purpose'] = params.purpose\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query SearchDatasets${defStr} {\n searchDatasets${argStr} {\n ${connectionFields(DATASET_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchDatasetById(): { query: string } {\n return {\n query: `\n query FetchDataset($id: UUID!) {\n fetchDataset(id: $id) {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDatasetByKeys(): { query: string } {\n return {\n query: `\n query FetchDataset($publisherSlug: String!, $gameKey: String!, $datasetKey: String!) {\n fetchDataset(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey) {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDatasets(): { query: string } {\n return {\n query: `\n query FetchDatasets($ids: [UUID!]!) {\n fetchDatasets(ids: $ids) {\n ${DATASET_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDatasetFilterValues(params: DatasetFilterValuesParams): {\n query: string\n variables: Record<string, unknown>\n } {\n if (params.fields.length === 0) {\n throw new ValidationError('fields must contain at least one field key')\n }\n\n const byId = params.id !== undefined\n const byKeys =\n params.publisherSlug !== undefined &&\n params.gameKey !== undefined &&\n params.datasetKey !== undefined\n if (!byId && !byKeys) {\n throw new ValidationError('provide either id or publisherSlug, gameKey, and datasetKey')\n }\n\n const definitions = ['$fields: [String!]!']\n const filterValueArgs = ['fields: $fields']\n const variables: Record<string, unknown> = { fields: params.fields }\n\n if (params.search !== undefined) {\n definitions.push('$search: String')\n filterValueArgs.push('search: $search')\n variables['search'] = params.search\n }\n if (params.includeCounts !== undefined) {\n definitions.push('$includeCounts: Boolean')\n filterValueArgs.push('includeCounts: $includeCounts')\n variables['includeCounts'] = params.includeCounts\n }\n if (params.first !== undefined) {\n definitions.push('$first: Int')\n filterValueArgs.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n definitions.push('$after: String')\n filterValueArgs.push('after: $after')\n variables['after'] = params.after\n }\n\n const datasetArgs: string[] = []\n if (byId) {\n definitions.push('$id: UUID!')\n datasetArgs.push('id: $id')\n variables['id'] = params.id\n } else {\n definitions.push('$publisherSlug: String!', '$gameKey: String!', '$datasetKey: String!')\n datasetArgs.push(\n 'publisherSlug: $publisherSlug',\n 'gameKey: $gameKey',\n 'datasetKey: $datasetKey'\n )\n variables['publisherSlug'] = params.publisherSlug\n variables['gameKey'] = params.gameKey\n variables['datasetKey'] = params.datasetKey\n }\n\n return {\n query: `\n query FetchDatasetFilterValues(${definitions.join(', ')}) {\n fetchDataset(${datasetArgs.join(', ')}) {\n filterValues(${filterValueArgs.join(', ')}) {\n ${DATASET_FILTER_VALUE_CONNECTION_FIELDS}\n }\n }\n }\n `,\n variables,\n }\n },\n\n listDatasets(params: ListDatasetsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n if (params.purpose !== undefined) {\n defs.push('$purpose: DatasetPurpose')\n args.push('purpose: $purpose')\n variables['purpose'] = params.purpose\n }\n\n return {\n query: `\n query Datasets(${defs.join(', ')}) {\n datasets(${args.join(', ')}) {\n ${connectionFields(`${DATASET_FIELDS}\\n${SCHEMA_FIELDS}`)}\n }\n }\n `,\n variables,\n }\n },\n\n dataset(params: DatasetLookupParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.id !== undefined) {\n defs.push('$id: UUID')\n args.push('id: $id')\n variables['id'] = params.id\n }\n if (params.publisherId !== undefined) {\n defs.push('$publisherId: UUID')\n args.push('publisherId: $publisherId')\n variables['publisherId'] = params.publisherId\n }\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.datasetKey !== undefined) {\n defs.push('$datasetKey: String')\n args.push('datasetKey: $datasetKey')\n variables['datasetKey'] = params.datasetKey\n }\n\n return {\n query: `\n query Dataset(${defs.join(', ')}) {\n dataset(${args.join(', ')}) {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n // Records\n searchRecords(params: SearchRecordsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {\n publisherSlug: params.publisherSlug,\n gameKey: params.gameKey,\n datasetKey: params.datasetKey,\n }\n const args: string[] = [\n 'publisherSlug: $publisherSlug',\n 'gameKey: $gameKey',\n 'datasetKey: $datasetKey',\n ]\n const defs: string[] = ['$publisherSlug: String!', '$gameKey: String!', '$datasetKey: String!']\n\n if (params.filter !== undefined) {\n defs.push('$filter: JSON')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.search !== undefined) {\n defs.push('$search: String')\n args.push('search: $search')\n variables['search'] = params.search\n }\n if (params.orderBy !== undefined) {\n defs.push('$orderBy: String')\n args.push('orderBy: $orderBy')\n variables['orderBy'] = params.orderBy\n }\n if (params.resolveLinks !== undefined) {\n defs.push('$resolveLinks: [String!]')\n args.push('resolveLinks: $resolveLinks')\n variables['resolveLinks'] = params.resolveLinks\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.validateSchema !== undefined) {\n defs.push('$validateSchema: Boolean')\n args.push('validateSchema: $validateSchema')\n variables['validateSchema'] = params.validateSchema\n }\n\n const includeResolvedLinks = params.resolveLinks && params.resolveLinks.length > 0\n const selectedRecordFields = recordFields({ includePricing: params.includePricing })\n const nodeFields = includeResolvedLinks\n ? `${selectedRecordFields}\\n${RESOLVED_LINKS_FIELDS}`\n : selectedRecordFields\n\n return {\n query: `\n query SearchRecords(${defs.join(', ')}) {\n searchRecords(${args.join(', ')}) {\n ${connectionFields(nodeFields)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchRecordById(params: RecordFieldOptions = {}): { query: string } {\n return {\n query: `\n query FetchRecord($id: UUID!) {\n fetchRecord(id: $id) {\n ${recordFields(params)}\n }\n }\n `,\n }\n },\n\n fetchRecordByIdentifier(params: RecordFieldOptions = {}): { query: string } {\n return {\n query: `\n query FetchRecordByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifier: String!) {\n fetchRecordByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifier: $identifier) {\n ${recordFields(params)}\n }\n }\n `,\n }\n },\n\n fetchRecordsByIdentifier(params: RecordFieldOptions = {}): { query: string } {\n return {\n query: `\n query FetchRecordsByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifiers: [String!]!) {\n fetchRecordsByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifiers: $identifiers) {\n ${recordFields(params)}\n }\n }\n `,\n }\n },\n\n fetchRecords(params: RecordFieldOptions = {}): { query: string } {\n return {\n query: `\n query FetchRecords($ids: [UUID!]!) {\n fetchRecords(ids: $ids) {\n ${recordFields(params)}\n }\n }\n `,\n }\n },\n\n listDatasetRecords(params: ListDatasetRecordsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { datasetId: params.datasetId }\n const args: string[] = ['datasetId: $datasetId']\n const defs: string[] = ['$datasetId: UUID!']\n\n if (params.filter !== undefined) {\n defs.push('$filter: JSON')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.orderBy !== undefined) {\n defs.push('$orderBy: DatasetRecordOrderByInput')\n args.push('orderBy: $orderBy')\n variables['orderBy'] = params.orderBy\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.last !== undefined) {\n defs.push('$last: Int')\n args.push('last: $last')\n variables['last'] = params.last\n }\n if (params.before !== undefined) {\n defs.push('$before: String')\n args.push('before: $before')\n variables['before'] = params.before\n }\n if (params.validateSchema !== undefined) {\n defs.push('$validateSchema: Boolean')\n args.push('validateSchema: $validateSchema')\n variables['validateSchema'] = params.validateSchema\n }\n\n return {\n query: `\n query DatasetRecords(${defs.join(', ')}) {\n datasetRecords(${args.join(', ')}) {\n ${connectionFields(RECORD_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n datasetRecord(params: DatasetRecordLookupParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.id !== undefined) {\n defs.push('$id: UUID')\n args.push('id: $id')\n variables['id'] = params.id\n }\n if (params.datasetId !== undefined) {\n defs.push('$datasetId: UUID')\n args.push('datasetId: $datasetId')\n variables['datasetId'] = params.datasetId\n }\n if (params.identifier !== undefined) {\n defs.push('$identifier: String')\n args.push('identifier: $identifier')\n variables['identifier'] = params.identifier\n }\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.gameKey !== undefined) {\n defs.push('$gameKey: String')\n args.push('gameKey: $gameKey')\n variables['gameKey'] = params.gameKey\n }\n if (params.datasetKey !== undefined) {\n defs.push('$datasetKey: String')\n args.push('datasetKey: $datasetKey')\n variables['datasetKey'] = params.datasetKey\n }\n if (params.recordId !== undefined) {\n defs.push('$recordId: UUID')\n args.push('recordId: $recordId')\n variables['recordId'] = params.recordId\n }\n if (params.resolveLinks !== undefined) {\n defs.push('$resolveLinks: [String!]')\n args.push('resolveLinks: $resolveLinks')\n variables['resolveLinks'] = params.resolveLinks\n }\n if (params.validateSchema !== undefined) {\n defs.push('$validateSchema: Boolean')\n args.push('validateSchema: $validateSchema')\n variables['validateSchema'] = params.validateSchema\n }\n\n const includeResolvedLinks = params.resolveLinks && params.resolveLinks.length > 0\n const selectedRecordFields = recordFields({ includePricing: params.includePricing })\n const fields = includeResolvedLinks\n ? `${selectedRecordFields}\\n${RESOLVED_LINKS_FIELDS}`\n : selectedRecordFields\n\n return {\n query: `\n query DatasetRecord(${defs.join(', ')}) {\n datasetRecord(${args.join(', ')}) {\n ${fields}\n }\n }\n `,\n variables,\n }\n },\n\n upsertDatasetRecords(): { query: string } {\n return {\n query: `\n mutation DatasetRecordsUpsert($input: DatasetRecordsUpsertInput!) {\n datasetRecordsUpsert(input: $input) {\n ${DATASET_RECORDS_UPSERT_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n deleteDatasetRecords(): { query: string } {\n return {\n query: `\n mutation DatasetRecordsDelete($input: DatasetRecordsDeleteInput!) {\n datasetRecordsDelete(input: $input) {\n ${DATASET_RECORD_DELETE_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetRecordDeleteJob(): { query: string } {\n return {\n query: `\n query DatasetRecordDeleteJob($id: UUID!) {\n datasetRecordDeleteJob(id: $id) {\n ${DATASET_RECORD_DELETE_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetRecordDeleteJobs(params: ListDatasetRecordDeleteJobsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.datasetId !== undefined) {\n defs.push('$datasetId: UUID')\n args.push('datasetId: $datasetId')\n variables['datasetId'] = params.datasetId\n }\n if (params.status !== undefined) {\n defs.push('$status: DatasetRecordDeleteJobStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query DatasetRecordDeleteJobs(${defs.join(', ')}) {\n datasetRecordDeleteJobs(${args.join(', ')}) {\n ${connectionFields(DATASET_RECORD_DELETE_JOB_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n datasetImportPreview(): { query: string } {\n return {\n query: `\n query DatasetImportPreview($input: DatasetImportPreviewInput!) {\n datasetImportPreview(input: $input) {\n ${DATASET_IMPORT_PREVIEW_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetImportValidate(): { query: string } {\n return {\n query: `\n query DatasetImportValidate($input: DatasetImportValidateInput!) {\n datasetImportValidate(input: $input) {\n ${BULK_IMPORT_RESULT_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetImportFromFile(): { query: string } {\n return {\n query: `\n mutation DatasetImportFromFile($input: DatasetImportFromFileInput!) {\n datasetImportFromFile(input: $input) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetImportFromPayload(): { query: string } {\n return {\n query: `\n mutation DatasetImportFromPayload($input: DatasetImportFromPayloadInput!) {\n datasetImportFromPayload(input: $input) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetImportFromUrl(): { query: string } {\n return {\n query: `\n mutation DatasetImportFromUrl($input: DatasetImportFromUrlInput!) {\n datasetImportFromUrl(input: $input) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n importJob(): { query: string } {\n return {\n query: `\n query ImportJob($id: UUID!) {\n importJob(id: $id) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n importJobs(params: ListImportJobsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.datasetId !== undefined) {\n defs.push('$datasetId: UUID')\n args.push('datasetId: $datasetId')\n variables['datasetId'] = params.datasetId\n }\n if (params.status !== undefined) {\n defs.push('$status: ImportJobStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query ImportJobs(${defs.join(', ')}) {\n importJobs(${args.join(', ')}) {\n ${connectionFields(IMPORT_JOB_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n importJobCancel(): { query: string } {\n return {\n query: `\n mutation ImportJobCancel($id: UUID!) {\n importJobCancel(id: $id) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n importJobLogs(params: {\n importJobId: string\n level?: string\n datasetKey?: string\n first?: number\n after?: string\n }): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { importJobId: params.importJobId }\n const args: string[] = ['id: $importJobId']\n const logArgs: string[] = []\n const defs: string[] = ['$importJobId: UUID!']\n\n if (params.level !== undefined) {\n defs.push('$level: ImportLogLevel')\n logArgs.push('level: $level')\n variables['level'] = params.level\n }\n if (params.datasetKey !== undefined) {\n defs.push('$datasetKey: String')\n logArgs.push('datasetKey: $datasetKey')\n variables['datasetKey'] = params.datasetKey\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n logArgs.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n logArgs.push('after: $after')\n variables['after'] = params.after\n }\n\n const logArgStr = logArgs.length > 0 ? `(${logArgs.join(', ')})` : ''\n\n return {\n query: `\n query ImportJobLogs(${defs.join(', ')}) {\n importJob(${args.join(', ')}) {\n logs${logArgStr} {\n ${connectionFields(IMPORT_JOB_LOG_FIELDS)}\n }\n }\n }\n `,\n variables,\n }\n },\n\n gameImportPreview(): { query: string } {\n return {\n query: `\n query GameImportPreview($input: GameImportPreviewInput!) {\n gameImportPreview(input: $input) {\n ${GAME_IMPORT_PREVIEW_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportFromFile(): { query: string } {\n return {\n query: `\n mutation GameImportFromFile($input: GameImportFromFileInput!) {\n gameImportFromFile(input: $input) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportFromPayload(): { query: string } {\n return {\n query: `\n mutation GameImportFromPayload($input: GameImportFromPayloadInput!) {\n gameImportFromPayload(input: $input) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportFromUrl(): { query: string } {\n return {\n query: `\n mutation GameImportFromUrl($input: GameImportFromUrlInput!) {\n gameImportFromUrl(input: $input) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportJob(): { query: string } {\n return {\n query: `\n query GameImportJob($id: UUID!) {\n gameImportJob(id: $id) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportJobs(params: ListGameImportJobsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { gameId: params.gameId }\n const args: string[] = ['gameId: $gameId']\n const defs: string[] = ['$gameId: UUID!']\n\n if (params.status !== undefined) {\n defs.push('$status: ImportJobStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query GameImportJobs(${defs.join(', ')}) {\n gameImportJobs(${args.join(', ')}) {\n ${connectionFields(GAME_IMPORT_JOB_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n gameImportJobCancel(): { query: string } {\n return {\n query: `\n mutation GameImportJobCancel($id: UUID!) {\n gameImportJobCancel(id: $id) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n file(): { query: string } {\n return {\n query: `\n query File($id: UUID!) {\n file(id: $id) {\n ${FILE_FIELDS}\n }\n }\n `,\n }\n },\n\n fileUploadRequest(): { query: string } {\n return {\n query: `\n mutation FileUploadRequest($input: FileUploadInput!) {\n fileUploadRequest(input: $input) {\n ${PRESIGNED_UPLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n fileUploadConfirm(): { query: string } {\n return {\n query: `\n mutation FileUploadConfirm($id: UUID!) {\n fileUploadConfirm(id: $id) {\n ${FILE_FIELDS}\n }\n }\n `,\n }\n },\n\n fileDelete(): { query: string } {\n return {\n query: `\n mutation FileDelete($id: UUID!) {\n fileDelete(id: $id)\n }\n `,\n }\n },\n\n createScanUploadSession(): { query: string } {\n return {\n query: `\n mutation CreateScanUploadSession($input: CreateScanUploadSessionInput!) {\n createScanUploadSession(input: $input) {\n ${PRESIGNED_UPLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n confirmScanUpload(): { query: string } {\n return {\n query: `\n mutation ConfirmScanUpload($input: ConfirmScanUploadInput!) {\n confirmScanUpload(input: $input) {\n ${FILE_FIELDS}\n }\n }\n `,\n }\n },\n\n createScanJob(): { query: string } {\n return {\n query: `\n mutation CreateScanJob($input: CreateScanJobInput!) {\n createScanJob(input: $input) {\n job {\n ${SCAN_JOB_FIELDS}\n }\n created\n }\n }\n `,\n }\n },\n\n scanJob(): { query: string } {\n return {\n query: `\n query ScanJob($id: UUID!) {\n scanJob(id: $id) {\n ${SCAN_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n submitScanFeedback(): { query: string } {\n return {\n query: `\n mutation SubmitScanFeedback($input: SubmitScanFeedbackInput!) {\n submitScanFeedback(input: $input) {\n feedbackId\n jobId\n status\n persisted\n correct\n predictedRecordId\n selectedRecordId\n featureVersion\n message\n }\n }\n `,\n }\n },\n\n scanMetrics(): { query: string } {\n return {\n query: `\n query ScanMetrics($input: ScanMetricsInput!) {\n scanMetrics(input: $input) {\n ${SCAN_METRICS_FIELDS}\n }\n }\n `,\n }\n },\n\n resolveScanTemplate(): { query: string } {\n return {\n query: `\n query ResolveScanTemplate($input: ResolveScanTemplateInput!) {\n resolveScanTemplate(input: $input) {\n template {\n ${SCAN_TEMPLATE_FIELDS}\n }\n warnings {\n ${SCAN_TEMPLATE_WARNING_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n scanTemplates(): { query: string } {\n return {\n query: `\n query ScanTemplates($input: ScanTemplatesInput!) {\n scanTemplates(input: $input) {\n templates {\n ${SCAN_TEMPLATE_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n createScanTemplate(): { query: string } {\n return {\n query: `\n mutation CreateScanTemplate($input: SaveScanTemplateInput!) {\n createScanTemplate(input: $input) {\n template {\n ${SCAN_TEMPLATE_FIELDS}\n }\n warnings {\n ${SCAN_TEMPLATE_WARNING_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n updateScanTemplate(): { query: string } {\n return {\n query: `\n mutation UpdateScanTemplate($id: UUID!, $input: SaveScanTemplateInput!) {\n updateScanTemplate(id: $id, input: $input) {\n template {\n ${SCAN_TEMPLATE_FIELDS}\n }\n warnings {\n ${SCAN_TEMPLATE_WARNING_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n previewScanTemplate(): { query: string } {\n return {\n query: `\n mutation PreviewScanTemplate($input: PreviewScanTemplateInput!) {\n previewScanTemplate(input: $input) {\n warnings {\n ${SCAN_TEMPLATE_WARNING_FIELDS}\n }\n regions {\n ${SCAN_TEMPLATE_PREVIEW_REGION_FIELDS}\n }\n message\n }\n }\n `,\n }\n },\n\n gameScanRegions(): { query: string } {\n return {\n query: `\n query GameScanRegions($publisherSlug: String!, $gameKey: String!, $includeInactive: Boolean) {\n gameScanRegions(publisherSlug: $publisherSlug, gameKey: $gameKey, includeInactive: $includeInactive) {\n ${GAME_SCAN_REGION_FIELDS}\n }\n }\n `,\n }\n },\n\n exportJob(): { query: string } {\n return {\n query: `\n query ExportJob($id: UUID!) {\n exportJob(id: $id) {\n ${EXPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n exportJobs(params: ListExportJobsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.datasetId !== undefined) {\n defs.push('$datasetId: UUID')\n args.push('datasetId: $datasetId')\n variables['datasetId'] = params.datasetId\n }\n if (params.status !== undefined) {\n defs.push('$status: ExportJobStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query ExportJobs(${defs.join(', ')}) {\n exportJobs(${args.join(', ')}) {\n ${connectionFields(EXPORT_JOB_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n datasetExport(): { query: string } {\n return {\n query: `\n mutation DatasetExport($input: DatasetExportInput!) {\n datasetExport(input: $input) {\n ${EXPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n exportJobCancel(): { query: string } {\n return {\n query: `\n mutation ExportJobCancel($id: UUID!) {\n exportJobCancel(id: $id) {\n ${EXPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n exportJobRefreshUrl(): { query: string } {\n return {\n query: `\n mutation ExportJobRefreshUrl($id: UUID!) {\n exportJobRefreshUrl(id: $id) {\n ${EXPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n // Rulesets\n rulesets(params: ListRulesetsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { gameId: params.gameId }\n const args: string[] = ['gameId: $gameId']\n const defs: string[] = ['$gameId: UUID!']\n\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query Rulesets(${defs.join(', ')}) {\n rulesets(${args.join(', ')}) {\n ${connectionFields(RULESET_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n publicRulesets(params: ListPublicRulesetsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { gameId: params.gameId }\n const args: string[] = ['gameId: $gameId']\n const defs: string[] = ['$gameId: UUID!']\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query PublicRulesets(${defs.join(', ')}) {\n publicRulesets(${args.join(', ')}) {\n ${connectionFields(RULESET_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n ruleset(params: RulesetLookupParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.id !== undefined) {\n defs.push('$id: UUID')\n args.push('id: $id')\n variables['id'] = params.id\n }\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.key !== undefined) {\n defs.push('$key: String')\n args.push('key: $key')\n variables['key'] = params.key\n }\n\n return {\n query: `\n query Ruleset(${defs.join(', ')}) {\n ruleset(${args.join(', ')}) {\n ${RULESET_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n rulesetVersions(params: ListRulesetVersionsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { rulesetId: params.rulesetId }\n const args: string[] = ['rulesetId: $rulesetId']\n const defs: string[] = ['$rulesetId: UUID!']\n\n if (params.status !== undefined) {\n defs.push('$status: RulesetVersionStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query RulesetVersions(${defs.join(', ')}) {\n rulesetVersions(${args.join(', ')}) {\n ${connectionFields(RULESET_VERSION_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n rulesetVersion(): { query: string } {\n return {\n query: `\n query RulesetVersion($id: UUID!) {\n rulesetVersion(id: $id) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n rulesetValidationRules(): { query: string } {\n return {\n query: `\n query RulesetValidationRules($gameId: UUID!, $rulesetKey: String!, $rulesetVersionId: UUID) {\n rulesetValidationRules(gameId: $gameId, rulesetKey: $rulesetKey, rulesetVersionId: $rulesetVersionId)\n }\n `,\n }\n },\n\n deckValidationRules(): { query: string } {\n return {\n query: `\n query DeckValidationRules($gameId: UUID!, $rulesetKey: String!, $rulesetVersionId: UUID) {\n deckValidationRules(gameId: $gameId, rulesetKey: $rulesetKey, rulesetVersionId: $rulesetVersionId) {\n ${DECK_VALIDATION_RULES_FIELDS}\n }\n }\n `,\n }\n },\n\n rulesetVersionDraftImportPreview(): { query: string } {\n return {\n query: `\n query RulesetVersionDraftImportPreview($rulesetId: UUID!, $input: RulesetVersionDraftImportFromDatasetRecordInput!) {\n rulesetVersionDraftImportPreview(rulesetId: $rulesetId, input: $input) {\n ${RULESET_VERSION_DRAFT_IMPORT_PREVIEW_FIELDS}\n }\n }\n `,\n }\n },\n\n rulesetValidationImpact(params: RulesetValidationImpactParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { rulesetVersionId: params.rulesetVersionId }\n const args: string[] = ['rulesetVersionId: $rulesetVersionId']\n const defs: string[] = ['$rulesetVersionId: UUID!']\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n\n return {\n query: `\n query RulesetValidationImpact(${defs.join(', ')}) {\n rulesetValidationImpact(${args.join(', ')}) {\n ${RULESET_VALIDATION_IMPACT_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n createRuleset(): { query: string } {\n return {\n query: `\n mutation RulesetCreate($input: RulesetCreateInput!) {\n rulesetCreate(input: $input) {\n ${RULESET_FIELDS}\n }\n }\n `,\n }\n },\n\n updateRuleset(): { query: string } {\n return {\n query: `\n mutation RulesetUpdate($id: UUID!, $input: RulesetUpdateInput!) {\n rulesetUpdate(id: $id, input: $input) {\n ${RULESET_FIELDS}\n }\n }\n `,\n }\n },\n\n createRulesetVersionDraft(): { query: string } {\n return {\n query: `\n mutation RulesetVersionDraftCreate($rulesetId: UUID!, $input: RulesetVersionDraftCreateInput!) {\n rulesetVersionDraftCreate(rulesetId: $rulesetId, input: $input) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n importRulesetVersionDraftFromDatasetRecord(): { query: string } {\n return {\n query: `\n mutation RulesetVersionDraftImportFromDatasetRecord($rulesetId: UUID!, $input: RulesetVersionDraftImportFromDatasetRecordInput!) {\n rulesetVersionDraftImportFromDatasetRecord(rulesetId: $rulesetId, input: $input) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n updateRulesetVersionDraft(): { query: string } {\n return {\n query: `\n mutation RulesetVersionDraftUpdate($id: UUID!, $input: RulesetVersionDraftUpdateInput!) {\n rulesetVersionDraftUpdate(id: $id, input: $input) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n publishRulesetVersion(): { query: string } {\n return {\n query: `\n mutation RulesetVersionPublish($id: UUID!, $input: RulesetVersionPublishInput) {\n rulesetVersionPublish(id: $id, input: $input) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n activateRulesetVersion(): { query: string } {\n return {\n query: `\n mutation RulesetVersionActivate($id: UUID!) {\n rulesetVersionActivate(id: $id) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n // Decks\n listMyDecks(params: ListDecksParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query MyDecks${defStr} {\n myDecks${argStr} {\n ${connectionFields(DECK_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n viewerDecks(params: ViewerDecksParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.filter !== undefined) {\n defs.push('$filter: ViewerDecksFilterInput')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query ViewerDecks${defStr} {\n viewerDecks${argStr} {\n ${connectionFields(DECK_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n appDecks(params: AppDecksParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.filter !== undefined) {\n defs.push('$filter: AppDecksFilterInput')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query AppDecks${defStr} {\n appDecks${argStr} {\n ${connectionFields(DECK_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n publicDecks(params: PublicDecksParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.filter !== undefined) {\n defs.push('$filter: PublicDecksFilterInput')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query PublicDecks${defStr} {\n publicDecks${argStr} {\n ${connectionFields(DECK_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchDeckById(): { query: string } {\n return {\n query: `\n query FetchDeck($id: UUID!) {\n fetchDeck(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deckById(): { query: string } {\n return {\n query: `\n query Deck($id: UUID!, $readState: DeckReadState!, $version: DeckPublishedVersionSelector) {\n deck(id: $id, readState: $readState, version: $version) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n myDeck(): { query: string } {\n return {\n query: `\n query MyDeck($id: UUID!) {\n myDeck(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDeckBySlug(): { query: string } {\n return {\n query: `\n query FetchDeckBySlug($publisherSlug: String!, $gameKey: String!, $slug: String!) {\n fetchDeckBySlug(publisherSlug: $publisherSlug, gameKey: $gameKey, slug: $slug) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deckBySlug(): { query: string } {\n return {\n query: `\n query DeckBySlug($publisherSlug: String!, $gameKey: String!, $slug: String!) {\n deckBySlug(publisherSlug: $publisherSlug, gameKey: $gameKey, slug: $slug) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDeckByExternalRef(): { query: string } {\n return {\n query: `\n query FetchDeckByExternalRef($externalRef: String!) {\n fetchDeckByExternalRef(externalRef: $externalRef) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deckByExternalRef(): { query: string } {\n return {\n query: `\n query DeckByExternalRef($externalRef: String!, $readState: DeckReadState!, $version: DeckPublishedVersionSelector) {\n deckByExternalRef(externalRef: $externalRef, readState: $readState, version: $version) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deckVersion(): { query: string } {\n return {\n query: `\n query DeckVersion($id: UUID!) {\n deckVersion(id: $id) {\n ${DECK_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n deckVersions(params: ListDeckVersionsParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = ['deckId: $deckId']\n const defs: string[] = ['$deckId: UUID!']\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query DeckVersions(${defs.join(', ')}) {\n deckVersions(${args.join(', ')}) {\n ${connectionFields(DECK_VERSION_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n deckDraftDiff(): { query: string } {\n return {\n query: `\n query DeckDraftDiff($id: UUID!) {\n deckDraftDiff(id: $id) {\n ${DECK_DIFF_FIELDS}\n }\n }\n `,\n }\n },\n\n deckVersionDiff(): { query: string } {\n return {\n query: `\n query DeckVersionDiff($fromVersionId: UUID!, $toVersionId: UUID!) {\n deckVersionDiff(fromVersionId: $fromVersionId, toVersionId: $toVersionId) {\n ${DECK_DIFF_FIELDS}\n }\n }\n `,\n }\n },\n\n deckHydrateEntries(): { query: string } {\n return {\n query: `\n query DeckHydrateEntries($input: DeckHydrateEntriesInput!) {\n deckHydrateEntries(input: $input) {\n ${DECK_HYDRATE_ENTRIES_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n deckExport(): { query: string } {\n return {\n query: `\n query DeckExport($id: UUID!, $format: DeckExportFormat!) {\n deckExport(id: $id, format: $format) {\n ${DECK_EXPORT_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n deckValidate(): { query: string } {\n return {\n query: `\n query DeckValidate($id: UUID!, $input: DeckValidateInput) {\n deckValidate(id: $id, input: $input) {\n ${DECK_VALIDATION_FIELDS}\n }\n }\n `,\n }\n },\n\n deckSectionDefinitions(params: DeckSectionDefinitionsParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.gameKey !== undefined) {\n defs.push('$gameKey: String')\n args.push('gameKey: $gameKey')\n variables['gameKey'] = params.gameKey\n }\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.rulesetKey !== undefined) {\n defs.push('$rulesetKey: String')\n args.push('rulesetKey: $rulesetKey')\n variables['rulesetKey'] = params.rulesetKey\n }\n if (params.rulesetVersionId !== undefined) {\n defs.push('$rulesetVersionId: UUID')\n args.push('rulesetVersionId: $rulesetVersionId')\n variables['rulesetVersionId'] = params.rulesetVersionId\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query DeckSectionDefinitions${defStr} {\n deckSectionDefinitions${argStr} {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n deckCollaborators(): { query: string } {\n return {\n query: `\n query DeckCollaborators($deckId: UUID!) {\n deckCollaborators(deckId: $deckId) {\n ${DECK_COLLABORATOR_FIELDS}\n }\n }\n `,\n }\n },\n\n deckApiApplicationAccesses(): { query: string } {\n return {\n query: `\n query DeckApiApplicationAccesses($deckId: UUID!, $includeRevoked: Boolean) {\n deckApiApplicationAccesses(deckId: $deckId, includeRevoked: $includeRevoked) {\n ${DECK_API_APPLICATION_ACCESS_FIELDS}\n }\n }\n `,\n }\n },\n\n myDeckApiApplicationAccesses(): { query: string } {\n return {\n query: `\n query MyDeckApiApplicationAccesses($applicationId: UUID) {\n myDeckApiApplicationAccesses(applicationId: $applicationId) {\n ${DECK_API_APPLICATION_ACCESS_FIELDS}\n }\n }\n `,\n }\n },\n\n deckImportFormats(params: ListDeckImportFormatsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.publisherId !== undefined) {\n defs.push('$publisherId: UUID')\n args.push('publisherId: $publisherId')\n variables['publisherId'] = params.publisherId\n }\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query DeckImportFormats${defStr} {\n deckImportFormats${argStr} {\n ${connectionFields(DECK_IMPORT_FORMAT_DEFINITION_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n deckImportFormat(): { query: string } {\n return {\n query: `\n query DeckImportFormat($id: UUID, $gameId: UUID, $key: String) {\n deckImportFormat(id: $id, gameId: $gameId, key: $key) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n deckImportFormatTest(): { query: string } {\n return {\n query: `\n query DeckImportFormatTest($input: DeckImportFormatTestInput!) {\n deckImportFormatTest(input: $input) {\n ${DECK_IMPORT_FORMAT_TEST_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n createDeck(): { query: string } {\n return {\n query: `\n mutation DeckCreate($input: DeckCreateInput!) {\n deckCreate(input: $input) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n updateDeck(): { query: string } {\n return {\n query: `\n mutation DeckUpdate($id: UUID!, $input: DeckUpdateInput!) {\n deckUpdate(id: $id, input: $input) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deleteDeck(): { query: string } {\n return {\n query: `\n mutation DeckDelete($id: UUID!) {\n deckDelete(id: $id)\n }\n `,\n }\n },\n\n archiveDeck(): { query: string } {\n return {\n query: `\n mutation DeckArchive($id: UUID!) {\n deckArchive(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n restoreDeck(): { query: string } {\n return {\n query: `\n mutation DeckRestore($id: UUID!) {\n deckRestore(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n unpublishDeck(): { query: string } {\n return {\n query: `\n mutation DeckUnpublish($id: UUID!) {\n deckUnpublish(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n addDeckEntry(): { query: string } {\n return {\n query: `\n mutation DeckEntryAdd($input: DeckEntryAddInput!) {\n deckEntryAdd(input: $input) {\n ${DECK_ENTRY_MUTATION_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n updateDeckEntry(): { query: string } {\n return {\n query: `\n mutation DeckEntryUpdate($id: UUID!, $input: DeckEntryUpdateInput!) {\n deckEntryUpdate(id: $id, input: $input) {\n ${DECK_ENTRY_MUTATION_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n removeDeckEntry(): { query: string } {\n return {\n query: `\n mutation DeckEntryRemove($id: UUID!, $expectedDraftRevision: Int!) {\n deckEntryRemove(id: $id, expectedDraftRevision: $expectedDraftRevision) {\n ${DECK_ENTRY_MUTATION_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n reorderDeckEntries(): { query: string } {\n return {\n query: `\n mutation DeckEntryReorder($deckId: UUID!, $input: DeckEntryReorderInput!) {\n deckEntryReorder(deckId: $deckId, input: $input) {\n ${DECK_ENTRY_REORDER_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n replaceDeckEntries(): { query: string } {\n return {\n query: `\n mutation DeckEntriesReplace($deckId: UUID!, $input: DeckEntriesReplaceInput!) {\n deckEntriesReplace(deckId: $deckId, input: $input) {\n ${DECK_ENTRIES_REPLACE_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n importDeck(): { query: string } {\n return {\n query: `\n mutation DeckImport($input: DeckImportInput!) {\n deckImport(input: $input) {\n ${DECK_IMPORT_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n createDeckImportFormat(): { query: string } {\n return {\n query: `\n mutation DeckImportFormatCreate($input: DeckImportFormatCreateInput!) {\n deckImportFormatCreate(input: $input) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n updateDeckImportFormat(): { query: string } {\n return {\n query: `\n mutation DeckImportFormatUpdate($id: UUID!, $input: DeckImportFormatUpdateInput!) {\n deckImportFormatUpdate(id: $id, input: $input) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n archiveDeckImportFormat(): { query: string } {\n return {\n query: `\n mutation DeckImportFormatArchive($id: UUID!) {\n deckImportFormatArchive(id: $id) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n unarchiveDeckImportFormat(): { query: string } {\n return {\n query: `\n mutation DeckImportFormatUnarchive($id: UUID!) {\n deckImportFormatUnarchive(id: $id) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n upsertDeckByExternalRef(): { query: string } {\n return {\n query: `\n mutation DeckUpsertByExternalRef($input: DeckUpsertByExternalRefInput!) {\n deckUpsertByExternalRef(input: $input) {\n deck {\n ${DECK_FIELDS}\n }\n created\n idempotentReplay\n }\n }\n `,\n }\n },\n\n claimDeck(): { query: string } {\n return {\n query: `\n mutation DeckClaim($id: UUID!, $input: DeckClaimInput!) {\n deckClaim(id: $id, input: $input) {\n ${DECK_OWNERSHIP_TRANSFER_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n transferDeckOwnership(): { query: string } {\n return {\n query: `\n mutation DeckTransferOwnership($id: UUID!, $input: DeckTransferOwnershipInput!) {\n deckTransferOwnership(id: $id, input: $input) {\n ${DECK_OWNERSHIP_TRANSFER_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n copyDeck(): { query: string } {\n return {\n query: `\n mutation DeckCopy($id: UUID!, $input: DeckCopyInput!) {\n deckCopy(id: $id, input: $input) {\n ${DECK_COPY_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n publishDeck(): { query: string } {\n return {\n query: `\n mutation DeckPublish($id: UUID!, $input: DeckPublishInput!) {\n deckPublish(id: $id, input: $input) {\n ${DECK_PUBLISH_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n removeInvalidDeckEntries(): { query: string } {\n return {\n query: `\n mutation DeckRemoveInvalidEntries($id: UUID!, $input: DeckRemoveInvalidEntriesInput!) {\n deckRemoveInvalidEntries(id: $id, input: $input) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n upsertDeckCollaborator(): { query: string } {\n return {\n query: `\n mutation DeckCollaboratorUpsert($deckId: UUID!, $accountId: UUID!, $role: DeckCollaboratorRole!) {\n deckCollaboratorUpsert(deckId: $deckId, accountId: $accountId, role: $role) {\n ${DECK_COLLABORATOR_FIELDS}\n }\n }\n `,\n }\n },\n\n removeDeckCollaborator(): { query: string } {\n return {\n query: `\n mutation DeckCollaboratorRemove($deckId: UUID!, $accountId: UUID!) {\n deckCollaboratorRemove(deckId: $deckId, accountId: $accountId)\n }\n `,\n }\n },\n\n createDeckTokenIssuer(): { query: string } {\n return {\n query: `\n mutation DeckTokenIssuerCreate($input: DeckTokenIssuerCreateInput!) {\n deckTokenIssuerCreate(input: $input) {\n ${DECK_TOKEN_ISSUER_FIELDS}\n }\n }\n `,\n }\n },\n\n revokeDeckTokenIssuer(): { query: string } {\n return {\n query: `\n mutation DeckTokenIssuerRevoke($id: UUID!) {\n deckTokenIssuerRevoke(id: $id)\n }\n `,\n }\n },\n\n revokeDeckTokenIssuerSigningKey(): { query: string } {\n return {\n query: `\n mutation DeckTokenIssuerSigningKeyRevoke($id: UUID!) {\n deckTokenIssuerSigningKeyRevoke(id: $id) {\n ${DECK_TOKEN_ISSUER_FIELDS}\n }\n }\n `,\n }\n },\n\n exchangeDeckToken(): { query: string } {\n return {\n query: `\n mutation DeckTokenExchange($input: DeckTokenExchangeInput!) {\n deckTokenExchange(input: $input) {\n token\n deckToken {\n ${DECK_TOKEN_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n revokeDeckToken(): { query: string } {\n return {\n query: `\n mutation DeckTokenRevoke($id: UUID!) {\n deckTokenRevoke(id: $id)\n }\n `,\n }\n },\n\n grantDeckApiApplicationAccess(): { query: string } {\n return {\n query: `\n mutation DeckApiApplicationAccessGrant($input: DeckAPIApplicationAccessGrantInput!) {\n deckApiApplicationAccessGrant(input: $input) {\n ${DECK_API_APPLICATION_ACCESS_FIELDS}\n }\n }\n `,\n }\n },\n\n revokeDeckApiApplicationAccess(): { query: string } {\n return {\n query: `\n mutation DeckApiApplicationAccessRevoke($deckId: UUID!, $apiApplicationId: UUID!) {\n deckApiApplicationAccessRevoke(deckId: $deckId, apiApplicationId: $apiApplicationId)\n }\n `,\n }\n },\n\n rulesetValidationRulesVariables(\n gameId: string,\n rulesetKey: string,\n rulesetVersionId?: string\n ): Record<string, unknown> {\n return rulesetVersionId === undefined\n ? { gameId, rulesetKey }\n : { gameId, rulesetKey, rulesetVersionId }\n },\n\n rulesetVersionDraftImportPreviewVariables(\n rulesetId: string,\n input: RulesetVersionDraftImportFromDatasetRecordInput\n ): Record<string, unknown> {\n return { rulesetId, input }\n },\n\n rulesetCreateVariables(input: RulesetCreateInput): Record<string, unknown> {\n return { input }\n },\n\n rulesetUpdateVariables(id: string, input: RulesetUpdateInput): Record<string, unknown> {\n return { id, input }\n },\n\n rulesetVersionDraftCreateVariables(\n rulesetId: string,\n input: RulesetVersionDraftCreateInput\n ): Record<string, unknown> {\n return { rulesetId, input }\n },\n\n rulesetVersionDraftImportFromDatasetRecordVariables(\n rulesetId: string,\n input: RulesetVersionDraftImportFromDatasetRecordInput\n ): Record<string, unknown> {\n return { rulesetId, input }\n },\n\n rulesetVersionDraftUpdateVariables(\n id: string,\n input: RulesetVersionDraftUpdateInput\n ): Record<string, unknown> {\n return { id, input }\n },\n\n rulesetVersionPublishVariables(\n id: string,\n input?: RulesetVersionPublishInput\n ): Record<string, unknown> {\n return input === undefined ? { id } : { id, input }\n },\n\n deckCreateVariables(input: DeckCreateInput): Record<string, unknown> {\n return { input: normalizeDeckJsonInput(input) }\n },\n\n deckUpdateVariables(id: string, input: DeckUpdateInput): Record<string, unknown> {\n return { id, input: normalizeDeckJsonInput(input) }\n },\n\n deckEntryAddVariables(input: DeckEntryAddInput): Record<string, unknown> {\n return { input: normalizeDeckJsonInput(input) }\n },\n\n deckEntryUpdateVariables(id: string, input: DeckEntryUpdateInput): Record<string, unknown> {\n return { id, input: normalizeDeckJsonInput(input) }\n },\n\n deckEntryRemoveVariables(id: string, expectedDraftRevision: number): Record<string, unknown> {\n return { id, expectedDraftRevision }\n },\n\n deckEntryReorderVariables(deckId: string, input: DeckEntryReorderInput): Record<string, unknown> {\n return { deckId, input }\n },\n\n deckEntriesReplaceVariables(\n deckId: string,\n input: DeckEntriesReplaceInput\n ): Record<string, unknown> {\n return { deckId, input: normalizeDeckJsonInput(input) }\n },\n\n deckImportVariables(input: DeckImportInput): Record<string, unknown> {\n return { input }\n },\n\n deckImportFormatCreateVariables(input: DeckImportFormatCreateInput): Record<string, unknown> {\n return { input }\n },\n\n deckImportFormatUpdateVariables(\n id: string,\n input: DeckImportFormatUpdateInput\n ): Record<string, unknown> {\n return { id, input }\n },\n\n deckImportFormatTestVariables(input: DeckImportFormatTestInput): Record<string, unknown> {\n return { input }\n },\n\n deckUpsertByExternalRefVariables(input: DeckUpsertByExternalRefInput): Record<string, unknown> {\n return { input: normalizeDeckJsonInput(input) }\n },\n\n deckReadVariables(\n id: string,\n readState: DeckReadState,\n version?: DeckPublishedVersionSelector\n ): Record<string, unknown> {\n return { id, readState, version }\n },\n\n deckExternalRefReadVariables(\n externalRef: string,\n readState: DeckReadState,\n version?: DeckPublishedVersionSelector\n ): Record<string, unknown> {\n return { externalRef, readState, version }\n },\n\n deckClaimVariables(id: string, input: DeckClaimInput): Record<string, unknown> {\n return { id, input }\n },\n\n deckTransferOwnershipVariables(\n id: string,\n input: DeckTransferOwnershipInput\n ): Record<string, unknown> {\n return { id, input }\n },\n\n deckCopyVariables(id: string, input: DeckCopyInput): Record<string, unknown> {\n return { id, input }\n },\n\n deckPublishVariables(id: string, input: DeckPublishInput): Record<string, unknown> {\n return { id, input }\n },\n\n deckValidateVariables(id: string, input?: DeckValidateInput): Record<string, unknown> {\n return input === undefined ? { id } : { id, input }\n },\n\n deckRemoveInvalidEntriesVariables(\n id: string,\n input: DeckRemoveInvalidEntriesInput\n ): Record<string, unknown> {\n return { id, input }\n },\n\n deckHydrateEntriesVariables(input: DeckHydrateEntriesInput): Record<string, unknown> {\n return { input: normalizeDeckJsonInput(input) }\n },\n\n deckExportVariables(id: string, format: DeckExportFormat): Record<string, unknown> {\n return { id, format }\n },\n\n deckVersionDiffVariables(fromVersionId: string, toVersionId: string): Record<string, unknown> {\n return { fromVersionId, toVersionId }\n },\n\n deckCollaboratorVariables(\n deckId: string,\n accountId: string,\n role?: DeckCollaboratorRole\n ): Record<string, unknown> {\n return role === undefined ? { deckId, accountId } : { deckId, accountId, role }\n },\n\n deckTokenIssuerCreateVariables(input: DeckTokenIssuerCreateInput): Record<string, unknown> {\n return { input }\n },\n\n deckTokenExchangeVariables(input: DeckTokenExchangeInput): Record<string, unknown> {\n return { input }\n },\n\n deckApiApplicationAccessesVariables(\n deckId: string,\n includeRevoked?: boolean\n ): Record<string, unknown> {\n return includeRevoked === undefined ? { deckId } : { deckId, includeRevoked }\n },\n\n myDeckApiApplicationAccessesVariables(applicationId?: string): Record<string, unknown> {\n return applicationId === undefined ? {} : { applicationId }\n },\n\n deckApiApplicationAccessGrantVariables(\n input: DeckAPIApplicationAccessGrantInput\n ): Record<string, unknown> {\n return { input }\n },\n\n deckApiApplicationAccessRevokeVariables(\n deckId: string,\n apiApplicationId: string\n ): Record<string, unknown> {\n return { deckId, apiApplicationId }\n },\n\n gameCreateVariables(input: GameCreateInput): Record<string, unknown> {\n return { input }\n },\n\n gameUpdateVariables(id: string, input: GameUpdateInput): Record<string, unknown> {\n return { id, input }\n },\n\n datasetImportPreviewVariables(input: DatasetImportPreviewInput): Record<string, unknown> {\n return { input }\n },\n\n datasetImportValidateVariables(input: DatasetImportValidateInput): Record<string, unknown> {\n return { input }\n },\n\n datasetImportFromFileVariables(input: DatasetImportFromFileInput): Record<string, unknown> {\n return { input }\n },\n\n datasetImportFromPayloadVariables(input: DatasetImportFromPayloadInput): Record<string, unknown> {\n return { input }\n },\n\n datasetImportFromUrlVariables(input: DatasetImportFromUrlInput): Record<string, unknown> {\n return { input }\n },\n\n gameImportPreviewVariables(input: GameImportPreviewInput): Record<string, unknown> {\n return { input }\n },\n\n gameImportFromFileVariables(input: GameImportFromFileInput): Record<string, unknown> {\n return { input }\n },\n\n gameImportFromPayloadVariables(input: GameImportFromPayloadInput): Record<string, unknown> {\n return { input }\n },\n\n gameImportFromUrlVariables(input: GameImportFromUrlInput): Record<string, unknown> {\n return { input }\n },\n\n datasetRecordsUpsertVariables(input: DatasetRecordsUpsertInput): Record<string, unknown> {\n return { input }\n },\n\n datasetRecordsDeleteVariables(input: DatasetRecordsDeleteInput): Record<string, unknown> {\n return { input }\n },\n\n fileUploadRequestVariables(input: FileUploadInput): Record<string, unknown> {\n return { input }\n },\n\n createScanUploadSessionVariables(input: CreateScanUploadSessionInput): Record<string, unknown> {\n return { input }\n },\n\n confirmScanUploadVariables(input: ConfirmScanUploadInput): Record<string, unknown> {\n return { input }\n },\n\n createScanJobVariables(input: CreateScanJobInput): Record<string, unknown> {\n return { input }\n },\n\n submitScanFeedbackVariables(input: SubmitScanFeedbackInput): Record<string, unknown> {\n return { input }\n },\n\n scanMetricsVariables(input: ScanMetricsInput): Record<string, unknown> {\n return { input }\n },\n\n resolveScanTemplateVariables(input: ResolveScanTemplateInput): Record<string, unknown> {\n return { input }\n },\n\n scanTemplatesVariables(input: ScanTemplatesInput): Record<string, unknown> {\n return { input }\n },\n\n createScanTemplateVariables(input: SaveScanTemplateInput): Record<string, unknown> {\n return { input }\n },\n\n updateScanTemplateVariables(id: string, input: SaveScanTemplateInput): Record<string, unknown> {\n return { id, input }\n },\n\n previewScanTemplateVariables(input: PreviewScanTemplateInput): Record<string, unknown> {\n return { input }\n },\n\n gameScanRegionsVariables(\n publisherSlug: string,\n gameKey: string,\n includeInactive?: boolean\n ): Record<string, unknown> {\n return includeInactive === undefined\n ? { publisherSlug, gameKey }\n : { publisherSlug, gameKey, includeInactive }\n },\n\n datasetExportVariables(input: DatasetExportInput): Record<string, unknown> {\n return { input }\n },\n\n // API Key Info\n fetchMe(): { query: string } {\n return {\n query: `\n query FetchMe {\n fetchMe {\n application {\n id\n name\n description\n environment\n apiKeyPrefix\n allowedOrigins\n allowedIps\n createdAt\n updatedAt\n lastUsedAt\n }\n account {\n id\n displayName\n createdAt\n }\n }\n }\n `,\n }\n },\n}\n","/**\n * Collection class for paginated results with async iteration support\n */\n\nimport type { Connection, PageInfo, Edge } from './types.js'\n\nexport type NextPageLoader<T> = (cursor: string) => Promise<Collection<T>>\n\n/**\n * Represents a paginated collection of results from the API.\n * Implements AsyncIterable for easy iteration through all pages.\n */\nexport class Collection<T> implements AsyncIterable<T> {\n /** Total count of matching records across all pages */\n readonly totalCount: number\n\n /** Pagination info */\n readonly pageInfo: PageInfo\n\n /** Items in the current page */\n readonly items: T[]\n\n /** Function to load the next page */\n private nextPageLoader?: NextPageLoader<T>\n\n constructor(\n data: Connection<T>,\n options: {\n nextPageLoader?: NextPageLoader<T>\n itemTransformer?: (node: T) => T\n } = {}\n ) {\n this.totalCount = data.totalCount\n this.pageInfo = data.pageInfo\n this.items = data.edges.map((edge: Edge<T>) =>\n options.itemTransformer ? options.itemTransformer(edge.node) : edge.node\n )\n this.nextPageLoader = options.nextPageLoader\n }\n\n /** Check if there are more pages */\n get hasNextPage(): boolean {\n return this.pageInfo.hasNextPage\n }\n\n /** Check if there are previous pages */\n get hasPreviousPage(): boolean {\n return this.pageInfo.hasPreviousPage\n }\n\n /** Get the cursor for the next page */\n get endCursor(): string | null {\n return this.pageInfo.endCursor\n }\n\n /** Get the cursor for the previous page */\n get startCursor(): string | null {\n return this.pageInfo.startCursor\n }\n\n /** Number of items in the current page */\n get length(): number {\n return this.items.length\n }\n\n /** Check if the current page is empty */\n get isEmpty(): boolean {\n return this.items.length === 0\n }\n\n /** Get the first item */\n get first(): T | undefined {\n return this.items[0]\n }\n\n /** Get the last item */\n get last(): T | undefined {\n return this.items[this.items.length - 1]\n }\n\n /**\n * Fetch the next page of results\n *\n * @returns The next page collection, or null if no more pages\n * @throws Error if no next page loader is configured\n */\n async nextPage(): Promise<Collection<T> | null> {\n if (!this.hasNextPage) {\n return null\n }\n\n if (!this.nextPageLoader) {\n throw new Error('No next page loader configured')\n }\n\n if (!this.endCursor) {\n return null\n }\n\n return this.nextPageLoader(this.endCursor)\n }\n\n /**\n * Async iterator that automatically paginates through all results\n *\n * @example\n * for await (const record of collection) {\n * console.log(record.name)\n * }\n *\n * @example\n * const allRecords = []\n * for await (const record of collection) {\n * allRecords.push(record)\n * }\n */\n async *[Symbol.asyncIterator](): AsyncIterator<T> {\n let current: Collection<T> | null = this\n\n while (current) {\n for (const item of current.items) {\n yield item\n }\n\n if (!current.hasNextPage) {\n break\n }\n\n current = await current.nextPage()\n }\n }\n\n /**\n * Iterate through all results, calling a callback for each item\n * Similar to Array.forEach but async and auto-paginating\n *\n * @example\n * await collection.forEach(async (record) => {\n * await processRecord(record)\n * })\n */\n async forEach(callback: (item: T, index: number) => void | Promise<void>): Promise<void> {\n let index = 0\n for await (const item of this) {\n await callback(item, index++)\n }\n }\n\n /**\n * Map over all results, returning a new array\n * Auto-paginates through all pages\n *\n * @example\n * const names = await collection.map(record => record.name)\n */\n async map<U>(callback: (item: T, index: number) => U | Promise<U>): Promise<U[]> {\n const results: U[] = []\n let index = 0\n for await (const item of this) {\n results.push(await callback(item, index++))\n }\n return results\n }\n\n /**\n * Filter results, returning items that match the predicate\n * Auto-paginates through all pages\n *\n * @example\n * const rareCards = await collection.filter(card => card.rarity === 'rare')\n */\n async filter(predicate: (item: T, index: number) => boolean | Promise<boolean>): Promise<T[]> {\n const results: T[] = []\n let index = 0\n for await (const item of this) {\n if (await predicate(item, index++)) {\n results.push(item)\n }\n }\n return results\n }\n\n /**\n * Find the first item matching a predicate\n * Stops iterating once found\n *\n * @example\n * const pikachu = await collection.find(card => card.name === 'Pikachu')\n */\n async find(\n predicate: (item: T, index: number) => boolean | Promise<boolean>\n ): Promise<T | undefined> {\n let index = 0\n for await (const item of this) {\n if (await predicate(item, index++)) {\n return item\n }\n }\n return undefined\n }\n\n /**\n * Take the first n items\n * Stops fetching pages once n items are collected\n *\n * @example\n * const first100 = await collection.take(100)\n */\n async take(n: number): Promise<T[]> {\n const results: T[] = []\n for await (const item of this) {\n if (results.length >= n) {\n break\n }\n results.push(item)\n }\n return results\n }\n\n /**\n * Collect all items into an array\n * Auto-paginates through all pages\n *\n * @example\n * const allRecords = await collection.toArray()\n */\n async toArray(): Promise<T[]> {\n const results: T[] = []\n for await (const item of this) {\n results.push(item)\n }\n return results\n }\n\n /**\n * Iterate in batches (similar to Rails find_in_batches)\n *\n * @example\n * for await (const batch of collection.batches()) {\n * await processBatch(batch)\n * }\n */\n async *batches(): AsyncGenerator<T[]> {\n let current: Collection<T> | null = this\n\n while (current) {\n if (current.items.length > 0) {\n yield current.items\n }\n\n if (!current.hasNextPage) {\n break\n }\n\n current = await current.nextPage()\n }\n }\n\n /**\n * Iterate one item at a time with batched fetching (similar to Rails find_each)\n *\n * @example\n * for await (const item of collection.each()) {\n * await processItem(item)\n * }\n */\n each(): AsyncIterable<T> {\n return this\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/errors.ts","../src/operators.ts","../src/filter-builder.ts","../src/query-builder.ts","../src/collection.ts"],"sourcesContent":["/**\n * @carddb/core - Core types and utilities for CardDB JavaScript clients\n */\n\n// Types\nexport type {\n // Configuration\n CardDBConfig,\n LogLevel,\n ResourceType,\n Logger,\n Cache,\n // Resources\n PublisherStatus,\n Publisher,\n PublisherRef,\n FileStatus,\n FileUploadInput,\n UploadPurpose,\n File,\n PresignedUpload,\n Game,\n GameRef,\n GameVisibility,\n GameCreateInput,\n GameUpdateInput,\n ScanJobStatus,\n CreateScanJobInput,\n CreateScanUploadSessionInput,\n ConfirmScanUploadInput,\n ScanJobPayload,\n ScanJob,\n ScanBestMatch,\n ScanCandidate,\n ScanJobError,\n ScanWebhookState,\n ScanJobMetrics,\n ScanStageMetrics,\n SubmitScanFeedbackInput,\n ScanFeedbackPayload,\n ScanMetricsInput,\n ScanMetrics,\n ScanFeedbackMetrics,\n ScanFeatureVersionMetrics,\n ResolveScanTemplateInput,\n ScanTemplatesInput,\n SaveScanTemplateInput,\n PreviewScanTemplateInput,\n ScanTemplateRegionInput,\n ScanTemplateResolution,\n ScanTemplateList,\n ScanTemplatePayload,\n ScanTemplatePreview,\n ScanTemplate,\n ScanTemplateRegion,\n ScanTemplateRegionPreview,\n ScanTemplateWarning,\n GameScanRegion,\n Dataset,\n DatasetRef,\n DatasetPurpose,\n DatasetVisibility,\n DatasetRecord,\n ImportFormat,\n ImportMode,\n OnConflict,\n ImportJobStatus,\n ImportLogLevel,\n BulkInsertMode,\n ImportOptions,\n CsvOptions,\n FieldMappingOverrideInput,\n ImportJobAssetInput,\n ImportJobAsset,\n ImportValidationError,\n BulkRecordError,\n ImportStats,\n BulkImportResult,\n BulkCreateResult,\n ImportJob,\n ImportJobConnection,\n ImportJobLog,\n ImportJobLogConnection,\n DatasetImportFromFileInput,\n DatasetImportFromPayloadInput,\n DatasetImportFromUrlInput,\n DatasetImportRunInput,\n DatasetImportPreviewInput,\n DatasetImportValidateInput,\n FieldMappingStatus,\n InferredChildField,\n FieldMapping,\n ImportWarningSeverity,\n ImportWarning,\n DatasetImportPreviewResult,\n GameImportPreviewInput,\n DatasetImportPreview,\n GameImportPreview,\n GameImportFromFileInput,\n GameImportFromPayloadInput,\n GameImportFromUrlInput,\n GameImportRunInput,\n GameImportDatasetStatus,\n GameImportJob,\n GameImportJobConnection,\n DatasetRecordsUpsertInput,\n DatasetRecordsUpsertPayload,\n DatasetRecordDeleteJobStatus,\n DatasetRecordDeleteTargetType,\n DatasetRecordDeleteResultStatus,\n DatasetRecordsDeleteInput,\n DatasetRecordDeleteJobResult,\n DatasetRecordDeleteJob,\n DatasetRecordDeleteJobConnection,\n ExportFormat,\n ExportJobStatus,\n DatasetExportInput,\n ExportJob,\n ExportJobConnection,\n TCGPlayerPricing,\n TCGPlayerPrice,\n Deck,\n DeckEntry,\n DeckVisibility,\n DeckOwnerType,\n DeckEnvironment,\n DeckAccessMode,\n DeckDiscoverability,\n DeckState,\n DeckReadState,\n DeckRepresentation,\n DeckTokenScope,\n DeckTokenSigningAlgorithm,\n DeckImportFormat,\n DeckExportFormat,\n DeckCollaboratorRole,\n DeckAppAccessRetention,\n DeckAPIApplicationAccessRole,\n DeckAPIApplicationAccessGrantSource,\n DeckValidationSeverity,\n ViewerDecksFilterInput,\n AppDecksFilterInput,\n PublicDecksFilterInput,\n DeckVersion,\n DeckVersionConnection,\n DeckCollaborator,\n DeckOwnershipTransferPayload,\n DeckCopyPayload,\n DeckAccessApplication,\n DeckAPIApplicationAccess,\n DeckPublishedVersionSelector,\n DeckTokenIssuer,\n DeckToken,\n DeckTokenExchangePayload,\n DeckEntryInput,\n DeckCreateInput,\n DeckUpsertByExternalRefInput,\n DeckUpsertByExternalRefPayload,\n DeckUpdateInput,\n DeckPublishInput,\n DeckEntryAddInput,\n DeckEntryUpdateInput,\n DeckEntryReorderItemInput,\n DeckEntryReorderInput,\n DeckEntriesReplaceInput,\n DeckEntryMutationPayload,\n DeckEntryReorderPayload,\n DeckEntriesReplacePayload,\n DeckPublishPayload,\n DeckValidateInput,\n DeckRemoveInvalidEntriesInput,\n DeckClaimInput,\n DeckTransferOwnershipInput,\n DeckCopyInput,\n DeckTokenIssuerCreateInput,\n DeckTokenIssuerSigningKeyInput,\n DeckTokenExchangeInput,\n DeckValidatedAgainst,\n DeckValidationAffectedEntry,\n DeckValidationIssue,\n DeckValidation,\n DeckDiff,\n DeckSectionDefinition,\n RulesetVersionStatus,\n Ruleset,\n RulesetVersion,\n RulesetConnection,\n RulesetVersionConnection,\n DeckValidationRules,\n RulesetValidationImpact,\n RulesetValidationImpactDeck,\n RulesetVersionDraftImportPreview,\n RulesetCreateInput,\n RulesetUpdateInput,\n RulesetVersionDraftCreateInput,\n RulesetVersionDraftImportFromDatasetRecordInput,\n RulesetVersionDraftUpdateInput,\n RulesetVersionPublishInput,\n DeckAPIApplicationAccessGrantInput,\n DeckImportInput,\n DeckImportCandidateSelectionInput,\n DeckImportEntry,\n DeckImportIssue,\n DeckImportUnmatchedEntry,\n DeckImportCandidate,\n DeckImportAmbiguousEntry,\n DeckImportFormatDefinition,\n DeckImportFormatDefinitionConnection,\n DeckImportFormatDetection,\n DeckImportFormatTestPayload,\n DeckImportFormatCreateInput,\n DeckImportFormatUpdateInput,\n DeckImportFormatTestInput,\n DeckImportPayload,\n DeckHydrateEntriesInput,\n DeckHydrateEntriesPayload,\n DeckExportPayload,\n HydrateDeckEntryInput,\n HydratedDeckEntry,\n ResolvedLink,\n FileInfo,\n DatasetFilterValue,\n DatasetFilterValueEdge,\n DatasetFilterValueConnection,\n // Schema\n DatasetSchema,\n FieldInfo,\n FieldType,\n ObjectField,\n LinkFieldInfo,\n // API Key\n APIKeyInfo,\n APIApplication,\n APIAccount,\n // Pagination\n PageInfo,\n Edge,\n Connection,\n // Filters\n FilterOperatorValue,\n FilterValue,\n FilterCondition,\n FilterInput,\n FilterBuilderInterface,\n // Rate Limit\n RateLimitInfo,\n} from './types.js'\n\n// Errors\nexport {\n CardDBError,\n AuthenticationError,\n RateLimitError,\n NotFoundError,\n ValidationError,\n RestrictedError,\n GraphQLError,\n ConnectionError,\n TimeoutError,\n ServerError,\n LinkResolutionError,\n} from './errors.js'\n\nexport type { GraphQLErrorInfo, LinkResolutionFailure } from './errors.js'\n\n// Filter Operators\nexport {\n eq,\n neq,\n gt,\n gte,\n lt,\n lte,\n within,\n notWithin,\n contains,\n like,\n ilike,\n isNull,\n isNotNull,\n} from './operators.js'\n\n// Filter Builder\nexport { FilterBuilder, resolveFilter } from './filter-builder.js'\n\n// Query Builder\nexport { QueryBuilder } from './query-builder.js'\n\nexport type {\n SearchPublishersParams,\n SearchGamesParams,\n SearchDatasetsParams,\n SearchRecordsParams,\n ListDecksParams,\n ListDeckVersionsParams,\n DeckSectionDefinitionsParams,\n ViewerDecksParams,\n AppDecksParams,\n PublicDecksParams,\n ListDeckImportFormatsParams,\n ListRulesetsParams,\n ListPublicRulesetsParams,\n RulesetLookupParams,\n ListRulesetVersionsParams,\n RulesetValidationRulesParams,\n RulesetValidationImpactParams,\n} from './query-builder.js'\n\n// Collection\nexport { Collection } from './collection.js'\n\nexport type { NextPageLoader } from './collection.js'\n","/**\n * Error classes for CardDB clients\n */\n\nexport interface GraphQLErrorInfo {\n message: string\n path?: string[]\n extensions?: Record<string, unknown>\n}\n\n/**\n * Base error class for all CardDB errors\n */\nexport class CardDBError extends Error {\n /** The full response body if available */\n readonly response?: unknown\n\n constructor(message: string, response?: unknown) {\n super(message)\n this.name = 'CardDBError'\n this.response = response\n // Maintains proper stack trace for where error was thrown (V8 only)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CardDBError)\n }\n }\n}\n\n/**\n * Raised when authentication fails (invalid API key or token)\n */\nexport class AuthenticationError extends CardDBError {\n constructor(message = 'Invalid or missing API key', response?: unknown) {\n super(message, response)\n this.name = 'AuthenticationError'\n }\n}\n\n/**\n * Raised when rate limits are exceeded\n */\nexport class RateLimitError extends CardDBError {\n /** Seconds until rate limit resets */\n readonly retryAfter: number | null\n\n /** Maximum requests allowed */\n readonly limit: number | null\n\n /** Remaining requests in window */\n readonly remaining: number | null\n\n /** Time when the rate limit resets */\n readonly resetAt: Date | null\n\n constructor(\n message = 'Rate limit exceeded',\n options: {\n retryAfter?: number | null\n limit?: number | null\n remaining?: number | null\n resetAt?: Date | null\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'RateLimitError'\n this.retryAfter = options.retryAfter ?? null\n this.limit = options.limit ?? null\n this.remaining = options.remaining ?? null\n this.resetAt = options.resetAt ?? null\n }\n}\n\n/**\n * Raised when a requested resource is not found\n */\nexport class NotFoundError extends CardDBError {\n constructor(message = 'Resource not found', response?: unknown) {\n super(message, response)\n this.name = 'NotFoundError'\n }\n}\n\n/**\n * Raised when request validation fails\n */\nexport class ValidationError extends CardDBError {\n /** List of validation errors */\n readonly errors: GraphQLErrorInfo[]\n\n constructor(\n message = 'Validation error',\n options: {\n errors?: GraphQLErrorInfo[]\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'ValidationError'\n this.errors = options.errors ?? []\n }\n}\n\n/**\n * Raised when accessing a restricted publisher or game\n */\nexport class RestrictedError extends CardDBError {\n constructor(message: string, response?: unknown) {\n super(message, response)\n this.name = 'RestrictedError'\n }\n}\n\n/**\n * Raised for GraphQL-level errors\n */\nexport class GraphQLError extends CardDBError {\n /** List of GraphQL errors */\n readonly errors: GraphQLErrorInfo[]\n\n constructor(\n message = 'GraphQL error',\n options: {\n errors?: GraphQLErrorInfo[]\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'GraphQLError'\n this.errors = options.errors ?? []\n }\n}\n\n/**\n * Raised for network/connection issues\n */\nexport class ConnectionError extends CardDBError {\n constructor(message = 'Connection error', response?: unknown) {\n super(message, response)\n this.name = 'ConnectionError'\n }\n}\n\n/**\n * Raised when request times out\n */\nexport class TimeoutError extends ConnectionError {\n constructor(message = 'Request timed out', response?: unknown) {\n super(message, response)\n this.name = 'TimeoutError'\n }\n}\n\n/**\n * Raised when the server returns an unexpected response\n */\nexport class ServerError extends CardDBError {\n /** HTTP status code */\n readonly status: number | null\n\n constructor(\n message = 'Server error',\n options: {\n status?: number | null\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'ServerError'\n this.status = options.status ?? null\n }\n}\n\n/**\n * Information about a failed link resolution\n */\nexport interface LinkResolutionFailure {\n /** The link field key that failed */\n field: string\n /** The value that couldn't be resolved */\n value: string | null\n /** The reason for the failure */\n reason: 'not_found' | 'invalid' | 'permission_denied' | 'unknown'\n /** Optional error message from the server */\n message?: string\n}\n\n/**\n * Raised when link resolution fails for one or more links\n *\n * This is a warning-level error that contains the partial results along with\n * information about which links failed to resolve. The application can choose\n * to handle this gracefully or treat it as a fatal error.\n */\nexport class LinkResolutionError extends CardDBError {\n /** List of link resolution failures */\n readonly failures: LinkResolutionFailure[]\n\n /** Partial results that were successfully resolved */\n readonly partialResults?: unknown\n\n constructor(\n message = 'Some links could not be resolved',\n options: {\n failures?: LinkResolutionFailure[]\n partialResults?: unknown\n response?: unknown\n } = {}\n ) {\n super(message, options.response)\n this.name = 'LinkResolutionError'\n this.failures = options.failures ?? []\n this.partialResults = options.partialResults\n }\n\n /**\n * Get failures for a specific field\n */\n getFailuresForField(field: string): LinkResolutionFailure[] {\n return this.failures.filter((f) => f.field === field)\n }\n\n /**\n * Check if a specific field had resolution failures\n */\n hasFailuresForField(field: string): boolean {\n return this.failures.some((f) => f.field === field)\n }\n}\n","/**\n * Filter operator helper functions\n *\n * These functions create operator objects that can be used in filters.\n *\n * @example\n * // With filter builder\n * filter: (f) => f\n * .where('hp', gte(100))\n * .where('types', contains('Pokemon'))\n *\n * @example\n * // With object literal\n * filter: {\n * hp: gte(100),\n * types: contains('Pokemon')\n * }\n */\n\nimport type { FilterOperatorValue } from './types.js'\n\n/** Equality operator */\nexport function eq(value: unknown): FilterOperatorValue {\n return { eq: value }\n}\n\n/** Not equal operator */\nexport function neq(value: unknown): FilterOperatorValue {\n return { neq: value }\n}\n\n/** Greater than operator */\nexport function gt(value: number): FilterOperatorValue {\n return { gt: value }\n}\n\n/** Greater than or equal operator */\nexport function gte(value: number): FilterOperatorValue {\n return { gte: value }\n}\n\n/** Less than operator */\nexport function lt(value: number): FilterOperatorValue {\n return { lt: value }\n}\n\n/** Less than or equal operator */\nexport function lte(value: number): FilterOperatorValue {\n return { lte: value }\n}\n\n/** Value in array operator */\nexport function within(values: unknown[]): FilterOperatorValue {\n return { in: values }\n}\n\n/** Value not in array operator */\nexport function notWithin(values: unknown[]): FilterOperatorValue {\n return { nin: values }\n}\n\n/** Array contains value operator */\nexport function contains(value: unknown): FilterOperatorValue {\n return { contains: value }\n}\n\n/** Case-sensitive pattern match (SQL LIKE) */\nexport function like(pattern: string): FilterOperatorValue {\n return { like: pattern }\n}\n\n/** Case-insensitive pattern match (SQL ILIKE) */\nexport function ilike(pattern: string): FilterOperatorValue {\n return { ilike: pattern }\n}\n\n/** Is null operator */\nexport function isNull(): FilterOperatorValue {\n return { is_null: true }\n}\n\n/** Is not null operator */\nexport function isNotNull(): FilterOperatorValue {\n return { is_null: false }\n}\n","/**\n * Filter builder for constructing complex filter queries\n *\n * Supports both builder pattern and object literal styles:\n *\n * @example Builder pattern\n * filter: (f) => f\n * .where('hp', gte(100))\n * .where('types', contains('Pokemon'))\n * .any(or => or\n * .where('rarity', 'rare')\n * .where('rarity', 'mythic')\n * )\n *\n * @example Object literal\n * filter: {\n * hp: { gte: 100 },\n * types: { contains: 'Pokemon' },\n * $or: [\n * { rarity: 'rare' },\n * { rarity: 'mythic' }\n * ]\n * }\n */\n\nimport type { FilterCondition, FilterValue, FilterInput } from './types.js'\n\nexport class FilterBuilder {\n private conditions: FilterCondition[] = []\n private orGroups: FilterCondition[] = []\n\n /**\n * Add a condition to the filter\n *\n * @example Single field\n * .where('name', 'Pikachu')\n * .where('hp', gte(100))\n *\n * @example Multiple fields (object)\n * .where({ name: 'Pikachu', hp: gte(100) })\n */\n where(field: string, value: FilterValue): this\n where(conditions: Record<string, FilterValue>): this\n where(fieldOrConditions: string | Record<string, FilterValue>, value?: FilterValue): this {\n if (typeof fieldOrConditions === 'string') {\n this.conditions.push({ [fieldOrConditions]: value })\n } else {\n for (const [field, val] of Object.entries(fieldOrConditions)) {\n this.conditions.push({ [field]: val })\n }\n }\n return this\n }\n\n /**\n * Add an OR group (any of the conditions must match)\n *\n * @example\n * .where('type', 'creature')\n * .any(or => or\n * .where('color', 'red')\n * .where('color', 'blue')\n * )\n */\n any(callback: (builder: FilterBuilder) => void): this {\n const orBuilder = new FilterBuilder()\n callback(orBuilder)\n const orConditions = orBuilder.getConditions()\n if (orConditions.length > 0) {\n this.orGroups.push({ $or: orConditions })\n }\n return this\n }\n\n /**\n * Add a link filter condition (filter on linked records)\n *\n * @example\n * .whereLink('set_id', { code: 'DMU' })\n * .whereLink('set_id', { name: ilike('%dominaria%') })\n */\n whereLink(field: string, conditions: Record<string, FilterValue>): this {\n const linkFilter: Record<string, FilterValue> = {}\n for (const [key, val] of Object.entries(conditions)) {\n linkFilter[key] = val\n }\n this.conditions.push({ [`${field}._link`]: linkFilter })\n return this\n }\n\n /**\n * Add an array element filter (for ARRAY of HASH fields)\n * Matches if any element in the array matches all conditions\n *\n * @example\n * .whereAny('attacks', { damage: gte(50) })\n * .whereAny('attacks', { name: ilike('%thunder%') })\n */\n whereAny(field: string, conditions: Record<string, FilterValue>): this {\n const anyFilter: Record<string, FilterValue> = {}\n for (const [key, val] of Object.entries(conditions)) {\n anyFilter[key] = val\n }\n this.conditions.push({ [`${field}._any`]: anyFilter })\n return this\n }\n\n /**\n * Get the conditions array (used internally for OR groups)\n */\n getConditions(): FilterCondition[] {\n return this.conditions\n }\n\n /**\n * Build the final filter object\n */\n build(): FilterCondition {\n const allConditions = [...this.conditions, ...this.orGroups]\n\n if (allConditions.length === 0) {\n return {}\n }\n\n if (allConditions.length === 1) {\n return allConditions[0]!\n }\n\n return { $and: allConditions }\n }\n}\n\n/**\n * Resolve a filter input to a filter condition object\n *\n * Handles both builder functions and object literals\n */\nexport function resolveFilter(input: FilterInput | undefined): FilterCondition | undefined {\n if (input === undefined) {\n return undefined\n }\n\n if (typeof input === 'function') {\n const builder = new FilterBuilder()\n input(builder)\n const result = builder.build()\n return Object.keys(result).length > 0 ? result : undefined\n }\n\n return Object.keys(input).length > 0 ? input : undefined\n}\n","/**\n * GraphQL query builder for CardDB API\n */\n\nimport type {\n DeckAPIApplicationAccessGrantInput,\n DeckClaimInput,\n DeckCollaboratorRole,\n DeckCopyInput,\n DeckCreateInput,\n DeckEntriesReplaceInput,\n DeckEntryAddInput,\n DeckEntryReorderInput,\n DeckEntryUpdateInput,\n DeckExportFormat,\n DeckHydrateEntriesInput,\n DeckImportFormatCreateInput,\n DeckImportFormatTestInput,\n DeckImportFormatUpdateInput,\n DeckImportInput,\n DeckPublishedVersionSelector,\n DeckPublishInput,\n DeckReadState,\n DeckRemoveInvalidEntriesInput,\n DeckTokenExchangeInput,\n DeckTokenIssuerCreateInput,\n DeckTransferOwnershipInput,\n DeckUpsertByExternalRefInput,\n DeckUpdateInput,\n DeckValidateInput,\n ConfirmScanUploadInput,\n CreateScanJobInput,\n CreateScanUploadSessionInput,\n DatasetExportInput,\n DatasetImportFromFileInput,\n DatasetImportFromPayloadInput,\n DatasetImportFromUrlInput,\n DatasetImportPreviewInput,\n DatasetImportValidateInput,\n DatasetRecordsDeleteInput,\n DatasetRecordsUpsertInput,\n FilterCondition,\n FileUploadInput,\n GameCreateInput,\n GameImportFromFileInput,\n GameImportFromPayloadInput,\n GameImportFromUrlInput,\n GameImportPreviewInput,\n GameUpdateInput,\n ImportJobStatus,\n PreviewScanTemplateInput,\n ResolveScanTemplateInput,\n SaveScanTemplateInput,\n ScanMetricsInput,\n ScanTemplatesInput,\n SubmitScanFeedbackInput,\n AppDecksFilterInput,\n PublicDecksFilterInput,\n RulesetCreateInput,\n RulesetUpdateInput,\n RulesetVersionDraftCreateInput,\n RulesetVersionDraftImportFromDatasetRecordInput,\n RulesetVersionDraftUpdateInput,\n RulesetVersionPublishInput,\n RulesetVersionStatus,\n ViewerDecksFilterInput,\n DatasetRecordDeleteJobStatus,\n ExportJobStatus,\n} from './types.js'\nimport { ValidationError } from './errors.js'\n\nconst DECK_JSON_OBJECT_KEYS = new Set(['metadata', 'annotations'])\n\nfunction normalizeDeckJsonInput<T>(input: T): T {\n return normalizeDeckJsonValue(input, 'input') as T\n}\n\nfunction normalizeDeckJsonValue(value: unknown, path: string): unknown {\n if (!isRecord(value)) {\n return value\n }\n\n const normalized: Record<string, unknown> = {}\n for (const [key, child] of Object.entries(value)) {\n const childPath = `${path}.${key}`\n if (DECK_JSON_OBJECT_KEYS.has(key)) {\n normalized[key] = normalizeJsonObject(child, childPath)\n } else if (key === 'entries' && Array.isArray(child)) {\n normalized[key] = child.map((entry, index) =>\n normalizeDeckJsonValue(entry, `${childPath}[${index}]`)\n )\n } else {\n normalized[key] = child\n }\n }\n return normalized\n}\n\nfunction normalizeJsonObject(value: unknown, path: string): unknown {\n if (value == null || isRecord(value)) {\n return value\n }\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value) as unknown\n if (isRecord(parsed)) {\n return parsed\n }\n } catch {\n // Fall through to the consistent validation error below.\n }\n }\n\n throw new ValidationError(`${path} must be a JSON object`)\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\n// ============================================================================\n// Field Definitions\n// ============================================================================\n\nconst FILE_FIELDS = `\n id\n createdAt\n updatedAt\n key\n filename\n contentType\n size\n status\n isPublic\n entityType\n entityId\n url\n`\n\nconst PRESIGNED_UPLOAD_FIELDS = `\n file {\n ${FILE_FIELDS}\n }\n uploadUrl\n expiresAt\n`\n\nconst PUBLISHER_FIELDS = `\n id\n name\n slug\n status\n description\n website\n createdAt\n updatedAt\n logoFile {\n id\n url\n }\n bannerFile {\n id\n url\n }\n`\n\nconst GAME_FIELDS = `\n id\n publisherId\n key\n name\n description\n metafyGameUuid\n metafyGameSlug\n website\n visibility\n isArchived\n createdAt\n updatedAt\n publisher {\n id\n name\n slug\n }\n logoFile {\n id\n url\n }\n coverFile {\n id\n url\n }\n`\n\nconst DATASET_FIELDS = `\n id\n publisherId\n gameId\n key\n name\n description\n purpose\n activeVersionId\n tcgplayerProductIdFieldKey\n visibility\n posX\n posY\n sortOrder\n archivedAt\n isArchived\n createdAt\n updatedAt\n publisher {\n id\n name\n slug\n }\n game {\n id\n key\n name\n }\n`\n\nconst SCHEMA_NESTED_FIELDS_DEPTH = 4\n\nfunction fieldInfoFields(depth: number): string {\n const nestedFields =\n depth > 0\n ? `\n nestedFields {\n ${fieldInfoFields(depth - 1)}\n }`\n : ''\n\n return `\n key\n label\n description\n type\n isRequired\n filterable\n searchable\n isIdentifier\n sortOrder\n itemType\n linkDatasetId\n linkDatasetKey\n linkDatasetName\n linkFieldKey\n linkAlias\n linkDirection\n displayFormat\n semanticType\n placeholder\n isHidden\n isComputed\n isSystemField\n defaultValue\n allowedValues\n minLength\n maxLength\n minValue\n maxValue\n pattern\n isUnique\n ${nestedFields}\n `\n}\n\nconst SCHEMA_FIELDS = `\n schema {\n fields {\n ${fieldInfoFields(SCHEMA_NESTED_FIELDS_DEPTH)}\n }\n filterableFields\n searchableFields\n linkFields {\n key\n label\n targetDatasetKey\n targetDatasetName\n targetDatasetId\n targetFieldKey\n linkAlias\n linkDirection\n isArray\n }\n }\n`\n\nconst DATASET_FILTER_VALUE_CONNECTION_FIELDS = `\n field\n edges {\n cursor\n node {\n value\n count\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n`\n\nconst OBJECT_FIELD_FIELDS = `\n id\n objectTypeId\n key\n label\n dataType\n isRequired\n isFilterable\n isSearchable\n isIdentifier\n sortOrder\n description\n placeholder\n displayFormat\n semanticType\n isHidden\n isComputed\n isSystemField\n defaultValue\n allowedValues\n minLength\n maxLength\n minValue\n maxValue\n pattern\n isUnique\n itemType\n linkDatasetId\n linkFieldKey\n linkAlias\n linkDirection\n parentFieldId\n createdAt\n updatedAt\n`\n\ninterface RecordFieldOptions {\n includePricing?: boolean\n}\n\nconst TCGPLAYER_PRICING_FIELDS = `\n pricing {\n productId\n prices {\n subTypeName\n lowPrice\n midPrice\n highPrice\n marketPrice\n directLowPrice\n }\n }\n`\n\nfunction recordFields(options: RecordFieldOptions = {}): string {\n return `\n id\n datasetId\n data\n ${options.includePricing ? TCGPLAYER_PRICING_FIELDS : ''}\n createdAt\n updatedAt\n dataset {\n id\n key\n name\n gameId\n publisherId\n }\n `\n}\n\nconst RECORD_FIELDS = recordFields()\n\nconst DECK_SECTION_DEFINITION_FIELDS = `\n key\n label\n description\n order\n default\n aliases\n minCards\n maxCards\n excludedFromDeckSize\n legalCardTypes\n metadata\n`\n\nconst DECK_ENTRY_FIELDS = `\n id\n datasetId\n recordId\n identifier\n quantity\n section\n sortOrder\n annotations\n display\n record {\n ${RECORD_FIELDS}\n }\n`\n\nconst DECK_VALIDATED_AGAINST_FIELDS = `\n rulesetId\n rulesetVersionId\n rulesetVersionLabel\n cardDatasetId\n cardDatasetVersionId\n validatedAt\n validationResultSummary\n`\n\nconst DECK_VALIDATION_ISSUE_FIELDS = `\n code\n severity\n message\n entryIds\n section\n datasetId\n identifier\n metadata\n`\n\nconst DECK_VALIDATION_FIELDS = `\n deckId\n valid\n blockers {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n warnings {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n affectedEntries {\n entryId\n datasetId\n recordId\n identifier\n section\n quantity\n }\n validatedAgainst {\n ${DECK_VALIDATED_AGAINST_FIELDS}\n }\n checkedAt\n`\n\nconst RULESET_VERSION_FIELDS = `\n id\n rulesetId\n versionLabel\n status\n rules\n sectionDefinitions {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n cardDatasetId\n cardDatasetVersionId\n sourceDatasetId\n sourceDatasetVersionId\n sourceDatasetRecordId\n sourceRecordIdentifier\n rulesFingerprint\n effectiveAt\n changelog\n createdByAccountId\n publishedByAccountId\n publishedAt\n supersededAt\n createdAt\n updatedAt\n`\n\nconst RULESET_FIELDS = `\n id\n gameId\n game {\n id\n key\n name\n }\n key\n name\n description\n tags\n sortOrder\n currentVersionId\n currentVersion {\n ${RULESET_VERSION_FIELDS}\n }\n archivedAt\n isArchived\n createdAt\n updatedAt\n`\n\nconst DECK_VALIDATION_RULES_FIELDS = `\n rulesetId\n rulesetVersionId\n rulesetKey\n rulesetVersionLabel\n rules\n sections {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n`\n\nconst RULESET_VALIDATION_IMPACT_DECK_FIELDS = `\n deckId\n title\n slug\n state\n hasUnpublishedChanges\n valid\n blockerCount\n warningCount\n affectedEntryCount\n issues {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n`\n\nconst RULESET_VALIDATION_IMPACT_FIELDS = `\n rulesetId\n rulesetVersionId\n checkedAt\n affectedDeckCount\n invalidDeckCount\n blockerCount\n warningCount\n results {\n ${RULESET_VALIDATION_IMPACT_DECK_FIELDS}\n }\n`\n\nconst RULESET_VERSION_DRAFT_IMPORT_PREVIEW_FIELDS = `\n sourceDatasetId\n sourceDatasetVersionId\n sourceDatasetRecordId\n sourceRecordIdentifier\n rules\n sectionDefinitions {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n rulesFingerprint\n summary\n sectionCount\n copyLimitCount\n`\n\nconst DECK_DIFF_FIELDS = `\n deckId\n fromVersionId\n toVersionId\n toDraftRevision\n hasChanges\n diff\n`\n\nconst DECK_VERSION_FIELDS = `\n id\n deckId\n versionNumber\n slug\n identifier\n title\n description\n formatKey\n visibility\n externalRef\n sourceUrl\n metadata\n publishNote\n computedDiff\n rulesetId\n rulesetVersionId\n cardDatasetId\n cardDatasetVersionId\n validatedAt\n validationSummary\n validatedAgainst {\n ${DECK_VALIDATED_AGAINST_FIELDS}\n }\n sectionDefinitions {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n publishedByAccountId\n publishedByApiApplicationId\n createdAt\n entries {\n ${DECK_ENTRY_FIELDS}\n }\n`\n\nconst DECK_COLLABORATOR_FIELDS = `\n id\n deckId\n accountId\n role\n createdByAccountId\n createdAt\n updatedAt\n`\n\nconst DECK_TOKEN_ISSUER_FIELDS = `\n id\n apiApplicationId\n label\n allowedScopes\n allowedRepresentations\n maxTokenLifetimeSeconds\n directSigningAlg\n directSigningKeyId\n directSigningPublicKey\n directSigningKeyRevokedAt\n revokedAt\n createdAt\n updatedAt\n`\n\nconst DECK_TOKEN_FIELDS = `\n id\n apiApplicationId\n issuerId\n deckId\n gameId\n externalSubject\n scopes\n representation\n expiresAt\n revokedAt\n lastUsedAt\n createdAt\n updatedAt\n`\n\nconst DECK_IMPORT_ENTRY_FIELDS = `\n lineNumber\n raw\n datasetKey\n datasetId\n recordId\n identifier\n quantity\n section\n sortOrder\n display\n record {\n ${RECORD_FIELDS}\n }\n`\n\nconst DECK_IMPORT_ISSUE_FIELDS = `\n lineNumber\n raw\n code\n message\n`\n\nconst DECK_IMPORT_UNMATCHED_FIELDS = `\n lineNumber\n raw\n datasetKey\n identifier\n quantity\n section\n code\n message\n`\n\nconst DECK_IMPORT_AMBIGUOUS_FIELDS = `\n lineNumber\n raw\n datasetKey\n identifier\n quantity\n section\n candidates {\n recordId\n identifier\n display\n }\n`\n\nconst DECK_IMPORT_FORMAT_DEFINITION_FIELDS = `\n id\n gameId\n key\n name\n description\n enabled\n priority\n datasetKey\n config\n archivedAt\n isArchived\n createdAt\n updatedAt\n`\n\nconst DECK_IMPORT_FORMAT_DETECTION_FIELDS = `\n formatId\n key\n name\n confidence\n reason\n`\n\nconst DECK_IMPORT_FORMAT_TEST_PAYLOAD_FIELDS = `\n detection {\n ${DECK_IMPORT_FORMAT_DETECTION_FIELDS}\n }\n entries {\n ${DECK_IMPORT_ENTRY_FIELDS}\n }\n parseErrors {\n ${DECK_IMPORT_ISSUE_FIELDS}\n }\n unmatched {\n ${DECK_IMPORT_UNMATCHED_FIELDS}\n }\n ambiguous {\n ${DECK_IMPORT_AMBIGUOUS_FIELDS}\n }\n`\n\nconst DECK_HYDRATE_ENTRIES_PAYLOAD_FIELDS = `\n entries {\n ${DECK_IMPORT_ENTRY_FIELDS}\n }\n unmatched {\n ${DECK_IMPORT_UNMATCHED_FIELDS}\n }\n ambiguous {\n ${DECK_IMPORT_AMBIGUOUS_FIELDS}\n }\n`\n\nconst DECK_EXPORT_PAYLOAD_FIELDS = `\n deckId\n format\n text\n entryCount\n`\n\nconst DECK_FIELDS = `\n id\n ownerType\n ownerAccountId\n ownerApiApplicationId\n environment\n createdByAccountId\n createdByApiApplicationId\n accountId\n apiApplicationId\n gameId\n slug\n identifier\n title\n description\n formatKey\n visibility\n accessMode\n discoverability\n state\n archivedAt\n deletedAt\n unpublishedAt\n externalRefApiApplicationId\n externalRef\n externalSubjectRef\n rulesetId\n sourceUrl\n metadata\n sectionDefinitions {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n latestPublishedVersion {\n ${DECK_VERSION_FIELDS}\n }\n publishedAt\n draftRevision\n draftUpdatedAt\n draftUpdatedByAccountId\n draftUpdatedByApiApplicationId\n hasUnpublishedChanges\n createdAt\n updatedAt\n game {\n ${GAME_FIELDS}\n }\n entries {\n ${DECK_ENTRY_FIELDS}\n }\n`\n\nconst DECK_OWNERSHIP_TRANSFER_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n retainedAppAccess\n`\n\nconst DECK_COPY_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n copiedFromDeckId\n retainedAppAccess\n`\n\nconst DECK_ACCESS_APPLICATION_FIELDS = `\n id\n name\n description\n revokedAt\n`\n\nconst DECK_API_APPLICATION_ACCESS_FIELDS = `\n id\n deckId\n deck {\n ${DECK_FIELDS}\n }\n apiApplicationId\n apiApplication {\n ${DECK_ACCESS_APPLICATION_FIELDS}\n }\n role\n grantSource\n externalRef\n createdByAccountId\n createdByApiApplicationId\n revokedAt\n createdAt\n updatedAt\n`\n\nconst DECK_PUBLISH_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n version {\n ${DECK_VERSION_FIELDS}\n }\n validation {\n ${DECK_VALIDATION_FIELDS}\n }\n blockers {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n warnings {\n ${DECK_VALIDATION_ISSUE_FIELDS}\n }\n`\n\nconst DECK_ENTRY_MUTATION_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n entry {\n ${DECK_ENTRY_FIELDS}\n }\n`\n\nconst DECK_ENTRY_REORDER_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n entries {\n ${DECK_ENTRY_FIELDS}\n }\n`\n\nconst DECK_ENTRIES_REPLACE_PAYLOAD_FIELDS = DECK_ENTRY_REORDER_PAYLOAD_FIELDS\n\nconst DECK_IMPORT_PAYLOAD_FIELDS = `\n deck {\n ${DECK_FIELDS}\n }\n applied\n dryRun\n replace\n format\n importFormat {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n detection {\n ${DECK_IMPORT_FORMAT_DETECTION_FIELDS}\n }\n entries {\n ${DECK_IMPORT_ENTRY_FIELDS}\n }\n parseErrors {\n ${DECK_IMPORT_ISSUE_FIELDS}\n }\n unmatched {\n ${DECK_IMPORT_UNMATCHED_FIELDS}\n }\n ambiguous {\n ${DECK_IMPORT_AMBIGUOUS_FIELDS}\n }\n validation {\n ${DECK_VALIDATION_FIELDS}\n }\n`\n\nconst RESOLVED_LINKS_FIELDS = `\n resolvedLinks {\n field\n linkFieldKey\n values\n records {\n id\n datasetId\n data\n }\n }\n`\n\nconst BULK_RECORD_ERROR_FIELDS = `\n datasetKey\n index\n errors {\n field\n message\n details\n }\n`\n\nconst IMPORT_STATS_FIELDS = `\n total\n inserted\n updated\n skipped\n failed\n`\n\nconst BULK_IMPORT_RESULT_FIELDS = `\n inserted {\n ${RECORD_FIELDS}\n }\n updated {\n ${RECORD_FIELDS}\n }\n skipped\n errors {\n ${BULK_RECORD_ERROR_FIELDS}\n }\n createdFields {\n ${OBJECT_FIELD_FIELDS}\n }\n stats {\n ${IMPORT_STATS_FIELDS}\n }\n`\n\nconst IMPORT_JOB_ASSET_FIELDS = `\n fileId\n filename\n file {\n ${FILE_FIELDS}\n }\n`\n\nconst IMPORT_JOB_FIELDS = `\n id\n publisherId\n publisher {\n ${PUBLISHER_FIELDS}\n }\n datasetId\n dataset {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n accountId\n status\n mode\n onConflict\n format\n fileId\n progress\n totalRecords\n processedRecords\n insertedCount\n updatedCount\n skippedCount\n failedCount\n createdFields {\n ${OBJECT_FIELD_FIELDS}\n }\n errors {\n ${BULK_RECORD_ERROR_FIELDS}\n }\n errorMessage\n assets {\n ${IMPORT_JOB_ASSET_FIELDS}\n }\n startedAt\n completedAt\n createdAt\n updatedAt\n lastCheckpointIndex\n isResumed\n imagesPending\n imagesCompleted\n imagesFailed\n`\n\nconst IMPORT_JOB_LOG_FIELDS = `\n id\n importJobId\n level\n message\n datasetKey\n recordIndex\n fieldKey\n details\n createdAt\n`\n\nconst DATASET_RECORDS_UPSERT_PAYLOAD_FIELDS = `\n job {\n ${IMPORT_JOB_FIELDS}\n }\n dryRunResult {\n ${BULK_IMPORT_RESULT_FIELDS}\n }\n`\n\nconst DELETE_JOB_RESULT_FIELDS = `\n target\n recordId\n identifier\n status\n message\n`\n\nconst DATASET_RECORD_DELETE_JOB_FIELDS = `\n id\n publisherId\n publisher {\n ${PUBLISHER_FIELDS}\n }\n datasetId\n dataset {\n ${DATASET_FIELDS}\n }\n accountId\n status\n targetType\n dryRun\n targets\n progress\n totalTargets\n processedTargets\n matchedCount\n deletedCount\n missingCount\n blockedCount\n failedCount\n results {\n ${DELETE_JOB_RESULT_FIELDS}\n }\n errorMessage\n startedAt\n completedAt\n createdAt\n updatedAt\n`\n\nconst FIELD_MAPPING_FIELDS = `\n sourceField\n targetField\n targetFieldLabel\n inferredType\n inferredItemType\n inferredChildren {\n key\n label\n type\n required\n itemType\n children {\n key\n label\n type\n required\n itemType\n }\n }\n inferredLinkDataset\n inferredLinkFieldKey\n inferredLinkDirection\n targetFieldType\n sampleValues\n status\n`\n\nconst IMPORT_WARNING_FIELDS = `\n datasetKey\n field\n message\n severity\n`\n\nconst DATASET_IMPORT_PREVIEW_FIELDS = `\n datasetKey\n datasetName\n datasetId\n exists\n recordCount\n fieldMappings {\n ${FIELD_MAPPING_FIELDS}\n }\n warnings {\n ${IMPORT_WARNING_FIELDS}\n }\n canProceed\n sampleRecords\n availableDatasets {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n`\n\nconst GAME_IMPORT_PREVIEW_FIELDS = `\n datasets {\n datasetKey\n datasetName\n datasetId\n exists\n recordCount\n fieldMappings {\n ${FIELD_MAPPING_FIELDS}\n }\n warnings {\n ${IMPORT_WARNING_FIELDS}\n }\n sampleRecords\n }\n importOrder\n warnings {\n ${IMPORT_WARNING_FIELDS}\n }\n canProceed\n`\n\nconst GAME_IMPORT_DATASET_STATUS_FIELDS = `\n datasetKey\n datasetId\n datasetName\n status\n recordCount\n insertedCount\n updatedCount\n skippedCount\n failedCount\n errorMessage\n`\n\nconst GAME_IMPORT_JOB_FIELDS = `\n id\n publisherId\n publisher {\n ${PUBLISHER_FIELDS}\n }\n gameId\n game {\n ${GAME_FIELDS}\n }\n accountId\n status\n mode\n onConflict\n fileId\n assets {\n ${IMPORT_JOB_ASSET_FIELDS}\n }\n totalDatasets\n completedDatasets\n progress\n importOrder\n datasetStatuses {\n ${GAME_IMPORT_DATASET_STATUS_FIELDS}\n }\n errorMessage\n startedAt\n completedAt\n createdAt\n updatedAt\n completedDatasetKeys\n currentDatasetKey\n lastCheckpointIndex\n isResumed\n imagesPending\n imagesCompleted\n imagesFailed\n phase\n linkBuildingDataset\n linkBuildingTotalDatasets\n linkBuildingCompletedDatasets\n linkBuildingProcessedRecords\n linkBuildingTotalRecords\n`\n\nconst EXPORT_JOB_FIELDS = `\n id\n publisherId\n publisher {\n ${PUBLISHER_FIELDS}\n }\n datasetId\n dataset {\n ${DATASET_FIELDS}\n }\n accountId\n status\n format\n filter\n totalRecords\n processedRecords\n progress\n fileId\n downloadUrl\n downloadExpiresAt\n errorMessage\n startedAt\n completedAt\n createdAt\n updatedAt\n lastCheckpointIndex\n`\n\nconst SCAN_CANDIDATE_FIELDS = `\n recordId\n rank\n score\n confidence\n reasons\n`\n\nconst SCAN_WEBHOOK_FIELDS = `\n configured\n url\n latestDeliveryId\n status\n attemptCount\n nextAttemptAt\n lastAttemptAt\n deliveredAt\n lastStatusCode\n lastError\n`\n\nconst SCAN_JOB_METRICS_FIELDS = `\n featureVersion\n candidateCount\n confidenceScore\n confidenceLabel\n stages {\n name\n status\n durationMs\n completedAt\n details\n }\n timings\n`\n\nconst SCAN_JOB_FIELDS = `\n jobId\n status\n publisherSlug\n gameKey\n datasetKey\n fileId\n clientRequestId\n templateId\n templateVersionId\n bestMatch {\n recordId\n score\n confidence\n }\n candidates {\n ${SCAN_CANDIDATE_FIELDS}\n }\n extracted\n metrics {\n ${SCAN_JOB_METRICS_FIELDS}\n }\n webhook {\n ${SCAN_WEBHOOK_FIELDS}\n }\n error {\n code\n message\n }\n createdAt\n updatedAt\n startedAt\n completedAt\n`\n\nconst SCAN_METRICS_FIELDS = `\n publisherSlug\n gameKey\n datasetKey\n since\n until\n generatedAt\n totalJobs\n completedJobs\n failedJobs\n failureRate\n noMatchCount\n noMatchRate\n averageShortlistSize\n vectorQueryCount\n vectorFallbackCount\n averageVectorCandidates\n averageVectorQueryMs\n averageEmbeddingMs\n confidenceDistribution\n feedback {\n total\n correct\n corrected\n unknown\n accuracy\n }\n featureVersions {\n featureVersion\n jobCount\n completedJobs\n failedJobs\n noMatchCount\n averageConfidence\n averageShortlistSize\n vectorQueryCount\n vectorFallbackCount\n averageVectorCandidates\n averageVectorQueryMs\n averageEmbeddingMs\n feedbackCount\n correctFeedback\n correctedFeedback\n feedbackAccuracy\n }\n`\n\nconst SCAN_TEMPLATE_WARNING_FIELDS = `\n code\n region\n message\n`\n\nconst SCAN_TEMPLATE_REGION_FIELDS = `\n id\n key\n label\n sortOrder\n shapeType\n geometry\n semanticType\n extractionMode\n lookupMode\n isRequired\n weight\n config\n`\n\nconst SCAN_TEMPLATE_FIELDS = `\n id\n key\n name\n status\n version\n isDefault\n publisherSlug\n gameKey\n datasetKey\n exampleFileId\n coordinateSpace\n cardAspectRatio\n notes\n config\n regions {\n ${SCAN_TEMPLATE_REGION_FIELDS}\n }\n createdAt\n updatedAt\n`\n\nconst SCAN_TEMPLATE_PREVIEW_REGION_FIELDS = `\n key\n label\n semanticType\n extractionMode\n lookupMode\n rawText\n normalizedValue\n source\n status\n confidence\n`\n\nconst GAME_SCAN_REGION_FIELDS = `\n id\n key\n name\n description\n sortOrder\n isActive\n metadata\n createdAt\n updatedAt\n`\n\nfunction connectionFields(nodeFields: string): string {\n return `\n totalCount\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n ${nodeFields}\n }\n }\n `\n}\n\n// ============================================================================\n// Query Builder\n// ============================================================================\n\nexport interface SearchPublishersParams {\n search?: string\n first?: number\n after?: string\n}\n\nexport interface SearchGamesParams {\n publisherSlug?: string\n search?: string\n first?: number\n after?: string\n}\n\nexport interface SearchDatasetsParams {\n publisherSlug?: string\n gameKey?: string\n search?: string\n purpose?: 'DATA' | 'RULES'\n first?: number\n after?: string\n}\n\nexport interface SearchRecordsParams {\n publisherSlug: string\n gameKey: string\n datasetKey: string\n filter?: FilterCondition\n search?: string\n orderBy?: string\n resolveLinks?: string[]\n first?: number\n after?: string\n validateSchema?: boolean\n includePricing?: boolean\n}\n\nexport interface ListGamesParams {\n publisherId: string\n first?: number\n after?: string\n includeArchived?: boolean\n}\n\nexport interface GameLookupParams {\n id?: string\n publisherId?: string\n publisherSlug?: string\n gameKey?: string\n gameSlug?: string\n}\n\nexport interface ListDatasetsParams {\n publisherId: string\n gameId?: string\n first?: number\n after?: string\n includeArchived?: boolean\n purpose?: 'DATA' | 'RULES'\n}\n\nexport interface DatasetLookupParams {\n id?: string\n publisherId?: string\n gameId?: string\n datasetKey?: string\n}\n\nexport interface DatasetFilterValuesParams {\n id?: string\n publisherSlug?: string\n gameKey?: string\n datasetKey?: string\n fields: string[]\n search?: string\n includeCounts?: boolean\n first?: number\n after?: string\n}\n\nexport interface ListDatasetRecordsParams {\n datasetId: string\n filter?: FilterCondition\n orderBy?: { field: string; direction?: 'ASC' | 'DESC' }\n first?: number\n after?: string\n last?: number\n before?: string\n validateSchema?: boolean\n}\n\nexport interface DatasetRecordLookupParams {\n id?: string\n datasetId?: string\n identifier?: string\n publisherSlug?: string\n gameKey?: string\n datasetKey?: string\n recordId?: string\n resolveLinks?: string[]\n validateSchema?: boolean\n includePricing?: boolean\n}\n\nexport interface ListImportJobsParams {\n publisherId: string\n datasetId?: string\n status?: ImportJobStatus\n first?: number\n after?: string\n}\n\nexport interface ListGameImportJobsParams {\n gameId: string\n status?: ImportJobStatus\n first?: number\n after?: string\n}\n\nexport interface ListDatasetRecordDeleteJobsParams {\n publisherId: string\n datasetId?: string\n status?: DatasetRecordDeleteJobStatus\n first?: number\n after?: string\n}\n\nexport interface ListExportJobsParams {\n publisherId: string\n gameId?: string\n datasetId?: string\n status?: ExportJobStatus\n first?: number\n after?: string\n}\n\nexport interface ListDecksParams {\n first?: number\n after?: string\n includeArchived?: boolean\n}\n\nexport interface ListDeckVersionsParams {\n first?: number\n after?: string\n}\n\nexport interface DeckSectionDefinitionsParams {\n publisherSlug?: string\n gameKey?: string\n gameId?: string\n rulesetKey?: string\n rulesetVersionId?: string\n}\n\nexport interface ListRulesetsParams {\n gameId: string\n includeArchived?: boolean\n first?: number\n after?: string\n}\n\nexport interface ListPublicRulesetsParams {\n gameId: string\n first?: number\n after?: string\n}\n\nexport interface RulesetLookupParams {\n id?: string\n gameId?: string\n key?: string\n}\n\nexport interface ListRulesetVersionsParams {\n rulesetId: string\n status?: RulesetVersionStatus\n first?: number\n after?: string\n}\n\nexport interface RulesetValidationRulesParams {\n gameId: string\n rulesetKey: string\n rulesetVersionId?: string\n}\n\nexport interface RulesetValidationImpactParams {\n rulesetVersionId: string\n first?: number\n}\n\nexport interface ViewerDecksParams {\n filter?: ViewerDecksFilterInput\n first?: number\n after?: string\n}\n\nexport interface AppDecksParams {\n filter?: AppDecksFilterInput\n first?: number\n after?: string\n}\n\nexport interface PublicDecksParams {\n filter?: PublicDecksFilterInput\n first?: number\n after?: string\n}\n\nexport interface ListDeckImportFormatsParams {\n publisherId?: string\n gameId?: string\n includeArchived?: boolean\n first?: number\n after?: string\n}\n\nexport const QueryBuilder = {\n // Publishers\n searchPublishers(params: SearchPublishersParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.search !== undefined) {\n defs.push('$search: String')\n args.push('search: $search')\n variables['search'] = params.search\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query SearchPublishers${defStr} {\n searchPublishers${argStr} {\n ${connectionFields(PUBLISHER_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchPublisherById(): { query: string } {\n return {\n query: `\n query FetchPublisher($id: UUID!) {\n fetchPublisher(id: $id) {\n ${PUBLISHER_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchPublisherBySlug(): { query: string } {\n return {\n query: `\n query FetchPublisher($slug: String!) {\n fetchPublisher(slug: $slug) {\n ${PUBLISHER_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchPublishers(): { query: string } {\n return {\n query: `\n query FetchPublishers($slugs: [String!]!) {\n fetchPublishers(slugs: $slugs) {\n ${PUBLISHER_FIELDS}\n }\n }\n `,\n }\n },\n\n // Games\n searchGames(params: SearchGamesParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.search !== undefined) {\n defs.push('$search: String')\n args.push('search: $search')\n variables['search'] = params.search\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query SearchGames${defStr} {\n searchGames${argStr} {\n ${connectionFields(GAME_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchGameById(): { query: string } {\n return {\n query: `\n query FetchGame($id: UUID!) {\n fetchGame(id: $id) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchGameByKeys(): { query: string } {\n return {\n query: `\n query FetchGame($publisherSlug: String!, $gameKey: String!) {\n fetchGame(publisherSlug: $publisherSlug, gameKey: $gameKey) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchGames(): { query: string } {\n return {\n query: `\n query FetchGames($ids: [UUID!]!) {\n fetchGames(ids: $ids) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n listGames(params: ListGamesParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n\n return {\n query: `\n query Games(${defs.join(', ')}) {\n games(${args.join(', ')}) {\n ${connectionFields(GAME_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n game(params: GameLookupParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.id !== undefined) {\n defs.push('$id: UUID')\n args.push('id: $id')\n variables['id'] = params.id\n }\n if (params.publisherId !== undefined) {\n defs.push('$publisherId: UUID')\n args.push('publisherId: $publisherId')\n variables['publisherId'] = params.publisherId\n }\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.gameKey !== undefined) {\n defs.push('$gameKey: String')\n args.push('gameKey: $gameKey')\n variables['gameKey'] = params.gameKey\n }\n if (params.gameSlug !== undefined) {\n defs.push('$gameSlug: String')\n args.push('gameSlug: $gameSlug')\n variables['gameSlug'] = params.gameSlug\n }\n\n return {\n query: `\n query Game(${defs.join(', ')}) {\n game(${args.join(', ')}) {\n ${GAME_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n createGame(): { query: string } {\n return {\n query: `\n mutation GameCreate($input: GameCreateInput!) {\n gameCreate(input: $input) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n updateGame(): { query: string } {\n return {\n query: `\n mutation GameUpdate($id: UUID!, $input: GameUpdateInput!) {\n gameUpdate(id: $id, input: $input) {\n ${GAME_FIELDS}\n }\n }\n `,\n }\n },\n\n // Datasets\n searchDatasets(params: SearchDatasetsParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.gameKey !== undefined) {\n defs.push('$gameKey: String')\n args.push('gameKey: $gameKey')\n variables['gameKey'] = params.gameKey\n }\n if (params.search !== undefined) {\n defs.push('$search: String')\n args.push('search: $search')\n variables['search'] = params.search\n }\n if (params.purpose !== undefined) {\n defs.push('$purpose: DatasetPurpose')\n args.push('purpose: $purpose')\n variables['purpose'] = params.purpose\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query SearchDatasets${defStr} {\n searchDatasets${argStr} {\n ${connectionFields(DATASET_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchDatasetById(): { query: string } {\n return {\n query: `\n query FetchDataset($id: UUID!) {\n fetchDataset(id: $id) {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDatasetByKeys(): { query: string } {\n return {\n query: `\n query FetchDataset($publisherSlug: String!, $gameKey: String!, $datasetKey: String!) {\n fetchDataset(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey) {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDatasets(): { query: string } {\n return {\n query: `\n query FetchDatasets($ids: [UUID!]!) {\n fetchDatasets(ids: $ids) {\n ${DATASET_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDatasetFilterValues(params: DatasetFilterValuesParams): {\n query: string\n variables: Record<string, unknown>\n } {\n if (params.fields.length === 0) {\n throw new ValidationError('fields must contain at least one field key')\n }\n\n const byId = params.id !== undefined\n const byKeys =\n params.publisherSlug !== undefined &&\n params.gameKey !== undefined &&\n params.datasetKey !== undefined\n if (!byId && !byKeys) {\n throw new ValidationError('provide either id or publisherSlug, gameKey, and datasetKey')\n }\n\n const definitions = ['$fields: [String!]!']\n const filterValueArgs = ['fields: $fields']\n const variables: Record<string, unknown> = { fields: params.fields }\n\n if (params.search !== undefined) {\n definitions.push('$search: String')\n filterValueArgs.push('search: $search')\n variables['search'] = params.search\n }\n if (params.includeCounts !== undefined) {\n definitions.push('$includeCounts: Boolean')\n filterValueArgs.push('includeCounts: $includeCounts')\n variables['includeCounts'] = params.includeCounts\n }\n if (params.first !== undefined) {\n definitions.push('$first: Int')\n filterValueArgs.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n definitions.push('$after: String')\n filterValueArgs.push('after: $after')\n variables['after'] = params.after\n }\n\n const datasetArgs: string[] = []\n if (byId) {\n definitions.push('$id: UUID!')\n datasetArgs.push('id: $id')\n variables['id'] = params.id\n } else {\n definitions.push('$publisherSlug: String!', '$gameKey: String!', '$datasetKey: String!')\n datasetArgs.push(\n 'publisherSlug: $publisherSlug',\n 'gameKey: $gameKey',\n 'datasetKey: $datasetKey'\n )\n variables['publisherSlug'] = params.publisherSlug\n variables['gameKey'] = params.gameKey\n variables['datasetKey'] = params.datasetKey\n }\n\n return {\n query: `\n query FetchDatasetFilterValues(${definitions.join(', ')}) {\n fetchDataset(${datasetArgs.join(', ')}) {\n filterValues(${filterValueArgs.join(', ')}) {\n ${DATASET_FILTER_VALUE_CONNECTION_FIELDS}\n }\n }\n }\n `,\n variables,\n }\n },\n\n listDatasets(params: ListDatasetsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n if (params.purpose !== undefined) {\n defs.push('$purpose: DatasetPurpose')\n args.push('purpose: $purpose')\n variables['purpose'] = params.purpose\n }\n\n return {\n query: `\n query Datasets(${defs.join(', ')}) {\n datasets(${args.join(', ')}) {\n ${connectionFields(`${DATASET_FIELDS}\\n${SCHEMA_FIELDS}`)}\n }\n }\n `,\n variables,\n }\n },\n\n dataset(params: DatasetLookupParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.id !== undefined) {\n defs.push('$id: UUID')\n args.push('id: $id')\n variables['id'] = params.id\n }\n if (params.publisherId !== undefined) {\n defs.push('$publisherId: UUID')\n args.push('publisherId: $publisherId')\n variables['publisherId'] = params.publisherId\n }\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.datasetKey !== undefined) {\n defs.push('$datasetKey: String')\n args.push('datasetKey: $datasetKey')\n variables['datasetKey'] = params.datasetKey\n }\n\n return {\n query: `\n query Dataset(${defs.join(', ')}) {\n dataset(${args.join(', ')}) {\n ${DATASET_FIELDS}\n ${SCHEMA_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n // Records\n searchRecords(params: SearchRecordsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {\n publisherSlug: params.publisherSlug,\n gameKey: params.gameKey,\n datasetKey: params.datasetKey,\n }\n const args: string[] = [\n 'publisherSlug: $publisherSlug',\n 'gameKey: $gameKey',\n 'datasetKey: $datasetKey',\n ]\n const defs: string[] = ['$publisherSlug: String!', '$gameKey: String!', '$datasetKey: String!']\n\n if (params.filter !== undefined) {\n defs.push('$filter: JSON')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.search !== undefined) {\n defs.push('$search: String')\n args.push('search: $search')\n variables['search'] = params.search\n }\n if (params.orderBy !== undefined) {\n defs.push('$orderBy: String')\n args.push('orderBy: $orderBy')\n variables['orderBy'] = params.orderBy\n }\n if (params.resolveLinks !== undefined) {\n defs.push('$resolveLinks: [String!]')\n args.push('resolveLinks: $resolveLinks')\n variables['resolveLinks'] = params.resolveLinks\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.validateSchema !== undefined) {\n defs.push('$validateSchema: Boolean')\n args.push('validateSchema: $validateSchema')\n variables['validateSchema'] = params.validateSchema\n }\n\n const includeResolvedLinks = params.resolveLinks && params.resolveLinks.length > 0\n const selectedRecordFields = recordFields({ includePricing: params.includePricing })\n const nodeFields = includeResolvedLinks\n ? `${selectedRecordFields}\\n${RESOLVED_LINKS_FIELDS}`\n : selectedRecordFields\n\n return {\n query: `\n query SearchRecords(${defs.join(', ')}) {\n searchRecords(${args.join(', ')}) {\n ${connectionFields(nodeFields)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchRecordById(params: RecordFieldOptions = {}): { query: string } {\n return {\n query: `\n query FetchRecord($id: UUID!) {\n fetchRecord(id: $id) {\n ${recordFields(params)}\n }\n }\n `,\n }\n },\n\n fetchRecordByIdentifier(params: RecordFieldOptions = {}): { query: string } {\n return {\n query: `\n query FetchRecordByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifier: String!) {\n fetchRecordByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifier: $identifier) {\n ${recordFields(params)}\n }\n }\n `,\n }\n },\n\n fetchRecordsByIdentifier(params: RecordFieldOptions = {}): { query: string } {\n return {\n query: `\n query FetchRecordsByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifiers: [String!]!) {\n fetchRecordsByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifiers: $identifiers) {\n ${recordFields(params)}\n }\n }\n `,\n }\n },\n\n fetchRecords(params: RecordFieldOptions = {}): { query: string } {\n return {\n query: `\n query FetchRecords($ids: [UUID!]!) {\n fetchRecords(ids: $ids) {\n ${recordFields(params)}\n }\n }\n `,\n }\n },\n\n listDatasetRecords(params: ListDatasetRecordsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { datasetId: params.datasetId }\n const args: string[] = ['datasetId: $datasetId']\n const defs: string[] = ['$datasetId: UUID!']\n\n if (params.filter !== undefined) {\n defs.push('$filter: JSON')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.orderBy !== undefined) {\n defs.push('$orderBy: DatasetRecordOrderByInput')\n args.push('orderBy: $orderBy')\n variables['orderBy'] = params.orderBy\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.last !== undefined) {\n defs.push('$last: Int')\n args.push('last: $last')\n variables['last'] = params.last\n }\n if (params.before !== undefined) {\n defs.push('$before: String')\n args.push('before: $before')\n variables['before'] = params.before\n }\n if (params.validateSchema !== undefined) {\n defs.push('$validateSchema: Boolean')\n args.push('validateSchema: $validateSchema')\n variables['validateSchema'] = params.validateSchema\n }\n\n return {\n query: `\n query DatasetRecords(${defs.join(', ')}) {\n datasetRecords(${args.join(', ')}) {\n ${connectionFields(RECORD_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n datasetRecord(params: DatasetRecordLookupParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.id !== undefined) {\n defs.push('$id: UUID')\n args.push('id: $id')\n variables['id'] = params.id\n }\n if (params.datasetId !== undefined) {\n defs.push('$datasetId: UUID')\n args.push('datasetId: $datasetId')\n variables['datasetId'] = params.datasetId\n }\n if (params.identifier !== undefined) {\n defs.push('$identifier: String')\n args.push('identifier: $identifier')\n variables['identifier'] = params.identifier\n }\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.gameKey !== undefined) {\n defs.push('$gameKey: String')\n args.push('gameKey: $gameKey')\n variables['gameKey'] = params.gameKey\n }\n if (params.datasetKey !== undefined) {\n defs.push('$datasetKey: String')\n args.push('datasetKey: $datasetKey')\n variables['datasetKey'] = params.datasetKey\n }\n if (params.recordId !== undefined) {\n defs.push('$recordId: UUID')\n args.push('recordId: $recordId')\n variables['recordId'] = params.recordId\n }\n if (params.resolveLinks !== undefined) {\n defs.push('$resolveLinks: [String!]')\n args.push('resolveLinks: $resolveLinks')\n variables['resolveLinks'] = params.resolveLinks\n }\n if (params.validateSchema !== undefined) {\n defs.push('$validateSchema: Boolean')\n args.push('validateSchema: $validateSchema')\n variables['validateSchema'] = params.validateSchema\n }\n\n const includeResolvedLinks = params.resolveLinks && params.resolveLinks.length > 0\n const selectedRecordFields = recordFields({ includePricing: params.includePricing })\n const fields = includeResolvedLinks\n ? `${selectedRecordFields}\\n${RESOLVED_LINKS_FIELDS}`\n : selectedRecordFields\n\n return {\n query: `\n query DatasetRecord(${defs.join(', ')}) {\n datasetRecord(${args.join(', ')}) {\n ${fields}\n }\n }\n `,\n variables,\n }\n },\n\n upsertDatasetRecords(): { query: string } {\n return {\n query: `\n mutation DatasetRecordsUpsert($input: DatasetRecordsUpsertInput!) {\n datasetRecordsUpsert(input: $input) {\n ${DATASET_RECORDS_UPSERT_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n deleteDatasetRecords(): { query: string } {\n return {\n query: `\n mutation DatasetRecordsDelete($input: DatasetRecordsDeleteInput!) {\n datasetRecordsDelete(input: $input) {\n ${DATASET_RECORD_DELETE_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetRecordDeleteJob(): { query: string } {\n return {\n query: `\n query DatasetRecordDeleteJob($id: UUID!) {\n datasetRecordDeleteJob(id: $id) {\n ${DATASET_RECORD_DELETE_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetRecordDeleteJobs(params: ListDatasetRecordDeleteJobsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.datasetId !== undefined) {\n defs.push('$datasetId: UUID')\n args.push('datasetId: $datasetId')\n variables['datasetId'] = params.datasetId\n }\n if (params.status !== undefined) {\n defs.push('$status: DatasetRecordDeleteJobStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query DatasetRecordDeleteJobs(${defs.join(', ')}) {\n datasetRecordDeleteJobs(${args.join(', ')}) {\n ${connectionFields(DATASET_RECORD_DELETE_JOB_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n datasetImportPreview(): { query: string } {\n return {\n query: `\n query DatasetImportPreview($input: DatasetImportPreviewInput!) {\n datasetImportPreview(input: $input) {\n ${DATASET_IMPORT_PREVIEW_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetImportValidate(): { query: string } {\n return {\n query: `\n query DatasetImportValidate($input: DatasetImportValidateInput!) {\n datasetImportValidate(input: $input) {\n ${BULK_IMPORT_RESULT_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetImportFromFile(): { query: string } {\n return {\n query: `\n mutation DatasetImportFromFile($input: DatasetImportFromFileInput!) {\n datasetImportFromFile(input: $input) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetImportFromPayload(): { query: string } {\n return {\n query: `\n mutation DatasetImportFromPayload($input: DatasetImportFromPayloadInput!) {\n datasetImportFromPayload(input: $input) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n datasetImportFromUrl(): { query: string } {\n return {\n query: `\n mutation DatasetImportFromUrl($input: DatasetImportFromUrlInput!) {\n datasetImportFromUrl(input: $input) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n importJob(): { query: string } {\n return {\n query: `\n query ImportJob($id: UUID!) {\n importJob(id: $id) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n importJobs(params: ListImportJobsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.datasetId !== undefined) {\n defs.push('$datasetId: UUID')\n args.push('datasetId: $datasetId')\n variables['datasetId'] = params.datasetId\n }\n if (params.status !== undefined) {\n defs.push('$status: ImportJobStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query ImportJobs(${defs.join(', ')}) {\n importJobs(${args.join(', ')}) {\n ${connectionFields(IMPORT_JOB_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n importJobCancel(): { query: string } {\n return {\n query: `\n mutation ImportJobCancel($id: UUID!) {\n importJobCancel(id: $id) {\n ${IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n importJobLogs(params: {\n importJobId: string\n level?: string\n datasetKey?: string\n first?: number\n after?: string\n }): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { importJobId: params.importJobId }\n const args: string[] = ['id: $importJobId']\n const logArgs: string[] = []\n const defs: string[] = ['$importJobId: UUID!']\n\n if (params.level !== undefined) {\n defs.push('$level: ImportLogLevel')\n logArgs.push('level: $level')\n variables['level'] = params.level\n }\n if (params.datasetKey !== undefined) {\n defs.push('$datasetKey: String')\n logArgs.push('datasetKey: $datasetKey')\n variables['datasetKey'] = params.datasetKey\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n logArgs.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n logArgs.push('after: $after')\n variables['after'] = params.after\n }\n\n const logArgStr = logArgs.length > 0 ? `(${logArgs.join(', ')})` : ''\n\n return {\n query: `\n query ImportJobLogs(${defs.join(', ')}) {\n importJob(${args.join(', ')}) {\n logs${logArgStr} {\n ${connectionFields(IMPORT_JOB_LOG_FIELDS)}\n }\n }\n }\n `,\n variables,\n }\n },\n\n gameImportPreview(): { query: string } {\n return {\n query: `\n query GameImportPreview($input: GameImportPreviewInput!) {\n gameImportPreview(input: $input) {\n ${GAME_IMPORT_PREVIEW_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportFromFile(): { query: string } {\n return {\n query: `\n mutation GameImportFromFile($input: GameImportFromFileInput!) {\n gameImportFromFile(input: $input) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportFromPayload(): { query: string } {\n return {\n query: `\n mutation GameImportFromPayload($input: GameImportFromPayloadInput!) {\n gameImportFromPayload(input: $input) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportFromUrl(): { query: string } {\n return {\n query: `\n mutation GameImportFromUrl($input: GameImportFromUrlInput!) {\n gameImportFromUrl(input: $input) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportJob(): { query: string } {\n return {\n query: `\n query GameImportJob($id: UUID!) {\n gameImportJob(id: $id) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n gameImportJobs(params: ListGameImportJobsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { gameId: params.gameId }\n const args: string[] = ['gameId: $gameId']\n const defs: string[] = ['$gameId: UUID!']\n\n if (params.status !== undefined) {\n defs.push('$status: ImportJobStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query GameImportJobs(${defs.join(', ')}) {\n gameImportJobs(${args.join(', ')}) {\n ${connectionFields(GAME_IMPORT_JOB_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n gameImportJobCancel(): { query: string } {\n return {\n query: `\n mutation GameImportJobCancel($id: UUID!) {\n gameImportJobCancel(id: $id) {\n ${GAME_IMPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n file(): { query: string } {\n return {\n query: `\n query File($id: UUID!) {\n file(id: $id) {\n ${FILE_FIELDS}\n }\n }\n `,\n }\n },\n\n fileUploadRequest(): { query: string } {\n return {\n query: `\n mutation FileUploadRequest($input: FileUploadInput!) {\n fileUploadRequest(input: $input) {\n ${PRESIGNED_UPLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n fileUploadConfirm(): { query: string } {\n return {\n query: `\n mutation FileUploadConfirm($id: UUID!) {\n fileUploadConfirm(id: $id) {\n ${FILE_FIELDS}\n }\n }\n `,\n }\n },\n\n fileDelete(): { query: string } {\n return {\n query: `\n mutation FileDelete($id: UUID!) {\n fileDelete(id: $id)\n }\n `,\n }\n },\n\n createScanUploadSession(): { query: string } {\n return {\n query: `\n mutation CreateScanUploadSession($input: CreateScanUploadSessionInput!) {\n createScanUploadSession(input: $input) {\n ${PRESIGNED_UPLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n confirmScanUpload(): { query: string } {\n return {\n query: `\n mutation ConfirmScanUpload($input: ConfirmScanUploadInput!) {\n confirmScanUpload(input: $input) {\n ${FILE_FIELDS}\n }\n }\n `,\n }\n },\n\n createScanJob(): { query: string } {\n return {\n query: `\n mutation CreateScanJob($input: CreateScanJobInput!) {\n createScanJob(input: $input) {\n job {\n ${SCAN_JOB_FIELDS}\n }\n created\n }\n }\n `,\n }\n },\n\n scanJob(): { query: string } {\n return {\n query: `\n query ScanJob($id: UUID!) {\n scanJob(id: $id) {\n ${SCAN_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n submitScanFeedback(): { query: string } {\n return {\n query: `\n mutation SubmitScanFeedback($input: SubmitScanFeedbackInput!) {\n submitScanFeedback(input: $input) {\n feedbackId\n jobId\n status\n persisted\n correct\n predictedRecordId\n selectedRecordId\n featureVersion\n message\n }\n }\n `,\n }\n },\n\n scanMetrics(): { query: string } {\n return {\n query: `\n query ScanMetrics($input: ScanMetricsInput!) {\n scanMetrics(input: $input) {\n ${SCAN_METRICS_FIELDS}\n }\n }\n `,\n }\n },\n\n resolveScanTemplate(): { query: string } {\n return {\n query: `\n query ResolveScanTemplate($input: ResolveScanTemplateInput!) {\n resolveScanTemplate(input: $input) {\n template {\n ${SCAN_TEMPLATE_FIELDS}\n }\n warnings {\n ${SCAN_TEMPLATE_WARNING_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n scanTemplates(): { query: string } {\n return {\n query: `\n query ScanTemplates($input: ScanTemplatesInput!) {\n scanTemplates(input: $input) {\n templates {\n ${SCAN_TEMPLATE_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n createScanTemplate(): { query: string } {\n return {\n query: `\n mutation CreateScanTemplate($input: SaveScanTemplateInput!) {\n createScanTemplate(input: $input) {\n template {\n ${SCAN_TEMPLATE_FIELDS}\n }\n warnings {\n ${SCAN_TEMPLATE_WARNING_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n updateScanTemplate(): { query: string } {\n return {\n query: `\n mutation UpdateScanTemplate($id: UUID!, $input: SaveScanTemplateInput!) {\n updateScanTemplate(id: $id, input: $input) {\n template {\n ${SCAN_TEMPLATE_FIELDS}\n }\n warnings {\n ${SCAN_TEMPLATE_WARNING_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n previewScanTemplate(): { query: string } {\n return {\n query: `\n mutation PreviewScanTemplate($input: PreviewScanTemplateInput!) {\n previewScanTemplate(input: $input) {\n warnings {\n ${SCAN_TEMPLATE_WARNING_FIELDS}\n }\n regions {\n ${SCAN_TEMPLATE_PREVIEW_REGION_FIELDS}\n }\n message\n }\n }\n `,\n }\n },\n\n gameScanRegions(): { query: string } {\n return {\n query: `\n query GameScanRegions($publisherSlug: String!, $gameKey: String!, $includeInactive: Boolean) {\n gameScanRegions(publisherSlug: $publisherSlug, gameKey: $gameKey, includeInactive: $includeInactive) {\n ${GAME_SCAN_REGION_FIELDS}\n }\n }\n `,\n }\n },\n\n exportJob(): { query: string } {\n return {\n query: `\n query ExportJob($id: UUID!) {\n exportJob(id: $id) {\n ${EXPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n exportJobs(params: ListExportJobsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { publisherId: params.publisherId }\n const args: string[] = ['publisherId: $publisherId']\n const defs: string[] = ['$publisherId: UUID!']\n\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.datasetId !== undefined) {\n defs.push('$datasetId: UUID')\n args.push('datasetId: $datasetId')\n variables['datasetId'] = params.datasetId\n }\n if (params.status !== undefined) {\n defs.push('$status: ExportJobStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query ExportJobs(${defs.join(', ')}) {\n exportJobs(${args.join(', ')}) {\n ${connectionFields(EXPORT_JOB_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n datasetExport(): { query: string } {\n return {\n query: `\n mutation DatasetExport($input: DatasetExportInput!) {\n datasetExport(input: $input) {\n ${EXPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n exportJobCancel(): { query: string } {\n return {\n query: `\n mutation ExportJobCancel($id: UUID!) {\n exportJobCancel(id: $id) {\n ${EXPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n exportJobRefreshUrl(): { query: string } {\n return {\n query: `\n mutation ExportJobRefreshUrl($id: UUID!) {\n exportJobRefreshUrl(id: $id) {\n ${EXPORT_JOB_FIELDS}\n }\n }\n `,\n }\n },\n\n // Rulesets\n rulesets(params: ListRulesetsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { gameId: params.gameId }\n const args: string[] = ['gameId: $gameId']\n const defs: string[] = ['$gameId: UUID!']\n\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query Rulesets(${defs.join(', ')}) {\n rulesets(${args.join(', ')}) {\n ${connectionFields(RULESET_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n publicRulesets(params: ListPublicRulesetsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { gameId: params.gameId }\n const args: string[] = ['gameId: $gameId']\n const defs: string[] = ['$gameId: UUID!']\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query PublicRulesets(${defs.join(', ')}) {\n publicRulesets(${args.join(', ')}) {\n ${connectionFields(RULESET_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n ruleset(params: RulesetLookupParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.id !== undefined) {\n defs.push('$id: UUID')\n args.push('id: $id')\n variables['id'] = params.id\n }\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.key !== undefined) {\n defs.push('$key: String')\n args.push('key: $key')\n variables['key'] = params.key\n }\n\n return {\n query: `\n query Ruleset(${defs.join(', ')}) {\n ruleset(${args.join(', ')}) {\n ${RULESET_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n rulesetVersions(params: ListRulesetVersionsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { rulesetId: params.rulesetId }\n const args: string[] = ['rulesetId: $rulesetId']\n const defs: string[] = ['$rulesetId: UUID!']\n\n if (params.status !== undefined) {\n defs.push('$status: RulesetVersionStatus')\n args.push('status: $status')\n variables['status'] = params.status\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query RulesetVersions(${defs.join(', ')}) {\n rulesetVersions(${args.join(', ')}) {\n ${connectionFields(RULESET_VERSION_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n rulesetVersion(): { query: string } {\n return {\n query: `\n query RulesetVersion($id: UUID!) {\n rulesetVersion(id: $id) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n rulesetValidationRules(): { query: string } {\n return {\n query: `\n query RulesetValidationRules($gameId: UUID!, $rulesetKey: String!, $rulesetVersionId: UUID) {\n rulesetValidationRules(gameId: $gameId, rulesetKey: $rulesetKey, rulesetVersionId: $rulesetVersionId)\n }\n `,\n }\n },\n\n deckValidationRules(): { query: string } {\n return {\n query: `\n query DeckValidationRules($gameId: UUID!, $rulesetKey: String!, $rulesetVersionId: UUID) {\n deckValidationRules(gameId: $gameId, rulesetKey: $rulesetKey, rulesetVersionId: $rulesetVersionId) {\n ${DECK_VALIDATION_RULES_FIELDS}\n }\n }\n `,\n }\n },\n\n rulesetVersionDraftImportPreview(): { query: string } {\n return {\n query: `\n query RulesetVersionDraftImportPreview($rulesetId: UUID!, $input: RulesetVersionDraftImportFromDatasetRecordInput!) {\n rulesetVersionDraftImportPreview(rulesetId: $rulesetId, input: $input) {\n ${RULESET_VERSION_DRAFT_IMPORT_PREVIEW_FIELDS}\n }\n }\n `,\n }\n },\n\n rulesetValidationImpact(params: RulesetValidationImpactParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = { rulesetVersionId: params.rulesetVersionId }\n const args: string[] = ['rulesetVersionId: $rulesetVersionId']\n const defs: string[] = ['$rulesetVersionId: UUID!']\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n\n return {\n query: `\n query RulesetValidationImpact(${defs.join(', ')}) {\n rulesetValidationImpact(${args.join(', ')}) {\n ${RULESET_VALIDATION_IMPACT_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n createRuleset(): { query: string } {\n return {\n query: `\n mutation RulesetCreate($input: RulesetCreateInput!) {\n rulesetCreate(input: $input) {\n ${RULESET_FIELDS}\n }\n }\n `,\n }\n },\n\n updateRuleset(): { query: string } {\n return {\n query: `\n mutation RulesetUpdate($id: UUID!, $input: RulesetUpdateInput!) {\n rulesetUpdate(id: $id, input: $input) {\n ${RULESET_FIELDS}\n }\n }\n `,\n }\n },\n\n createRulesetVersionDraft(): { query: string } {\n return {\n query: `\n mutation RulesetVersionDraftCreate($rulesetId: UUID!, $input: RulesetVersionDraftCreateInput!) {\n rulesetVersionDraftCreate(rulesetId: $rulesetId, input: $input) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n importRulesetVersionDraftFromDatasetRecord(): { query: string } {\n return {\n query: `\n mutation RulesetVersionDraftImportFromDatasetRecord($rulesetId: UUID!, $input: RulesetVersionDraftImportFromDatasetRecordInput!) {\n rulesetVersionDraftImportFromDatasetRecord(rulesetId: $rulesetId, input: $input) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n updateRulesetVersionDraft(): { query: string } {\n return {\n query: `\n mutation RulesetVersionDraftUpdate($id: UUID!, $input: RulesetVersionDraftUpdateInput!) {\n rulesetVersionDraftUpdate(id: $id, input: $input) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n publishRulesetVersion(): { query: string } {\n return {\n query: `\n mutation RulesetVersionPublish($id: UUID!, $input: RulesetVersionPublishInput) {\n rulesetVersionPublish(id: $id, input: $input) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n activateRulesetVersion(): { query: string } {\n return {\n query: `\n mutation RulesetVersionActivate($id: UUID!) {\n rulesetVersionActivate(id: $id) {\n ${RULESET_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n // Decks\n listMyDecks(params: ListDecksParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query MyDecks${defStr} {\n myDecks${argStr} {\n ${connectionFields(DECK_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n viewerDecks(params: ViewerDecksParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.filter !== undefined) {\n defs.push('$filter: ViewerDecksFilterInput')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query ViewerDecks${defStr} {\n viewerDecks${argStr} {\n ${connectionFields(DECK_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n appDecks(params: AppDecksParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.filter !== undefined) {\n defs.push('$filter: AppDecksFilterInput')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query AppDecks${defStr} {\n appDecks${argStr} {\n ${connectionFields(DECK_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n publicDecks(params: PublicDecksParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.filter !== undefined) {\n defs.push('$filter: PublicDecksFilterInput')\n args.push('filter: $filter')\n variables['filter'] = params.filter\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query PublicDecks${defStr} {\n publicDecks${argStr} {\n ${connectionFields(DECK_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n fetchDeckById(): { query: string } {\n return {\n query: `\n query FetchDeck($id: UUID!) {\n fetchDeck(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deckById(): { query: string } {\n return {\n query: `\n query Deck($id: UUID!, $readState: DeckReadState!, $version: DeckPublishedVersionSelector) {\n deck(id: $id, readState: $readState, version: $version) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n myDeck(): { query: string } {\n return {\n query: `\n query MyDeck($id: UUID!) {\n myDeck(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDeckBySlug(): { query: string } {\n return {\n query: `\n query FetchDeckBySlug($publisherSlug: String!, $gameKey: String!, $slug: String!) {\n fetchDeckBySlug(publisherSlug: $publisherSlug, gameKey: $gameKey, slug: $slug) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deckBySlug(): { query: string } {\n return {\n query: `\n query DeckBySlug($publisherSlug: String!, $gameKey: String!, $slug: String!) {\n deckBySlug(publisherSlug: $publisherSlug, gameKey: $gameKey, slug: $slug) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n fetchDeckByExternalRef(): { query: string } {\n return {\n query: `\n query FetchDeckByExternalRef($externalRef: String!) {\n fetchDeckByExternalRef(externalRef: $externalRef) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deckByExternalRef(): { query: string } {\n return {\n query: `\n query DeckByExternalRef($externalRef: String!, $readState: DeckReadState!, $version: DeckPublishedVersionSelector) {\n deckByExternalRef(externalRef: $externalRef, readState: $readState, version: $version) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deckVersion(): { query: string } {\n return {\n query: `\n query DeckVersion($id: UUID!) {\n deckVersion(id: $id) {\n ${DECK_VERSION_FIELDS}\n }\n }\n `,\n }\n },\n\n deckVersions(params: ListDeckVersionsParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = ['deckId: $deckId']\n const defs: string[] = ['$deckId: UUID!']\n\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n return {\n query: `\n query DeckVersions(${defs.join(', ')}) {\n deckVersions(${args.join(', ')}) {\n ${connectionFields(DECK_VERSION_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n deckDraftDiff(): { query: string } {\n return {\n query: `\n query DeckDraftDiff($id: UUID!) {\n deckDraftDiff(id: $id) {\n ${DECK_DIFF_FIELDS}\n }\n }\n `,\n }\n },\n\n deckVersionDiff(): { query: string } {\n return {\n query: `\n query DeckVersionDiff($fromVersionId: UUID!, $toVersionId: UUID!) {\n deckVersionDiff(fromVersionId: $fromVersionId, toVersionId: $toVersionId) {\n ${DECK_DIFF_FIELDS}\n }\n }\n `,\n }\n },\n\n deckHydrateEntries(): { query: string } {\n return {\n query: `\n query DeckHydrateEntries($input: DeckHydrateEntriesInput!) {\n deckHydrateEntries(input: $input) {\n ${DECK_HYDRATE_ENTRIES_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n deckExport(): { query: string } {\n return {\n query: `\n query DeckExport($id: UUID!, $format: DeckExportFormat!) {\n deckExport(id: $id, format: $format) {\n ${DECK_EXPORT_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n deckValidate(): { query: string } {\n return {\n query: `\n query DeckValidate($id: UUID!, $input: DeckValidateInput) {\n deckValidate(id: $id, input: $input) {\n ${DECK_VALIDATION_FIELDS}\n }\n }\n `,\n }\n },\n\n deckSectionDefinitions(params: DeckSectionDefinitionsParams = {}): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.publisherSlug !== undefined) {\n defs.push('$publisherSlug: String')\n args.push('publisherSlug: $publisherSlug')\n variables['publisherSlug'] = params.publisherSlug\n }\n if (params.gameKey !== undefined) {\n defs.push('$gameKey: String')\n args.push('gameKey: $gameKey')\n variables['gameKey'] = params.gameKey\n }\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n if (params.rulesetKey !== undefined) {\n defs.push('$rulesetKey: String')\n args.push('rulesetKey: $rulesetKey')\n variables['rulesetKey'] = params.rulesetKey\n }\n if (params.rulesetVersionId !== undefined) {\n defs.push('$rulesetVersionId: UUID')\n args.push('rulesetVersionId: $rulesetVersionId')\n variables['rulesetVersionId'] = params.rulesetVersionId\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query DeckSectionDefinitions${defStr} {\n deckSectionDefinitions${argStr} {\n ${DECK_SECTION_DEFINITION_FIELDS}\n }\n }\n `,\n variables,\n }\n },\n\n deckCollaborators(): { query: string } {\n return {\n query: `\n query DeckCollaborators($deckId: UUID!) {\n deckCollaborators(deckId: $deckId) {\n ${DECK_COLLABORATOR_FIELDS}\n }\n }\n `,\n }\n },\n\n deckApiApplicationAccesses(): { query: string } {\n return {\n query: `\n query DeckApiApplicationAccesses($deckId: UUID!, $includeRevoked: Boolean) {\n deckApiApplicationAccesses(deckId: $deckId, includeRevoked: $includeRevoked) {\n ${DECK_API_APPLICATION_ACCESS_FIELDS}\n }\n }\n `,\n }\n },\n\n myDeckApiApplicationAccesses(): { query: string } {\n return {\n query: `\n query MyDeckApiApplicationAccesses($applicationId: UUID) {\n myDeckApiApplicationAccesses(applicationId: $applicationId) {\n ${DECK_API_APPLICATION_ACCESS_FIELDS}\n }\n }\n `,\n }\n },\n\n deckImportFormats(params: ListDeckImportFormatsParams): {\n query: string\n variables: Record<string, unknown>\n } {\n const variables: Record<string, unknown> = {}\n const args: string[] = []\n const defs: string[] = []\n\n if (params.publisherId !== undefined) {\n defs.push('$publisherId: UUID')\n args.push('publisherId: $publisherId')\n variables['publisherId'] = params.publisherId\n }\n if (params.gameId !== undefined) {\n defs.push('$gameId: UUID')\n args.push('gameId: $gameId')\n variables['gameId'] = params.gameId\n }\n\n if (params.includeArchived !== undefined) {\n defs.push('$includeArchived: Boolean')\n args.push('includeArchived: $includeArchived')\n variables['includeArchived'] = params.includeArchived\n }\n if (params.first !== undefined) {\n defs.push('$first: Int')\n args.push('first: $first')\n variables['first'] = params.first\n }\n if (params.after !== undefined) {\n defs.push('$after: String')\n args.push('after: $after')\n variables['after'] = params.after\n }\n\n const defStr = defs.length > 0 ? `(${defs.join(', ')})` : ''\n const argStr = args.length > 0 ? `(${args.join(', ')})` : ''\n\n return {\n query: `\n query DeckImportFormats${defStr} {\n deckImportFormats${argStr} {\n ${connectionFields(DECK_IMPORT_FORMAT_DEFINITION_FIELDS)}\n }\n }\n `,\n variables,\n }\n },\n\n deckImportFormat(): { query: string } {\n return {\n query: `\n query DeckImportFormat($id: UUID, $gameId: UUID, $key: String) {\n deckImportFormat(id: $id, gameId: $gameId, key: $key) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n deckImportFormatTest(): { query: string } {\n return {\n query: `\n query DeckImportFormatTest($input: DeckImportFormatTestInput!) {\n deckImportFormatTest(input: $input) {\n ${DECK_IMPORT_FORMAT_TEST_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n createDeck(): { query: string } {\n return {\n query: `\n mutation DeckCreate($input: DeckCreateInput!) {\n deckCreate(input: $input) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n updateDeck(): { query: string } {\n return {\n query: `\n mutation DeckUpdate($id: UUID!, $input: DeckUpdateInput!) {\n deckUpdate(id: $id, input: $input) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n deleteDeck(): { query: string } {\n return {\n query: `\n mutation DeckDelete($id: UUID!) {\n deckDelete(id: $id)\n }\n `,\n }\n },\n\n archiveDeck(): { query: string } {\n return {\n query: `\n mutation DeckArchive($id: UUID!) {\n deckArchive(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n restoreDeck(): { query: string } {\n return {\n query: `\n mutation DeckRestore($id: UUID!) {\n deckRestore(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n unpublishDeck(): { query: string } {\n return {\n query: `\n mutation DeckUnpublish($id: UUID!) {\n deckUnpublish(id: $id) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n addDeckEntry(): { query: string } {\n return {\n query: `\n mutation DeckEntryAdd($input: DeckEntryAddInput!) {\n deckEntryAdd(input: $input) {\n ${DECK_ENTRY_MUTATION_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n updateDeckEntry(): { query: string } {\n return {\n query: `\n mutation DeckEntryUpdate($id: UUID!, $input: DeckEntryUpdateInput!) {\n deckEntryUpdate(id: $id, input: $input) {\n ${DECK_ENTRY_MUTATION_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n removeDeckEntry(): { query: string } {\n return {\n query: `\n mutation DeckEntryRemove($id: UUID!, $expectedDraftRevision: Int!) {\n deckEntryRemove(id: $id, expectedDraftRevision: $expectedDraftRevision) {\n ${DECK_ENTRY_MUTATION_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n reorderDeckEntries(): { query: string } {\n return {\n query: `\n mutation DeckEntryReorder($deckId: UUID!, $input: DeckEntryReorderInput!) {\n deckEntryReorder(deckId: $deckId, input: $input) {\n ${DECK_ENTRY_REORDER_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n replaceDeckEntries(): { query: string } {\n return {\n query: `\n mutation DeckEntriesReplace($deckId: UUID!, $input: DeckEntriesReplaceInput!) {\n deckEntriesReplace(deckId: $deckId, input: $input) {\n ${DECK_ENTRIES_REPLACE_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n importDeck(): { query: string } {\n return {\n query: `\n mutation DeckImport($input: DeckImportInput!) {\n deckImport(input: $input) {\n ${DECK_IMPORT_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n createDeckImportFormat(): { query: string } {\n return {\n query: `\n mutation DeckImportFormatCreate($input: DeckImportFormatCreateInput!) {\n deckImportFormatCreate(input: $input) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n updateDeckImportFormat(): { query: string } {\n return {\n query: `\n mutation DeckImportFormatUpdate($id: UUID!, $input: DeckImportFormatUpdateInput!) {\n deckImportFormatUpdate(id: $id, input: $input) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n archiveDeckImportFormat(): { query: string } {\n return {\n query: `\n mutation DeckImportFormatArchive($id: UUID!) {\n deckImportFormatArchive(id: $id) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n unarchiveDeckImportFormat(): { query: string } {\n return {\n query: `\n mutation DeckImportFormatUnarchive($id: UUID!) {\n deckImportFormatUnarchive(id: $id) {\n ${DECK_IMPORT_FORMAT_DEFINITION_FIELDS}\n }\n }\n `,\n }\n },\n\n upsertDeckByExternalRef(): { query: string } {\n return {\n query: `\n mutation DeckUpsertByExternalRef($input: DeckUpsertByExternalRefInput!) {\n deckUpsertByExternalRef(input: $input) {\n deck {\n ${DECK_FIELDS}\n }\n created\n idempotentReplay\n }\n }\n `,\n }\n },\n\n claimDeck(): { query: string } {\n return {\n query: `\n mutation DeckClaim($id: UUID!, $input: DeckClaimInput!) {\n deckClaim(id: $id, input: $input) {\n ${DECK_OWNERSHIP_TRANSFER_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n transferDeckOwnership(): { query: string } {\n return {\n query: `\n mutation DeckTransferOwnership($id: UUID!, $input: DeckTransferOwnershipInput!) {\n deckTransferOwnership(id: $id, input: $input) {\n ${DECK_OWNERSHIP_TRANSFER_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n copyDeck(): { query: string } {\n return {\n query: `\n mutation DeckCopy($id: UUID!, $input: DeckCopyInput!) {\n deckCopy(id: $id, input: $input) {\n ${DECK_COPY_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n publishDeck(): { query: string } {\n return {\n query: `\n mutation DeckPublish($id: UUID!, $input: DeckPublishInput!) {\n deckPublish(id: $id, input: $input) {\n ${DECK_PUBLISH_PAYLOAD_FIELDS}\n }\n }\n `,\n }\n },\n\n removeInvalidDeckEntries(): { query: string } {\n return {\n query: `\n mutation DeckRemoveInvalidEntries($id: UUID!, $input: DeckRemoveInvalidEntriesInput!) {\n deckRemoveInvalidEntries(id: $id, input: $input) {\n ${DECK_FIELDS}\n }\n }\n `,\n }\n },\n\n upsertDeckCollaborator(): { query: string } {\n return {\n query: `\n mutation DeckCollaboratorUpsert($deckId: UUID!, $accountId: UUID!, $role: DeckCollaboratorRole!) {\n deckCollaboratorUpsert(deckId: $deckId, accountId: $accountId, role: $role) {\n ${DECK_COLLABORATOR_FIELDS}\n }\n }\n `,\n }\n },\n\n removeDeckCollaborator(): { query: string } {\n return {\n query: `\n mutation DeckCollaboratorRemove($deckId: UUID!, $accountId: UUID!) {\n deckCollaboratorRemove(deckId: $deckId, accountId: $accountId)\n }\n `,\n }\n },\n\n createDeckTokenIssuer(): { query: string } {\n return {\n query: `\n mutation DeckTokenIssuerCreate($input: DeckTokenIssuerCreateInput!) {\n deckTokenIssuerCreate(input: $input) {\n ${DECK_TOKEN_ISSUER_FIELDS}\n }\n }\n `,\n }\n },\n\n revokeDeckTokenIssuer(): { query: string } {\n return {\n query: `\n mutation DeckTokenIssuerRevoke($id: UUID!) {\n deckTokenIssuerRevoke(id: $id)\n }\n `,\n }\n },\n\n revokeDeckTokenIssuerSigningKey(): { query: string } {\n return {\n query: `\n mutation DeckTokenIssuerSigningKeyRevoke($id: UUID!) {\n deckTokenIssuerSigningKeyRevoke(id: $id) {\n ${DECK_TOKEN_ISSUER_FIELDS}\n }\n }\n `,\n }\n },\n\n exchangeDeckToken(): { query: string } {\n return {\n query: `\n mutation DeckTokenExchange($input: DeckTokenExchangeInput!) {\n deckTokenExchange(input: $input) {\n token\n deckToken {\n ${DECK_TOKEN_FIELDS}\n }\n }\n }\n `,\n }\n },\n\n revokeDeckToken(): { query: string } {\n return {\n query: `\n mutation DeckTokenRevoke($id: UUID!) {\n deckTokenRevoke(id: $id)\n }\n `,\n }\n },\n\n grantDeckApiApplicationAccess(): { query: string } {\n return {\n query: `\n mutation DeckApiApplicationAccessGrant($input: DeckAPIApplicationAccessGrantInput!) {\n deckApiApplicationAccessGrant(input: $input) {\n ${DECK_API_APPLICATION_ACCESS_FIELDS}\n }\n }\n `,\n }\n },\n\n revokeDeckApiApplicationAccess(): { query: string } {\n return {\n query: `\n mutation DeckApiApplicationAccessRevoke($deckId: UUID!, $apiApplicationId: UUID!) {\n deckApiApplicationAccessRevoke(deckId: $deckId, apiApplicationId: $apiApplicationId)\n }\n `,\n }\n },\n\n rulesetValidationRulesVariables(\n gameId: string,\n rulesetKey: string,\n rulesetVersionId?: string\n ): Record<string, unknown> {\n return rulesetVersionId === undefined\n ? { gameId, rulesetKey }\n : { gameId, rulesetKey, rulesetVersionId }\n },\n\n rulesetVersionDraftImportPreviewVariables(\n rulesetId: string,\n input: RulesetVersionDraftImportFromDatasetRecordInput\n ): Record<string, unknown> {\n return { rulesetId, input }\n },\n\n rulesetCreateVariables(input: RulesetCreateInput): Record<string, unknown> {\n return { input }\n },\n\n rulesetUpdateVariables(id: string, input: RulesetUpdateInput): Record<string, unknown> {\n return { id, input }\n },\n\n rulesetVersionDraftCreateVariables(\n rulesetId: string,\n input: RulesetVersionDraftCreateInput\n ): Record<string, unknown> {\n return { rulesetId, input }\n },\n\n rulesetVersionDraftImportFromDatasetRecordVariables(\n rulesetId: string,\n input: RulesetVersionDraftImportFromDatasetRecordInput\n ): Record<string, unknown> {\n return { rulesetId, input }\n },\n\n rulesetVersionDraftUpdateVariables(\n id: string,\n input: RulesetVersionDraftUpdateInput\n ): Record<string, unknown> {\n return { id, input }\n },\n\n rulesetVersionPublishVariables(\n id: string,\n input?: RulesetVersionPublishInput\n ): Record<string, unknown> {\n return input === undefined ? { id } : { id, input }\n },\n\n deckCreateVariables(input: DeckCreateInput): Record<string, unknown> {\n return { input: normalizeDeckJsonInput(input) }\n },\n\n deckUpdateVariables(id: string, input: DeckUpdateInput): Record<string, unknown> {\n return { id, input: normalizeDeckJsonInput(input) }\n },\n\n deckEntryAddVariables(input: DeckEntryAddInput): Record<string, unknown> {\n return { input: normalizeDeckJsonInput(input) }\n },\n\n deckEntryUpdateVariables(id: string, input: DeckEntryUpdateInput): Record<string, unknown> {\n return { id, input: normalizeDeckJsonInput(input) }\n },\n\n deckEntryRemoveVariables(id: string, expectedDraftRevision: number): Record<string, unknown> {\n return { id, expectedDraftRevision }\n },\n\n deckEntryReorderVariables(deckId: string, input: DeckEntryReorderInput): Record<string, unknown> {\n return { deckId, input }\n },\n\n deckEntriesReplaceVariables(\n deckId: string,\n input: DeckEntriesReplaceInput\n ): Record<string, unknown> {\n return { deckId, input: normalizeDeckJsonInput(input) }\n },\n\n deckImportVariables(input: DeckImportInput): Record<string, unknown> {\n return { input }\n },\n\n deckImportFormatCreateVariables(input: DeckImportFormatCreateInput): Record<string, unknown> {\n return { input }\n },\n\n deckImportFormatUpdateVariables(\n id: string,\n input: DeckImportFormatUpdateInput\n ): Record<string, unknown> {\n return { id, input }\n },\n\n deckImportFormatTestVariables(input: DeckImportFormatTestInput): Record<string, unknown> {\n return { input }\n },\n\n deckUpsertByExternalRefVariables(input: DeckUpsertByExternalRefInput): Record<string, unknown> {\n return { input: normalizeDeckJsonInput(input) }\n },\n\n deckReadVariables(\n id: string,\n readState: DeckReadState,\n version?: DeckPublishedVersionSelector\n ): Record<string, unknown> {\n return { id, readState, version }\n },\n\n deckExternalRefReadVariables(\n externalRef: string,\n readState: DeckReadState,\n version?: DeckPublishedVersionSelector\n ): Record<string, unknown> {\n return { externalRef, readState, version }\n },\n\n deckClaimVariables(id: string, input: DeckClaimInput): Record<string, unknown> {\n return { id, input }\n },\n\n deckTransferOwnershipVariables(\n id: string,\n input: DeckTransferOwnershipInput\n ): Record<string, unknown> {\n return { id, input }\n },\n\n deckCopyVariables(id: string, input: DeckCopyInput): Record<string, unknown> {\n return { id, input }\n },\n\n deckPublishVariables(id: string, input: DeckPublishInput): Record<string, unknown> {\n return { id, input }\n },\n\n deckValidateVariables(id: string, input?: DeckValidateInput): Record<string, unknown> {\n return input === undefined ? { id } : { id, input }\n },\n\n deckRemoveInvalidEntriesVariables(\n id: string,\n input: DeckRemoveInvalidEntriesInput\n ): Record<string, unknown> {\n return { id, input }\n },\n\n deckHydrateEntriesVariables(input: DeckHydrateEntriesInput): Record<string, unknown> {\n return { input: normalizeDeckJsonInput(input) }\n },\n\n deckExportVariables(id: string, format: DeckExportFormat): Record<string, unknown> {\n return { id, format }\n },\n\n deckVersionDiffVariables(fromVersionId: string, toVersionId: string): Record<string, unknown> {\n return { fromVersionId, toVersionId }\n },\n\n deckCollaboratorVariables(\n deckId: string,\n accountId: string,\n role?: DeckCollaboratorRole\n ): Record<string, unknown> {\n return role === undefined ? { deckId, accountId } : { deckId, accountId, role }\n },\n\n deckTokenIssuerCreateVariables(input: DeckTokenIssuerCreateInput): Record<string, unknown> {\n return { input }\n },\n\n deckTokenExchangeVariables(input: DeckTokenExchangeInput): Record<string, unknown> {\n return { input }\n },\n\n deckApiApplicationAccessesVariables(\n deckId: string,\n includeRevoked?: boolean\n ): Record<string, unknown> {\n return includeRevoked === undefined ? { deckId } : { deckId, includeRevoked }\n },\n\n myDeckApiApplicationAccessesVariables(applicationId?: string): Record<string, unknown> {\n return applicationId === undefined ? {} : { applicationId }\n },\n\n deckApiApplicationAccessGrantVariables(\n input: DeckAPIApplicationAccessGrantInput\n ): Record<string, unknown> {\n return { input }\n },\n\n deckApiApplicationAccessRevokeVariables(\n deckId: string,\n apiApplicationId: string\n ): Record<string, unknown> {\n return { deckId, apiApplicationId }\n },\n\n gameCreateVariables(input: GameCreateInput): Record<string, unknown> {\n return { input }\n },\n\n gameUpdateVariables(id: string, input: GameUpdateInput): Record<string, unknown> {\n return { id, input }\n },\n\n datasetImportPreviewVariables(input: DatasetImportPreviewInput): Record<string, unknown> {\n return { input }\n },\n\n datasetImportValidateVariables(input: DatasetImportValidateInput): Record<string, unknown> {\n return { input }\n },\n\n datasetImportFromFileVariables(input: DatasetImportFromFileInput): Record<string, unknown> {\n return { input }\n },\n\n datasetImportFromPayloadVariables(input: DatasetImportFromPayloadInput): Record<string, unknown> {\n return { input }\n },\n\n datasetImportFromUrlVariables(input: DatasetImportFromUrlInput): Record<string, unknown> {\n return { input }\n },\n\n gameImportPreviewVariables(input: GameImportPreviewInput): Record<string, unknown> {\n return { input }\n },\n\n gameImportFromFileVariables(input: GameImportFromFileInput): Record<string, unknown> {\n return { input }\n },\n\n gameImportFromPayloadVariables(input: GameImportFromPayloadInput): Record<string, unknown> {\n return { input }\n },\n\n gameImportFromUrlVariables(input: GameImportFromUrlInput): Record<string, unknown> {\n return { input }\n },\n\n datasetRecordsUpsertVariables(input: DatasetRecordsUpsertInput): Record<string, unknown> {\n return { input }\n },\n\n datasetRecordsDeleteVariables(input: DatasetRecordsDeleteInput): Record<string, unknown> {\n return { input }\n },\n\n fileUploadRequestVariables(input: FileUploadInput): Record<string, unknown> {\n return { input }\n },\n\n createScanUploadSessionVariables(input: CreateScanUploadSessionInput): Record<string, unknown> {\n return { input }\n },\n\n confirmScanUploadVariables(input: ConfirmScanUploadInput): Record<string, unknown> {\n return { input }\n },\n\n createScanJobVariables(input: CreateScanJobInput): Record<string, unknown> {\n return { input }\n },\n\n submitScanFeedbackVariables(input: SubmitScanFeedbackInput): Record<string, unknown> {\n return { input }\n },\n\n scanMetricsVariables(input: ScanMetricsInput): Record<string, unknown> {\n return { input }\n },\n\n resolveScanTemplateVariables(input: ResolveScanTemplateInput): Record<string, unknown> {\n return { input }\n },\n\n scanTemplatesVariables(input: ScanTemplatesInput): Record<string, unknown> {\n return { input }\n },\n\n createScanTemplateVariables(input: SaveScanTemplateInput): Record<string, unknown> {\n return { input }\n },\n\n updateScanTemplateVariables(id: string, input: SaveScanTemplateInput): Record<string, unknown> {\n return { id, input }\n },\n\n previewScanTemplateVariables(input: PreviewScanTemplateInput): Record<string, unknown> {\n return { input }\n },\n\n gameScanRegionsVariables(\n publisherSlug: string,\n gameKey: string,\n includeInactive?: boolean\n ): Record<string, unknown> {\n return includeInactive === undefined\n ? { publisherSlug, gameKey }\n : { publisherSlug, gameKey, includeInactive }\n },\n\n datasetExportVariables(input: DatasetExportInput): Record<string, unknown> {\n return { input }\n },\n\n // API Key Info\n fetchMe(): { query: string } {\n return {\n query: `\n query FetchMe {\n fetchMe {\n application {\n id\n name\n description\n environment\n apiKeyPrefix\n allowedOrigins\n allowedIps\n createdAt\n updatedAt\n lastUsedAt\n }\n account {\n id\n displayName\n createdAt\n }\n }\n }\n `,\n }\n },\n}\n","/**\n * Collection class for paginated results with async iteration support\n */\n\nimport type { Connection, PageInfo, Edge } from './types.js'\n\nexport type NextPageLoader<T> = (cursor: string) => Promise<Collection<T>>\n\n/**\n * Represents a paginated collection of results from the API.\n * Implements AsyncIterable for easy iteration through all pages.\n */\nexport class Collection<T> implements AsyncIterable<T> {\n /** Total count of matching records across all pages */\n readonly totalCount: number\n\n /** Pagination info */\n readonly pageInfo: PageInfo\n\n /** Items in the current page */\n readonly items: T[]\n\n /** Function to load the next page */\n private nextPageLoader?: NextPageLoader<T>\n\n constructor(\n data: Connection<T>,\n options: {\n nextPageLoader?: NextPageLoader<T>\n itemTransformer?: (node: T) => T\n } = {}\n ) {\n this.totalCount = data.totalCount\n this.pageInfo = data.pageInfo\n this.items = data.edges.map((edge: Edge<T>) =>\n options.itemTransformer ? options.itemTransformer(edge.node) : edge.node\n )\n this.nextPageLoader = options.nextPageLoader\n }\n\n /** Check if there are more pages */\n get hasNextPage(): boolean {\n return this.pageInfo.hasNextPage\n }\n\n /** Check if there are previous pages */\n get hasPreviousPage(): boolean {\n return this.pageInfo.hasPreviousPage\n }\n\n /** Get the cursor for the next page */\n get endCursor(): string | null {\n return this.pageInfo.endCursor\n }\n\n /** Get the cursor for the previous page */\n get startCursor(): string | null {\n return this.pageInfo.startCursor\n }\n\n /** Number of items in the current page */\n get length(): number {\n return this.items.length\n }\n\n /** Check if the current page is empty */\n get isEmpty(): boolean {\n return this.items.length === 0\n }\n\n /** Get the first item */\n get first(): T | undefined {\n return this.items[0]\n }\n\n /** Get the last item */\n get last(): T | undefined {\n return this.items[this.items.length - 1]\n }\n\n /**\n * Fetch the next page of results\n *\n * @returns The next page collection, or null if no more pages\n * @throws Error if no next page loader is configured\n */\n async nextPage(): Promise<Collection<T> | null> {\n if (!this.hasNextPage) {\n return null\n }\n\n if (!this.nextPageLoader) {\n throw new Error('No next page loader configured')\n }\n\n if (!this.endCursor) {\n return null\n }\n\n return this.nextPageLoader(this.endCursor)\n }\n\n /**\n * Async iterator that automatically paginates through all results\n *\n * @example\n * for await (const record of collection) {\n * console.log(record.name)\n * }\n *\n * @example\n * const allRecords = []\n * for await (const record of collection) {\n * allRecords.push(record)\n * }\n */\n async *[Symbol.asyncIterator](): AsyncIterator<T> {\n let current: Collection<T> | null = this\n\n while (current) {\n for (const item of current.items) {\n yield item\n }\n\n if (!current.hasNextPage) {\n break\n }\n\n current = await current.nextPage()\n }\n }\n\n /**\n * Iterate through all results, calling a callback for each item\n * Similar to Array.forEach but async and auto-paginating\n *\n * @example\n * await collection.forEach(async (record) => {\n * await processRecord(record)\n * })\n */\n async forEach(callback: (item: T, index: number) => void | Promise<void>): Promise<void> {\n let index = 0\n for await (const item of this) {\n await callback(item, index++)\n }\n }\n\n /**\n * Map over all results, returning a new array\n * Auto-paginates through all pages\n *\n * @example\n * const names = await collection.map(record => record.name)\n */\n async map<U>(callback: (item: T, index: number) => U | Promise<U>): Promise<U[]> {\n const results: U[] = []\n let index = 0\n for await (const item of this) {\n results.push(await callback(item, index++))\n }\n return results\n }\n\n /**\n * Filter results, returning items that match the predicate\n * Auto-paginates through all pages\n *\n * @example\n * const rareCards = await collection.filter(card => card.rarity === 'rare')\n */\n async filter(predicate: (item: T, index: number) => boolean | Promise<boolean>): Promise<T[]> {\n const results: T[] = []\n let index = 0\n for await (const item of this) {\n if (await predicate(item, index++)) {\n results.push(item)\n }\n }\n return results\n }\n\n /**\n * Find the first item matching a predicate\n * Stops iterating once found\n *\n * @example\n * const pikachu = await collection.find(card => card.name === 'Pikachu')\n */\n async find(\n predicate: (item: T, index: number) => boolean | Promise<boolean>\n ): Promise<T | undefined> {\n let index = 0\n for await (const item of this) {\n if (await predicate(item, index++)) {\n return item\n }\n }\n return undefined\n }\n\n /**\n * Take the first n items\n * Stops fetching pages once n items are collected\n *\n * @example\n * const first100 = await collection.take(100)\n */\n async take(n: number): Promise<T[]> {\n const results: T[] = []\n for await (const item of this) {\n if (results.length >= n) {\n break\n }\n results.push(item)\n }\n return results\n }\n\n /**\n * Collect all items into an array\n * Auto-paginates through all pages\n *\n * @example\n * const allRecords = await collection.toArray()\n */\n async toArray(): Promise<T[]> {\n const results: T[] = []\n for await (const item of this) {\n results.push(item)\n }\n return results\n }\n\n /**\n * Iterate in batches (similar to Rails find_in_batches)\n *\n * @example\n * for await (const batch of collection.batches()) {\n * await processBatch(batch)\n * }\n */\n async *batches(): AsyncGenerator<T[]> {\n let current: Collection<T> | null = this\n\n while (current) {\n if (current.items.length > 0) {\n yield current.items\n }\n\n if (!current.hasNextPage) {\n break\n }\n\n current = await current.nextPage()\n }\n }\n\n /**\n * Iterate one item at a time with batched fetching (similar to Rails find_each)\n *\n * @example\n * for await (const item of collection.each()) {\n * await processItem(item)\n * }\n */\n each(): AsyncIterable<T> {\n return this\n }\n}\n"],"mappings":"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","names":[]}
package/dist/index.d.cts CHANGED
@@ -1499,6 +1499,12 @@ interface DeckImportInput {
1499
1499
  replace?: boolean;
1500
1500
  dryRun?: boolean;
1501
1501
  expectedDraftRevision?: number;
1502
+ candidateSelections?: DeckImportCandidateSelectionInput[];
1503
+ }
1504
+ interface DeckImportCandidateSelectionInput {
1505
+ lineNumber: number;
1506
+ raw?: string;
1507
+ recordId: string;
1502
1508
  }
1503
1509
  interface DeckImportEntry {
1504
1510
  lineNumber: number;
@@ -1617,6 +1623,7 @@ interface DeckImportPayload {
1617
1623
  interface DeckHydrateEntriesInput {
1618
1624
  deckId: string;
1619
1625
  entries: DeckEntryInput[];
1626
+ candidateSelections?: DeckImportCandidateSelectionInput[];
1620
1627
  }
1621
1628
  interface DeckHydrateEntriesPayload {
1622
1629
  entries: DeckImportEntry[];
@@ -2920,4 +2927,4 @@ declare class Collection<T> implements AsyncIterable<T> {
2920
2927
  each(): AsyncIterable<T>;
2921
2928
  }
2922
2929
 
2923
- export { type APIAccount, type APIApplication, type APIKeyInfo, type AppDecksFilterInput, type AppDecksParams, AuthenticationError, type BulkCreateResult, type BulkImportResult, type BulkInsertMode, type BulkRecordError, type Cache, type CardDBConfig, CardDBError, Collection, type ConfirmScanUploadInput, type Connection, ConnectionError, type CreateScanJobInput, type CreateScanUploadSessionInput, type CsvOptions, type Dataset, type DatasetExportInput, type DatasetFilterValue, type DatasetFilterValueConnection, type DatasetFilterValueEdge, type DatasetImportFromFileInput, type DatasetImportFromPayloadInput, type DatasetImportFromUrlInput, type DatasetImportPreview, type DatasetImportPreviewInput, type DatasetImportPreviewResult, type DatasetImportRunInput, type DatasetImportValidateInput, type DatasetPurpose, type DatasetRecord, type DatasetRecordDeleteJob, type DatasetRecordDeleteJobConnection, type DatasetRecordDeleteJobResult, type DatasetRecordDeleteJobStatus, type DatasetRecordDeleteResultStatus, type DatasetRecordDeleteTargetType, type DatasetRecordsDeleteInput, type DatasetRecordsUpsertInput, type DatasetRecordsUpsertPayload, type DatasetRef, type DatasetSchema, type DatasetVisibility, type Deck, type DeckAPIApplicationAccess, type DeckAPIApplicationAccessGrantInput, type DeckAPIApplicationAccessGrantSource, type DeckAPIApplicationAccessRole, type DeckAccessApplication, type DeckAccessMode, type DeckAppAccessRetention, type DeckClaimInput, type DeckCollaborator, type DeckCollaboratorRole, type DeckCopyInput, type DeckCopyPayload, type DeckCreateInput, type DeckDiff, type DeckDiscoverability, type DeckEntriesReplaceInput, type DeckEntriesReplacePayload, type DeckEntry, type DeckEntryAddInput, type DeckEntryInput, type DeckEntryMutationPayload, type DeckEntryReorderInput, type DeckEntryReorderItemInput, type DeckEntryReorderPayload, type DeckEntryUpdateInput, type DeckEnvironment, type DeckExportFormat, type DeckExportPayload, type DeckHydrateEntriesInput, type DeckHydrateEntriesPayload, type DeckImportAmbiguousEntry, type DeckImportCandidate, type DeckImportEntry, type DeckImportFormat, type DeckImportFormatCreateInput, type DeckImportFormatDefinition, type DeckImportFormatDefinitionConnection, type DeckImportFormatDetection, type DeckImportFormatTestInput, type DeckImportFormatTestPayload, type DeckImportFormatUpdateInput, type DeckImportInput, type DeckImportIssue, type DeckImportPayload, type DeckImportUnmatchedEntry, type DeckOwnerType, type DeckOwnershipTransferPayload, type DeckPublishInput, type DeckPublishPayload, type DeckPublishedVersionSelector, type DeckReadState, type DeckRemoveInvalidEntriesInput, type DeckRepresentation, type DeckSectionDefinition, type DeckSectionDefinitionsParams, type DeckState, type DeckToken, type DeckTokenExchangeInput, type DeckTokenExchangePayload, type DeckTokenIssuer, type DeckTokenIssuerCreateInput, type DeckTokenIssuerSigningKeyInput, type DeckTokenScope, type DeckTokenSigningAlgorithm, type DeckTransferOwnershipInput, type DeckUpdateInput, type DeckUpsertByExternalRefInput, type DeckUpsertByExternalRefPayload, type DeckValidateInput, type DeckValidatedAgainst, type DeckValidation, type DeckValidationAffectedEntry, type DeckValidationIssue, type DeckValidationRules, type DeckValidationSeverity, type DeckVersion, type DeckVersionConnection, type DeckVisibility, type Edge, type ExportFormat, type ExportJob, type ExportJobConnection, type ExportJobStatus, type FieldInfo, type FieldMapping, type FieldMappingOverrideInput, type FieldMappingStatus, type FieldType, type File, type FileInfo, type FileStatus, type FileUploadInput, FilterBuilder, type FilterBuilderInterface, type FilterCondition, type FilterInput, type FilterOperatorValue, type FilterValue, type Game, type GameCreateInput, type GameImportDatasetStatus, type GameImportFromFileInput, type GameImportFromPayloadInput, type GameImportFromUrlInput, type GameImportJob, type GameImportJobConnection, type GameImportPreview, type GameImportPreviewInput, type GameImportRunInput, type GameRef, type GameScanRegion, type GameUpdateInput, type GameVisibility, GraphQLError, type GraphQLErrorInfo, type HydrateDeckEntryInput, type HydratedDeckEntry, type ImportFormat, type ImportJob, type ImportJobAsset, type ImportJobAssetInput, type ImportJobConnection, type ImportJobLog, type ImportJobLogConnection, type ImportJobStatus, type ImportLogLevel, type ImportMode, type ImportOptions, type ImportStats, type ImportValidationError, type ImportWarning, type ImportWarningSeverity, type InferredChildField, type LinkFieldInfo, LinkResolutionError, type LinkResolutionFailure, type ListDeckImportFormatsParams, type ListDeckVersionsParams, type ListDecksParams, type ListPublicRulesetsParams, type ListRulesetVersionsParams, type ListRulesetsParams, type LogLevel, type Logger, type NextPageLoader, NotFoundError, type ObjectField, type OnConflict, type PageInfo, type PresignedUpload, type PreviewScanTemplateInput, type PublicDecksFilterInput, type PublicDecksParams, type Publisher, type PublisherRef, type PublisherStatus, QueryBuilder, RateLimitError, type RateLimitInfo, type ResolveScanTemplateInput, type ResolvedLink, type ResourceType, RestrictedError, type Ruleset, type RulesetConnection, type RulesetCreateInput, type RulesetLookupParams, type RulesetUpdateInput, type RulesetValidationImpact, type RulesetValidationImpactDeck, type RulesetValidationImpactParams, type RulesetValidationRulesParams, type RulesetVersion, type RulesetVersionConnection, type RulesetVersionDraftCreateInput, type RulesetVersionDraftImportFromDatasetRecordInput, type RulesetVersionDraftImportPreview, type RulesetVersionDraftUpdateInput, type RulesetVersionPublishInput, type RulesetVersionStatus, type SaveScanTemplateInput, type ScanBestMatch, type ScanCandidate, type ScanFeatureVersionMetrics, type ScanFeedbackMetrics, type ScanFeedbackPayload, type ScanJob, type ScanJobError, type ScanJobMetrics, type ScanJobPayload, type ScanJobStatus, type ScanMetrics, type ScanMetricsInput, type ScanStageMetrics, type ScanTemplate, type ScanTemplateList, type ScanTemplatePayload, type ScanTemplatePreview, type ScanTemplateRegion, type ScanTemplateRegionInput, type ScanTemplateRegionPreview, type ScanTemplateResolution, type ScanTemplateWarning, type ScanTemplatesInput, type ScanWebhookState, type SearchDatasetsParams, type SearchGamesParams, type SearchPublishersParams, type SearchRecordsParams, ServerError, type SubmitScanFeedbackInput, type TCGPlayerPrice, type TCGPlayerPricing, TimeoutError, type UploadPurpose, ValidationError, type ViewerDecksFilterInput, type ViewerDecksParams, contains, eq, gt, gte, ilike, isNotNull, isNull, like, lt, lte, neq, notWithin, resolveFilter, within };
2930
+ export { type APIAccount, type APIApplication, type APIKeyInfo, type AppDecksFilterInput, type AppDecksParams, AuthenticationError, type BulkCreateResult, type BulkImportResult, type BulkInsertMode, type BulkRecordError, type Cache, type CardDBConfig, CardDBError, Collection, type ConfirmScanUploadInput, type Connection, ConnectionError, type CreateScanJobInput, type CreateScanUploadSessionInput, type CsvOptions, type Dataset, type DatasetExportInput, type DatasetFilterValue, type DatasetFilterValueConnection, type DatasetFilterValueEdge, type DatasetImportFromFileInput, type DatasetImportFromPayloadInput, type DatasetImportFromUrlInput, type DatasetImportPreview, type DatasetImportPreviewInput, type DatasetImportPreviewResult, type DatasetImportRunInput, type DatasetImportValidateInput, type DatasetPurpose, type DatasetRecord, type DatasetRecordDeleteJob, type DatasetRecordDeleteJobConnection, type DatasetRecordDeleteJobResult, type DatasetRecordDeleteJobStatus, type DatasetRecordDeleteResultStatus, type DatasetRecordDeleteTargetType, type DatasetRecordsDeleteInput, type DatasetRecordsUpsertInput, type DatasetRecordsUpsertPayload, type DatasetRef, type DatasetSchema, type DatasetVisibility, type Deck, type DeckAPIApplicationAccess, type DeckAPIApplicationAccessGrantInput, type DeckAPIApplicationAccessGrantSource, type DeckAPIApplicationAccessRole, type DeckAccessApplication, type DeckAccessMode, type DeckAppAccessRetention, type DeckClaimInput, type DeckCollaborator, type DeckCollaboratorRole, type DeckCopyInput, type DeckCopyPayload, type DeckCreateInput, type DeckDiff, type DeckDiscoverability, type DeckEntriesReplaceInput, type DeckEntriesReplacePayload, type DeckEntry, type DeckEntryAddInput, type DeckEntryInput, type DeckEntryMutationPayload, type DeckEntryReorderInput, type DeckEntryReorderItemInput, type DeckEntryReorderPayload, type DeckEntryUpdateInput, type DeckEnvironment, type DeckExportFormat, type DeckExportPayload, type DeckHydrateEntriesInput, type DeckHydrateEntriesPayload, type DeckImportAmbiguousEntry, type DeckImportCandidate, type DeckImportCandidateSelectionInput, type DeckImportEntry, type DeckImportFormat, type DeckImportFormatCreateInput, type DeckImportFormatDefinition, type DeckImportFormatDefinitionConnection, type DeckImportFormatDetection, type DeckImportFormatTestInput, type DeckImportFormatTestPayload, type DeckImportFormatUpdateInput, type DeckImportInput, type DeckImportIssue, type DeckImportPayload, type DeckImportUnmatchedEntry, type DeckOwnerType, type DeckOwnershipTransferPayload, type DeckPublishInput, type DeckPublishPayload, type DeckPublishedVersionSelector, type DeckReadState, type DeckRemoveInvalidEntriesInput, type DeckRepresentation, type DeckSectionDefinition, type DeckSectionDefinitionsParams, type DeckState, type DeckToken, type DeckTokenExchangeInput, type DeckTokenExchangePayload, type DeckTokenIssuer, type DeckTokenIssuerCreateInput, type DeckTokenIssuerSigningKeyInput, type DeckTokenScope, type DeckTokenSigningAlgorithm, type DeckTransferOwnershipInput, type DeckUpdateInput, type DeckUpsertByExternalRefInput, type DeckUpsertByExternalRefPayload, type DeckValidateInput, type DeckValidatedAgainst, type DeckValidation, type DeckValidationAffectedEntry, type DeckValidationIssue, type DeckValidationRules, type DeckValidationSeverity, type DeckVersion, type DeckVersionConnection, type DeckVisibility, type Edge, type ExportFormat, type ExportJob, type ExportJobConnection, type ExportJobStatus, type FieldInfo, type FieldMapping, type FieldMappingOverrideInput, type FieldMappingStatus, type FieldType, type File, type FileInfo, type FileStatus, type FileUploadInput, FilterBuilder, type FilterBuilderInterface, type FilterCondition, type FilterInput, type FilterOperatorValue, type FilterValue, type Game, type GameCreateInput, type GameImportDatasetStatus, type GameImportFromFileInput, type GameImportFromPayloadInput, type GameImportFromUrlInput, type GameImportJob, type GameImportJobConnection, type GameImportPreview, type GameImportPreviewInput, type GameImportRunInput, type GameRef, type GameScanRegion, type GameUpdateInput, type GameVisibility, GraphQLError, type GraphQLErrorInfo, type HydrateDeckEntryInput, type HydratedDeckEntry, type ImportFormat, type ImportJob, type ImportJobAsset, type ImportJobAssetInput, type ImportJobConnection, type ImportJobLog, type ImportJobLogConnection, type ImportJobStatus, type ImportLogLevel, type ImportMode, type ImportOptions, type ImportStats, type ImportValidationError, type ImportWarning, type ImportWarningSeverity, type InferredChildField, type LinkFieldInfo, LinkResolutionError, type LinkResolutionFailure, type ListDeckImportFormatsParams, type ListDeckVersionsParams, type ListDecksParams, type ListPublicRulesetsParams, type ListRulesetVersionsParams, type ListRulesetsParams, type LogLevel, type Logger, type NextPageLoader, NotFoundError, type ObjectField, type OnConflict, type PageInfo, type PresignedUpload, type PreviewScanTemplateInput, type PublicDecksFilterInput, type PublicDecksParams, type Publisher, type PublisherRef, type PublisherStatus, QueryBuilder, RateLimitError, type RateLimitInfo, type ResolveScanTemplateInput, type ResolvedLink, type ResourceType, RestrictedError, type Ruleset, type RulesetConnection, type RulesetCreateInput, type RulesetLookupParams, type RulesetUpdateInput, type RulesetValidationImpact, type RulesetValidationImpactDeck, type RulesetValidationImpactParams, type RulesetValidationRulesParams, type RulesetVersion, type RulesetVersionConnection, type RulesetVersionDraftCreateInput, type RulesetVersionDraftImportFromDatasetRecordInput, type RulesetVersionDraftImportPreview, type RulesetVersionDraftUpdateInput, type RulesetVersionPublishInput, type RulesetVersionStatus, type SaveScanTemplateInput, type ScanBestMatch, type ScanCandidate, type ScanFeatureVersionMetrics, type ScanFeedbackMetrics, type ScanFeedbackPayload, type ScanJob, type ScanJobError, type ScanJobMetrics, type ScanJobPayload, type ScanJobStatus, type ScanMetrics, type ScanMetricsInput, type ScanStageMetrics, type ScanTemplate, type ScanTemplateList, type ScanTemplatePayload, type ScanTemplatePreview, type ScanTemplateRegion, type ScanTemplateRegionInput, type ScanTemplateRegionPreview, type ScanTemplateResolution, type ScanTemplateWarning, type ScanTemplatesInput, type ScanWebhookState, type SearchDatasetsParams, type SearchGamesParams, type SearchPublishersParams, type SearchRecordsParams, ServerError, type SubmitScanFeedbackInput, type TCGPlayerPrice, type TCGPlayerPricing, TimeoutError, type UploadPurpose, ValidationError, type ViewerDecksFilterInput, type ViewerDecksParams, contains, eq, gt, gte, ilike, isNotNull, isNull, like, lt, lte, neq, notWithin, resolveFilter, within };
package/dist/index.d.ts CHANGED
@@ -1499,6 +1499,12 @@ interface DeckImportInput {
1499
1499
  replace?: boolean;
1500
1500
  dryRun?: boolean;
1501
1501
  expectedDraftRevision?: number;
1502
+ candidateSelections?: DeckImportCandidateSelectionInput[];
1503
+ }
1504
+ interface DeckImportCandidateSelectionInput {
1505
+ lineNumber: number;
1506
+ raw?: string;
1507
+ recordId: string;
1502
1508
  }
1503
1509
  interface DeckImportEntry {
1504
1510
  lineNumber: number;
@@ -1617,6 +1623,7 @@ interface DeckImportPayload {
1617
1623
  interface DeckHydrateEntriesInput {
1618
1624
  deckId: string;
1619
1625
  entries: DeckEntryInput[];
1626
+ candidateSelections?: DeckImportCandidateSelectionInput[];
1620
1627
  }
1621
1628
  interface DeckHydrateEntriesPayload {
1622
1629
  entries: DeckImportEntry[];
@@ -2920,4 +2927,4 @@ declare class Collection<T> implements AsyncIterable<T> {
2920
2927
  each(): AsyncIterable<T>;
2921
2928
  }
2922
2929
 
2923
- export { type APIAccount, type APIApplication, type APIKeyInfo, type AppDecksFilterInput, type AppDecksParams, AuthenticationError, type BulkCreateResult, type BulkImportResult, type BulkInsertMode, type BulkRecordError, type Cache, type CardDBConfig, CardDBError, Collection, type ConfirmScanUploadInput, type Connection, ConnectionError, type CreateScanJobInput, type CreateScanUploadSessionInput, type CsvOptions, type Dataset, type DatasetExportInput, type DatasetFilterValue, type DatasetFilterValueConnection, type DatasetFilterValueEdge, type DatasetImportFromFileInput, type DatasetImportFromPayloadInput, type DatasetImportFromUrlInput, type DatasetImportPreview, type DatasetImportPreviewInput, type DatasetImportPreviewResult, type DatasetImportRunInput, type DatasetImportValidateInput, type DatasetPurpose, type DatasetRecord, type DatasetRecordDeleteJob, type DatasetRecordDeleteJobConnection, type DatasetRecordDeleteJobResult, type DatasetRecordDeleteJobStatus, type DatasetRecordDeleteResultStatus, type DatasetRecordDeleteTargetType, type DatasetRecordsDeleteInput, type DatasetRecordsUpsertInput, type DatasetRecordsUpsertPayload, type DatasetRef, type DatasetSchema, type DatasetVisibility, type Deck, type DeckAPIApplicationAccess, type DeckAPIApplicationAccessGrantInput, type DeckAPIApplicationAccessGrantSource, type DeckAPIApplicationAccessRole, type DeckAccessApplication, type DeckAccessMode, type DeckAppAccessRetention, type DeckClaimInput, type DeckCollaborator, type DeckCollaboratorRole, type DeckCopyInput, type DeckCopyPayload, type DeckCreateInput, type DeckDiff, type DeckDiscoverability, type DeckEntriesReplaceInput, type DeckEntriesReplacePayload, type DeckEntry, type DeckEntryAddInput, type DeckEntryInput, type DeckEntryMutationPayload, type DeckEntryReorderInput, type DeckEntryReorderItemInput, type DeckEntryReorderPayload, type DeckEntryUpdateInput, type DeckEnvironment, type DeckExportFormat, type DeckExportPayload, type DeckHydrateEntriesInput, type DeckHydrateEntriesPayload, type DeckImportAmbiguousEntry, type DeckImportCandidate, type DeckImportEntry, type DeckImportFormat, type DeckImportFormatCreateInput, type DeckImportFormatDefinition, type DeckImportFormatDefinitionConnection, type DeckImportFormatDetection, type DeckImportFormatTestInput, type DeckImportFormatTestPayload, type DeckImportFormatUpdateInput, type DeckImportInput, type DeckImportIssue, type DeckImportPayload, type DeckImportUnmatchedEntry, type DeckOwnerType, type DeckOwnershipTransferPayload, type DeckPublishInput, type DeckPublishPayload, type DeckPublishedVersionSelector, type DeckReadState, type DeckRemoveInvalidEntriesInput, type DeckRepresentation, type DeckSectionDefinition, type DeckSectionDefinitionsParams, type DeckState, type DeckToken, type DeckTokenExchangeInput, type DeckTokenExchangePayload, type DeckTokenIssuer, type DeckTokenIssuerCreateInput, type DeckTokenIssuerSigningKeyInput, type DeckTokenScope, type DeckTokenSigningAlgorithm, type DeckTransferOwnershipInput, type DeckUpdateInput, type DeckUpsertByExternalRefInput, type DeckUpsertByExternalRefPayload, type DeckValidateInput, type DeckValidatedAgainst, type DeckValidation, type DeckValidationAffectedEntry, type DeckValidationIssue, type DeckValidationRules, type DeckValidationSeverity, type DeckVersion, type DeckVersionConnection, type DeckVisibility, type Edge, type ExportFormat, type ExportJob, type ExportJobConnection, type ExportJobStatus, type FieldInfo, type FieldMapping, type FieldMappingOverrideInput, type FieldMappingStatus, type FieldType, type File, type FileInfo, type FileStatus, type FileUploadInput, FilterBuilder, type FilterBuilderInterface, type FilterCondition, type FilterInput, type FilterOperatorValue, type FilterValue, type Game, type GameCreateInput, type GameImportDatasetStatus, type GameImportFromFileInput, type GameImportFromPayloadInput, type GameImportFromUrlInput, type GameImportJob, type GameImportJobConnection, type GameImportPreview, type GameImportPreviewInput, type GameImportRunInput, type GameRef, type GameScanRegion, type GameUpdateInput, type GameVisibility, GraphQLError, type GraphQLErrorInfo, type HydrateDeckEntryInput, type HydratedDeckEntry, type ImportFormat, type ImportJob, type ImportJobAsset, type ImportJobAssetInput, type ImportJobConnection, type ImportJobLog, type ImportJobLogConnection, type ImportJobStatus, type ImportLogLevel, type ImportMode, type ImportOptions, type ImportStats, type ImportValidationError, type ImportWarning, type ImportWarningSeverity, type InferredChildField, type LinkFieldInfo, LinkResolutionError, type LinkResolutionFailure, type ListDeckImportFormatsParams, type ListDeckVersionsParams, type ListDecksParams, type ListPublicRulesetsParams, type ListRulesetVersionsParams, type ListRulesetsParams, type LogLevel, type Logger, type NextPageLoader, NotFoundError, type ObjectField, type OnConflict, type PageInfo, type PresignedUpload, type PreviewScanTemplateInput, type PublicDecksFilterInput, type PublicDecksParams, type Publisher, type PublisherRef, type PublisherStatus, QueryBuilder, RateLimitError, type RateLimitInfo, type ResolveScanTemplateInput, type ResolvedLink, type ResourceType, RestrictedError, type Ruleset, type RulesetConnection, type RulesetCreateInput, type RulesetLookupParams, type RulesetUpdateInput, type RulesetValidationImpact, type RulesetValidationImpactDeck, type RulesetValidationImpactParams, type RulesetValidationRulesParams, type RulesetVersion, type RulesetVersionConnection, type RulesetVersionDraftCreateInput, type RulesetVersionDraftImportFromDatasetRecordInput, type RulesetVersionDraftImportPreview, type RulesetVersionDraftUpdateInput, type RulesetVersionPublishInput, type RulesetVersionStatus, type SaveScanTemplateInput, type ScanBestMatch, type ScanCandidate, type ScanFeatureVersionMetrics, type ScanFeedbackMetrics, type ScanFeedbackPayload, type ScanJob, type ScanJobError, type ScanJobMetrics, type ScanJobPayload, type ScanJobStatus, type ScanMetrics, type ScanMetricsInput, type ScanStageMetrics, type ScanTemplate, type ScanTemplateList, type ScanTemplatePayload, type ScanTemplatePreview, type ScanTemplateRegion, type ScanTemplateRegionInput, type ScanTemplateRegionPreview, type ScanTemplateResolution, type ScanTemplateWarning, type ScanTemplatesInput, type ScanWebhookState, type SearchDatasetsParams, type SearchGamesParams, type SearchPublishersParams, type SearchRecordsParams, ServerError, type SubmitScanFeedbackInput, type TCGPlayerPrice, type TCGPlayerPricing, TimeoutError, type UploadPurpose, ValidationError, type ViewerDecksFilterInput, type ViewerDecksParams, contains, eq, gt, gte, ilike, isNotNull, isNull, like, lt, lte, neq, notWithin, resolveFilter, within };
2930
+ export { type APIAccount, type APIApplication, type APIKeyInfo, type AppDecksFilterInput, type AppDecksParams, AuthenticationError, type BulkCreateResult, type BulkImportResult, type BulkInsertMode, type BulkRecordError, type Cache, type CardDBConfig, CardDBError, Collection, type ConfirmScanUploadInput, type Connection, ConnectionError, type CreateScanJobInput, type CreateScanUploadSessionInput, type CsvOptions, type Dataset, type DatasetExportInput, type DatasetFilterValue, type DatasetFilterValueConnection, type DatasetFilterValueEdge, type DatasetImportFromFileInput, type DatasetImportFromPayloadInput, type DatasetImportFromUrlInput, type DatasetImportPreview, type DatasetImportPreviewInput, type DatasetImportPreviewResult, type DatasetImportRunInput, type DatasetImportValidateInput, type DatasetPurpose, type DatasetRecord, type DatasetRecordDeleteJob, type DatasetRecordDeleteJobConnection, type DatasetRecordDeleteJobResult, type DatasetRecordDeleteJobStatus, type DatasetRecordDeleteResultStatus, type DatasetRecordDeleteTargetType, type DatasetRecordsDeleteInput, type DatasetRecordsUpsertInput, type DatasetRecordsUpsertPayload, type DatasetRef, type DatasetSchema, type DatasetVisibility, type Deck, type DeckAPIApplicationAccess, type DeckAPIApplicationAccessGrantInput, type DeckAPIApplicationAccessGrantSource, type DeckAPIApplicationAccessRole, type DeckAccessApplication, type DeckAccessMode, type DeckAppAccessRetention, type DeckClaimInput, type DeckCollaborator, type DeckCollaboratorRole, type DeckCopyInput, type DeckCopyPayload, type DeckCreateInput, type DeckDiff, type DeckDiscoverability, type DeckEntriesReplaceInput, type DeckEntriesReplacePayload, type DeckEntry, type DeckEntryAddInput, type DeckEntryInput, type DeckEntryMutationPayload, type DeckEntryReorderInput, type DeckEntryReorderItemInput, type DeckEntryReorderPayload, type DeckEntryUpdateInput, type DeckEnvironment, type DeckExportFormat, type DeckExportPayload, type DeckHydrateEntriesInput, type DeckHydrateEntriesPayload, type DeckImportAmbiguousEntry, type DeckImportCandidate, type DeckImportCandidateSelectionInput, type DeckImportEntry, type DeckImportFormat, type DeckImportFormatCreateInput, type DeckImportFormatDefinition, type DeckImportFormatDefinitionConnection, type DeckImportFormatDetection, type DeckImportFormatTestInput, type DeckImportFormatTestPayload, type DeckImportFormatUpdateInput, type DeckImportInput, type DeckImportIssue, type DeckImportPayload, type DeckImportUnmatchedEntry, type DeckOwnerType, type DeckOwnershipTransferPayload, type DeckPublishInput, type DeckPublishPayload, type DeckPublishedVersionSelector, type DeckReadState, type DeckRemoveInvalidEntriesInput, type DeckRepresentation, type DeckSectionDefinition, type DeckSectionDefinitionsParams, type DeckState, type DeckToken, type DeckTokenExchangeInput, type DeckTokenExchangePayload, type DeckTokenIssuer, type DeckTokenIssuerCreateInput, type DeckTokenIssuerSigningKeyInput, type DeckTokenScope, type DeckTokenSigningAlgorithm, type DeckTransferOwnershipInput, type DeckUpdateInput, type DeckUpsertByExternalRefInput, type DeckUpsertByExternalRefPayload, type DeckValidateInput, type DeckValidatedAgainst, type DeckValidation, type DeckValidationAffectedEntry, type DeckValidationIssue, type DeckValidationRules, type DeckValidationSeverity, type DeckVersion, type DeckVersionConnection, type DeckVisibility, type Edge, type ExportFormat, type ExportJob, type ExportJobConnection, type ExportJobStatus, type FieldInfo, type FieldMapping, type FieldMappingOverrideInput, type FieldMappingStatus, type FieldType, type File, type FileInfo, type FileStatus, type FileUploadInput, FilterBuilder, type FilterBuilderInterface, type FilterCondition, type FilterInput, type FilterOperatorValue, type FilterValue, type Game, type GameCreateInput, type GameImportDatasetStatus, type GameImportFromFileInput, type GameImportFromPayloadInput, type GameImportFromUrlInput, type GameImportJob, type GameImportJobConnection, type GameImportPreview, type GameImportPreviewInput, type GameImportRunInput, type GameRef, type GameScanRegion, type GameUpdateInput, type GameVisibility, GraphQLError, type GraphQLErrorInfo, type HydrateDeckEntryInput, type HydratedDeckEntry, type ImportFormat, type ImportJob, type ImportJobAsset, type ImportJobAssetInput, type ImportJobConnection, type ImportJobLog, type ImportJobLogConnection, type ImportJobStatus, type ImportLogLevel, type ImportMode, type ImportOptions, type ImportStats, type ImportValidationError, type ImportWarning, type ImportWarningSeverity, type InferredChildField, type LinkFieldInfo, LinkResolutionError, type LinkResolutionFailure, type ListDeckImportFormatsParams, type ListDeckVersionsParams, type ListDecksParams, type ListPublicRulesetsParams, type ListRulesetVersionsParams, type ListRulesetsParams, type LogLevel, type Logger, type NextPageLoader, NotFoundError, type ObjectField, type OnConflict, type PageInfo, type PresignedUpload, type PreviewScanTemplateInput, type PublicDecksFilterInput, type PublicDecksParams, type Publisher, type PublisherRef, type PublisherStatus, QueryBuilder, RateLimitError, type RateLimitInfo, type ResolveScanTemplateInput, type ResolvedLink, type ResourceType, RestrictedError, type Ruleset, type RulesetConnection, type RulesetCreateInput, type RulesetLookupParams, type RulesetUpdateInput, type RulesetValidationImpact, type RulesetValidationImpactDeck, type RulesetValidationImpactParams, type RulesetValidationRulesParams, type RulesetVersion, type RulesetVersionConnection, type RulesetVersionDraftCreateInput, type RulesetVersionDraftImportFromDatasetRecordInput, type RulesetVersionDraftImportPreview, type RulesetVersionDraftUpdateInput, type RulesetVersionPublishInput, type RulesetVersionStatus, type SaveScanTemplateInput, type ScanBestMatch, type ScanCandidate, type ScanFeatureVersionMetrics, type ScanFeedbackMetrics, type ScanFeedbackPayload, type ScanJob, type ScanJobError, type ScanJobMetrics, type ScanJobPayload, type ScanJobStatus, type ScanMetrics, type ScanMetricsInput, type ScanStageMetrics, type ScanTemplate, type ScanTemplateList, type ScanTemplatePayload, type ScanTemplatePreview, type ScanTemplateRegion, type ScanTemplateRegionInput, type ScanTemplateRegionPreview, type ScanTemplateResolution, type ScanTemplateWarning, type ScanTemplatesInput, type ScanWebhookState, type SearchDatasetsParams, type SearchGamesParams, type SearchPublishersParams, type SearchRecordsParams, ServerError, type SubmitScanFeedbackInput, type TCGPlayerPrice, type TCGPlayerPricing, TimeoutError, type UploadPurpose, ValidationError, type ViewerDecksFilterInput, type ViewerDecksParams, contains, eq, gt, gte, ilike, isNotNull, isNull, like, lt, lte, neq, notWithin, resolveFilter, within };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carddb/core",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Core types and utilities for CardDB JavaScript clients",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",