= ({ className, pages }) => {
diff --git a/components/common/Layout/Layout.tsx b/components/common/Layout/Layout.tsx
index 14c07860a..bcf5fb78f 100644
--- a/components/common/Layout/Layout.tsx
+++ b/components/common/Layout/Layout.tsx
@@ -9,8 +9,8 @@ import { useAcceptCookies } from '@lib/hooks/useAcceptCookies'
import { Sidebar, Button, Modal, LoadingDots } from '@components/ui'
import { CartSidebarView } from '@components/cart'
-import { CommerceProvider } from '@bigcommerce/storefront-data-hooks'
-import type { Page } from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
+import { CommerceProvider } from '@framework'
+import type { Page } from '@framework/api/operations/get-all-pages'
const Loading = () => (
diff --git a/components/common/UserNav/DropdownMenu.tsx b/components/common/UserNav/DropdownMenu.tsx
index 0c47158db..7b02c863a 100644
--- a/components/common/UserNav/DropdownMenu.tsx
+++ b/components/common/UserNav/DropdownMenu.tsx
@@ -15,7 +15,7 @@ import {
clearAllBodyScrollLocks,
} from 'body-scroll-lock'
-import useLogout from '@bigcommerce/storefront-data-hooks/use-logout'
+import useLogout from '@framework/use-logout'
interface DropdownMenuProps {
open?: boolean
diff --git a/components/common/UserNav/UserNav.tsx b/components/common/UserNav/UserNav.tsx
index 6ddbbd387..31852f658 100644
--- a/components/common/UserNav/UserNav.tsx
+++ b/components/common/UserNav/UserNav.tsx
@@ -1,8 +1,8 @@
import { FC } from 'react'
import Link from 'next/link'
import cn from 'classnames'
-import useCart from '@bigcommerce/storefront-data-hooks/cart/use-cart'
-import useCustomer from '@bigcommerce/storefront-data-hooks/use-customer'
+import useCart from '@framework/cart/use-cart'
+import useCustomer from '@framework/use-customer'
import { Heart, Bag } from '@components/icons'
import { useUI } from '@components/ui/context'
import DropdownMenu from './DropdownMenu'
diff --git a/components/product/ProductCard/ProductCard.tsx b/components/product/ProductCard/ProductCard.tsx
index 449647c74..85e69b3f2 100644
--- a/components/product/ProductCard/ProductCard.tsx
+++ b/components/product/ProductCard/ProductCard.tsx
@@ -5,8 +5,8 @@ import type { FC } from 'react'
import s from './ProductCard.module.css'
import WishlistButton from '@components/wishlist/WishlistButton'
-import usePrice from '@bigcommerce/storefront-data-hooks/use-price'
-import type { ProductNode } from '@bigcommerce/storefront-data-hooks/api/operations/get-all-products'
+import usePrice from '@framework/use-price'
+import type { ProductNode } from '@framework/api/operations/get-all-products'
interface Props {
className?: string
diff --git a/components/product/ProductView/ProductView.tsx b/components/product/ProductView/ProductView.tsx
index b47da24ec..9703156a1 100644
--- a/components/product/ProductView/ProductView.tsx
+++ b/components/product/ProductView/ProductView.tsx
@@ -8,9 +8,9 @@ import { useUI } from '@components/ui/context'
import { Swatch, ProductSlider } from '@components/product'
import { Button, Container, Text } from '@components/ui'
-import usePrice from '@bigcommerce/storefront-data-hooks/use-price'
-import useAddItem from '@bigcommerce/storefront-data-hooks/cart/use-add-item'
-import type { ProductNode } from '@bigcommerce/storefront-data-hooks/api/operations/get-product'
+import usePrice from '@framework/use-price'
+import useAddItem from '@framework/cart/use-add-item'
+import type { ProductNode } from '@framework/api/operations/get-product'
import {
getCurrentVariant,
getProductOptions,
diff --git a/components/product/helpers.ts b/components/product/helpers.ts
index 582aea117..eda8d434a 100644
--- a/components/product/helpers.ts
+++ b/components/product/helpers.ts
@@ -1,4 +1,4 @@
-import type { ProductNode } from '@bigcommerce/storefront-data-hooks/api/operations/get-product'
+import type { ProductNode } from '@framework/api/operations/get-product'
export type SelectedOptions = {
size: string | null
diff --git a/components/wishlist/WishlistButton/WishlistButton.tsx b/components/wishlist/WishlistButton/WishlistButton.tsx
index 0916de64d..b8b41c90d 100644
--- a/components/wishlist/WishlistButton/WishlistButton.tsx
+++ b/components/wishlist/WishlistButton/WishlistButton.tsx
@@ -1,10 +1,10 @@
import React, { FC, useState } from 'react'
import cn from 'classnames'
-import type { ProductNode } from '@bigcommerce/storefront-data-hooks/api/operations/get-all-products'
-import useAddItem from '@bigcommerce/storefront-data-hooks/wishlist/use-add-item'
-import useRemoveItem from '@bigcommerce/storefront-data-hooks/wishlist/use-remove-item'
-import useWishlist from '@bigcommerce/storefront-data-hooks/wishlist/use-wishlist'
-import useCustomer from '@bigcommerce/storefront-data-hooks/use-customer'
+import type { ProductNode } from '@framework/api/operations/get-all-products'
+import useAddItem from '@framework/wishlist/use-add-item'
+import useRemoveItem from '@framework/wishlist/use-remove-item'
+import useWishlist from '@framework/wishlist/use-wishlist'
+import useCustomer from '@framework/use-customer'
import { Heart } from '@components/icons'
import { useUI } from '@components/ui/context'
diff --git a/components/wishlist/WishlistCard/WishlistCard.tsx b/components/wishlist/WishlistCard/WishlistCard.tsx
index 3df36bbe3..8cbd38bc7 100644
--- a/components/wishlist/WishlistCard/WishlistCard.tsx
+++ b/components/wishlist/WishlistCard/WishlistCard.tsx
@@ -2,10 +2,10 @@ import { FC, useState } from 'react'
import cn from 'classnames'
import Link from 'next/link'
import Image from 'next/image'
-import type { WishlistItem } from '@bigcommerce/storefront-data-hooks/api/wishlist'
-import usePrice from '@bigcommerce/storefront-data-hooks/use-price'
-import useRemoveItem from '@bigcommerce/storefront-data-hooks/wishlist/use-remove-item'
-import useAddItem from '@bigcommerce/storefront-data-hooks/cart/use-add-item'
+import type { WishlistItem } from '@framework/api/wishlist'
+import usePrice from '@framework/use-price'
+import useRemoveItem from '@framework/wishlist/use-remove-item'
+import useAddItem from '@framework/cart/use-add-item'
import { useUI } from '@components/ui/context'
import { Button, Text } from '@components/ui'
import { Trash } from '@components/icons'
diff --git a/package.json b/package.json
index 1939dc064..9dd25b6ba 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,9 @@
"build": "next build",
"start": "next start",
"analyze": "BUNDLE_ANALYZE=both yarn build",
- "find:unused": "next-unused"
+ "find:unused": "next-unused",
+ "generate": "graphql-codegen",
+ "generate:definitions": "node framework/bigcommerce/scripts/generate-definitions.js"
},
"prettier": {
"semi": false,
@@ -42,7 +44,6 @@
]
},
"dependencies": {
- "@bigcommerce/storefront-data-hooks": "^1.0.2",
"@reach/portal": "^0.11.2",
"@tailwindcss/ui": "^0.6.2",
"@vercel/fetch": "^6.1.0",
diff --git a/pages/[...pages].tsx b/pages/[...pages].tsx
index f69bb6746..b90af8b6f 100644
--- a/pages/[...pages].tsx
+++ b/pages/[...pages].tsx
@@ -7,9 +7,9 @@ import getSlug from '@lib/get-slug'
import { missingLocaleInPages } from '@lib/usage-warns'
import { Layout } from '@components/common'
import { Text } from '@components/ui'
-import { getConfig } from '@bigcommerce/storefront-data-hooks/api'
-import getPage from '@bigcommerce/storefront-data-hooks/api/operations/get-page'
-import getAllPages from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
+import { getConfig } from '@framework/api'
+import getPage from '@framework/api/operations/get-page'
+import getAllPages from '@framework/api/operations/get-all-pages'
import { defatultPageProps } from '@lib/defaults'
export async function getStaticProps({
diff --git a/pages/api/bigcommerce/cart.ts b/pages/api/bigcommerce/cart.ts
index bbd70db52..68ffc3b15 100644
--- a/pages/api/bigcommerce/cart.ts
+++ b/pages/api/bigcommerce/cart.ts
@@ -1,3 +1,3 @@
-import cartApi from '@bigcommerce/storefront-data-hooks/api/cart'
+import cartApi from '@framework/api/cart'
export default cartApi()
diff --git a/pages/api/bigcommerce/catalog/products.ts b/pages/api/bigcommerce/catalog/products.ts
index 7ba267ec1..ac342c82a 100644
--- a/pages/api/bigcommerce/catalog/products.ts
+++ b/pages/api/bigcommerce/catalog/products.ts
@@ -1,3 +1,3 @@
-import catalogProductsApi from '@bigcommerce/storefront-data-hooks/api/catalog/products'
+import catalogProductsApi from '@framework/api/catalog/products'
export default catalogProductsApi()
diff --git a/pages/api/bigcommerce/checkout.ts b/pages/api/bigcommerce/checkout.ts
index 6895076b6..bd754deab 100644
--- a/pages/api/bigcommerce/checkout.ts
+++ b/pages/api/bigcommerce/checkout.ts
@@ -1,3 +1,3 @@
-import checkoutApi from '@bigcommerce/storefront-data-hooks/api/checkout'
+import checkoutApi from '@framework/api/checkout'
export default checkoutApi()
diff --git a/pages/api/bigcommerce/customers/index.ts b/pages/api/bigcommerce/customers/index.ts
index 21f53dbdc..7b55d3aa8 100644
--- a/pages/api/bigcommerce/customers/index.ts
+++ b/pages/api/bigcommerce/customers/index.ts
@@ -1,3 +1,3 @@
-import customersApi from '@bigcommerce/storefront-data-hooks/api/customers'
+import customersApi from '@framework/api/customers'
export default customersApi()
diff --git a/pages/api/bigcommerce/customers/login.ts b/pages/api/bigcommerce/customers/login.ts
index 44aec1f7f..aac529751 100644
--- a/pages/api/bigcommerce/customers/login.ts
+++ b/pages/api/bigcommerce/customers/login.ts
@@ -1,3 +1,3 @@
-import loginApi from '@bigcommerce/storefront-data-hooks/api/customers/login'
+import loginApi from '@framework/api/customers/login'
export default loginApi()
diff --git a/pages/api/bigcommerce/customers/logout.ts b/pages/api/bigcommerce/customers/logout.ts
index 29cc21063..e872ff95d 100644
--- a/pages/api/bigcommerce/customers/logout.ts
+++ b/pages/api/bigcommerce/customers/logout.ts
@@ -1,3 +1,3 @@
-import logoutApi from '@bigcommerce/storefront-data-hooks/api/customers/logout'
+import logoutApi from '@framework/api/customers/logout'
export default logoutApi()
diff --git a/pages/api/bigcommerce/customers/signup.ts b/pages/api/bigcommerce/customers/signup.ts
index 9ce5c889b..59f2f840a 100644
--- a/pages/api/bigcommerce/customers/signup.ts
+++ b/pages/api/bigcommerce/customers/signup.ts
@@ -1,3 +1,3 @@
-import signupApi from '@bigcommerce/storefront-data-hooks/api/customers/signup'
+import signupApi from '@framework/api/customers/signup'
export default signupApi()
diff --git a/pages/api/bigcommerce/wishlist.ts b/pages/api/bigcommerce/wishlist.ts
index d918c4bf1..0d6a895a5 100644
--- a/pages/api/bigcommerce/wishlist.ts
+++ b/pages/api/bigcommerce/wishlist.ts
@@ -1,3 +1,3 @@
-import wishlistApi from '@bigcommerce/storefront-data-hooks/api/wishlist'
+import wishlistApi from '@framework/api/wishlist'
export default wishlistApi()
diff --git a/pages/blog.tsx b/pages/blog.tsx
index 3e779ac25..a3a020bca 100644
--- a/pages/blog.tsx
+++ b/pages/blog.tsx
@@ -1,6 +1,6 @@
import type { GetStaticPropsContext } from 'next'
-import { getConfig } from '@bigcommerce/storefront-data-hooks/api'
-import getAllPages from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
+import { getConfig } from '@framework/api'
+import getAllPages from '@framework/api/operations/get-all-pages'
import { Layout } from '@components/common'
import { Container } from '@components/ui'
diff --git a/pages/cart.tsx b/pages/cart.tsx
index 13c8df2e4..7e6d17b21 100644
--- a/pages/cart.tsx
+++ b/pages/cart.tsx
@@ -1,8 +1,8 @@
import type { GetStaticPropsContext } from 'next'
-import { getConfig } from '@bigcommerce/storefront-data-hooks/api'
-import getAllPages from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
-import useCart from '@bigcommerce/storefront-data-hooks/cart/use-cart'
-import usePrice from '@bigcommerce/storefront-data-hooks/use-price'
+import { getConfig } from '@framework/api'
+import getAllPages from '@framework/api/operations/get-all-pages'
+import useCart from '@framework/cart/use-cart'
+import usePrice from '@framework/use-price'
import { Layout } from '@components/common'
import { Button } from '@components/ui'
import { Bag, Cross, Check } from '@components/icons'
diff --git a/pages/index.tsx b/pages/index.tsx
index 49127e360..ef1c0a96e 100644
--- a/pages/index.tsx
+++ b/pages/index.tsx
@@ -5,10 +5,10 @@ import { Grid, Marquee, Hero } from '@components/ui'
import HomeAllProductsGrid from '@components/common/HomeAllProductsGrid'
import type { GetStaticPropsContext, InferGetStaticPropsType } from 'next'
-import { getConfig } from '@bigcommerce/storefront-data-hooks/api'
-import getAllProducts from '@bigcommerce/storefront-data-hooks/api/operations/get-all-products'
-import getSiteInfo from '@bigcommerce/storefront-data-hooks/api/operations/get-site-info'
-import getAllPages from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
+import { getConfig } from '@framework/api'
+import getAllProducts from '@framework/api/operations/get-all-products'
+import getSiteInfo from '@framework/api/operations/get-site-info'
+import getAllPages from '@framework/api/operations/get-all-pages'
export async function getStaticProps({
preview,
diff --git a/pages/orders.tsx b/pages/orders.tsx
index 4fec58726..973a021eb 100644
--- a/pages/orders.tsx
+++ b/pages/orders.tsx
@@ -1,6 +1,6 @@
import type { GetStaticPropsContext } from 'next'
-import { getConfig } from '@bigcommerce/storefront-data-hooks/api'
-import getAllPages from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
+import { getConfig } from '@framework/api'
+import getAllPages from '@framework/api/operations/get-all-pages'
import { Layout } from '@components/common'
import { Container, Text } from '@components/ui'
import { Bag } from '@components/icons'
diff --git a/pages/product/[slug].tsx b/pages/product/[slug].tsx
index 367a50ec4..008cd95d6 100644
--- a/pages/product/[slug].tsx
+++ b/pages/product/[slug].tsx
@@ -9,10 +9,10 @@ import { ProductView } from '@components/product'
// Data
-import { getConfig } from '@bigcommerce/storefront-data-hooks/api'
-import getProduct from '@bigcommerce/storefront-data-hooks/api/operations/get-product'
-import getAllPages from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
-import getAllProductPaths from '@bigcommerce/storefront-data-hooks/api/operations/get-all-product-paths'
+import { getConfig } from '@framework/api'
+import getProduct from '@framework/api/operations/get-product'
+import getAllPages from '@framework/api/operations/get-all-pages'
+import getAllProductPaths from '@framework/api/operations/get-all-product-paths'
export async function getStaticProps({
params,
diff --git a/pages/profile.tsx b/pages/profile.tsx
index 1239ecc31..63de0b234 100644
--- a/pages/profile.tsx
+++ b/pages/profile.tsx
@@ -1,7 +1,7 @@
import type { GetStaticPropsContext } from 'next'
-import { getConfig } from '@bigcommerce/storefront-data-hooks/api'
-import getAllPages from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
-import useCustomer from '@bigcommerce/storefront-data-hooks/use-customer'
+import { getConfig } from '@framework/api'
+import getAllPages from '@framework/api/operations/get-all-pages'
+import useCustomer from '@framework/use-customer'
import { Layout } from '@components/common'
import { Container, Text } from '@components/ui'
diff --git a/pages/search.tsx b/pages/search.tsx
index bbac97382..5110aba55 100644
--- a/pages/search.tsx
+++ b/pages/search.tsx
@@ -3,10 +3,10 @@ import type { GetStaticPropsContext, InferGetStaticPropsType } from 'next'
import Link from 'next/link'
import { useState } from 'react'
import { useRouter } from 'next/router'
-import { getConfig } from '@bigcommerce/storefront-data-hooks/api'
-import getAllPages from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
-import getSiteInfo from '@bigcommerce/storefront-data-hooks/api/operations/get-site-info'
-import useSearch from '@bigcommerce/storefront-data-hooks/products/use-search'
+import { getConfig } from '@framework/api'
+import getAllPages from '@framework/api/operations/get-all-pages'
+import getSiteInfo from '@framework/api/operations/get-site-info'
+import useSearch from '@framework/products/use-search'
import { Layout } from '@components/common'
import { ProductCard } from '@components/product'
import { Container, Grid, Skeleton } from '@components/ui'
diff --git a/pages/wishlist.tsx b/pages/wishlist.tsx
index ee81857de..b52c78d47 100644
--- a/pages/wishlist.tsx
+++ b/pages/wishlist.tsx
@@ -1,7 +1,7 @@
import type { GetStaticPropsContext } from 'next'
-import { getConfig } from '@bigcommerce/storefront-data-hooks/api'
-import getAllPages from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages'
-import useWishlist from '@bigcommerce/storefront-data-hooks/wishlist/use-wishlist'
+import { getConfig } from '@framework/api'
+import getAllPages from '@framework/api/operations/get-all-pages'
+import useWishlist from '@framework/wishlist/use-wishlist'
import { Layout } from '@components/common'
import { Heart } from '@components/icons'
import { Text, Container } from '@components/ui'
diff --git a/tsconfig.json b/tsconfig.json
index 75ecbd33c..98639f61e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -21,7 +21,9 @@
"@components/*": ["components/*"],
"@utils/*": ["utils/*"],
"@commerce/*": ["framework/commerce/*"],
- "@framework/*": ["framework/bigcommerce/*"]
+ "@commerce": ["framework/commerce"],
+ "@framework/*": ["framework/bigcommerce/*"],
+ "@framework": ["framework/bigcommerce"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.js"],
diff --git a/yarn.lock b/yarn.lock
index d37499036..372894006 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -538,17 +538,6 @@
lodash "^4.17.19"
to-fast-properties "^2.0.0"
-"@bigcommerce/storefront-data-hooks@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@bigcommerce/storefront-data-hooks/-/storefront-data-hooks-1.0.2.tgz#2d9f0dca4f297324f853ba9f09bf09a269c8ff64"
- integrity sha512-uqbL5Wn2iGtBRhOxu+lhqGRAnXoaDVbyRQN+BFP1ClbpdUUWDtXmmLKbK0lpo52OSnj0i7Eu1RYXkZIy3EJofg==
- dependencies:
- "@vercel/fetch" "6.1.0"
- cookie "0.4.1"
- js-cookie "2.2.1"
- lodash.debounce "4.0.8"
- swr "0.3.6"
-
"@csstools/convert-colors@^1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
@@ -1305,7 +1294,7 @@
async-retry "^1.3.1"
debug "^3.1.0"
-"@vercel/fetch@6.1.0", "@vercel/fetch@^6.1.0":
+"@vercel/fetch@^6.1.0":
version "6.1.0"
resolved "https://registry.yarnpkg.com/@vercel/fetch/-/fetch-6.1.0.tgz#4959cd264d25e811b46491818a9d9ca5d752a2a9"
integrity sha512-xR0GQggKhPvwEWrqcrobsQFjyR/bDDbX24BkSaRyLzW+8SydKhkBc/mBCUV8h4SBZSlJMJnqhrxjFCZ1uJcqNg==
@@ -2476,7 +2465,7 @@ cookie@0.4.0:
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
-cookie@0.4.1, cookie@^0.4.1:
+cookie@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
@@ -4428,7 +4417,7 @@ jest-worker@^26.6.1:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-js-cookie@2.2.1, js-cookie@^2.2.1:
+js-cookie@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8"
integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==
@@ -4715,7 +4704,7 @@ lodash._reinterpolate@^3.0.0:
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
-lodash.debounce@4.0.8, lodash.debounce@^4.0.8:
+lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
@@ -7293,13 +7282,6 @@ supports-color@^7.0.0, supports-color@^7.1.0:
dependencies:
has-flag "^4.0.0"
-swr@0.3.6:
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/swr/-/swr-0.3.6.tgz#b1d59439e5114fdf95bb408e1c628ff48f967aac"
- integrity sha512-LHbX9vVQSW8Kgyr86zz2fVVKmmT13qxB61uXuUAg6NT4cGu6afzAzT2SVCGEh8pJAD2o8NTZMgclIUxIAbvk7Q==
- dependencies:
- dequal "2.0.2"
-
swr@^0.3.11:
version "0.3.11"
resolved "https://registry.yarnpkg.com/swr/-/swr-0.3.11.tgz#f7f50ed26c06afea4249482cec504768a2272664"