@carddb/client 0.4.6 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _carddb_core from '@carddb/core';
2
- import { Logger, LogLevel, Cache, ResourceType, CardDBConfig, RateLimitInfo, GraphQLErrorInfo, Collection, Publisher, Game, GameCreateInput, GameUpdateInput, GameScanRegion, Dataset, DatasetSchema, Deck, DeckReadState, DeckPublishedVersionSelector, ViewerDecksFilterInput, AppDecksFilterInput, PublicDecksFilterInput, DeckVersion, DeckDiff, DeckValidateInput, DeckValidation, DeckHydrateEntriesInput, DeckHydrateEntriesPayload, DeckExportFormat, DeckExportPayload, DeckSectionDefinition, DeckCollaborator, DeckAPIApplicationAccess, DeckCreateInput, DeckUpdateInput, DeckUpsertByExternalRefInput, DeckUpsertByExternalRefPayload, DeckClaimInput, DeckOwnershipTransferPayload, DeckTransferOwnershipInput, DeckCopyInput, DeckCopyPayload, DeckEntryAddInput, DeckEntryMutationPayload, DeckEntryUpdateInput, DeckEntryReorderInput, DeckEntryReorderPayload, DeckEntriesReplaceInput, DeckEntriesReplacePayload, DeckImportInput, DeckImportPayload, DeckImportFormatDefinition, DeckImportFormatTestInput, DeckImportFormatTestPayload, DeckImportFormatCreateInput, DeckImportFormatUpdateInput, DeckPublishInput, DeckPublishPayload, DeckRemoveInvalidEntriesInput, DeckCollaboratorRole, DeckTokenIssuerCreateInput, DeckTokenIssuer, DeckAPIApplicationAccessGrantInput, DeckTokenExchangeInput, DeckTokenExchangePayload, HydrateDeckEntryInput, HydratedDeckEntry, FilterInput, DatasetRecord, DatasetRecordsUpsertInput, DatasetRecordsUpsertPayload, DatasetRecordsDeleteInput, DatasetRecordDeleteJob, DatasetRecordDeleteJobStatus, Ruleset, RulesetVersionStatus, RulesetVersion, DeckValidationRules, RulesetVersionDraftImportFromDatasetRecordInput, RulesetVersionDraftImportPreview, RulesetValidationImpact, RulesetCreateInput, RulesetUpdateInput, RulesetVersionDraftCreateInput, RulesetVersionDraftUpdateInput, RulesetVersionPublishInput, DatasetImportPreviewInput, DatasetImportPreviewResult, DatasetImportValidateInput, BulkImportResult, DatasetImportRunInput, ImportJob, ImportJobStatus, ImportLogLevel, ImportJobLog, GameImportPreviewInput, GameImportPreview, GameImportRunInput, GameImportJob, DatasetExportInput, ExportJob, ExportJobStatus, File, FileUploadInput, PresignedUpload, UploadPurpose, CreateScanUploadSessionInput, ConfirmScanUploadInput, CreateScanJobInput, ScanJobPayload, ScanJob, SubmitScanFeedbackInput, ScanFeedbackPayload, ScanMetricsInput, ScanMetrics, ResolveScanTemplateInput, ScanTemplateResolution, ScanTemplatesInput, ScanTemplate, SaveScanTemplateInput, ScanTemplatePayload, PreviewScanTemplateInput, ScanTemplatePreview, APIKeyInfo } from '@carddb/core';
2
+ import { Logger, LogLevel, Cache, ResourceType, CardDBConfig, RateLimitInfo, GraphQLErrorInfo, Collection, Publisher, Game, GameCreateInput, GameUpdateInput, GameScanRegion, Dataset, DatasetSchema, DatasetFilterValueConnection, Deck, DeckReadState, DeckPublishedVersionSelector, ViewerDecksFilterInput, AppDecksFilterInput, PublicDecksFilterInput, DeckVersion, DeckDiff, DeckValidateInput, DeckValidation, DeckHydrateEntriesInput, DeckHydrateEntriesPayload, DeckExportFormat, DeckExportPayload, DeckSectionDefinition, DeckCollaborator, DeckAPIApplicationAccess, DeckCreateInput, DeckUpdateInput, DeckUpsertByExternalRefInput, DeckUpsertByExternalRefPayload, DeckClaimInput, DeckOwnershipTransferPayload, DeckTransferOwnershipInput, DeckCopyInput, DeckCopyPayload, DeckEntryAddInput, DeckEntryMutationPayload, DeckEntryUpdateInput, DeckEntryReorderInput, DeckEntryReorderPayload, DeckEntriesReplaceInput, DeckEntriesReplacePayload, DeckImportInput, DeckImportPayload, DeckImportFormatDefinition, DeckImportFormatTestInput, DeckImportFormatTestPayload, DeckImportFormatCreateInput, DeckImportFormatUpdateInput, DeckPublishInput, DeckPublishPayload, DeckRemoveInvalidEntriesInput, DeckCollaboratorRole, DeckTokenIssuerCreateInput, DeckTokenIssuer, DeckAPIApplicationAccessGrantInput, DeckTokenExchangeInput, DeckTokenExchangePayload, HydrateDeckEntryInput, HydratedDeckEntry, FilterInput, DatasetRecord, DatasetRecordsUpsertInput, DatasetRecordsUpsertPayload, DatasetRecordsDeleteInput, DatasetRecordDeleteJob, DatasetRecordDeleteJobStatus, Ruleset, RulesetVersionStatus, RulesetVersion, DeckValidationRules, RulesetVersionDraftImportFromDatasetRecordInput, RulesetVersionDraftImportPreview, RulesetValidationImpact, RulesetCreateInput, RulesetUpdateInput, RulesetVersionDraftCreateInput, RulesetVersionDraftUpdateInput, RulesetVersionPublishInput, DatasetImportPreviewInput, DatasetImportPreviewResult, DatasetImportValidateInput, BulkImportResult, DatasetImportRunInput, ImportJob, ImportJobStatus, ImportLogLevel, ImportJobLog, GameImportPreviewInput, GameImportPreview, GameImportRunInput, GameImportJob, DatasetExportInput, ExportJob, ExportJobStatus, File, FileUploadInput, PresignedUpload, UploadPurpose, CreateScanUploadSessionInput, ConfirmScanUploadInput, CreateScanJobInput, ScanJobPayload, ScanJob, SubmitScanFeedbackInput, ScanFeedbackPayload, ScanMetricsInput, ScanMetrics, ResolveScanTemplateInput, ScanTemplateResolution, ScanTemplatesInput, ScanTemplate, SaveScanTemplateInput, ScanTemplatePayload, PreviewScanTemplateInput, ScanTemplatePreview, APIKeyInfo } from '@carddb/core';
3
3
  export * from '@carddb/core';
