This PR adds an ecommerce plugin package with both a Payload plugin and React UI utilities for the frontend. It also adds a new ecommerce template and new ecommerce test suite. It also makes a change to the `cpa` package to accept a `--version` flag to install a specific version of Payload defaulting to the latest.
559 lines
13 KiB
TypeScript
559 lines
13 KiB
TypeScript
/* tslint:disable */
|
|
/* eslint-disable */
|
|
/**
|
|
* This file was automatically generated by Payload.
|
|
* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
|
|
* and re-run `payload generate:types` to regenerate this file.
|
|
*/
|
|
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "OrderStatus".
|
|
*/
|
|
export type OrderStatus = ('processing' | 'completed' | 'cancelled' | 'refunded') | null;
|
|
/**
|
|
* Supported timezones in IANA format.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "supportedTimezones".
|
|
*/
|
|
export type SupportedTimezones =
|
|
| 'Pacific/Midway'
|
|
| 'Pacific/Niue'
|
|
| 'Pacific/Honolulu'
|
|
| 'Pacific/Rarotonga'
|
|
| 'America/Anchorage'
|
|
| 'Pacific/Gambier'
|
|
| 'America/Los_Angeles'
|
|
| 'America/Tijuana'
|
|
| 'America/Denver'
|
|
| 'America/Phoenix'
|
|
| 'America/Chicago'
|
|
| 'America/Guatemala'
|
|
| 'America/New_York'
|
|
| 'America/Bogota'
|
|
| 'America/Caracas'
|
|
| 'America/Santiago'
|
|
| 'America/Buenos_Aires'
|
|
| 'America/Sao_Paulo'
|
|
| 'Atlantic/South_Georgia'
|
|
| 'Atlantic/Azores'
|
|
| 'Atlantic/Cape_Verde'
|
|
| 'Europe/London'
|
|
| 'Europe/Berlin'
|
|
| 'Africa/Lagos'
|
|
| 'Europe/Athens'
|
|
| 'Africa/Cairo'
|
|
| 'Europe/Moscow'
|
|
| 'Asia/Riyadh'
|
|
| 'Asia/Dubai'
|
|
| 'Asia/Baku'
|
|
| 'Asia/Karachi'
|
|
| 'Asia/Tashkent'
|
|
| 'Asia/Calcutta'
|
|
| 'Asia/Dhaka'
|
|
| 'Asia/Almaty'
|
|
| 'Asia/Jakarta'
|
|
| 'Asia/Bangkok'
|
|
| 'Asia/Shanghai'
|
|
| 'Asia/Singapore'
|
|
| 'Asia/Tokyo'
|
|
| 'Asia/Seoul'
|
|
| 'Australia/Brisbane'
|
|
| 'Australia/Sydney'
|
|
| 'Pacific/Guam'
|
|
| 'Pacific/Noumea'
|
|
| 'Pacific/Auckland'
|
|
| 'Pacific/Fiji';
|
|
|
|
export interface Config {
|
|
auth: {
|
|
users: UserAuthOperations;
|
|
};
|
|
blocks: {};
|
|
collections: {
|
|
users: User;
|
|
media: Media;
|
|
variants: Variant;
|
|
variantTypes: VariantType;
|
|
variantOptions: VariantOption;
|
|
products: Product;
|
|
orders: Order;
|
|
transactions: Transaction;
|
|
'payload-locked-documents': PayloadLockedDocument;
|
|
'payload-preferences': PayloadPreference;
|
|
'payload-migrations': PayloadMigration;
|
|
};
|
|
collectionsJoins: {
|
|
variantTypes: {
|
|
options: 'variantOptions';
|
|
};
|
|
products: {
|
|
variants: 'variants';
|
|
};
|
|
};
|
|
collectionsSelect: {
|
|
users: UsersSelect<false> | UsersSelect<true>;
|
|
media: MediaSelect<false> | MediaSelect<true>;
|
|
variants: VariantsSelect<false> | VariantsSelect<true>;
|
|
variantTypes: VariantTypesSelect<false> | VariantTypesSelect<true>;
|
|
variantOptions: VariantOptionsSelect<false> | VariantOptionsSelect<true>;
|
|
products: ProductsSelect<false> | ProductsSelect<true>;
|
|
orders: OrdersSelect<false> | OrdersSelect<true>;
|
|
transactions: TransactionsSelect<false> | TransactionsSelect<true>;
|
|
'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
|
|
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
|
|
'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
|
|
};
|
|
db: {
|
|
defaultIDType: string;
|
|
};
|
|
globals: {};
|
|
globalsSelect: {};
|
|
locale: null;
|
|
user: User & {
|
|
collection: 'users';
|
|
};
|
|
jobs: {
|
|
tasks: unknown;
|
|
workflows: unknown;
|
|
};
|
|
}
|
|
export interface UserAuthOperations {
|
|
forgotPassword: {
|
|
email: string;
|
|
password: string;
|
|
};
|
|
login: {
|
|
email: string;
|
|
password: string;
|
|
};
|
|
registerFirstUser: {
|
|
email: string;
|
|
password: string;
|
|
};
|
|
unlock: {
|
|
email: string;
|
|
password: string;
|
|
};
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "users".
|
|
*/
|
|
export interface User {
|
|
id: string;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
email: string;
|
|
resetPasswordToken?: string | null;
|
|
resetPasswordExpiration?: string | null;
|
|
salt?: string | null;
|
|
hash?: string | null;
|
|
loginAttempts?: number | null;
|
|
lockUntil?: string | null;
|
|
password?: string | null;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "media".
|
|
*/
|
|
export interface Media {
|
|
id: string;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
url?: string | null;
|
|
thumbnailURL?: string | null;
|
|
filename?: string | null;
|
|
mimeType?: string | null;
|
|
filesize?: number | null;
|
|
width?: number | null;
|
|
height?: number | null;
|
|
focalX?: number | null;
|
|
focalY?: number | null;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "variants".
|
|
*/
|
|
export interface Variant {
|
|
id: string;
|
|
/**
|
|
* Used for administrative purposes, not shown to customers. This is populated by default.
|
|
*/
|
|
title?: string | null;
|
|
/**
|
|
* this should not be editable, or at least, should be able to be pre-filled via default
|
|
*/
|
|
product: string | Product;
|
|
options: (string | VariantOption)[];
|
|
inventory: number;
|
|
priceInUSDEnabled?: boolean | null;
|
|
priceInUSD?: number | null;
|
|
priceInJPYEnabled?: boolean | null;
|
|
priceInJPY?: number | null;
|
|
priceInEUREnabled?: boolean | null;
|
|
priceInEUR?: number | null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "products".
|
|
*/
|
|
export interface Product {
|
|
id: string;
|
|
name?: string | null;
|
|
enableVariants?: boolean | null;
|
|
variantTypes?: (string | VariantType)[] | null;
|
|
variants?: {
|
|
docs?: (string | Variant)[];
|
|
hasNextPage?: boolean;
|
|
totalDocs?: number;
|
|
};
|
|
priceInUSDEnabled?: boolean | null;
|
|
priceInUSD?: number | null;
|
|
priceInJPYEnabled?: boolean | null;
|
|
priceInJPY?: number | null;
|
|
priceInEUREnabled?: boolean | null;
|
|
priceInEUR?: number | null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "variantTypes".
|
|
*/
|
|
export interface VariantType {
|
|
id: string;
|
|
label: string;
|
|
name: string;
|
|
options?: {
|
|
docs?: (string | VariantOption)[];
|
|
hasNextPage?: boolean;
|
|
totalDocs?: number;
|
|
};
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "variantOptions".
|
|
*/
|
|
export interface VariantOption {
|
|
id: string;
|
|
variantType: string | VariantType;
|
|
label: string;
|
|
/**
|
|
* should be defaulted or dynamic based on label
|
|
*/
|
|
value: string;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "orders".
|
|
*/
|
|
export interface Order {
|
|
id: string;
|
|
customer?: (string | null) | User;
|
|
customerEmail?: string | null;
|
|
transactions?: (string | Transaction)[] | null;
|
|
status?: OrderStatus;
|
|
amount?: number | null;
|
|
currency?: ('USD' | 'JPY' | 'EUR') | null;
|
|
cart?:
|
|
| {
|
|
product?: (string | null) | Product;
|
|
variant?: (string | null) | Variant;
|
|
quantity: number;
|
|
amount?: number | null;
|
|
currency?: ('USD' | 'JPY' | 'EUR') | null;
|
|
id?: string | null;
|
|
}[]
|
|
| null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "transactions".
|
|
*/
|
|
export interface Transaction {
|
|
id: string;
|
|
customer?: (string | null) | User;
|
|
customerEmail?: string | null;
|
|
order?: (string | null) | Order;
|
|
status: 'pending' | 'succeeded' | 'failed' | 'cancelled' | 'expired' | 'refunded';
|
|
paymentMethod?: 'stripe' | null;
|
|
stripe?: {
|
|
customerID?: string | null;
|
|
paymentIntentID?: string | null;
|
|
};
|
|
currency?: ('USD' | 'JPY' | 'EUR') | null;
|
|
amount?: number | null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "payload-locked-documents".
|
|
*/
|
|
export interface PayloadLockedDocument {
|
|
id: string;
|
|
document?:
|
|
| ({
|
|
relationTo: 'users';
|
|
value: string | User;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'media';
|
|
value: string | Media;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'variants';
|
|
value: string | Variant;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'variantTypes';
|
|
value: string | VariantType;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'variantOptions';
|
|
value: string | VariantOption;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'products';
|
|
value: string | Product;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'orders';
|
|
value: string | Order;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'transactions';
|
|
value: string | Transaction;
|
|
} | null);
|
|
globalSlug?: string | null;
|
|
user: {
|
|
relationTo: 'users';
|
|
value: string | User;
|
|
};
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "payload-preferences".
|
|
*/
|
|
export interface PayloadPreference {
|
|
id: string;
|
|
user: {
|
|
relationTo: 'users';
|
|
value: string | User;
|
|
};
|
|
key?: string | null;
|
|
value?:
|
|
| {
|
|
[k: string]: unknown;
|
|
}
|
|
| unknown[]
|
|
| string
|
|
| number
|
|
| boolean
|
|
| null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "payload-migrations".
|
|
*/
|
|
export interface PayloadMigration {
|
|
id: string;
|
|
name?: string | null;
|
|
batch?: number | null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "users_select".
|
|
*/
|
|
export interface UsersSelect<T extends boolean = true> {
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
email?: T;
|
|
resetPasswordToken?: T;
|
|
resetPasswordExpiration?: T;
|
|
salt?: T;
|
|
hash?: T;
|
|
loginAttempts?: T;
|
|
lockUntil?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "media_select".
|
|
*/
|
|
export interface MediaSelect<T extends boolean = true> {
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
url?: T;
|
|
thumbnailURL?: T;
|
|
filename?: T;
|
|
mimeType?: T;
|
|
filesize?: T;
|
|
width?: T;
|
|
height?: T;
|
|
focalX?: T;
|
|
focalY?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "variants_select".
|
|
*/
|
|
export interface VariantsSelect<T extends boolean = true> {
|
|
title?: T;
|
|
product?: T;
|
|
options?: T;
|
|
inventory?: T;
|
|
priceInUSDEnabled?: T;
|
|
priceInUSD?: T;
|
|
priceInJPYEnabled?: T;
|
|
priceInJPY?: T;
|
|
priceInEUREnabled?: T;
|
|
priceInEUR?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "variantTypes_select".
|
|
*/
|
|
export interface VariantTypesSelect<T extends boolean = true> {
|
|
label?: T;
|
|
name?: T;
|
|
options?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "variantOptions_select".
|
|
*/
|
|
export interface VariantOptionsSelect<T extends boolean = true> {
|
|
variantType?: T;
|
|
label?: T;
|
|
value?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "products_select".
|
|
*/
|
|
export interface ProductsSelect<T extends boolean = true> {
|
|
name?: T;
|
|
enableVariants?: T;
|
|
variantTypes?: T;
|
|
variants?: T;
|
|
priceInUSDEnabled?: T;
|
|
priceInUSD?: T;
|
|
priceInJPYEnabled?: T;
|
|
priceInJPY?: T;
|
|
priceInEUREnabled?: T;
|
|
priceInEUR?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "orders_select".
|
|
*/
|
|
export interface OrdersSelect<T extends boolean = true> {
|
|
customer?: T;
|
|
customerEmail?: T;
|
|
transactions?: T;
|
|
status?: T;
|
|
amount?: T;
|
|
currency?: T;
|
|
cart?:
|
|
| T
|
|
| {
|
|
product?: T;
|
|
variant?: T;
|
|
quantity?: T;
|
|
amount?: T;
|
|
currency?: T;
|
|
id?: T;
|
|
};
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "transactions_select".
|
|
*/
|
|
export interface TransactionsSelect<T extends boolean = true> {
|
|
customer?: T;
|
|
customerEmail?: T;
|
|
order?: T;
|
|
status?: T;
|
|
paymentMethod?: T;
|
|
stripe?:
|
|
| T
|
|
| {
|
|
customerID?: T;
|
|
paymentIntentID?: T;
|
|
};
|
|
currency?: T;
|
|
amount?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "payload-locked-documents_select".
|
|
*/
|
|
export interface PayloadLockedDocumentsSelect<T extends boolean = true> {
|
|
document?: T;
|
|
globalSlug?: T;
|
|
user?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "payload-preferences_select".
|
|
*/
|
|
export interface PayloadPreferencesSelect<T extends boolean = true> {
|
|
user?: T;
|
|
key?: T;
|
|
value?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "payload-migrations_select".
|
|
*/
|
|
export interface PayloadMigrationsSelect<T extends boolean = true> {
|
|
name?: T;
|
|
batch?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "auth".
|
|
*/
|
|
export interface Auth {
|
|
[k: string]: unknown;
|
|
}
|
|
|
|
|
|
declare module 'payload' {
|
|
// @ts-ignore
|
|
export interface GeneratedTypes extends Config {}
|
|
} |