@plasmicpkgs/commerce-commercetools 0.0.197 → 0.0.198

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.
Files changed (37) hide show
  1. package/dist/cart/index.d.ts +2 -2
  2. package/dist/cart/use-add-item.d.ts +5 -5
  3. package/dist/cart/use-cart.d.ts +5 -5
  4. package/dist/cart/use-remove-item.d.ts +11 -11
  5. package/dist/cart/use-update-item.d.ts +11 -11
  6. package/dist/client.d.ts +3 -3
  7. package/dist/commerce-commercetools.cjs.development.js +8 -7
  8. package/dist/commerce-commercetools.cjs.development.js.map +1 -1
  9. package/dist/commerce-commercetools.cjs.production.min.js +1 -1
  10. package/dist/commerce-commercetools.cjs.production.min.js.map +1 -1
  11. package/dist/commerce-commercetools.esm.js +8 -7
  12. package/dist/commerce-commercetools.esm.js.map +1 -1
  13. package/dist/commercetools.d.ts +5 -5
  14. package/dist/const.d.ts +4 -4
  15. package/dist/fetcher.d.ts +3 -3
  16. package/dist/index.d.ts +5 -5
  17. package/dist/product/use-product.d.ts +8 -8
  18. package/dist/product/use-search.d.ts +12 -12
  19. package/dist/provider.d.ts +49 -49
  20. package/dist/registerCommerceProvider.d.ts +11 -11
  21. package/dist/registerable.d.ts +6 -6
  22. package/dist/site/use-brands.d.ts +5 -5
  23. package/dist/site/use-categories.d.ts +5 -5
  24. package/dist/types/cart.d.ts +24 -24
  25. package/dist/types/index.d.ts +4 -4
  26. package/dist/types/product.d.ts +14 -14
  27. package/dist/types/site.d.ts +7 -7
  28. package/dist/utils/cart-active.d.ts +4 -4
  29. package/dist/utils/cart-cookie.d.ts +3 -3
  30. package/dist/utils/cart-create.d.ts +4 -4
  31. package/dist/utils/common.d.ts +2 -2
  32. package/dist/utils/cookies.d.ts +3 -3
  33. package/dist/utils/get-sort-variables.d.ts +2 -2
  34. package/dist/utils/index.d.ts +7 -7
  35. package/dist/utils/localized-string.d.ts +2 -2
  36. package/dist/utils/normalize.d.ts +21 -21
  37. package/package.json +6 -6
