@djangocfg/api 2.1.477 → 2.1.479

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 (42) hide show
  1. package/dist/auth.cjs +173 -121
  2. package/dist/auth.cjs.map +1 -1
  3. package/dist/auth.d.cts +36 -2
  4. package/dist/auth.d.ts +36 -2
  5. package/dist/auth.mjs +173 -121
  6. package/dist/auth.mjs.map +1 -1
  7. package/dist/clients.cjs +18 -0
  8. package/dist/clients.cjs.map +1 -1
  9. package/dist/clients.d.cts +49 -0
  10. package/dist/clients.d.ts +49 -0
  11. package/dist/clients.mjs +18 -0
  12. package/dist/clients.mjs.map +1 -1
  13. package/dist/hooks.cjs +133 -1
  14. package/dist/hooks.cjs.map +1 -1
  15. package/dist/hooks.d.cts +61 -1
  16. package/dist/hooks.d.ts +61 -1
  17. package/dist/hooks.mjs +133 -1
  18. package/dist/hooks.mjs.map +1 -1
  19. package/dist/index.cjs +18 -0
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +72 -4
  22. package/dist/index.d.ts +72 -4
  23. package/dist/index.mjs +18 -0
  24. package/dist/index.mjs.map +1 -1
  25. package/package.json +2 -2
  26. package/src/_api/generated/_cfg_accounts/hooks/index.ts +1 -0
  27. package/src/_api/generated/_cfg_accounts/hooks/useCfgAccountsOtpConsentPolicyRetrieve.ts +74 -0
  28. package/src/_api/generated/_cfg_accounts/openapi.json +76 -0
  29. package/src/_api/generated/_cfg_accounts/schemas/ConsentPolicy.ts +13 -0
  30. package/src/_api/generated/_cfg_accounts/schemas/MarketingConsentDefaultEnum.ts +9 -0
  31. package/src/_api/generated/_cfg_accounts/schemas/OTPRequestRequest.ts +2 -0
  32. package/src/_api/generated/_cfg_accounts/schemas/index.ts +2 -0
  33. package/src/_api/generated/openapi.json +76 -0
  34. package/src/_api/generated/sdk.gen.ts +40 -21
  35. package/src/_api/generated/types.gen.ts +47 -0
  36. package/src/auth/context/AuthContext.tsx +12 -4
  37. package/src/auth/context/types.ts +2 -2
  38. package/src/auth/hooks/useAuthForm.ts +15 -3
  39. package/src/auth/hooks/useAuthFormState.ts +5 -0
  40. package/src/auth/types/form.ts +27 -0
  41. package/src/auth/types/index.ts +1 -0
  42. package/src/hooks/index.ts +6 -0
