Repository URL to install this package:
|
Version:
0.0.15 ▾
|
import { UpdatePasswordParams, RegistrationResponse, SecurityVerificationDetails, UserResponse, UpdateProfileInput, UpdateSecurityInput, ResetByEmailInput, ValidateByEmailInput, UserActivationInput, ResetBySecurityQuestions as ResetBySecurityQuestionsInput, UserLoginInput } from '@skava/graphql-bindings';
import { ObservableContainer } from '@skava/packages/libraries/observable-container';
import { AccountRegisterInput } from './typings';
import { sessionApis } from './container.apis';
import { checkIsSessionExpired, mapCookiesOnResponse, checkSessionExpiredOnMyAccount } from './deps';
declare class SessionContainer extends ObservableContainer {
static debugName: string;
navigateBackTo: string;
readonly guestUserCookie: string | undefined;
readonly hasGuestUserCookie: boolean;
readonly hasOrchestrationGuestUserCookie: boolean;
/**
* @@packages @james may want to change this flow because session should not import user?
*/
readonly isGuestUser: boolean;
readonly isOrchestrationGuestUser: boolean;
readonly isRegisteredUser: boolean;
readonly hasUserCookie: boolean;
readonly userCookie: string | undefined;
readonly userName: string;
readonly isBuyerAdminUser: boolean;
readonly isBuyerUser: boolean;
registerUser: (data: RegistrationResponse, securityParams: SecurityVerificationDetails) => Promise<void>;
getAllListAPI: () => Promise<void>;
/**
* @todo @fixme this is to be done on graphql side!!!
*/
adminRegisterAccount: (data: AccountRegisterInput) => Promise<void>;
updateProfile: (profileData: UpdateProfileInput) => Promise<void | import("../../../../typings").RecursiveRequired<import("@skava/graphql-bindings").AccountRegisterResponse>>;
updateSecurity: (data: UpdateSecurityInput) => Promise<void | import("../../../../typings").RecursiveRequired<RegistrationResponse>>;
getSecurityQuestions: (data: UpdateSecurityInput) => Promise<void | import("../../../../typings").RecursiveRequired<import("@skava/graphql-bindings").GetSecurityQuestionResponse>>;
resetPasswordThroughSms: (data: UpdateSecurityInput) => Promise<void | import("../../../../typings").RecursiveRequired<import("@skava/graphql-bindings").ResetPasswordResponse>>;
resetPasswordThroughEmail: (data: ResetByEmailInput) => Promise<void | import("../../../../typings").RecursiveRequired<import("@skava/graphql-bindings").ResetPasswordResponse>>;
validateByEmail: (data: ValidateByEmailInput) => Promise<void | import("../../../../typings").RecursiveRequired<import("@skava/graphql-bindings").ResetPasswordResponse>>;
userActivation: (data: UserActivationInput) => Promise<void | import("../../../../typings").RecursiveRequired<import("@skava/graphql-bindings").UserActivationResponse>>;
resetPasswordThroughSecurityQuestions: (data: ResetBySecurityQuestionsInput) => Promise<void | import("../../../../typings").RecursiveRequired<import("@skava/graphql-bindings").ResetBySecurityQuestionsResponse>>;
updatePassword: (password: UpdatePasswordParams) => Promise<void | import("../../../../typings").RecursiveRequired<import("@skava/graphql-bindings").UpdatePasswordResponse>>;
registerGuestUser: () => Promise<false | void>;
/**
* @todo show toast
*/
logOut: () => Promise<void>;
handleLoginResponse: (response: UserResponse) => boolean;
handleRegisterResponse: (response: UserResponse) => UserResponse;
logIn: (data: UserLoginInput) => Promise<any>;
loginWithFacebook: (data: UserLoginInput) => Promise<void>;
loginWithTwitter: (data: UserLoginInput) => Promise<void>;
loginWithGoogle: (data: UserLoginInput) => Promise<void>;
getTokenAuth: () => Promise<import("../../../../typings").RecursiveRequired<import("@skava/graphql-bindings").TwitterAuthTokenResponse>>;
fetchProfile: () => Promise<void | UserResponse>;
/**
* @desc much better perf to bind early
* @see https://mobx.js.org/best/react-performance.html#bind-functions-early
*/
handleError(error: Error): void;
/**
* @desc this is in parallel, to not block requests
*/
afterRegisterUser: () => Promise<void>;
navigateToLoginSuccess(isFromTwitter?: boolean): void;
/**
* moved out of flow to avoid guarenteed deopt
*/
_flow: () => Promise<void>;
/**
* @see https://github.com/petkaantonov/bluebird/wiki/Optimization-killers
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch
* @see https://github.com/aretecode/awesome-deopt
* ^ regarding try catch issues
*/
flow: () => Promise<void>;
}
declare const sessionContainer: SessionContainer;
export default sessionContainer;
export { sessionContainer, SessionContainer, sessionApis, mapCookiesOnResponse, checkIsSessionExpired, checkSessionExpiredOnMyAccount, };