@daouypkgs/commerce-commercetools 0.0.183
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/cart/index.d.ts +2 -0
- package/dist/cart/use-add-item.d.ts +5 -0
- package/dist/cart/use-cart.d.ts +5 -0
- package/dist/cart/use-remove-item.d.ts +11 -0
- package/dist/cart/use-update-item.d.ts +11 -0
- package/dist/client.d.ts +3 -0
- package/dist/commerce-commercetools.cjs.development.js +1201 -0
- package/dist/commerce-commercetools.cjs.development.js.map +1 -0
- package/dist/commerce-commercetools.cjs.production.min.js +2 -0
- package/dist/commerce-commercetools.cjs.production.min.js.map +1 -0
- package/dist/commerce-commercetools.esm.js +1189 -0
- package/dist/commerce-commercetools.esm.js.map +1 -0
- package/dist/commercetools.d.ts +5 -0
- package/dist/const.d.ts +4 -0
- package/dist/fetcher.d.ts +3 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +8 -0
- package/dist/product/use-product.d.ts +8 -0
- package/dist/product/use-search.d.ts +12 -0
- package/dist/provider.d.ts +49 -0
- package/dist/registerCommerceProvider.d.ts +11 -0
- package/dist/registerable.d.ts +6 -0
- package/dist/site/use-brands.d.ts +5 -0
- package/dist/site/use-categories.d.ts +5 -0
- package/dist/types/cart.d.ts +24 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/product.d.ts +14 -0
- package/dist/types/site.d.ts +7 -0
- package/dist/utils/cart-active.d.ts +4 -0
- package/dist/utils/cart-cookie.d.ts +3 -0
- package/dist/utils/cart-create.d.ts +4 -0
- package/dist/utils/common.d.ts +2 -0
- package/dist/utils/cookies.d.ts +3 -0
- package/dist/utils/get-sort-variables.d.ts +2 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/localized-string.d.ts +2 -0
- package/dist/utils/normalize.d.ts +21 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commerce-commercetools.cjs.development.js","sources":["../src/utils/get-sort-variables.ts","../src/const.ts","../src/utils/cookies.ts","../src/utils/cart-cookie.ts","../src/utils/cart-create.ts","../src/utils/cart-active.ts","../src/utils/localized-string.ts","../src/utils/common.ts","../src/utils/normalize.ts","../src/cart/use-cart.tsx","../src/cart/use-add-item.tsx","../src/cart/use-remove-item.tsx","../src/cart/use-update-item.tsx","../src/client.ts","../src/fetcher.ts","../src/product/use-product.tsx","../src/product/use-search.tsx","../src/site/use-brands.tsx","../src/site/use-categories.tsx","../src/provider.ts","../src/commercetools.tsx","../src/registerCommerceProvider.tsx","../src/index.tsx"],"sourcesContent":["const getSortVariables = (sort?: string, isCategory: boolean = false) => {\n let output = undefined\n switch (sort) {\n case 'price-asc':\n output = 'price asc'\n break\n case 'price-desc':\n output = 'price desc'\n break\n case 'trending-desc': // default option\n output = undefined\n break\n case 'latest-desc':\n output = 'createdAt desc'\n break\n }\n return output\n}\n\nexport default getSortVariables\n","export const COMMERCETOOLS_COOKIE_EXPIRE = 30\n\nexport const COMMERCETOOLS_CART_COOKIE = 'commercetools_cart'\n\nexport const COMMERCETOOLS_CUSTOMER_COOKIE = 'commercetools_customer'\n\nexport const COMMERCETOOLS_WISHLIST_COOKIE = 'commercetools_wishlist'\n","import Cookies, { CookieAttributes } from 'js-cookie';\nimport { COMMERCETOOLS_COOKIE_EXPIRE } from '../const'\n\nconst options: CookieAttributes = {\n expires: COMMERCETOOLS_COOKIE_EXPIRE,\n sameSite: \"none\",\n secure: true\n}\n\nexport const getCookies = <T>(name: string) => {\n const cookie = Cookies.get(name);\n return cookie ? (JSON.parse(cookie) as T) : undefined\n}\n\nexport const setCookies = (name: string, value: any) => Cookies.set(name, JSON.stringify(value), options);\n\nexport const removeCookies = (name: string) => Cookies.remove(name);\n","import { COMMERCETOOLS_CART_COOKIE } from '../const'\nimport { getCookies, setCookies, removeCookies } from './cookies'\n\nexport const getCartId = () =>\n getCookies<string>(COMMERCETOOLS_CART_COOKIE)\n\nexport const setCartId = (id: string) =>\n setCookies(COMMERCETOOLS_CART_COOKIE, id)\n\nexport const removeCartCookie = () =>\n removeCookies(COMMERCETOOLS_CART_COOKIE)\n","import { Cart, CartDraft } from '@commercetools/platform-sdk'\nimport { ClientResponse } from '@commercetools/sdk-client-v2'\nimport { FetcherOptions } from '@daouypkgs/commerce'\nimport { removeCartCookie, setCartId } from './cart-cookie'\n\nconst createCart = async (\n fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>\n) => {\n const draft: CartDraft = {\n currency: 'USD',\n country: 'US',\n }\n\n const cart = await fetch<ClientResponse<Cart>, CartDraft>({\n query: 'carts',\n method: 'post',\n body: draft,\n })\n\n if (!cart.body) {\n removeCartCookie()\n } else {\n setCartId(cart.body.id)\n }\n return cart.body\n}\n\nexport default createCart\n","import { Cart, ClientResponse } from '@commercetools/platform-sdk'\nimport { FetcherOptions } from '@daouypkgs/commerce'\nimport { getCartId, removeCartCookie, setCartId } from './cart-cookie'\nimport createCart from './cart-create'\n\nconst getActiveCart = async (\n fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>\n) => {\n const cartId = getCartId()\n let activeCart\n if (cartId) {\n activeCart = (\n await fetch<ClientResponse<Cart>>({\n query: 'carts',\n method: 'get',\n variables: {\n id: cartId,\n },\n })\n ).body\n } else {\n activeCart = await createCart(fetch)\n }\n\n if (!activeCart) {\n removeCartCookie()\n } else {\n setCartId(activeCart.id)\n }\n return activeCart\n}\n\nexport default getActiveCart\n","const getLocalizedString = (\n localizedString: Record<string, string> | undefined,\n locale: string | undefined\n) =>\n !localizedString || !locale\n ? undefined\n : locale in localizedString\n ? localizedString[locale]\n : Object.values(localizedString)[0]\n\nexport default getLocalizedString\n","export const withoutNils = <T>(xs: Array<T | undefined | null>): T[] =>\n xs.filter((x): x is T => x != null)\n\nexport const dedup = <T>(xs: Array<T>): T[] => [...new Set(xs)]\n","import { Category } from '../types/site'\nimport {\n ProductProjection,\n Image,\n ProductVariant,\n Category as CommercetoolsCategory,\n Cart as CommercetoolsCart,\n LineItem as CommercetoolsLineItem,\n TypedMoney,\n Customer,\n ShoppingList,\n ProductData,\n} from '@commercetools/platform-sdk'\nimport { dedup, withoutNils } from './common'\nimport getLocalizedString from './localized-string'\nimport { Cart, LineItem } from '../types/cart'\nimport { Product, ProductOption } from '../types/product'\n\nconst currencyCode = 'USD'\n\nconst stringify = (value: any) =>\n typeof value === 'string' ? value : JSON.stringify(value)\n\nconst money = (price: TypedMoney | undefined) => {\n return price\n ? {\n value: price.centAmount / 100,\n currencyCode: price.currencyCode,\n }\n : {\n value: -1.0, // error\n currencyCode,\n }\n}\n\nconst normalizeProductOption = (option: {\n name: string\n value: string | string[]\n}): ProductOption => ({\n __typename: 'MultipleChoiceOption',\n id: option.name,\n displayName: option.name,\n values: dedup(\n Array.isArray(option.value) ? option.value : [option.value]\n ).map((val) => {\n if (\n option.name.match(/colou?r/gi) &&\n /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/i.test(val)\n ) {\n return {\n label: stringify(val),\n hexColors: [val],\n }\n } else {\n return {\n label: stringify(val),\n }\n }\n }),\n})\n\nconst normalizeProductImages = (images: Image[]) =>\n images.map((image) => ({\n url: image.url,\n ...(image.label ? { alt: image.label } : {}),\n width: image.dimensions.w,\n height: image.dimensions.h,\n }))\n\nconst normalizeProductVariant = (variant: ProductVariant) => {\n const price = money(\n variant.prices?.find((price) => price.value.currencyCode === currencyCode)\n ?.value ?? variant.prices?.[0]?.value\n ).value\n\n return {\n id: `${variant.id}`,\n name: `${variant.id}`,\n sku: variant.sku ?? '',\n price,\n options:\n variant.attributes?.map((attribute) =>\n normalizeProductOption({\n name: attribute.name,\n value: attribute.value.key,\n })\n ) ?? [],\n requiresShipping: false,\n listPrice: price,\n }\n}\n\nexport const normalizeProduct = (\n product: ProductProjection | (ProductData & { id: string }),\n locale: string,\n): Product => ({\n id: product.id,\n name: getLocalizedString(product.name, locale) ?? \"\",\n slug: getLocalizedString(product.slug, locale),\n path: `/${getLocalizedString(product.slug, locale)}`,\n description: getLocalizedString(product.description, locale) ?? '',\n price: money(\n product.masterVariant.prices?.find(\n (price) => price.value.currencyCode === currencyCode\n )?.value ?? product.masterVariant.prices?.[0]?.value\n ),\n images: normalizeProductImages(\n withoutNils([\n ...(product.masterVariant.images ? product.masterVariant.images : []),\n ...product.variants.flatMap((variant) => variant.images),\n ])\n ),\n variants: [product.masterVariant, ...product.variants].map(\n normalizeProductVariant\n ),\n options: withoutNils([\n ...(product.masterVariant.attributes\n ? product.masterVariant.attributes\n : []),\n ...product.variants.flatMap((variant) => variant.attributes),\n ])\n .reduce(\n (groupedAttributes, attribute) => {\n const groupedAttribute = groupedAttributes.find(\n (gAttr) => gAttr.name === attribute.name\n )\n if (groupedAttribute) {\n groupedAttribute.value.push(stringify(attribute.value.key))\n } else {\n groupedAttributes.push({\n name: attribute.name,\n value: [stringify(attribute.value.key)],\n })\n }\n return groupedAttributes\n },\n [] as {\n name: string\n value: string[]\n }[]\n )\n .map(normalizeProductOption),\n})\n\nconst normalizeLineItem = (\n lineItem: CommercetoolsLineItem,\n locale: string,\n): LineItem => ({\n id: lineItem.id,\n variantId: `${lineItem.variant.id}`,\n productId: lineItem.productId,\n name: getLocalizedString(lineItem.name, locale) ?? \"\",\n path: '',\n quantity: lineItem.quantity,\n discounts: [],\n variant: normalizeProductVariant(lineItem.variant),\n options:\n lineItem.variant.attributes?.map((attribute) => ({\n id: attribute.name,\n name: attribute.name,\n value: attribute.value.key,\n })) ?? [],\n})\n\nexport const normalizeCart = (\n cart: CommercetoolsCart,\n locale: string,\n): Cart => ({\n id: cart.id,\n customerId: cart.customerId,\n email: cart.customerEmail,\n createdAt: cart.createdAt,\n currency: {\n code: currencyCode,\n },\n taxesIncluded: cart.taxMode !== 'Disabled',\n lineItems: cart.lineItems.map((item) => normalizeLineItem(item, locale)),\n lineItemsSubtotalPrice: 0,\n subtotalPrice: money(cart.totalPrice).value,\n totalPrice: money(cart.totalPrice).value,\n discounts: [],\n})\n\nexport const normalizeCategory = (\n category: CommercetoolsCategory,\n locale: string,\n): Category => ({\n id: category.id,\n name: getLocalizedString(category.name, locale) ?? \"\",\n slug: getLocalizedString(category.slug, locale) ?? \"\",\n path: `/${getLocalizedString(category.slug, locale)}`,\n})\n\nexport const normalizeCustomer = (customer: Customer) => ({\n firstName: customer.firstName,\n lastName: customer.lastName,\n email: customer.email,\n})\n\nexport const normalizeWishlist = (wishlist: ShoppingList) => ({\n items:\n wishlist.lineItems?.map((item) => ({\n id: item.id,\n product_id: item.productId,\n variant_id: item.variantId!,\n })) ?? [],\n})\n","import { useMemo } from 'react'\nimport { useCart as useCommerceCart, UseCart } from '@daouypkgs/commerce'\nimport { SWRHook } from '@daouypkgs/commerce'\nimport { getActiveCart, normalizeCart } from '../utils'\nimport { GetCartHook } from '../types/cart'\n\nexport default useCommerceCart as UseCart<typeof handler>\n\nexport const handler: SWRHook<GetCartHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"get\",\n },\n async fetcher({ input, options, fetch, provider }) {\n const activeCart = await getActiveCart(fetch);\n return activeCart ? normalizeCart(activeCart, provider!.locale) : null;\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n })\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.lineItems.length ?? 0) <= 0\n },\n enumerable: true,\n },\n }),\n [response]\n )\n },\n}\n","import { Cart, CartUpdate, ClientResponse } from \"@commercetools/platform-sdk\";\nimport type { MutationHook } from \"@daouypkgs/commerce\";\nimport { useAddItem, UseAddItem } from \"@daouypkgs/commerce\";\nimport { useCallback } from \"react\";\nimport type { AddItemHook } from \"../types/cart\";\nimport {\n getActiveCart,\n normalizeCart,\n removeCartCookie,\n setCartId,\n} from \"../utils\";\nimport useCart from \"./use-cart\";\n\nexport default useAddItem as UseAddItem<typeof handler>;\n\nexport const handler: MutationHook<AddItemHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"post\",\n },\n async fetcher({ input: item, options, fetch, provider }) {\n const activeCart = await getActiveCart(fetch);\n if (\n (item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)) ||\n !activeCart\n ) {\n return undefined;\n }\n const updatedCart = await fetch<ClientResponse<Cart>, CartUpdate>({\n query: \"carts\",\n method: \"post\",\n variables: {\n id: activeCart.id,\n },\n body: {\n version: activeCart.version,\n actions: [\n {\n action: \"addLineItem\",\n variantId: +item.variantId,\n productId: item.productId,\n quantity: item.quantity ?? 1,\n },\n ],\n },\n });\n if (updatedCart.body) {\n setCartId(updatedCart.body.id);\n } else {\n removeCartCookie();\n }\n return updatedCart.body\n ? normalizeCart(updatedCart.body, provider!.locale)\n : undefined;\n },\n useHook:\n ({ fetch }) =>\n () => {\n const { mutate } = useCart();\n return useCallback(\n async function addItem(input) {\n const data = await fetch({ input });\n await mutate(data, false);\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","import {\n Cart as CommerceToolsCart,\n CartUpdate,\n ClientResponse,\n} from \"@commercetools/platform-sdk\";\nimport type {\n HookFetcherContext,\n MutationHook,\n MutationHookContext,\n} from \"@daouypkgs/commerce\";\nimport {\n UseRemoveItem,\n useRemoveItem,\n ValidationError,\n} from \"@daouypkgs/commerce\";\nimport { useCallback } from \"react\";\nimport type { Cart, LineItem, RemoveItemHook } from \"../types/cart\";\nimport {\n getActiveCart,\n normalizeCart,\n removeCartCookie,\n setCartId,\n} from \"../utils\";\nimport useCart from \"./use-cart\";\n\nexport type RemoveItemFn<T = any> = T extends LineItem\n ? (input?: RemoveItemActionInput<T>) => Promise<Cart | null | undefined>\n : (input: RemoveItemActionInput<T>) => Promise<Cart | null>;\n\nexport type RemoveItemActionInput<T = any> = T extends LineItem\n ? Partial<RemoveItemHook[\"actionInput\"]>\n : RemoveItemHook[\"actionInput\"];\n\nexport default useRemoveItem as UseRemoveItem<typeof handler>;\n\nexport const handler: MutationHook<RemoveItemHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"post\",\n },\n async fetcher({\n input: { itemId },\n options,\n fetch,\n provider,\n }: HookFetcherContext<RemoveItemHook>) {\n const activeCart = await getActiveCart(fetch);\n if (!itemId || !activeCart) {\n return undefined;\n }\n const updatedCart = await fetch<\n ClientResponse<CommerceToolsCart>,\n CartUpdate\n >({\n query: \"carts\",\n method: \"post\",\n variables: {\n id: activeCart.id,\n },\n body: {\n version: activeCart.version,\n actions: [\n {\n action: \"removeLineItem\",\n lineItemId: itemId,\n },\n ],\n },\n });\n if (updatedCart.body) {\n setCartId(updatedCart.body.id);\n } else {\n removeCartCookie();\n }\n return normalizeCart(updatedCart.body, provider!.locale);\n },\n useHook:\n ({ fetch }: MutationHookContext<RemoveItemHook>) =>\n <T extends LineItem | undefined = undefined>(ctx: { item?: T } = {}) => {\n const { item } = ctx;\n const { mutate } = useCart();\n const removeItem: RemoveItemFn<LineItem> = async (input) => {\n const itemId = input?.id ?? item?.id;\n\n if (!itemId) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({ input: { itemId } });\n await mutate(data, false);\n return data;\n };\n\n return useCallback(removeItem as RemoveItemFn<T>, [fetch, mutate]);\n },\n};\n","import { Cart, CartUpdate, ClientResponse } from \"@commercetools/platform-sdk\";\nimport type { MutationHook, MutationHookContext } from \"@daouypkgs/commerce\";\nimport {\n useUpdateItem,\n UseUpdateItem,\n ValidationError,\n} from \"@daouypkgs/commerce\";\nimport debounce from \"debounce\";\nimport { useCallback } from \"react\";\nimport type { LineItem, UpdateItemHook } from \"../types/cart\";\nimport {\n getActiveCart,\n normalizeCart,\n removeCartCookie,\n setCartId,\n} from \"../utils\";\nimport useCart from \"./use-cart\";\nimport { handler as removeItemHandler } from \"./use-remove-item\";\n\nexport type UpdateItemActionInput<T = any> = T extends LineItem\n ? Partial<UpdateItemHook[\"actionInput\"]>\n : UpdateItemHook[\"actionInput\"];\n\nexport default useUpdateItem as UseUpdateItem<typeof handler>;\n\nexport const handler: MutationHook<UpdateItemHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"post\",\n },\n async fetcher({ input: { item, itemId }, options, fetch, provider }) {\n if (Number.isInteger(item.quantity)) {\n // Also allow the update hook to remove an item if the quantity is lower than 1\n if (item.quantity! < 1) {\n return removeItemHandler.fetcher?.({\n options: removeItemHandler.fetchOptions,\n input: { itemId },\n fetch,\n provider,\n });\n }\n } else if (item.quantity) {\n throw new ValidationError({\n message: \"The item quantity has to be a valid integer\",\n });\n }\n\n const activeCart = await getActiveCart(fetch);\n if (\n (item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)) ||\n !activeCart\n ) {\n return undefined;\n }\n const updatedCart = await fetch<ClientResponse<Cart>, CartUpdate>({\n query: \"carts\",\n method: \"post\",\n variables: {\n id: activeCart.id,\n },\n body: {\n version: activeCart.version,\n actions: [\n {\n action: \"changeLineItemQuantity\",\n lineItemId: itemId,\n quantity: item.quantity ?? 1,\n },\n ],\n },\n });\n if (updatedCart.body) {\n setCartId(updatedCart.body.id);\n } else {\n removeCartCookie();\n }\n return updatedCart.body\n ? normalizeCart(updatedCart.body, provider!.locale)\n : undefined;\n },\n useHook:\n ({ fetch }: MutationHookContext<UpdateItemHook>) =>\n <T extends LineItem | undefined = undefined>(\n ctx: {\n item?: T;\n wait?: number;\n } = {}\n ) => {\n const { item } = ctx;\n const { mutate } = useCart() as any;\n\n return useCallback(\n debounce(async (input: UpdateItemActionInput<T>) => {\n const itemId = input.id ?? item?.id;\n if (!itemId || input.quantity == null) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({\n input: {\n item: {\n quantity: input.quantity,\n },\n itemId,\n },\n });\n await mutate(data, false);\n return data;\n }, ctx.wait ?? 500),\n [fetch, mutate]\n );\n },\n};\n","import {\n AuthMiddlewareOptions,\n ClientBuilder,\n HttpMiddlewareOptions,\n } from '@commercetools/sdk-client-v2'\nimport { CommercetoolsCredentials } from './provider'\n\nconst initCommercetoolsSDKClient = (creds: CommercetoolsCredentials) => {\n const scopes = [`manage_project:${creds.projectKey}`]\n \n // Configure authMiddlewareOptions\n const authMiddlewareOptions: AuthMiddlewareOptions = {\n host: `https://auth.${creds.region}.commercetools.com`,\n projectKey: creds.clientSecret,\n credentials: {\n clientId: creds.clientId,\n clientSecret: creds.clientSecret,\n },\n scopes,\n fetch,\n }\n \n // Configure httpMiddlewareOptions\n const httpMiddlewareOptions: HttpMiddlewareOptions = {\n host: `https://api.${creds.region}.commercetools.com`,\n fetch,\n }\n \n // Export the ClientBuilder\n return new ClientBuilder()\n .withProjectKey(creds.projectKey)\n .withClientCredentialsFlow(authMiddlewareOptions)\n .withHttpMiddleware(httpMiddlewareOptions)\n .build()\n}\n \n export default initCommercetoolsSDKClient","import { Fetcher } from '@daouypkgs/commerce'\nimport { CommercetoolsCredentials } from './provider'\nimport { createApiBuilderFromCtpClient } from '@commercetools/platform-sdk'\nimport initCommercetoolsSDKClient from './client'\n\nexport const getFetcher: \n (creds: CommercetoolsCredentials) => Fetcher =\n (creds) => {\n const client = initCommercetoolsSDKClient(creds);\n const apiRoot = createApiBuilderFromCtpClient(client).withProjectKey({\n projectKey: creds.projectKey!,\n })\n return async ({\n method, variables, query, body\n }) => {\n let queryBuilder: any = apiRoot;\n if (query) {\n queryBuilder = queryBuilder[query]();\n } \n if (variables?.id) {\n queryBuilder = queryBuilder.withId({ ID: variables.id });\n }\n if (variables?.search) {\n queryBuilder = queryBuilder.search();\n }\n return await queryBuilder[method!]({\n body,\n queryArgs: {\n expand: variables?.expand,\n limit: variables?.limit,\n ...(variables?.sort ? { sort: variables.sort } : {}),\n ...(variables?.search ? variables.search : {}),\n ...(variables?.filters ? { filter: variables.filters } : {}),\n ...(variables?.where ? { where: variables.where } : {})\n },\n })\n .execute()\n }\n}\n","import { SWRHook } from '@daouypkgs/commerce'\nimport { useProduct, UseProduct } from '@daouypkgs/commerce'\nimport {\n Product,\n ProductProjection,\n ClientResponse,\n} from '@commercetools/platform-sdk'\nimport { normalizeProduct } from '../utils'\nimport type { GetProductHook } from '@daouypkgs/commerce'\n\nexport type GetProductInput = {\n id?: string\n}\n\nexport default useProduct as UseProduct<typeof handler>\n\nexport const handler: SWRHook<GetProductHook> = {\n fetchOptions: {\n query: \"productProjections\",\n method: \"get\"\n },\n async fetcher({ input, options, fetch, provider }) {\n const { id } = input\n if (!id) {\n return null\n }\n\n const product = await fetch<ClientResponse<ProductProjection>>({\n ...options,\n variables: {\n id\n },\n });\n return product.body \n ? normalizeProduct(product.body, provider!.locale)\n : null\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n ['id', input.id],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n })\n },\n}\n","import {\n ClientResponse,\n ProductProjectionPagedQueryResponse,\n} from \"@commercetools/platform-sdk\";\nimport { useSearch } from \"@daouypkgs/commerce\";\nimport { getSortVariables, normalizeProduct } from \"../utils\";\n\nimport type {\n SearchProductsHook,\n SWRHook,\n UseSearch,\n} from \"@daouypkgs/commerce\";\n\nexport type SearchProductsInput = {\n search?: string;\n categoryId?: number;\n brandId?: number;\n sort?: string;\n locale?: string;\n count?: number;\n};\n\nconst useSearchTyped: UseSearch<typeof handler> = useSearch;\nexport default useSearchTyped;\n\nexport const handler: SWRHook<SearchProductsHook> = {\n fetchOptions: {\n method: \"get\",\n query: \"productProjections\",\n },\n async fetcher({ input, options, fetch, provider }) {\n const { search, categoryId, sort, count } = input;\n const response = await fetch<\n ClientResponse<ProductProjectionPagedQueryResponse>\n >({\n ...options,\n variables: {\n expand: [\"masterData.current\"],\n sort: getSortVariables(sort),\n limit: count,\n ...(search\n ? // eslint-disable-next-line\n { search: { [`text.${provider?.locale!}`]: search } }\n : {}),\n ...(categoryId\n ? { filters: `categories.id: subtree(\"${categoryId}\")` }\n : {}),\n },\n });\n return {\n products: response.body.results.map((product) =>\n normalizeProduct(product, provider!.locale)\n ),\n found: response.body.count > 0,\n };\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n [\"search\", input.search],\n [\"categoryId\", input.categoryId],\n [\"brandId\", input.brandId],\n [\"sort\", input.sort],\n [\"locale\", input.locale],\n [\"count\", input.count],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","import { SWRHook } from '@daouypkgs/commerce'\nimport { UseBrands, useBrands } from '@daouypkgs/commerce'\nimport { useMemo } from \"react\";\nimport { GetBrandsHook } from \"../types/site\"\n\nexport default useBrands as UseBrands<typeof handler>\n\nexport const handler: SWRHook<GetBrandsHook> = {\n fetchOptions: {\n query: \"\"\n },\n async fetcher({ input, options, fetch }) {\n return null;\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n })\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0\n },\n enumerable: true,\n },\n }),\n [response]\n )\n },\n}\n","import { SWRHook, UseCategories, useCategories } from \"@daouypkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { GetCategoriesHook } from \"../types/site\";\nimport {\n ClientResponse,\n Category,\n CategoryPagedQueryResponse,\n} from '@commercetools/platform-sdk'\nimport { normalizeCategory } from \"../utils\";\n\nexport default useCategories as UseCategories<typeof handler>;\n\nexport const handler: SWRHook<GetCategoriesHook> = {\n fetchOptions: {\n query: \"categories\",\n method: \"get\",\n },\n async fetcher({ input, options, fetch, provider }) {\n const { categoryId } = input;\n if (!categoryId) {\n const categories = await fetch<ClientResponse<CategoryPagedQueryResponse>>({\n ...options\n })\n return categories.body ? categories.body.results.map((category) => normalizeCategory(category, provider!.locale)) : [];\n } else {\n const category = await fetch<ClientResponse<Category>>({\n ...options,\n variables: {\n ...(categoryId ? { id: categoryId } : { })\n }\n })\n return category.body ? [normalizeCategory(category.body, provider!.locale)] : [];\n }\n },\n useHook: ({ useData }) => (input) => {\n const response = useData({\n input: [[\"categoryId\", input?.categoryId]],\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","import { Fetcher } from \"@daouypkgs/commerce\";\nimport { handler as useAddItem } from \"./cart/use-add-item\";\nimport { handler as useCart } from \"./cart/use-cart\";\nimport { handler as useRemoveItem } from \"./cart/use-remove-item\";\nimport { handler as useUpdateItem } from \"./cart/use-update-item\";\nimport { COMMERCETOOLS_CART_COOKIE } from \"./const\";\nimport { getFetcher } from \"./fetcher\";\nimport { handler as useProduct } from \"./product/use-product\";\nimport { handler as useSearch } from \"./product/use-search\";\nimport { handler as useBrands } from \"./site/use-brands\";\nimport { handler as useCategories } from \"./site/use-categories\";\n\nexport interface CommercetoolsCredentials {\n projectKey: string;\n clientId: string;\n clientSecret: string;\n region: string;\n}\n\nexport const getCommercetoolsProvider = (\n creds: CommercetoolsCredentials,\n locale: string\n) => ({\n locale,\n cartCookie: COMMERCETOOLS_CART_COOKIE,\n cart: { useCart, useAddItem, useRemoveItem, useUpdateItem },\n fetcher: getFetcher(creds),\n products: { useSearch, useProduct },\n site: { useCategories, useBrands },\n});\n\nexport type CommercetoolsProvider = {\n locale: string;\n cartCookie: string;\n fetcher: Fetcher;\n cart: {\n useCart: typeof useCart;\n useAddItem: typeof useAddItem;\n };\n products: {\n useSearch: typeof useSearch;\n useProduct: typeof useProduct;\n };\n site: {\n useCategories: typeof useCategories;\n useBrands: typeof useBrands;\n };\n};\n","import {\n getCommerceProvider as getCoreCommerceProvider,\n useCommerce as useCoreCommerce,\n} from '@daouypkgs/commerce'\nimport { getCommercetoolsProvider, CommercetoolsProvider, CommercetoolsCredentials } from './provider'\n\nexport type { CommercetoolsProvider }\n\nexport const useCommerce = () => useCoreCommerce<CommercetoolsProvider>()\n\nexport const getCommerceProvider = (creds: CommercetoolsCredentials, locale: string) => \n getCoreCommerceProvider(getCommercetoolsProvider(creds, locale))\n\n","import { ClientResponse, Project } from \"@commercetools/platform-sdk\";\nimport { GlobalContextMeta } from \"@daouy/host\";\nimport registerGlobalContext from \"@daouy/host/registerGlobalContext\";\nimport { useDaouyQueryData } from \"@daouy/query\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@daouypkgs/commerce\";\nimport React from \"react\";\nimport { getCommerceProvider } from \"./commercetools\";\nimport { getFetcher } from \"./fetcher\";\nimport { CommercetoolsCredentials } from \"./provider\";\nimport { Registerable } from \"./registerable\";\n\ninterface CommerceProviderProps extends CommercetoolsCredentials {\n children?: React.ReactNode;\n}\n\nconst globalContextName = \"daouy-commerce-commercetools-provider\";\n\nexport const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps> = {\n name: globalContextName,\n displayName: \"Commercetools Provider\",\n props: {\n projectKey: {\n type: \"string\",\n defaultValue: \"daouy-demo\",\n },\n clientId: {\n type: \"string\",\n defaultValue: \"B4hmK61xvz5LvdSDtsFmcflM\",\n },\n clientSecret: {\n type: \"string\",\n defaultValue: \"KhzjcjSu1Oul4aomSmOsLZOCZKbvfHqx\",\n },\n region: {\n type: \"choice\",\n options: [\n \"us-central1.gcp\",\n \"us-east-2.aws\",\n \"europe-west1.gcp\",\n \"eu-central-1.aws\",\n \"australia-southeast1.gcp\",\n ],\n defaultValue: \"us-central1.gcp\",\n },\n },\n ...{ globalActions: globalActionsRegistrations },\n importPath: \"@daouypkgs/commercetools\",\n importName: \"CommerceProviderComponent\",\n};\n\nexport function CommerceProviderComponent(props: CommerceProviderProps) {\n const { children, projectKey, clientId, clientSecret, region } = props;\n\n const creds = React.useMemo(\n () => ({ projectKey, clientId, clientSecret, region }),\n [projectKey, clientId, clientSecret, region]\n );\n\n const {\n data: locale,\n error,\n isLoading,\n } = useDaouyQueryData(JSON.stringify({ creds }) + \"locale\", async () => {\n const fetcher = getFetcher(creds);\n const project: ClientResponse<Project> = await fetcher({ method: \"get\" });\n return project.body ? project.body.languages[0] : undefined;\n });\n\n const CommerceProvider = React.useMemo(\n () => getCommerceProvider(creds, locale ?? \"\"),\n [creds, locale]\n );\n\n if (isLoading) {\n return null;\n } else if (error || !locale) {\n throw new Error(error ? error.message : \"Project language not found\");\n }\n\n return (\n <CommerceProvider>\n <CartActionsProvider globalContextName={globalContextName}>\n {children}\n </CartActionsProvider>\n </CommerceProvider>\n );\n}\n\nexport function registerCommerceProvider(\n loader?: Registerable,\n customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>\n) {\n const doRegisterComponent: typeof registerGlobalContext = (...args) =>\n loader\n ? loader.registerGlobalContext(...args)\n : registerGlobalContext(...args);\n doRegisterComponent(\n CommerceProviderComponent,\n customCommerceProviderMeta ?? commerceProviderMeta\n );\n}\n","import { Registerable } from \"./registerable\";\nimport { registerCommerceProvider } from \"./registerCommerceProvider\";\nexport * from \"./registerable\";\nexport * from \"./registerCommerceProvider\";\nexport * from \"./commercetools\";\n\nexport function registerAll(loader?: Registerable) {\n registerCommerceProvider(loader);\n}\n"],"names":["getSortVariables","sort","isCategory","output","undefined","COMMERCETOOLS_COOKIE_EXPIRE","COMMERCETOOLS_CART_COOKIE","options","expires","sameSite","secure","getCookies","name","cookie","Cookies","get","JSON","parse","setCookies","value","set","stringify","removeCookies","remove","getCartId","setCartId","id","removeCartCookie","createCart","_ref","_asyncToGenerator","_regenerator","m","_callee","fetch","draft","cart","w","_context","n","currency","country","query","method","body","v","a","_x","apply","arguments","getActiveCart","cartId","activeCart","variables","getLocalizedString","localizedString","locale","Object","values","withoutNils","xs","filter","x","dedup","concat","Set","currencyCode","money","price","centAmount","normalizeProductOption","option","__typename","displayName","Array","isArray","map","val","match","test","label","hexColors","normalizeProductImages","images","image","_extends","url","alt","width","dimensions","height","h","normalizeProductVariant","variant","_variant$prices$find$","_variant$prices","prices","find","_variant$prices2","sku","_variant$sku","_variant$attributes$m","_variant$attributes","attributes","attribute","key","requiresShipping","listPrice","normalizeProduct","product","_getLocalizedString","_getLocalizedString2","_product$masterVarian","_product$masterVarian2","_product$masterVarian3","slug","path","description","masterVariant","variants","flatMap","reduce","groupedAttributes","groupedAttribute","gAttr","push","normalizeLineItem","lineItem","_getLocalizedString3","_lineItem$variant$att","_lineItem$variant$att2","variantId","productId","quantity","discounts","normalizeCart","customerId","email","customerEmail","createdAt","code","taxesIncluded","taxMode","lineItems","item","lineItemsSubtotalPrice","subtotalPrice","totalPrice","normalizeCategory","category","_getLocalizedString4","_getLocalizedString5","handler","fetchOptions","fetcher","input","provider","useHook","_ref2","useData","response","swrOptions","revalidateOnFocus","useMemo","create","isEmpty","_response$data$lineIt","_response$data","data","length","enumerable","Number","isInteger","version","actions","action","_item$quantity","updatedCart","_useCart","useCart","mutate","useCallback","_addItem","_callee2","_context2","addItem","itemId","lineItemId","ctx","_ctx","removeItem","_ref3","_input$id","ValidationError","message","_ref$input","removeItemHandler","debounce","_ctx$wait","wait","initCommercetoolsSDKClient","creds","scopes","projectKey","authMiddlewareOptions","host","region","clientSecret","credentials","clientId","httpMiddlewareOptions","ClientBuilder","withProjectKey","withClientCredentialsFlow","withHttpMiddleware","build","getFetcher","client","apiRoot","createApiBuilderFromCtpClient","queryBuilder","withId","ID","search","queryArgs","expand","limit","filters","where","execute","categoryId","count","_search","products","results","found","brandId","_response$data$length","categories","getCommercetoolsProvider","cartCookie","useAddItem","useRemoveItem","useUpdateItem","useSearch","useProduct","site","useCategories","useBrands","useCommerce","useCoreCommerce","getCommerceProvider","getCoreCommerceProvider","globalContextName","commerceProviderMeta","props","type","defaultValue","globalActions","globalActionsRegistrations","importPath","importName","CommerceProviderComponent","children","React","_useDaouyQueryData","useDaouyQueryData","project","languages","error","isLoading","CommerceProvider","Error","CartActionsProvider","registerCommerceProvider","loader","customCommerceProviderMeta","doRegisterComponent","registerGlobalContext","registerAll"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@daouy/host/registerGlobalContext")),r=require("@daouy/query"),n=require("@daouypkgs/commerce"),o=require("react"),i=e(o),u=e(require("js-cookie")),a=e(require("debounce")),c=require("@commercetools/platform-sdk"),s=require("@commercetools/sdk-client-v2");function l(e,t,r,n,o,i,u){try{var a=e[i](u),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,o)}function d(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function u(e){l(i,n,o,u,a,"next",e)}function a(e){l(i,n,o,u,a,"throw",e)}u(void 0)}))}}function f(){return(f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}function v(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=Object.create((n&&n.prototype instanceof a?n:a).prototype);return m(c,"_invoke",function(r,n,o){var i,a,c,s=0,l=o||[],d=!1,f={p:0,n:0,v:e,a:v,f:v.bind(e,4),d:function(t,r){return i=t,a=0,c=e,f.n=r,u}};function v(r,n){for(a=r,c=n,t=0;!d&&s&&!o&&t<l.length;t++){var o,i=l[t],v=f.p,m=i[2];r>3?(o=m===n)&&(c=i[(a=i[4])?5:(a=3,3)],i[4]=i[5]=e):i[0]<=v&&((o=r<2&&v<i[1])?(a=0,f.v=n,f.n=i[1]):v<m&&(o=r<3||i[0]>n||n>m)&&(i[4]=r,i[5]=n,f.n=m,a=0))}if(o||r>1)return u;throw d=!0,n}return function(o,l,m){if(s>1)throw TypeError("Generator is already running");for(d&&1===l&&v(l,m),a=l,c=m;(t=a<2?e:c)||!d;){i||(a?a<3?(a>1&&(f.n=-1),v(a,c)):f.n=c:f.v=c);try{if(s=2,i){if(a||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,a<2&&(a=0)}else 1===a&&(t=i.return)&&t.call(i),a<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),a=1);i=e}else if((t=(d=f.n<0)?c:r.call(n,f))!==u)break}catch(t){i=e,a=1,c=t}finally{s=1}}return{value:t,done:d}}}(r,o,i),!0),c}var u={};function a(){}function c(){}function s(){}t=Object.getPrototypeOf;var l=[][n]?t(t([][n]())):(m(t={},n,(function(){return this})),t),d=s.prototype=a.prototype=Object.create(l);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,m(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return c.prototype=s,m(d,"constructor",s),m(s,"constructor",c),c.displayName="GeneratorFunction",m(s,o,"GeneratorFunction"),m(d),m(d,o,"Generator"),m(d,n,(function(){return this})),m(d,"toString",(function(){return"[object Generator]"})),(v=function(){return{w:i,m:f}})()}function m(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(m=function(e,t,r,n){function i(t,r){m(e,t,(function(e){return this._invoke(t,r,e)}))}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}var p=function(e,t){var r=void 0;switch(e){case"price-asc":r="price asc";break;case"price-desc":r="price desc";break;case"trending-desc":r=void 0;break;case"latest-desc":r="createdAt desc"}return r},y={expires:30,sameSite:"none",secure:!0},h=function(e){return u.set("commercetools_cart",JSON.stringify(e),y)},b=function(){return u.remove("commercetools_cart")},g=function(){var e=d(v().m((function e(t){var r,n;return v().w((function(e){for(;;)switch(e.n){case 0:return r={currency:"USD",country:"US"},e.n=1,t({query:"carts",method:"post",body:r});case 1:return(n=e.v).body?h(n.body.id):b(),e.a(2,n.body)}}),e)})));return function(t){return e.apply(this,arguments)}}(),w=function(){var e=d(v().m((function e(t){var r,n;return v().w((function(e){for(;;)switch(e.n){case 0:if(!(r=(o=u.get("commercetools_cart"))?JSON.parse(o):void 0)){e.n=2;break}return e.n=1,t({query:"carts",method:"get",variables:{id:r}});case 1:n=e.v.body,e.n=4;break;case 2:return e.n=3,g(t);case 3:n=e.v;case 4:return n?h(n.id):b(),e.a(2,n)}var o}),e)})));return function(t){return e.apply(this,arguments)}}(),O=function(e,t){return e&&t?t in e?e[t]:Object.values(e)[0]:void 0},I=function(e){return e.filter((function(e){return null!=e}))},q=function(e){return"string"==typeof e?e:JSON.stringify(e)},k=function(e){return e?{value:e.centAmount/100,currencyCode:e.currencyCode}:{value:-1,currencyCode:"USD"}},C=function(e){return{__typename:"MultipleChoiceOption",id:e.name,displayName:e.name,values:(t=Array.isArray(e.value)?e.value:[e.value],[].concat(new Set(t))).map((function(t){return e.name.match(/colou?r/gi)&&/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/i.test(t)?{label:q(t),hexColors:[t]}:{label:q(t)}}))};var t},j=function(e){var t,r,n,o,i,u,a=k(null!=(t=null==(r=e.prices)||null==(r=r.find((function(e){return"USD"===e.value.currencyCode})))?void 0:r.value)?t:null==(n=e.prices)||null==(n=n[0])?void 0:n.value).value;return{id:""+e.id,name:""+e.id,sku:null!=(o=e.sku)?o:"",price:a,options:null!=(i=null==(u=e.attributes)?void 0:u.map((function(e){return C({name:e.name,value:e.value.key})})))?i:[],requiresShipping:!1,listPrice:a}},P=function(e,t){var r,n,o,i,u,a;return{id:e.id,name:null!=(r=O(e.name,t))?r:"",slug:O(e.slug,t),path:"/"+O(e.slug,t),description:null!=(n=O(e.description,t))?n:"",price:k(null!=(o=null==(i=e.masterVariant.prices)||null==(i=i.find((function(e){return"USD"===e.value.currencyCode})))?void 0:i.value)?o:null==(u=e.masterVariant.prices)||null==(u=u[0])?void 0:u.value),images:(a=I([].concat(e.masterVariant.images?e.masterVariant.images:[],e.variants.flatMap((function(e){return e.images})))),a.map((function(e){return f({url:e.url},e.label?{alt:e.label}:{},{width:e.dimensions.w,height:e.dimensions.h})}))),variants:[e.masterVariant].concat(e.variants).map(j),options:I([].concat(e.masterVariant.attributes?e.masterVariant.attributes:[],e.variants.flatMap((function(e){return e.attributes})))).reduce((function(e,t){var r=e.find((function(e){return e.name===t.name}));return r?r.value.push(q(t.value.key)):e.push({name:t.name,value:[q(t.value.key)]}),e}),[]).map(C)}},S=function(e,t){return{id:e.id,customerId:e.customerId,email:e.customerEmail,createdAt:e.createdAt,currency:{code:"USD"},taxesIncluded:"Disabled"!==e.taxMode,lineItems:e.lineItems.map((function(e){return function(e,t){var r,n,o;return{id:e.id,variantId:""+e.variant.id,productId:e.productId,name:null!=(r=O(e.name,t))?r:"",path:"",quantity:e.quantity,discounts:[],variant:j(e.variant),options:null!=(n=null==(o=e.variant.attributes)?void 0:o.map((function(e){return{id:e.name,name:e.name,value:e.value.key}})))?n:[]}}(e,t)})),lineItemsSubtotalPrice:0,subtotalPrice:k(e.totalPrice).value,totalPrice:k(e.totalPrice).value,discounts:[]}},x=function(e,t){var r,n;return{id:e.id,name:null!=(r=O(e.name,t))?r:"",slug:null!=(n=O(e.slug,t))?n:"",path:"/"+O(e.slug,t)}},D={fetchOptions:{query:"cart",method:"get"},fetcher:function(e){return d(v().m((function t(){var r,n,o;return v().w((function(t){for(;;)switch(t.n){case 0:return r=e.fetch,n=e.provider,t.n=1,w(r);case 1:return t.a(2,(o=t.v)?S(o,n.locale):null)}}),t)})))()},useHook:function(e){var t=e.useData;return function(e){var r=t({swrOptions:f({revalidateOnFocus:!1},null==e?void 0:e.swrOptions)});return o.useMemo((function(){return Object.create(r,{isEmpty:{get:function(){var e,t;return(null!=(e=null==(t=r.data)?void 0:t.lineItems.length)?e:0)<=0},enumerable:!0}})}),[r])}}},A={fetchOptions:{query:"cart",method:"post"},fetcher:function(e){return d(v().m((function t(){var r,n,o,i,u,a;return v().w((function(t){for(;;)switch(t.n){case 0:return n=e.input,o=e.fetch,i=e.provider,t.n=1,w(o);case 1:if(u=t.v,(!n.quantity||Number.isInteger(n.quantity)&&!(n.quantity<1))&&u){t.n=2;break}return t.a(2,void 0);case 2:return t.n=3,o({query:"carts",method:"post",variables:{id:u.id},body:{version:u.version,actions:[{action:"addLineItem",variantId:+n.variantId,productId:n.productId,quantity:null!=(r=n.quantity)?r:1}]}});case 3:return(a=t.v).body?h(a.body.id):b(),t.a(2,a.body?S(a.body,i.locale):void 0)}}),t)})))()},useHook:function(e){var t=e.fetch;return function(){var e=n.useCart().mutate;return o.useCallback(function(){var r=d(v().m((function r(n){var o;return v().w((function(r){for(;;)switch(r.n){case 0:return r.n=1,t({input:n});case 1:return o=r.v,r.n=2,e(o,!1);case 2:return r.a(2,o)}}),r)})));return function(e){return r.apply(this,arguments)}}(),[t,e])}}},_={fetchOptions:{query:"cart",method:"post"},fetcher:function(e){return d(v().m((function t(){var r,n,o,i,u;return v().w((function(t){for(;;)switch(t.n){case 0:return r=e.input.itemId,n=e.fetch,o=e.provider,t.n=1,w(n);case 1:if(i=t.v,r&&i){t.n=2;break}return t.a(2,void 0);case 2:return t.n=3,n({query:"carts",method:"post",variables:{id:i.id},body:{version:i.version,actions:[{action:"removeLineItem",lineItemId:r}]}});case 3:return(u=t.v).body?h(u.body.id):b(),t.a(2,S(u.body,o.locale))}}),t)})))()},useHook:function(e){var t=e.fetch;return function(e){void 0===e&&(e={});var r=e.item,i=n.useCart().mutate;return o.useCallback(function(){var e=d(v().m((function e(o){var u,a,c;return v().w((function(e){for(;;)switch(e.n){case 0:if(a=null!=(u=null==o?void 0:o.id)?u:null==r?void 0:r.id){e.n=1;break}throw new n.ValidationError({message:"Invalid input used for this operation"});case 1:return e.n=2,t({input:{itemId:a}});case 2:return c=e.v,e.n=3,i(c,!1);case 3:return e.a(2,c)}}),e)})));return function(t){return e.apply(this,arguments)}}(),[t,i])}}},V={fetchOptions:{query:"cart",method:"post"},fetcher:function(e){return d(v().m((function t(){var r,o,i,u,a,c,s,l;return v().w((function(t){for(;;)switch(t.n){case 0:if(i=(o=e.input).item,u=o.itemId,a=e.fetch,c=e.provider,!Number.isInteger(i.quantity)){t.n=2;break}if(!(i.quantity<1)){t.n=1;break}return t.a(2,null==_.fetcher?void 0:_.fetcher({options:_.fetchOptions,input:{itemId:u},fetch:a,provider:c}));case 1:t.n=3;break;case 2:if(!i.quantity){t.n=3;break}throw new n.ValidationError({message:"The item quantity has to be a valid integer"});case 3:return t.n=4,w(a);case 4:if(s=t.v,(!i.quantity||Number.isInteger(i.quantity)&&!(i.quantity<1))&&s){t.n=5;break}return t.a(2,void 0);case 5:return t.n=6,a({query:"carts",method:"post",variables:{id:s.id},body:{version:s.version,actions:[{action:"changeLineItemQuantity",lineItemId:u,quantity:null!=(r=i.quantity)?r:1}]}});case 6:return(l=t.v).body?h(l.body.id):b(),t.a(2,l.body?S(l.body,c.locale):void 0)}}),t)})))()},useHook:function(e){var t=e.fetch;return function(e){var r;void 0===e&&(e={});var i=e.item,u=n.useCart().mutate;return o.useCallback(a(function(){var e=d(v().m((function e(r){var o,a,c;return v().w((function(e){for(;;)switch(e.n){case 0:if((a=null!=(o=r.id)?o:null==i?void 0:i.id)&&null!=r.quantity){e.n=1;break}throw new n.ValidationError({message:"Invalid input used for this operation"});case 1:return e.n=2,t({input:{item:{quantity:r.quantity},itemId:a}});case 2:return c=e.v,e.n=3,u(c,!1);case 3:return e.a(2,c)}}),e)})));return function(t){return e.apply(this,arguments)}}(),null!=(r=e.wait)?r:500),[t,u])}}},E=function(e){var t=function(e){var t={host:"https://auth."+e.region+".commercetools.com",projectKey:e.clientSecret,credentials:{clientId:e.clientId,clientSecret:e.clientSecret},scopes:["manage_project:"+e.projectKey],fetch:fetch},r={host:"https://api."+e.region+".commercetools.com",fetch:fetch};return(new s.ClientBuilder).withProjectKey(e.projectKey).withClientCredentialsFlow(t).withHttpMiddleware(r).build()}(e),r=c.createApiBuilderFromCtpClient(t).withProjectKey({projectKey:e.projectKey});return function(){var e=d(v().m((function e(t){var n,o,i,u,a;return v().w((function(e){for(;;)switch(e.n){case 0:return n=t.method,o=t.variables,u=t.body,a=r,(i=t.query)&&(a=a[i]()),null!=o&&o.id&&(a=a.withId({ID:o.id})),null!=o&&o.search&&(a=a.search()),e.n=1,a[n]({body:u,queryArgs:f({expand:null==o?void 0:o.expand,limit:null==o?void 0:o.limit},null!=o&&o.sort?{sort:o.sort}:{},null!=o&&o.search?o.search:{},null!=o&&o.filters?{filter:o.filters}:{},null!=o&&o.where?{where:o.where}:{})}).execute();case 1:return e.a(2,e.v)}}),e)})));return function(t){return e.apply(this,arguments)}}()},F={fetchOptions:{query:"productProjections",method:"get"},fetcher:function(e){return d(v().m((function t(){var r,n,o,i,u;return v().w((function(t){for(;;)switch(t.n){case 0:if(r=e.options,n=e.fetch,o=e.provider,i=e.input.id){t.n=1;break}return t.a(2,null);case 1:return t.n=2,n(f({},r,{variables:{id:i}}));case 2:return t.a(2,(u=t.v).body?P(u.body,o.locale):null)}}),t)})))()},useHook:function(e){var t=e.useData;return function(e){return void 0===e&&(e={}),t({input:[["id",e.id]],swrOptions:f({revalidateOnFocus:!1},e.swrOptions)})}}},K={fetchOptions:{method:"get",query:"productProjections"},fetcher:function(e){return d(v().m((function t(){var r,n,o,i,u,a,c,s,l,d;return v().w((function(t){for(;;)switch(t.n){case 0:return o=e.options,i=e.fetch,u=e.provider,a=(n=e.input).search,c=n.categoryId,s=n.sort,l=n.count,t.n=1,i(f({},o,{variables:f({expand:["masterData.current"],sort:p(s),limit:l},a?{search:(r={},r["text."+(null==u?void 0:u.locale)]=a,r)}:{},c?{filters:'categories.id: subtree("'+c+'")'}:{})}));case 1:return t.a(2,{products:(d=t.v).body.results.map((function(e){return P(e,u.locale)})),found:d.body.count>0})}}),t)})))()},useHook:function(e){var t=e.useData;return function(e){return void 0===e&&(e={}),t({input:[["search",e.search],["categoryId",e.categoryId],["brandId",e.brandId],["sort",e.sort],["locale",e.locale],["count",e.count]],swrOptions:f({revalidateOnFocus:!1},e.swrOptions)})}}},M={fetchOptions:{query:""},fetcher:function(e){return d(v().m((function e(){return v().w((function(e){for(;;)switch(e.n){case 0:return e.a(2,null)}}),e)})))()},useHook:function(e){var t=e.useData;return function(e){var r=t({swrOptions:f({revalidateOnFocus:!1},null==e?void 0:e.swrOptions)});return o.useMemo((function(){return Object.create(r,{isEmpty:{get:function(){var e,t;return(null!=(e=null==(t=r.data)?void 0:t.length)?e:0)<=0},enumerable:!0}})}),[r])}}},N={fetchOptions:{query:"categories",method:"get"},fetcher:function(e){return d(v().m((function t(){var r,n,o,i,u,a;return v().w((function(t){for(;;)switch(t.n){case 0:if(r=e.options,n=e.fetch,o=e.provider,i=e.input.categoryId){t.n=2;break}return t.n=1,n(f({},r));case 1:return t.a(2,(u=t.v).body?u.body.results.map((function(e){return x(e,o.locale)})):[]);case 2:return t.n=3,n(f({},r,{variables:f({},i?{id:i}:{})}));case 3:return t.a(2,(a=t.v).body?[x(a.body,o.locale)]:[]);case 4:return t.a(2)}}),t)})))()},useHook:function(e){var t=e.useData;return function(e){var r=t({input:[["categoryId",null==e?void 0:e.categoryId]],swrOptions:f({revalidateOnFocus:!1},null==e?void 0:e.swrOptions)});return o.useMemo((function(){return Object.create(r,{isEmpty:{get:function(){var e,t;return(null!=(e=null==(t=r.data)?void 0:t.length)?e:0)<=0},enumerable:!0}})}),[r])}}},H=function(e,t){return n.getCommerceProvider(function(e,t){return{locale:t,cartCookie:"commercetools_cart",cart:{useCart:D,useAddItem:A,useRemoveItem:_,useUpdateItem:V},fetcher:E(e),products:{useSearch:K,useProduct:F},site:{useCategories:N,useBrands:M}}}(e,t))},G=f({name:"daouy-commerce-commercetools-provider",displayName:"Commercetools Provider",props:{projectKey:{type:"string",defaultValue:"daouy-demo"},clientId:{type:"string",defaultValue:"B4hmK61xvz5LvdSDtsFmcflM"},clientSecret:{type:"string",defaultValue:"KhzjcjSu1Oul4aomSmOsLZOCZKbvfHqx"},region:{type:"choice",options:["us-central1.gcp","us-east-2.aws","europe-west1.gcp","eu-central-1.aws","australia-southeast1.gcp"],defaultValue:"us-central1.gcp"}}},{globalActions:n.globalActionsRegistrations},{importPath:"@daouypkgs/commercetools",importName:"CommerceProviderComponent"});function T(e){var t=e.children,o=e.projectKey,u=e.clientId,a=e.clientSecret,c=e.region,s=i.useMemo((function(){return{projectKey:o,clientId:u,clientSecret:a,region:c}}),[o,u,a,c]),l=r.useDaouyQueryData(JSON.stringify({creds:s})+"locale",d(v().m((function e(){var t,r;return v().w((function(e){for(;;)switch(e.n){case 0:return t=E(s),e.n=1,t({method:"get"});case 1:return e.a(2,(r=e.v).body?r.body.languages[0]:void 0)}}),e)})))),f=l.data,m=l.error,p=l.isLoading,y=i.useMemo((function(){return H(s,null!=f?f:"")}),[s,f]);if(p)return null;if(m||!f)throw new Error(m?m.message:"Project language not found");return i.createElement(y,null,i.createElement(n.CartActionsProvider,{globalContextName:"daouy-commerce-commercetools-provider"},t))}function U(e,r){!function(){e?e.registerGlobalContext.apply(e,arguments):t.apply(void 0,arguments)}(T,null!=r?r:G)}exports.CommerceProviderComponent=T,exports.commerceProviderMeta=G,exports.getCommerceProvider=H,exports.registerAll=function(e){U(e)},exports.registerCommerceProvider=U,exports.useCommerce=function(){return n.useCommerce()};
|
|
2
|
+
//# sourceMappingURL=commerce-commercetools.cjs.production.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commerce-commercetools.cjs.production.min.js","sources":["../src/utils/get-sort-variables.ts","../src/utils/cookies.ts","../src/const.ts","../src/utils/cart-cookie.ts","../src/utils/cart-create.ts","../src/utils/cart-active.ts","../src/utils/localized-string.ts","../src/utils/common.ts","../src/utils/normalize.ts","../src/cart/use-cart.tsx","../src/cart/use-add-item.tsx","../src/cart/use-remove-item.tsx","../src/cart/use-update-item.tsx","../src/fetcher.ts","../src/client.ts","../src/product/use-product.tsx","../src/product/use-search.tsx","../src/site/use-brands.tsx","../src/site/use-categories.tsx","../src/commercetools.tsx","../src/provider.ts","../src/registerCommerceProvider.tsx","../src/index.tsx"],"sourcesContent":["const getSortVariables = (sort?: string, isCategory: boolean = false) => {\n let output = undefined\n switch (sort) {\n case 'price-asc':\n output = 'price asc'\n break\n case 'price-desc':\n output = 'price desc'\n break\n case 'trending-desc': // default option\n output = undefined\n break\n case 'latest-desc':\n output = 'createdAt desc'\n break\n }\n return output\n}\n\nexport default getSortVariables\n","import Cookies, { CookieAttributes } from 'js-cookie';\nimport { COMMERCETOOLS_COOKIE_EXPIRE } from '../const'\n\nconst options: CookieAttributes = {\n expires: COMMERCETOOLS_COOKIE_EXPIRE,\n sameSite: \"none\",\n secure: true\n}\n\nexport const getCookies = <T>(name: string) => {\n const cookie = Cookies.get(name);\n return cookie ? (JSON.parse(cookie) as T) : undefined\n}\n\nexport const setCookies = (name: string, value: any) => Cookies.set(name, JSON.stringify(value), options);\n\nexport const removeCookies = (name: string) => Cookies.remove(name);\n","export const COMMERCETOOLS_COOKIE_EXPIRE = 30\n\nexport const COMMERCETOOLS_CART_COOKIE = 'commercetools_cart'\n\nexport const COMMERCETOOLS_CUSTOMER_COOKIE = 'commercetools_customer'\n\nexport const COMMERCETOOLS_WISHLIST_COOKIE = 'commercetools_wishlist'\n","import { COMMERCETOOLS_CART_COOKIE } from '../const'\nimport { getCookies, setCookies, removeCookies } from './cookies'\n\nexport const getCartId = () =>\n getCookies<string>(COMMERCETOOLS_CART_COOKIE)\n\nexport const setCartId = (id: string) =>\n setCookies(COMMERCETOOLS_CART_COOKIE, id)\n\nexport const removeCartCookie = () =>\n removeCookies(COMMERCETOOLS_CART_COOKIE)\n","import { Cart, CartDraft } from '@commercetools/platform-sdk'\nimport { ClientResponse } from '@commercetools/sdk-client-v2'\nimport { FetcherOptions } from '@daouypkgs/commerce'\nimport { removeCartCookie, setCartId } from './cart-cookie'\n\nconst createCart = async (\n fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>\n) => {\n const draft: CartDraft = {\n currency: 'USD',\n country: 'US',\n }\n\n const cart = await fetch<ClientResponse<Cart>, CartDraft>({\n query: 'carts',\n method: 'post',\n body: draft,\n })\n\n if (!cart.body) {\n removeCartCookie()\n } else {\n setCartId(cart.body.id)\n }\n return cart.body\n}\n\nexport default createCart\n","import { Cart, ClientResponse } from '@commercetools/platform-sdk'\nimport { FetcherOptions } from '@daouypkgs/commerce'\nimport { getCartId, removeCartCookie, setCartId } from './cart-cookie'\nimport createCart from './cart-create'\n\nconst getActiveCart = async (\n fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>\n) => {\n const cartId = getCartId()\n let activeCart\n if (cartId) {\n activeCart = (\n await fetch<ClientResponse<Cart>>({\n query: 'carts',\n method: 'get',\n variables: {\n id: cartId,\n },\n })\n ).body\n } else {\n activeCart = await createCart(fetch)\n }\n\n if (!activeCart) {\n removeCartCookie()\n } else {\n setCartId(activeCart.id)\n }\n return activeCart\n}\n\nexport default getActiveCart\n","const getLocalizedString = (\n localizedString: Record<string, string> | undefined,\n locale: string | undefined\n) =>\n !localizedString || !locale\n ? undefined\n : locale in localizedString\n ? localizedString[locale]\n : Object.values(localizedString)[0]\n\nexport default getLocalizedString\n","export const withoutNils = <T>(xs: Array<T | undefined | null>): T[] =>\n xs.filter((x): x is T => x != null)\n\nexport const dedup = <T>(xs: Array<T>): T[] => [...new Set(xs)]\n","import { Category } from '../types/site'\nimport {\n ProductProjection,\n Image,\n ProductVariant,\n Category as CommercetoolsCategory,\n Cart as CommercetoolsCart,\n LineItem as CommercetoolsLineItem,\n TypedMoney,\n Customer,\n ShoppingList,\n ProductData,\n} from '@commercetools/platform-sdk'\nimport { dedup, withoutNils } from './common'\nimport getLocalizedString from './localized-string'\nimport { Cart, LineItem } from '../types/cart'\nimport { Product, ProductOption } from '../types/product'\n\nconst currencyCode = 'USD'\n\nconst stringify = (value: any) =>\n typeof value === 'string' ? value : JSON.stringify(value)\n\nconst money = (price: TypedMoney | undefined) => {\n return price\n ? {\n value: price.centAmount / 100,\n currencyCode: price.currencyCode,\n }\n : {\n value: -1.0, // error\n currencyCode,\n }\n}\n\nconst normalizeProductOption = (option: {\n name: string\n value: string | string[]\n}): ProductOption => ({\n __typename: 'MultipleChoiceOption',\n id: option.name,\n displayName: option.name,\n values: dedup(\n Array.isArray(option.value) ? option.value : [option.value]\n ).map((val) => {\n if (\n option.name.match(/colou?r/gi) &&\n /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/i.test(val)\n ) {\n return {\n label: stringify(val),\n hexColors: [val],\n }\n } else {\n return {\n label: stringify(val),\n }\n }\n }),\n})\n\nconst normalizeProductImages = (images: Image[]) =>\n images.map((image) => ({\n url: image.url,\n ...(image.label ? { alt: image.label } : {}),\n width: image.dimensions.w,\n height: image.dimensions.h,\n }))\n\nconst normalizeProductVariant = (variant: ProductVariant) => {\n const price = money(\n variant.prices?.find((price) => price.value.currencyCode === currencyCode)\n ?.value ?? variant.prices?.[0]?.value\n ).value\n\n return {\n id: `${variant.id}`,\n name: `${variant.id}`,\n sku: variant.sku ?? '',\n price,\n options:\n variant.attributes?.map((attribute) =>\n normalizeProductOption({\n name: attribute.name,\n value: attribute.value.key,\n })\n ) ?? [],\n requiresShipping: false,\n listPrice: price,\n }\n}\n\nexport const normalizeProduct = (\n product: ProductProjection | (ProductData & { id: string }),\n locale: string,\n): Product => ({\n id: product.id,\n name: getLocalizedString(product.name, locale) ?? \"\",\n slug: getLocalizedString(product.slug, locale),\n path: `/${getLocalizedString(product.slug, locale)}`,\n description: getLocalizedString(product.description, locale) ?? '',\n price: money(\n product.masterVariant.prices?.find(\n (price) => price.value.currencyCode === currencyCode\n )?.value ?? product.masterVariant.prices?.[0]?.value\n ),\n images: normalizeProductImages(\n withoutNils([\n ...(product.masterVariant.images ? product.masterVariant.images : []),\n ...product.variants.flatMap((variant) => variant.images),\n ])\n ),\n variants: [product.masterVariant, ...product.variants].map(\n normalizeProductVariant\n ),\n options: withoutNils([\n ...(product.masterVariant.attributes\n ? product.masterVariant.attributes\n : []),\n ...product.variants.flatMap((variant) => variant.attributes),\n ])\n .reduce(\n (groupedAttributes, attribute) => {\n const groupedAttribute = groupedAttributes.find(\n (gAttr) => gAttr.name === attribute.name\n )\n if (groupedAttribute) {\n groupedAttribute.value.push(stringify(attribute.value.key))\n } else {\n groupedAttributes.push({\n name: attribute.name,\n value: [stringify(attribute.value.key)],\n })\n }\n return groupedAttributes\n },\n [] as {\n name: string\n value: string[]\n }[]\n )\n .map(normalizeProductOption),\n})\n\nconst normalizeLineItem = (\n lineItem: CommercetoolsLineItem,\n locale: string,\n): LineItem => ({\n id: lineItem.id,\n variantId: `${lineItem.variant.id}`,\n productId: lineItem.productId,\n name: getLocalizedString(lineItem.name, locale) ?? \"\",\n path: '',\n quantity: lineItem.quantity,\n discounts: [],\n variant: normalizeProductVariant(lineItem.variant),\n options:\n lineItem.variant.attributes?.map((attribute) => ({\n id: attribute.name,\n name: attribute.name,\n value: attribute.value.key,\n })) ?? [],\n})\n\nexport const normalizeCart = (\n cart: CommercetoolsCart,\n locale: string,\n): Cart => ({\n id: cart.id,\n customerId: cart.customerId,\n email: cart.customerEmail,\n createdAt: cart.createdAt,\n currency: {\n code: currencyCode,\n },\n taxesIncluded: cart.taxMode !== 'Disabled',\n lineItems: cart.lineItems.map((item) => normalizeLineItem(item, locale)),\n lineItemsSubtotalPrice: 0,\n subtotalPrice: money(cart.totalPrice).value,\n totalPrice: money(cart.totalPrice).value,\n discounts: [],\n})\n\nexport const normalizeCategory = (\n category: CommercetoolsCategory,\n locale: string,\n): Category => ({\n id: category.id,\n name: getLocalizedString(category.name, locale) ?? \"\",\n slug: getLocalizedString(category.slug, locale) ?? \"\",\n path: `/${getLocalizedString(category.slug, locale)}`,\n})\n\nexport const normalizeCustomer = (customer: Customer) => ({\n firstName: customer.firstName,\n lastName: customer.lastName,\n email: customer.email,\n})\n\nexport const normalizeWishlist = (wishlist: ShoppingList) => ({\n items:\n wishlist.lineItems?.map((item) => ({\n id: item.id,\n product_id: item.productId,\n variant_id: item.variantId!,\n })) ?? [],\n})\n","import { useMemo } from 'react'\nimport { useCart as useCommerceCart, UseCart } from '@daouypkgs/commerce'\nimport { SWRHook } from '@daouypkgs/commerce'\nimport { getActiveCart, normalizeCart } from '../utils'\nimport { GetCartHook } from '../types/cart'\n\nexport default useCommerceCart as UseCart<typeof handler>\n\nexport const handler: SWRHook<GetCartHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"get\",\n },\n async fetcher({ input, options, fetch, provider }) {\n const activeCart = await getActiveCart(fetch);\n return activeCart ? normalizeCart(activeCart, provider!.locale) : null;\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n })\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.lineItems.length ?? 0) <= 0\n },\n enumerable: true,\n },\n }),\n [response]\n )\n },\n}\n","import { Cart, CartUpdate, ClientResponse } from \"@commercetools/platform-sdk\";\nimport type { MutationHook } from \"@daouypkgs/commerce\";\nimport { useAddItem, UseAddItem } from \"@daouypkgs/commerce\";\nimport { useCallback } from \"react\";\nimport type { AddItemHook } from \"../types/cart\";\nimport {\n getActiveCart,\n normalizeCart,\n removeCartCookie,\n setCartId,\n} from \"../utils\";\nimport useCart from \"./use-cart\";\n\nexport default useAddItem as UseAddItem<typeof handler>;\n\nexport const handler: MutationHook<AddItemHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"post\",\n },\n async fetcher({ input: item, options, fetch, provider }) {\n const activeCart = await getActiveCart(fetch);\n if (\n (item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)) ||\n !activeCart\n ) {\n return undefined;\n }\n const updatedCart = await fetch<ClientResponse<Cart>, CartUpdate>({\n query: \"carts\",\n method: \"post\",\n variables: {\n id: activeCart.id,\n },\n body: {\n version: activeCart.version,\n actions: [\n {\n action: \"addLineItem\",\n variantId: +item.variantId,\n productId: item.productId,\n quantity: item.quantity ?? 1,\n },\n ],\n },\n });\n if (updatedCart.body) {\n setCartId(updatedCart.body.id);\n } else {\n removeCartCookie();\n }\n return updatedCart.body\n ? normalizeCart(updatedCart.body, provider!.locale)\n : undefined;\n },\n useHook:\n ({ fetch }) =>\n () => {\n const { mutate } = useCart();\n return useCallback(\n async function addItem(input) {\n const data = await fetch({ input });\n await mutate(data, false);\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","import {\n Cart as CommerceToolsCart,\n CartUpdate,\n ClientResponse,\n} from \"@commercetools/platform-sdk\";\nimport type {\n HookFetcherContext,\n MutationHook,\n MutationHookContext,\n} from \"@daouypkgs/commerce\";\nimport {\n UseRemoveItem,\n useRemoveItem,\n ValidationError,\n} from \"@daouypkgs/commerce\";\nimport { useCallback } from \"react\";\nimport type { Cart, LineItem, RemoveItemHook } from \"../types/cart\";\nimport {\n getActiveCart,\n normalizeCart,\n removeCartCookie,\n setCartId,\n} from \"../utils\";\nimport useCart from \"./use-cart\";\n\nexport type RemoveItemFn<T = any> = T extends LineItem\n ? (input?: RemoveItemActionInput<T>) => Promise<Cart | null | undefined>\n : (input: RemoveItemActionInput<T>) => Promise<Cart | null>;\n\nexport type RemoveItemActionInput<T = any> = T extends LineItem\n ? Partial<RemoveItemHook[\"actionInput\"]>\n : RemoveItemHook[\"actionInput\"];\n\nexport default useRemoveItem as UseRemoveItem<typeof handler>;\n\nexport const handler: MutationHook<RemoveItemHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"post\",\n },\n async fetcher({\n input: { itemId },\n options,\n fetch,\n provider,\n }: HookFetcherContext<RemoveItemHook>) {\n const activeCart = await getActiveCart(fetch);\n if (!itemId || !activeCart) {\n return undefined;\n }\n const updatedCart = await fetch<\n ClientResponse<CommerceToolsCart>,\n CartUpdate\n >({\n query: \"carts\",\n method: \"post\",\n variables: {\n id: activeCart.id,\n },\n body: {\n version: activeCart.version,\n actions: [\n {\n action: \"removeLineItem\",\n lineItemId: itemId,\n },\n ],\n },\n });\n if (updatedCart.body) {\n setCartId(updatedCart.body.id);\n } else {\n removeCartCookie();\n }\n return normalizeCart(updatedCart.body, provider!.locale);\n },\n useHook:\n ({ fetch }: MutationHookContext<RemoveItemHook>) =>\n <T extends LineItem | undefined = undefined>(ctx: { item?: T } = {}) => {\n const { item } = ctx;\n const { mutate } = useCart();\n const removeItem: RemoveItemFn<LineItem> = async (input) => {\n const itemId = input?.id ?? item?.id;\n\n if (!itemId) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({ input: { itemId } });\n await mutate(data, false);\n return data;\n };\n\n return useCallback(removeItem as RemoveItemFn<T>, [fetch, mutate]);\n },\n};\n","import { Cart, CartUpdate, ClientResponse } from \"@commercetools/platform-sdk\";\nimport type { MutationHook, MutationHookContext } from \"@daouypkgs/commerce\";\nimport {\n useUpdateItem,\n UseUpdateItem,\n ValidationError,\n} from \"@daouypkgs/commerce\";\nimport debounce from \"debounce\";\nimport { useCallback } from \"react\";\nimport type { LineItem, UpdateItemHook } from \"../types/cart\";\nimport {\n getActiveCart,\n normalizeCart,\n removeCartCookie,\n setCartId,\n} from \"../utils\";\nimport useCart from \"./use-cart\";\nimport { handler as removeItemHandler } from \"./use-remove-item\";\n\nexport type UpdateItemActionInput<T = any> = T extends LineItem\n ? Partial<UpdateItemHook[\"actionInput\"]>\n : UpdateItemHook[\"actionInput\"];\n\nexport default useUpdateItem as UseUpdateItem<typeof handler>;\n\nexport const handler: MutationHook<UpdateItemHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"post\",\n },\n async fetcher({ input: { item, itemId }, options, fetch, provider }) {\n if (Number.isInteger(item.quantity)) {\n // Also allow the update hook to remove an item if the quantity is lower than 1\n if (item.quantity! < 1) {\n return removeItemHandler.fetcher?.({\n options: removeItemHandler.fetchOptions,\n input: { itemId },\n fetch,\n provider,\n });\n }\n } else if (item.quantity) {\n throw new ValidationError({\n message: \"The item quantity has to be a valid integer\",\n });\n }\n\n const activeCart = await getActiveCart(fetch);\n if (\n (item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)) ||\n !activeCart\n ) {\n return undefined;\n }\n const updatedCart = await fetch<ClientResponse<Cart>, CartUpdate>({\n query: \"carts\",\n method: \"post\",\n variables: {\n id: activeCart.id,\n },\n body: {\n version: activeCart.version,\n actions: [\n {\n action: \"changeLineItemQuantity\",\n lineItemId: itemId,\n quantity: item.quantity ?? 1,\n },\n ],\n },\n });\n if (updatedCart.body) {\n setCartId(updatedCart.body.id);\n } else {\n removeCartCookie();\n }\n return updatedCart.body\n ? normalizeCart(updatedCart.body, provider!.locale)\n : undefined;\n },\n useHook:\n ({ fetch }: MutationHookContext<UpdateItemHook>) =>\n <T extends LineItem | undefined = undefined>(\n ctx: {\n item?: T;\n wait?: number;\n } = {}\n ) => {\n const { item } = ctx;\n const { mutate } = useCart() as any;\n\n return useCallback(\n debounce(async (input: UpdateItemActionInput<T>) => {\n const itemId = input.id ?? item?.id;\n if (!itemId || input.quantity == null) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({\n input: {\n item: {\n quantity: input.quantity,\n },\n itemId,\n },\n });\n await mutate(data, false);\n return data;\n }, ctx.wait ?? 500),\n [fetch, mutate]\n );\n },\n};\n","import { Fetcher } from '@daouypkgs/commerce'\nimport { CommercetoolsCredentials } from './provider'\nimport { createApiBuilderFromCtpClient } from '@commercetools/platform-sdk'\nimport initCommercetoolsSDKClient from './client'\n\nexport const getFetcher: \n (creds: CommercetoolsCredentials) => Fetcher =\n (creds) => {\n const client = initCommercetoolsSDKClient(creds);\n const apiRoot = createApiBuilderFromCtpClient(client).withProjectKey({\n projectKey: creds.projectKey!,\n })\n return async ({\n method, variables, query, body\n }) => {\n let queryBuilder: any = apiRoot;\n if (query) {\n queryBuilder = queryBuilder[query]();\n } \n if (variables?.id) {\n queryBuilder = queryBuilder.withId({ ID: variables.id });\n }\n if (variables?.search) {\n queryBuilder = queryBuilder.search();\n }\n return await queryBuilder[method!]({\n body,\n queryArgs: {\n expand: variables?.expand,\n limit: variables?.limit,\n ...(variables?.sort ? { sort: variables.sort } : {}),\n ...(variables?.search ? variables.search : {}),\n ...(variables?.filters ? { filter: variables.filters } : {}),\n ...(variables?.where ? { where: variables.where } : {})\n },\n })\n .execute()\n }\n}\n","import {\n AuthMiddlewareOptions,\n ClientBuilder,\n HttpMiddlewareOptions,\n } from '@commercetools/sdk-client-v2'\nimport { CommercetoolsCredentials } from './provider'\n\nconst initCommercetoolsSDKClient = (creds: CommercetoolsCredentials) => {\n const scopes = [`manage_project:${creds.projectKey}`]\n \n // Configure authMiddlewareOptions\n const authMiddlewareOptions: AuthMiddlewareOptions = {\n host: `https://auth.${creds.region}.commercetools.com`,\n projectKey: creds.clientSecret,\n credentials: {\n clientId: creds.clientId,\n clientSecret: creds.clientSecret,\n },\n scopes,\n fetch,\n }\n \n // Configure httpMiddlewareOptions\n const httpMiddlewareOptions: HttpMiddlewareOptions = {\n host: `https://api.${creds.region}.commercetools.com`,\n fetch,\n }\n \n // Export the ClientBuilder\n return new ClientBuilder()\n .withProjectKey(creds.projectKey)\n .withClientCredentialsFlow(authMiddlewareOptions)\n .withHttpMiddleware(httpMiddlewareOptions)\n .build()\n}\n \n export default initCommercetoolsSDKClient","import { SWRHook } from '@daouypkgs/commerce'\nimport { useProduct, UseProduct } from '@daouypkgs/commerce'\nimport {\n Product,\n ProductProjection,\n ClientResponse,\n} from '@commercetools/platform-sdk'\nimport { normalizeProduct } from '../utils'\nimport type { GetProductHook } from '@daouypkgs/commerce'\n\nexport type GetProductInput = {\n id?: string\n}\n\nexport default useProduct as UseProduct<typeof handler>\n\nexport const handler: SWRHook<GetProductHook> = {\n fetchOptions: {\n query: \"productProjections\",\n method: \"get\"\n },\n async fetcher({ input, options, fetch, provider }) {\n const { id } = input\n if (!id) {\n return null\n }\n\n const product = await fetch<ClientResponse<ProductProjection>>({\n ...options,\n variables: {\n id\n },\n });\n return product.body \n ? normalizeProduct(product.body, provider!.locale)\n : null\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n ['id', input.id],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n })\n },\n}\n","import {\n ClientResponse,\n ProductProjectionPagedQueryResponse,\n} from \"@commercetools/platform-sdk\";\nimport { useSearch } from \"@daouypkgs/commerce\";\nimport { getSortVariables, normalizeProduct } from \"../utils\";\n\nimport type {\n SearchProductsHook,\n SWRHook,\n UseSearch,\n} from \"@daouypkgs/commerce\";\n\nexport type SearchProductsInput = {\n search?: string;\n categoryId?: number;\n brandId?: number;\n sort?: string;\n locale?: string;\n count?: number;\n};\n\nconst useSearchTyped: UseSearch<typeof handler> = useSearch;\nexport default useSearchTyped;\n\nexport const handler: SWRHook<SearchProductsHook> = {\n fetchOptions: {\n method: \"get\",\n query: \"productProjections\",\n },\n async fetcher({ input, options, fetch, provider }) {\n const { search, categoryId, sort, count } = input;\n const response = await fetch<\n ClientResponse<ProductProjectionPagedQueryResponse>\n >({\n ...options,\n variables: {\n expand: [\"masterData.current\"],\n sort: getSortVariables(sort),\n limit: count,\n ...(search\n ? // eslint-disable-next-line\n { search: { [`text.${provider?.locale!}`]: search } }\n : {}),\n ...(categoryId\n ? { filters: `categories.id: subtree(\"${categoryId}\")` }\n : {}),\n },\n });\n return {\n products: response.body.results.map((product) =>\n normalizeProduct(product, provider!.locale)\n ),\n found: response.body.count > 0,\n };\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n [\"search\", input.search],\n [\"categoryId\", input.categoryId],\n [\"brandId\", input.brandId],\n [\"sort\", input.sort],\n [\"locale\", input.locale],\n [\"count\", input.count],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","import { SWRHook } from '@daouypkgs/commerce'\nimport { UseBrands, useBrands } from '@daouypkgs/commerce'\nimport { useMemo } from \"react\";\nimport { GetBrandsHook } from \"../types/site\"\n\nexport default useBrands as UseBrands<typeof handler>\n\nexport const handler: SWRHook<GetBrandsHook> = {\n fetchOptions: {\n query: \"\"\n },\n async fetcher({ input, options, fetch }) {\n return null;\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n })\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0\n },\n enumerable: true,\n },\n }),\n [response]\n )\n },\n}\n","import { SWRHook, UseCategories, useCategories } from \"@daouypkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { GetCategoriesHook } from \"../types/site\";\nimport {\n ClientResponse,\n Category,\n CategoryPagedQueryResponse,\n} from '@commercetools/platform-sdk'\nimport { normalizeCategory } from \"../utils\";\n\nexport default useCategories as UseCategories<typeof handler>;\n\nexport const handler: SWRHook<GetCategoriesHook> = {\n fetchOptions: {\n query: \"categories\",\n method: \"get\",\n },\n async fetcher({ input, options, fetch, provider }) {\n const { categoryId } = input;\n if (!categoryId) {\n const categories = await fetch<ClientResponse<CategoryPagedQueryResponse>>({\n ...options\n })\n return categories.body ? categories.body.results.map((category) => normalizeCategory(category, provider!.locale)) : [];\n } else {\n const category = await fetch<ClientResponse<Category>>({\n ...options,\n variables: {\n ...(categoryId ? { id: categoryId } : { })\n }\n })\n return category.body ? [normalizeCategory(category.body, provider!.locale)] : [];\n }\n },\n useHook: ({ useData }) => (input) => {\n const response = useData({\n input: [[\"categoryId\", input?.categoryId]],\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","import {\n getCommerceProvider as getCoreCommerceProvider,\n useCommerce as useCoreCommerce,\n} from '@daouypkgs/commerce'\nimport { getCommercetoolsProvider, CommercetoolsProvider, CommercetoolsCredentials } from './provider'\n\nexport type { CommercetoolsProvider }\n\nexport const useCommerce = () => useCoreCommerce<CommercetoolsProvider>()\n\nexport const getCommerceProvider = (creds: CommercetoolsCredentials, locale: string) => \n getCoreCommerceProvider(getCommercetoolsProvider(creds, locale))\n\n","import { Fetcher } from \"@daouypkgs/commerce\";\nimport { handler as useAddItem } from \"./cart/use-add-item\";\nimport { handler as useCart } from \"./cart/use-cart\";\nimport { handler as useRemoveItem } from \"./cart/use-remove-item\";\nimport { handler as useUpdateItem } from \"./cart/use-update-item\";\nimport { COMMERCETOOLS_CART_COOKIE } from \"./const\";\nimport { getFetcher } from \"./fetcher\";\nimport { handler as useProduct } from \"./product/use-product\";\nimport { handler as useSearch } from \"./product/use-search\";\nimport { handler as useBrands } from \"./site/use-brands\";\nimport { handler as useCategories } from \"./site/use-categories\";\n\nexport interface CommercetoolsCredentials {\n projectKey: string;\n clientId: string;\n clientSecret: string;\n region: string;\n}\n\nexport const getCommercetoolsProvider = (\n creds: CommercetoolsCredentials,\n locale: string\n) => ({\n locale,\n cartCookie: COMMERCETOOLS_CART_COOKIE,\n cart: { useCart, useAddItem, useRemoveItem, useUpdateItem },\n fetcher: getFetcher(creds),\n products: { useSearch, useProduct },\n site: { useCategories, useBrands },\n});\n\nexport type CommercetoolsProvider = {\n locale: string;\n cartCookie: string;\n fetcher: Fetcher;\n cart: {\n useCart: typeof useCart;\n useAddItem: typeof useAddItem;\n };\n products: {\n useSearch: typeof useSearch;\n useProduct: typeof useProduct;\n };\n site: {\n useCategories: typeof useCategories;\n useBrands: typeof useBrands;\n };\n};\n","import { ClientResponse, Project } from \"@commercetools/platform-sdk\";\nimport { GlobalContextMeta } from \"@daouy/host\";\nimport registerGlobalContext from \"@daouy/host/registerGlobalContext\";\nimport { useDaouyQueryData } from \"@daouy/query\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@daouypkgs/commerce\";\nimport React from \"react\";\nimport { getCommerceProvider } from \"./commercetools\";\nimport { getFetcher } from \"./fetcher\";\nimport { CommercetoolsCredentials } from \"./provider\";\nimport { Registerable } from \"./registerable\";\n\ninterface CommerceProviderProps extends CommercetoolsCredentials {\n children?: React.ReactNode;\n}\n\nconst globalContextName = \"daouy-commerce-commercetools-provider\";\n\nexport const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps> = {\n name: globalContextName,\n displayName: \"Commercetools Provider\",\n props: {\n projectKey: {\n type: \"string\",\n defaultValue: \"daouy-demo\",\n },\n clientId: {\n type: \"string\",\n defaultValue: \"B4hmK61xvz5LvdSDtsFmcflM\",\n },\n clientSecret: {\n type: \"string\",\n defaultValue: \"KhzjcjSu1Oul4aomSmOsLZOCZKbvfHqx\",\n },\n region: {\n type: \"choice\",\n options: [\n \"us-central1.gcp\",\n \"us-east-2.aws\",\n \"europe-west1.gcp\",\n \"eu-central-1.aws\",\n \"australia-southeast1.gcp\",\n ],\n defaultValue: \"us-central1.gcp\",\n },\n },\n ...{ globalActions: globalActionsRegistrations },\n importPath: \"@daouypkgs/commercetools\",\n importName: \"CommerceProviderComponent\",\n};\n\nexport function CommerceProviderComponent(props: CommerceProviderProps) {\n const { children, projectKey, clientId, clientSecret, region } = props;\n\n const creds = React.useMemo(\n () => ({ projectKey, clientId, clientSecret, region }),\n [projectKey, clientId, clientSecret, region]\n );\n\n const {\n data: locale,\n error,\n isLoading,\n } = useDaouyQueryData(JSON.stringify({ creds }) + \"locale\", async () => {\n const fetcher = getFetcher(creds);\n const project: ClientResponse<Project> = await fetcher({ method: \"get\" });\n return project.body ? project.body.languages[0] : undefined;\n });\n\n const CommerceProvider = React.useMemo(\n () => getCommerceProvider(creds, locale ?? \"\"),\n [creds, locale]\n );\n\n if (isLoading) {\n return null;\n } else if (error || !locale) {\n throw new Error(error ? error.message : \"Project language not found\");\n }\n\n return (\n <CommerceProvider>\n <CartActionsProvider globalContextName={globalContextName}>\n {children}\n </CartActionsProvider>\n </CommerceProvider>\n );\n}\n\nexport function registerCommerceProvider(\n loader?: Registerable,\n customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>\n) {\n const doRegisterComponent: typeof registerGlobalContext = (...args) =>\n loader\n ? loader.registerGlobalContext(...args)\n : registerGlobalContext(...args);\n doRegisterComponent(\n CommerceProviderComponent,\n customCommerceProviderMeta ?? commerceProviderMeta\n );\n}\n","import { Registerable } from \"./registerable\";\nimport { registerCommerceProvider } from \"./registerCommerceProvider\";\nexport * from \"./registerable\";\nexport * from \"./registerCommerceProvider\";\nexport * from \"./commercetools\";\n\nexport function registerAll(loader?: Registerable) {\n registerCommerceProvider(loader);\n}\n"],"names":["getSortVariables","sort","isCategory","output","undefined","options","expires","sameSite","secure","setCartId","id","Cookies","set","JSON","stringify","removeCartCookie","remove","createCart","_ref","_asyncToGenerator","_regenerator","m","_callee","fetch","draft","cart","w","_context","n","currency","country","query","method","body","v","a","_x","apply","arguments","getActiveCart","cartId","activeCart","cookie","get","parse","variables","getLocalizedString","localizedString","locale","Object","values","withoutNils","xs","filter","x","value","money","price","centAmount","currencyCode","normalizeProductOption","option","__typename","name","displayName","Array","isArray","concat","Set","map","val","match","test","label","hexColors","normalizeProductVariant","variant","_variant$prices$find$","_variant$prices","prices","find","_variant$prices2","sku","_variant$sku","_variant$attributes$m","_variant$attributes","attributes","attribute","key","requiresShipping","listPrice","normalizeProduct","product","_getLocalizedString","_getLocalizedString2","_product$masterVarian","_product$masterVarian2","_product$masterVarian3","images","slug","path","description","masterVariant","variants","flatMap","image","_extends","url","alt","width","dimensions","height","h","reduce","groupedAttributes","groupedAttribute","gAttr","push","normalizeCart","customerId","email","customerEmail","createdAt","code","taxesIncluded","taxMode","lineItems","item","lineItem","_getLocalizedString3","_lineItem$variant$att","_lineItem$variant$att2","variantId","productId","quantity","discounts","normalizeLineItem","lineItemsSubtotalPrice","subtotalPrice","totalPrice","normalizeCategory","category","_getLocalizedString4","_getLocalizedString5","handler","fetchOptions","fetcher","input","provider","useHook","_ref2","useData","response","swrOptions","revalidateOnFocus","useMemo","create","isEmpty","_response$data$lineIt","_response$data","data","length","enumerable","Number","isInteger","version","actions","action","_item$quantity","updatedCart","mutate","useCart","useCallback","_addItem","_callee2","_context2","itemId","lineItemId","ctx","_ref3","_input$id","ValidationError","message","_ref$input","removeItemHandler","debounce","_ctx$wait","wait","getFetcher","creds","client","authMiddlewareOptions","host","region","projectKey","clientSecret","credentials","clientId","scopes","httpMiddlewareOptions","ClientBuilder","withProjectKey","withClientCredentialsFlow","withHttpMiddleware","build","initCommercetoolsSDKClient","apiRoot","createApiBuilderFromCtpClient","queryBuilder","withId","ID","search","queryArgs","expand","limit","filters","where","execute","categoryId","count","_search","products","results","found","brandId","_response$data$length","categories","getCommerceProvider","getCoreCommerceProvider","cartCookie","useAddItem","useRemoveItem","useUpdateItem","useSearch","useProduct","site","useCategories","useBrands","getCommercetoolsProvider","commerceProviderMeta","props","type","defaultValue","globalActions","globalActionsRegistrations","importPath","importName","CommerceProviderComponent","children","React","_useDaouyQueryData","useDaouyQueryData","project","languages","error","isLoading","CommerceProvider","Error","CartActionsProvider","globalContextName","registerCommerceProvider","loader","customCommerceProviderMeta","registerGlobalContext","doRegisterComponent","useCoreCommerce"],"mappings":"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"}
|