Accounts and addresses SDK reference

Sign-in, account state, address forms and account editor attributes.

Import these public values from @upstorr/theme-sdk/v1. Do not import their internal source files.

createThemeAccountAddressFormView

createThemeAccountAddressFormView(input?: { defaultCountryCode?: string | null; }): ThemeAccountAddressFormView

fetchThemeAccountAddresses

fetchThemeAccountAddresses(): Promise<ThemeAccountAddressResponse>

getThemeAccountActionProps

getThemeAccountActionProps(action: ThemeAccountAction): { readonly type: "submit" | "button"; readonly 'data-upstorr-account-action': ThemeAccountAction; }

getThemeAccountAddressCloseProps

getThemeAccountAddressCloseProps(): { readonly type: "button"; readonly 'data-upstorr-account-address-close': "true"; }

getThemeAccountAddressCountryProps

getThemeAccountAddressCountryProps(subdivisionOptionsByCountry?: string | Record<string, unknown>): { readonly 'data-upstorr-account-address-subdivisions'?: string | undefined; readonly 'data-upstorr-account-address-country': "true"; }

getThemeAccountAddressDialogProps

getThemeAccountAddressDialogProps(): { readonly 'data-upstorr-account-address-dialog': "true"; }

getThemeAccountAddressesProps

getThemeAccountAddressesProps(): { readonly 'data-upstorr-account-addresses': "true"; }

getThemeAccountAddressFormProps

getThemeAccountAddressFormProps(): { readonly 'data-upstorr-account-address-form': "true"; }

getThemeAccountAddressListProps

getThemeAccountAddressListProps(): { readonly 'data-upstorr-account-address-list': "true"; }

getThemeAccountAddressOpenProps

getThemeAccountAddressOpenProps(): { readonly type: "button"; readonly 'data-upstorr-account-address-open': "true"; }

getThemeAccountAddressSaveProps

getThemeAccountAddressSaveProps(): { readonly type: "button"; readonly 'data-upstorr-account-address-save': "true"; }

getThemeAccountAddressStateInputProps

getThemeAccountAddressStateInputProps(): { readonly 'data-upstorr-account-address-state-input': "true"; }

getThemeAccountAddressStateSelectProps

getThemeAccountAddressStateSelectProps(): { readonly 'data-upstorr-account-address-state-select': "true"; }

getThemeAccountAuthFormProps

getThemeAccountAuthFormProps(state: ThemeAccountStep): { readonly 'data-upstorr-account-auth-form': "true"; readonly 'data-account-state': ThemeAccountStep; }

getThemeAccountCountryOptions

getThemeAccountCountryOptions(): ThemeAccountAddressCountryOption[]

getThemeAccountFieldInputProps

getThemeAccountFieldInputProps(purpose: ThemeAccountFieldPurpose): { readonly name: "email"; readonly type: "email"; readonly inputMode: "email"; readonly autoComplete: "email"; readonly placeholder: "you@example.com"; readonly required: true; readonly maxLength: 254; readonly pattern: undefined; readonly 'data-upstorr-account-field': "email"; } | { readonly name: "code"; readonly type: "text"; readonly inputMode: "numeric"; readonly autoComplete: "one-time-code"; readonly placeholder: "000000"; readonly required: true; readonly maxLength: 6; readonly pattern: "[0-9]{6}"; readonly 'data-upstorr-account-field': "otp"; } | { readonly name: "name"; readonly type: "text"; readonly inputMode: undefined; readonly autoComplete: "name"; readonly placeholder: "Your name"; readonly required: false; readonly maxLength: 120; readonly pattern: undefined; readonly 'data-upstorr-account-field': "name"; }

getThemeAccountFieldLabel

getThemeAccountFieldLabel(purpose: ThemeAccountFieldPurpose): "Email" | "Verification code" | "Name"

getThemeAccountFieldProps

getThemeAccountFieldProps(purpose: ThemeAccountFieldPurpose): { readonly label: "Email" | "Verification code" | "Name"; readonly input: { readonly name: "email"; readonly type: "email"; readonly inputMode: "email"; readonly autoComplete: "email"; readonly placeholder: "you@example.com"; readonly required: true; readonly maxLength: 254; readonly pattern: undefined; readonly 'data-upstorr-account-field': "email"; } | { readonly name: "code"; readonly type: "text"; readonly inputMode: "numeric"; readonly autoComplete: "one-time-code"; readonly placeholder: "000000"; readonly required: true; readonly maxLength: 6; readonly pattern: "[0-9]{6}"; readonly 'data-upstorr-account-field': "otp"; } | { readonly name: "name"; readonly type: "text"; readonly inputMode: undefined; readonly autoComplete: "name"; readonly placeholder: "Your name"; readonly required: false; readonly maxLength: 120; readonly pattern: undefined; readonly 'data-upstorr-account-field': "name"; }; }

getThemeAccountSectionProps

getThemeAccountSectionProps(): { readonly 'data-upstorr-account-section': "true"; }

getThemeAccountStepProps

getThemeAccountStepProps(step: ThemeAccountStep, position?: string): { readonly 'data-account-step-position'?: string | undefined; readonly 'data-upstorr-account-step': ThemeAccountStep; }

getThemeAccountSubdivisionOptions

getThemeAccountSubdivisionOptions(countryCode: string): string[]

getThemeAccountSubdivisionOptionsByCountry

getThemeAccountSubdivisionOptionsByCountry(): Record<string, string[]>

getThemeAccountTitleProps

getThemeAccountTitleProps(): { readonly 'data-upstorr-account-title': "true"; }

logoutThemeAccount

logoutThemeAccount(): Promise<ThemeAccountAuthResponse>

readThemeAccountAddresses

readThemeAccountAddresses<TAddress>(value: unknown): TAddress[]

readThemeAccountResource

readThemeAccountResource(value: unknown): Record<string, unknown> | null

readThemeAccountText

readThemeAccountText(value: unknown, fallback: string): string

saveThemeAccountAddress

saveThemeAccountAddress(input: ThemeAccountAddressInput): Promise<ThemeAccountAddressResponse>

sendThemeAccountCode

sendThemeAccountCode(input: ThemeAccountSendCodeInput): Promise<ThemeAccountAuthResponse>

ThemeAccountAddressCountryOption

type ThemeAccountAddressCountryOption = {
    code: string;
    name: string;
};

ThemeAccountAddressFormView

type ThemeAccountAddressFormView = {
    defaultCountryCode: string;
    countryOptions: ThemeAccountAddressCountryOption[];
    defaultStateOptions: string[];
    subdivisionOptionsByCountry: Record<string, string[]>;
    labels: {
        addressesTitle: string;
        addAddress: string;
        savedAddress: string;
        defaultAddress: string;
        emptyAddresses: string;
        country: string;
        firstName: string;
        lastName: string;
        addressLine1: string;
        addressLine2: string;
        city: string;
        state: string;
        statePlaceholder: string;
        postalCode: string;
        defaultCheckbox: string;
        cancel: string;
        save: string;
        closeAddressForm: string;
    };
};

verifyThemeAccountCode

verifyThemeAccountCode(input: ThemeAccountVerifyCodeInput): Promise<ThemeAccountAuthResponse>