@lepsto/sdk-app 91.0.0 → 91.0.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +4 -13
  2. package/dist/_types/gen/client.gen.d.ts +1 -44
  3. package/dist/_types/gen/manifest.gen.d.ts +1 -1
  4. package/dist/_types/gen/types.gen.d.ts +45 -860
  5. package/dist/_types/gen/users/index.d.ts +1 -1
  6. package/dist/_types/gen/users/queryOptions.gen.d.ts +1 -17
  7. package/dist/index.cjs +0 -393
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +11312 -30
  10. package/dist/index.js.map +1 -1
  11. package/dist/users/index.cjs +0 -20
  12. package/dist/users/index.cjs.map +1 -1
  13. package/dist/users/index.js +1 -17
  14. package/dist/users/index.js.map +1 -1
  15. package/package.json +2 -12
  16. package/src/gen/bindings.gen.ts +1 -374
  17. package/src/gen/client.gen.ts +0 -85
  18. package/src/gen/manifest.gen.ts +1 -29
  19. package/src/gen/types.gen.ts +45 -914
  20. package/src/gen/users/index.ts +1 -1
  21. package/src/gen/users/queryOptions.gen.ts +0 -25
  22. package/dist/_types/gen/playground/connect.gen.d.ts +0 -3
  23. package/dist/_types/gen/playground/index.d.ts +0 -3
  24. package/dist/_types/gen/playground/queryOptions.gen.d.ts +0 -70
  25. package/dist/chunk-LMCZVZKI.js +0 -11689
  26. package/dist/chunk-LMCZVZKI.js.map +0 -1
  27. package/dist/playground/index.cjs +0 -106
  28. package/dist/playground/index.cjs.map +0 -1
  29. package/dist/playground/index.d.cts +0 -1
  30. package/dist/playground/index.d.ts +0 -1
  31. package/dist/playground/index.js +0 -78
  32. package/dist/playground/index.js.map +0 -1
  33. package/src/gen/playground/connect.gen.ts +0 -9
  34. package/src/gen/playground/index.ts +0 -4
  35. package/src/gen/playground/queryOptions.gen.ts +0 -119
