@spree/storefront-api-v2-sdk
Version:
Node module to easily integrate your JavaScript or TypeScript application with Spree Storefront API V2. You can create an entirely custom Storefront in JS/TS with this package including one page checkout, Single Page Apps, PWAs and so on.
170 lines (169 loc) • 4.74 kB
TypeScript
import type { IAddress } from './attributes/Address';
import type { JsonApiDocument, JsonApiListResponse, JsonApiSingleResponse } from '@spree/core-api-v2-sdk';
import type { IQuery } from '@spree/core-api-v2-sdk';
import type { IRelationships } from '@spree/core-api-v2-sdk';
import type { ResultResponse } from '@spree/core-api-v2-sdk';
import type { WithCommonOptions } from '@spree/core-api-v2-sdk';
export interface AccountAttr extends JsonApiDocument {
data: {
id: string;
type: string;
attributes: {
email: string;
store_credits: number;
completed_orders: number;
};
relationships: IRelationships;
};
}
export interface IAccount extends JsonApiSingleResponse {
data: AccountAttr;
}
export interface IAccountResult extends ResultResponse<IAccount> {
}
export interface IAccountConfirmation {
data: {
state: string;
};
}
export interface IAccountConfirmationResult extends ResultResponse<IAccountConfirmation> {
}
/**
* @deprecated Use {@link ForgotPasswordOptions} instead.
*/
export interface ForgotPasswordParams extends IQuery {
user: {
email: string;
};
}
/**
* @deprecated Use {@link ResetPasswordOptions} instead.
*/
export interface ResetPasswordParams extends IQuery {
user: {
password: string;
password_confirmation: string;
};
}
/**
* @deprecated Use {@link CreateAddressOptions} instead.
*/
export interface AccountAddressParams extends IQuery {
address: IAddress;
}
export interface AccountAddressAttr extends JsonApiDocument {
attributes: IAddress;
}
export interface AccountAddressResponse extends JsonApiSingleResponse {
data: AccountAddressAttr;
}
export interface AccountAddressesResponse extends JsonApiListResponse {
data: AccountAddressAttr[];
}
export interface AccountAddressResult extends ResultResponse<AccountAddressResponse> {
}
export interface AccountAddressesResult extends ResultResponse<AccountAddressesResponse> {
}
export type AccountInfoOptions = WithCommonOptions<{
suggestToken: true;
suggestQuery: true;
}>;
export type CreditCardsListOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
suggestQuery: true;
}>;
export type DefaultCreditCardOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
suggestQuery: true;
}>;
export type RemoveCreditCardOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
suggestQuery: true;
}, {
id: string;
}>;
export type CompletedOrdersListOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
suggestQuery: true;
}>;
export type CompletedOrderOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
suggestQuery: true;
}, {
order_number: string;
}>;
export type CreateOptions = WithCommonOptions<null, {
user: {
email: string;
password: string;
password_confirmation: string;
first_name?: string;
last_name?: string;
public_metadata?: {
[key: string]: string;
};
private_metadata?: {
[key: string]: string;
};
};
}>;
export type ConfirmOptions = WithCommonOptions<null, {
confirmation_token: string;
}>;
export type ForgotPasswordOptions = WithCommonOptions<null, ForgotPasswordParams>;
export type ResetPasswordOptions = WithCommonOptions<null, ResetPasswordParams & {
reset_password_token: string;
}>;
export type UpdateOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
}, {
user: {
email: string;
password?: string;
password_confirmation?: string;
first_name?: string;
last_name?: string;
bill_address_id?: string;
ship_address_id?: string;
public_metadata?: {
[key: string]: string;
};
private_metadata?: {
[key: string]: string;
};
};
}>;
export type AddressesListOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
}>;
export type ShowAddressOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
suggestQuery: true;
}, {
id: string;
}>;
export type CreateAddressOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
suggestQuery: true;
}, AccountAddressParams>;
export type RemoveAddressOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
}, {
id: string;
}>;
export type UpdateAddressOptions = WithCommonOptions<{
suggestToken: true;
onlyAccountToken: true;
}, AccountAddressParams & {
id: string;
}>;