{"version":3,"file":"SDKErrors.mjs","sources":["../../../../../../../core/src/public/SDKErrors.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { StytchAPIErrorType } from './StytchAPIErrorType';\n\n/**\n * An Error class thrown when the SDK is unable to reach the Stytch servers,\n * or when the Stytch servers return a value the SDK cannot understand.\n * Usually - it means that you're offline!\n */\nexport class SDKAPIUnreachableError extends Error {\n  details: string;\n\n  constructor(message: string, details: string) {\n    super(message + '\\n' + details);\n    this.message = message + '\\n' + details;\n    this.name = 'SDKAPIUnreachableError';\n    this.details = details;\n    Object.setPrototypeOf(this, SDKAPIUnreachableError.prototype);\n  }\n}\n\n/**\n * An Error class thrown when the provided input fails client-side validation -\n * for example if a field that was expected to be a number is instead a string.\n */\nexport class StytchSDKUsageError extends Error {\n  constructor(methodName: string, message: string) {\n    super();\n    this.name = 'StytchSDKUsageError';\n    this.message = `Invalid call to ${methodName}\\n` + message;\n  }\n}\n\n// Example invalid schema error\n// {\n//   body: [\n//     {\n//       keyword: 'type',\n//       dataPath: '.session_duration_minutes',\n//       schemaPath: '#/properties/session_duration_minutes/type',\n//       params: { type: 'number' },\n//       message: 'should be number',\n//     },\n//   ],\n// };\n// Taken from ajv/lib/ajv.d.ts\ninterface ErrorObject {\n  keyword: string;\n  dataPath: string;\n  schemaPath: string;\n  message?: string;\n}\n\n/**\n * An Error class thrown when the provided input does not adhere to the Stytch API schema -\n * for example if a field that was expected to be a number is instead a string.\n */\nexport class StytchSDKSchemaError extends Error {\n  constructor(schemaError: { body?: ErrorObject[] }) {\n    super();\n    this.name = 'StytchSDKSchemaError';\n\n    const messages = schemaError.body?.map((err) => `${err.dataPath}: ${err.message}`).join('\\n');\n\n    this.message = `[400] Request does not match expected schema\\n${messages}`;\n  }\n}\n\ninterface APIError {\n  status_code: number;\n  request_id?: string;\n  error_type: StytchAPIErrorType;\n  error_message: string;\n  error_url: string;\n  error_details?: object;\n}\n\n/**\n * An Error class wrapping a well-formed JSON error from the Stytch API.\n * The Stytch error should match one listed at {@link https://stytch.com/docs/api/errors}\n */\nexport class StytchSDKAPIError extends Error {\n  error_type: StytchAPIErrorType;\n  error_message: string;\n  error_url: string;\n  request_id?: string;\n  status_code: number;\n  error_details?: object;\n\n  constructor(details: APIError) {\n    super();\n    this.name = 'StytchSDKAPIError';\n\n    const { status_code, error_type, error_message, error_url, request_id, error_details } = details;\n    this.error_type = error_type;\n    this.error_message = error_message;\n    this.error_url = error_url;\n    this.request_id = request_id;\n    this.status_code = status_code;\n    this.error_details = error_details;\n\n    this.message =\n      `[${status_code}] ${error_type}\\n` +\n      `${error_message}\\n` +\n      `See ${error_url} for more information.\\n` +\n      // Web-Backend doesn't have request IDs yet, so if a request fails there it won't have one.\n      // We should figure out how returning tracing info should work\n      (request_id ? `request_id: ${request_id}\\n` : '') +\n      (this.error_details ? `Details: \\n` + JSON.stringify(this.error_details) + '\\n' : '');\n  }\n}\n\n/**\n * If the SDK throws an error with an error type included in this array, the local session and\n * user state will be cleared locally.\n */\nexport const UNRECOVERABLE_ERROR_TYPES: StytchAPIErrorType[] = [\n  'unauthorized_credentials',\n  'user_unauthenticated',\n  'invalid_secret_authentication',\n  'session_not_found',\n];\n\n/**\n * An Error class representing an error within Stytch.\n */\nexport class StytchError extends Error {\n  constructor(name: string, message: string) {\n    super(message);\n    this.name = name;\n  }\n}\n\n/**\n * An Error class thrown when the SDK is unable to reach the Stytch servers,\n * or when the Stytch servers return a value the SDK cannot understand.\n * Usually - it means that you're offline!\n */\nexport class StytchAPIUnreachableError extends StytchError {\n  constructor(details: string) {\n    super('StytchAPIUnreachableError', details);\n    Object.setPrototypeOf(this, StytchAPIUnreachableError.prototype);\n  }\n}\n\n/**\n * An Error class thrown when the provided input does not adhere to the Stytch API schema -\n * for example if a field that was expected to be a number is instead a string.\n */\nexport class StytchAPISchemaError extends StytchError {\n  constructor(schemaError: { body?: ErrorObject[] }) {\n    const messages = schemaError.body?.map((err) => `${err.dataPath}: ${err.message}`).join('\\n');\n    super('StytchAPISchemaError', `Request does not match expected schema\\n${messages}`);\n  }\n}\n\n/**\n * An Error class wrapping a well-formed JSON error from the Stytch API.\n * The Stytch error should match one listed at {@link https://stytch.com/docs/api/errors}\n */\nexport class StytchAPIError extends StytchError {\n  error_type: string;\n  error_message: string;\n  error_url: string;\n  request_id?: string;\n  status_code: number;\n  error_details?: object;\n\n  constructor(details: APIError) {\n    const { status_code, error_type, error_message, error_url, request_id, error_details } = details;\n    super(\n      'StytchAPIError',\n      `[${status_code}] ${error_type}\\n` +\n        `${error_message}\\n` +\n        `See ${error_url} for more information.\\n` +\n        // Web-Backend doesn't have request IDs yet, so if a request fails there it won't have one.\n        // We should figure out how returning tracing info should work\n        (request_id ? `request_id: ${request_id}\\n` : '') +\n        (error_details ? `Details: \\n` + JSON.stringify(error_details) + '\\n' : ''),\n    );\n    this.error_type = error_type;\n    this.error_message = error_message;\n    this.error_url = error_url;\n    this.request_id = request_id;\n    this.status_code = status_code;\n    this.error_details = error_details;\n  }\n\n  static from(err: unknown): StytchAPIError {\n    if (err instanceof StytchAPIError) {\n      return err;\n    }\n    if (err && typeof err === 'object') {\n      const maybe = err as Partial<APIError>;\n      if (\n        typeof maybe.status_code === 'number' &&\n        typeof maybe.error_type === 'string' &&\n        typeof maybe.error_message === 'string' &&\n        typeof maybe.error_url === 'string'\n      ) {\n        return new StytchAPIError({\n          status_code: maybe.status_code,\n          error_type: maybe.error_type,\n          error_message: maybe.error_message,\n          error_url: maybe.error_url,\n          request_id: typeof maybe.request_id === 'string' ? maybe.request_id : undefined,\n          error_details: typeof maybe.error_details === 'object' ? maybe.error_details : undefined,\n        });\n      }\n    }\n    const message = err instanceof Error ? err.message : 'Unknown error: ' + String(err);\n    return new StytchAPIError({\n      status_code: 400,\n      error_type: 'unknown_error',\n      error_message: message,\n      error_url: '',\n      request_id: undefined,\n      error_details: undefined,\n    });\n  }\n}\n\nexport type StytchSDKErrorOptions = {\n  url?: string;\n};\n\n/**\n * An Error class used in the Stytch SDK.\n */\nexport class StytchSDKError extends StytchError {\n  options?: StytchSDKErrorOptions;\n\n  constructor(name: string, description: string, options?: StytchSDKErrorOptions) {\n    super(name, description);\n    this.options = options;\n  }\n}\n\nexport type StytchSDKUIError = {\n  message: string;\n};\n\n/**\n * Thrown when you attempt to perform an action that requires a session, but no local session exists\n */\nexport class NoCurrentSessionError extends StytchSDKError {\n  constructor() {\n    super(\n      'NoCurrentSessionError',\n      'There is no session currently available. Make sure the user is authenticated with a valid session.',\n    );\n  }\n}\n\n/**\n * Thrown when an unrecognized error is thrown\n */\nexport class InternalError extends StytchSDKError {\n  nativeStack?: unknown;\n\n  constructor(error: any) {\n    super(\n      error.name ? error.name : 'Internal Error',\n      error.message ? error.message : 'An internal error has occurred. Please contact Stytch if this occurs.',\n    );\n    this.nativeStack = error.nativeStackAndroid || error.nativeStackIOS;\n  }\n}\n\n/**\n * Thrown when no biometric registration exists\n */\nexport class NoBiometricsRegistrationError extends StytchSDKError {\n  constructor() {\n    super(\n      'NoBiometricsRegistrationError',\n      'There is no biometric registration available. Authenticate with another method and add a new biometric registration first.',\n    );\n  }\n}\n\n/**\n * Thrown when biometrics are unavailable on the device\n */\nexport class BiometricsUnavailableError extends StytchSDKError {\n  constructor() {\n    super('BiometricsUnavailableError', 'Biometrics is not available on the device.');\n  }\n}\n\n/**\n * Thrown when the biometrics enrollment has changed, and the underlying key is no longer usable\n */\nexport class KeyInvalidatedError extends StytchSDKError {\n  constructor() {\n    super('KeyInvalidatedError', 'The biometrics enrollment on the device has changed.');\n  }\n}\n\n/**\n * Thrown when the Keystore is determined to be unavailable\n */\nexport class KeystoreUnavailableError extends StytchSDKError {\n  constructor() {\n    super(\n      'KeystoreUnavailableError',\n      'The Android keystore is unavailable on the device. Consider setting allowFallbackToCleartext to true.',\n    );\n  }\n}\n\n/**\n * Thrown when there is no biometric factor enrolled on device\n */\nexport class NoBiometricsEnrolledError extends StytchSDKError {\n  constructor() {\n    super(\n      'NoBiometricsEnrolledError',\n      'There is no biometric factor enrolled on the device. Add a biometric factor in the device settings.',\n    );\n  }\n}\n\n/**\n * Thrown when there is no biometric factor enrolled on device\n */\nexport class BiometricsAlreadyEnrolledError extends StytchSDKError {\n  constructor() {\n    super(\n      'BiometricsAlreadyEnrolledError',\n      'There is already a biometric factor enrolled on this device. Fully authenticate with all factors and remove the existing registration before attempting to register again.',\n    );\n  }\n}\n\n/**\n * Thrown when the user has cancelled the prompt\n */\nexport class UserCancellationError extends StytchSDKError {\n  constructor() {\n    super('UserCancellationError', 'The user canceled the prompt. Ask the user to try again.');\n  }\n}\n\n/**\n * Thrown when the user has been locked out of biometrics\n */\nexport class UserLockedOutError extends StytchSDKError {\n  constructor() {\n    super(\n      'UserLockedOutError',\n      'The user has been locked out due to too many failed attempts. Ask the user to try again later.',\n    );\n  }\n}\n\n/**\n * Thrown when biometrics register/authenticate calls are made with mismatched `allowDeviceCredentials` parameter\n */\nexport class DeviceCredentialsNotAllowedError extends StytchSDKError {\n  constructor() {\n    super(\n      'DeviceCredentialsNotAllowedError',\n      'The device credentials allowment is mismatched. Change the allowDeviceCredentials parameter to be the same in both the register and authenticate methods.',\n    );\n  }\n}\n\n/**\n * Thrown when no Google client ID is found for the project\n */\nexport class MissingGoogleClientIDError extends StytchSDKError {\n  constructor() {\n    super('MissingGoogleClientIDError', 'No Google client ID was found in the project.');\n  }\n}\n\n/**\n * Thrown when there was an error generating or retrieving a PKCE keypair\n */\nexport class MissingPKCEError extends StytchSDKError {\n  constructor() {\n    super('MissingPKCEError', 'Make sure this flow is completed on the same device on which it was started.');\n  }\n}\n\n/**\n * Thrown when a native OAuth flow is missing the id_token\n */\nexport class MissingAuthorizationCredentialIDTokenError extends StytchSDKError {\n  constructor() {\n    super('MissingAuthorizationCredentialIDTokenError', 'The authorization credential is missing an ID token.');\n  }\n}\n\n/**\n * Thrown when a native OAuth flow returns an invalid credential\n */\nexport class InvalidAuthorizationCredentialError extends StytchSDKError {\n  constructor() {\n    super(\n      'InvalidAuthorizationCredentialError',\n      'The authorization credential is invalid. Verify that OAuth is set up correctly in the developer console, and call the start flow method.',\n    );\n  }\n}\n\n/**\n * Thrown when a Google OneTap flow is not completed successfully\n */\nexport class NoCredentialsPresentError extends StytchSDKError {\n  constructor() {\n    super('NoCredentialsPresentError', 'The user did not provide credentials for a Google OneTap attempt');\n  }\n}\n\n/**\n * Thrown when a public key was not found\n */\nexport class MissingPublicKeyError extends StytchSDKError {\n  constructor() {\n    super('MissingPublicKeyError', 'Failed to retrieve the public key. Add a new biometric registration.');\n  }\n}\n\n/**\n * Thrown when the challenge string failed to be signed\n */\nexport class ChallengeSigningFailedError extends StytchSDKError {\n  constructor() {\n    super('ChallengeSigningFailedError', 'Failed to sign the challenge with the key.');\n  }\n}\n\n/**\n * Thrown when the SDK has not been configured\n */\nexport class SDKNotConfiguredError extends StytchSDKError {\n  constructor() {\n    super(\n      'SDKNotConfiguredError',\n      'Stytch client is not confiured. You must call the configure method before using the SDK',\n    );\n  }\n}\n\n/**\n * Thrown when the code challenge failed to be generated\n */\nexport class FailedCodeChallengeError extends StytchSDKError {\n  constructor() {\n    super('FailedCodeChallengeError', 'Failed to create a code challenge');\n  }\n}\n\n/**\n * Thrown when Passkeys are unsupported on a device\n */\nexport class PasskeysUnsupportedError extends StytchSDKError {\n  constructor() {\n    super('PasskeysUnsupportedError', 'Passkeys are not supported on this device');\n  }\n}\n\n/**\n * Thrown when user data failed to be decrypted\n */\nexport class FailedToDecryptDataError extends StytchSDKError {\n  constructor() {\n    super('FailedToDecryptDataError', 'Failed to decrypt user data');\n  }\n}\n\n/**\n * Thrown when Biometrics failed\n */\nexport class BiometricsFailedError extends StytchSDKError {\n  constructor() {\n    super('BiometricsFailedError', 'Biometric authentication failed');\n  }\n}\n\n/**\n * Thrown when a start URL was invalid\n */\nexport class InvalidStartUrlError extends StytchSDKError {\n  constructor() {\n    super('InvalidStartUrlError', 'The start URL was invalid or improperly formatted.');\n  }\n}\n\n/**\n * Thrown when a redirect url was invalid\n */\nexport class InvalidRedirectSchemeError extends StytchSDKError {\n  constructor() {\n    super(\n      'InvalidRedirectSchemeError',\n      'The scheme from the given redirect urls was invalid. Possible reasons include: nil scheme, non-custom scheme (using http or https), or differing schemes for login/signup urls.',\n    );\n  }\n}\n\n/**\n * Thrown when the underlying web authentication service failed to return a URL.\n */\nexport class MissingUrlError extends StytchSDKError {\n  constructor() {\n    super('MissingUrlError', 'The underlying web authentication service failed to return a URL.');\n  }\n}\n\n/**\n * Thrown when the public key credential type was not of the expected type.\n */\nexport class InvalidCredentialTypeError extends StytchSDKError {\n  constructor() {\n    super('InvalidCredentialTypeError', 'The public key credential type was not of the expected type.');\n  }\n}\n\n/**\n * Thrown when the public key credential is missing the attestation object\n */\nexport class MissingAttestationObjectError extends StytchSDKError {\n  constructor() {\n    super('MissingAttestationObjectError', 'The public key credential is missing the attestation object.');\n  }\n}\n\n/**\n * Thrown when we received JSON data that could not be converted to a string\n */\nexport class JSONDataNotConvertibleToStringError extends StytchSDKError {\n  constructor() {\n    super('JSONDataNotConvertibleToStringError', 'JSON data unable to be converted to String type.');\n  }\n}\n\n/**\n * Thrown when RNG fails\n */\nexport class RandomNumberGenerationFailed extends StytchSDKError {\n  constructor() {\n    super('RandomNumberGenerationFailed', 'Random number generation failed');\n  }\n}\n\n/**\n * Thrown when there was an invalid encoding used for a Passkeys request\n */\nexport class PasskeysInvalidEncoding extends StytchSDKError {\n  constructor() {\n    super('PasskeysInvalidEncoding', 'Invalid passkey encoding');\n  }\n}\n\n/**\n * Thrown when Passkeys support is misconfigured\n */\nexport class PasskeysMisconfigured extends StytchSDKError {\n  constructor() {\n    super(\n      'PasskeysMisconfigured',\n      'Passkeys are misconfigured. Verify that you have added the correct associated domain for your application, and that the signing information is correct.',\n    );\n  }\n}\n\n/**\n * Thrown when there was an invalid encoding used for a Passkeys request\n */\nexport class SignInWithAppleMisconfigured extends StytchSDKError {\n  constructor() {\n    super(\n      'SignInWithAppleMisconfigured',\n      'Sign In With Apple is misconfigured. Verify that you have correctly configured Apple OAuth in the Stytch Dashboard and added the Sign In With Apple capability to your project.',\n    );\n  }\n}\n\nexport class MissingCipherIv extends StytchSDKError {\n  constructor() {\n    super(\n      'MissingCipherIv',\n      'The expected cipher Iv was not found when attempting to decrypt an existing biometric key.',\n    );\n  }\n}\n\nexport class InvalidPrivateKeyLength extends StytchSDKError {\n  constructor() {\n    super('InvalidPrivateKeyLength', `The private key was of an incorrect length.`);\n  }\n}\n\nexport class BiometricRegistrationIdIsNullOrBlank extends StytchSDKError {\n  constructor() {\n    super(\n      'BiometricRegistrationIdIsNullOrBlank',\n      'Attempted to set a blank or null biometric registration ID. This is not allowed, and indicates no registration was created on the server. Consider deleting any local keys that may have been generated.',\n    );\n  }\n}\n\nexport class DFPNotConfigured extends StytchSDKError {\n  constructor() {\n    super(\n      'DFPNotConfigured',\n      'You have attempted to retrieve a telemetry ID before the DFP client has been configured.',\n    );\n  }\n}\n\n/**\n * Thrown when a client attempts to start an OAuth flow but does not pass all required fields\n */\nexport class IDPOAuthFlowMissingParamError extends StytchSDKError {\n  constructor(details: string) {\n    super('IDPOAuthFlowMissingParamError', details);\n  }\n}\n\nexport function errorToStytchError(error: any): StytchSDKError {\n  if (error instanceof StytchSDKError) return error;\n\n  switch (error.message) {\n    case 'no_current_session':\n      return new NoCurrentSessionError();\n    case 'no_biometrics_registration':\n      return new NoBiometricsRegistrationError();\n    case 'biometrics_unavailable':\n      return new BiometricsUnavailableError();\n    case 'key_invalidated':\n      return new KeyInvalidatedError();\n    case 'device_hardware_error':\n      return new BiometricsUnavailableError();\n    case 'biometrics_not_available':\n      return new BiometricsUnavailableError();\n    case 'no_biometrics_enrolled':\n      return new NoBiometricsEnrolledError();\n    case 'keystore_unavailable':\n      return new KeystoreUnavailableError();\n    case 'no_biometric_key':\n      return new KeyInvalidatedError();\n    case 'device_credentials_not_allowed':\n      return new DeviceCredentialsNotAllowedError();\n    case 'user_cancellation':\n      return new UserCancellationError();\n    case 'user_locked_out':\n      return new UserLockedOutError();\n    case 'google_onetap_missing_id_token':\n      return new MissingAuthorizationCredentialIDTokenError();\n    case 'google_onetap_missing_member':\n      return new InvalidAuthorizationCredentialError();\n    case 'oauth_apple_missing_id_token':\n      return new MissingAuthorizationCredentialIDTokenError();\n    case 'oauth_apple_credential_invalid':\n      return new InvalidAuthorizationCredentialError();\n    case 'missing_public_key':\n      return new MissingPublicKeyError();\n    case 'challenge_signing_failed':\n      return new ChallengeSigningFailedError();\n    case 'missing_authorization_credential_id_token':\n      return new MissingAuthorizationCredentialIDTokenError();\n    case 'invalid_authorization_credential':\n      return new InvalidAuthorizationCredentialError();\n    case 'no_credentials_present':\n      return new NoCredentialsPresentError();\n    case 'sdk_not_configured':\n      return new SDKNotConfiguredError();\n    case 'failed_code_challenge':\n      return new FailedCodeChallengeError();\n    case 'passkeys_unsupported':\n      return new PasskeysUnsupportedError();\n    case 'failed_to_decrypt_data':\n      return new FailedToDecryptDataError();\n    case 'biometrics_failed':\n      return new BiometricsFailedError();\n    case 'invalid_start_url':\n      return new InvalidStartUrlError();\n    case 'invalid_redirect_scheme':\n      return new InvalidRedirectSchemeError();\n    case 'missing_url':\n      return new MissingUrlError();\n    case 'invalid_credential_type':\n      return new InvalidCredentialTypeError();\n    case 'missing_attestation_object':\n      return new MissingAttestationObjectError();\n    case 'json_data_not_convertible_to_string':\n      return new JSONDataNotConvertibleToStringError();\n    case 'random_number_generation_failed':\n      return new RandomNumberGenerationFailed();\n    case 'passkeys_invalid_encoding':\n      return new PasskeysInvalidEncoding();\n    case 'passkeys_misconfigured':\n      return new PasskeysMisconfigured();\n    case 'signinwithapple_misconfigured':\n      return new SignInWithAppleMisconfigured();\n    case 'missing_cipher_iv':\n      return new MissingCipherIv();\n    case 'invalid_private_key_length':\n      return new InvalidPrivateKeyLength();\n    case 'biometric_registration_id_is_null_or_blank':\n      return new BiometricRegistrationIdIsNullOrBlank();\n    case 'dfp_not_configured':\n      return new DFPNotConfigured();\n    default:\n      return new InternalError(error);\n  }\n}\n"],"names":["SDKAPIUnreachableError","Error","details","message","name","Object","setPrototypeOf","prototype","StytchSDKUsageError","methodName","StytchSDKSchemaError","schemaError","messages","body","map","err","dataPath","join","StytchSDKAPIError","error_type","error_message","error_url","request_id","status_code","error_details","JSON","stringify","UNRECOVERABLE_ERROR_TYPES","StytchError","StytchAPIUnreachableError","StytchAPISchemaError","StytchAPIError","from","maybe","undefined","String","StytchSDKError","options","description","NoCurrentSessionError","InternalError","nativeStack","error","nativeStackAndroid","nativeStackIOS","NoBiometricsRegistrationError","BiometricsUnavailableError","KeyInvalidatedError","KeystoreUnavailableError","NoBiometricsEnrolledError","BiometricsAlreadyEnrolledError","UserCancellationError","UserLockedOutError","DeviceCredentialsNotAllowedError","MissingGoogleClientIDError","MissingPKCEError","MissingAuthorizationCredentialIDTokenError","InvalidAuthorizationCredentialError","NoCredentialsPresentError","MissingPublicKeyError","ChallengeSigningFailedError","SDKNotConfiguredError","FailedCodeChallengeError","PasskeysUnsupportedError","FailedToDecryptDataError","BiometricsFailedError","InvalidStartUrlError","InvalidRedirectSchemeError","MissingUrlError","InvalidCredentialTypeError","MissingAttestationObjectError","JSONDataNotConvertibleToStringError","RandomNumberGenerationFailed","PasskeysInvalidEncoding","PasskeysMisconfigured","SignInWithAppleMisconfigured","MissingCipherIv","InvalidPrivateKeyLength","BiometricRegistrationIdIsNullOrBlank","DFPNotConfigured","IDPOAuthFlowMissingParamError","errorToStytchError"],"mappings":"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"}