@@ -1 +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 '@plasmicpkgs/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 '@plasmicpkgs/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 '@plasmicpkgs/commerce'\nimport { SWRHook } from '@plasmicpkgs/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 \"@plasmicpkgs/commerce\";\nimport { useAddItem, UseAddItem } from \"@plasmicpkgs/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 \"@plasmicpkgs/commerce\";\nimport {\n UseRemoveItem,\n useRemoveItem,\n ValidationError,\n} from \"@plasmicpkgs/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 \"@plasmicpkgs/commerce\";\nimport {\n useUpdateItem,\n UseUpdateItem,\n ValidationError,\n} from \"@plasmicpkgs/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 '@plasmicpkgs/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 '@plasmicpkgs/commerce'\nimport { useProduct, UseProduct } from '@plasmicpkgs/commerce'\nimport {\n Product,\n ProductProjection,\n ClientResponse,\n} from '@commercetools/platform-sdk'\nimport { normalizeProduct } from '../utils'\nimport type { GetProductHook } from '@plasmicpkgs/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 \"@plasmicpkgs/commerce\";\nimport { getSortVariables, normalizeProduct } from \"../utils\";\n\nimport type {\n SearchProductsHook,\n SWRHook,\n UseSearch,\n} from \"@plasmicpkgs/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 '@plasmicpkgs/commerce'\nimport { UseBrands, useBrands } from '@plasmicpkgs/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 \"@plasmicpkgs/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 '@plasmicpkgs/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 \"@plasmicpkgs/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 \"@plasmicapp/host\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@plasmicpkgs/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 = \"plasmic-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: \"plasmic-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: \"@plasmicpkgs/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 } = usePlasmicQueryData(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","_usePlasmicQueryData","usePlasmicQueryData","project","languages","error","isLoading","CommerceProvider","Error","CartActionsProvider","globalContextName","registerCommerceProvider","loader","customCommerceProviderMeta","registerGlobalContext","doRegisterComponent","useCoreCommerce"],"mappings":"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"}
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 '@plasmicpkgs/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 '@plasmicpkgs/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 {\n SWRHook,\n UseCart,\n useCart as useCommerceCart,\n} from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { GetCartHook } from \"../types/cart\";\nimport { getActiveCart, normalizeCart } from \"../utils\";\n\nconst _default: UseCart<typeof handler> = useCommerceCart as UseCart<\n typeof handler\n>;\nexport default _default;\n\nexport const handler: SWRHook<GetCartHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"get\",\n },\n async fetcher({ 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 \"@plasmicpkgs/commerce\";\nimport { useAddItem, UseAddItem } from \"@plasmicpkgs/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 \"@plasmicpkgs/commerce\";\nimport {\n UseRemoveItem,\n useRemoveItem,\n ValidationError,\n} from \"@plasmicpkgs/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 \"@plasmicpkgs/commerce\";\nimport {\n useUpdateItem,\n UseUpdateItem,\n ValidationError,\n} from \"@plasmicpkgs/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 '@plasmicpkgs/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 { ClientResponse, ProductProjection } from \"@commercetools/platform-sdk\";\nimport type { GetProductHook } from \"@plasmicpkgs/commerce\";\nimport { SWRHook, useProduct, UseProduct } from \"@plasmicpkgs/commerce\";\nimport { normalizeProduct } from \"../utils\";\n\nexport type GetProductInput = {\n id?: string;\n};\n\nconst _default: UseProduct<typeof handler> = useProduct as UseProduct<\n typeof handler\n>;\nexport default _default;\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: [[\"id\", input.id]],\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 \"@plasmicpkgs/commerce\";\nimport { getSortVariables, normalizeProduct } from \"../utils\";\n\nimport type {\n SearchProductsHook,\n SWRHook,\n UseSearch,\n} from \"@plasmicpkgs/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, UseBrands, useBrands } from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { GetBrandsHook } from \"../types/site\";\n\nconst _default: UseBrands<typeof handler> = useBrands as UseBrands<\n typeof handler\n>;\nexport default _default;\n\nexport const handler: SWRHook<GetBrandsHook> = {\n fetchOptions: {\n query: \"\",\n },\n async fetcher() {\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 {\n Category,\n CategoryPagedQueryResponse,\n ClientResponse,\n} from \"@commercetools/platform-sdk\";\nimport { SWRHook, UseCategories, useCategories } from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { GetCategoriesHook } from \"../types/site\";\nimport { normalizeCategory } from \"../utils\";\n\nconst _default: UseCategories<typeof handler> = useCategories as UseCategories<\n typeof handler\n>;\nexport default _default;\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<\n ClientResponse<CategoryPagedQueryResponse>\n >({\n ...options,\n });\n return categories.body\n ? categories.body.results.map((category) =>\n normalizeCategory(category, provider!.locale)\n )\n : [];\n } else {\n const category = await fetch<ClientResponse<Category>>({\n ...options,\n variables: {\n ...(categoryId ? { id: categoryId } : {}),\n },\n });\n return category.body\n ? [normalizeCategory(category.body, provider!.locale)]\n : [];\n }\n },\n useHook:\n ({ useData }) =>\n (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 '@plasmicpkgs/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 \"@plasmicpkgs/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 \"@plasmicapp/host\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@plasmicpkgs/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 = \"plasmic-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: \"plasmic-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: \"@plasmicpkgs/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 } = usePlasmicQueryData(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","_default","useCommerceCart","handler","fetchOptions","fetcher","provider","useHook","_ref2","useData","input","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","_usePlasmicQueryData","usePlasmicQueryData","project","languages","error","isLoading","CommerceProvider","Error","CartActionsProvider","globalContextName","registerCommerceProvider","loader","customCommerceProviderMeta","registerGlobalContext","doRegisterComponent","useCoreCommerce"],"mappings":"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"}
@@ -433,6 +433,7 @@ var normalizeCategory = function normalizeCategory(category, locale) {
433
433
  };
434
434
  };
435
435
 
436
+ var _default = useCart;
436
437
  var handler = {
437
438
  fetchOptions: {
438
439
  query: "cart",
@@ -532,7 +533,7 @@ var handler$1 = {
532
533
  useHook: function useHook(_ref2) {
533
534
  var fetch = _ref2.fetch;
534
535
  return function () {
535
- var _useCart = useCart(),
536
+ var _useCart = _default(),
536
537
  mutate = _useCart.mutate;
537
538
  return useCallback(/*#__PURE__*/function () {
538
539
  var _addItem = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(input) {
@@ -619,7 +620,7 @@ var handler$2 = {
619
620
  }
620
621
  var _ctx = ctx,
621
622
  item = _ctx.item;
622
- var _useCart = useCart(),
623
+ var _useCart = _default(),
623
624
  mutate = _useCart.mutate;
624
625
  var removeItem = /*#__PURE__*/function () {
625
626
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(input) {
@@ -749,7 +750,7 @@ var handler$3 = {
749
750
  }
750
751
  var _ctx = ctx,
751
752
  item = _ctx.item;
752
- var _useCart = useCart(),
753
+ var _useCart = _default(),
753
754
  mutate = _useCart.mutate;
754
755
  return useCallback(debounce(/*#__PURE__*/function () {
755
756
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(input) {
@@ -903,7 +904,7 @@ var handler$4 = {
903
904
  input = {};
904
905
  }
905
906
  return useData({
906
- input: [['id', input.id]],
907
+ input: [["id", input.id]],
907
908
  swrOptions: _extends({
908
909
  revalidateOnFocus: false
909
910
  }, input.swrOptions)
@@ -972,7 +973,7 @@ var handler$6 = {
972
973
  fetchOptions: {
973
974
  query: ""
974
975
  },
975
- fetcher: function fetcher(_ref) {
976
+ fetcher: function fetcher() {
976
977
  return _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
977
978
  return _regenerator().w(function (_context) {
978
979
  while (1) switch (_context.n) {
@@ -982,8 +983,8 @@ var handler$6 = {
982
983
  }, _callee);
983
984
  }))();
984
985
  },
985
- useHook: function useHook(_ref2) {
986
- var useData = _ref2.useData;
986
+ useHook: function useHook(_ref) {
987
+ var useData = _ref.useData;
987
988
  return function (input) {
988
989
  var response = useData({
989
990
  swrOptions: _extends({