@cmscraft/schema 0.3.6 → 0.3.17

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/types.d.ts CHANGED
@@ -52,6 +52,10 @@ export interface Scalars {
52
52
  output: any;
53
53
  };
54
54
  }
55
+ export interface AddCustomerEmailInput {
56
+ /** The address to add or change to; it gets a 6-digit code */
57
+ email: Scalars['String']['input'];
58
+ }
55
59
  export declare enum AdoptionRequestStatus {
56
60
  Approved = "APPROVED",
57
61
  Cancelled = "CANCELLED",
@@ -238,6 +242,54 @@ export interface CategoryTreeNode {
238
242
  seoUrl?: Maybe<Scalars['String']['output']>;
239
243
  slug: Scalars['String']['output'];
240
244
  }
245
+ export interface ClientZoneAttributeDefinition {
246
+ description?: Maybe<Array<LocalizedText>>;
247
+ /** True: the Customer edits it (updateMyAttributes); false: shown only */
248
+ editable: Scalars['Boolean']['output'];
249
+ /** The one long free-text field: show the "no health, ID or bank details" warning with it */
250
+ isNote: Scalars['Boolean']['output'];
251
+ key: Scalars['String']['output'];
252
+ label: Array<LocalizedText>;
253
+ namespace: Scalars['String']['output'];
254
+ options: CustomerAttributeOptions;
255
+ position: Scalars['Int']['output'];
256
+ /** A form prefill only, never stored as a value */
257
+ prefill?: Maybe<Scalars['JSON']['output']>;
258
+ /** A profile save (updateMyAttributes) must fill it when the Customer may write it */
259
+ required: Scalars['Boolean']['output'];
260
+ type: CustomerAttributeType;
261
+ }
262
+ /** A record type the signed-in Customer may read: how to render its values (no personal data) */
263
+ export interface ClientZoneRecordType {
264
+ audience: CustomerRecordAudience;
265
+ cardinality: CustomerRecordCardinality;
266
+ fields: Array<CustomerRecordField>;
267
+ label: Array<LocalizedText>;
268
+ namespace: Scalars['String']['output'];
269
+ position: Scalars['Int']['output'];
270
+ /** True: myRecords needs a second factor proved in the last 15 minutes (STEP_UP_REQUIRED) */
271
+ sensitive: Scalars['Boolean']['output'];
272
+ type: Scalars['String']['output'];
273
+ }
274
+ /** How people sign in on this site, for rendering its sign-in page. No personal data; tier NONE when never set */
275
+ export interface ClientZoneSignIn {
276
+ /** False: no e-mail sign-in links, show social sign-in only */
277
+ emailSignIn: Scalars['Boolean']['output'];
278
+ providers: Array<CustomerProvider>;
279
+ signupMode: ClientZoneSignupMode;
280
+ tier: ClientZoneTier;
281
+ }
282
+ /** self = people create their own Customer; invite = staff invitation only */
283
+ export declare enum ClientZoneSignupMode {
284
+ Invite = "INVITE",
285
+ Self = "SELF"
286
+ }
287
+ /** What the site offers its Customers: none (no login), basic, or secure (sensitive-data D15) */
288
+ export declare enum ClientZoneTier {
289
+ Basic = "BASIC",
290
+ None = "NONE",
291
+ Secure = "SECURE"
292
+ }
241
293
  export interface Content {
242
294
  author?: Maybe<Author>;
243
295
  category?: Maybe<Category>;
@@ -357,6 +409,166 @@ export interface CurrencyType {
357
409
  symbol: Scalars['String']['output'];
358
410
  updatedAt?: Maybe<Scalars['DateTime']['output']>;
359
411
  }
412
+ /** The signed-in client-zone Customer of this site (never an admin user) */
413
+ export interface Customer {
414
+ /** The Customer's attribute values they may read (customerAccess READ or READ_WRITE). Personal data: never cache it */
415
+ attributes: Array<CustomerAttributeValue>;
416
+ avatarUrl?: Maybe<Scalars['String']['output']>;
417
+ createdAt: Scalars['DateTime']['output'];
418
+ displayName: Scalars['String']['output'];
419
+ email?: Maybe<Scalars['String']['output']>;
420
+ /** False until the Customer proves the address (magic link or code) */
421
+ emailVerified: Scalars['Boolean']['output'];
422
+ id: Scalars['Int']['output'];
423
+ identities: Array<CustomerIdentity>;
424
+ locale?: Maybe<Scalars['String']['output']>;
425
+ }
426
+ /** Limits on the values; which apply depends on the type */
427
+ export interface CustomerAttributeOptions {
428
+ /** SELECT / MULTI_SELECT: the allowed values (1..100) */
429
+ choices?: Maybe<Array<Scalars['String']['output']>>;
430
+ /** NUMBER: whole numbers only */
431
+ integer?: Maybe<Scalars['Boolean']['output']>;
432
+ /** NUMBER: highest allowed */
433
+ max?: Maybe<Scalars['Float']['output']>;
434
+ /** TEXT: at most this many characters (1..1000, default 1000) */
435
+ maxLength?: Maybe<Scalars['Int']['output']>;
436
+ /** NUMBER: lowest allowed */
437
+ min?: Maybe<Scalars['Float']['output']>;
438
+ /** TEXT: a PostgreSQL regular expression the value must match; anchor it (^…$) to match the whole value. The server decides: a check in the browser (JavaScript) is a hint only, its syntax differs */
439
+ pattern?: Maybe<Scalars['String']['output']>;
440
+ }
441
+ /** More types may come: treat a type you do not know as read-only */
442
+ export declare enum CustomerAttributeType {
443
+ Boolean = "BOOLEAN",
444
+ Date = "DATE",
445
+ Json = "JSON",
446
+ MultiSelect = "MULTI_SELECT",
447
+ Number = "NUMBER",
448
+ Select = "SELECT",
449
+ Text = "TEXT"
450
+ }
451
+ export interface CustomerAttributeValue {
452
+ key: Scalars['String']['output'];
453
+ namespace: Scalars['String']['output'];
454
+ value: Scalars['JSON']['output'];
455
+ }
456
+ export interface CustomerAttributeValueInput {
457
+ key: Scalars['String']['input'];
458
+ namespace: Scalars['String']['input'];
459
+ /** null removes the value */
460
+ value?: InputMaybe<Scalars['JSON']['input']>;
461
+ }
462
+ /** Keep both tokens server-side (httpOnly cookies on the site domain); send the access token as Bearer */
463
+ export interface CustomerAuthPayload {
464
+ accessToken: Scalars['String']['output'];
465
+ accessTokenExpiresAt: Scalars['DateTime']['output'];
466
+ /** Secure tier, first sign-in only: the 10 single-use backup codes, shown this once. Null on every other sign-in */
467
+ backupCodes?: Maybe<Array<Scalars['String']['output']>>;
468
+ customer: Customer;
469
+ /** Null only when a parallel refresh already rotated the token: keep the refresh token you have */
470
+ refreshToken?: Maybe<Scalars['String']['output']>;
471
+ }
472
+ /** A social login linked to the signed-in Customer */
473
+ export interface CustomerIdentity {
474
+ createdAt: Scalars['DateTime']['output'];
475
+ lastUsedAt?: Maybe<Scalars['DateTime']['output']>;
476
+ provider: CustomerProvider;
477
+ }
478
+ /** Basic tier: the session. Secure tier: the second-factor challenge */
479
+ export type CustomerLoginStep = CustomerAuthPayload | SecondFactorChallenge;
480
+ export declare enum CustomerProvider {
481
+ Discord = "DISCORD",
482
+ Google = "GOOGLE",
483
+ Steam = "STEAM",
484
+ Twitch = "TWITCH"
485
+ }
486
+ /** One of the signed-in Customer's records (or a shared one) */
487
+ export interface CustomerRecord {
488
+ /** main for a ONE type */
489
+ handle: Scalars['String']['output'];
490
+ id: Scalars['ID']['output'];
491
+ namespace: Scalars['String']['output'];
492
+ position: Scalars['Int']['output'];
493
+ type: Scalars['String']['output'];
494
+ updatedAt: Scalars['DateTime']['output'];
495
+ /** Keyed by field. Decimals are strings: parse them, never through a float for money */
496
+ values: Scalars['JSON']['output'];
497
+ }
498
+ export declare enum CustomerRecordAudience {
499
+ Customer = "CUSTOMER",
500
+ Shared = "SHARED"
501
+ }
502
+ export declare enum CustomerRecordCardinality {
503
+ Many = "MANY",
504
+ One = "ONE"
505
+ }
506
+ export interface CustomerRecordChoice {
507
+ label: Array<LocalizedText>;
508
+ value: Scalars['String']['output'];
509
+ }
510
+ export interface CustomerRecordField {
511
+ description?: Maybe<Array<LocalizedText>>;
512
+ /** The key in a record's values (camelCase allowed); never renamed */
513
+ key: Scalars['String']['output'];
514
+ label: Array<LocalizedText>;
515
+ options: CustomerRecordFieldOptions;
516
+ required: Scalars['Boolean']['output'];
517
+ /** What the field means to renderers and agents */
518
+ role?: Maybe<CustomerRecordFieldRole>;
519
+ type: CustomerRecordFieldType;
520
+ }
521
+ /** Limits on the values; which apply depends on the field type */
522
+ export interface CustomerRecordFieldOptions {
523
+ /** SELECT: the allowed values (1..100) */
524
+ choices?: Maybe<Array<CustomerRecordChoice>>;
525
+ /** MONEY: the allowed ISO 4217 currencies (any when absent) */
526
+ currencies?: Maybe<Array<Scalars['String']['output']>>;
527
+ /** NUMBER / PERCENT: highest allowed, a decimal string */
528
+ max?: Maybe<Scalars['String']['output']>;
529
+ /** TEXT: at most this many characters (1..1000; sensitive types 200) */
530
+ maxLength?: Maybe<Scalars['Int']['output']>;
531
+ /** SERIES: at most this many points (1..5000, default 5000) */
532
+ maxPoints?: Maybe<Scalars['Int']['output']>;
533
+ /** NUMBER / PERCENT: lowest allowed, a decimal string */
534
+ min?: Maybe<Scalars['String']['output']>;
535
+ /** TEXT: a PostgreSQL regular expression the value must match; anchor it (^…$). The server decides */
536
+ pattern?: Maybe<Scalars['String']['output']>;
537
+ /** NUMBER: at most this many decimal places (0..6) */
538
+ scale?: Maybe<Scalars['Int']['output']>;
539
+ /** SERIES: what the values are: MONEY:<ISO 4217>, PERCENT or NUMBER */
540
+ unit?: Maybe<Scalars['String']['output']>;
541
+ }
542
+ export declare enum CustomerRecordFieldRole {
543
+ Amount = "AMOUNT",
544
+ AsOf = "AS_OF",
545
+ History = "HISTORY",
546
+ LinkKey = "LINK_KEY",
547
+ Return = "RETURN",
548
+ Share = "SHARE",
549
+ Title = "TITLE"
550
+ }
551
+ /** More types may come: treat a type you do not know as read-only */
552
+ export declare enum CustomerRecordFieldType {
553
+ Date = "DATE",
554
+ Money = "MONEY",
555
+ Number = "NUMBER",
556
+ Percent = "PERCENT",
557
+ Select = "SELECT",
558
+ Series = "SERIES",
559
+ Text = "TEXT"
560
+ }
561
+ /** A device the Customer is signed in on */
562
+ export interface CustomerSession {
563
+ createdAt: Scalars['DateTime']['output'];
564
+ /** The session this request is made with */
565
+ current: Scalars['Boolean']['output'];
566
+ expiresAt: Scalars['DateTime']['output'];
567
+ id: Scalars['Int']['output'];
568
+ ip?: Maybe<Scalars['String']['output']>;
569
+ lastSeenAt?: Maybe<Scalars['DateTime']['output']>;
570
+ userAgent?: Maybe<Scalars['String']['output']>;
571
+ }
360
572
  export declare enum DeliveryMethodType {
361
573
  Flat = "Flat",
362
574
  Packeta = "Packeta",
@@ -517,9 +729,15 @@ export declare enum MainMailDtoTemplate {
517
729
  CreatorShopReadyForPickup = "creator_shop_ready_for_pickup",
518
730
  CreatorShopWithdrawalReceived = "creator_shop_withdrawal_received",
519
731
  CreatorShopWithdrawalRequest = "creator_shop_withdrawal_request",
732
+ CustomerEmailCode = "customer_email_code",
733
+ CustomerInactivityWarning = "customer_inactivity_warning",
734
+ CustomerInvite = "customer_invite",
735
+ CustomerLoginLink = "customer_login_link",
736
+ CustomerSecondFactorReset = "customer_second_factor_reset",
520
737
  DomainReady = "domain_ready",
521
738
  EmailVerification = "email_verification",
522
739
  Newsletter = "newsletter",
740
+ NewsletterConfirm = "newsletter_confirm",
523
741
  NewsletterWelcome = "newsletter_welcome",
524
742
  PasswordReset = "password_reset",
525
743
  ProjectInvitation = "project_invitation",
@@ -560,6 +778,7 @@ export declare enum ModuleType {
560
778
  Blog = "BLOG",
561
779
  Bookings = "BOOKINGS",
562
780
  Categories = "CATEGORIES",
781
+ ClientZone = "CLIENT_ZONE",
563
782
  Connections = "CONNECTIONS",
564
783
  Content = "CONTENT",
565
784
  Donations = "DONATIONS",
@@ -571,34 +790,103 @@ export declare enum ModuleType {
571
790
  Scheduling = "SCHEDULING"
572
791
  }
573
792
  export interface Mutation {
793
+ /** Mail a 6-digit code (valid 15 min) to an address to add or change to. Needs a session signed in within the last 30 min (REAUTH_REQUIRED). 5 per hour (TOO_MANY_EMAIL_CODES); only the newest code works. Nothing changes until verifyCustomerEmail */
794
+ addCustomerEmail: Scalars['Boolean']['output'];
574
795
  cancelRegistration: Scalars['Boolean']['output'];
796
+ /** The challenge's second factor → the session. Exactly one of code (6 digits from the authenticator app) and backupCode. The first good code enrols the Customer and returns backupCodes once. INVALID_SECOND_FACTOR_CODE (wrong or reused code), CHALLENGE_EXPIRED (unknown, used, older than 5 min, or its 5 tries spent), SECOND_FACTOR_LOCKED (10 wrong codes in an hour) */
797
+ completeCustomerSecondFactor: CustomerAuthPayload;
575
798
  /** Create a guest booking */
576
799
  createPublicBooking: PublicBookingResult;
577
800
  /** Place a shop order; returns the order link token once */
578
801
  createShopOrder: CreateShopOrderResult;
802
+ /** Delete your account and everything linked to it, at once */
803
+ deleteMe: Scalars['Boolean']['output'];
804
+ /** Trade the sign-in link's token for a session (single use). Basic tier only: a secure site answers SECOND_FACTOR_REQUIRED, use startCustomerLogin */
805
+ exchangeCustomerLoginToken: CustomerAuthPayload;
806
+ /** End the session this request is signed in with */
807
+ logoutCustomer: Scalars['Boolean']['output'];
808
+ /** End every session of the signed-in Customer, this one included */
809
+ logoutCustomerEverywhere: Scalars['Boolean']['output'];
810
+ /** Trade the social callback's one-time code plus your verifier for a session (single use, 60 s) */
811
+ redeemCustomerSocialCode: CustomerAuthPayload;
812
+ /** New access token; the refresh token rotates */
813
+ refreshCustomerSession: CustomerAuthPayload;
814
+ /** Secure tier: a good authenticator code replaces all backup codes with 10 new ones, shown this once */
815
+ regenerateCustomerBackupCodes: Array<Scalars['String']['output']>;
816
+ /** Email a sign-in link. Always true: the answer never says whether the address has an account, nor whether the site sends e-mail links at all (clientZoneSignIn.emailSignIn) */
817
+ requestCustomerLogin: Scalars['Boolean']['output'];
579
818
  /** Record the consumer's withdrawal request; by token, or by order number + e-mail */
580
819
  requestShopOrderWithdrawal: Scalars['Boolean']['output'];
820
+ /** Sign out one of your own devices */
821
+ revokeSession: Scalars['Boolean']['output'];
581
822
  sendContactRequest: Scalars['Boolean']['output'];
823
+ /** Trade the sign-in link's token (single use) for the next step: the session on a basic site, a SecondFactorChallenge on a secure one (then completeCustomerSecondFactor). Same refusals as exchangeCustomerLoginToken */
824
+ startCustomerLogin: CustomerLoginStep;
825
+ /** Start a social sign-in: returns the URL to send the browser to (valid 5 min). The code comes back to the client zone's callback path */
826
+ startCustomerSocialLogin: Scalars['String']['output'];
827
+ /** Secure tier: a good authenticator code marks this session's second factor fresh now (before sensitive downloads). Same wrong-code counting and lock as sign-in */
828
+ stepUpCustomer: Scalars['Boolean']['output'];
582
829
  submitAdoptionRequest: PublicAdoptionRequestResult;
583
830
  submitRegistration: RegistrationResult;
584
831
  subscribeNewsletter: PublicNewsletterSubscription;
585
832
  unsubscribeNewsletter: Scalars['Boolean']['output'];
833
+ updateMe: Customer;
834
+ /** Save the signed-in Customer's own attributes: only the keys given change, null removes one. Only READ_WRITE keys (ATTRIBUTE_NOT_WRITABLE; a key they cannot see is UNKNOWN_ATTRIBUTE). INVALID_ATTRIBUTE_VALUE and ATTRIBUTE_REQUIRED name the key in extensions; ATTRIBUTES_TOO_LARGE past 16 KB. A value the Customer writes is theirs to forge: anything the site computes belongs in a READ attribute */
835
+ updateMyAttributes: Customer;
836
+ /** Prove the address with its code; it becomes the verified e-mail. INVALID_EMAIL_CODE (wrong, expired, or 5 wrong guesses), EMAIL_IN_USE (another Customer of this site has it). 10 wrong guesses at one address in 24 h lock it for that Customer, 100 from all Customers together lock it for everyone, until they age out */
837
+ verifyCustomerEmail: Customer;
838
+ }
839
+ export interface MutationAddCustomerEmailArgs {
840
+ input: AddCustomerEmailInput;
586
841
  }
587
842
  export interface MutationCancelRegistrationArgs {
588
843
  token: Scalars['String']['input'];
589
844
  }
845
+ export interface MutationCompleteCustomerSecondFactorArgs {
846
+ backupCode?: InputMaybe<Scalars['String']['input']>;
847
+ challengeToken: Scalars['String']['input'];
848
+ code?: InputMaybe<Scalars['String']['input']>;
849
+ }
590
850
  export interface MutationCreatePublicBookingArgs {
591
851
  input: CreatePublicBookingInput;
592
852
  }
593
853
  export interface MutationCreateShopOrderArgs {
594
854
  input: CreateShopOrderInput;
595
855
  }
856
+ export interface MutationExchangeCustomerLoginTokenArgs {
857
+ token: Scalars['String']['input'];
858
+ }
859
+ export interface MutationRedeemCustomerSocialCodeArgs {
860
+ code: Scalars['String']['input'];
861
+ verifier: Scalars['String']['input'];
862
+ }
863
+ export interface MutationRefreshCustomerSessionArgs {
864
+ refreshToken: Scalars['String']['input'];
865
+ }
866
+ export interface MutationRegenerateCustomerBackupCodesArgs {
867
+ code: Scalars['String']['input'];
868
+ }
869
+ export interface MutationRequestCustomerLoginArgs {
870
+ input: RequestCustomerLoginInput;
871
+ }
596
872
  export interface MutationRequestShopOrderWithdrawalArgs {
597
873
  input: ShopWithdrawalInput;
598
874
  }
875
+ export interface MutationRevokeSessionArgs {
876
+ id: Scalars['Int']['input'];
877
+ }
599
878
  export interface MutationSendContactRequestArgs {
600
879
  mailInput: MailInputType;
601
880
  }
881
+ export interface MutationStartCustomerLoginArgs {
882
+ token: Scalars['String']['input'];
883
+ }
884
+ export interface MutationStartCustomerSocialLoginArgs {
885
+ input: StartCustomerSocialLoginInput;
886
+ }
887
+ export interface MutationStepUpCustomerArgs {
888
+ code: Scalars['String']['input'];
889
+ }
602
890
  export interface MutationSubmitAdoptionRequestArgs {
603
891
  input: PublicCreateAdoptionRequestInput;
604
892
  }
@@ -611,6 +899,15 @@ export interface MutationSubscribeNewsletterArgs {
611
899
  export interface MutationUnsubscribeNewsletterArgs {
612
900
  token: Scalars['String']['input'];
613
901
  }
902
+ export interface MutationUpdateMeArgs {
903
+ input: UpdateMeInput;
904
+ }
905
+ export interface MutationUpdateMyAttributesArgs {
906
+ input: UpdateMyAttributesInput;
907
+ }
908
+ export interface MutationVerifyCustomerEmailArgs {
909
+ input: VerifyCustomerEmailInput;
910
+ }
614
911
  export interface NewsletterType {
615
912
  createdAt: Scalars['DateTime']['output'];
616
913
  defaultFromEmail?: Maybe<Scalars['String']['output']>;
@@ -1068,7 +1365,12 @@ export interface PublicDeliveryMethod {
1068
1365
  }
1069
1366
  export interface PublicNewsletterSubscription {
1070
1367
  email: Scalars['String']['output'];
1368
+ /**
1369
+ * Always 0
1370
+ * @deprecated Always 0: the answer must not tell whether the address was already on the list
1371
+ */
1071
1372
  id: Scalars['Int']['output'];
1373
+ /** Always PENDING: the address gets a confirmation e-mail unless it is already subscribed, and the answer does not say which */
1072
1374
  status: SubscriberStatus;
1073
1375
  }
1074
1376
  export interface PublicOrder {
@@ -1229,6 +1531,14 @@ export declare enum QrFormat {
1229
1531
  export interface Query {
1230
1532
  /** Get blog authors */
1231
1533
  authors: Array<Author>;
1534
+ /** The Customer attributes a Customer may see on this site, for its profile form (no personal data). Cache it with the site's revalidation tag client-zone-attributes */
1535
+ clientZoneAttributeDefinitions: Array<ClientZoneAttributeDefinition>;
1536
+ /** The record types a Customer may read on this site, to render myRecords (no personal data). Cache it with the site's revalidation tag client-zone-record-types */
1537
+ clientZoneRecordTypes: Array<ClientZoneRecordType>;
1538
+ /** How people sign in on this site (tier, signup mode, e-mail links, social providers). No personal data */
1539
+ clientZoneSignIn: ClientZoneSignIn;
1540
+ /** Download my data: everything held about the signed-in Customer (JSON) */
1541
+ exportMe: Scalars['JSON']['output'];
1232
1542
  getPublicContentById: Content;
1233
1543
  getPublicContentBySeoUrl: Content;
1234
1544
  getPublicContentsByTags: ContentsPage;
@@ -1244,6 +1554,12 @@ export interface Query {
1244
1554
  getPublicProjectModules: Array<ProjectModuleType>;
1245
1555
  getPublicSchedule?: Maybe<PublicSchedule>;
1246
1556
  isPetAvailableForAdoption: Scalars['Boolean']['output'];
1557
+ /** The signed-in Customer */
1558
+ me: Customer;
1559
+ /** The signed-in Customer's records of one namespace (optionally some types), plus shared ones, in display order. A sensitive type needs a second factor proved in the last 15 minutes: STEP_UP_REQUIRED, then stepUpCustomer and ask again. Never cache the answer (fetch with no-store, never inside a shared cache) */
1560
+ myRecords: Array<CustomerRecord>;
1561
+ /** The signed-in Customer's devices */
1562
+ mySessions: Array<CustomerSession>;
1247
1563
  /** Get post (blog) categories */
1248
1564
  postCategories: Array<Category>;
1249
1565
  projectContents: ContentsPage;
@@ -1334,6 +1650,10 @@ export interface QueryGetPublicScheduleArgs {
1334
1650
  export interface QueryIsPetAvailableForAdoptionArgs {
1335
1651
  petId: Scalars['Int']['input'];
1336
1652
  }
1653
+ export interface QueryMyRecordsArgs {
1654
+ namespace: Scalars['String']['input'];
1655
+ types?: InputMaybe<Array<Scalars['String']['input']>>;
1656
+ }
1337
1657
  export interface QueryProjectContentsArgs {
1338
1658
  pageOptionInput: PageOptionsInput;
1339
1659
  }
@@ -1430,6 +1750,13 @@ export interface RentalRate {
1430
1750
  unit: RateUnit;
1431
1751
  updatedAt?: Maybe<Scalars['DateTime']['output']>;
1432
1752
  }
1753
+ export interface RequestCustomerLoginInput {
1754
+ /** The "I am 15 or older" box. Required to create an account: without it an unknown address gets no link */
1755
+ ageConfirmed?: Scalars['Boolean']['input'];
1756
+ email: Scalars['String']['input'];
1757
+ /** The site's verify page; must be on one of the project's domains. The link adds ?token= */
1758
+ verifyUrl: Scalars['String']['input'];
1759
+ }
1433
1760
  export interface SalePriceType {
1434
1761
  amount: Scalars['Float']['output'];
1435
1762
  compareAt?: Maybe<Scalars['Float']['output']>;
@@ -1441,6 +1768,20 @@ export interface SalePriceType {
1441
1768
  taxIncluded: Scalars['Boolean']['output'];
1442
1769
  updatedAt?: Maybe<Scalars['DateTime']['output']>;
1443
1770
  }
1771
+ /** Secure tier: the sign-in link was good, now the second factor. Send challengeToken with a code to completeCustomerSecondFactor within 5 minutes; 5 wrong codes end it */
1772
+ export interface SecondFactorChallenge {
1773
+ /** Single use; keep it server-side */
1774
+ challengeToken: Scalars['String']['output'];
1775
+ /** False: the Customer sets up an authenticator app first (otpauthUri / manualKey / QR code) */
1776
+ enrolled: Scalars['Boolean']['output'];
1777
+ expiresAt: Scalars['DateTime']['output'];
1778
+ /** The new secret (base32) to type in by hand; only when not enrolled */
1779
+ manualKey?: Maybe<Scalars['String']['output']>;
1780
+ /** otpauth:// URI of the new secret; only when not enrolled */
1781
+ otpauthUri?: Maybe<Scalars['String']['output']>;
1782
+ /** PNG data URL of the otpauth QR code; only when not enrolled */
1783
+ qrCodeDataUrl?: Maybe<Scalars['String']['output']>;
1784
+ }
1444
1785
  export interface ShopAddress {
1445
1786
  city: Scalars['String']['output'];
1446
1787
  country: Scalars['String']['output'];
@@ -1575,6 +1916,16 @@ export declare enum Species {
1575
1916
  Reptile = "REPTILE",
1576
1917
  SmallAnimal = "SMALL_ANIMAL"
1577
1918
  }
1919
+ export interface StartCustomerSocialLoginInput {
1920
+ /** The "I am 15 or older" box. Required to create an account */
1921
+ ageConfirmed?: Scalars['Boolean']['input'];
1922
+ /** base64url(sha256(verifier)); the server keeps the verifier and redeems the code with it */
1923
+ challenge: Scalars['String']['input'];
1924
+ /** TWITCH only for now */
1925
+ provider: CustomerProvider;
1926
+ /** Where the one-time code comes back: the client zone's callback path on one of the site's domains */
1927
+ returnUrl: Scalars['String']['input'];
1928
+ }
1578
1929
  export declare enum StatisticsSection {
1579
1930
  Audience = "AUDIENCE",
1580
1931
  Events = "EVENTS",
@@ -1618,11 +1969,24 @@ export interface Tag {
1618
1969
  label: Scalars['String']['output'];
1619
1970
  updatedAt?: Maybe<Scalars['DateTime']['output']>;
1620
1971
  }
1972
+ export interface UpdateMeInput {
1973
+ displayName?: InputMaybe<Scalars['String']['input']>;
1974
+ /** e.g. en, cs, en-GB */
1975
+ locale?: InputMaybe<Scalars['String']['input']>;
1976
+ }
1977
+ export interface UpdateMyAttributesInput {
1978
+ /** Only these keys change; at most 50 */
1979
+ values: Array<CustomerAttributeValueInput>;
1980
+ }
1621
1981
  export interface VatLine {
1622
1982
  baseMinor: Scalars['Int']['output'];
1623
1983
  rate: Scalars['Int']['output'];
1624
1984
  vatMinor: Scalars['Int']['output'];
1625
1985
  }
1986
+ export interface VerifyCustomerEmailInput {
1987
+ /** The 6-digit code from the e-mail */
1988
+ code: Scalars['String']['input'];
1989
+ }
1626
1990
  /** Supported SEO verification providers */
1627
1991
  export declare enum ProjectEntityEnum {
1628
1992
  Google = "Google",