@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
@@ -91106,378 +91106,6 @@ export interface OrganizationYoutubeInstallOutput {
91106
91106
  url: string
91107
91107
  }
91108
91108
 
91109
- export interface PlaygroundAnalyticsOverviewInput {
91110
- /**
91111
- * Max records per entity in recent[]; omit for the endpoint default
91112
- */
91113
- limit?: number
91114
- }
91115
-
91116
- export interface PlaygroundAnalyticsOverviewOutput {
91117
- ok: boolean
91118
- minted: boolean
91119
- overview?: unknown
91120
- http_status: number
91121
- }
91122
-
91123
- export interface PlaygroundBillingEntitlementsInput {
91124
-
91125
- }
91126
-
91127
- export interface PlaygroundBillingEntitlementsOutput {
91128
- ok: boolean
91129
- minted: boolean
91130
- http_status: number
91131
- entitlements?: unknown
91132
- }
91133
-
91134
- export interface PlaygroundBillingRecordUsageInput {
91135
- /**
91136
- * Quantity of events to record against playground-events (SUM); defaults to 1
91137
- */
91138
- value?: number
91139
- }
91140
-
91141
- export interface PlaygroundBillingRecordUsageOutput {
91142
- minted: boolean
91143
- accepted: (number | null)
91144
- recorded: boolean
91145
- duplicates: (number | null)
91146
- http_status: number
91147
- }
91148
-
91149
- export interface PlaygroundClickupCreateTaskInput {
91150
- /**
91151
- * Task title; defaults to a fixture label
91152
- */
91153
- name?: string
91154
- /**
91155
- * ClickUp list id; falls back to CLICKUP_TEST_LIST_ID
91156
- */
91157
- listId?: string
91158
- }
91159
-
91160
- export interface PlaygroundClickupCreateTaskOutput {
91161
- minted: boolean
91162
- task_id: (string | null)
91163
- list_status: number
91164
- vend_status: number
91165
- clickup_status: number
91166
- installation_count: number
91167
- }
91168
-
91169
- export interface PlaygroundClickupGetLastWebhookInput {
91170
-
91171
- }
91172
-
91173
- export type PlaygroundClickupGetLastWebhookOutput = ({
91174
- payload: string
91175
- event_id: string
91176
- provider: string
91177
- verified: boolean
91178
- product_id: string
91179
- occurred_at: string
91180
- connector_id: string
91181
- clickup_event: (string | null)
91182
- receipt_count: number
91183
- } | {
91184
- found: false
91185
- })
91186
-
91187
- export interface PlaygroundClickupGetOverviewInput {
91188
-
91189
- }
91190
-
91191
- export interface PlaygroundClickupGetOverviewOutput {
91192
- team: ({
91193
- teamId: string
91194
- teamName: string
91195
- } | null)
91196
- lists: PlaygroundClickupGetOverviewOutputItems[]
91197
- tasks: {
91198
- id: string
91199
- name: string
91200
- status: (string | null)
91201
- }[]
91202
- minted: boolean
91203
- spaces: PlaygroundClickupGetOverviewOutputItems[]
91204
- list_status: number
91205
- vend_status: number
91206
- lists_status: number
91207
- tasks_status: number
91208
- spaces_status: number
91209
- folders_status: number
91210
- installation_count: number
91211
- }
91212
- export interface PlaygroundClickupGetOverviewOutputItems {
91213
- id: string
91214
- name: string
91215
- }
91216
-
91217
- export interface PlaygroundEchoPingInput {
91218
- /**
91219
- * The text to echo back, 1–1024 characters
91220
- */
91221
- message: string
91222
- }
91223
-
91224
- export interface PlaygroundEchoPingOutput {
91225
- /**
91226
- * The message exactly as it was received
91227
- */
91228
- message: string
91229
- /**
91230
- * The product the call was resolved to
91231
- */
91232
- productId: string
91233
- /**
91234
- * ISO-8601 instant (UTC) at which the call reached the service
91235
- */
91236
- receivedAt: string
91237
- }
91238
-
91239
- export interface PlaygroundGdriveGetLastChangeInput {
91240
-
91241
- }
91242
-
91243
- export type PlaygroundGdriveGetLastChangeOutput = ({
91244
- file_id: string
91245
- removed: boolean
91246
- file_name: (string | null)
91247
- mime_type: (string | null)
91248
- product_id: string
91249
- occurred_at: string
91250
- connector_id: string
91251
- resource_state: string
91252
- } | {
91253
- found: false
91254
- })
91255
-
91256
- export interface PlaygroundGdriveReadFileInput {
91257
- /**
91258
- * Drive file id; falls back to GDRIVE_TEST_FILE_ID, then the first picked file
91259
- */
91260
- fileId?: string
91261
- }
91262
-
91263
- export interface PlaygroundGdriveReadFileOutput {
91264
- minted: boolean
91265
- file_id: (string | null)
91266
- file_name: (string | null)
91267
- mime_type: (string | null)
91268
- file_count: number
91269
- get_status: number
91270
- list_status: number
91271
- vend_status: number
91272
- content_bytes: (number | null)
91273
- }
91274
-
91275
- export interface PlaygroundGoogleadsReadCustomerInput {
91276
-
91277
- }
91278
-
91279
- export interface PlaygroundGoogleadsReadCustomerOutput {
91280
- minted: boolean
91281
- vended: boolean
91282
- customer_id: (string | null)
91283
- vend_status: number
91284
- result_count: number
91285
- search_status: number
91286
- login_customer_id: (string | null)
91287
- }
91288
-
91289
- export interface PlaygroundLifecycleGetStateInput {
91290
-
91291
- }
91292
-
91293
- export interface PlaygroundLifecycleGetStateOutput {
91294
- blocked: boolean
91295
- archived: boolean
91296
- productId: string
91297
- lastBlockTransition: ({
91298
- eventId: string
91299
- eventName: string
91300
- productId: string
91301
- occurredAt: string
91302
- recordedAt: string
91303
- receiptCount: number
91304
- organizationId: string
91305
- cascadedFromOrg: boolean
91306
- } | null)
91307
- lastArchiveTransition: ({
91308
- eventId: string
91309
- eventName: string
91310
- productId: string
91311
- occurredAt: string
91312
- recordedAt: string
91313
- receiptCount: number
91314
- organizationId: string
91315
- cascadedFromOrg: boolean
91316
- } | null)
91317
- }
91318
-
91319
- export interface PlaygroundLifecycleListEventsInput {
91320
-
91321
- }
91322
-
91323
- export type PlaygroundLifecycleListEventsOutput = {
91324
- eventId: string
91325
- eventName: string
91326
- productId: string
91327
- occurredAt: string
91328
- recordedAt: string
91329
- receiptCount: number
91330
- organizationId: string
91331
- cascadedFromOrg: boolean
91332
- }[]
91333
-
91334
- export interface PlaygroundWebhookGetLastInput {
91335
-
91336
- }
91337
-
91338
- export type PlaygroundWebhookGetLastOutput = ({
91339
- payload?: unknown
91340
- event_id: string
91341
- provider: string
91342
- verified: boolean
91343
- product_id: string
91344
- occurred_at: string
91345
- connector_id: string
91346
- delivery_count: number
91347
- } | {
91348
- found: false
91349
- })
91350
-
91351
- export interface PlaygroundWorkflowEchoInput {
91352
- /**
91353
- * The text to store, 1–1024 characters
91354
- */
91355
- note: string
91356
- /**
91357
- * Optional labels stored alongside the note, at most 20
91358
- *
91359
- * @maxItems 20
91360
- */
91361
- 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]
91362
- }
91363
-
91364
- export interface PlaygroundWorkflowEchoOutput {
91365
- /**
91366
- * Identifier of the stored echo
91367
- */
91368
- id: string
91369
- /**
91370
- * The note exactly as it was received
91371
- */
91372
- note: string
91373
- /**
91374
- * The tags exactly as they were received
91375
- */
91376
- tags: string[]
91377
- /**
91378
- * 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.
91379
- */
91380
- echo_id: string
91381
- /**
91382
- * ISO-8601 instant (UTC) at which the echo was stored
91383
- */
91384
- received_at: string
91385
- }
91386
-
91387
- export interface PlaygroundWorkflowEchoListInput {
91388
-
91389
- }
91390
-
91391
- export type PlaygroundWorkflowEchoListOutput = {
91392
- /**
91393
- * Identifier of the stored echo
91394
- */
91395
- id: string
91396
- /**
91397
- * The note exactly as it was received
91398
- */
91399
- note: string
91400
- /**
91401
- * The tags exactly as they were received
91402
- */
91403
- tags: string[]
91404
- /**
91405
- * ISO-8601 instant (UTC) at which the echo was stored
91406
- */
91407
- received_at: string
91408
- }[]
91409
-
91410
- export interface PlaygroundWorkflowPingInput {
91411
- /**
91412
- * Class of ping, echoed on the emitted event and filterable on the trigger. Defaults to 'manual'.
91413
- */
91414
- kind?: string
91415
- }
91416
-
91417
- export interface PlaygroundWorkflowPingOutput {
91418
- /**
91419
- * 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.
91420
- */
91421
- id: string
91422
- /**
91423
- * The name of the event that was published
91424
- */
91425
- event: string
91426
- }
91427
-
91428
- export interface PlaygroundWorkflowSubjectsListInput {
91429
- /**
91430
- * How many subjects to return, 1–100. Defaults to 25.
91431
- */
91432
- limit?: number
91433
- /**
91434
- * The next_cursor of the previous page. Opaque — pass it back unchanged. Omit for the first page.
91435
- */
91436
- cursor?: string
91437
- /**
91438
- * 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.
91439
- */
91440
- last_activity_after?: string
91441
- /**
91442
- * 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.
91443
- */
91444
- last_activity_before?: string
91445
- }
91446
-
91447
- export interface PlaygroundWorkflowSubjectsListOutput {
91448
- /**
91449
- * This page of subjects, most recently active first
91450
- */
91451
- items: {
91452
- /**
91453
- * 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.
91454
- */
91455
- subject_key: string
91456
- /**
91457
- * Human-readable name of the subject
91458
- */
91459
- display_name: string
91460
- /**
91461
- * ISO-8601 instant (UTC) of the subject last activity
91462
- */
91463
- last_activity_at: string
91464
- }[]
91465
- /**
91466
- * Whether another page follows. False and a null next_cursor both mark the last page, so a consumer that loops on either terminates.
91467
- */
91468
- has_more: boolean
91469
- /**
91470
- * Pass back as `cursor` to fetch the next page; null on the last page. Always null when has_more is false.
91471
- */
91472
- next_cursor: (string | null)
91473
- }
91474
-
91475
- export interface PlaygroundWsEchoInput {
91476
-
91477
- }
91478
-
91479
- export type PlaygroundWsEchoOutput = unknown;
91480
-
91481
91109
  export interface RealtimeArchiveExportInput {
91482
91110
  /**
91483
91111
  * Only entries with ts <= to_ts (epoch ms)
@@ -115799,9 +115427,9 @@ export interface UsersApikeysCreateInput {
115799
115427
  */
115800
115428
  name: string
115801
115429
  /**
115802
- * '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.
115430
+ * '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.
115803
115431
  */
115804
- type: "publishable"
115432
+ type: ("server" | "publishable")
115805
115433
  }
