react-native-gigya-sdk
Version:
SAP CDC/Gigya SDK for your React Native applications
249 lines (248 loc) • 7.14 kB
TypeScript
export interface GigyaSdkStateType {
apiKey: string;
UID: string;
lang: string;
error?: GigyaSdkErrorType;
storageKey: string;
storage?: {
getItem: (key: string) => string | null | Promise<string | null>;
setItem: (key: string, value: string) => any;
};
authenticationAttempt?: {
type?: 'apple' | 'email' | 'facebook';
};
regToken?: {
value?: GigyaSdkLoginErrorPayloadType['regToken'];
expirationDate?: Date;
isStillValid?: boolean;
};
}
export declare enum GigyaSdkErrorCodes {
ConsecutiveRequestLimitReached = 400125,
AccountTemporarilyLockedOut = 403120,
InvalidLoginIdOrPassword = 403042,
MaxRequestLimitReached = 403000,
NotConnectedToNetwork = 400106,
InvalidApiKeyParameter = 400093,
UniqueIdentifierExists = 400003,
PendingVerification = 206002,
LoginIdDoesNotExist = 403047,
PendingRegistration = 206001,
ConflictingAccount = 403043,
PermissionDenied = 403007,
InvalidParameter = 400006,
ValidationError = 400009
}
export declare enum GigyaSdkErrors {
ConsecutiveRequestLimitReached = "consecutiveRequestLimitReached",
AccountTemporarilyLockedOut = "accountTemporarilyLockedOut",
InvalidLoginIdOrPassword = "invalidLoginIdOrPassword",
CreateURLRequestFailed = "createURLRequestFailed",
MaxRequestLimitReached = "maxRequestLimitReached",
NotConnectedToNetwork = "notConnectedToNetwork",
InvalidApiKeyParameter = "invalidApiKeyParameter",
UniqueIdentifierExists = "uniqueIdentifierExists",
PendingPasswordChange = "pendingPasswordChange",
LoginIdDoesNotExist = "loginIdDoesNotExist",
PendingRegistration = "pendingRegistration",
PendingVerification = "pendingVerification",
ConflictingAccount = "conflictingAccount",
InvalidParameter = "invalidParameter",
PermissionDenied = "permissionDenied",
ValidationError = "validationError",
SetAccountError = "setAccountError",
UndefinedError = "undefinedError",
JsonParseError = "jsonParseError",
EmptyResponse = "emptyResponse",
UserCancelled = "userCancelled",
NetworkError = "networkError",
SendApiError = "sendApiError"
}
export interface GigyaSdkApiResponseType {
statusReason: string;
statusCode: number;
errorCode: number;
callId: string;
time: Date;
}
export interface GigyaSdkValidationErrorType {
errorCode: number;
fieldName: 'username' | 'password' | 'secretQuestion' | 'secretAnswer' | 'email';
message: string;
}
export interface GigyaSdkLoginErrorPayloadAccountInfoType extends GigyaSdkApiResponseType {
UID: string;
UIDSig: string;
UIDSignature: string;
signatureTimestamp: string;
isSiteUser: boolean;
isConnected: boolean;
isTempUser: boolean;
isLoggedIn: boolean;
loginProvider: string;
loginProviderUID: string;
isSiteUID: boolean;
identities: Record<string, unknown>[];
nickname: string;
photoURL: string;
thumbnailURL: string;
firstName: string;
lastName: string;
gender: string;
email: string;
capabilities: string;
providers: string;
oldestDataUpdatedTimestamp: number;
oldestDataAge: number;
timestamp: string;
}
export interface GigyaSdkLoginErrorPayloadType extends GigyaSdkApiResponseType {
errorCode: GigyaSdkErrorCodes;
errorDetails: string;
errorMessage: string;
apiVersion: number;
newUser: boolean;
accountInfo: GigyaSdkLoginErrorPayloadAccountInfoType;
id_token: string;
regToken: string;
loginID?: string;
loginProviders?: ('apple' | 'facebook' | 'site')[];
validationErrors?: GigyaSdkValidationErrorType[];
}
export interface GigyaSdkErrorType {
payload: GigyaSdkLoginErrorPayloadType | null;
type: GigyaSdkErrors;
code?: string;
name?: string;
message?: string;
stack?: string;
}
export interface GigyaConsentSchemaType {
key: string;
format: string;
writeAccess: string;
legalStatements: Record<string, {
documentUrl: string;
purpose: string;
}>;
customData: unknown[];
minDocVersion: number;
currentDocVersion: number;
type: string;
required: boolean;
}
export interface GigyaSdkProfileType {
firstName: string;
lastName: string;
email: string;
nickName?: string;
address?: string;
age?: number;
bio?: string;
birthDay?: number;
birthMonth?: number;
birthYear?: number;
capabilities?: string;
certifications?: unknown;
city?: string;
country?: string;
education?: unknown;
educationLevel?: string;
favorites?: unknown;
followersCount?: number;
followingCount?: number;
gender?: string;
hometown?: string;
honors?: string;
identities?: unknown;
industry?: string;
interestedIn?: string;
interests?: string;
isConnected?: boolean;
iRank?: number;
isSiteUID?: boolean;
isSiteUser?: boolean;
languages?: string;
likes?: unknown;
locale?: string;
name?: string;
oldestDataAge?: number;
oldestDataUpdatedTimestamp?: number;
patents?: unknown;
phones?: unknown;
photoURL?: string;
providers?: string;
publications?: unknown;
relationshipStatus?: string;
religion?: string;
samlData?: unknown;
skills?: unknown;
specialities?: string;
state?: string;
timezone?: string;
thumbnailURL?: string;
username?: string;
isVerified?: boolean;
verified?: string;
verifiedTimestamp?: number;
work?: unknown;
zip?: string;
}
export interface GigyaSdkLoginType {
loginProvider: 'apple' | 'facebook' | 'site';
lastLogin: Date;
profile: GigyaSdkProfileType;
lastUpdatedTimestamp: number;
registeredTimestamp: number;
socialProviders: string;
lastLoginTimestamp: number;
isActive: boolean;
isVerified: boolean;
UID: string;
registered: string;
UIDSignature: string;
verified: Date;
oldestDataUpdated: Date;
signatureTimestamp: string;
oldestDataUpdatedTimestamp: number;
apiVersion: number;
lastUpdated: Date;
verifiedTimestamp: number;
isRegistered: boolean;
createdTimestamp: number;
created: Date;
}
export interface GigyaSdkAccountInfoType extends GigyaSdkLoginType {
lastLoginLocation?: {
country: string;
coordinates: {
lat: number;
lon: number;
};
};
preferences?: unknown;
data?: unknown;
identities: Record<string, unknown>[];
subscriptions?: unknown;
emails?: {
verified: string[];
unverified: string[];
};
loginIDs?: {
username: string;
emails: string[];
unverifiedEmails: string[];
};
isLockedOut?: boolean;
id_token?: string;
}
export interface GigyaSdkRegisteredAccountType extends GigyaSdkAccountInfoType {
sessionInfo: {
sessionToken: string;
sessionSecret: string;
};
}
export interface GigyaSdkConflictingAccountType {
loginID: string;
loginProviders: ('apple' | 'facebook' | 'site')[];
}