@epilot/sdk 2.15.2 → 2.15.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/definitions/customer-portal.json +36 -8
  2. package/definitions/integration-toolkit-runtime.json +1 -1
  3. package/definitions/integration-toolkit.json +290 -3
  4. package/dist/apis/access-token.cjs +6 -6
  5. package/dist/apis/access-token.js +1 -1
  6. package/dist/apis/address-suggestions.cjs +6 -6
  7. package/dist/apis/address-suggestions.js +1 -1
  8. package/dist/apis/address.cjs +6 -6
  9. package/dist/apis/address.js +1 -1
  10. package/dist/apis/ai-agents.cjs +6 -6
  11. package/dist/apis/ai-agents.js +1 -1
  12. package/dist/apis/app.cjs +6 -6
  13. package/dist/apis/app.js +1 -1
  14. package/dist/apis/audit-logs.cjs +6 -6
  15. package/dist/apis/audit-logs.js +1 -1
  16. package/dist/apis/automation.cjs +6 -6
  17. package/dist/apis/automation.js +1 -1
  18. package/dist/apis/billing.cjs +6 -6
  19. package/dist/apis/billing.js +1 -1
  20. package/dist/apis/blueprint-manifest.cjs +6 -6
  21. package/dist/apis/blueprint-manifest.js +1 -1
  22. package/dist/apis/calendar.cjs +6 -6
  23. package/dist/apis/calendar.js +1 -1
  24. package/dist/apis/configuration-hub.cjs +6 -6
  25. package/dist/apis/configuration-hub.js +1 -1
  26. package/dist/apis/consent.cjs +6 -6
  27. package/dist/apis/consent.js +1 -1
  28. package/dist/apis/customer-portal.cjs +6 -6
  29. package/dist/apis/customer-portal.d.cts +2 -2
  30. package/dist/apis/customer-portal.d.ts +2 -2
  31. package/dist/apis/customer-portal.js +1 -1
  32. package/dist/apis/dashboard.cjs +6 -6
  33. package/dist/apis/dashboard.js +1 -1
  34. package/dist/apis/data-governance.cjs +6 -6
  35. package/dist/apis/data-governance.js +1 -1
  36. package/dist/apis/deduplication.cjs +6 -6
  37. package/dist/apis/deduplication.js +1 -1
  38. package/dist/apis/design.cjs +6 -6
  39. package/dist/apis/design.js +1 -1
  40. package/dist/apis/document.cjs +6 -6
  41. package/dist/apis/document.js +1 -1
  42. package/dist/apis/email-settings.cjs +6 -6
  43. package/dist/apis/email-settings.js +1 -1
  44. package/dist/apis/email-template.cjs +6 -6
  45. package/dist/apis/email-template.js +1 -1
  46. package/dist/apis/entity-mapping.cjs +6 -6
  47. package/dist/apis/entity-mapping.js +1 -1
  48. package/dist/apis/entity.cjs +6 -6
  49. package/dist/apis/entity.js +1 -1
  50. package/dist/apis/environments.cjs +6 -6
  51. package/dist/apis/environments.js +1 -1
  52. package/dist/apis/event-catalog.cjs +6 -6
  53. package/dist/apis/event-catalog.js +1 -1
  54. package/dist/apis/file.cjs +6 -6
  55. package/dist/apis/file.js +1 -1
  56. package/dist/apis/iban.cjs +6 -6
  57. package/dist/apis/iban.js +1 -1
  58. package/dist/apis/integration-toolkit.cjs +8 -8
  59. package/dist/apis/integration-toolkit.d.cts +2 -2
  60. package/dist/apis/integration-toolkit.d.ts +2 -2
  61. package/dist/apis/integration-toolkit.js +2 -2
  62. package/dist/apis/journey.cjs +6 -6
  63. package/dist/apis/journey.js +1 -1
  64. package/dist/apis/kanban.cjs +6 -6
  65. package/dist/apis/kanban.js +1 -1
  66. package/dist/apis/message.cjs +6 -6
  67. package/dist/apis/message.js +1 -1
  68. package/dist/apis/metering.cjs +6 -6
  69. package/dist/apis/metering.js +1 -1
  70. package/dist/apis/notes.cjs +6 -6
  71. package/dist/apis/notes.js +1 -1
  72. package/dist/apis/notification.cjs +6 -6
  73. package/dist/apis/notification.js +1 -1
  74. package/dist/apis/organization.cjs +6 -6
  75. package/dist/apis/organization.js +1 -1
  76. package/dist/apis/partner-directory.cjs +6 -6
  77. package/dist/apis/partner-directory.js +1 -1
  78. package/dist/apis/permissions.cjs +6 -6
  79. package/dist/apis/permissions.js +1 -1
  80. package/dist/apis/pricing-tier.cjs +6 -6
  81. package/dist/apis/pricing-tier.js +1 -1
  82. package/dist/apis/pricing.cjs +6 -6
  83. package/dist/apis/pricing.js +1 -1
  84. package/dist/apis/purpose.cjs +6 -6
  85. package/dist/apis/purpose.js +1 -1
  86. package/dist/apis/query.cjs +6 -6
  87. package/dist/apis/query.js +1 -1
  88. package/dist/apis/sandbox.cjs +6 -6
  89. package/dist/apis/sandbox.js +1 -1
  90. package/dist/apis/sharing.cjs +6 -6
  91. package/dist/apis/sharing.js +1 -1
  92. package/dist/apis/snapshot.cjs +6 -6
  93. package/dist/apis/snapshot.js +1 -1
  94. package/dist/apis/submission.cjs +6 -6
  95. package/dist/apis/submission.js +1 -1
  96. package/dist/apis/target.cjs +6 -6
  97. package/dist/apis/target.js +1 -1
  98. package/dist/apis/targeting.cjs +6 -6
  99. package/dist/apis/targeting.js +1 -1
  100. package/dist/apis/template-variables.cjs +6 -6
  101. package/dist/apis/template-variables.js +1 -1
  102. package/dist/apis/user.cjs +6 -6
  103. package/dist/apis/user.js +1 -1
  104. package/dist/apis/validation-rules.cjs +6 -6
  105. package/dist/apis/validation-rules.js +1 -1
  106. package/dist/apis/webhooks.cjs +6 -6
  107. package/dist/apis/webhooks.js +1 -1
  108. package/dist/apis/workflow-definition.cjs +6 -6
  109. package/dist/apis/workflow-definition.js +1 -1
  110. package/dist/apis/workflow.cjs +6 -6
  111. package/dist/apis/workflow.js +1 -1
  112. package/dist/{chunk-LNQHT4WZ.js → chunk-7LWNOS5V.js} +3 -3
  113. package/dist/{chunk-YISO22FS.cjs → chunk-7YXY2AFM.cjs} +1 -1
  114. package/dist/{chunk-YYWUKE4L.cjs → chunk-E7FFVRBQ.cjs} +3 -3
  115. package/dist/{chunk-7WGJSGWE.js → chunk-U6KIZOOU.js} +1 -1
  116. package/dist/customer-portal-7ZNROWXS.js +7 -0
  117. package/dist/customer-portal-ZW4I52KG.cjs +7 -0
  118. package/dist/{customer-portal.d-CJgDRoOo.d.cts → customer-portal.d-DsB3qJro.d.cts} +54 -21
  119. package/dist/{customer-portal.d-CJgDRoOo.d.ts → customer-portal.d-DsB3qJro.d.ts} +54 -21
  120. package/dist/index.cjs +10 -10
  121. package/dist/index.d.cts +2 -2
  122. package/dist/index.d.ts +2 -2
  123. package/dist/index.js +2 -2
  124. package/dist/integration-toolkit-MQ6PTYCJ.cjs +7 -0
  125. package/dist/integration-toolkit-Y43WV22G.js +7 -0
  126. package/dist/{integration-toolkit-runtime-5K3AAC63.js → integration-toolkit-runtime-O4742UZV.js} +1 -1
  127. package/dist/{integration-toolkit-runtime-4LHEPGGC.cjs → integration-toolkit-runtime-SX6HZTRB.cjs} +2 -2
  128. package/dist/{integration-toolkit.d-7q19qDTD.d.cts → integration-toolkit.d-BUCHo8ZQ.d.cts} +764 -6
  129. package/dist/{integration-toolkit.d-7q19qDTD.d.ts → integration-toolkit.d-BUCHo8ZQ.d.ts} +764 -6
  130. package/docs/customer-portal.md +8 -2
  131. package/docs/integration-toolkit.md +161 -0
  132. package/package.json +1 -1
  133. package/dist/customer-portal-2KYG4NWA.js +0 -7
  134. package/dist/customer-portal-WAHU36H2.cjs +0 -7
  135. package/dist/integration-toolkit-2BLX4CSH.cjs +0 -7
  136. package/dist/integration-toolkit-OLFKCTLY.js +0 -7
