UNPKG

@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
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; }>;