4
4
 
5
5
  /**
@@ -368,6 +368,16 @@ interface GetDatasetByKeyOptions extends GetDatasetOptions {
368
368
  /** Stable dataset key */
369
369
  datasetKey: string;
370
370
  }
371
+ interface DatasetFilterValuesOptions extends GetDatasetOptions {
372
+ /** Optional case-insensitive search within values */
373
+ search?: string;
374
+ /** Include per-value record counts. More expensive than listing values only. */
375
+ includeCounts?: boolean;
376
+ /** Maximum number of values per field (default: 50, max: 500) */
377
+ first?: number;
378
+ /** Cursor for pagination. Applies to each requested field. */
379
+ after?: string;
380
+ }
371
381
  declare class DatasetsResource extends BaseResource {
372
382
  constructor(connection: Connection, config: Configuration);
373
383
  /**
@@ -417,6 +427,20 @@ declare class DatasetsResource extends BaseResource {
417
427
  * const datasets = await client.datasets.getMany(['id1', 'id2', 'id3'])
418
428
  */
419
429
  getMany(ids: string[], options?: GetDatasetOptions): Promise<Dataset[]>;
430
+ /**
431
+ * Get distinct filter values for one or more filterable fields.
432
+ *
433
+ * @example
434
+ * const values = await client.datasets.filterValues('dataset-id', ['name', 'colors'], {
435
+ * includeCounts: true,
436
+ * first: 500,
437
+ * })
438
+ */
439
+ filterValues(id: string, fields: string[], options?: DatasetFilterValuesOptions): Promise<DatasetFilterValueConnection[]>;
440
+ /**
441
+ * Get distinct filter values for a dataset by publisher/game/dataset keys.
442
+ */
443
+ filterValues(publisherSlug: string, gameKey: string, datasetKey: string, fields: string[], options?: DatasetFilterValuesOptions): Promise<DatasetFilterValueConnection[]>;
420
444
  }
421
445
 
