@zyphr-dev/node-sdk 0.1.55 → 0.1.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zyphr-dev/node-sdk",
3
- "version": "0.1.55",
3
+ "version": "0.1.56",
4
4
  "description": "Official Zyphr SDK for Node.js, React, and React Native",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -60,7 +60,7 @@ export interface AuthPasswordResetApiValidateResetTokenOperationRequest {
60
60
  */
61
61
  export interface AuthPasswordResetApiInterface {
62
62
  /**
63
- * Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration.
63
+ * Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration — the response is identical whether or not the address is registered. An identity with **no password set** still receives a link, which sets a first password. This covers users migrated from a provider that cannot export password hashes. The one case where no email is sent (beyond an unknown address) is an identity that has no password but *does* have another way in — a linked OAuth provider and/or a passkey. Those users are not locked out, so no set-password link is sent; the attempt is recorded as a suppressed message visible via `GET /emails`.
64
64
  * @summary Request a password reset
65
65
  * @param {ForgotPasswordRequest} forgotPasswordRequest
66
66
  * @param {*} [options] Override http request option.
@@ -70,7 +70,7 @@ export interface AuthPasswordResetApiInterface {
70
70
  forgotPasswordRaw(requestParameters: AuthPasswordResetApiForgotPasswordOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SuccessResult>>;
71
71
 
72
72
  /**
73
- * Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration.
73
+ * Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration — the response is identical whether or not the address is registered. An identity with **no password set** still receives a link, which sets a first password. This covers users migrated from a provider that cannot export password hashes. The one case where no email is sent (beyond an unknown address) is an identity that has no password but *does* have another way in — a linked OAuth provider and/or a passkey. Those users are not locked out, so no set-password link is sent; the attempt is recorded as a suppressed message visible via `GET /emails`.
74
74
  * Request a password reset
75
75
  */
76
76
  forgotPassword(forgotPasswordRequest: ForgotPasswordRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SuccessResult>;
@@ -115,7 +115,7 @@ export interface AuthPasswordResetApiInterface {
115
115
  export class AuthPasswordResetApi extends runtime.BaseAPI implements AuthPasswordResetApiInterface {
116
116
 
117
117
  /**
118
- * Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration.
118
+ * Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration — the response is identical whether or not the address is registered. An identity with **no password set** still receives a link, which sets a first password. This covers users migrated from a provider that cannot export password hashes. The one case where no email is sent (beyond an unknown address) is an identity that has no password but *does* have another way in — a linked OAuth provider and/or a passkey. Those users are not locked out, so no set-password link is sent; the attempt is recorded as a suppressed message visible via `GET /emails`.
119
119
  * Request a password reset
120
120
  */
121
121
  async forgotPasswordRaw(requestParameters: AuthPasswordResetApiForgotPasswordOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SuccessResult>> {
@@ -152,7 +152,7 @@ export class AuthPasswordResetApi extends runtime.BaseAPI implements AuthPasswor
152
152
  }
153
153
 
154
154
  /**
155
- * Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration.
155
+ * Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration — the response is identical whether or not the address is registered. An identity with **no password set** still receives a link, which sets a first password. This covers users migrated from a provider that cannot export password hashes. The one case where no email is sent (beyond an unknown address) is an identity that has no password but *does* have another way in — a linked OAuth provider and/or a passkey. Those users are not locked out, so no set-password link is sent; the attempt is recorded as a suppressed message visible via `GET /emails`.
156
156
  * Request a password reset
157
157
  */
158
158
  async forgotPassword(forgotPasswordRequest: ForgotPasswordRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SuccessResult> {
@@ -37,6 +37,29 @@ export interface InviteEndUser200ResponseData {
37
37
  * @memberof InviteEndUser200ResponseData
38
38
  */
39
39
  linkSent?: boolean;
40
+ /**
41
+ * Present only when `send_link` was requested and `link_sent` is false — explains why,
42
+ * so a caller can distinguish "suppressed by design" from "delivery failed".
43
+ *
44
+ * Known values:
45
+ *
46
+ * - `identity_has_other_auth_methods` — the identity has no password but does have a
47
+ * linked OAuth provider and/or a passkey, so it is not locked out and no
48
+ * set-password link is sent. The attempt is recorded as a suppressed message,
49
+ * visible via `GET /emails`.
50
+ * - `user_not_found_in_environment` — the identity could not be resolved in the
51
+ * calling environment (a race; it was created or resolved immediately prior).
52
+ * - `recipient_not_allowlisted` — the application's `test_recipients` allowlist
53
+ * blocked the recipient.
54
+ * - `send_failed` — dispatch was attempted and failed with no more specific code.
55
+ *
56
+ * Not a closed set: a mail-provider error code may be surfaced verbatim, so treat
57
+ * an unrecognised value as a generic failure rather than an error.
58
+ *
59
+ * @type {string}
60
+ * @memberof InviteEndUser200ResponseData
61
+ */
62
+ linkSuppressedReason?: string;
40
63
  }
41
64
 
42
65
  /**
@@ -59,6 +82,7 @@ export function InviteEndUser200ResponseDataFromJSONTyped(json: any, ignoreDiscr
59
82
  'userId': json['user_id'] == null ? undefined : json['user_id'],
60
83
  'created': json['created'] == null ? undefined : json['created'],
61
84
  'linkSent': json['link_sent'] == null ? undefined : json['link_sent'],
85
+ 'linkSuppressedReason': json['link_suppressed_reason'] == null ? undefined : json['link_suppressed_reason'],
62
86
  };
63
87
  }
64
88
 
@@ -76,6 +100,7 @@ export function InviteEndUser200ResponseDataToJSONTyped(value?: InviteEndUser200
76
100
  'user_id': value['userId'],
77
101
  'created': value['created'],
78
102
  'link_sent': value['linkSent'],
103
+ 'link_suppressed_reason': value['linkSuppressedReason'],
79
104
  };
80
105
  }
81
106