115806
115434
 
115807
115435
  export interface UsersApikeysCreateOutput {
@@ -115818,15 +115446,15 @@ key: string
115818
115446
  */
115819
115447
  name: string
115820
115448
  /**
115821
- * `publishable` a browser-safe key (upk_…). It is the only type.
115449
+ * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
115822
115450
  */
115823
- type: "publishable"
115451
+ type: ("server" | "publishable")
115824
115452
  /**
115825
- * The full value of the key, which is not a secret and stays readable.
115453
+ * 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.
115826
115454
  */
115827
115455
  value: (string | null)
115828
115456
  /**
115829
- * `upk_` plus six characters — enough to recognise a key, never to use one.
115457
+ * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
115830
115458
  */
115831
115459
  prefix: string
115832
115460
  /**
@@ -115856,15 +115484,15 @@ id: string
115856
115484
  */
115857
115485
  name: string
115858
115486
  /**
115859
- * `publishable` a browser-safe key (upk_…). It is the only type.
115487
+ * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
115860
115488
  */
115861
- type: "publishable"
115489
+ type: ("server" | "publishable")
115862
115490
  /**
115863
- * The full value of the key, which is not a secret and stays readable.
115491
+ * 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.
115864
115492
  */
115865
115493
  value: (string | null)
115866
115494
  /**
115867
- * `upk_` plus six characters — enough to recognise a key, never to use one.
115495
+ * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
115868
115496
  */
115869
115497
  prefix: string
115870
115498
  /**
@@ -115892,15 +115520,15 @@ id: string
115892
115520
  */
115893
115521
  name: string
115894
115522
  /**
115895
- * `publishable` a browser-safe key (upk_…). It is the only type.
115523
+ * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
115896
115524
  */
115897
- type: "publishable"
115525
+ type: ("server" | "publishable")
115898
115526
  /**
115899
- * The full value of the key, which is not a secret and stays readable.
115527
+ * 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.
115900
115528
  */
115901
115529
  value: (string | null)
115902
115530
  /**
115903
- * `upk_` plus six characters — enough to recognise a key, never to use one.
115531
+ * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
115904
115532
  */
115905
115533
  prefix: string
115906
115534
  /**
@@ -116066,7 +115694,7 @@ from: (string | null)
116066
115694
  */
116067
115695
  codeEnabled: boolean
116068
115696
  /**
116069
- * Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
115697
+ * Base URL magic links point at, e.g. "https://public.lessly.com/{productId}/users". Null uses the deployment default.
116070
115698
  */
116071
115699
  linkBaseUrl: (string | null)
116072
115700
  /**
@@ -116190,7 +115818,7 @@ successMessage: string
116190
115818
  */
116191
115819
  doubleOptIn: boolean
116192
115820
  /**
116193
- * 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.
115821
+ * 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.
116194
115822
  */
116195
115823
  retentionDays: number
116196
115824
  /**
@@ -116361,7 +115989,7 @@ from?: (string | null)
116361
115989
  */
116362
115990
  codeEnabled?: boolean
116363
115991
  /**
116364
- * Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
115992
+ * Base URL magic links point at, e.g. "https://public.lessly.com/{productId}/users". Null uses the deployment default.
116365
115993
  */
116366
115994
  linkBaseUrl?: (string | null)
116367
115995
  /**
@@ -116531,7 +116159,7 @@ successMessage?: string
116531
116159
  */
116532
116160
  doubleOptIn?: boolean
116533
116161
  /**
116534
- * 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.
116162
+ * 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.
116535
116163
  */
116536
116164
  retentionDays?: number
116537
116165
  /**
@@ -116744,7 +116372,7 @@ from: (string | null)
116744
116372
  */
116745
116373
  codeEnabled: boolean
116746
116374
  /**
116747
- * Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
116375
+ * Base URL magic links point at, e.g. "https://public.lessly.com/{productId}/users". Null uses the deployment default.
116748
116376
  */
116749
116377
  linkBaseUrl: (string | null)
116750
116378
  /**
@@ -116868,7 +116496,7 @@ successMessage: string
116868
116496
  */
116869
116497
  doubleOptIn: boolean
116870
116498
  /**
116871
- * 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.
116499
+ * 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.
116872
116500
  */
116873
116501
  retentionDays: number
116874
116502
  /**
@@ -117213,11 +116841,11 @@ finishedAt: string
117213
116841
  */
117214
116842
  waitlistRetentionDays: number
117215
116843
  /**
117216
- * 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.
116844
+ * 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.
117217
116845
  */
117218
116846
  waitlistPromisedMaxDays: number
117219
116847
  /**
117220
- * 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.
116848
+ * 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.
117221
116849
  */
117222
116850
  waitlistWiderThanPromised: boolean
117223
116851
  }