@@ -1048,7 +1048,7 @@ declare namespace Components {
1048
1048
  * example:
1049
1049
  * office-365-login
1050
1050
  */
1051
- ProviderSlug /* [0-9a-z-]+ */[];
1051
+ ProviderSlug /* [0-9a-z_-]+ */[];
1052
1052
  /**
1053
1053
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
1054
1054
  */
@@ -1575,7 +1575,7 @@ declare namespace Components {
1575
1575
  * example:
1576
1576
  * office-365-login
1577
1577
  */
1578
- ProviderSlug /* [0-9a-z-]+ */[];
1578
+ ProviderSlug /* [0-9a-z_-]+ */[];
1579
1579
  /**
1580
1580
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
1581
1581
  */
@@ -3503,7 +3503,11 @@ declare namespace Components {
3503
3503
  *
3504
3504
  */
3505
3505
  ExtensionHookVisualizationMetadata | /**
3506
- * Hook that replaces the built-in change email functionality for portal users. When configured, the portal does not change the user's login email itself. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the email change (most likely by sending the user instructions to confirm the new email address).
3506
+ * Hook that replaces the built-in change email functionality for portal users. When configured, the portal does not run its own change email flow. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the email change.
3507
+ * The `change_mode` controls what the portal does after the call:
3508
+ * - `asynchronous`: The third-party system takes the email change over entirely (most likely by sending the user instructions to confirm the new email address). The portal does not change the login email itself.
3509
+ * - `synchronous`: The third-party system applies the email change immediately. The portal waits for a successful (2xx) response and then also changes the portal user's login email right away, without sending a confirmation email. The user has to sign in again with the new email address afterwards.
3510
+ *
3507
3511
  * The expected response http status code to the call is:
3508
3512
  * - 2xx if the request was accepted
3509
3513
  * - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)
@@ -3522,6 +3526,8 @@ declare namespace Components {
3522
3526
  * - `synchronous`: The third-party system deletes the user immediately. The portal waits for a successful (2xx) response and then also deletes the epilot user.
3523
3527
  * - `asynchronous`: The third-party system handles deletion out-of-band. The portal does not delete anything immediately; cleanup is expected to happen later (e.g. via the user deletion API or webhooks).
3524
3528
  *
3529
+ * The optional `delete_contact` additionally deletes the contact related to the portal user, once the portal user itself was deleted (`synchronous` mode only).
3530
+ *
3525
3531
  * The expected response http status code to the call is:
3526
3532
  * - 2xx if the request was accepted
3527
3533
  * - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)
@@ -3594,7 +3600,11 @@ declare namespace Components {
3594
3600
  id?: string;
3595
3601
  }
3596
3602
  /**
3597
- * Hook that replaces the built-in change email functionality for portal users. When configured, the portal does not change the user's login email itself. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the email change (most likely by sending the user instructions to confirm the new email address).
3603
+ * Hook that replaces the built-in change email functionality for portal users. When configured, the portal does not run its own change email flow. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the email change.
3604
+ * The `change_mode` controls what the portal does after the call:
3605
+ * - `asynchronous`: The third-party system takes the email change over entirely (most likely by sending the user instructions to confirm the new email address). The portal does not change the login email itself.
3606
+ * - `synchronous`: The third-party system applies the email change immediately. The portal waits for a successful (2xx) response and then also changes the portal user's login email right away, without sending a confirmation email. The user has to sign in again with the new email address afterwards.
3607
+ *
3598
3608
  * The expected response http status code to the call is:
3599
3609
  * - 2xx if the request was accepted
3600
3610
  * - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)
@@ -3603,7 +3613,12 @@ declare namespace Components {
3603
3613
  export interface ExtensionHookChangeEmail {
3604
3614
  type: "changeEmail";
3605
3615
  /**
3606
- * Whether the portal user must confirm their current password before the change email request is handed over to the third-party system. When true, the portal collects and verifies the current password before calling the hook.
3616
+ * Controls how the email change is handled once the third-party system accepted it. `asynchronous` hands the email change over entirely to the third-party system and the portal does not change the login email itself. `synchronous` waits for the third-party system to respond and then changes the portal user's login email immediately, without a confirmation email.
3617
+ *
3618
+ */
3619
+ change_mode?: "synchronous" | "asynchronous";
3620
+ /**
3621
+ * Whether the portal user must confirm their current password before the change email request is handed over to the third-party system. When true, the portal collects and verifies the current password before calling the hook. Treated as true when `change_mode` is `synchronous`, since the portal re-creates the login with the confirmed password. Skipped either way for portal users whose identity is managed by an identity provider: an SSO login has no password to confirm.
3607
3622
  *
3608
3623
  */
3609
3624
  require_password_confirmation?: boolean;
@@ -4012,6 +4027,8 @@ declare namespace Components {
4012
4027
  * - `synchronous`: The third-party system deletes the user immediately. The portal waits for a successful (2xx) response and then also deletes the epilot user.
4013
4028
  * - `asynchronous`: The third-party system handles deletion out-of-band. The portal does not delete anything immediately; cleanup is expected to happen later (e.g. via the user deletion API or webhooks).
4014
4029
  *
4030
+ * The optional `delete_contact` additionally deletes the contact related to the portal user, once the portal user itself was deleted (`synchronous` mode only).
4031
+ *
4015
4032
  * The expected response http status code to the call is:
4016
4033
  * - 2xx if the request was accepted
4017
4034
  * - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)
@@ -4024,6 +4041,11 @@ declare namespace Components {
4024
4041
  *
4025
4042
  */
4026
4043
  deletion_mode?: "synchronous" | "asynchronous";
4044
+ /**
4045
+ * Opt-in deletion of the contact related to the portal user, applied after the portal user itself was deleted. `none` (default) leaves the contact untouched. `soft` deletes the contact, so it can still be restored from the trash. `hard` permanently purges the contact. Only applied in `synchronous` deletion mode, as `asynchronous` mode hands the cleanup over to the third-party system.
4046
+ *
4047
+ */
4048
+ delete_contact?: "none" | "soft" | "hard";
4027
4049
  /**
4028
4050
  * Optional explanation shown to the user in the delete account confirmation dialog.
4029
4051
  */
@@ -6060,7 +6082,7 @@ declare namespace Components {
6060
6082
  * example:
6061
6083
  * office-365-login
6062
6084
  */
6063
- ProviderSlug /* [0-9a-z-]+ */[];
6085
+ ProviderSlug /* [0-9a-z_-]+ */[];
6064
6086
  /**
6065
6087
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
6066
6088
  */
@@ -6679,7 +6701,7 @@ declare namespace Components {
6679
6701
  * example:
6680
6702
  * office-365-login
6681
6703
  */
6682
- ProviderSlug /* [0-9a-z-]+ */[];
6704
+ ProviderSlug /* [0-9a-z_-]+ */[];
6683
6705
  /**
6684
6706
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
6685
6707
  */
@@ -7366,7 +7388,7 @@ declare namespace Components {
7366
7388
  * example:
7367
7389
  * office-365-login
7368
7390
  */
7369
- ProviderSlug /* [0-9a-z-]+ */;
7391
+ ProviderSlug /* [0-9a-z_-]+ */;
7370
7392
  display_name: /**
7371
7393
  * Human-readable display name for identity provider shown in login
7372
7394
  * example:
@@ -7418,7 +7440,7 @@ declare namespace Components {
7418
7440
  * example:
7419
7441
  * office-365-login
7420
7442
  */
7421
- ProviderSlug /* [0-9a-z-]+ */;
7443
+ ProviderSlug /* [0-9a-z_-]+ */;
7422
7444
  display_name: /**
7423
7445
  * Human-readable display name for identity provider shown in login
7424
7446
  * example:
@@ -7448,7 +7470,7 @@ declare namespace Components {
7448
7470
  * example:
7449
7471
  * office-365-login
7450
7472
  */
7451
- export type ProviderSlug = string; // [0-9a-z-]+
7473
+ export type ProviderSlug = string; // [0-9a-z_-]+
7452
7474
  export interface PublicAppDetails {
7453
7475
  /**
7454
7476
  * Identifier of the app.
@@ -7467,8 +7489,16 @@ declare namespace Components {
7467
7489
  * Identifier of the hook.
7468
7490
  */
7469
7491
  id?: string;
7492
+ /**
7493
+ * Whether the third-party system applies the email change immediately (`synchronous`) or takes it over entirely (`asynchronous`).
7494
+ * In synchronous mode the login email is changed as soon as the request succeeds and the portal user has to sign in again with the new address.
7495
+ *
7496
+ */
7497
+ change_mode?: "synchronous" | "asynchronous";
7470
7498
  /**
7471
7499
  * Whether the portal user must confirm their current password before the email change is handed over to the third-party system.
7500
+ * Also required when `change_mode` is `synchronous`, except for portal users whose identity is managed by an identity provider - an SSO login has no password to confirm.
7501
+ *
7472
7502
  */
7473
7503
  require_password_confirmation?: boolean;
7474
7504
  explanation?: /* Explanation of the hook. */ PublicSelfManagementExplanation;
@@ -7745,7 +7775,7 @@ declare namespace Components {
7745
7775
  * example:
7746
7776
  * office-365-login
7747
7777
  */
7748
- ProviderSlug /* [0-9a-z-]+ */;
7778
+ ProviderSlug /* [0-9a-z_-]+ */;
7749
7779
  /**
7750
7780
  * URL of the authorization endpoint
7751
7781
  * example:
@@ -8241,7 +8271,7 @@ declare namespace Components {
8241
8271
  * example:
8242
8272
  * office-365-login
8243
8273
  */
8244
- ProviderSlug /* [0-9a-z-]+ */[];
8274
+ ProviderSlug /* [0-9a-z_-]+ */[];
8245
8275
  /**
8246
8276
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
8247
8277
  */
@@ -8828,7 +8858,7 @@ declare namespace Components {
8828
8858
  * example:
8829
8859
  * office-365-login
8830
8860
  */
8831
- ProviderSlug /* [0-9a-z-]+ */[];
8861
+ ProviderSlug /* [0-9a-z_-]+ */[];
8832
8862
  /**
8833
8863
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
8834
8864
  */
@@ -12083,7 +12113,7 @@ declare namespace Paths {
12083
12113
  * example:
12084
12114
  * office-365-login
12085
12115
  */
12086
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */[];
12116
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */[];
12087
12117
  /**
12088
12118
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
12089
12119
  */
@@ -12701,7 +12731,7 @@ declare namespace Paths {
12701
12731
  * example:
12702
12732
  * office-365-login
12703
12733
  */
12704
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */[];
12734
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */[];
12705
12735
  /**
12706
12736
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
12707
12737
  */
@@ -14052,7 +14082,7 @@ declare namespace Paths {
14052
14082
  * example:
14053
14083
  * office-365-login
14054
14084
  */
14055
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */;
14085
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */;
14056
14086
  }
14057
14087
  export interface PathParameters {
14058
14088
  provider_slug: Parameters.ProviderSlug;
@@ -14281,7 +14311,7 @@ declare namespace Paths {
14281
14311
  * example:
14282
14312
  * office-365-login
14283
14313
  */
14284
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */[];
14314
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */[];
14285
14315
  /**
14286
14316
  * Whether the user is soft deleted
14287
14317
  * example:
@@ -15112,7 +15142,7 @@ declare namespace Paths {
15112
15142
  * example:
15113
15143
  * office-365-login
15114
15144
  */
15115
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */;
15145
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */;
15116
15146
  }
15117
15147
  namespace Responses {
15118
15148
  export interface $200 {
@@ -15166,7 +15196,7 @@ declare namespace Paths {
15166
15196
  * example:
15167
15197
  * office-365-login
15168
15198
  */
15169
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */;
15199
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */;
15170
15200
  }
15171
15201
  namespace Responses {
15172
15202
  export interface $200 {
@@ -15565,6 +15595,7 @@ declare namespace Paths {
15565
15595
  /**
15566
15596
  * Password of the portal user for confirmation.
15567
15597
  * Required unless a `changeEmail` portal extension hook with `require_password_confirmation` disabled is configured for the portal.
15598
+ * Also required by a `changeEmail` hook with `change_mode` set to `synchronous`, except for portal users whose identity is managed by an identity provider - an SSO login has no password to confirm.
15568
15599
  *
15569
15600
  */
15570
15601
  password?: string;
@@ -15573,8 +15604,10 @@ declare namespace Paths {
15573
15604
  export interface $200 {
15574
15605
  /**
15575
15606
  * `You will receive a confirmation mail soon on your updated email address.` for the built-in flow,
15576
- * or `Your email change request has been received.` when a changeEmail portal extension hook handed
15577
- * the change over to a third party.
15607
+ * `Your email change request has been received.` when a changeEmail portal extension hook handed
15608
+ * the change over to a third party, or `Your email has been changed.` when a synchronous changeEmail
15609
+ * portal extension hook changed the login email immediately - the portal user has to sign in again
15610
+ * with the new email address in that case.
15578
15611
  *
15579
15612
  * example:
15580
15613
  * You will receive a confirmation mail soon on your updated email address.
@@ -1048,7 +1048,7 @@ declare namespace Components {
1048
1048
  * example:
1049
1049
  * office-365-login
1050
1050
  */
1051
- ProviderSlug /* [0-9a-z-]+ */[];
1051
+ ProviderSlug /* [0-9a-z_-]+ */[];
1052
1052
  /**
1053
1053
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
1054
1054
  */
@@ -1575,7 +1575,7 @@ declare namespace Components {
1575
1575
  * example:
1576
1576
  * office-365-login
1577
1577
  */
1578
- ProviderSlug /* [0-9a-z-]+ */[];
1578
+ ProviderSlug /* [0-9a-z_-]+ */[];
1579
1579
  /**
1580
1580
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
1581
1581
  */
@@ -3503,7 +3503,11 @@ declare namespace Components {
3503
3503
  *
3504
3504
  */
3505
3505
  ExtensionHookVisualizationMetadata | /**
3506
- * Hook that replaces the built-in change email functionality for portal users. When configured, the portal does not change the user's login email itself. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the email change (most likely by sending the user instructions to confirm the new email address).
3506
+ * Hook that replaces the built-in change email functionality for portal users. When configured, the portal does not run its own change email flow. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the email change.
3507
+ * The `change_mode` controls what the portal does after the call:
3508
+ * - `asynchronous`: The third-party system takes the email change over entirely (most likely by sending the user instructions to confirm the new email address). The portal does not change the login email itself.
3509
+ * - `synchronous`: The third-party system applies the email change immediately. The portal waits for a successful (2xx) response and then also changes the portal user's login email right away, without sending a confirmation email. The user has to sign in again with the new email address afterwards.
3510
+ *
3507
3511
  * The expected response http status code to the call is:
3508
3512
  * - 2xx if the request was accepted
3509
3513
  * - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)
@@ -3522,6 +3526,8 @@ declare namespace Components {
3522
3526
  * - `synchronous`: The third-party system deletes the user immediately. The portal waits for a successful (2xx) response and then also deletes the epilot user.
3523
3527
  * - `asynchronous`: The third-party system handles deletion out-of-band. The portal does not delete anything immediately; cleanup is expected to happen later (e.g. via the user deletion API or webhooks).
3524
3528
  *
3529
+ * The optional `delete_contact` additionally deletes the contact related to the portal user, once the portal user itself was deleted (`synchronous` mode only).
3530
+ *
3525
3531
  * The expected response http status code to the call is:
3526
3532
  * - 2xx if the request was accepted
3527
3533
  * - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)
@@ -3594,7 +3600,11 @@ declare namespace Components {
3594
3600
  id?: string;
3595
3601
  }
3596
3602
  /**
3597
- * Hook that replaces the built-in change email functionality for portal users. When configured, the portal does not change the user's login email itself. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the email change (most likely by sending the user instructions to confirm the new email address).
3603
+ * Hook that replaces the built-in change email functionality for portal users. When configured, the portal does not run its own change email flow. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the email change.
3604
+ * The `change_mode` controls what the portal does after the call:
3605
+ * - `asynchronous`: The third-party system takes the email change over entirely (most likely by sending the user instructions to confirm the new email address). The portal does not change the login email itself.
3606
+ * - `synchronous`: The third-party system applies the email change immediately. The portal waits for a successful (2xx) response and then also changes the portal user's login email right away, without sending a confirmation email. The user has to sign in again with the new email address afterwards.
3607
+ *
3598
3608
  * The expected response http status code to the call is:
3599
3609
  * - 2xx if the request was accepted
3600
3610
  * - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)
@@ -3603,7 +3613,12 @@ declare namespace Components {
3603
3613
  export interface ExtensionHookChangeEmail {
3604
3614
  type: "changeEmail";
3605
3615
  /**
3606
- * Whether the portal user must confirm their current password before the change email request is handed over to the third-party system. When true, the portal collects and verifies the current password before calling the hook.
3616
+ * Controls how the email change is handled once the third-party system accepted it. `asynchronous` hands the email change over entirely to the third-party system and the portal does not change the login email itself. `synchronous` waits for the third-party system to respond and then changes the portal user's login email immediately, without a confirmation email.
3617
+ *
3618
+ */
3619
+ change_mode?: "synchronous" | "asynchronous";
3620
+ /**
3621
+ * Whether the portal user must confirm their current password before the change email request is handed over to the third-party system. When true, the portal collects and verifies the current password before calling the hook. Treated as true when `change_mode` is `synchronous`, since the portal re-creates the login with the confirmed password. Skipped either way for portal users whose identity is managed by an identity provider: an SSO login has no password to confirm.
3607
3622
  *
3608
3623
  */
3609
3624
  require_password_confirmation?: boolean;
@@ -4012,6 +4027,8 @@ declare namespace Components {
4012
4027
  * - `synchronous`: The third-party system deletes the user immediately. The portal waits for a successful (2xx) response and then also deletes the epilot user.
4013
4028
  * - `asynchronous`: The third-party system handles deletion out-of-band. The portal does not delete anything immediately; cleanup is expected to happen later (e.g. via the user deletion API or webhooks).
4014
4029
  *
4030
+ * The optional `delete_contact` additionally deletes the contact related to the portal user, once the portal user itself was deleted (`synchronous` mode only).
4031
+ *
4015
4032
  * The expected response http status code to the call is:
4016
4033
  * - 2xx if the request was accepted
4017
4034
  * - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)
@@ -4024,6 +4041,11 @@ declare namespace Components {
4024
4041
  *
4025
4042
  */
4026
4043
  deletion_mode?: "synchronous" | "asynchronous";
4044
+ /**
4045
+ * Opt-in deletion of the contact related to the portal user, applied after the portal user itself was deleted. `none` (default) leaves the contact untouched. `soft` deletes the contact, so it can still be restored from the trash. `hard` permanently purges the contact. Only applied in `synchronous` deletion mode, as `asynchronous` mode hands the cleanup over to the third-party system.
4046
+ *
4047
+ */
4048
+ delete_contact?: "none" | "soft" | "hard";
4027
4049
  /**
4028
4050
  * Optional explanation shown to the user in the delete account confirmation dialog.
4029
4051
  */
@@ -6060,7 +6082,7 @@ declare namespace Components {
6060
6082
  * example:
6061
6083
  * office-365-login
6062
6084
  */
6063
- ProviderSlug /* [0-9a-z-]+ */[];
6085
+ ProviderSlug /* [0-9a-z_-]+ */[];
6064
6086
  /**
6065
6087
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
6066
6088
  */
@@ -6679,7 +6701,7 @@ declare namespace Components {
6679
6701
  * example:
6680
6702
  * office-365-login
6681
6703
  */
6682
- ProviderSlug /* [0-9a-z-]+ */[];
6704
+ ProviderSlug /* [0-9a-z_-]+ */[];
6683
6705
  /**
6684
6706
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
6685
6707
  */
@@ -7366,7 +7388,7 @@ declare namespace Components {
7366
7388
  * example:
7367
7389
  * office-365-login
7368
7390
  */
7369
- ProviderSlug /* [0-9a-z-]+ */;
7391
+ ProviderSlug /* [0-9a-z_-]+ */;
7370
7392
  display_name: /**
7371
7393
  * Human-readable display name for identity provider shown in login
7372
7394
  * example:
@@ -7418,7 +7440,7 @@ declare namespace Components {
7418
7440
  * example:
7419
7441
  * office-365-login
7420
7442
  */
7421
- ProviderSlug /* [0-9a-z-]+ */;
7443
+ ProviderSlug /* [0-9a-z_-]+ */;
7422
7444
  display_name: /**
7423
7445
  * Human-readable display name for identity provider shown in login
7424
7446
  * example:
@@ -7448,7 +7470,7 @@ declare namespace Components {
7448
7470
  * example:
7449
7471
  * office-365-login
7450
7472
  */
7451
- export type ProviderSlug = string; // [0-9a-z-]+
7473
+ export type ProviderSlug = string; // [0-9a-z_-]+
7452
7474
  export interface PublicAppDetails {
7453
7475
  /**
7454
7476
  * Identifier of the app.
@@ -7467,8 +7489,16 @@ declare namespace Components {
7467
7489
  * Identifier of the hook.
7468
7490
  */
7469
7491
  id?: string;
7492
+ /**
7493
+ * Whether the third-party system applies the email change immediately (`synchronous`) or takes it over entirely (`asynchronous`).
7494
+ * In synchronous mode the login email is changed as soon as the request succeeds and the portal user has to sign in again with the new address.
7495
+ *
7496
+ */
7497
+ change_mode?: "synchronous" | "asynchronous";
7470
7498
  /**
7471
7499
  * Whether the portal user must confirm their current password before the email change is handed over to the third-party system.
7500
+ * Also required when `change_mode` is `synchronous`, except for portal users whose identity is managed by an identity provider - an SSO login has no password to confirm.
7501
+ *
7472
7502
  */
7473
7503
  require_password_confirmation?: boolean;
7474
7504
  explanation?: /* Explanation of the hook. */ PublicSelfManagementExplanation;
@@ -7745,7 +7775,7 @@ declare namespace Components {
7745
7775
  * example:
7746
7776
  * office-365-login
7747
7777
  */
7748
- ProviderSlug /* [0-9a-z-]+ */;
7778
+ ProviderSlug /* [0-9a-z_-]+ */;
7749
7779
  /**
7750
7780
  * URL of the authorization endpoint
7751
7781
  * example:
@@ -8241,7 +8271,7 @@ declare namespace Components {
8241
8271
  * example:
8242
8272
  * office-365-login
8243
8273
  */
8244
- ProviderSlug /* [0-9a-z-]+ */[];
8274
+ ProviderSlug /* [0-9a-z_-]+ */[];
8245
8275
  /**
8246
8276
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
8247
8277
  */
@@ -8828,7 +8858,7 @@ declare namespace Components {
8828
8858
  * example:
8829
8859
  * office-365-login
8830
8860
  */
8831
- ProviderSlug /* [0-9a-z-]+ */[];
8861
+ ProviderSlug /* [0-9a-z_-]+ */[];
8832
8862
  /**
8833
8863
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
8834
8864
  */
@@ -12083,7 +12113,7 @@ declare namespace Paths {
12083
12113
  * example:
12084
12114
  * office-365-login
12085
12115
  */
12086
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */[];
12116
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */[];
12087
12117
  /**
12088
12118
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
12089
12119
  */
@@ -12701,7 +12731,7 @@ declare namespace Paths {
12701
12731
  * example:
12702
12732
  * office-365-login
12703
12733
  */
12704
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */[];
12734
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */[];
12705
12735
  /**
12706
12736
  * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page.
12707
12737
  */
@@ -14052,7 +14082,7 @@ declare namespace Paths {
14052
14082
  * example:
14053
14083
  * office-365-login
14054
14084
  */
14055
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */;
14085
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */;
14056
14086
  }
14057
14087
  export interface PathParameters {
14058
14088
  provider_slug: Parameters.ProviderSlug;
@@ -14281,7 +14311,7 @@ declare namespace Paths {
14281
14311
  * example:
14282
14312
  * office-365-login
14283
14313
  */
14284
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */[];
14314
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */[];
14285
14315
  /**
14286
14316
  * Whether the user is soft deleted
14287
14317
  * example:
@@ -15112,7 +15142,7 @@ declare namespace Paths {
15112
15142
  * example:
15113
15143
  * office-365-login
15114
15144
  */
15115
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */;
15145
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */;
15116
15146
  }
15117
15147
  namespace Responses {
15118
15148
  export interface $200 {
@@ -15166,7 +15196,7 @@ declare namespace Paths {
15166
15196
  * example:
15167
15197
  * office-365-login
15168
15198
  */
15169
- Components.Schemas.ProviderSlug /* [0-9a-z-]+ */;
15199
+ Components.Schemas.ProviderSlug /* [0-9a-z_-]+ */;
15170
15200
  }
15171
15201
  namespace Responses {
15172
15202
  export interface $200 {
@@ -15565,6 +15595,7 @@ declare namespace Paths {
15565
15595
  /**
15566
15596
  * Password of the portal user for confirmation.
15567
15597
  * Required unless a `changeEmail` portal extension hook with `require_password_confirmation` disabled is configured for the portal.
15598
+ * Also required by a `changeEmail` hook with `change_mode` set to `synchronous`, except for portal users whose identity is managed by an identity provider - an SSO login has no password to confirm.
15568
15599
  *
15569
15600
  */
15570
15601
  password?: string;
@@ -15573,8 +15604,10 @@ declare namespace Paths {
15573
15604
  export interface $200 {
15574
15605
  /**
15575
15606
  * `You will receive a confirmation mail soon on your updated email address.` for the built-in flow,
15576
- * or `Your email change request has been received.` when a changeEmail portal extension hook handed
15577
- * the change over to a third party.
15607
+ * `Your email change request has been received.` when a changeEmail portal extension hook handed
15608
+ * the change over to a third party, or `Your email has been changed.` when a synchronous changeEmail
15609
+ * portal extension hook changed the login email immediately - the portal user has to sign in again
15610
+ * with the new email address in that case.
15578
15611
  *
15579
15612
  * example:
15580
15613
  * You will receive a confirmation mail soon on your updated email address.
package/dist/index.cjs CHANGED
@@ -69,7 +69,7 @@ var _chunk3SZOSNO2cjs = require('./chunk-3SZOSNO2.cjs');
69
69
  var _chunkYO4M3BZLcjs = require('./chunk-YO4M3BZL.cjs');
70
70
 
71
71
 
72
- var _chunkYISO22FScjs = require('./chunk-YISO22FS.cjs');
72
+ var _chunk7YXY2AFMcjs = require('./chunk-7YXY2AFM.cjs');
73
73
 
74
74
 
75
75
  var _chunkLAWKCWVUcjs = require('./chunk-LAWKCWVU.cjs');
@@ -158,7 +158,7 @@ var _chunkDVM27A7Ecjs = require('./chunk-DVM27A7E.cjs');
158
158
 
159
159
 
160
160
 
161
- var _chunkYYWUKE4Lcjs = require('./chunk-YYWUKE4L.cjs');
161
+ var _chunkE7FFVRBQcjs = require('./chunk-E7FFVRBQ.cjs');
162
162
 
163
163
 
164
164
  var _chunkNJK5F5TFcjs = require('./chunk-NJK5F5TF.cjs');
@@ -225,7 +225,7 @@ var resolveClient = (params) => {
225
225
  }
226
226
  if (!entry.instance) {
227
227
  const definition = entry.loader();
228
- entry.instance = _chunkYYWUKE4Lcjs.createApiClient.call(void 0, {
228
+ entry.instance = _chunkE7FFVRBQcjs.createApiClient.call(void 0, {
229
229
  definition,
230
230
  token: state.token,
231
231
  headers: state.globalHeaders,
@@ -258,7 +258,7 @@ var resetAllClients = (registry) => {
258
258
  };
259
259
 
260
260
  // src/apis/_registry.ts
261
- var expandDef = (mod) => _chunkYYWUKE4Lcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
261
+ var expandDef = (mod) => _chunkE7FFVRBQcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
262
262
  var registerBuiltinApis = (registry) => {
263
263
  registerApi({
264
264
  registry,
@@ -393,7 +393,7 @@ var registerBuiltinApis = (registry) => {
393
393
  registerApi({
394
394
  registry,
395
395
  name: "integrationToolkit",
396
- loader: () => expandDef(_chunkYISO22FScjs.require_integration_toolkit_runtime.call(void 0, ))
396
+ loader: () => expandDef(_chunk7YXY2AFMcjs.require_integration_toolkit_runtime.call(void 0, ))
397
397
  });
398
398
  registerApi({
399
399
  registry,
@@ -601,9 +601,9 @@ var createSDK = () => {
601
601
  const available = [...registry.keys()].join(", ");
602
602
  throw new Error(`Unknown API: "${name}". Available: ${available}`);
603
603
  }
604
- return _chunkYYWUKE4Lcjs.createApiHandle.call(void 0, {
604
+ return _chunkE7FFVRBQcjs.createApiHandle.call(void 0, {
605
605
  resolveClient: () => resolveClient({ registry, name, state }),
606
- createClient: () => _chunkYYWUKE4Lcjs.createApiClient.call(void 0, { definition: entry.loader(), apiName: name }),
606
+ createClient: () => _chunkE7FFVRBQcjs.createApiClient.call(void 0, { definition: entry.loader(), apiName: name }),
607
607
  apiName: name
608
608
  });
609
609
  };
@@ -651,9 +651,9 @@ var createSDK = () => {
651
651
  return interceptorUse;
652
652
  }
653
653
  case "help":
654
- return (apiName) => _chunkYYWUKE4Lcjs.help.call(void 0, apiName);
654
+ return (apiName) => _chunkE7FFVRBQcjs.help.call(void 0, apiName);
655
655
  case "openapi":
656
- return (apiName) => _chunkYYWUKE4Lcjs.openapi.call(void 0, apiName);
656
+ return (apiName) => _chunkE7FFVRBQcjs.openapi.call(void 0, apiName);
657
657
  case "then":
658
658
  case "catch":
659
659
  case "finally":
@@ -683,4 +683,4 @@ var epilot = createSDK();
683
683
 
684
684
 
685
685
 
686
- exports.applyLargeResponseInterceptor = applyLargeResponseInterceptor; exports.applyRetryInterceptor = applyRetryInterceptor; exports.authorize = _chunkYYWUKE4Lcjs.authorize; exports.createSDK = createSDK; exports.epilot = epilot; exports.help = _chunkYYWUKE4Lcjs.help; exports.openapi = _chunkYYWUKE4Lcjs.openapi;
686
+ exports.applyLargeResponseInterceptor = applyLargeResponseInterceptor; exports.applyRetryInterceptor = applyRetryInterceptor; exports.authorize = _chunkE7FFVRBQcjs.authorize; exports.createSDK = createSDK; exports.epilot = epilot; exports.help = _chunkE7FFVRBQcjs.help; exports.openapi = _chunkE7FFVRBQcjs.openapi;
package/dist/index.d.cts CHANGED
@@ -15,7 +15,7 @@ import { C as Client$8 } from './blueprint-manifest.d-D2I9nhZa.cjs';
15
15
  import { C as Client$9 } from './calendar.d-BEjLDagH.cjs';
16
16
  import { C as Client$a } from './configuration-hub.d-CbSJDa7k.cjs';
17
17
  import { C as Client$b } from './consent.d-C2PROHhX.cjs';
18
- import { C as Client$c } from './customer-portal.d-CJgDRoOo.cjs';
18
+ import { C as Client$c } from './customer-portal.d-DsB3qJro.cjs';
19
19
  import { C as Client$d } from './dashboard.d-CsGcA74I.cjs';
20
20
  import { C as Client$e } from './data-governance.d-BbZ466j5.cjs';
21
21
  import { C as Client$f } from './deduplication.d-D5GYddVu.cjs';
@@ -29,7 +29,7 @@ import { C as Client$m } from './environments.d-BvqvN-PD.cjs';
29
29
  import { C as Client$n } from './event-catalog.d-QIhhewVH.cjs';
30
30
  import { C as Client$o } from './file.d-zFneCEyY.cjs';
31
31
  import { C as Client$p } from './iban.d-BwdiGbxi.cjs';
32
- import { C as Client$q } from './integration-toolkit.d-7q19qDTD.cjs';
32
+ import { C as Client$q } from './integration-toolkit.d-BUCHo8ZQ.cjs';
33
33
  import { C as Client$r } from './journey.d-B1sOeMHw.cjs';
34
34
  import { C as Client$s } from './kanban.d-BHnSRCYW.cjs';
35
35
  import { C as Client$t } from './message.d-b-UwZUNb.cjs';
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ import { C as Client$8 } from './blueprint-manifest.d-D2I9nhZa.js';
15
15
  import { C as Client$9 } from './calendar.d-BEjLDagH.js';
16
16
  import { C as Client$a } from './configuration-hub.d-CbSJDa7k.js';
17
17
  import { C as Client$b } from './consent.d-C2PROHhX.js';
18
- import { C as Client$c } from './customer-portal.d-CJgDRoOo.js';
18
+ import { C as Client$c } from './customer-portal.d-DsB3qJro.js';
19
19
  import { C as Client$d } from './dashboard.d-CsGcA74I.js';
20
20
  import { C as Client$e } from './data-governance.d-BbZ466j5.js';
21
21
  import { C as Client$f } from './deduplication.d-D5GYddVu.js';
@@ -29,7 +29,7 @@ import { C as Client$m } from './environments.d-BvqvN-PD.js';
29
29
  import { C as Client$n } from './event-catalog.d-QIhhewVH.js';
30
30
  import { C as Client$o } from './file.d-zFneCEyY.js';
31
31
  import { C as Client$p } from './iban.d-BwdiGbxi.js';
32
- import { C as Client$q } from './integration-toolkit.d-7q19qDTD.js';
32
+ import { C as Client$q } from './integration-toolkit.d-BUCHo8ZQ.js';
33
33
  import { C as Client$r } from './journey.d-B1sOeMHw.js';
34
34
  import { C as Client$s } from './kanban.d-BHnSRCYW.js';
35
35
  import { C as Client$t } from './message.d-b-UwZUNb.js';
package/dist/index.js CHANGED
@@ -69,7 +69,7 @@ import {
69
69
  } from "./chunk-5MFHAXBT.js";
70
70
  import {
71
71
  require_integration_toolkit_runtime
72
- } from "./chunk-7WGJSGWE.js";
72
+ } from "./chunk-U6KIZOOU.js";
73
73
  import {
74
74
  require_journey_runtime
75
75
  } from "./chunk-JOUTFBLN.js";
@@ -158,7 +158,7 @@ import {
158
158
  expand,
159
159
  help,
160
160
  openapi
161
- } from "./chunk-LNQHT4WZ.js";
161
+ } from "./chunk-7LWNOS5V.js";
162
162
  import {
163
163
  __require
164
164
  } from "./chunk-YPSWSI3M.js";