Import core types only from commerce

This commit is contained in:
Catalin Pinte 2022-09-19 17:45:52 +03:00
parent 6bdfe56e9f
commit 9136ae21a3
171 changed files with 291 additions and 520 deletions

View File

@ -23,8 +23,8 @@ Demo live at: [demo.vercel.store](https://demo.vercel.store/)
> To run a minimal version of Next.js Commerce you can start with the default local provider `@vercel/commerce-local` that has disabled all features (cart, auth) and use static files for the backend
```bash
pnpm install # run this command in root folder of the mono repo
pnpm dev
pnpm install & pnpm build # run this commands in root folder of the mono repo
pnpm dev # run this commands in the site folder
```
> If you encounter any problems while installing and running for the first time, please see the Troubleshoot section
@ -111,10 +111,11 @@ Our commitment to Open Source can be found [here](https://vercel.com/oss).
1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device.
2. Create a new branch `git checkout -b MY_BRANCH_NAME`
3. Install the dependencies: `pnpm install`
4. Duplicate `site/.env.template` and rename it to `site/.env.local`
5. Add proper store values to `site/.env.local`
6. Run `pnpm dev` to build the packages and watch for code changes
7. Run `pnpm turbo run build` to check the build after your changes
4. Build the packages: `pnpm build`
5. Duplicate `site/.env.template` and rename it to `site/.env.local`
6. Add proper store values to `site/.env.local`
7. Run `cd site` & `pnpm dev` to watch for code changes
8. Run `pnpm turbo run build` to check the build after your changes
## Work in progress
@ -191,7 +192,7 @@ info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this comm
The error usually occurs when running `pnpm dev` inside of the `/site/` folder after installing a fresh repository.
In order to fix this, run `pnpm dev` in the monorepo root folder first.
In order to fix this, run `pnpm build` in the monorepo root folder first.
> Using `pnpm dev` from the root is recommended for developing, which will run watch mode on all packages.

View File

@ -2,7 +2,7 @@
import { normalizeCart } from '../../../lib/normalize'
import { BigcommerceApiError } from '../../utils/errors'
import getCartCookie from '../../utils/get-cart-cookie'
import type { BigcommerceCart } from '../../../types/cart'
import type { BigcommerceCart } from '../../../types'
import type { CartEndpoint } from '.'
// Return current cart info

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import cartEndpoint from '@vercel/commerce/api/endpoints/cart'
import type { CartSchema } from '../../../types/cart'
import type { CartSchema } from '@vercel/commerce/types/cart'
import type { BigcommerceAPI } from '../..'
import getCart from './get-cart'
import addItem from './add-item'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import productsEndpoint from '@vercel/commerce/api/endpoints/catalog/products'
import type { ProductsSchema } from '../../../../types/product'
import type { ProductsSchema } from '@vercel/commerce/types/product'
import type { BigcommerceAPI } from '../../..'
import getProducts from './get-products'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
import type { CheckoutSchema } from '../../../types/checkout'
import type { CheckoutSchema } from '@vercel/commerce/types/checkout'
import type { BigcommerceAPI } from '../..'
import getCheckout from './get-checkout'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import customerEndpoint from '@vercel/commerce/api/endpoints/customer'
import type { CustomerSchema } from '../../../types/customer'
import type { CustomerSchema } from '@vercel/commerce/types/customer'
import type { BigcommerceAPI } from '../..'
import getLoggedInCustomer from './get-logged-in-customer'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import loginEndpoint from '@vercel/commerce/api/endpoints/login'
import type { LoginSchema } from '../../../types/login'
import type { LoginSchema } from '@vercel/commerce/types/login'
import type { BigcommerceAPI } from '../..'
import login from './login'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import logoutEndpoint from '@vercel/commerce/api/endpoints/logout'
import type { LogoutSchema } from '../../../types/logout'
import type { LogoutSchema } from '@vercel/commerce/types/logout'
import type { BigcommerceAPI } from '../..'
import logout from './logout'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import signupEndpoint from '@vercel/commerce/api/endpoints/signup'
import type { SignupSchema } from '../../../types/signup'
import type { SignupSchema } from '@vercel/commerce/types/signup'
import type { BigcommerceAPI } from '../..'
import signup from './signup'

View File

@ -1,4 +1,4 @@
import type { Wishlist } from '../../../types/wishlist'
import type { Wishlist } from '@vercel/commerce/types/wishlist'
import type { WishlistEndpoint } from '.'
import getCustomerId from '../../utils/get-customer-id'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import wishlistEndpoint from '@vercel/commerce/api/endpoints/wishlist'
import type { WishlistSchema } from '../../../types/wishlist'
import type { WishlistSchema } from '@vercel/commerce/types/wishlist'
import type { BigcommerceAPI } from '../..'
import getWishlist from './get-wishlist'
import addItem from './add-item'

View File

@ -1,5 +1,4 @@
import type { Wishlist } from '../../../types/wishlist'
import getCustomerWishlist from '../../operations/get-customer-wishlist'
import type { Wishlist } from '@vercel/commerce/types/wishlist'
import getCustomerId from '../../utils/get-customer-id'
import type { WishlistEndpoint } from '.'

View File

@ -2,7 +2,7 @@ import type {
OperationContext,
OperationOptions,
} from '@vercel/commerce/api/operations'
import type { GetAllPagesOperation } from '../../types/page'
import type { GetAllPagesOperation } from '@vercel/commerce/types/page'
import type { RecursivePartial, RecursiveRequired } from '../utils/types'
import { BigcommerceConfig, Provider } from '..'

View File

@ -3,7 +3,7 @@ import type {
OperationOptions,
} from '@vercel/commerce/api/operations'
import type { GetAllProductPathsQuery } from '../../../schema'
import type { GetAllProductPathsOperation } from '../../types/product'
import type { GetAllProductPathsOperation } from '@vercel/commerce/types/product'
import type { RecursivePartial, RecursiveRequired } from '../utils/types'
import filterEdges from '../utils/filter-edges'
import { BigcommerceConfig, Provider } from '..'

View File

@ -6,7 +6,7 @@ import type {
GetAllProductsQuery,
GetAllProductsQueryVariables,
} from '../../../schema'
import type { GetAllProductsOperation } from '../../types/product'
import type { GetAllProductsOperation } from '@vercel/commerce/types/product'
import type { RecursivePartial, RecursiveRequired } from '../utils/types'
import filterEdges from '../utils/filter-edges'
import setProductLocaleMeta from '../utils/set-product-locale-meta'

View File

@ -5,7 +5,7 @@ import type {
import type {
GetCustomerWishlistOperation,
Wishlist,
} from '../../types/wishlist'
} from '@vercel/commerce/types/wishlist'
import type { RecursivePartial, RecursiveRequired } from '../utils/types'
import { BigcommerceConfig, Provider } from '..'
import getAllProducts, { ProductEdge } from './get-all-products'

View File

@ -2,7 +2,7 @@ import type {
OperationContext,
OperationOptions,
} from '@vercel/commerce/api/operations'
import type { GetPageOperation, Page } from '../../types/page'
import type { GetPageOperation, Page } from '@vercel/commerce/types/page'
import type { RecursivePartial, RecursiveRequired } from '../utils/types'
import type { BigcommerceConfig, Provider } from '..'
import { normalizePage } from '../../lib/normalize'

View File

@ -2,7 +2,7 @@ import type {
OperationContext,
OperationOptions,
} from '@vercel/commerce/api/operations'
import type { GetProductOperation } from '../../types/product'
import type { GetProductOperation } from '@vercel/commerce/types/product'
import type { GetProductQuery, GetProductQueryVariables } from '../../../schema'
import setProductLocaleMeta from '../utils/set-product-locale-meta'
import { productInfoFragment } from '../fragments/product'

View File

@ -2,7 +2,7 @@ import type {
OperationContext,
OperationOptions,
} from '@vercel/commerce/api/operations'
import type { GetSiteInfoOperation } from '../../types/site'
import type { GetSiteInfoOperation } from '@vercel/commerce/types/site'
import type { GetSiteInfoQuery } from '../../../schema'
import filterEdges from '../utils/filter-edges'
import type { BigcommerceConfig, Provider } from '..'

View File

@ -3,7 +3,7 @@ import type {
OperationContext,
OperationOptions,
} from '@vercel/commerce/api/operations'
import type { LoginOperation } from '../../types/login'
import type { LoginOperation } from '@vercel/commerce/types/login'
import type { LoginMutation } from '../../../schema'
import type { RecursivePartial } from '../utils/types'
import concatHeader from '../utils/concat-cookie'

View File

@ -1,5 +1,5 @@
import type { WishlistItemBody } from '../../types/wishlist'
import type { CartItemBody, SelectedOption } from '../../types/cart'
import type { WishlistItemBody } from '@vercel/commerce/types/wishlist'
import type { CartItemBody, SelectedOption } from '@vercel/commerce/types/cart'
type BCWishlistItemBody = {
product_id: number

View File

@ -2,7 +2,7 @@ import { useCallback } from 'react'
import type { MutationHook } from '@vercel/commerce/utils/types'
import { CommerceError } from '@vercel/commerce/utils/errors'
import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
import type { LoginHook } from '../types/login'
import type { LoginHook } from '@vercel/commerce/types/login'
import useCustomer from '../customer/use-customer'
export default useLogin as UseLogin<typeof handler>

View File

@ -1,7 +1,7 @@
import { useCallback } from 'react'
import type { MutationHook } from '@vercel/commerce/utils/types'
import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
import type { LogoutHook } from '../types/logout'
import type { LogoutHook } from '@vercel/commerce/types/logout'
import useCustomer from '../customer/use-customer'
export default useLogout as UseLogout<typeof handler>

View File

@ -1,8 +1,8 @@
import { useCallback } from 'react'
import type { MutationHook } from '@vercel/commerce/utils/types'
import { CommerceError } from '@vercel/commerce/utils/errors'
import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
import type { SignupHook } from '../types/signup'
import useSignup, { type UseSignup } from '@vercel/commerce/auth/use-signup'
import type { SignupHook } from '@vercel/commerce/types/signup'
import useCustomer from '../customer/use-customer'
export default useSignup as UseSignup<typeof handler>

View File

@ -1,8 +1,8 @@
import { SWRHook } from '@vercel/commerce/utils/types'
import type { SWRHook } from '@vercel/commerce/utils/types'
import useCustomer, {
UseCustomer,
type UseCustomer,
} from '@vercel/commerce/customer/use-customer'
import type { CustomerHook } from '../types/customer'
import type { CustomerHook } from '@vercel/commerce/types/customer'
export default useCustomer as UseCustomer<typeof handler>

View File

@ -1,7 +1,8 @@
import type { Product } from '../types/product'
import type { Cart, BigcommerceCart, LineItem } from '../types/cart'
import type { Page } from '../types/page'
import type { BCCategory, BCBrand, Category, Brand } from '../types/site'
import type { Page } from '@vercel/commerce/types/page'
import type { Product } from '@vercel/commerce/types/product'
import type { Cart, LineItem } from '@vercel/commerce/types/cart'
import type { Category, Brand } from '@vercel/commerce/types/site'
import type { BigcommerceCart, BCCategory, BCBrand } from '../types'
import { definitions } from '../api/definitions/store-content'
import update from './immutability'

View File

@ -1,6 +1,6 @@
import { SWRHook } from '@vercel/commerce/utils/types'
import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
import type { SearchProductsHook } from '../types/product'
import type { SearchProductsHook } from '@vercel/commerce/types/product'
export default useSearch as UseSearch<typeof handler>

View File

@ -1,4 +1,12 @@
export * from '@vercel/commerce/types/cart'
import type { GetSiteInfoQuery } from '../schema'
export type BCCategory = NonNullable<
GetSiteInfoQuery['site']['categoryTree']
>[0]
export type BCBrand = NonNullable<
NonNullable<GetSiteInfoQuery['site']['brands']['edges']>[0]
>
// TODO: this type should match:
// https://developer.bigcommerce.com/api-reference/cart-checkout/server-server-cart-api/cart/getacart#responses

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/checkout'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/common'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/customer'

View File

@ -1,25 +0,0 @@
import * as Cart from './cart'
import * as Checkout from './checkout'
import * as Common from './common'
import * as Customer from './customer'
import * as Login from './login'
import * as Logout from './logout'
import * as Page from './page'
import * as Product from './product'
import * as Signup from './signup'
import * as Site from './site'
import * as Wishlist from './wishlist'
export type {
Cart,
Checkout,
Common,
Customer,
Login,
Logout,
Page,
Product,
Signup,
Site,
Wishlist,
}

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/login'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/logout'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/page'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/product'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/signup'

View File

@ -1,11 +0,0 @@
import type { GetSiteInfoQuery } from '../../schema'
export * from '@vercel/commerce/types/site'
export type BCCategory = NonNullable<
GetSiteInfoQuery['site']['categoryTree']
>[0]
export type BCBrand = NonNullable<
NonNullable<GetSiteInfoQuery['site']['brands']['edges']>[0]
>

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/wishlist'

View File

@ -1,8 +1,10 @@
import { useCallback } from 'react'
import type { MutationHook } from '@vercel/commerce/utils/types'
import { CommerceError } from '@vercel/commerce/utils/errors'
import useAddItem, { UseAddItem } from '@vercel/commerce/wishlist/use-add-item'
import type { AddItemHook } from '../types/wishlist'
import useAddItem, {
type UseAddItem,
} from '@vercel/commerce/wishlist/use-add-item'
import type { AddItemHook } from '@vercel/commerce/types/wishlist'
import useCustomer from '../customer/use-customer'
import useWishlist from './use-wishlist'

View File

@ -2,9 +2,9 @@ import { useCallback } from 'react'
import type { MutationHook } from '@vercel/commerce/utils/types'
import { CommerceError } from '@vercel/commerce/utils/errors'
import useRemoveItem, {
UseRemoveItem,
type UseRemoveItem,
} from '@vercel/commerce/wishlist/use-remove-item'
import type { RemoveItemHook } from '../types/wishlist'
import type { RemoveItemHook } from '@vercel/commerce/types/wishlist'
import useCustomer from '../customer/use-customer'
import useWishlist from './use-wishlist'

View File

@ -1,11 +1,11 @@
import { useMemo } from 'react'
import { SWRHook } from '@vercel/commerce/utils/types'
import useWishlist, {
UseWishlist,
type UseWishlist,
} from '@vercel/commerce/wishlist/use-wishlist'
import useCustomer from '../customer/use-customer'
import type { GetWishlistHook } from '../types/wishlist'
import type { GetWishlistHook } from '@vercel/commerce/types/wishlist'
export default useWishlist as UseWishlist<typeof handler>
export const handler: SWRHook<GetWishlistHook> = {

View File

@ -1,4 +1,4 @@
import type { CartSchema } from '../../types/cart'
import type { CartSchema } from '@vercel/commerce/types/cart'
import { CommerceAPIError } from '../utils/errors'
import isAllowedOperation from '../utils/is-allowed-operation'
import type { GetAPISchema } from '..'

View File

@ -1,7 +1,7 @@
import { useHook, useMutationHook } from '../utils/use-hook'
import { mutationFetcher } from '../utils/default-fetcher'
import type { HookFetcherFn, MutationHook } from '../utils/types'
import type { LogoutHook } from '../types/logout'
import type { LogoutHook } from '@vercel/commerce/types/logout'
import type { Provider } from '..'
export type UseLogout<

View File

@ -37,7 +37,7 @@ export type CheckoutBody = {
cartId?: string
/**
* The Card information.
* @see @vercel/commerce/types/customer/card/CardFields
* @see CardFields
*/
card: CardFields
/**

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import checkoutEndpoint from '@vercel/commerce/api/endpoints/checkout'
import type { CheckoutSchema } from '../../../types/checkout'
import type { CheckoutSchema } from '@vercel/commerce/types/checkout'
import type { CommercejsAPI } from '../..'
import submitCheckout from './submit-checkout'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import loginEndpoint from '@vercel/commerce/api/endpoints/login'
import type { LoginSchema } from '../../../types/login'
import type { LoginSchema } from '@vercel/commerce/types/login'
import type { CommercejsAPI } from '../..'
import login from './login'

View File

@ -1,5 +1,5 @@
import type { CommercejsConfig } from '..'
import { GetAllPagesOperation } from '../../types/page'
import { GetAllPagesOperation } from '@vercel/commerce/types/page'
export type Page = { url: string }
export type GetAllPagesResult = { pages: Page[] }

View File

@ -1,9 +1,5 @@
import type { OperationContext } from '@vercel/commerce/api/operations'
import type {
GetAllProductPathsOperation,
CommercejsProduct,
} from '../../types/product'
import type { GetAllProductPathsOperation } from '@vercel/commerce/types/product'
import type { CommercejsConfig, Provider } from '..'
export type GetAllProductPathsResult = {
@ -22,7 +18,7 @@ export default function getAllProductPathsOperation({
const { data } = await sdkFetch('products', 'list')
// Match a path for every product retrieved
const productPaths = data.map(({ permalink }: CommercejsProduct) => ({
const productPaths = data.map(({ permalink }: { permalink: string }) => ({
path: `/${permalink}`,
}))

View File

@ -1,5 +1,5 @@
import type { OperationContext } from '@vercel/commerce/api/operations'
import type { GetAllProductsOperation } from '../../types/product'
import type { GetAllProductsOperation } from '@vercel/commerce/types/product'
import type { CommercejsConfig, Provider } from '../index'
import { normalizeProduct } from '../../utils/normalize-product'

View File

@ -1,4 +1,4 @@
import { GetPageOperation } from '../../types/page'
import { GetPageOperation } from '@vercel/commerce/types/page'
export type Page = any
export type GetPageResult = { page?: Page }

View File

@ -1,5 +1,5 @@
import type { OperationContext } from '@vercel/commerce/api/operations'
import type { GetProductOperation } from '../../types/product'
import type { GetProductOperation } from '@vercel/commerce/types/product'
import type { CommercejsConfig, Provider } from '../index'
import { normalizeProduct } from '../../utils/normalize-product'

View File

@ -1,5 +1,8 @@
import type { OperationContext } from '@vercel/commerce/api/operations'
import type { Category, GetSiteInfoOperation } from '../../types/site'
import type {
Category,
GetSiteInfoOperation,
} from '@vercel/commerce/types/site'
import { normalizeCategory } from '../../utils/normalize-category'
import type { CommercejsConfig, Provider } from '../index'

View File

@ -2,7 +2,7 @@ import type { AddItemHook } from '@vercel/commerce/types/cart'
import type { MutationHook } from '@vercel/commerce/utils/types'
import { useCallback } from 'react'
import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
import type { CommercejsCart } from '../types/cart'
import type { CommercejsCart } from '../types'
import { normalizeCart } from '../utils/normalize-cart'
import useCart from './use-cart'

View File

@ -2,7 +2,7 @@ import { useMemo } from 'react'
import type { GetCartHook } from '@vercel/commerce/types/cart'
import { SWRHook } from '@vercel/commerce/utils/types'
import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
import type { CommercejsCart } from '../types/cart'
import type { CommercejsCart } from '../types'
import { normalizeCart } from '../utils/normalize-cart'
export default useCart as UseCart<typeof handler>

View File

@ -1,8 +1,10 @@
import { useCallback } from 'react'
import type { MutationHook } from '@vercel/commerce/utils/types'
import type { RemoveItemHook } from '@vercel/commerce/types/cart'
import useRemoveItem, { UseRemoveItem } from '@vercel/commerce/cart/use-remove-item'
import type { CommercejsCart } from '../types/cart'
import useRemoveItem, {
UseRemoveItem,
} from '@vercel/commerce/cart/use-remove-item'
import type { CommercejsCart } from '../types'
import { normalizeCart } from '../utils/normalize-cart'
import useCart from './use-cart'

View File

@ -1,4 +1,8 @@
import type { UpdateItemHook, LineItem } from '@vercel/commerce/types/cart'
import type {
UpdateItemHook,
LineItem,
Cart,
} from '@vercel/commerce/types/cart'
import type {
HookFetcherContext,
MutationHookContext,
@ -6,8 +10,10 @@ import type {
import { ValidationError } from '@vercel/commerce/utils/errors'
import debounce from 'lodash.debounce'
import { useCallback } from 'react'
import useUpdateItem, { UseUpdateItem } from '@vercel/commerce/cart/use-update-item'
import type { CommercejsCart } from '../types/cart'
import useUpdateItem, {
UseUpdateItem,
} from '@vercel/commerce/cart/use-update-item'
import type { CommercejsCart } from '../types'
import { normalizeCart } from '../utils/normalize-cart'
import useCart from './use-cart'

View File

@ -5,7 +5,7 @@ import useCustomer, {
UseCustomer,
} from '@vercel/commerce/customer/use-customer'
import { CUSTOMER_COOKIE, API_URL } from '../constants'
import type { CustomerHook } from '../types/customer'
import type { CustomerHook } from '@vercel/commerce/types/customer'
export default useCustomer as UseCustomer<typeof handler>
export const handler: SWRHook<CustomerHook> = {

View File

@ -1,7 +1,7 @@
import { SWRHook } from '@vercel/commerce/utils/types'
import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
import { SearchProductsHook } from '@vercel/commerce/types/product'
import type { CommercejsProduct } from '../types/product'
import type { CommercejsProduct } from '../types'
import { getProductSearchVariables } from '../utils/product-search'
import { normalizeProduct } from '../utils/normalize-product'

View File

@ -0,0 +1,6 @@
export type { Cart as CommercejsCart } from '@chec/commerce.js/types/cart'
export type { LineItem as CommercejsLineItem } from '@chec/commerce.js/types/line-item'
export type { CheckoutCapture as CommercejsCheckoutCapture } from '@chec/commerce.js/types/checkout-capture'
export type { Product as CommercejsProduct } from '@chec/commerce.js/types/product'
export type { Variant as CommercejsVariant } from '@chec/commerce.js/types/variant'
export type { Category as CommercejsCategory } from '@chec/commerce.js/types/category'

View File

@ -1,4 +0,0 @@
export * from '@vercel/commerce/types/cart'
export type { Cart as CommercejsCart } from '@chec/commerce.js/types/cart'
export type { LineItem as CommercejsLineItem } from '@chec/commerce.js/types/line-item'

View File

@ -1,3 +0,0 @@
export * from '@vercel/commerce/types/checkout'
export type { CheckoutCapture as CommercejsCheckoutCapture } from '@chec/commerce.js/types/checkout-capture'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/common'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/customer'

View File

@ -1,25 +0,0 @@
import * as Cart from './cart'
import * as Checkout from './checkout'
import * as Common from './common'
import * as Customer from './customer'
import * as Login from './login'
import * as Logout from './logout'
import * as Page from './page'
import * as Product from './product'
import * as Signup from './signup'
import * as Site from './site'
import * as Wishlist from './wishlist'
export type {
Cart,
Checkout,
Common,
Customer,
Login,
Logout,
Page,
Product,
Signup,
Site,
Wishlist,
}

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/login'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/logout'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/page'

View File

@ -1,4 +0,0 @@
export * from '@vercel/commerce/types/product'
export type { Product as CommercejsProduct } from '@chec/commerce.js/types/product'
export type { Variant as CommercejsVariant } from '@chec/commerce.js/types/variant'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/signup'

View File

@ -1,3 +0,0 @@
export * from '@vercel/commerce/types/site'
export type { Category as CommercejsCategory } from '@chec/commerce.js/types/category'

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/wishlist'

View File

@ -1,9 +1,5 @@
import type {
Cart,
LineItem,
CommercejsCart,
CommercejsLineItem,
} from '../types/cart'
import type { Cart, LineItem } from '@vercel/commerce/types/cart'
import type { CommercejsCart, CommercejsLineItem } from '../types'
type CommercejsLineItemType = CommercejsLineItem & { image: { url: string } }

View File

@ -1,6 +1,6 @@
import type { CardFields } from '@vercel/commerce/types/customer/card'
import type { AddressFields } from '@vercel/commerce/types/customer/address'
import type { CommercejsCheckoutCapture } from '../types/checkout'
import type { CommercejsCheckoutCapture } from '../types'
/**
* Creates a checkout payload suitable for test checkouts.

View File

@ -1,8 +1,5 @@
import type {
Product,
CommercejsProduct,
CommercejsVariant,
} from '../types/product'
import type { Product } from '@vercel/commerce/types/product'
import type { CommercejsProduct, CommercejsVariant } from '../types'
function getOptionsFromVariantGroups(
variantGroups: CommercejsProduct['variant_groups']

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import customerEndpoint from '@vercel/commerce/api/endpoints/customer'
import type { CustomerSchema } from '../../../types/customer'
import type { CustomerSchema } from '@vercel/commerce/types/customer'
import type { KiboCommerceAPI } from '../..'
import getLoggedInCustomer from './customer'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import loginEndpoint from '@vercel/commerce/api/endpoints/login'
import type { LoginSchema } from '../../../types/login'
import type { LoginSchema } from '@vercel/commerce/types/login'
import type { KiboCommerceAPI } from '../..'
import login from './login'
@ -15,6 +15,4 @@ const loginApi = createEndpoint<LoginAPI>({
handlers,
})
export default loginApi;
export default loginApi

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import logoutEndpoint from '@vercel/commerce/api/endpoints/logout'
import type { LogoutSchema } from '../../../types/logout'
import type { LogoutSchema } from '@vercel/commerce/types/logout'
import type { KiboCommerceAPI } from '../..'
import logout from './logout'

View File

@ -1,6 +1,6 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import signupEndpoint from '@vercel/commerce/api/endpoints/signup'
import type { SignupSchema } from '../../../types/signup'
import type { SignupSchema } from '@vercel/commerce/types/signup'
import type { KiboCommerceAPI } from '../..'
import signup from './signup'

View File

@ -2,7 +2,7 @@ import type { OperationContext } from '@vercel/commerce/api/operations'
import type { KiboCommerceConfig, KiboCommerceProvider } from '..'
import { normalizePage } from '../../lib/normalize'
import { getPageQuery } from '../queries/get-page-query'
import type { Page, GetPageOperation } from '../../types/page'
import type { Page, GetPageOperation } from '@vercel/commerce/types/page'
import type { Document } from '../../../schema'
export default function getPageOperation({ commerce }: OperationContext<any>) {

View File

@ -1,9 +1,9 @@
import { MutationHook } from '@vercel/commerce/utils/types'
import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
import type { MutationHook } from '@vercel/commerce/utils/types'
import useLogin, { type UseLogin } from '@vercel/commerce/auth/use-login'
import { useCallback } from 'react'
import { CommerceError } from '@vercel/commerce/utils/errors'
import type { LoginHook } from '../types/login'
import type { LoginHook } from '@vercel/commerce/types/login'
import useCustomer from '../customer/use-customer'
import useCart from '../cart/use-cart'
export default useLogin as UseLogin<typeof handler>

View File

@ -1,7 +1,7 @@
import { useCallback } from 'react'
import type { MutationHook } from '@vercel/commerce/utils/types'
import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
import type { LogoutHook } from '../types/logout'
import type { LogoutHook } from '@vercel/commerce/types/logout'
import useCustomer from '../customer/use-customer'
import useCart from '../cart/use-cart'
@ -12,18 +12,20 @@ export const handler: MutationHook<LogoutHook> = {
url: '/api/logout',
method: 'GET',
},
useHook: ({ fetch }) => () => {
const { mutate } = useCustomer()
const { mutate: mutateCart } = useCart()
useHook:
({ fetch }) =>
() => {
const { mutate } = useCustomer()
const { mutate: mutateCart } = useCart()
return useCallback(
async function logout() {
const data = await fetch()
await mutate(null, false)
await mutateCart(null, false)
return data
},
[fetch, mutate, mutateCart]
)
},
return useCallback(
async function logout() {
const data = await fetch()
await mutate(null, false)
await mutateCart(null, false)
return data
},
[fetch, mutate, mutateCart]
)
},
}

View File

@ -1,8 +1,8 @@
import { useCallback } from 'react'
import type { MutationHook } from '@vercel/commerce/utils/types'
import { CommerceError } from '@vercel/commerce/utils/errors'
import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
import type { SignupHook } from '../types/signup'
import useSignup, { type UseSignup } from '@vercel/commerce/auth/use-signup'
import type { SignupHook } from '@vercel/commerce/types/signup'
import useCustomer from '../customer/use-customer'
export default useSignup as UseSignup<typeof handler>

View File

@ -1,6 +1,8 @@
import { SWRHook } from '@vercel/commerce/utils/types'
import useCustomer, { UseCustomer } from '@vercel/commerce/customer/use-customer'
import type { CustomerHook } from '../types/customer'
import useCustomer, {
type UseCustomer,
} from '@vercel/commerce/customer/use-customer'
import type { CustomerHook } from '@vercel/commerce/types/customer'
export default useCustomer as UseCustomer<typeof handler>
@ -13,12 +15,14 @@ export const handler: SWRHook<CustomerHook> = {
const data = await fetch(options)
return data?.customer ?? null
},
useHook: ({ useData }) => (input) => {
return useData({
swrOptions: {
revalidateOnFocus: false,
...input?.swrOptions,
},
})
},
useHook:
({ useData }) =>
(input) => {
return useData({
swrOptions: {
revalidateOnFocus: false,
...input?.swrOptions,
},
})
},
}

View File

@ -1,27 +0,0 @@
import * as Core from '@vercel/commerce/types/customer'
export type Maybe<T> = T | null
export * from '@vercel/commerce/types/customer'
export type Scalars = {
ID: string
String: string
Boolean: boolean
Int: number
Float: number
/** The `AnyScalar` type allows any scalar value by examining the input and passing the serialize, parseValue, and parseLiteral operations to their respective types. */
AnyScalar: any
/** DateTime custom scalar type */
DateTime: any
/** Object custom scalar type */
Object: any
}
export type Customer = {
id: Scalars['Int'],
firstName?: Maybe<Scalars['String']>,
lastName?: Maybe<Scalars['String']>,
email?: Maybe<Scalars['String']>,
userName?: Maybe<Scalars['String']>,
isAnonymous?: Maybe<Scalars['Boolean']>
}
export type CustomerSchema = Core.CustomerSchema

View File

@ -1,8 +0,0 @@
import * as Core from '@vercel/commerce/types/login'
import type { CustomerUserAuthInfoInput } from '../../schema'
export * from '@vercel/commerce/types/login'
export type LoginOperation = Core.LoginOperation & {
variables: CustomerUserAuthInfoInput
}

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/logout'

View File

@ -1,16 +0,0 @@
export * from '@vercel/commerce/types/page'
export type Maybe<T> = T | null
export type Scalars = {
ID: string
String: string
Boolean: boolean
Int: number
Float: number
/** The `AnyScalar` type allows any scalar value by examining the input and passing the serialize, parseValue, and parseLiteral operations to their respective types. */
AnyScalar: any
/** DateTime custom scalar type */
DateTime: any
/** Object custom scalar type */
Object: any
}

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/signup'

View File

@ -1,6 +1,6 @@
import type { CartEndpoint } from '.'
import type { RawVariant } from '../../../types/product'
import type { OrdercloudLineItem } from '../../../types/cart'
import type { LineItem } from '@vercel/commerce/types/cart'
import { serialize } from 'cookie'
@ -86,7 +86,7 @@ const addItem: CartEndpoint['handlers']['addItem'] = async ({
restBuyerFetch('GET', `/orders/Outgoing/${cartId}`, null, { token }),
restBuyerFetch('GET', `/orders/Outgoing/${cartId}/lineitems`, null, {
token,
}).then((response: { Items: OrdercloudLineItem[] }) => response.Items),
}).then((response: { Items: LineItem[] }) => response.Items),
])
// Format cart

View File

@ -1,4 +1,4 @@
import type { CartSchema } from '../../../types/cart'
import type { CartSchema } from '@vercel/commerce/types/cart'
import type { OrdercloudAPI } from '../..'
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'

View File

@ -1,4 +1,4 @@
import type { CheckoutSchema } from '../../../types/checkout'
import type { CheckoutSchema } from '@vercel/commerce/types/checkout'
import type { OrdercloudAPI } from '../..'
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'

View File

@ -1,4 +1,4 @@
import type { CustomerAddressSchema } from '../../../../types/customer/address'
import type { CustomerAddressSchema } from '@vercel/commerce/types/customer/address'
import type { OrdercloudAPI } from '../../..'
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'

View File

@ -1,4 +1,4 @@
import type { CustomerCardSchema } from '../../../../types/customer/card'
import type { CustomerCardSchema } from '@vercel/commerce/types/customer/card'
import type { OrdercloudAPI } from '../../..'
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'

View File

@ -1,4 +1,5 @@
import type { Cart, OrdercloudCart, OrdercloudLineItem } from '../../types/cart'
import type { Cart } from '@vercel/commerce/types/cart'
import type { OrdercloudCart, OrdercloudLineItem } from '../../types/cart'
export function formatCart(
cart: OrdercloudCart,

View File

@ -1,5 +1,3 @@
export * from '@vercel/commerce/types/cart'
export interface OrdercloudCart {
ID: string
FromUser: {

View File

@ -1 +0,0 @@
export * from '@vercel/commerce/types/checkout'

View File

@ -1,5 +1,3 @@
export * from '@vercel/commerce/types/customer/address'
export interface OrdercloudAddress {
ID: string
FromCompanyID: string

View File

@ -1,5 +1,3 @@
export * from '@vercel/commerce/types/customer/card'
export interface OredercloudCreditCard {
ID: string
Editable: boolean

View File

@ -11,7 +11,7 @@ import useCart from './use-cart'
import * as mutation from '../utils/mutations'
import { getCheckoutId, checkoutToCart } from '../utils'
import { Mutation, MutationCheckoutLineDeleteArgs } from '../../schema'
import { LineItem, RemoveItemHook } from '../types/cart'
import type { LineItem, RemoveItemHook } from '@vercel/commerce/types/cart'
export default useRemoveItem as UseRemoveItem<typeof handler>

Some files were not shown because too many files have changed in this diff Show More