@@ -117678,7 +117306,7 @@ refreshReuseDetected: number
117678
117306
  */
117679
117307
  since: string
117680
117308
  /**
117681
- * 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.
117309
+ * Point-in-time directory populations by DERIVED status — `user` has no status column, these are computed from `waitlisted` and the ban/delete/erase timestamps.
117682
117310
  */
117683
117311
  users: {
117684
117312
  /**
@@ -117686,7 +117314,7 @@ users: {
117686
117314
  */
117687
117315
  total: number
117688
117316
  /**
117689
- * Full accounts: kind 'account', not waitlisted, not banned, not deleted, not erased.
117317
+ * Full accounts: not waitlisted, not banned, not deleted, not erased.
117690
117318
  */
117691
117319
  active: number
117692
117320
  /**
@@ -117701,10 +117329,6 @@ erased: number
117701
117329
  * SOFT-deleted and still recoverable — not erased.
117702
117330
  */
117703
117331
  deleted: number
117704
- /**
117705
- * 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.
117706
- */
117707
- contacts: number
117708
117332
  /**
117709
117333
  * Waitlist signups with no credential yet.
117710
117334
  */
@@ -117759,251 +117383,6 @@ createdInWindow: number
117759
117383
  }
117760
117384
  }
117761
117385
 