422
446
  /**
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _carddb_core from '@carddb/core';
2
- import { Logger, LogLevel, Cache, ResourceType, CardDBConfig, RateLimitInfo, GraphQLErrorInfo, Collection, Publisher, Game, GameCreateInput, GameUpdateInput, GameScanRegion, Dataset, DatasetSchema, Deck, DeckReadState, DeckPublishedVersionSelector, ViewerDecksFilterInput, AppDecksFilterInput, PublicDecksFilterInput, DeckVersion, DeckDiff, DeckValidateInput, DeckValidation, DeckHydrateEntriesInput, DeckHydrateEntriesPayload, DeckExportFormat, DeckExportPayload, DeckSectionDefinition, DeckCollaborator, DeckAPIApplicationAccess, DeckCreateInput, DeckUpdateInput, DeckUpsertByExternalRefInput, DeckUpsertByExternalRefPayload, DeckClaimInput, DeckOwnershipTransferPayload, DeckTransferOwnershipInput, DeckCopyInput, DeckCopyPayload, DeckEntryAddInput, DeckEntryMutationPayload, DeckEntryUpdateInput, DeckEntryReorderInput, DeckEntryReorderPayload, DeckEntriesReplaceInput, DeckEntriesReplacePayload, DeckImportInput, DeckImportPayload, DeckImportFormatDefinition, DeckImportFormatTestInput, DeckImportFormatTestPayload, DeckImportFormatCreateInput, DeckImportFormatUpdateInput, DeckPublishInput, DeckPublishPayload, DeckRemoveInvalidEntriesInput, DeckCollaboratorRole, DeckTokenIssuerCreateInput, DeckTokenIssuer, DeckAPIApplicationAccessGrantInput, DeckTokenExchangeInput, DeckTokenExchangePayload, HydrateDeckEntryInput, HydratedDeckEntry, FilterInput, DatasetRecord, DatasetRecordsUpsertInput, DatasetRecordsUpsertPayload, DatasetRecordsDeleteInput, DatasetRecordDeleteJob, DatasetRecordDeleteJobStatus, Ruleset, RulesetVersionStatus, RulesetVersion, DeckValidationRules, RulesetVersionDraftImportFromDatasetRecordInput, RulesetVersionDraftImportPreview, RulesetValidationImpact, RulesetCreateInput, RulesetUpdateInput, RulesetVersionDraftCreateInput, RulesetVersionDraftUpdateInput, RulesetVersionPublishInput, DatasetImportPreviewInput, DatasetImportPreviewResult, DatasetImportValidateInput, BulkImportResult, DatasetImportRunInput, ImportJob, ImportJobStatus, ImportLogLevel, ImportJobLog, GameImportPreviewInput, GameImportPreview, GameImportRunInput, GameImportJob, DatasetExportInput, ExportJob, ExportJobStatus, File, FileUploadInput, PresignedUpload, UploadPurpose, CreateScanUploadSessionInput, ConfirmScanUploadInput, CreateScanJobInput, ScanJobPayload, ScanJob, SubmitScanFeedbackInput, ScanFeedbackPayload, ScanMetricsInput, ScanMetrics, ResolveScanTemplateInput, ScanTemplateResolution, ScanTemplatesInput, ScanTemplate, SaveScanTemplateInput, ScanTemplatePayload, PreviewScanTemplateInput, ScanTemplatePreview, APIKeyInfo } from '@carddb/core';
2
+ import { Logger, LogLevel, Cache, ResourceType, CardDBConfig, RateLimitInfo, GraphQLErrorInfo, Collection, Publisher, Game, GameCreateInput, GameUpdateInput, GameScanRegion, Dataset, DatasetSchema, DatasetFilterValueConnection, Deck, DeckReadState, DeckPublishedVersionSelector, ViewerDecksFilterInput, AppDecksFilterInput, PublicDecksFilterInput, DeckVersion, DeckDiff, DeckValidateInput, DeckValidation, DeckHydrateEntriesInput, DeckHydrateEntriesPayload, DeckExportFormat, DeckExportPayload, DeckSectionDefinition, DeckCollaborator, DeckAPIApplicationAccess, DeckCreateInput, DeckUpdateInput, DeckUpsertByExternalRefInput, DeckUpsertByExternalRefPayload, DeckClaimInput, DeckOwnershipTransferPayload, DeckTransferOwnershipInput, DeckCopyInput, DeckCopyPayload, DeckEntryAddInput, DeckEntryMutationPayload, DeckEntryUpdateInput, DeckEntryReorderInput, DeckEntryReorderPayload, DeckEntriesReplaceInput, DeckEntriesReplacePayload, DeckImportInput, DeckImportPayload, DeckImportFormatDefinition, DeckImportFormatTestInput, DeckImportFormatTestPayload, DeckImportFormatCreateInput, DeckImportFormatUpdateInput, DeckPublishInput, DeckPublishPayload, DeckRemoveInvalidEntriesInput, DeckCollaboratorRole, DeckTokenIssuerCreateInput, DeckTokenIssuer, DeckAPIApplicationAccessGrantInput, DeckTokenExchangeInput, DeckTokenExchangePayload, HydrateDeckEntryInput, HydratedDeckEntry, FilterInput, DatasetRecord, DatasetRecordsUpsertInput, DatasetRecordsUpsertPayload, DatasetRecordsDeleteInput, DatasetRecordDeleteJob, DatasetRecordDeleteJobStatus, Ruleset, RulesetVersionStatus, RulesetVersion, DeckValidationRules, RulesetVersionDraftImportFromDatasetRecordInput, RulesetVersionDraftImportPreview, RulesetValidationImpact, RulesetCreateInput, RulesetUpdateInput, RulesetVersionDraftCreateInput, RulesetVersionDraftUpdateInput, RulesetVersionPublishInput, DatasetImportPreviewInput, DatasetImportPreviewResult, DatasetImportValidateInput, BulkImportResult, DatasetImportRunInput, ImportJob, ImportJobStatus, ImportLogLevel, ImportJobLog, GameImportPreviewInput, GameImportPreview, GameImportRunInput, GameImportJob, DatasetExportInput, ExportJob, ExportJobStatus, File, FileUploadInput, PresignedUpload, UploadPurpose, CreateScanUploadSessionInput, ConfirmScanUploadInput, CreateScanJobInput, ScanJobPayload, ScanJob, SubmitScanFeedbackInput, ScanFeedbackPayload, ScanMetricsInput, ScanMetrics, ResolveScanTemplateInput, ScanTemplateResolution, ScanTemplatesInput, ScanTemplate, SaveScanTemplateInput, ScanTemplatePayload, PreviewScanTemplateInput, ScanTemplatePreview, APIKeyInfo } from '@carddb/core';
3
3
  export * from '@carddb/core';
4
4
 
5
5
  /**
@@ -368,6 +368,16 @@ interface GetDatasetByKeyOptions extends GetDatasetOptions {
368
368
  /** Stable dataset key */