package/dist/auth.cjs CHANGED
@@ -1018,6 +1018,7 @@ var useAuthFormState = /* @__PURE__ */ __name((initialIdentifier = "") => {
1018
1018
  const [otp, setOtp] = (0, import_react4.useState)("");
1019
1019
  const [isLoading, setIsLoading] = (0, import_react4.useState)(false);
1020
1020
  const [acceptedTerms, setAcceptedTerms] = (0, import_react4.useState)(true);
1021
+ const [marketingConsent, setMarketingConsent] = (0, import_react4.useState)(null);
1021
1022
  const [step, setStep] = (0, import_react4.useState)("identifier");
1022
1023
  const [error, setError] = (0, import_react4.useState)("");
1023
1024
  const [webmail, setWebmail] = (0, import_react4.useState)(null);
@@ -1051,6 +1052,7 @@ var useAuthFormState = /* @__PURE__ */ __name((initialIdentifier = "") => {
1051
1052
  otp,
1052
1053
  isLoading,
1053
1054
  acceptedTerms,
1055
+ marketingConsent,
1054
1056
  step,
1055
1057
  error,
1056
1058
  twoFactorSessionId,
@@ -1065,6 +1067,7 @@ var useAuthFormState = /* @__PURE__ */ __name((initialIdentifier = "") => {
1065
1067
  setIdentifier,
1066
1068
  setOtp,
1067
1069
  setAcceptedTerms,
1070
+ setMarketingConsent,
1068
1071
  setError,
1069
1072
  clearError,
1070
1073
  setStep,
@@ -2062,6 +2065,24 @@ var CfgAccounts = class {
2062
2065
  static {
2063
2066
  __name(this, "CfgAccounts");
2064
2067
  }
2068
+ /**
2069
+ * Marketing-consent checkbox policy for the caller's jurisdiction.
2070
+ *
2071
+ * Derived from the edge-provided CF-IPCountry — the same signal stored
2072
+ * as consent evidence at request time. Unknown country fails safe to
2073
+ * "unchecked".
2074
+ */
2075
+ static cfgAccountsOtpConsentPolicyRetrieve(options) {
2076
+ return (options?.client ?? client).get({
2077
+ security: [
2078
+ { name: "X-API-Key", type: "apiKey" },
2079
+ { scheme: "bearer", type: "http" },
2080
+ { name: "Authorization", type: "apiKey" }
2081
+ ],
2082
+ url: "/cfg/accounts/otp/consent-policy/",
2083
+ ...options
2084
+ });
2085
+ }
2065
2086
  /**
2066
2087
  * Request OTP code to email.
2067
2088
  */
@@ -2863,6 +2884,7 @@ var useAuthForm = /* @__PURE__ */ __name((options) => {
2863
2884
  sourceUrl,
2864
2885
  redirectUrl,
2865
2886
  requireTermsAcceptance = false,
2887
+ marketingConsent: marketingConsentOption,
2866
2888
  authPath = "/auth"
2867
2889
  } = options;
2868
2890
  const formState = useAuthFormState();
@@ -2880,6 +2902,7 @@ var useAuthForm = /* @__PURE__ */ __name((options) => {
2880
2902
  otp,
2881
2903
  isLoading,
2882
2904
  acceptedTerms,
2905
+ marketingConsent,
2883
2906
  twoFactorSessionId,
2884
2907
  twoFactorCode,
2885
2908
  useBackupCode,
@@ -2943,7 +2966,8 @@ var useAuthForm = /* @__PURE__ */ __name((options) => {
2943
2966
  setIsLoading(true);
2944
2967
  clearError();
2945
2968
  try {
2946
- const result = await requestOTP(identifier, sourceUrl);
2969
+ const consent = marketingConsentOption ? { marketingConsent: marketingConsent === true, disclosureVersion: marketingConsentOption.disclosureVersion } : void 0;
2970
+ const result = await requestOTP(identifier, sourceUrl, consent);
2947
2971
  if (result.success) {
2948
2972
  saveIdentifierToStorage(identifier);
2949
2973
  setWebmail(result.webmail ?? null);
@@ -2969,6 +2993,8 @@ var useAuthForm = /* @__PURE__ */ __name((options) => {
2969
2993
  identifier,
2970
2994
  acceptedTerms,
2971
2995
  requireTermsAcceptance,
2996
+ marketingConsent,
2997
+ marketingConsentOption,
2972
2998
  validateIdentifier2,
2973
2999
  requestOTP,
2974
3000
  saveIdentifierToStorage,
@@ -3029,7 +3055,8 @@ var useAuthForm = /* @__PURE__ */ __name((options) => {
3029
3055
  setIsLoading(true);
3030
3056
  clearError();
3031
3057
  try {
3032
- const result = await requestOTP(identifier, sourceUrl);
3058
+ const consent = marketingConsentOption ? { marketingConsent: marketingConsent === true, disclosureVersion: marketingConsentOption.disclosureVersion } : void 0;
3059
+ const result = await requestOTP(identifier, sourceUrl, consent);
3033
3060
  if (result.success) {
3034
3061
  saveIdentifierToStorage(identifier);
3035
3062
  setWebmail(result.webmail ?? null);
@@ -3050,7 +3077,7 @@ var useAuthForm = /* @__PURE__ */ __name((options) => {
3050
3077
  } finally {
3051
3078
  setIsLoading(false);
3052
3079
  }
3053
- }, [identifier, requestOTP, saveIdentifierToStorage, setOtp, setError, setIsLoading, clearError, startRateLimitCountdown, setWebmail, onError, sourceUrl]);
3080
+ }, [identifier, marketingConsent, marketingConsentOption, requestOTP, saveIdentifierToStorage, setOtp, setError, setIsLoading, clearError, startRateLimitCountdown, setWebmail, onError, sourceUrl]);
3054
3081
  const handleBackToIdentifier = (0, import_react9.useCallback)(() => {
3055
3082
  setStep("identifier");
3056
3083
  clearError();
@@ -3882,30 +3909,46 @@ var OAuthProvidersResponseSchema = import_zod11.z.object({
3882
3909
  providers: import_zod11.z.array(import_zod11.z.object({}).passthrough())
3883
3910
  });
3884
3911
 
3912
+ // src/_api/generated/_cfg_accounts/hooks/useCfgAccountsOtpConsentPolicyRetrieve.ts
3913
+ var import_swr4 = __toESM(require("swr"), 1);
3914
+
3915
+ // src/_api/generated/_cfg_accounts/schemas/ConsentPolicy.ts
3916
+ var import_zod13 = require("zod");
3917
+
3918
+ // src/_api/generated/_cfg_accounts/schemas/MarketingConsentDefaultEnum.ts
3919
+ var import_zod12 = require("zod");
3920
+ var MarketingConsentDefaultEnumSchema = import_zod12.z.enum(["checked", "unchecked"]);
3921
+
3922
+ // src/_api/generated/_cfg_accounts/schemas/ConsentPolicy.ts
3923
+ var ConsentPolicySchema = import_zod13.z.object({
3924
+ country: import_zod13.z.string(),
3925
+ marketing_consent_default: MarketingConsentDefaultEnumSchema
3926
+ });
3927
+
3885
3928
  // src/_api/generated/_cfg_accounts/hooks/useCfgAccountsOtpRequestCreate.ts
3886
3929
  var import_mutation7 = __toESM(require("swr/mutation"), 1);
3887
3930
 
3888
3931
  // src/_api/generated/_cfg_accounts/schemas/OTPRequestResponse.ts
3889
- var import_zod14 = require("zod");
3932
+ var import_zod16 = require("zod");
3890
3933
 
3891
3934
  // src/_api/generated/_cfg_accounts/schemas/WebmailLink.ts
3892
- var import_zod13 = require("zod");
3935
+ var import_zod15 = require("zod");
3893
3936
 
3894
3937
  // src/_api/generated/_cfg_accounts/schemas/WebmailLinkProviderEnum.ts
3895
- var import_zod12 = require("zod");
3896
- var WebmailLinkProviderEnumSchema = import_zod12.z.enum(["gmail", "outlook", "yahoo", "icloud", "proton", "zoho", "aol", "fastmail", "gmx", "mailcom", "mail_ru", "yandex", "rambler", "qq", "netease", "sina", "aliyun", "naver", "daum", "web_de", "tonline", "seznam", "wp_pl", "o2_pl", "interia", "libero", "virgilio", "orange", "laposte", "free_fr", "sfr"]);
3938
+ var import_zod14 = require("zod");
3939
+ var WebmailLinkProviderEnumSchema = import_zod14.z.enum(["gmail", "outlook", "yahoo", "icloud", "proton", "zoho", "aol", "fastmail", "gmx", "mailcom", "mail_ru", "yandex", "rambler", "qq", "netease", "sina", "aliyun", "naver", "daum", "web_de", "tonline", "seznam", "wp_pl", "o2_pl", "interia", "libero", "virgilio", "orange", "laposte", "free_fr", "sfr"]);
3897
3940
 
3898
3941
  // src/_api/generated/_cfg_accounts/schemas/WebmailLink.ts
3899
- var WebmailLinkSchema = import_zod13.z.object({
3942
+ var WebmailLinkSchema = import_zod15.z.object({
3900
3943
  provider: WebmailLinkProviderEnumSchema,
3901
- provider_name: import_zod13.z.string(),
3902
- url: import_zod13.z.string(),
3903
- is_search: import_zod13.z.boolean()
3944
+ provider_name: import_zod15.z.string(),
3945
+ url: import_zod15.z.string(),
3946
+ is_search: import_zod15.z.boolean()
3904
3947
  });
3905
3948
 
3906
3949
  // src/_api/generated/_cfg_accounts/schemas/OTPRequestResponse.ts
3907
- var OTPRequestResponseSchema = import_zod14.z.object({
3908
- message: import_zod14.z.string(),
3950
+ var OTPRequestResponseSchema = import_zod16.z.object({
3951
+ message: import_zod16.z.string(),
3909
3952
  webmail: WebmailLinkSchema.nullable().optional()
3910
3953
  });
3911
3954
 
@@ -3960,52 +4003,52 @@ __name(useCfgAccountsOtpRequestCreate, "useCfgAccountsOtpRequestCreate");
3960
4003
  var import_mutation8 = __toESM(require("swr/mutation"), 1);
3961
4004
 
3962
4005
  // src/_api/generated/_cfg_accounts/schemas/OTPVerifyResponse.ts
3963
- var import_zod17 = require("zod");
4006
+ var import_zod19 = require("zod");
3964
4007
 
3965
4008
  // src/_api/generated/_cfg_accounts/schemas/User.ts
3966
- var import_zod16 = require("zod");
4009
+ var import_zod18 = require("zod");
3967
4010
 
3968
4011
  // src/_api/generated/_cfg_accounts/schemas/CentrifugoToken.ts
3969
- var import_zod15 = require("zod");
3970
- var CentrifugoTokenSchema = import_zod15.z.object({
3971
- token: import_zod15.z.string(),
3972
- centrifugo_url: import_zod15.z.string(),
3973
- expires_at: import_zod15.z.string().datetime({ offset: true }),
3974
- channels: import_zod15.z.array(import_zod15.z.string())
4012
+ var import_zod17 = require("zod");
4013
+ var CentrifugoTokenSchema = import_zod17.z.object({
4014
+ token: import_zod17.z.string(),
4015
+ centrifugo_url: import_zod17.z.string(),
4016
+ expires_at: import_zod17.z.string().datetime({ offset: true }),
4017
+ channels: import_zod17.z.array(import_zod17.z.string())
3975
4018
  });
3976
4019
 
3977
4020
  // src/_api/generated/_cfg_accounts/schemas/User.ts
3978
- var UserSchema = import_zod16.z.object({
3979
- id: import_zod16.z.number().int(),
3980
- email: import_zod16.z.email(),
3981
- first_name: import_zod16.z.string().max(50).nullable().optional(),
3982
- last_name: import_zod16.z.string().max(50).nullable().optional(),
3983
- full_name: import_zod16.z.string(),
3984
- initials: import_zod16.z.string(),
3985
- display_username: import_zod16.z.string(),
3986
- company: import_zod16.z.string().max(100).nullable().optional(),
3987
- phone: import_zod16.z.string().max(20).nullable().optional(),
3988
- position: import_zod16.z.string().max(100).nullable().optional(),
3989
- language: import_zod16.z.string().max(10).nullable().optional(),
3990
- timezone: import_zod16.z.string().max(64).nullable().optional(),
3991
- avatar: import_zod16.z.string().nullable(),
3992
- is_staff: import_zod16.z.boolean(),
3993
- is_superuser: import_zod16.z.boolean(),
3994
- date_joined: import_zod16.z.string().datetime({ offset: true }),
3995
- last_login: import_zod16.z.string().datetime({ offset: true }).nullable(),
3996
- unanswered_messages_count: import_zod16.z.number().int().default(0),
4021
+ var UserSchema = import_zod18.z.object({
4022
+ id: import_zod18.z.number().int(),
4023
+ email: import_zod18.z.email(),
4024
+ first_name: import_zod18.z.string().max(50).nullable().optional(),
4025
+ last_name: import_zod18.z.string().max(50).nullable().optional(),
4026
+ full_name: import_zod18.z.string(),
4027
+ initials: import_zod18.z.string(),
4028
+ display_username: import_zod18.z.string(),
4029
+ company: import_zod18.z.string().max(100).nullable().optional(),
4030
+ phone: import_zod18.z.string().max(20).nullable().optional(),
4031
+ position: import_zod18.z.string().max(100).nullable().optional(),
4032
+ language: import_zod18.z.string().max(10).nullable().optional(),
4033
+ timezone: import_zod18.z.string().max(64).nullable().optional(),
4034
+ avatar: import_zod18.z.string().nullable(),
4035
+ is_staff: import_zod18.z.boolean(),
4036
+ is_superuser: import_zod18.z.boolean(),
4037
+ date_joined: import_zod18.z.string().datetime({ offset: true }),
4038
+ last_login: import_zod18.z.string().datetime({ offset: true }).nullable(),
4039
+ unanswered_messages_count: import_zod18.z.number().int().default(0),
3997
4040
  centrifugo: CentrifugoTokenSchema.nullable(),
3998
- api_key: import_zod16.z.string().nullable()
4041
+ api_key: import_zod18.z.string().nullable()
3999
4042
  });
4000
4043
 
4001
4044
  // src/_api/generated/_cfg_accounts/schemas/OTPVerifyResponse.ts
4002
- var OTPVerifyResponseSchema = import_zod17.z.object({
4003
- requires_2fa: import_zod17.z.boolean().default(false).optional(),
4004
- session_id: import_zod17.z.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i).nullable().optional(),
4005
- refresh: import_zod17.z.string().nullable().optional(),
4006
- access: import_zod17.z.string().nullable().optional(),
4045
+ var OTPVerifyResponseSchema = import_zod19.z.object({
4046
+ requires_2fa: import_zod19.z.boolean().default(false).optional(),
4047
+ session_id: import_zod19.z.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i).nullable().optional(),
4048
+ refresh: import_zod19.z.string().nullable().optional(),
4049
+ access: import_zod19.z.string().nullable().optional(),
4007
4050
  user: UserSchema.nullable().optional(),
4008
- should_prompt_2fa: import_zod17.z.boolean().optional()
4051
+ should_prompt_2fa: import_zod19.z.boolean().optional()
4009
4052
  });
4010
4053
 
4011
4054
  // src/_api/generated/_cfg_accounts/hooks/useCfgAccountsOtpVerifyCreate.ts
@@ -4107,10 +4150,10 @@ __name(useCfgAccountsProfileAvatarCreate, "useCfgAccountsProfileAvatarCreate");
4107
4150
  var import_mutation10 = __toESM(require("swr/mutation"), 1);
4108
4151
 
4109
4152
  // src/_api/generated/_cfg_accounts/schemas/AccountDeleteResponse.ts
4110
- var import_zod18 = require("zod");
4111
- var AccountDeleteResponseSchema = import_zod18.z.object({
4112
- success: import_zod18.z.boolean(),
4113
- message: import_zod18.z.string()
4153
+ var import_zod20 = require("zod");
4154
+ var AccountDeleteResponseSchema = import_zod20.z.object({
4155
+ success: import_zod20.z.boolean(),
4156
+ message: import_zod20.z.string()
4114
4157
  });
4115
4158
 
4116
4159
  // src/_api/generated/_cfg_accounts/hooks/useCfgAccountsProfilePartialPartialUpdate.ts
@@ -4165,7 +4208,7 @@ function useCfgAccountsProfilePartialUpdate(config) {
4165
4208
  __name(useCfgAccountsProfilePartialUpdate, "useCfgAccountsProfilePartialUpdate");
4166
4209
 
4167
4210
  // src/_api/generated/_cfg_accounts/hooks/useCfgAccountsProfileRetrieve.ts
4168
- var import_swr4 = __toESM(require("swr"), 1);
4211
+ var import_swr5 = __toESM(require("swr"), 1);
4169
4212
 
4170
4213
  // src/_api/generated/_cfg_accounts/hooks/useCfgAccountsProfileUpdatePartialUpdate.ts
4171
4214
  var import_mutation13 = __toESM(require("swr/mutation"), 1);
@@ -4225,111 +4268,113 @@ var import_mutation15 = __toESM(require("swr/mutation"), 1);
4225
4268
  var import_mutation16 = __toESM(require("swr/mutation"), 1);
4226
4269
 
4227
4270
  // src/_api/generated/_cfg_accounts/schemas/TokenRefresh.ts
4228
- var import_zod19 = require("zod");
4229
- var TokenRefreshSchema = import_zod19.z.object({
4230
- access: import_zod19.z.string(),
4231
- refresh: import_zod19.z.string()
4271
+ var import_zod21 = require("zod");
4272
+ var TokenRefreshSchema = import_zod21.z.object({
4273
+ access: import_zod21.z.string(),
4274
+ refresh: import_zod21.z.string()
4232
4275
  });
4233
4276
 
4234
4277
  // src/_api/generated/_cfg_accounts/schemas/APIKeyRequest.ts
4235
- var import_zod20 = require("zod");
4236
- var APIKeyRequestSchema = import_zod20.z.object({
4237
- key: import_zod20.z.string().min(1),
4238
- reissued_at: import_zod20.z.string().datetime({ offset: true }).nullable(),
4239
- created_at: import_zod20.z.string().datetime({ offset: true })
4278
+ var import_zod22 = require("zod");
4279
+ var APIKeyRequestSchema = import_zod22.z.object({
4280
+ key: import_zod22.z.string().min(1),
4281
+ reissued_at: import_zod22.z.string().datetime({ offset: true }).nullable(),
4282
+ created_at: import_zod22.z.string().datetime({ offset: true })
4240
4283
  });
4241
4284
 
4242
4285
  // src/_api/generated/_cfg_accounts/schemas/APIKeyTestRequest.ts
4243
- var import_zod21 = require("zod");
4244
- var APIKeyTestRequestSchema = import_zod21.z.object({
4245
- key: import_zod21.z.string().min(1)
4286
+ var import_zod23 = require("zod");
4287
+ var APIKeyTestRequestSchema = import_zod23.z.object({
4288
+ key: import_zod23.z.string().min(1)
4246
4289
  });
4247
4290
 
4248
4291
  // src/_api/generated/_cfg_accounts/schemas/CfgUserUpdateRequest.ts
4249
- var import_zod22 = require("zod");
4250
- var CfgUserUpdateRequestSchema = import_zod22.z.object({
4251
- first_name: import_zod22.z.string().max(50).optional(),
4252
- last_name: import_zod22.z.string().max(50).optional(),
4253
- company: import_zod22.z.string().max(100).optional(),
4254
- phone: import_zod22.z.string().max(20).optional(),
4255
- position: import_zod22.z.string().max(100).optional(),
4256
- language: import_zod22.z.string().max(10).optional(),
4257
- timezone: import_zod22.z.string().max(64).optional()
4292
+ var import_zod24 = require("zod");
4293
+ var CfgUserUpdateRequestSchema = import_zod24.z.object({
4294
+ first_name: import_zod24.z.string().max(50).optional(),
4295
+ last_name: import_zod24.z.string().max(50).optional(),
4296
+ company: import_zod24.z.string().max(100).optional(),
4297
+ phone: import_zod24.z.string().max(20).optional(),
4298
+ position: import_zod24.z.string().max(100).optional(),
4299
+ language: import_zod24.z.string().max(10).optional(),
4300
+ timezone: import_zod24.z.string().max(64).optional()
4258
4301
  });
4259
4302
 
4260
4303
  // src/_api/generated/_cfg_accounts/schemas/OAuthAuthorizeRequestRequest.ts
4261
- var import_zod23 = require("zod");
4262
- var OAuthAuthorizeRequestRequestSchema = import_zod23.z.object({
4263
- redirect_uri: import_zod23.z.string().optional(),
4264
- source_url: import_zod23.z.string().optional()
4304
+ var import_zod25 = require("zod");
4305
+ var OAuthAuthorizeRequestRequestSchema = import_zod25.z.object({
4306
+ redirect_uri: import_zod25.z.string().optional(),
4307
+ source_url: import_zod25.z.string().optional()
4265
4308
  });
4266
4309
 
4267
4310
  // src/_api/generated/_cfg_accounts/schemas/OAuthCallbackRequestRequest.ts
4268
- var import_zod24 = require("zod");
4269
- var OAuthCallbackRequestRequestSchema = import_zod24.z.object({
4270
- code: import_zod24.z.string().min(10).max(500),
4271
- state: import_zod24.z.string().min(20).max(100),
4272
- redirect_uri: import_zod24.z.string().optional()
4311
+ var import_zod26 = require("zod");
4312
+ var OAuthCallbackRequestRequestSchema = import_zod26.z.object({
4313
+ code: import_zod26.z.string().min(10).max(500),
4314
+ state: import_zod26.z.string().min(20).max(100),
4315
+ redirect_uri: import_zod26.z.string().optional()
4273
4316
  });
4274
4317
 
4275
4318
  // src/_api/generated/_cfg_accounts/schemas/OAuthDisconnectRequestRequest.ts
4276
- var import_zod25 = require("zod");
4277
- var OAuthDisconnectRequestRequestSchema = import_zod25.z.object({
4319
+ var import_zod27 = require("zod");
4320
+ var OAuthDisconnectRequestRequestSchema = import_zod27.z.object({
4278
4321
  provider: OAuthProviderEnumSchema
4279
4322
  });
4280
4323
 
4281
4324
  // src/_api/generated/_cfg_accounts/schemas/OAuthError.ts
4282
- var import_zod26 = require("zod");
4283
- var OAuthErrorSchema = import_zod26.z.object({
4284
- error: import_zod26.z.string(),
4285
- error_description: import_zod26.z.string().optional()
4325
+ var import_zod28 = require("zod");
4326
+ var OAuthErrorSchema = import_zod28.z.object({
4327
+ error: import_zod28.z.string(),
4328
+ error_description: import_zod28.z.string().optional()
4286
4329
  });
4287
4330
 
4288
4331
  // src/_api/generated/_cfg_accounts/schemas/OTPErrorResponse.ts
4289
- var import_zod27 = require("zod");
4290
- var OTPErrorResponseSchema = import_zod27.z.object({
4291
- error: import_zod27.z.string(),
4292
- error_code: import_zod27.z.string().nullable().optional(),
4293
- retry_after: import_zod27.z.number().int().nullable().optional()
4332
+ var import_zod29 = require("zod");
4333
+ var OTPErrorResponseSchema = import_zod29.z.object({
4334
+ error: import_zod29.z.string(),
4335
+ error_code: import_zod29.z.string().nullable().optional(),
4336
+ retry_after: import_zod29.z.number().int().nullable().optional()
4294
4337
  });
4295
4338
 
4296
4339
  // src/_api/generated/_cfg_accounts/schemas/OTPRequestRequest.ts
4297
- var import_zod28 = require("zod");
4298
- var OTPRequestRequestSchema = import_zod28.z.object({
4299
- identifier: import_zod28.z.string().min(1),
4300
- source_url: import_zod28.z.string().optional()
4340
+ var import_zod30 = require("zod");
4341
+ var OTPRequestRequestSchema = import_zod30.z.object({
4342
+ identifier: import_zod30.z.string().min(1),
4343
+ source_url: import_zod30.z.string().optional(),
4344
+ marketing_consent: import_zod30.z.boolean().nullable().optional(),
4345
+ consent_disclosure_version: import_zod30.z.string().max(64).optional()
4301
4346
  });
4302
4347
 
4303
4348
  // src/_api/generated/_cfg_accounts/schemas/OTPVerifyRequest.ts
4304
- var import_zod29 = require("zod");
4305
- var OTPVerifyRequestSchema = import_zod29.z.object({
4306
- identifier: import_zod29.z.string().min(1),
4307
- otp: import_zod29.z.string().min(4).max(4),
4308
- source_url: import_zod29.z.string().optional()
4349
+ var import_zod31 = require("zod");
4350
+ var OTPVerifyRequestSchema = import_zod31.z.object({
4351
+ identifier: import_zod31.z.string().min(1),
4352
+ otp: import_zod31.z.string().min(4).max(4),
4353
+ source_url: import_zod31.z.string().optional()
4309
4354
  });
4310
4355
 
4311
4356
  // src/_api/generated/_cfg_accounts/schemas/PatchedCfgUserUpdateRequest.ts
4312
- var import_zod30 = require("zod");
4313
- var PatchedCfgUserUpdateRequestSchema = import_zod30.z.object({
4314
- first_name: import_zod30.z.string().max(50).optional(),
4315
- last_name: import_zod30.z.string().max(50).optional(),
4316
- company: import_zod30.z.string().max(100).optional(),
4317
- phone: import_zod30.z.string().max(20).optional(),
4318
- position: import_zod30.z.string().max(100).optional(),
4319
- language: import_zod30.z.string().max(10).optional(),
4320
- timezone: import_zod30.z.string().max(64).optional()
4357
+ var import_zod32 = require("zod");
4358
+ var PatchedCfgUserUpdateRequestSchema = import_zod32.z.object({
4359
+ first_name: import_zod32.z.string().max(50).optional(),
4360
+ last_name: import_zod32.z.string().max(50).optional(),
4361
+ company: import_zod32.z.string().max(100).optional(),
4362
+ phone: import_zod32.z.string().max(20).optional(),
4363
+ position: import_zod32.z.string().max(100).optional(),
4364
+ language: import_zod32.z.string().max(10).optional(),
4365
+ timezone: import_zod32.z.string().max(64).optional()
4321
4366
  });
4322
4367
 
4323
4368
  // src/_api/generated/_cfg_accounts/schemas/TokenBlacklistRequest.ts
4324
- var import_zod31 = require("zod");
4325
- var TokenBlacklistRequestSchema = import_zod31.z.object({
4326
- refresh: import_zod31.z.string().min(1)
4369
+ var import_zod33 = require("zod");
4370
+ var TokenBlacklistRequestSchema = import_zod33.z.object({
4371
+ refresh: import_zod33.z.string().min(1)
4327
4372
  });
4328
4373
 
4329
4374
  // src/_api/generated/_cfg_accounts/schemas/TokenRefreshRequest.ts
4330
- var import_zod32 = require("zod");
4331
- var TokenRefreshRequestSchema = import_zod32.z.object({
4332
- refresh: import_zod32.z.string().min(1)
4375
+ var import_zod34 = require("zod");
4376
+ var TokenRefreshRequestSchema = import_zod34.z.object({
4377
+ refresh: import_zod34.z.string().min(1)
4333
4378
  });
4334
4379
 
4335
4380
  // src/auth/context/AccountsContext.tsx
@@ -4584,13 +4629,20 @@ var AuthProviderInternal = /* @__PURE__ */ __name(({ children, config }) => {
4584
4629
  }
4585
4630
  }, [loadCurrentProfile, router]);
4586
4631
  const requestOTP = (0, import_react16.useCallback)(
4587
- async (identifier, sourceUrl) => {
4632
+ async (identifier, sourceUrl, consent) => {
4588
4633
  auth.clearSession();
4589
4634
  try {
4590
- const result = await accountsRef.current.requestOTP({
4635
+ const body = {
4591
4636
  identifier,
4592
- source_url: sourceUrl
4593
- });
4637
+ source_url: sourceUrl,
4638
+ // Absent when the consuming app didn't enable the opt-in checkbox —
4639
+ // the backend treats absent/null as "not asked".
4640
+ ...consent && {
4641
+ marketing_consent: consent.marketingConsent,
4642
+ consent_disclosure_version: consent.disclosureVersion
4643
+ }
4644
+ };
4645
+ const result = await accountsRef.current.requestOTP(body);
4594
4646
  Analytics.event("auth_otp_request" /* AUTH_OTP_REQUEST */, {
4595
4647
  category: "auth" /* AUTH */,
4596
4648
  label: "email"