117762
- export interface UsersTouchesCreateInput {
117763
- /**
117764
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
117765
- */
117766
- body: string
117767
- /**
117768
- * The end user this interaction was with.
117769
- */
117770
- userId: string
117771
- /**
117772
- * 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.
117773
- */
117774
- channel: ("message" | "call" | "meeting" | "note" | "email")
117775
- /**
117776
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
117777
- */
117778
- direction: ("outbound" | "inbound" | "none")
117779
- /**
117780
- * When it happened (ISO 8601). Omit to mean now — pass it when logging after the fact, which may be any time in the past.
117781
- */
117782
- occurredAt?: string
117783
- }
117784
-
117785
- export interface UsersTouchesCreateOutput {
117786
- /**
117787
- * Id of this touch. Pass it to users_touches_update or _delete.
117788
- */
117789
- id: string
117790
- /**
117791
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
117792
- */
117793
- body: string
117794
- /**
117795
- * The end user this interaction was with.
117796
- */
117797
- userId: string
117798
- /**
117799
- * Id of the operator or agent that logged it, verbatim.
117800
- */
117801
- actorId: string
117802
- /**
117803
- * 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.
117804
- */
117805
- channel: ("message" | "call" | "meeting" | "note" | "email")
117806
- /**
117807
- * Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
117808
- */
117809
- actorType: ("operator" | "agent")
117810
- /**
117811
- * When the touch was logged (ISO 8601).
117812
- */
117813
- createdAt: string
117814
- /**
117815
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
117816
- */
117817
- direction: ("outbound" | "inbound" | "none")
117818
- /**
117819
- * Product this touch belongs to. Never an input — it comes from the calling identity.
117820
- */
117821
- productId: string
117822
- /**
117823
- * When the touch was last edited (ISO 8601).
117824
- */
117825
- updatedAt: string
117826
- /**
117827
- * When the interaction happened (ISO 8601) — not when it was logged.
117828
- */
117829
- occurredAt: string
117830
- }
117831
-
117832
- export interface UsersTouchesDiscardInput {
117833
- /**
117834
- * 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.
117835
- */
117836
- force?: boolean
117837
- /**
117838
- * The end user the touch belongs to.
117839
- */
117840
- userId: string
117841
- /**
117842
- * The touch to delete, from users_touches_list.
117843
- */
117844
- touchId: string
117845
- }
117846
-
117847
- export interface UsersTouchesDiscardOutput {
117848
- /**
117849
- * Id of the touch that was deleted.
117850
- */
117851
- id: string
117852
- /**
117853
- * The end user it belonged to.
117854
- */
117855
- userId: string
117856
- /**
117857
- * Always true — a failure answers 404 instead.
117858
- */
117859
- deleted: true
117860
- }
117861
-
117862
- export interface UsersTouchesListInput {
117863
- /**
117864
- * Page size, 1-100. Default 50.
117865
- */
117866
- limit?: number
117867
- /**
117868
- * Opaque cursor from a previous response's `nextCursor`. Omit for the first page.
117869
- */
117870
- cursor?: string
117871
- /**
117872
- * The end user whose touches to list.
117873
- */
117874
- userId: string
117875
- /**
117876
- * Only touches on this channel. Omit for all of them.
117877
- */
117878
- channel?: ("message" | "call" | "meeting" | "note" | "email")
117879
- }
117880
-
117881
- export interface UsersTouchesListOutput {
117882
- /**
117883
- * The page of touches, newest first.
117884
- */
117885
- items: {
117886
- /**
117887
- * Id of this touch. Pass it to users_touches_update or _delete.
117888
- */
117889
- id: string
117890
- /**
117891
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
117892
- */
117893
- body: string
117894
- /**
117895
- * The end user this interaction was with.
117896
- */
117897
- userId: string
117898
- /**
117899
- * Id of the operator or agent that logged it, verbatim.
117900
- */
117901
- actorId: string
117902
- /**
117903
- * 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.
117904
- */
117905
- channel: ("message" | "call" | "meeting" | "note" | "email")
117906
- /**
117907
- * Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
117908
- */
117909
- actorType: ("operator" | "agent")
117910
- /**
117911
- * When the touch was logged (ISO 8601).
117912
- */
117913
- createdAt: string
117914
- /**
117915
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
117916
- */
117917
- direction: ("outbound" | "inbound" | "none")
117918
- /**
117919
- * Product this touch belongs to. Never an input — it comes from the calling identity.
117920
- */
117921
- productId: string
117922
- /**
117923
- * When the touch was last edited (ISO 8601).
117924
- */
117925
- updatedAt: string
117926
- /**
117927
- * When the interaction happened (ISO 8601) — not when it was logged.
117928
- */
117929
- occurredAt: string
117930
- }[]
117931
- /**
117932
- * Pass as `cursor` for the next page. Null when this was the last one.
117933
- */
117934
- nextCursor: (string | null)
117935
- }
117936
-
117937
- export interface UsersTouchesUpdateInput {
117938
- /**
117939
- * Replacement text, 1-8192 characters. Omit to leave it unchanged.
117940
- */
117941
- body?: string
117942
- /**
117943
- * 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.
117944
- */
117945
- force?: boolean
117946
- /**
117947
- * The end user the touch belongs to.
117948
- */
117949
- userId: string
117950
- /**
117951
- * The touch to edit, from users_touches_list.
117952
- */
117953
- touchId: string
117954
- /**
117955
- * Correct when it happened (ISO 8601). Omit to leave it unchanged.
117956
- */
117957
- occurredAt?: string
117958
- }
117959
-
117960
- export interface UsersTouchesUpdateOutput {
117961
- /**
117962
- * Id of this touch. Pass it to users_touches_update or _delete.
117963
- */
117964
- id: string
117965
- /**
117966
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
117967
- */
117968
- body: string
117969
- /**
117970
- * The end user this interaction was with.
117971
- */
117972
- userId: string
117973
- /**
117974
- * Id of the operator or agent that logged it, verbatim.
117975
- */
117976
- actorId: string
117977
- /**
117978
- * 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.
117979
- */
117980
- channel: ("message" | "call" | "meeting" | "note" | "email")
117981
- /**
117982
- * Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
117983
- */
117984
- actorType: ("operator" | "agent")
117985
- /**
117986
- * When the touch was logged (ISO 8601).
117987
- */
117988
- createdAt: string
117989
- /**
117990
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
117991
- */
117992
- direction: ("outbound" | "inbound" | "none")
117993
- /**
117994
- * Product this touch belongs to. Never an input — it comes from the calling identity.
117995
- */
117996
- productId: string
117997
- /**
117998
- * When the touch was last edited (ISO 8601).
117999
- */
118000
- updatedAt: string
118001
- /**
118002
- * When the interaction happened (ISO 8601) — not when it was logged.
118003
- */
118004
- occurredAt: string
118005
- }
118006
-
118007
117386
  export interface UsersUsersBanInput {
118008
117387
  /**
118009
117388
  * The opaque user id returned by users_users_create or _list.
@@ -118016,22 +117395,10 @@ export interface UsersUsersBanOutput {
118016
117395
  * Id of this end user. Pass it to any users_users_* tool.
118017
117396
  */
118018
117397
  id: string
118019
- /**
118020
- * 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.
118021
- */
118022
- kind: ("account" | "contact")
118023
117398
  /**
118024
117399
  * The user's display name. Null when nobody set one.
118025
117400
  */
118026
117401
  name: (string | null)
118027
- /**
118028
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118029
- */
118030
- tags: string[]
118031
- /**
118032
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118033
- */
118034
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118035
117402
  /**
118036
117403
  * When the user was banned (ISO 8601). Null while they are not banned.
118037
117404
  */
@@ -118064,10 +117431,6 @@ productId: string
118064
117431
  * When the user was last changed (ISO 8601).
118065
117432
  */
118066
117433
  updatedAt: string
118067
- /**
118068
- * 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.
118069
- */
118070
- mergedFrom: (string | null)
118071
117434
  /**
118072
117435
  * Whether this user is still on the waitlist and cannot sign in yet.
118073
117436
  */
@@ -118081,9 +117444,9 @@ identifiers: {
118081
117444
  */
118082
117445
  id: string
118083
117446
  /**
118084
- * 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.
117447
+ * What kind of identifier this is. Today always `email`.
118085
117448
  */
118086
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117449
+ type: "email"
118087
117450
  /**
118088
117451
  * The address as the user typed it, for display.
118089
117452
  */
@@ -118105,10 +117468,6 @@ valueCanonical: string
118105
117468
  */
118106
117469
  verificationStatus: ("unverified" | "verified" | "expired")
118107
117470
  }[]
118108
- /**
118109
- * 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.
118110
- */
118111
- lastTouchAt: (string | null)
118112
117471
  /**
118113
117472
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118114
117473
  */
@@ -118143,10 +117502,6 @@ unsafeMetadata: {
118143
117502
  privateMetadata: {
118144
117503
  [k: string]: unknown
118145
117504
  }
118146
- /**
118147
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118148
- */
118149
- mergedIntoUserId: (string | null)
118150
117505
  /**
118151
117506
  * Id of the primary identifier row. Null when there is no primary identifier.
118152
117507
  */
@@ -118158,22 +117513,10 @@ emailChangeLockedUntil: (string | null)
118158
117513
  }
118159
117514
 
118160
117515
  export interface UsersUsersCreateInput {
118161
- /**
118162
- * 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.
118163
- */
118164
- kind?: ("account" | "contact")
118165
117516
  /**
118166
117517
  * The user's display name.
118167
117518
  */
118168
117519
  name?: string
118169
- /**
118170
- * Free labels for this person. Trimmed, lowercased and de-duplicated on write; at most 32 of at most 64 characters each.
118171
- */
118172
- tags?: string[]
118173
- /**
118174
- * The relationship stage to start them at, in funnel order: new, contacted, replied, engaged, converted, lost. Default 'new'.
118175
- */
118176
- stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118177
117520
  /**
118178
117521
  * URL of the user's avatar image.
118179
117522
  */
@@ -118204,7 +117547,7 @@ testUser?: boolean
118204
117547
  */
118205
117548
  waitlisted?: boolean
118206
117549
  /**
118207
- * How this user is reached: their email addresses, plus any contact channels (`phone`, `telegram`, `linkedin`, `x`). At least one is required.
117550
+ * The email addresses that reach this user. At least one is required.
118208
117551
  *
118209
117552
  * @minItems 1
118210
117553
  */
@@ -118212,13 +117555,13 @@ identifiers: [{
118212
117555
  /**
118213
117556
  * Identifier kind. Only 'email' exists in this phase.
118214
117557
  */
118215
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117558
+ type: "email"
118216
117559
  /**
118217
117560
  * The email address. Stored canonicalised (lowercase, NFC) plus raw for display.
118218
117561
  */
118219
117562
  value: string
118220
117563
  /**
118221
- * 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.
117564
+ * 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.
118222
117565
  */
118223
117566
  verified?: boolean
118224
117567
  /**
@@ -118229,13 +117572,13 @@ isPrimary?: boolean
118229
117572
  /**
118230
117573
  * Identifier kind. Only 'email' exists in this phase.
118231
117574
  */
118232
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117575
+ type: "email"
118233
117576
  /**
118234
117577
  * The email address. Stored canonicalised (lowercase, NFC) plus raw for display.
118235
117578
  */
118236
117579
  value: string
118237
117580
  /**
118238
- * 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.
117581
+ * 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.
118239
117582
  */
118240
117583
  verified?: boolean
118241
117584
  /**
@@ -118274,22 +117617,10 @@ export interface UsersUsersCreateOutput {
118274
117617
  * Id of this end user. Pass it to any users_users_* tool.
118275
117618
  */
118276
117619
  id: string
118277
- /**
118278
- * 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.
118279
- */
118280
- kind: ("account" | "contact")
118281
117620
  /**
118282
117621
  * The user's display name. Null when nobody set one.
118283
117622
  */
118284
117623
  name: (string | null)
118285
- /**
118286
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118287
- */
118288
- tags: string[]
118289
- /**
118290
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118291
- */
118292
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118293
117624
  /**
118294
117625
  * When the user was banned (ISO 8601). Null while they are not banned.
118295
117626
  */
@@ -118322,10 +117653,6 @@ productId: string
118322
117653
  * When the user was last changed (ISO 8601).
118323
117654
  */
118324
117655
  updatedAt: string
118325
- /**
118326
- * 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.
118327
- */
118328
- mergedFrom: (string | null)
118329
117656
  /**
118330
117657
  * Whether this user is still on the waitlist and cannot sign in yet.
118331
117658
  */
@@ -118339,9 +117666,9 @@ identifiers: {
118339
117666
  */
118340
117667
  id: string
118341
117668
  /**
118342
- * 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.
117669
+ * What kind of identifier this is. Today always `email`.
118343
117670
  */
118344
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117671
+ type: "email"
118345
117672
  /**
118346
117673
  * The address as the user typed it, for display.
118347
117674
  */
@@ -118363,10 +117690,6 @@ valueCanonical: string
118363
117690
  */
118364
117691
  verificationStatus: ("unverified" | "verified" | "expired")
118365
117692
  }[]
118366
- /**
118367
- * 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.
118368
- */
118369
- lastTouchAt: (string | null)
118370
117693
  /**
118371
117694
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118372
117695
  */
@@ -118401,10 +117724,6 @@ unsafeMetadata: {
118401
117724
  privateMetadata: {
118402
117725
  [k: string]: unknown
118403
117726
  }
118404
- /**
118405
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118406
- */
118407
- mergedIntoUserId: (string | null)
118408
117727
  /**
118409
117728
  * Id of the primary identifier row. Null when there is no primary identifier.
118410
117729
  */
@@ -118427,22 +117746,10 @@ export interface UsersUsersDeleteOutput {
118427
117746
  * Id of this end user. Pass it to any users_users_* tool.
118428
117747
  */
118429
117748
  id: string
118430
- /**
118431
- * 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.
118432
- */
118433
- kind: ("account" | "contact")
118434
117749
  /**
118435
117750
  * The user's display name. Null when nobody set one.
118436
117751
  */
118437
117752
  name: (string | null)
118438
- /**
118439
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118440
- */
118441
- tags: string[]
118442
- /**
118443
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118444
- */
118445
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118446
117753
  /**
118447
117754
  * When the user was banned (ISO 8601). Null while they are not banned.
118448
117755
  */
@@ -118475,10 +117782,6 @@ productId: string
118475
117782
  * When the user was last changed (ISO 8601).
118476
117783
  */
118477
117784
  updatedAt: string
118478
- /**
118479
- * 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.
118480
- */
118481
- mergedFrom: (string | null)
118482
117785
  /**
118483
117786
  * Whether this user is still on the waitlist and cannot sign in yet.
118484
117787
  */
@@ -118492,9 +117795,9 @@ identifiers: {
118492
117795
  */
118493
117796
  id: string
118494
117797
  /**
118495
- * 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.
117798
+ * What kind of identifier this is. Today always `email`.
118496
117799
  */
118497
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117800
+ type: "email"
118498
117801
  /**
118499
117802
  * The address as the user typed it, for display.
118500
117803
  */
@@ -118516,10 +117819,6 @@ valueCanonical: string
118516
117819
  */
118517
117820
  verificationStatus: ("unverified" | "verified" | "expired")
118518
117821
  }[]
118519
- /**
118520
- * 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.
118521
- */
118522
- lastTouchAt: (string | null)
118523
117822
  /**
118524
117823
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118525
117824
  */
@@ -118554,10 +117853,6 @@ unsafeMetadata: {
118554
117853
  privateMetadata: {
118555
117854
  [k: string]: unknown
118556
117855
  }
118557
- /**
118558
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118559
- */
118560
- mergedIntoUserId: (string | null)
118561
117856
  /**
118562
117857
  * Id of the primary identifier row. Null when there is no primary identifier.
118563
117858
  */
@@ -118569,10 +117864,6 @@ emailChangeLockedUntil: (string | null)
118569
117864
  }
118570
117865
 
118571
117866
  export interface UsersUsersExportInput {
118572
- /**
118573
- * Filter by kind: 'account' or 'contact'. Omit for accounts only, unless `includeContacts` is true.
118574
- */
118575
- kind?: ("account" | "contact")
118576
117867
  /**
118577
117868
  * Rows per page, 1-500. Default 100.
118578
117869
  */
@@ -118593,10 +117884,6 @@ status?: ("active" | "banned" | "waitlisted")
118593
117884
  * Include soft-deleted users. Default false.
118594
117885
  */
118595
117886
  includeDeleted?: boolean
118596
- /**
118597
- * Include CONTACTS alongside accounts, so one pass exports both. Default false — the same rule this export already applies to waitlist signups and test users.
118598
- */
118599
- includeContacts?: boolean
118600
117887
  }
118601
117888
 
118602
117889
  export interface UsersUsersExportOutput {
@@ -118606,22 +117893,10 @@ users: {
118606
117893
  * Id of this end user. Pass it to any users_users_* tool.
118607
117894
  */
118608
117895
  id: string
118609
- /**
118610
- * 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.
118611
- */
118612
- kind: ("account" | "contact")
118613
117896
  /**
118614
117897
  * The user's display name. Null when nobody set one.
118615
117898
  */
118616
117899
  name: (string | null)
118617
- /**
118618
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118619
- */
118620
- tags: string[]
118621
- /**
118622
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118623
- */
118624
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118625
117900
  /**
118626
117901
  * When the user was banned (ISO 8601). Null while they are not banned.
118627
117902
  */
@@ -118654,10 +117929,6 @@ productId: string
118654
117929
  * When the user was last changed (ISO 8601).
118655
117930
  */
118656
117931
  updatedAt: string
118657
- /**
118658
- * 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.
118659
- */
118660
- mergedFrom: (string | null)
118661
117932
  /**
118662
117933
  * Whether this user is still on the waitlist and cannot sign in yet.
118663
117934
  */
@@ -118671,9 +117942,9 @@ identifiers: {
118671
117942
  */
118672
117943
  id: string
118673
117944
  /**
118674
- * 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.
117945
+ * What kind of identifier this is. Today always `email`.
118675
117946
  */
118676
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117947
+ type: "email"
118677
117948
  /**
118678
117949
  * The address as the user typed it, for display.
118679
117950
  */
@@ -118695,10 +117966,6 @@ valueCanonical: string
118695
117966
  */
118696
117967
  verificationStatus: ("unverified" | "verified" | "expired")
118697
117968
  }[]
118698
- /**
118699
- * 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.
118700
- */
118701
- lastTouchAt: (string | null)
118702
117969
  /**
118703
117970
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118704
117971
  */
@@ -118733,10 +118000,6 @@ unsafeMetadata: {
118733
118000
  privateMetadata: {
118734
118001
  [k: string]: unknown
118735
118002
  }
118736
- /**
118737
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118738
- */
118739
- mergedIntoUserId: (string | null)
118740
118003
  /**
118741
118004
  * Id of the primary identifier row. Null when there is no primary identifier.
118742
118005
  */
@@ -118762,22 +118025,10 @@ export interface UsersUsersGetOutput {
118762
118025
  * Id of this end user. Pass it to any users_users_* tool.
118763
118026
  */
118764
118027
  id: string
118765
- /**
118766
- * 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.
118767
- */
118768
- kind: ("account" | "contact")
118769
118028
  /**
118770
118029
  * The user's display name. Null when nobody set one.
118771
118030
  */
118772
118031
  name: (string | null)
118773
- /**
118774
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118775
- */
118776
- tags: string[]
118777
- /**
118778
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118779
- */
118780
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118781
118032
  /**
118782
118033
  * When the user was banned (ISO 8601). Null while they are not banned.
118783
118034
  */
@@ -118810,10 +118061,6 @@ productId: string
118810
118061
  * When the user was last changed (ISO 8601).
118811
118062
  */
118812
118063
  updatedAt: string
118813
- /**
118814
- * 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.
118815
- */
118816
- mergedFrom: (string | null)
118817
118064
  /**
118818
118065
  * Whether this user is still on the waitlist and cannot sign in yet.
118819
118066
  */
@@ -118827,9 +118074,9 @@ identifiers: {
118827
118074
  */
118828
118075
  id: string
118829
118076
  /**
118830
- * 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.
118077
+ * What kind of identifier this is. Today always `email`.
118831
118078
  */
118832
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
118079
+ type: "email"
118833
118080
  /**
118834
118081
  * The address as the user typed it, for display.
118835
118082
  */
@@ -118851,10 +118098,6 @@ valueCanonical: string
118851
118098
  */
118852
118099
  verificationStatus: ("unverified" | "verified" | "expired")
118853
118100
  }[]
118854
- /**
118855
- * 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.
118856
- */
118857
- lastTouchAt: (string | null)
118858
118101
  /**
118859
118102
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118860
118103
  */
@@ -118889,10 +118132,6 @@ unsafeMetadata: {
118889
118132
  privateMetadata: {
118890
118133
  [k: string]: unknown
118891
118134
  }
118892
- /**
118893
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118894
- */
118895
- mergedIntoUserId: (string | null)
118896
118135
  /**
118897
118136
  * Id of the primary identifier row. Null when there is no primary identifier.
118898
118137
  */
@@ -118947,10 +118186,6 @@ userId: (string | null)
118947
118186
  * How many rows were passed over — an address already in the directory, typically.
118948
118187
  */
118949
118188
  skipped: number
118950
- /**
118951
- * How many of the CREATED users were contacts (`kind: 'contact'`). A row that was skipped or failed is not counted.
118952
- */
118953
- contacts: number
118954
118189
  /**
118955
118190
  * How many rows you submitted.
118956
118191
  */
@@ -119000,14 +118235,6 @@ expiresAt: string
119000
118235
  }
119001
118236
 
119002
118237
  export interface UsersUsersListInput {
119003
- /**
119004
- * Return only people carrying this tag. ONE tag, matched against the stored (lowercased) value and ANDed with the other filters.
119005
- */
119006
- tag?: string
119007
- /**
119008
- * 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.
119009
- */
119010
- kind?: ("account" | "contact")
119011
118238
  /**
119012
118239
  * Page size, 1-100. Default 25.
119013
118240
  */
@@ -119016,10 +118243,6 @@ limit?: number
119016
118243
  * Case-insensitive substring match against the user's identifiers (email) and name.
119017
118244
  */
119018
118245
  query?: string
119019
- /**
119020
- * Filter by relationship stage: new, contacted, replied, engaged, converted or lost. Omit for every stage.
119021
- */
119022
- stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119023
118246
  /**
119024
118247
  * Opaque cursor from a previous response's `nextCursor`. Omit for the first page.
119025
118248
  */
@@ -119032,18 +118255,6 @@ status?: ("active" | "banned" | "waitlisted")
119032
118255
  * Include soft-deleted users. Default false — deleted users are hidden.
119033
118256
  */
119034
118257
  includeDeleted?: boolean
119035
- /**
119036
- * 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.
119037
- */
119038
- lastTouchAfter?: string
119039
- /**
119040
- * 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.
119041
- */
119042
- includeContacts?: boolean
119043
- /**
119044
- * 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.
119045
- */
119046
- lastTouchBefore?: string
119047
118258
  /**
119048
118259
  * 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.
119049
118260
  */
@@ -119063,22 +118274,10 @@ users: {
119063
118274
  * Id of this end user. Pass it to any users_users_* tool.
119064
118275
  */
119065
118276
  id: string
119066
- /**
119067
- * 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.
119068
- */
119069
- kind: ("account" | "contact")
119070
118277
  /**
119071
118278
  * The user's display name. Null when nobody set one.
119072
118279
  */
119073
118280
  name: (string | null)
119074
- /**
119075
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
119076
- */
119077
- tags: string[]
119078
- /**
119079
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
119080
- */
119081
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119082
118281
  /**
119083
118282
  * When the user was banned (ISO 8601). Null while they are not banned.
119084
118283
  */
@@ -119111,10 +118310,6 @@ productId: string
119111
118310
  * When the user was last changed (ISO 8601).
119112
118311
  */
119113
118312
  updatedAt: string
119114
- /**
119115
- * 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.
119116
- */
119117
- mergedFrom: (string | null)
119118
118313
  /**
119119
118314
  * Whether this user is still on the waitlist and cannot sign in yet.
119120
118315
  */
@@ -119128,9 +118323,9 @@ identifiers: {
119128
118323
  */
119129
118324
  id: string
119130
118325
  /**
119131
- * 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.
118326
+ * What kind of identifier this is. Today always `email`.
119132
118327
  */
119133
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
118328
+ type: "email"
119134
118329
  /**
119135
118330
  * The address as the user typed it, for display.
119136
118331
  */
@@ -119152,10 +118347,6 @@ valueCanonical: string
119152
118347
  */
119153
118348
  verificationStatus: ("unverified" | "verified" | "expired")
119154
118349
  }[]
119155
- /**
119156
- * 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.
119157
- */
119158
- lastTouchAt: (string | null)
119159
118350
  /**
119160
118351
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
119161
118352
  */
@@ -119190,10 +118381,6 @@ unsafeMetadata: {
119190
118381
  privateMetadata: {
119191
118382
  [k: string]: unknown
119192
118383
  }
119193
- /**
119194
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
119195
- */
119196
- mergedIntoUserId: (string | null)
119197
118384
  /**
119198
118385
  * Id of the primary identifier row. Null when there is no primary identifier.
119199
118386
  */
@@ -119247,22 +118434,10 @@ export interface UsersUsersUnbanOutput {
119247
118434
  * Id of this end user. Pass it to any users_users_* tool.
119248
118435
  */
119249
118436
  id: string
119250
- /**
119251
- * 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.
119252
- */
119253
- kind: ("account" | "contact")
119254
118437
  /**
119255
118438
  * The user's display name. Null when nobody set one.
119256
118439
  */
119257
118440
  name: (string | null)
119258
- /**
119259
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
119260
- */
119261
- tags: string[]
119262
- /**
119263
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
119264
- */
119265
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119266
118441
  /**
119267
118442
  * When the user was banned (ISO 8601). Null while they are not banned.
119268
118443
  */
@@ -119295,10 +118470,6 @@ productId: string
119295
118470
  * When the user was last changed (ISO 8601).
119296
118471
  */
119297
118472
  updatedAt: string
119298
- /**
119299
- * 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.
119300
- */
119301
- mergedFrom: (string | null)
119302
118473
  /**
119303
118474
  * Whether this user is still on the waitlist and cannot sign in yet.
119304
118475
  */
@@ -119312,9 +118483,9 @@ identifiers: {
119312
118483
  */
119313
118484
  id: string
119314
118485
  /**
119315
- * 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.
118486
+ * What kind of identifier this is. Today always `email`.
119316
118487
  */
119317
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
118488
+ type: "email"
119318
118489
  /**
119319
118490
  * The address as the user typed it, for display.
119320
118491
  */
@@ -119336,10 +118507,6 @@ valueCanonical: string
119336
118507
  */
119337
118508
  verificationStatus: ("unverified" | "verified" | "expired")
119338
118509
  }[]
119339
- /**
119340
- * 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.
119341
- */
119342
- lastTouchAt: (string | null)
119343
118510
  /**
119344
118511
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
119345
118512
  */
@@ -119374,10 +118541,6 @@ unsafeMetadata: {
119374
118541
  privateMetadata: {
119375
118542
  [k: string]: unknown
119376
118543
  }
119377
- /**
119378
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
119379
- */
119380
- mergedIntoUserId: (string | null)
119381
118544
  /**
119382
118545
  * Id of the primary identifier row. Null when there is no primary identifier.
119383
118546
  */
@@ -119393,14 +118556,6 @@ export interface UsersUsersUpdateInput {
119393
118556
  * The user's display name. Pass null to clear.
119394
118557
  */
119395
118558
  name?: (string | null)
119396
- /**
119397
- * REPLACES the whole tag list — send every tag you want stored, not just the new ones. Trimmed, lowercased and de-duplicated on write.
119398
- */
119399
- tags?: string[]
119400
- /**
119401
- * 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.
119402
- */
119403
- stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119404
118559
  /**
119405
118560
  * The user to update.
119406
118561
  */
@@ -119448,22 +118603,10 @@ export interface UsersUsersUpdateOutput {
119448
118603
  * Id of this end user. Pass it to any users_users_* tool.
119449
118604
  */
119450
118605
  id: string
119451
- /**
119452
- * 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.
119453
- */
119454
- kind: ("account" | "contact")
119455
118606
  /**
119456
118607
  * The user's display name. Null when nobody set one.
119457
118608
  */
119458
118609
  name: (string | null)
119459
- /**
119460
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
119461
- */
119462
- tags: string[]
119463
- /**
119464
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
119465
- */
119466
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119467
118610
  /**
119468
118611
  * When the user was banned (ISO 8601). Null while they are not banned.
119469
118612
  */
@@ -119496,10 +118639,6 @@ productId: string
119496
118639
  * When the user was last changed (ISO 8601).
119497
118640
  */
119498
118641
  updatedAt: string
119499
- /**
119500
- * 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.
119501
- */
119502
- mergedFrom: (string | null)
119503
118642
  /**
119504
118643
  * Whether this user is still on the waitlist and cannot sign in yet.
119505
118644
  */
@@ -119513,9 +118652,9 @@ identifiers: {
119513
118652
  */
119514
118653
  id: string
119515
118654
  /**
119516
- * 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.
118655
+ * What kind of identifier this is. Today always `email`.
119517
118656
  */
119518
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
118657
+ type: "email"
119519
118658
  /**
119520
118659
  * The address as the user typed it, for display.
119521
118660
  */
@@ -119537,10 +118676,6 @@ valueCanonical: string
119537
118676
  */
119538
118677
  verificationStatus: ("unverified" | "verified" | "expired")
119539
118678
  }[]
119540
- /**
119541
- * 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.
119542
- */
119543
- lastTouchAt: (string | null)
119544
118679
  /**
119545
118680
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
119546
118681
  */
@@ -119575,10 +118710,6 @@ unsafeMetadata: {
119575
118710
  privateMetadata: {
119576
118711
  [k: string]: unknown
119577
118712
  }
119578
- /**
119579
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
119580
- */
119581
- mergedIntoUserId: (string | null)
119582
118713
  /**
119583
118714
  * Id of the primary identifier row. Null when there is no primary identifier.
119584
118715
  */