369
369
  datasetKey: string;
370
370
  }
371
+ interface DatasetFilterValuesOptions extends GetDatasetOptions {
372
+ /** Optional case-insensitive search within values */
373
+ search?: string;
374
+ /** Include per-value record counts. More expensive than listing values only. */
375
+ includeCounts?: boolean;
376
+ /** Maximum number of values per field (default: 50, max: 500) */
377
+ first?: number;
378
+ /** Cursor for pagination. Applies to each requested field. */
379
+ after?: string;
380
+ }
371
381
  declare class DatasetsResource extends BaseResource {
372
382
  constructor(connection: Connection, config: Configuration);
373
383
  /**
@@ -417,6 +427,20 @@ declare class DatasetsResource extends BaseResource {
417
427
  * const datasets = await client.datasets.getMany(['id1', 'id2', 'id3'])
418
428
  */
419
429
  getMany(ids: string[], options?: GetDatasetOptions): Promise<Dataset[]>;
430
+ /**
431
+ * Get distinct filter values for one or more filterable fields.
432
+ *
433
+ * @example
434
+ * const values = await client.datasets.filterValues('dataset-id', ['name', 'colors'], {
435
+ * includeCounts: true,
436
+ * first: 500,
437
+ * })
438
+ */
439
+ filterValues(id: string, fields: string[], options?: DatasetFilterValuesOptions): Promise<DatasetFilterValueConnection[]>;
440
+ /**
441
+ * Get distinct filter values for a dataset by publisher/game/dataset keys.
442
+ */
443
+ filterValues(publisherSlug: string, gameKey: string, datasetKey: string, fields: string[], options?: DatasetFilterValuesOptions): Promise<DatasetFilterValueConnection[]>;
420
444
  }
421
445
 
422
446
  /**
package/dist/index.js CHANGED
@@ -901,6 +901,36 @@ var DatasetsResource = class extends BaseResource {
901
901
  return result["fetchDatasets"] ?? [];
902
902
  });
903
903
  }
904
+ async filterValues(idOrPublisherSlug, fieldsOrGameKey, datasetKeyOrFields, fieldsOrOptions, maybeOptions) {
905
+ let queryParams;
906
+ let options;
907
+ if (Array.isArray(fieldsOrGameKey)) {
908
+ queryParams = { id: idOrPublisherSlug, fields: fieldsOrGameKey };
909
+ options = datasetKeyOrFields ?? {};
910
+ } else {
911
+ queryParams = {
912
+ publisherSlug: idOrPublisherSlug,
913
+ gameKey: fieldsOrGameKey,
914
+ datasetKey: datasetKeyOrFields,
915
+ fields: fieldsOrOptions
916
+ };
917
+ options = maybeOptions ?? {};
918
+ this.validateAccess(queryParams.publisherSlug, queryParams.gameKey);
919
+ }
920
+ const { query, variables } = QueryBuilder.fetchDatasetFilterValues({
921
+ ...queryParams,
922
+ search: options.search,
923
+ includeCounts: options.includeCounts,
924
+ first: options.first,
925
+ after: options.after
926
+ });
927
+ const key = this.cacheKey("datasets", "filterValues", variables);
928
+ return this.withCache(key, "datasets", options, async () => {
929
+ const result = await this.connection.execute(query, variables);
930
+ const dataset = result["fetchDataset"];
931
+ return dataset?.filterValues ?? [];
932
+ });
933
+ }
904
934
  };
905
935
  var DecksResource = class extends BaseResource {
906
936
  constructor(connection, config) {