UNPKG

react-native-gigya-sdk

Version:
427 lines (426 loc) 14.4 kB
export declare enum GigyaSdkDataCenters { /** * Australian data center. * @console https://console.gigya.com */ AU1 = "au1.gigya.com", /** * Chinese data center. * @console https://console.cn1.sapcdm.cn */ CN1 = "cn1.sapcdm.cn", /** * European data center (excluding Russia). * @console https://console.gigya.com */ EU1 = "eu1.gigya.com", /** * European Azure data center. * @console https://console.gigya.com */ EU2 = "eu2.gigya.com", /** * United States data center. * @console https://console.gigya.com */ US1 = "us1.gigya.com", /** * Must be used with Global site groups. * @console Not Applicable */ GLOBAL = "global.gigya.com" } /** * Determines which Link Accounts API version should the library use. * Both SAP native SDKs are using the v2 by default (since `gigya-swift-sdk@1.7.2` & `gigya-android-sdk@7.1.4`). * @default `V1'` * @see https://help.sap.com/docs/SAP_CUSTOMER_DATA_CLOUD/8b8d6fffe113457094a17701f63e3d6a/a8653abdc4594c0e94d38809db1b93d7.html?locale=en-US */ export declare enum GigyaSdkLinkAccountVersions { /** * SAP CDC Link Account v1 API. * Both SAP CDC native SDKs use the `v1` by default up until `gigya-swift-sdk@1.7.1` & `gigya-android-sdk@7.1.3`. * @see https://github.com/SAP/gigya-swift-sdk/releases/tag/1.7.2 * @see https://github.com/SAP/gigya-android-sdk/releases/tag/core-v7.1.4 */ V1 = "v1", /** * SAP CDC latest Link Account v2 API. * Both SAP CDC native SDKs are now using the `v2` by default since `gigya-swift-sdk@1.7.2` & `gigya-android-sdk@7.1.4`. * @see https://github.com/SAP/gigya-swift-sdk/releases/tag/1.7.2 * @see https://github.com/SAP/gigya-android-sdk/releases/tag/core-v7.1.4 */ V2 = "v2" } /** * Internal state of the library. */ export interface GigyaSdkStateType { UID: string; lang: string; apiKey: string; storageKey: string; error?: GigyaSdkErrorType; dataCenter: GigyaSdkDataCenters; linkAccountVersion?: GigyaSdkLinkAccountVersions; sessionInfo?: GigyaSdkLoginErrorPayloadType['sessionInfo']; regToken?: { expirationDate?: Date; isStillValid?: boolean; value?: GigyaSdkLoginErrorPayloadType['regToken']; }; authenticationAttempt?: { type?: GigyaSdkLoginProvidersType | GigyaSdkSocialProvidersType; }; storage?: { setItem: (key: string, value: string) => any; getItem: (key: string) => string | null | Promise<string | null>; }; } /** * All login providers supported by the library. * @see [Supported Social networks](https://help.sap.com/docs/SAP_CUSTOMER_DATA_CLOUD/8b8d6fffe113457094a17701f63e3d6a/4172d0a670b21014bbc5a10ce4041860.html?locale=en-US&q=social%20login#capabilities-by-network). */ export declare type GigyaSdkLoginProvidersType = 'site' | 'apple' | 'facebook' | 'googleplus' | 'line' | 'wechat'; /** * Social login providers supported by the library. * @see [Supported Social networks](https://help.sap.com/docs/SAP_CUSTOMER_DATA_CLOUD/8b8d6fffe113457094a17701f63e3d6a/4172d0a670b21014bbc5a10ce4041860.html?locale=en-US&q=social%20login#capabilities-by-network). */ export declare type GigyaSdkSocialProvidersType = Exclude<GigyaSdkLoginProvidersType, 'googleplus' | 'site'> | 'google'; /** * Common error codes returned by Gigya's servers. * @see [Response Codes and Errors](https://help.sap.com/docs/SAP_CUSTOMER_DATA_CLOUD/8b8d6fffe113457094a17701f63e3d6a/416d41b170b21014bbc5a10ce4041860.html?locale=en-US) */ export declare enum GigyaSdkErrorCodes { NetworkError = 500026, ValidationError = 400009, UnauthorizedUser = 403005, PermissionDenied = 403007, InvalidParameter = 400006, ConflictingAccount = 403043, PendingVerification = 206002, LoginIdDoesNotExist = 403047, PendingRegistration = 206001, ConflictingAccountV2 = 409003, NotConnectedToNetwork = 400106, MaxRequestLimitReached = 403000, InvalidApiKeyParameter = 400093, UniqueIdentifierExists = 400003, InvalidRequestSignature = 403003, InvalidLoginIdOrPassword = 403042, AccountTemporarilyLockedOut = 403120, ConsecutiveRequestLimitReached = 400125, ConflictingAccountV1 = 403043 } /** * Common error reasons returned by Gigya's servers. * @see [Response Codes and Errors](https://help.sap.com/docs/SAP_CUSTOMER_DATA_CLOUD/8b8d6fffe113457094a17701f63e3d6a/416d41b170b21014bbc5a10ce4041860.html?locale=en-US) */ export declare enum GigyaSdkErrors { NetworkError = "networkError", SendApiError = "sendApiError", EmptyResponse = "emptyResponse", UserCancelled = "userCancelled", UndefinedError = "undefinedError", JsonParseError = "jsonParseError", ValidationError = "validationError", SetAccountError = "setAccountError", InvalidParameter = "invalidParameter", PermissionDenied = "permissionDenied", ConflictingAccount = "conflictingAccount", LoginIdDoesNotExist = "loginIdDoesNotExist", PendingRegistration = "pendingRegistration", PendingVerification = "pendingVerification", NotConnectedToNetwork = "notConnectedToNetwork", PendingPasswordChange = "pendingPasswordChange", CreateURLRequestFailed = "createURLRequestFailed", MaxRequestLimitReached = "maxRequestLimitReached", InvalidApiKeyParameter = "invalidApiKeyParameter", UniqueIdentifierExists = "uniqueIdentifierExists", InvalidLoginIdOrPassword = "invalidLoginIdOrPassword", AccountTemporarilyLockedOut = "accountTemporarilyLockedOut", ConsecutiveRequestLimitReached = "consecutiveRequestLimitReached" } export interface GigyaSdkApiResponseType { time: string; callId: string; statusCode: number; apiVersion?: number; statusReason: string; errorMessage?: string; errorDetails?: string; fullEventName?: string; errorCode: GigyaSdkErrorCodes; } export interface GigyaSdkValidationErrorType { message: string; errorCode: number; fieldName: 'username' | 'password' | 'secretQuestion' | 'secretAnswer' | 'email'; } export interface GigyaSdkLoginErrorPayloadAccountInfoType extends GigyaSdkApiResponseType { UID: string; email: string; UIDSig: string; gender: string; nickname: string; photoURL: string; lastName: string; firstName: string; providers: string; timestamp: string; isSiteUID: boolean; isSiteUser: boolean; isTempUser: boolean; isLoggedIn: boolean; UIDSignature: string; isConnected: boolean; thumbnailURL: string; capabilities: string; loginProvider: string; oldestDataAge: number; loginProviderUID: string; signatureTimestamp: string; oldestDataUpdatedTimestamp: number; identities: Record<string, unknown>[]; } export interface GigyaSdkLoginErrorPayloadType extends GigyaSdkApiResponseType { UID?: string; error?: string; isActive?: true; newUser: boolean; id_token: string; regToken: string; loginID?: string; created?: string; apiVersion: number; isVerified?: false; lastLogin?: string; errorDetails: string; accessToken?: string; errorMessage: string; isRegistered?: false; lastUpdated?: string; UIDSignature?: string; isDefaultApp?: boolean; createdTimestamp?: number; unverifiedEmail?: string[]; oldestDataUpdated?: string; signatureTimestamp?: string; lastLoginTimestamp?: number; profile?: { email?: string; }; lastUpdatedTimestamp?: number; oldestDataUpdatedTimestamp?: number; loginProvider?: GigyaSdkLoginProvidersType; socialProviders?: GigyaSdkLoginProvidersType; loginProviders?: GigyaSdkLoginProvidersType[]; validationErrors?: GigyaSdkValidationErrorType[]; accountInfo: GigyaSdkLoginErrorPayloadAccountInfoType; provider?: Exclude<GigyaSdkLoginProvidersType, 'site'>; provider_uid?: Exclude<GigyaSdkLoginProvidersType, 'site'>; sessionInfo?: { expires_in?: string; access_token?: string; provider?: Exclude<GigyaSdkLoginProvidersType, 'site'>; provider_uid?: Exclude<GigyaSdkLoginProvidersType, 'site'>; }; } export interface GigyaSdkErrorType { code?: string; name?: string; stack?: string; message?: string; type: GigyaSdkErrors; payload: GigyaSdkLoginErrorPayloadType | null; } export declare type GigyaSdkConsentsStatementsType<ConsentIds extends string = string, Lang extends string = string> = GigyaSdkApiResponseType & { preferences: GigyaSdkConsentPreferencesType<ConsentIds, Lang>; }; export declare type GigyaSdkConsentPreferencesType<ConsentIds extends string = string, Lang extends string = string> = { terms: Record<ConsentIds, GigyaSdkConsentStatementType<Lang>>; privacy: Record<ConsentIds, GigyaSdkConsentStatementType<Lang>>; } & Record<ConsentIds, GigyaSdkConsentStatementType<Lang>>; export declare type GigyaSdkConsentWriteAccessType = 'clientCreate' | 'clientModify' | 'serverOnly'; export interface GigyaSdkConsentStatementType<Lang extends string = string> { /** * Gigya Preferences Object - Old Consents. * @see: https://help.sap.com/docs/SAP_CUSTOMER_DATA_CLOUD/8b8d6fffe113457094a17701f63e3d6a/4169054f70b21014bbc5a10ce4041860.html */ tags: unknown[]; isActive: boolean; defaultLang?: Lang; langs: Array<Lang>; isMandatory: boolean; customData: unknown[]; entitlements: unknown[]; enforceLocaleReconsent: boolean; consentVaultRetentionPeriod: number; writeAccess: GigyaSdkConsentWriteAccessType; /** * Gigya Preferences Object - New Consents. * @see: https://help.sap.com/docs/SAP_CUSTOMER_DATA_CLOUD/8b8d6fffe113457094a17701f63e3d6a/1f1f6159d48a42bf9168c3d5567f1acd.html */ lang?: Lang; docVersion?: number; isConsentGranted?: true; actionTimestamp?: string; lastConsentModified?: string; locales?: Record<Lang, Record<'docVersion', number>>; } export interface GigyaSdkConsentSchemaType { key: string; type: string; format: string; required: boolean; writeAccess: string; customData: unknown[]; minDocVersion: number; currentDocVersion: number; legalStatements: Record<string, { documentUrl: string; purpose: string; }>; } export declare type GigyaSdkRequiredConsentsKeysType = { acceptanceRequired: string[]; instantiationRequired: string[]; }; export declare type GigyaSdkRequiredConsentsSchemasType = { acceptanceRequired: GigyaSdkConsentSchemaType[]; instantiationRequired: GigyaSdkConsentSchemaType[]; }; export declare type GigyaSdkLegalStatementsStatusType = 'Historic' | 'Published'; export interface GigyaSdkLegalStatementsType { minDocDate?: string; minDocVersion: number; currentDocVersion: number; publishedDocVersion: number; versions: Record<GigyaSdkLegalStatementsType['minDocVersion'] | GigyaSdkLegalStatementsType['publishedDocVersion'], GigyaSdkLegalStatementsVersionType>; } export interface GigyaSdkLegalStatementsVersionType { purpose?: string; documentUrl: string; LegalStatementStatus: GigyaSdkLegalStatementsStatusType; } export interface GigyaSdkProfileType { age?: number; bio?: string; zip?: string; email: string; city?: string; name?: string; iRank?: number; state?: string; work?: unknown; gender?: string; honors?: string; likes?: unknown; locale?: string; lastName: string; address?: string; country?: string; skills?: unknown; firstName: string; nickName?: string; birthDay?: number; hometown?: string; industry?: string; patents?: unknown; photoURL?: string; religion?: string; timezone?: string; username?: string; verified?: string; birthYear?: number; interests?: string; languages?: string; samlData?: unknown; birthMonth?: number; education?: unknown; favorites?: unknown; isSiteUID?: boolean; identities?: unknown; isSiteUser?: boolean; providers?: string[]; isVerified?: boolean; capabilities?: string; interestedIn?: string; isConnected?: boolean; specialities?: string; thumbnailURL?: string; oldestDataAge?: number; publications?: unknown; educationLevel?: string; followersCount?: number; followingCount?: number; certifications?: unknown; verifiedTimestamp?: number; relationshipStatus?: string; oldestDataUpdatedTimestamp?: number; phones?: GigyaSdkProfilePhoneType | GigyaSdkProfilePhoneType[]; } export declare type GigyaSdkProfilePhoneType = { type: string; number: string; }; export interface GigyaSdkLoginType { UID: string; created: Date; verified: Date; lastLogin: Date; isActive: boolean; lastUpdated: Date; registered: string; apiVersion: number; isVerified: boolean; UIDSignature: string; isRegistered: boolean; socialProviders: string; oldestDataUpdated: Date; createdTimestamp: number; verifiedTimestamp: number; lastLoginTimestamp: number; signatureTimestamp: string; registeredTimestamp: number; profile: GigyaSdkProfileType; lastUpdatedTimestamp: number; oldestDataUpdatedTimestamp: number; loginProvider: GigyaSdkLoginProvidersType; } export interface GigyaSdkAccountInfoType extends GigyaSdkLoginType { lastLoginLocation?: { country: string; coordinates: { lat: number; lon: number; }; }; data?: unknown; id_token?: string; preferences?: unknown; isLockedOut?: boolean; subscriptions?: unknown; identities: Record<string, unknown>[]; emails?: { verified: string[]; unverified: string[]; }; loginIDs?: { username: string; emails: string[]; unverifiedEmails: string[]; }; } export interface GigyaSdkRegisteredAccountType extends GigyaSdkAccountInfoType { sessionInfo: Omit<GigyaSdkSessionType, 'sessionExpirationTimestamp'>; } export interface GigyaSdkConflictingAccountType { loginID: string; loginProviders: GigyaSdkLoginProvidersType[]; } export interface GigyaSdkSessionType { sessionToken: string; sessionSecret: string; sessionExpirationTimestamp: number; }