@eide/uniformgen 0.1.2 → 0.1.4

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.
@@ -42,6 +42,11 @@ export type Scalars = {
42
42
  input: number;
43
43
  output: number;
44
44
  };
45
+ /** The `BigInt` scalar type represents non-fractional signed whole numeric values. */
46
+ BigInt: {
47
+ input: number;
48
+ output: number;
49
+ };
45
50
  DateTime: {
46
51
  input: string;
47
52
  output: string;
@@ -750,12 +755,6 @@ export type AvailableContext = {
750
755
  /** Human-readable name */
751
756
  name: Scalars['String']['output'];
752
757
  };
753
- /** Available routes result with pagination info */
754
- export type AvailableRoutesResult = {
755
- __typename?: 'AvailableRoutesResult';
756
- routes: Array<ResolvedRoute>;
757
- total: Scalars['Int']['output'];
758
- };
759
758
  /**
760
759
  * Available upgrade options for a tenant.
761
760
  * If a custom package is assigned, only that is shown (hides standard paid plans).
@@ -923,14 +922,14 @@ export type BillingOverviewMetrics = {
923
922
  export type BillingPackageLimit = {
924
923
  __typename?: 'BillingPackageLimit';
925
924
  id: Scalars['ID']['output'];
926
- includedQuantity?: Maybe<Scalars['Float']['output']>;
927
- maxQuantity?: Maybe<Scalars['Float']['output']>;
925
+ includedQuantity?: Maybe<Scalars['BigInt']['output']>;
926
+ maxQuantity?: Maybe<Scalars['BigInt']['output']>;
928
927
  metric: BillingMetric;
929
928
  overagePriceCents?: Maybe<Scalars['Int']['output']>;
930
929
  };
931
930
  export type BillingPackageLimitInput = {
932
- includedQuantity?: InputMaybe<Scalars['Float']['input']>;
933
- maxQuantity?: InputMaybe<Scalars['Float']['input']>;
931
+ includedQuantity?: InputMaybe<Scalars['BigInt']['input']>;
932
+ maxQuantity?: InputMaybe<Scalars['BigInt']['input']>;
934
933
  metric: BillingMetric;
935
934
  overagePriceCents?: InputMaybe<Scalars['Int']['input']>;
936
935
  };
@@ -958,16 +957,16 @@ export type BillingPlan = {
958
957
  export type BillingPlanLimit = {
959
958
  __typename?: 'BillingPlanLimit';
960
959
  id: Scalars['ID']['output'];
961
- includedQuantity: Scalars['Float']['output'];
962
- maxQuantity?: Maybe<Scalars['Float']['output']>;
960
+ includedQuantity: Scalars['BigInt']['output'];
961
+ maxQuantity?: Maybe<Scalars['BigInt']['output']>;
963
962
  metric: BillingMetric;
964
963
  overagePriceCents?: Maybe<Scalars['Int']['output']>;
965
964
  overageUnitSize: Scalars['Int']['output'];
966
965
  stripePriceId?: Maybe<Scalars['String']['output']>;
967
966
  };
968
967
  export type BillingPlanLimitInput = {
969
- includedQuantity: Scalars['Float']['input'];
970
- maxQuantity?: InputMaybe<Scalars['Float']['input']>;
968
+ includedQuantity: Scalars['BigInt']['input'];
969
+ maxQuantity?: InputMaybe<Scalars['BigInt']['input']>;
971
970
  metric: BillingMetric;
972
971
  overagePriceCents?: InputMaybe<Scalars['Int']['input']>;
973
972
  overageUnitSize?: InputMaybe<Scalars['Int']['input']>;
@@ -1586,16 +1585,6 @@ export type CreatePublishBatchResult = {
1586
1585
  batch: PublishBatch;
1587
1586
  scheduledJobId: Scalars['String']['output'];
1588
1587
  };
1589
- /** Input for creating a redirect */
1590
- export type CreateRedirectInput = {
1591
- activeFrom?: InputMaybe<Scalars['DateTime']['input']>;
1592
- activeTo?: InputMaybe<Scalars['DateTime']['input']>;
1593
- priority?: InputMaybe<Scalars['Int']['input']>;
1594
- reason?: InputMaybe<Scalars['String']['input']>;
1595
- sourcePattern: Scalars['String']['input'];
1596
- statusCode?: InputMaybe<Scalars['Int']['input']>;
1597
- targetPattern: Scalars['String']['input'];
1598
- };
1599
1588
  export type CreateSignupSessionInput = {
1600
1589
  userId: Scalars['ID']['input'];
1601
1590
  };
@@ -2766,13 +2755,22 @@ export type EntitySearchResult = {
2766
2755
  /** Last updated timestamp */
2767
2756
  updatedAt: Scalars['DateTime']['output'];
2768
2757
  };
2769
- /** Entity URL (resolved route path) */
2770
- export type EntityUrl = {
2771
- __typename?: 'EntityUrl';
2772
- isCanonical: Scalars['Boolean']['output'];
2773
- path: Scalars['String']['output'];
2774
- /** Market/locale context for this URL (empty object = default/global) */
2775
- subfolders?: Maybe<Scalars['JSON']['output']>;
2758
+ /** Result of batch entity URL resolution */
2759
+ export type EntityUrlBatchResult = {
2760
+ __typename?: 'EntityUrlBatchResult';
2761
+ /** Entity model key */
2762
+ modelKey: Scalars['String']['output'];
2763
+ /** Natural key */
2764
+ naturalKey: Scalars['String']['output'];
2765
+ /** Resolved URL (null if not routable) */
2766
+ url?: Maybe<ResolvedEntityUrl>;
2767
+ };
2768
+ /** Input for batch entity URL resolution */
2769
+ export type EntityUrlInput = {
2770
+ /** Entity model key (e.g., 'shopify-product', 'page') */
2771
+ modelKey: Scalars['String']['input'];
2772
+ /** Natural key of the entity */
2773
+ naturalKey: Scalars['String']['input'];
2776
2774
  };
2777
2775
  /**
2778
2776
  * Variant data optimized for editor use.
@@ -4003,8 +4001,6 @@ export type Mutation = {
4003
4001
  * All versions will be published at the scheduled time
4004
4002
  */
4005
4003
  createPublishBatch: CreatePublishBatchResult;
4006
- /** Create a manual redirect */
4007
- createRedirect: Redirect;
4008
4004
  createSignupSession: CreateSignupSessionResult;
4009
4005
  createTenant: Tenant;
4010
4006
  /** Create a new workflow */
@@ -4039,8 +4035,6 @@ export type Mutation = {
4039
4035
  /** Delete a notification */
4040
4036
  deleteNotification: Scalars['Boolean']['output'];
4041
4037
  deleteProject: Scalars['Boolean']['output'];
4042
- /** Delete a redirect */
4043
- deleteRedirect: Scalars['Boolean']['output'];
4044
4038
  deleteSetting: Scalars['Boolean']['output'];
4045
4039
  deleteSettingsByCategory: Scalars['Int']['output'];
4046
4040
  deleteTenant: Scalars['Boolean']['output'];
@@ -4165,8 +4159,6 @@ export type Mutation = {
4165
4159
  /** Reactivate a suspended or cancelled tenant (SUSPENDED/CANCELLED → ACTIVE) */
4166
4160
  reactivateTenant: Tenant;
4167
4161
  refreshToken: TokenResponse;
4168
- /** Manually trigger route regeneration for the current project */
4169
- regenerateRoutes: Scalars['Boolean']['output'];
4170
4162
  register: RegistrationResponse;
4171
4163
  /** Remove a customer's experiment assignment */
4172
4164
  removeExperimentAssignment?: Maybe<Scalars['Boolean']['output']>;
@@ -4386,8 +4378,6 @@ export type Mutation = {
4386
4378
  * Only allowed when batch is in 'scheduled' status
4387
4379
  */
4388
4380
  updatePublishBatch: PublishBatch;
4389
- /** Update an existing redirect */
4390
- updateRedirect: Redirect;
4391
4381
  updateTenant: Tenant;
4392
4382
  /** Update a workflow */
4393
4383
  updateWorkflow: UpdateWorkflowResult;
@@ -4544,9 +4534,6 @@ export type MutationCreateProjectArgs = {
4544
4534
  export type MutationCreatePublishBatchArgs = {
4545
4535
  input: CreatePublishBatchInput;
4546
4536
  };
4547
- export type MutationCreateRedirectArgs = {
4548
- input: CreateRedirectInput;
4549
- };
4550
4537
  export type MutationCreateSignupSessionArgs = {
4551
4538
  input: CreateSignupSessionInput;
4552
4539
  };
@@ -4601,9 +4588,6 @@ export type MutationDeleteNotificationArgs = {
4601
4588
  export type MutationDeleteProjectArgs = {
4602
4589
  id: Scalars['ID']['input'];
4603
4590
  };
4604
- export type MutationDeleteRedirectArgs = {
4605
- id: Scalars['ID']['input'];
4606
- };
4607
4591
  export type MutationDeleteSettingArgs = {
4608
4592
  key: Scalars['String']['input'];
4609
4593
  };
@@ -5030,10 +5014,6 @@ export type MutationUpdatePublishBatchArgs = {
5030
5014
  id: Scalars['ID']['input'];
5031
5015
  input: UpdatePublishBatchInput;
5032
5016
  };
5033
- export type MutationUpdateRedirectArgs = {
5034
- id: Scalars['ID']['input'];
5035
- input: UpdateRedirectInput;
5036
- };
5037
5017
  export type MutationUpdateTenantArgs = {
5038
5018
  id: Scalars['ID']['input'];
5039
5019
  input: UpdateTenantInput;
@@ -5246,21 +5226,6 @@ export type ParentModelConfigInput = {
5246
5226
  /** The model key of the parent entity (e.g., 'page', 'shopify-collection') */
5247
5227
  modelKey: Scalars['String']['input'];
5248
5228
  };
5249
- /**
5250
- * Parent route for menu linking (deduplicated across markets)
5251
- * Used by admin UI route selector in menu editor
5252
- */
5253
- export type ParentRoute = {
5254
- __typename?: 'ParentRoute';
5255
- /** Entity ID */
5256
- entityId: Scalars['String']['output'];
5257
- /** Entity type (page, shopify_collection, shopify_product) */
5258
- entityType: Scalars['String']['output'];
5259
- /** Whether this is the canonical URL structure for the entity */
5260
- isCanonical: Scalars['Boolean']['output'];
5261
- /** The canonical route identifier (e.g., /collections/new-arrivals) */
5262
- parentRoute: Scalars['String']['output'];
5263
- };
5264
5229
  export type PasswordPolicy = {
5265
5230
  __typename?: 'PasswordPolicy';
5266
5231
  minLength: Scalars['Int']['output'];
@@ -5394,8 +5359,8 @@ export type PublicBillingPlan = {
5394
5359
  };
5395
5360
  export type PublicBillingPlanLimit = {
5396
5361
  __typename?: 'PublicBillingPlanLimit';
5397
- includedQuantity: Scalars['Float']['output'];
5398
- maxQuantity?: Maybe<Scalars['Float']['output']>;
5362
+ includedQuantity: Scalars['BigInt']['output'];
5363
+ maxQuantity?: Maybe<Scalars['BigInt']['output']>;
5399
5364
  metric: BillingMetric;
5400
5365
  };
5401
5366
  /** A publish batch containing multiple versions to publish together */
@@ -5509,11 +5474,6 @@ export type Query = {
5509
5474
  * System contexts (device, platform, auth-status, locale) are always included.
5510
5475
  */
5511
5476
  availableContexts: Array<AvailableContext>;
5512
- /**
5513
- * Get all available routes for menu linking
5514
- * Returns enumerated routes with entity info
5515
- */
5516
- availableRoutes: AvailableRoutesResult;
5517
5477
  availableUpgrades: AvailableUpgrades;
5518
5478
  billingCustomPackage?: Maybe<BillingCustomPackage>;
5519
5479
  billingCustomPackages: Array<BillingCustomPackage>;
@@ -5659,11 +5619,6 @@ export type Query = {
5659
5619
  * Example: filters: [{ field: "metadata.synced.shopId", operator: eq, value: "shop_123" }]
5660
5620
  */
5661
5621
  entityRecords: EntityRecordList;
5662
- /**
5663
- * Get all URLs where an entity appears in routing (generic version)
5664
- * Works for any entity type with routing enabled
5665
- */
5666
- entityUrls: Array<EntityUrl>;
5667
5622
  /** Get experiment statistics (assignment counts by variant) */
5668
5623
  experimentStats?: Maybe<ExperimentStats>;
5669
5624
  /**
@@ -5756,13 +5711,6 @@ export type Query = {
5756
5711
  * Uses headers for project context.
5757
5712
  */
5758
5713
  overallResolutionTrend: Array<TrendDataPoint>;
5759
- /**
5760
- * Get distinct parent routes for menu linking
5761
- * Returns unique parentRoute values (deduplicated across markets)
5762
- * Shows all route structures (canonical + aliases)
5763
- * Used by admin UI route selector in menu editor
5764
- */
5765
- parentRoutes: Array<ParentRoute>;
5766
5714
  passwordPolicy: PasswordPolicy;
5767
5715
  /**
5768
5716
  * Get all available platform features.
@@ -5811,10 +5759,6 @@ export type Query = {
5811
5759
  recentAccountLockouts: Array<AccountLockout>;
5812
5760
  /** Get recently opened items for current user */
5813
5761
  recentlyOpened: Array<RecentlyOpenedItem>;
5814
- /** Get a single redirect by ID */
5815
- redirect?: Maybe<Redirect>;
5816
- /** List all redirects for the project with pagination */
5817
- redirects: RedirectsConnection;
5818
5762
  /**
5819
5763
  * Get all repeatable (cron) jobs across all queues.
5820
5764
  * Platform admin only.
@@ -5825,6 +5769,12 @@ export type Query = {
5825
5769
  * Uses headers for project context.
5826
5770
  */
5827
5771
  resolutionDistribution: ResolutionDistribution;
5772
+ /**
5773
+ * Batch resolve entity content by natural key.
5774
+ * Returns full resolved content with variant selection.
5775
+ * Use when you need content with templates, zones, layouts.
5776
+ */
5777
+ resolveEntities: ResolveEntitiesResult;
5828
5778
  /**
5829
5779
  * Resolve entity by model key and natural key (CMS-enriched).
5830
5780
  * Returns full content with templates, zones, layouts, breadcrumbs, gridConfig.
@@ -5843,19 +5793,24 @@ export type Query = {
5843
5793
  * Same as resolveRoute but with different parameter style.
5844
5794
  */
5845
5795
  resolveEntityByPath?: Maybe<ResolvedEntityContent>;
5846
- revenueByPlan: Array<RevenueByPlan>;
5847
5796
  /**
5848
- * Get route aliases (non-canonical routes with redirect strategy)
5849
- * These are auto-generated from the route tree and synced to edge
5797
+ * Resolve an entity reference to a URL path.
5798
+ *
5799
+ * Takes an entity reference (modelKey + naturalKey) and returns the URL path
5800
+ * for the current request context (country, locale).
5801
+ *
5802
+ * Example:
5803
+ * - Input: modelKey: "shopify-product", naturalKey: "parka"
5804
+ * - With context: country: "uk", locale: "en"
5805
+ * - Returns: { href: "/uk/en/products/parka", isCanonical: true }
5850
5806
  */
5851
- routeAliases: Array<RouteAlias>;
5807
+ resolveEntityUrl?: Maybe<ResolvedEntityUrl>;
5852
5808
  /**
5853
- * Get route conflicts detected during last route generation
5854
- * Shows where multiple entities compete for the same URL path
5809
+ * Batch resolve multiple entity references to URLs.
5810
+ * More efficient than individual calls when resolving many links.
5855
5811
  */
5856
- routeConflicts: Array<RouteConflict>;
5857
- /** Get route regeneration job status */
5858
- routeRegenerationStatus: RouteRegenerationStatus;
5812
+ resolveEntityUrlBatch: Array<EntityUrlBatchResult>;
5813
+ revenueByPlan: Array<RevenueByPlan>;
5859
5814
  /** Get a single scheduled publish by version ID */
5860
5815
  scheduledPublish?: Maybe<ScheduledPublish>;
5861
5816
  /** List scheduled publishes with optional filtering */
@@ -5888,6 +5843,8 @@ export type Query = {
5888
5843
  * Each project has at most one shop
5889
5844
  */
5890
5845
  shopifyShops: Array<ShopifyShop>;
5846
+ /** Get sitemap info including URL count and split status */
5847
+ sitemapInfo?: Maybe<SitemapInfo>;
5891
5848
  /** Get sitemap URL (CDN location) */
5892
5849
  sitemapUrl?: Maybe<Scalars['String']['output']>;
5893
5850
  /** Get suspicious activity - users with logins from multiple IPs. */
@@ -5896,8 +5853,6 @@ export type Query = {
5896
5853
  tenant?: Maybe<Tenant>;
5897
5854
  tenantBillingStatus: TenantBillingStatusResult;
5898
5855
  tenants: TenantList;
5899
- /** List unified redirects (manual + route aliases) with pagination */
5900
- unifiedRedirects: UnifiedRedirectsConnection;
5901
5856
  /**
5902
5857
  * Get unread notification count for badge.
5903
5858
  * Uses headers for user context.
@@ -5905,11 +5860,6 @@ export type Query = {
5905
5860
  unreadNotificationCount: Scalars['Int']['output'];
5906
5861
  /** Validate an invitation token (unauthenticated, public) */
5907
5862
  validateInvitation: ValidateInvitationResult;
5908
- /**
5909
- * Validate if a path exists in resolved routes
5910
- * Used by menu editor to validate internal links
5911
- */
5912
- validateRoutePath: Scalars['Boolean']['output'];
5913
5863
  /**
5914
5864
  * Get variant performance metrics.
5915
5865
  * Uses headers for project context.
@@ -5970,13 +5920,6 @@ export type QueryApplicableWorkflowsArgs = {
5970
5920
  export type QueryAuthConfigArgs = {
5971
5921
  tenantId?: InputMaybe<Scalars['ID']['input']>;
5972
5922
  };
5973
- export type QueryAvailableRoutesArgs = {
5974
- entityType?: InputMaybe<Scalars['String']['input']>;
5975
- isCanonical?: InputMaybe<Scalars['Boolean']['input']>;
5976
- limit?: InputMaybe<Scalars['Int']['input']>;
5977
- offset?: InputMaybe<Scalars['Int']['input']>;
5978
- search?: InputMaybe<Scalars['String']['input']>;
5979
- };
5980
5923
  export type QueryBillingCustomPackageArgs = {
5981
5924
  id: Scalars['ID']['input'];
5982
5925
  };
@@ -6133,10 +6076,6 @@ export type QueryEntityRecordsArgs = {
6133
6076
  modelKey: Scalars['String']['input'];
6134
6077
  offset?: InputMaybe<Scalars['Int']['input']>;
6135
6078
  };
6136
- export type QueryEntityUrlsArgs = {
6137
- entityId: Scalars['ID']['input'];
6138
- entityType: Scalars['String']['input'];
6139
- };
6140
6079
  export type QueryExperimentStatsArgs = {
6141
6080
  experimentId: Scalars['ID']['input'];
6142
6081
  };
@@ -6236,12 +6175,6 @@ export type QueryOverallResolutionTrendArgs = {
6236
6175
  dateRange: DateRangeInput;
6237
6176
  granularity?: InputMaybe<TrendGranularity>;
6238
6177
  };
6239
- export type QueryParentRoutesArgs = {
6240
- entityType?: InputMaybe<Scalars['String']['input']>;
6241
- limit?: InputMaybe<Scalars['Int']['input']>;
6242
- offset?: InputMaybe<Scalars['Int']['input']>;
6243
- search?: InputMaybe<Scalars['String']['input']>;
6244
- };
6245
6178
  export type QueryPreviewRollbackBatchArgs = {
6246
6179
  batchId: Scalars['ID']['input'];
6247
6180
  };
@@ -6280,19 +6213,13 @@ export type QueryQueueStatusArgs = {
6280
6213
  export type QueryRecentAccountLockoutsArgs = {
6281
6214
  limit?: InputMaybe<Scalars['Int']['input']>;
6282
6215
  };
6283
- export type QueryRedirectArgs = {
6284
- id: Scalars['ID']['input'];
6285
- };
6286
- export type QueryRedirectsArgs = {
6287
- activeOnly?: InputMaybe<Scalars['Boolean']['input']>;
6288
- limit?: InputMaybe<Scalars['Int']['input']>;
6289
- offset?: InputMaybe<Scalars['Int']['input']>;
6290
- search?: InputMaybe<Scalars['String']['input']>;
6291
- };
6292
6216
  export type QueryResolutionDistributionArgs = {
6293
6217
  dateRange: DateRangeInput;
6294
6218
  dimension: ResolutionDimension;
6295
6219
  };
6220
+ export type QueryResolveEntitiesArgs = {
6221
+ input: ResolveEntitiesInput;
6222
+ };
6296
6223
  export type QueryResolveEntityArgs = {
6297
6224
  contexts?: InputMaybe<Scalars['JSON']['input']>;
6298
6225
  includeTemplate?: InputMaybe<Scalars['Boolean']['input']>;
@@ -6315,9 +6242,16 @@ export type QueryResolveEntityByPathArgs = {
6315
6242
  path: Scalars['String']['input'];
6316
6243
  referenceOptions?: InputMaybe<ReferenceResolutionOptionsInput>;
6317
6244
  };
6318
- export type QueryRouteAliasesArgs = {
6319
- limit?: InputMaybe<Scalars['Int']['input']>;
6320
- offset?: InputMaybe<Scalars['Int']['input']>;
6245
+ export type QueryResolveEntityUrlArgs = {
6246
+ country?: InputMaybe<Scalars['String']['input']>;
6247
+ locale?: InputMaybe<Scalars['String']['input']>;
6248
+ modelKey: Scalars['String']['input'];
6249
+ naturalKey: Scalars['String']['input'];
6250
+ };
6251
+ export type QueryResolveEntityUrlBatchArgs = {
6252
+ country?: InputMaybe<Scalars['String']['input']>;
6253
+ entities: Array<EntityUrlInput>;
6254
+ locale?: InputMaybe<Scalars['String']['input']>;
6321
6255
  };
6322
6256
  export type QueryScheduledPublishArgs = {
6323
6257
  versionId: Scalars['ID']['input'];
@@ -6377,18 +6311,9 @@ export type QueryTenantsArgs = {
6377
6311
  offset?: InputMaybe<Scalars['Int']['input']>;
6378
6312
  search?: InputMaybe<Scalars['String']['input']>;
6379
6313
  };
6380
- export type QueryUnifiedRedirectsArgs = {
6381
- limit?: InputMaybe<Scalars['Int']['input']>;
6382
- offset?: InputMaybe<Scalars['Int']['input']>;
6383
- search?: InputMaybe<Scalars['String']['input']>;
6384
- type?: InputMaybe<UnifiedRedirectType>;
6385
- };
6386
6314
  export type QueryValidateInvitationArgs = {
6387
6315
  token: Scalars['String']['input'];
6388
6316
  };
6389
- export type QueryValidateRoutePathArgs = {
6390
- path: Scalars['String']['input'];
6391
- };
6392
6317
  export type QueryVariantPerformanceArgs = {
6393
6318
  dateRange: DateRangeInput;
6394
6319
  device?: InputMaybe<Scalars['String']['input']>;
@@ -6536,42 +6461,6 @@ export type RecentlyOpenedItemInput = {
6536
6461
  path: Scalars['String']['input'];
6537
6462
  type: Scalars['String']['input'];
6538
6463
  };
6539
- /** Manual redirect rule */
6540
- export type Redirect = {
6541
- __typename?: 'Redirect';
6542
- /** When the redirect becomes active */
6543
- activeFrom?: Maybe<Scalars['DateTime']['output']>;
6544
- /** When the redirect expires */
6545
- activeTo?: Maybe<Scalars['DateTime']['output']>;
6546
- createdAt: Scalars['DateTime']['output'];
6547
- createdBy?: Maybe<Scalars['String']['output']>;
6548
- /** Number of times this redirect has been used */
6549
- hitCount: Scalars['Int']['output'];
6550
- id: Scalars['ID']['output'];
6551
- /** Last time this redirect was matched */
6552
- lastHitAt?: Maybe<Scalars['DateTime']['output']>;
6553
- /** Higher priority redirects are matched first */
6554
- priority: Scalars['Int']['output'];
6555
- /** Optional reason/note for this redirect */
6556
- reason?: Maybe<Scalars['String']['output']>;
6557
- /** Source URL pattern (e.g., /old-path or /category/*) */
6558
- sourcePattern: Scalars['String']['output'];
6559
- /** HTTP status code (301, 302, 307, 308) */
6560
- statusCode: Scalars['Int']['output'];
6561
- /** Target URL pattern (e.g., /new-path or https://example.com) */
6562
- targetPattern: Scalars['String']['output'];
6563
- updatedAt: Scalars['DateTime']['output'];
6564
- };
6565
- /** Connection type for paginated redirects */
6566
- export type RedirectsConnection = {
6567
- __typename?: 'RedirectsConnection';
6568
- /** Whether there are more items to fetch */
6569
- hasMore: Scalars['Boolean']['output'];
6570
- /** List of redirects */
6571
- items: Array<Redirect>;
6572
- /** Total count of redirects matching the filter */
6573
- total: Scalars['Int']['output'];
6574
- };
6575
6464
  /** Reference resolution options */
6576
6465
  export type ReferenceResolutionOptionsInput = {
6577
6466
  /** Maximum depth for nested resolution (null = unlimited with cycle detection) */
@@ -6699,6 +6588,31 @@ export type ResolutionEvent = {
6699
6588
  path: Scalars['String']['output'];
6700
6589
  timestamp: Scalars['String']['output'];
6701
6590
  };
6591
+ /** Input for batch entity content resolution */
6592
+ export type ResolveEntitiesInput = {
6593
+ /** Context dimensions for variant resolution */
6594
+ contexts?: InputMaybe<Scalars['JSON']['input']>;
6595
+ /** Include template/zone layout info */
6596
+ includeTemplate?: InputMaybe<Scalars['Boolean']['input']>;
6597
+ /** Locale for field translations */
6598
+ locale?: InputMaybe<Scalars['String']['input']>;
6599
+ /** Entity model key */
6600
+ modelKey: Scalars['String']['input'];
6601
+ /** Array of natural keys to resolve */
6602
+ naturalKeys: Array<Scalars['String']['input']>;
6603
+ /** Reference resolution options */
6604
+ referenceOptions?: InputMaybe<ReferenceResolutionOptionsInput>;
6605
+ };
6606
+ /** Result of batch entity resolution */
6607
+ export type ResolveEntitiesResult = {
6608
+ __typename?: 'ResolveEntitiesResult';
6609
+ /** Natural keys that were not found */
6610
+ notFound: Array<Scalars['String']['output']>;
6611
+ /** Resolution context used */
6612
+ resolvedWith: ResolutionContextOutput;
6613
+ /** Results in same order as input naturalKeys */
6614
+ results: Array<ResolvedEntityBatchResult>;
6615
+ };
6702
6616
  export type ResolveNoteInput = {
6703
6617
  noteId: Scalars['ID']['input'];
6704
6618
  resolutionNote?: InputMaybe<Scalars['String']['input']>;
@@ -6722,6 +6636,16 @@ export type ResolvedContent = {
6722
6636
  /** Template reference (null if no template assigned) */
6723
6637
  template?: Maybe<ResolvedTemplateRef>;
6724
6638
  };
6639
+ /** Single entity resolution result in batch */
6640
+ export type ResolvedEntityBatchResult = {
6641
+ __typename?: 'ResolvedEntityBatchResult';
6642
+ /** Whether the entity was found and resolved */
6643
+ found: Scalars['Boolean']['output'];
6644
+ /** The natural key that was requested */
6645
+ naturalKey: Scalars['String']['output'];
6646
+ /** Full resolution result (same structure as resolveEntity) */
6647
+ resolution?: Maybe<ResolvedEntityContent>;
6648
+ };
6725
6649
  /**
6726
6650
  * Resolved entity content (unified output format)
6727
6651
  * Works for ANY entity type - now uses the same structure as public resolveRoute
@@ -6749,6 +6673,14 @@ export type ResolvedEntityRecord = {
6749
6673
  modelKey: Scalars['String']['output'];
6750
6674
  naturalKey?: Maybe<Scalars['String']['output']>;
6751
6675
  };
6676
+ /** Resolved entity URL result */
6677
+ export type ResolvedEntityUrl = {
6678
+ __typename?: 'ResolvedEntityUrl';
6679
+ /** The resolved URL path */
6680
+ href: Scalars['String']['output'];
6681
+ /** Whether this is the canonical URL */
6682
+ isCanonical: Scalars['Boolean']['output'];
6683
+ };
6752
6684
  /** Entity variant in resolution result */
6753
6685
  export type ResolvedEntityVariant = {
6754
6686
  __typename?: 'ResolvedEntityVariant';
@@ -6775,7 +6707,7 @@ export type ResolvedField = {
6775
6707
  /** Fully resolved value (can be ZoneValue when type is 'zone') */
6776
6708
  value?: Maybe<Scalars['JSON']['output']>;
6777
6709
  };
6778
- /** Resolved route (pre-computed) */
6710
+ /** Resolved route (used in sitemap and internal APIs) */
6779
6711
  export type ResolvedRoute = {
6780
6712
  __typename?: 'ResolvedRoute';
6781
6713
  /** How to handle non-canonical routes: 'redirect' or 'canonical-tag' */
@@ -6901,44 +6833,6 @@ export type RollbackPublishBatchResult = {
6901
6833
  /** Scheduled time if not immediate */
6902
6834
  scheduledAt?: Maybe<Scalars['DateTime']['output']>;
6903
6835
  };
6904
- /** A route alias that redirects to a canonical route */
6905
- export type RouteAlias = {
6906
- __typename?: 'RouteAlias';
6907
- /** Canonical path this redirects to */
6908
- canonicalPath: Scalars['String']['output'];
6909
- /** Entity type (shopify_collection, shopify_product, page) */
6910
- entityType: Scalars['String']['output'];
6911
- /** Path of the alias route */
6912
- path: Scalars['String']['output'];
6913
- /** Market/locale subfolders */
6914
- subfolders?: Maybe<Scalars['JSON']['output']>;
6915
- };
6916
- /** Route conflict - multiple entities competing for the same URL path */
6917
- export type RouteConflict = {
6918
- __typename?: 'RouteConflict';
6919
- /** Entities that match this path */
6920
- entities: Array<RouteConflictEntity>;
6921
- /** Human-readable conflict message */
6922
- message: Scalars['String']['output'];
6923
- /** The conflicting URL path */
6924
- path: Scalars['String']['output'];
6925
- /** Severity level */
6926
- severity: Scalars['String']['output'];
6927
- };
6928
- /** Entity involved in a route conflict */
6929
- export type RouteConflictEntity = {
6930
- __typename?: 'RouteConflictEntity';
6931
- /** Entity record ID */
6932
- entityId: Scalars['String']['output'];
6933
- /** Entity model key (e.g., 'page', 'shopify-product') */
6934
- entityType: Scalars['String']['output'];
6935
- /** Entity natural key */
6936
- naturalKey: Scalars['String']['output'];
6937
- /** Priority (lower = higher priority, which one would actually match) */
6938
- priority: Scalars['Int']['output'];
6939
- /** Whether this is a canonical route or alias */
6940
- routeType: Scalars['String']['output'];
6941
- };
6942
6836
  /** Input for context configuration */
6943
6837
  export type RouteContextConfigInput = {
6944
6838
  /** Context key (e.g., 'market', 'locale', 'brand') */
@@ -7004,14 +6898,6 @@ export declare enum RouteNodeType {
7004
6898
  /** Container path for organizing child routes (e.g., /shop, /blog) */
7005
6899
  Static = "STATIC"
7006
6900
  }
7007
- /** Route regeneration job status */
7008
- export type RouteRegenerationStatus = {
7009
- __typename?: 'RouteRegenerationStatus';
7010
- isRunning: Scalars['Boolean']['output'];
7011
- jobCount: Scalars['Int']['output'];
7012
- lastCompletedAt?: Maybe<Scalars['DateTime']['output']>;
7013
- lastJobState?: Maybe<Scalars['String']['output']>;
7014
- };
7015
6901
  /** Variant rule */
7016
6902
  export type RuleDebug = {
7017
6903
  __typename?: 'RuleDebug';
@@ -7421,6 +7307,22 @@ export type SignupUser = {
7421
7307
  id: Scalars['ID']['output'];
7422
7308
  lastName?: Maybe<Scalars['String']['output']>;
7423
7309
  };
7310
+ /** Sitemap information including URL count and split status */
7311
+ export type SitemapInfo = {
7312
+ __typename?: 'SitemapInfo';
7313
+ /** Individual sitemap file URLs (if split) */
7314
+ childSitemaps?: Maybe<Array<Scalars['String']['output']>>;
7315
+ /** Number of sitemap files (1 if not split) */
7316
+ fileCount: Scalars['Int']['output'];
7317
+ /** Whether the sitemap is split into multiple files */
7318
+ isSplit: Scalars['Boolean']['output'];
7319
+ /** Last generation timestamp */
7320
+ lastGenerated?: Maybe<Scalars['DateTime']['output']>;
7321
+ /** Primary sitemap URL (index if split, single file otherwise) */
7322
+ url?: Maybe<Scalars['String']['output']>;
7323
+ /** Total number of URLs across all sitemap files */
7324
+ urlCount?: Maybe<Scalars['Int']['output']>;
7325
+ };
7424
7326
  export declare enum SubscriptionStatus {
7425
7327
  Active = "ACTIVE",
7426
7328
  Canceled = "CANCELED",
@@ -7697,55 +7599,6 @@ export type TypographyVariantInput = {
7697
7599
  name: Scalars['String']['input'];
7698
7600
  textTransform?: InputMaybe<Scalars['String']['input']>;
7699
7601
  };
7700
- /** Unified redirect record combining manual redirects and route aliases */
7701
- export type UnifiedRedirect = {
7702
- __typename?: 'UnifiedRedirect';
7703
- /** Entity type (route alias only) */
7704
- entityType?: Maybe<Scalars['String']['output']>;
7705
- /** Number of times this redirect has been used (manual only) */
7706
- hitCount?: Maybe<Scalars['Int']['output']>;
7707
- /** Unique identifier */
7708
- id: Scalars['ID']['output'];
7709
- /** Last time this redirect was matched (manual only) */
7710
- lastHitAt?: Maybe<Scalars['DateTime']['output']>;
7711
- /** Priority for matching (manual only) */
7712
- priority?: Maybe<Scalars['Int']['output']>;
7713
- /** Optional reason/note (manual only) */
7714
- reason?: Maybe<Scalars['String']['output']>;
7715
- /** Source URL pattern */
7716
- source: Scalars['String']['output'];
7717
- /** HTTP status code */
7718
- statusCode: Scalars['Int']['output'];
7719
- /** Target URL pattern */
7720
- target: Scalars['String']['output'];
7721
- /** Type of redirect */
7722
- type: UnifiedRedirectType;
7723
- };
7724
- /** Counts of redirects by type */
7725
- export type UnifiedRedirectCounts = {
7726
- __typename?: 'UnifiedRedirectCounts';
7727
- /** Number of manual redirects */
7728
- manual: Scalars['Int']['output'];
7729
- /** Number of route aliases */
7730
- routeAlias: Scalars['Int']['output'];
7731
- };
7732
- /** Type of redirect */
7733
- export declare enum UnifiedRedirectType {
7734
- Manual = "MANUAL",
7735
- RouteAlias = "ROUTE_ALIAS"
7736
- }
7737
- /** Connection type for unified redirects with pagination */
7738
- export type UnifiedRedirectsConnection = {
7739
- __typename?: 'UnifiedRedirectsConnection';
7740
- /** Counts by type */
7741
- counts: UnifiedRedirectCounts;
7742
- /** Whether there are more items */
7743
- hasMore: Scalars['Boolean']['output'];
7744
- /** List of unified redirects */
7745
- items: Array<UnifiedRedirect>;
7746
- /** Total count matching the filter */
7747
- total: Scalars['Int']['output'];
7748
- };
7749
7602
  /** Input for unpublishing an entity record variant */
7750
7603
  export type UnpublishEntityRecordVariantInput = {
7751
7604
  variantId: Scalars['ID']['input'];
@@ -7906,16 +7759,6 @@ export type UpdatePublishBatchInput = {
7906
7759
  /** New scheduled time (must be in the future) */
7907
7760
  scheduledAt?: InputMaybe<Scalars['DateTime']['input']>;
7908
7761
  };
7909
- /** Input for updating a redirect */
7910
- export type UpdateRedirectInput = {
7911
- activeFrom?: InputMaybe<Scalars['DateTime']['input']>;
7912
- activeTo?: InputMaybe<Scalars['DateTime']['input']>;
7913
- priority?: InputMaybe<Scalars['Int']['input']>;
7914
- reason?: InputMaybe<Scalars['String']['input']>;
7915
- sourcePattern?: InputMaybe<Scalars['String']['input']>;
7916
- statusCode?: InputMaybe<Scalars['Int']['input']>;
7917
- targetPattern?: InputMaybe<Scalars['String']['input']>;
7918
- };
7919
7762
  export type UpdateTenantInput = {
7920
7763
  name?: InputMaybe<Scalars['String']['input']>;
7921
7764
  };
@@ -7998,17 +7841,17 @@ export type UpsertEmailTemplateInput = {
7998
7841
  };
7999
7842
  export type UsageLimitStatus = {
8000
7843
  __typename?: 'UsageLimitStatus';
8001
- current: Scalars['Int']['output'];
8002
- limit: Scalars['Int']['output'];
7844
+ current: Scalars['BigInt']['output'];
7845
+ limit: Scalars['BigInt']['output'];
8003
7846
  metric: BillingMetric;
8004
7847
  percentUsed: Scalars['Float']['output'];
8005
7848
  status: LimitStatus;
8006
7849
  };
8007
7850
  export type UsageMetricValue = {
8008
7851
  __typename?: 'UsageMetricValue';
8009
- current: Scalars['Float']['output'];
8010
- included: Scalars['Float']['output'];
8011
- max?: Maybe<Scalars['Float']['output']>;
7852
+ current: Scalars['BigInt']['output'];
7853
+ included: Scalars['BigInt']['output'];
7854
+ max?: Maybe<Scalars['BigInt']['output']>;
8012
7855
  metric: BillingMetric;
8013
7856
  percentUsed: Scalars['Float']['output'];
8014
7857
  };