@@ -96630,332 +96630,6 @@ export interface OrganizationYoutubeInstallInput {
96630
96630
  export interface OrganizationYoutubeInstallOutput {
96631
96631
  url: string;
96632
96632
  }
96633
- export interface PlaygroundAnalyticsOverviewInput {
96634
- /**
96635
- * Max records per entity in recent[]; omit for the endpoint default
96636
- */
96637
- limit?: number;
96638
- }
96639
- export interface PlaygroundAnalyticsOverviewOutput {
96640
- ok: boolean;
96641
- minted: boolean;
96642
- overview?: unknown;
96643
- http_status: number;
96644
- }
96645
- export interface PlaygroundBillingEntitlementsInput {
96646
- }
96647
- export interface PlaygroundBillingEntitlementsOutput {
96648
- ok: boolean;
96649
- minted: boolean;
96650
- http_status: number;
96651
- entitlements?: unknown;
96652
- }
96653
- export interface PlaygroundBillingRecordUsageInput {
96654
- /**
96655
- * Quantity of events to record against playground-events (SUM); defaults to 1
96656
- */
96657
- value?: number;
96658
- }
96659
- export interface PlaygroundBillingRecordUsageOutput {
96660
- minted: boolean;
96661
- accepted: (number | null);
96662
- recorded: boolean;
96663
- duplicates: (number | null);
96664
- http_status: number;
96665
- }
96666
- export interface PlaygroundClickupCreateTaskInput {
96667
- /**
96668
- * Task title; defaults to a fixture label
96669
- */
96670
- name?: string;
96671
- /**
96672
- * ClickUp list id; falls back to CLICKUP_TEST_LIST_ID
96673
- */
96674
- listId?: string;
96675
- }
96676
- export interface PlaygroundClickupCreateTaskOutput {
96677
- minted: boolean;
96678
- task_id: (string | null);
96679
- list_status: number;
96680
- vend_status: number;
96681
- clickup_status: number;
96682
- installation_count: number;
96683
- }
96684
- export interface PlaygroundClickupGetLastWebhookInput {
96685
- }
96686
- export type PlaygroundClickupGetLastWebhookOutput = ({
96687
- payload: string;
96688
- event_id: string;
96689
- provider: string;
96690
- verified: boolean;
96691
- product_id: string;
96692
- occurred_at: string;
96693
- connector_id: string;
96694
- clickup_event: (string | null);
96695
- receipt_count: number;
96696
- } | {
96697
- found: false;
96698
- });
96699
- export interface PlaygroundClickupGetOverviewInput {
96700
- }
96701
- export interface PlaygroundClickupGetOverviewOutput {
96702
- team: ({
96703
- teamId: string;
96704
- teamName: string;
96705
- } | null);
96706
- lists: PlaygroundClickupGetOverviewOutputItems[];
96707
- tasks: {
96708
- id: string;
96709
- name: string;
96710
- status: (string | null);
96711
- }[];
96712
- minted: boolean;
96713
- spaces: PlaygroundClickupGetOverviewOutputItems[];
96714
- list_status: number;
96715
- vend_status: number;
96716
- lists_status: number;
96717
- tasks_status: number;
96718
- spaces_status: number;
96719
- folders_status: number;
96720
- installation_count: number;
96721
- }
96722
- export interface PlaygroundClickupGetOverviewOutputItems {
96723
- id: string;
96724
- name: string;
96725
- }
96726
- export interface PlaygroundEchoPingInput {
96727
- /**
96728
- * The text to echo back, 1–1024 characters
96729
- */
96730
- message: string;
96731
- }
96732
- export interface PlaygroundEchoPingOutput {
96733
- /**
96734
- * The message exactly as it was received
96735
- */
96736
- message: string;
96737
- /**
96738
- * The product the call was resolved to
96739
- */
96740
- productId: string;
96741
- /**
96742
- * ISO-8601 instant (UTC) at which the call reached the service
96743
- */
96744
- receivedAt: string;
96745
- }
96746
- export interface PlaygroundGdriveGetLastChangeInput {
96747
- }
96748
- export type PlaygroundGdriveGetLastChangeOutput = ({
96749
- file_id: string;
96750
- removed: boolean;
96751
- file_name: (string | null);
96752
- mime_type: (string | null);
96753
- product_id: string;
96754
- occurred_at: string;
96755
- connector_id: string;
96756
- resource_state: string;
96757
- } | {
96758
- found: false;
96759
- });
96760
- export interface PlaygroundGdriveReadFileInput {
96761
- /**
96762
- * Drive file id; falls back to GDRIVE_TEST_FILE_ID, then the first picked file
96763
- */
96764
- fileId?: string;
96765
- }
96766
- export interface PlaygroundGdriveReadFileOutput {
96767
- minted: boolean;
96768
- file_id: (string | null);
96769
- file_name: (string | null);
96770
- mime_type: (string | null);
96771
- file_count: number;
96772
- get_status: number;
96773
- list_status: number;
96774
- vend_status: number;
96775
- content_bytes: (number | null);
96776
- }
96777
- export interface PlaygroundGoogleadsReadCustomerInput {
96778
- }
96779
- export interface PlaygroundGoogleadsReadCustomerOutput {
96780
- minted: boolean;
96781
- vended: boolean;
96782
- customer_id: (string | null);
96783
- vend_status: number;
96784
- result_count: number;
96785
- search_status: number;
96786
- login_customer_id: (string | null);
96787
- }
96788
- export interface PlaygroundLifecycleGetStateInput {
96789
- }
96790
- export interface PlaygroundLifecycleGetStateOutput {
96791
- blocked: boolean;
96792
- archived: boolean;
96793
- productId: string;
96794
- lastBlockTransition: ({
96795
- eventId: string;
96796
- eventName: string;
96797
- productId: string;
96798
- occurredAt: string;
96799
- recordedAt: string;
96800
- receiptCount: number;
96801
- organizationId: string;
96802
- cascadedFromOrg: boolean;
96803
- } | null);
96804
- lastArchiveTransition: ({
96805
- eventId: string;
96806
- eventName: string;
96807
- productId: string;
96808
- occurredAt: string;
96809
- recordedAt: string;
96810
- receiptCount: number;
96811
- organizationId: string;
96812
- cascadedFromOrg: boolean;
96813
- } | null);
96814
- }
96815
- export interface PlaygroundLifecycleListEventsInput {
96816
- }
96817
- export type PlaygroundLifecycleListEventsOutput = {
96818
- eventId: string;
96819
- eventName: string;
96820
- productId: string;
96821
- occurredAt: string;
96822
- recordedAt: string;
96823
- receiptCount: number;
96824
- organizationId: string;
96825
- cascadedFromOrg: boolean;
96826
- }[];
96827
- export interface PlaygroundWebhookGetLastInput {
96828
- }
96829
- export type PlaygroundWebhookGetLastOutput = ({
96830
- payload?: unknown;
96831
- event_id: string;
96832
- provider: string;
96833
- verified: boolean;
96834
- product_id: string;
96835
- occurred_at: string;
96836
- connector_id: string;
96837
- delivery_count: number;
96838
- } | {
96839
- found: false;
96840
- });
96841
- export interface PlaygroundWorkflowEchoInput {
96842
- /**
96843
- * The text to store, 1–1024 characters
96844
- */
96845
- note: string;
96846
- /**
96847
- * Optional labels stored alongside the note, at most 20
96848
- *
96849
- * @maxItems 20
96850
- */
96851
- tags?: [] | [string] | [string, string] | [string, string, string] | [string, string, string, string] | [string, string, string, string, string] | [string, string, string, string, string, string] | [string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
96852
- }
96853
- export interface PlaygroundWorkflowEchoOutput {
96854
- /**
96855
- * Identifier of the stored echo
96856
- */
96857
- id: string;
96858
- /**
96859
- * The note exactly as it was received
96860
- */
96861
- note: string;
96862
- /**
96863
- * The tags exactly as they were received
96864
- */
96865
- tags: string[];
96866
- /**
96867
- * Correlation id for this echo. The playground/workflow.echoed event published about two seconds later repeats it, which is how a composer matches the completion back to this step.
96868
- */
96869
- echo_id: string;
96870
- /**
96871
- * ISO-8601 instant (UTC) at which the echo was stored
96872
- */
96873
- received_at: string;
96874
- }
96875
- export interface PlaygroundWorkflowEchoListInput {
96876
- }
96877
- export type PlaygroundWorkflowEchoListOutput = {
96878
- /**
96879
- * Identifier of the stored echo
96880
- */
96881
- id: string;
96882
- /**
96883
- * The note exactly as it was received
96884
- */
96885
- note: string;
96886
- /**
96887
- * The tags exactly as they were received
96888
- */
96889
- tags: string[];
96890
- /**
96891
- * ISO-8601 instant (UTC) at which the echo was stored
96892
- */
96893
- received_at: string;
96894
- }[];
96895
- export interface PlaygroundWorkflowPingInput {
96896
- /**
96897
- * Class of ping, echoed on the emitted event and filterable on the trigger. Defaults to 'manual'.
96898
- */
96899
- kind?: string;
96900
- }
96901
- export interface PlaygroundWorkflowPingOutput {
96902
- /**
96903
- * Correlation id for this ping. The emitted playground/workflow.ping event repeats it, which is how a composer matches the event back to this step.
96904
- */
96905
- id: string;
96906
- /**
96907
- * The name of the event that was published
96908
- */
96909
- event: string;
96910
- }
96911
- export interface PlaygroundWorkflowSubjectsListInput {
96912
- /**
96913
- * How many subjects to return, 1–100. Defaults to 25.
96914
- */
96915
- limit?: number;
96916
- /**
96917
- * The next_cursor of the previous page. Opaque — pass it back unchanged. Omit for the first page.
96918
- */
96919
- cursor?: string;
96920
- /**
96921
- * ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR AFTER this — the opposite question, the recently active population. Omit for no lower bound.
96922
- */
96923
- last_activity_after?: string;
96924
- /**
96925
- * ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR BEFORE this — the "inactive for N days" question: pass now minus N days. Omit for no upper bound.
96926
- */
96927
- last_activity_before?: string;
96928
- }
96929
- export interface PlaygroundWorkflowSubjectsListOutput {
96930
- /**
96931
- * This page of subjects, most recently active first
96932
- */
96933
- items: {
96934
- /**
96935
- * Stable identifier for the subject. This is the field a batch trigger keys on, so a subject already served in an earlier run is skipped rather than served twice.
96936
- */
96937
- subject_key: string;
96938
- /**
96939
- * Human-readable name of the subject
96940
- */
96941
- display_name: string;
96942
- /**
96943
- * ISO-8601 instant (UTC) of the subject last activity
96944
- */
96945
- last_activity_at: string;
96946
- }[];
96947
- /**
96948
- * Whether another page follows. False and a null next_cursor both mark the last page, so a consumer that loops on either terminates.
96949
- */
96950
- has_more: boolean;
96951
- /**
96952
- * Pass back as `cursor` to fetch the next page; null on the last page. Always null when has_more is false.
96953
- */
96954
- next_cursor: (string | null);
96955
- }
96956
- export interface PlaygroundWsEchoInput {
96957
- }
96958
- export type PlaygroundWsEchoOutput = unknown;
96959
96633
  export interface RealtimeArchiveExportInput {
96960
96634
  /**
96961
96635
  * Only entries with ts <= to_ts (epoch ms)
@@ -122435,9 +122109,9 @@ export interface UsersApikeysCreateInput {
122435
122109
  */
122436
122110
  name: string;
122437
122111
  /**
122438
- * 'publishable' mints a non-secret key (upk_…) that identifies this product in browser flows and stays readable. It is the only key type: the secret server key (usk_…) is retired.
122112
+ * 'server' mints a SECRET key (usk_…) for the Product's backend returned exactly once and stored hashed. 'publishable' mints a non-secret key (upk_…) that identifies this product in browser flows and stays readable.
122439
122113
  */
122440
- type: "publishable";
122114
+ type: ("server" | "publishable");
122441
122115
  }
122442
122116
  export interface UsersApikeysCreateOutput {
122443
122117
  /**
@@ -122453,15 +122127,15 @@ export interface UsersApikeysCreateOutput {
122453
122127
  */
122454
122128
  name: string;
122455
122129
  /**
122456
- * `publishable` a browser-safe key (upk_…). It is the only type.
122130
+ * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
122457
122131
  */
122458
- type: "publishable";
122132
+ type: ("server" | "publishable");
122459
122133
  /**
122460
- * The full value of the key, which is not a secret and stays readable.
122134
+ * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
122461
122135
  */
122462
122136
  value: (string | null);
122463
122137
  /**
122464
- * `upk_` plus six characters — enough to recognise a key, never to use one.
122138
+ * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
122465
122139
  */
122466
122140
  prefix: string;
122467
122141
  /**
@@ -122489,15 +122163,15 @@ export interface UsersApikeysGetOutput {
122489
122163
  */
122490
122164
  name: string;
122491
122165
  /**
122492
- * `publishable` a browser-safe key (upk_…). It is the only type.
122166
+ * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
122493
122167
  */
122494
- type: "publishable";
122168
+ type: ("server" | "publishable");
122495
122169
  /**
122496
- * The full value of the key, which is not a secret and stays readable.
122170
+ * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
122497
122171
  */
122498
122172
  value: (string | null);
122499
122173
  /**
122500
- * `upk_` plus six characters — enough to recognise a key, never to use one.
122174
+ * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
122501
122175
  */
122502
122176
  prefix: string;
122503
122177
  /**
@@ -122522,15 +122196,15 @@ export interface UsersApikeysListOutput {
122522
122196
  */
122523
122197
  name: string;
122524
122198
  /**
122525
- * `publishable` a browser-safe key (upk_…). It is the only type.
122199
+ * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
122526
122200
  */
122527
- type: "publishable";
122201
+ type: ("server" | "publishable");
122528
122202
  /**
122529
- * The full value of the key, which is not a secret and stays readable.
122203
+ * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
122530
122204
  */
122531
122205
  value: (string | null);
122532
122206
  /**
122533
- * `upk_` plus six characters — enough to recognise a key, never to use one.
122207
+ * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
122534
122208
  */
122535
122209
  prefix: string;
122536
122210
  /**
@@ -122689,7 +122363,7 @@ export interface UsersConfigGetOutput {
122689
122363
  */
122690
122364
  codeEnabled: boolean;
122691
122365
  /**
122692
- * Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
122366
+ * Base URL magic links point at, e.g. "https://public.lessly.com/{productId}/users". Null uses the deployment default.
122693
122367
  */
122694
122368
  linkBaseUrl: (string | null);
122695
122369
  /**
@@ -122813,7 +122487,7 @@ export interface UsersConfigGetOutput {
122813
122487
  */
122814
122488
  doubleOptIn: boolean;
122815
122489
  /**
122816
- * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lepsto Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
122490
+ * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lessly Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
122817
122491
  */
122818
122492
  retentionDays: number;
122819
122493
  /**
@@ -122983,7 +122657,7 @@ export interface UsersConfigUpsertInput {
122983
122657
  */
122984
122658
  codeEnabled?: boolean;
122985
122659
  /**
122986
- * Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
122660
+ * Base URL magic links point at, e.g. "https://public.lessly.com/{productId}/users". Null uses the deployment default.
122987
122661
  */
122988
122662
  linkBaseUrl?: (string | null);
122989
122663
  /**
@@ -123153,7 +122827,7 @@ export interface UsersConfigUpsertInput {
123153
122827
  */
123154
122828
  doubleOptIn?: boolean;
123155
122829
  /**
123156
- * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lepsto Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
122830
+ * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lessly Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
123157
122831
  */
123158
122832
  retentionDays?: number;
123159
122833
  /**
@@ -123365,7 +123039,7 @@ export interface UsersConfigUpsertOutput {
123365
123039
  */
123366
123040
  codeEnabled: boolean;
123367
123041
  /**
123368
- * Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
123042
+ * Base URL magic links point at, e.g. "https://public.lessly.com/{productId}/users". Null uses the deployment default.
123369
123043
  */
123370
123044
  linkBaseUrl: (string | null);
123371
123045
  /**
@@ -123489,7 +123163,7 @@ export interface UsersConfigUpsertOutput {
123489
123163
  */
123490
123164
  doubleOptIn: boolean;
123491
123165
  /**
123492
- * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lepsto Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
123166
+ * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lessly Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
123493
123167
  */
123494
123168
  retentionDays: number;
123495
123169
  /**
@@ -123819,11 +123493,11 @@ export interface UsersOpsRetentionGetOutput {
123819
123493
  */
123820
123494
  waitlistRetentionDays: number;
123821
123495
  /**
123822
- * What Lepsto PUBLISHED, in its Privacy Policy §6: a waitlist address that never converted is deleted 6 months from sign-up. It rides along so the window above can be read against the promise it came from, rather than as a number with no provenance.
123496
+ * What Lessly PUBLISHED, in its Privacy Policy §6: a waitlist address that never converted is deleted 6 months from sign-up. It rides along so the window above can be read against the promise it came from, rather than as a number with no provenance.
123823
123497
  */
123824
123498
  waitlistPromisedMaxDays: number;
123825
123499
  /**
123826
- * True when this product configured a window WIDER than the published 180 days. Nothing refuses such a value and nothing clamps it — §6 is Lepsto’s own policy and a client Product answers to its own, under which a longer window may be perfectly lawful. This flag exists INSTEAD of that ceiling: a deliberate divergence from what Lepsto published must be diagnosable in one call rather than found by comparing two numbers nobody thought to compare.
123500
+ * True when this product configured a window WIDER than the published 180 days. Nothing refuses such a value and nothing clamps it — §6 is Lessly’s own policy and a client Product answers to its own, under which a longer window may be perfectly lawful. This flag exists INSTEAD of that ceiling: a deliberate divergence from what Lessly published must be diagnosable in one call rather than found by comparing two numbers nobody thought to compare.
123827
123501
  */
123828
123502
  waitlistWiderThanPromised: boolean;
123829
123503
  }
@@ -124265,7 +123939,7 @@ export interface UsersStatsGetOutput {
124265
123939
  */
124266
123940
  since: string;
124267
123941
  /**
124268
- * Point-in-time directory populations by DERIVED status — `user` has no status column, these are computed from `kind`, `waitlisted` and the ban/delete/erase timestamps.
123942
+ * Point-in-time directory populations by DERIVED status — `user` has no status column, these are computed from `waitlisted` and the ban/delete/erase timestamps.
124269
123943
  */
124270
123944
  users: {
124271
123945
  /**
@@ -124273,7 +123947,7 @@ export interface UsersStatsGetOutput {
124273
123947
  */
124274
123948
  total: number;
124275
123949
  /**
124276
- * Full accounts: kind 'account', not waitlisted, not banned, not deleted, not erased.
123950
+ * Full accounts: not waitlisted, not banned, not deleted, not erased.
124277
123951
  */
124278
123952
  active: number;
124279
123953
  /**
@@ -124288,10 +123962,6 @@ export interface UsersStatsGetOutput {
124288
123962
  * SOFT-deleted and still recoverable — not erased.
124289
123963
  */
124290
123964
  deleted: number;
124291
- /**
124292
- * People the Product knows who have no credential and have never signed in (kind 'contact'), excluding deleted and erased ones. Never part of `active`, and never billed as retained users.
124293
- */
124294
- contacts: number;
124295
123965
  /**
124296
123966
  * Waitlist signups with no credential yet.
124297
123967
  */
@@ -124345,243 +124015,6 @@ export interface UsersStatsGetOutput {
124345
124015
  createdInWindow: number;
124346
124016
  };
124347
124017
  }
124348
- export interface UsersTouchesCreateInput {
124349
- /**
124350
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
124351
- */
124352
- body: string;
124353
- /**
124354
- * The end user this interaction was with.
124355
- */
124356
- userId: string;
124357
- /**
124358
- * How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
124359
- */
124360
- channel: ("message" | "call" | "meeting" | "note" | "email");
124361
- /**
124362
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
124363
- */
124364
- direction: ("outbound" | "inbound" | "none");
124365
- /**
124366
- * When it happened (ISO 8601). Omit to mean now — pass it when logging after the fact, which may be any time in the past.
124367
- */
124368
- occurredAt?: string;
124369
- }
124370
- export interface UsersTouchesCreateOutput {
124371
- /**
124372
- * Id of this touch. Pass it to users_touches_update or _delete.
124373
- */
124374
- id: string;
124375
- /**
124376
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
124377
- */
124378
- body: string;
124379
- /**
124380
- * The end user this interaction was with.
124381
- */
124382
- userId: string;
124383
- /**
124384
- * Id of the operator or agent that logged it, verbatim.
124385
- */
124386
- actorId: string;
124387
- /**
124388
- * How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
124389
- */
124390
- channel: ("message" | "call" | "meeting" | "note" | "email");
124391
- /**
124392
- * Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
124393
- */
124394
- actorType: ("operator" | "agent");
124395
- /**
124396
- * When the touch was logged (ISO 8601).
124397
- */
124398
- createdAt: string;
124399
- /**
124400
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
124401
- */
124402
- direction: ("outbound" | "inbound" | "none");
124403
- /**
124404
- * Product this touch belongs to. Never an input — it comes from the calling identity.
124405
- */
124406
- productId: string;
124407
- /**
124408
- * When the touch was last edited (ISO 8601).
124409
- */
124410
- updatedAt: string;
124411
- /**
124412
- * When the interaction happened (ISO 8601) — not when it was logged.
124413
- */
124414
- occurredAt: string;
124415
- }
124416
- export interface UsersTouchesDiscardInput {
124417
- /**
124418
- * Act on a touch somebody else logged. Without it a touch you did not author answers 404, exactly as a touch that does not exist does — the refusal must not tell you the row is there. Every forced call is recorded in the audit trail.
124419
- */
124420
- force?: boolean;
124421
- /**
124422
- * The end user the touch belongs to.
124423
- */
124424
- userId: string;
124425
- /**
124426
- * The touch to delete, from users_touches_list.
124427
- */
124428
- touchId: string;
124429
- }
124430
- export interface UsersTouchesDiscardOutput {
124431
- /**
124432
- * Id of the touch that was deleted.
124433
- */
124434
- id: string;
124435
- /**
124436
- * The end user it belonged to.
124437
- */
124438
- userId: string;
124439
- /**
124440
- * Always true — a failure answers 404 instead.
124441
- */
124442
- deleted: true;
124443
- }
124444
- export interface UsersTouchesListInput {
124445
- /**
124446
- * Page size, 1-100. Default 50.
124447
- */
124448
- limit?: number;
124449
- /**
124450
- * Opaque cursor from a previous response's `nextCursor`. Omit for the first page.
124451
- */
124452
- cursor?: string;
124453
- /**
124454
- * The end user whose touches to list.
124455
- */
124456
- userId: string;
124457
- /**
124458
- * Only touches on this channel. Omit for all of them.
124459
- */
124460
- channel?: ("message" | "call" | "meeting" | "note" | "email");
124461
- }
124462
- export interface UsersTouchesListOutput {
124463
- /**
124464
- * The page of touches, newest first.
124465
- */
124466
- items: {
124467
- /**
124468
- * Id of this touch. Pass it to users_touches_update or _delete.
124469
- */
124470
- id: string;
124471
- /**
124472
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
124473
- */
124474
- body: string;
124475
- /**
124476
- * The end user this interaction was with.
124477
- */
124478
- userId: string;
124479
- /**
124480
- * Id of the operator or agent that logged it, verbatim.
124481
- */
124482
- actorId: string;
124483
- /**
124484
- * How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
124485
- */
124486
- channel: ("message" | "call" | "meeting" | "note" | "email");
124487
- /**
124488
- * Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
124489
- */
124490
- actorType: ("operator" | "agent");
124491
- /**
124492
- * When the touch was logged (ISO 8601).
124493
- */
124494
- createdAt: string;
124495
- /**
124496
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
124497
- */
124498
- direction: ("outbound" | "inbound" | "none");
124499
- /**
124500
- * Product this touch belongs to. Never an input — it comes from the calling identity.
124501
- */
124502
- productId: string;
124503
- /**
124504
- * When the touch was last edited (ISO 8601).
124505
- */
124506
- updatedAt: string;
124507
- /**
124508
- * When the interaction happened (ISO 8601) — not when it was logged.
124509
- */
124510
- occurredAt: string;
124511
- }[];
124512
- /**
124513
- * Pass as `cursor` for the next page. Null when this was the last one.
124514
- */
124515
- nextCursor: (string | null);
124516
- }
124517
- export interface UsersTouchesUpdateInput {
124518
- /**
124519
- * Replacement text, 1-8192 characters. Omit to leave it unchanged.
124520
- */
124521
- body?: string;
124522
- /**
124523
- * Act on a touch somebody else logged. Without it a touch you did not author answers 404, exactly as a touch that does not exist does — the refusal must not tell you the row is there. Every forced call is recorded in the audit trail.
124524
- */
124525
- force?: boolean;
124526
- /**
124527
- * The end user the touch belongs to.
124528
- */
124529
- userId: string;
124530
- /**
124531
- * The touch to edit, from users_touches_list.
124532
- */
124533
- touchId: string;
124534
- /**
124535
- * Correct when it happened (ISO 8601). Omit to leave it unchanged.
124536
- */
124537
- occurredAt?: string;
124538
- }
124539
- export interface UsersTouchesUpdateOutput {
124540
- /**
124541
- * Id of this touch. Pass it to users_touches_update or _delete.
124542
- */
124543
- id: string;
124544
- /**
124545
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
124546
- */
124547
- body: string;
124548
- /**
124549
- * The end user this interaction was with.
124550
- */
124551
- userId: string;
124552
- /**
124553
- * Id of the operator or agent that logged it, verbatim.
124554
- */
124555
- actorId: string;
124556
- /**
124557
- * How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
124558
- */
124559
- channel: ("message" | "call" | "meeting" | "note" | "email");
124560
- /**
124561
- * Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
124562
- */
124563
- actorType: ("operator" | "agent");
124564
- /**
124565
- * When the touch was logged (ISO 8601).
124566
- */
124567
- createdAt: string;
124568
- /**
124569
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
124570
- */
124571
- direction: ("outbound" | "inbound" | "none");
124572
- /**
124573
- * Product this touch belongs to. Never an input — it comes from the calling identity.
124574
- */
124575
- productId: string;
124576
- /**
124577
- * When the touch was last edited (ISO 8601).
124578
- */
124579
- updatedAt: string;
124580
- /**
124581
- * When the interaction happened (ISO 8601) — not when it was logged.
124582
- */
124583
- occurredAt: string;
124584
- }
124585
124018
  export interface UsersUsersBanInput {
124586
124019
  /**
124587
124020
  * The opaque user id returned by users_users_create or _list.
@@ -124593,22 +124026,10 @@ export interface UsersUsersBanOutput {
124593
124026
  * Id of this end user. Pass it to any users_users_* tool.
124594
124027
  */
124595
124028
  id: string;
124596
- /**
124597
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
124598
- */
124599
- kind: ("account" | "contact");
124600
124029
  /**
124601
124030
  * The user's display name. Null when nobody set one.
124602
124031
  */
124603
124032
  name: (string | null);
124604
- /**
124605
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
124606
- */
124607
- tags: string[];
124608
- /**
124609
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
124610
- */
124611
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
124612
124033
  /**
124613
124034
  * When the user was banned (ISO 8601). Null while they are not banned.
124614
124035
  */
@@ -124641,10 +124062,6 @@ export interface UsersUsersBanOutput {
124641
124062
  * When the user was last changed (ISO 8601).
124642
124063
  */
124643
124064
  updatedAt: string;
124644
- /**
124645
- * Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
124646
- */
124647
- mergedFrom: (string | null);
124648
124065
  /**
124649
124066
  * Whether this user is still on the waitlist and cannot sign in yet.
124650
124067
  */
@@ -124658,9 +124075,9 @@ export interface UsersUsersBanOutput {
124658
124075
  */
124659
124076
  id: string;
124660
124077
  /**
124661
- * What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
124078
+ * What kind of identifier this is. Today always `email`.
124662
124079
  */
124663
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
124080
+ type: "email";
124664
124081
  /**
124665
124082
  * The address as the user typed it, for display.
124666
124083
  */
@@ -124682,10 +124099,6 @@ export interface UsersUsersBanOutput {
124682
124099
  */
124683
124100
  verificationStatus: ("unverified" | "verified" | "expired");
124684
124101
  }[];
124685
- /**
124686
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
124687
- */
124688
- lastTouchAt: (string | null);
124689
124102
  /**
124690
124103
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
124691
124104
  */
@@ -124720,10 +124133,6 @@ export interface UsersUsersBanOutput {
124720
124133
  privateMetadata: {
124721
124134
  [k: string]: unknown;
124722
124135
  };
124723
- /**
124724
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
124725
- */
124726
- mergedIntoUserId: (string | null);
124727
124136
  /**
124728
124137
  * Id of the primary identifier row. Null when there is no primary identifier.
124729
124138
  */
@@ -124734,22 +124143,10 @@ export interface UsersUsersBanOutput {
124734
124143
  emailChangeLockedUntil: (string | null);
124735
124144
  }
124736
124145
  export interface UsersUsersCreateInput {
124737
- /**
124738
- * What kind of person to create. 'account' (the default) can sign in. 'contact' is somebody the Product knows who has NO credential — a contact may not carry `password`, `waitlisted` or `requiresReset` (`contact_cannot_hold_credentials`), is hidden from the default users_users_list view, and is never counted as a retained user. A contact becomes an account only by proving an address, never by an operator setting this.
124739
- */
124740
- kind?: ("account" | "contact");
124741
124146
  /**
124742
124147
  * The user's display name.
124743
124148
  */
124744
124149
  name?: string;
124745
- /**
124746
- * Free labels for this person. Trimmed, lowercased and de-duplicated on write; at most 32 of at most 64 characters each.
124747
- */
124748
- tags?: string[];
124749
- /**
124750
- * The relationship stage to start them at, in funnel order: new, contacted, replied, engaged, converted, lost. Default 'new'.
124751
- */
124752
- stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
124753
124150
  /**
124754
124151
  * URL of the user's avatar image.
124755
124152
  */
@@ -124780,7 +124177,7 @@ export interface UsersUsersCreateInput {
124780
124177
  */
124781
124178
  waitlisted?: boolean;
124782
124179
  /**
124783
- * How this user is reached: their email addresses, plus any contact channels (`phone`, `telegram`, `linkedin`, `x`). At least one is required.
124180
+ * The email addresses that reach this user. At least one is required.
124784
124181
  *
124785
124182
  * @minItems 1
124786
124183
  */
@@ -124789,13 +124186,13 @@ export interface UsersUsersCreateInput {
124789
124186
  /**
124790
124187
  * Identifier kind. Only 'email' exists in this phase.
124791
124188
  */
124792
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
124189
+ type: "email";
124793
124190
  /**
124794
124191
  * The email address. Stored canonicalised (lowercase, NFC) plus raw for display.
124795
124192
  */
124796
124193
  value: string;
124797
124194
  /**
124798
- * Record the identifier as already verified (use for trusted imports). IGNORED for contact channels, which are always stored unverified — nothing here can prove a phone or a handle. Only ONE verified copy of an email may exist per product; unverified duplicates are allowed. Default false.
124195
+ * Record the identifier as already verified (use for trusted imports). Only ONE verified copy of a value may exist per product; unverified duplicates are allowed. Default false.
124799
124196
  */
124800
124197
  verified?: boolean;
124801
124198
  /**
@@ -124807,13 +124204,13 @@ export interface UsersUsersCreateInput {
124807
124204
  /**
124808
124205
  * Identifier kind. Only 'email' exists in this phase.
124809
124206
  */
124810
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
124207
+ type: "email";
124811
124208
  /**
124812
124209
  * The email address. Stored canonicalised (lowercase, NFC) plus raw for display.
124813
124210
  */
124814
124211
  value: string;
124815
124212
  /**
124816
- * Record the identifier as already verified (use for trusted imports). IGNORED for contact channels, which are always stored unverified — nothing here can prove a phone or a handle. Only ONE verified copy of an email may exist per product; unverified duplicates are allowed. Default false.
124213
+ * Record the identifier as already verified (use for trusted imports). Only ONE verified copy of a value may exist per product; unverified duplicates are allowed. Default false.
124817
124214
  */
124818
124215
  verified?: boolean;
124819
124216
  /**
@@ -124852,22 +124249,10 @@ export interface UsersUsersCreateOutput {
124852
124249
  * Id of this end user. Pass it to any users_users_* tool.
124853
124250
  */
124854
124251
  id: string;
124855
- /**
124856
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
124857
- */
124858
- kind: ("account" | "contact");
124859
124252
  /**
124860
124253
  * The user's display name. Null when nobody set one.
124861
124254
  */
124862
124255
  name: (string | null);
124863
- /**
124864
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
124865
- */
124866
- tags: string[];
124867
- /**
124868
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
124869
- */
124870
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
124871
124256
  /**
124872
124257
  * When the user was banned (ISO 8601). Null while they are not banned.
124873
124258
  */
@@ -124900,10 +124285,6 @@ export interface UsersUsersCreateOutput {
124900
124285
  * When the user was last changed (ISO 8601).
124901
124286
  */
124902
124287
  updatedAt: string;
124903
- /**
124904
- * Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
124905
- */
124906
- mergedFrom: (string | null);
124907
124288
  /**
124908
124289
  * Whether this user is still on the waitlist and cannot sign in yet.
124909
124290
  */
@@ -124917,9 +124298,9 @@ export interface UsersUsersCreateOutput {
124917
124298
  */
124918
124299
  id: string;
124919
124300
  /**
124920
- * What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
124301
+ * What kind of identifier this is. Today always `email`.
124921
124302
  */
124922
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
124303
+ type: "email";
124923
124304
  /**
124924
124305
  * The address as the user typed it, for display.
124925
124306
  */
@@ -124941,10 +124322,6 @@ export interface UsersUsersCreateOutput {
124941
124322
  */
124942
124323
  verificationStatus: ("unverified" | "verified" | "expired");
124943
124324
  }[];
124944
- /**
124945
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
124946
- */
124947
- lastTouchAt: (string | null);
124948
124325
  /**
124949
124326
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
124950
124327
  */
@@ -124979,10 +124356,6 @@ export interface UsersUsersCreateOutput {
124979
124356
  privateMetadata: {
124980
124357
  [k: string]: unknown;
124981
124358
  };
124982
- /**
124983
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
124984
- */
124985
- mergedIntoUserId: (string | null);
124986
124359
  /**
124987
124360
  * Id of the primary identifier row. Null when there is no primary identifier.
124988
124361
  */
@@ -125003,22 +124376,10 @@ export interface UsersUsersDeleteOutput {
125003
124376
  * Id of this end user. Pass it to any users_users_* tool.
125004
124377
  */
125005
124378
  id: string;
125006
- /**
125007
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
125008
- */
125009
- kind: ("account" | "contact");
125010
124379
  /**
125011
124380
  * The user's display name. Null when nobody set one.
125012
124381
  */
125013
124382
  name: (string | null);
125014
- /**
125015
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
125016
- */
125017
- tags: string[];
125018
- /**
125019
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
125020
- */
125021
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
125022
124383
  /**
125023
124384
  * When the user was banned (ISO 8601). Null while they are not banned.
125024
124385
  */
@@ -125051,10 +124412,6 @@ export interface UsersUsersDeleteOutput {
125051
124412
  * When the user was last changed (ISO 8601).
125052
124413
  */
125053
124414
  updatedAt: string;
125054
- /**
125055
- * Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
125056
- */
125057
- mergedFrom: (string | null);
125058
124415
  /**
125059
124416
  * Whether this user is still on the waitlist and cannot sign in yet.
125060
124417
  */
@@ -125068,9 +124425,9 @@ export interface UsersUsersDeleteOutput {
125068
124425
  */
125069
124426
  id: string;
125070
124427
  /**
125071
- * What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
124428
+ * What kind of identifier this is. Today always `email`.
125072
124429
  */
125073
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
124430
+ type: "email";
125074
124431
  /**
125075
124432
  * The address as the user typed it, for display.
125076
124433
  */
@@ -125092,10 +124449,6 @@ export interface UsersUsersDeleteOutput {
125092
124449
  */
125093
124450
  verificationStatus: ("unverified" | "verified" | "expired");
125094
124451
  }[];
125095
- /**
125096
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
125097
- */
125098
- lastTouchAt: (string | null);
125099
124452
  /**
125100
124453
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
125101
124454
  */
@@ -125130,10 +124483,6 @@ export interface UsersUsersDeleteOutput {
125130
124483
  privateMetadata: {
125131
124484
  [k: string]: unknown;
125132
124485
  };
125133
- /**
125134
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
125135
- */
125136
- mergedIntoUserId: (string | null);
125137
124486
  /**
125138
124487
  * Id of the primary identifier row. Null when there is no primary identifier.
125139
124488
  */
@@ -125144,10 +124493,6 @@ export interface UsersUsersDeleteOutput {
125144
124493
  emailChangeLockedUntil: (string | null);
125145
124494
  }
125146
124495
  export interface UsersUsersExportInput {
125147
- /**
125148
- * Filter by kind: 'account' or 'contact'. Omit for accounts only, unless `includeContacts` is true.
125149
- */
125150
- kind?: ("account" | "contact");
125151
124496
  /**
125152
124497
  * Rows per page, 1-500. Default 100.
125153
124498
  */
@@ -125168,10 +124513,6 @@ export interface UsersUsersExportInput {
125168
124513
  * Include soft-deleted users. Default false.
125169
124514
  */
125170
124515
  includeDeleted?: boolean;
125171
- /**
125172
- * Include CONTACTS alongside accounts, so one pass exports both. Default false — the same rule this export already applies to waitlist signups and test users.
125173
- */
125174
- includeContacts?: boolean;
125175
124516
  }
125176
124517
  export interface UsersUsersExportOutput {
125177
124518
  count: number;
@@ -125180,22 +124521,10 @@ export interface UsersUsersExportOutput {
125180
124521
  * Id of this end user. Pass it to any users_users_* tool.
125181
124522
  */
125182
124523
  id: string;
125183
- /**
125184
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
125185
- */
125186
- kind: ("account" | "contact");
125187
124524
  /**
125188
124525
  * The user's display name. Null when nobody set one.
125189
124526
  */
125190
124527
  name: (string | null);
125191
- /**
125192
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
125193
- */
125194
- tags: string[];
125195
- /**
125196
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
125197
- */
125198
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
125199
124528
  /**
125200
124529
  * When the user was banned (ISO 8601). Null while they are not banned.
125201
124530
  */
@@ -125228,10 +124557,6 @@ export interface UsersUsersExportOutput {
125228
124557
  * When the user was last changed (ISO 8601).
125229
124558
  */
125230
124559
  updatedAt: string;
125231
- /**
125232
- * Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
125233
- */
125234
- mergedFrom: (string | null);
125235
124560
  /**
125236
124561
  * Whether this user is still on the waitlist and cannot sign in yet.
125237
124562
  */
@@ -125245,9 +124570,9 @@ export interface UsersUsersExportOutput {
125245
124570
  */
125246
124571
  id: string;
125247
124572
  /**
125248
- * What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
124573
+ * What kind of identifier this is. Today always `email`.
125249
124574
  */
125250
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
124575
+ type: "email";
125251
124576
  /**
125252
124577
  * The address as the user typed it, for display.
125253
124578
  */
@@ -125269,10 +124594,6 @@ export interface UsersUsersExportOutput {
125269
124594
  */
125270
124595
  verificationStatus: ("unverified" | "verified" | "expired");
125271
124596
  }[];
125272
- /**
125273
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
125274
- */
125275
- lastTouchAt: (string | null);
125276
124597
  /**
125277
124598
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
125278
124599
  */
@@ -125307,10 +124628,6 @@ export interface UsersUsersExportOutput {
125307
124628
  privateMetadata: {
125308
124629
  [k: string]: unknown;
125309
124630
  };
125310
- /**
125311
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
125312
- */
125313
- mergedIntoUserId: (string | null);
125314
124631
  /**
125315
124632
  * Id of the primary identifier row. Null when there is no primary identifier.
125316
124633
  */
@@ -125334,22 +124651,10 @@ export interface UsersUsersGetOutput {
125334
124651
  * Id of this end user. Pass it to any users_users_* tool.
125335
124652
  */
125336
124653
  id: string;
125337
- /**
125338
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
125339
- */
125340
- kind: ("account" | "contact");
125341
124654
  /**
125342
124655
  * The user's display name. Null when nobody set one.
125343
124656
  */
125344
124657
  name: (string | null);
125345
- /**
125346
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
125347
- */
125348
- tags: string[];
125349
- /**
125350
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
125351
- */
125352
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
125353
124658
  /**
125354
124659
  * When the user was banned (ISO 8601). Null while they are not banned.
125355
124660
  */
@@ -125382,10 +124687,6 @@ export interface UsersUsersGetOutput {
125382
124687
  * When the user was last changed (ISO 8601).
125383
124688
  */
125384
124689
  updatedAt: string;
125385
- /**
125386
- * Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
125387
- */
125388
- mergedFrom: (string | null);
125389
124690
  /**
125390
124691
  * Whether this user is still on the waitlist and cannot sign in yet.
125391
124692
  */
@@ -125399,9 +124700,9 @@ export interface UsersUsersGetOutput {
125399
124700
  */
125400
124701
  id: string;
125401
124702
  /**
125402
- * What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
124703
+ * What kind of identifier this is. Today always `email`.
125403
124704
  */
125404
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
124705
+ type: "email";
125405
124706
  /**
125406
124707
  * The address as the user typed it, for display.
125407
124708
  */
@@ -125423,10 +124724,6 @@ export interface UsersUsersGetOutput {
125423
124724
  */
125424
124725
  verificationStatus: ("unverified" | "verified" | "expired");
125425
124726
  }[];
125426
- /**
125427
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
125428
- */
125429
- lastTouchAt: (string | null);
125430
124727
  /**
125431
124728
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
125432
124729
  */
@@ -125461,10 +124758,6 @@ export interface UsersUsersGetOutput {
125461
124758
  privateMetadata: {
125462
124759
  [k: string]: unknown;
125463
124760
  };
125464
- /**
125465
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
125466
- */
125467
- mergedIntoUserId: (string | null);
125468
124761
  /**
125469
124762
  * Id of the primary identifier row. Null when there is no primary identifier.
125470
124763
  */
@@ -125517,10 +124810,6 @@ export interface UsersUsersImportOutput {
125517
124810
  * How many rows were passed over — an address already in the directory, typically.
125518
124811
  */
125519
124812
  skipped: number;
125520
- /**
125521
- * How many of the CREATED users were contacts (`kind: 'contact'`). A row that was skipped or failed is not counted.
125522
- */
125523
- contacts: number;
125524
124813
  /**
125525
124814
  * How many rows you submitted.
125526
124815
  */
@@ -125567,14 +124856,6 @@ export interface UsersUsersInviteOutput {
125567
124856
  expiresAt: string;
125568
124857
  }
125569
124858
  export interface UsersUsersListInput {
125570
- /**
125571
- * Return only people carrying this tag. ONE tag, matched against the stored (lowercased) value and ANDed with the other filters.
125572
- */
125573
- tag?: string;
125574
- /**
125575
- * Filter by kind: 'account' or 'contact'. Passing 'contact' is how you list contacts — they are hidden otherwise. Omit for accounts only, unless `includeContacts` is true.
125576
- */
125577
- kind?: ("account" | "contact");
125578
124859
  /**
125579
124860
  * Page size, 1-100. Default 25.
125580
124861
  */
@@ -125583,10 +124864,6 @@ export interface UsersUsersListInput {
125583
124864
  * Case-insensitive substring match against the user's identifiers (email) and name.
125584
124865
  */
125585
124866
  query?: string;
125586
- /**
125587
- * Filter by relationship stage: new, contacted, replied, engaged, converted or lost. Omit for every stage.
125588
- */
125589
- stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
125590
124867
  /**
125591
124868
  * Opaque cursor from a previous response's `nextCursor`. Omit for the first page.
125592
124869
  */
@@ -125599,18 +124876,6 @@ export interface UsersUsersListInput {
125599
124876
  * Include soft-deleted users. Default false — deleted users are hidden.
125600
124877
  */
125601
124878
  includeDeleted?: boolean;
125602
- /**
125603
- * Only people whose most recent logged interaction happened at or after this instant (ISO 8601). People never touched are EXCLUDED by this filter — list without it to see everyone.
125604
- */
125605
- lastTouchAfter?: string;
125606
- /**
125607
- * Include CONTACTS. Default false: a contact has no credential and has never signed in, so it is not part of the directory an operator browses — the same rule waitlist signups and test users follow. Use `kind: "contact"` to see only them.
125608
- */
125609
- includeContacts?: boolean;
125610
- /**
125611
- * Only people whose most recent logged interaction happened before this instant (ISO 8601) — the "gone quiet" list. People never touched are EXCLUDED rather than treated as infinitely stale; list without this filter to see everyone.
125612
- */
125613
- lastTouchBefore?: string;
125614
124879
  /**
125615
124880
  * Include TEST USERS. Default false: a test user is a fixture, not a customer — it is excluded from metering and from this listing for the same reason. Ask for it explicitly when you are debugging the fixtures themselves.
125616
124881
  */
@@ -125629,22 +124894,10 @@ export interface UsersUsersListOutput {
125629
124894
  * Id of this end user. Pass it to any users_users_* tool.
125630
124895
  */
125631
124896
  id: string;
125632
- /**
125633
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
125634
- */
125635
- kind: ("account" | "contact");
125636
124897
  /**
125637
124898
  * The user's display name. Null when nobody set one.
125638
124899
  */
125639
124900
  name: (string | null);
125640
- /**
125641
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
125642
- */
125643
- tags: string[];
125644
- /**
125645
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
125646
- */
125647
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
125648
124901
  /**
125649
124902
  * When the user was banned (ISO 8601). Null while they are not banned.
125650
124903
  */
@@ -125677,10 +124930,6 @@ export interface UsersUsersListOutput {
125677
124930
  * When the user was last changed (ISO 8601).
125678
124931
  */
125679
124932
  updatedAt: string;
125680
- /**
125681
- * Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
125682
- */
125683
- mergedFrom: (string | null);
125684
124933
  /**
125685
124934
  * Whether this user is still on the waitlist and cannot sign in yet.
125686
124935
  */
@@ -125694,9 +124943,9 @@ export interface UsersUsersListOutput {
125694
124943
  */
125695
124944
  id: string;
125696
124945
  /**
125697
- * What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
124946
+ * What kind of identifier this is. Today always `email`.
125698
124947
  */
125699
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
124948
+ type: "email";
125700
124949
  /**
125701
124950
  * The address as the user typed it, for display.
125702
124951
  */
@@ -125718,10 +124967,6 @@ export interface UsersUsersListOutput {
125718
124967
  */
125719
124968
  verificationStatus: ("unverified" | "verified" | "expired");
125720
124969
  }[];
125721
- /**
125722
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
125723
- */
125724
- lastTouchAt: (string | null);
125725
124970
  /**
125726
124971
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
125727
124972
  */
@@ -125756,10 +125001,6 @@ export interface UsersUsersListOutput {
125756
125001
  privateMetadata: {
125757
125002
  [k: string]: unknown;
125758
125003
  };
125759
- /**
125760
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
125761
- */
125762
- mergedIntoUserId: (string | null);
125763
125004
  /**
125764
125005
  * Id of the primary identifier row. Null when there is no primary identifier.
125765
125006
  */
@@ -125809,22 +125050,10 @@ export interface UsersUsersUnbanOutput {
125809
125050
  * Id of this end user. Pass it to any users_users_* tool.
125810
125051
  */
125811
125052
  id: string;
125812
- /**
125813
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
125814
- */
125815
- kind: ("account" | "contact");
125816
125053
  /**
125817
125054
  * The user's display name. Null when nobody set one.
125818
125055
  */
125819
125056
  name: (string | null);
125820
- /**
125821
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
125822
- */
125823
- tags: string[];
125824
- /**
125825
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
125826
- */
125827
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
125828
125057
  /**
125829
125058
  * When the user was banned (ISO 8601). Null while they are not banned.
125830
125059
  */
@@ -125857,10 +125086,6 @@ export interface UsersUsersUnbanOutput {
125857
125086
  * When the user was last changed (ISO 8601).
125858
125087
  */
125859
125088
  updatedAt: string;
125860
- /**
125861
- * Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
125862
- */
125863
- mergedFrom: (string | null);
125864
125089
  /**
125865
125090
  * Whether this user is still on the waitlist and cannot sign in yet.
125866
125091
  */
@@ -125874,9 +125099,9 @@ export interface UsersUsersUnbanOutput {
125874
125099
  */
125875
125100
  id: string;
125876
125101
  /**
125877
- * What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
125102
+ * What kind of identifier this is. Today always `email`.
125878
125103
  */
125879
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
125104
+ type: "email";
125880
125105
  /**
125881
125106
  * The address as the user typed it, for display.
125882
125107
  */
@@ -125898,10 +125123,6 @@ export interface UsersUsersUnbanOutput {
125898
125123
  */
125899
125124
  verificationStatus: ("unverified" | "verified" | "expired");
125900
125125
  }[];
125901
- /**
125902
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
125903
- */
125904
- lastTouchAt: (string | null);
125905
125126
  /**
125906
125127
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
125907
125128
  */
@@ -125936,10 +125157,6 @@ export interface UsersUsersUnbanOutput {
125936
125157
  privateMetadata: {
125937
125158
  [k: string]: unknown;
125938
125159
  };
125939
- /**
125940
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
125941
- */
125942
- mergedIntoUserId: (string | null);
125943
125160
  /**
125944
125161
  * Id of the primary identifier row. Null when there is no primary identifier.
125945
125162
  */
@@ -125954,14 +125171,6 @@ export interface UsersUsersUpdateInput {
125954
125171
  * The user's display name. Pass null to clear.
125955
125172
  */
125956
125173
  name?: (string | null);
125957
- /**
125958
- * REPLACES the whole tag list — send every tag you want stored, not just the new ones. Trimmed, lowercased and de-duplicated on write.
125959
- */
125960
- tags?: string[];
125961
- /**
125962
- * Move the person to this relationship stage. A real change publishes `users/user.stage-changed`; a patch that changes ONLY the stage deliberately does not also publish `users/user.updated`, so a workflow that writes stages does not wake itself.
125963
- */
125964
- stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
125965
125174
  /**
125966
125175
  * The user to update.
125967
125176
  */
@@ -126008,22 +125217,10 @@ export interface UsersUsersUpdateOutput {
126008
125217
  * Id of this end user. Pass it to any users_users_* tool.
126009
125218
  */
126010
125219
  id: string;
126011
- /**
126012
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
126013
- */
126014
- kind: ("account" | "contact");
126015
125220
  /**
126016
125221
  * The user's display name. Null when nobody set one.
126017
125222
  */
126018
125223
  name: (string | null);
126019
- /**
126020
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
126021
- */
126022
- tags: string[];
126023
- /**
126024
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
126025
- */
126026
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost");
126027
125224
  /**
126028
125225
  * When the user was banned (ISO 8601). Null while they are not banned.
126029
125226
  */
@@ -126056,10 +125253,6 @@ export interface UsersUsersUpdateOutput {
126056
125253
  * When the user was last changed (ISO 8601).
126057
125254
  */
126058
125255
  updatedAt: string;
126059
- /**
126060
- * Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
126061
- */
126062
- mergedFrom: (string | null);
126063
125256
  /**
126064
125257
  * Whether this user is still on the waitlist and cannot sign in yet.
126065
125258
  */
@@ -126073,9 +125266,9 @@ export interface UsersUsersUpdateOutput {
126073
125266
  */
126074
125267
  id: string;
126075
125268
  /**
126076
- * What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
125269
+ * What kind of identifier this is. Today always `email`.
126077
125270
  */
126078
- type: ("email" | "phone" | "telegram" | "linkedin" | "x");
125271
+ type: "email";
126079
125272
  /**
126080
125273
  * The address as the user typed it, for display.
126081
125274
  */
@@ -126097,10 +125290,6 @@ export interface UsersUsersUpdateOutput {
126097
125290
  */
126098
125291
  verificationStatus: ("unverified" | "verified" | "expired");
126099
125292
  }[];
126100
- /**
126101
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
126102
- */
126103
- lastTouchAt: (string | null);
126104
125293
  /**
126105
125294
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
126106
125295
  */
@@ -126135,10 +125324,6 @@ export interface UsersUsersUpdateOutput {
126135
125324
  privateMetadata: {
126136
125325
  [k: string]: unknown;
126137
125326
  };
126138
- /**
126139
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
126140
- */
126141
- mergedIntoUserId: (string | null);
126142
125327
  /**
126143
125328
  * Id of the primary identifier row. Null when there is no primary identifier.
126144
125329
  */