@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.
- package/dist/cart/index.d.ts +2 -2
- package/dist/cart/use-add-item.d.ts +5 -5
- package/dist/cart/use-cart.d.ts +5 -5
- package/dist/cart/use-remove-item.d.ts +11 -11
- package/dist/cart/use-update-item.d.ts +11 -11
- package/dist/client.d.ts +3 -3
- package/dist/commerce-commercetools.cjs.development.js +8 -7
- package/dist/commerce-commercetools.cjs.development.js.map +1 -1
- package/dist/commerce-commercetools.cjs.production.min.js +1 -1
- package/dist/commerce-commercetools.cjs.production.min.js.map +1 -1
- package/dist/commerce-commercetools.esm.js +8 -7
- package/dist/commerce-commercetools.esm.js.map +1 -1
- package/dist/commercetools.d.ts +5 -5
- package/dist/const.d.ts +4 -4
- package/dist/fetcher.d.ts +3 -3
- package/dist/index.d.ts +5 -5
- package/dist/product/use-product.d.ts +8 -8
- package/dist/product/use-search.d.ts +12 -12
- package/dist/provider.d.ts +49 -49
- package/dist/registerCommerceProvider.d.ts +11 -11
- package/dist/registerable.d.ts +6 -6
- package/dist/site/use-brands.d.ts +5 -5
- package/dist/site/use-categories.d.ts +5 -5
- package/dist/types/cart.d.ts +24 -24
- package/dist/types/index.d.ts +4 -4
- package/dist/types/product.d.ts +14 -14
- package/dist/types/site.d.ts +7 -7
- package/dist/utils/cart-active.d.ts +4 -4
- package/dist/utils/cart-cookie.d.ts +3 -3
- package/dist/utils/cart-create.d.ts +4 -4
- package/dist/utils/common.d.ts +2 -2
- package/dist/utils/cookies.d.ts +3 -3
- package/dist/utils/get-sort-variables.d.ts +2 -2
- package/dist/utils/index.d.ts +7 -7
- package/dist/utils/localized-string.d.ts +2 -2
- package/dist/utils/normalize.d.ts +21 -21
- 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 =
|
|
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 =
|
|
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 =
|
|
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: [[
|
|
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(
|
|
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(
|
|
986
|
-
var 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({
|