@daouypkgs/commerce-commercetools 0.0.183
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/cart/index.d.ts +2 -0
- package/dist/cart/use-add-item.d.ts +5 -0
- package/dist/cart/use-cart.d.ts +5 -0
- package/dist/cart/use-remove-item.d.ts +11 -0
- package/dist/cart/use-update-item.d.ts +11 -0
- package/dist/client.d.ts +3 -0
- package/dist/commerce-commercetools.cjs.development.js +1201 -0
- package/dist/commerce-commercetools.cjs.development.js.map +1 -0
- package/dist/commerce-commercetools.cjs.production.min.js +2 -0
- package/dist/commerce-commercetools.cjs.production.min.js.map +1 -0
- package/dist/commerce-commercetools.esm.js +1189 -0
- package/dist/commerce-commercetools.esm.js.map +1 -0
- package/dist/commercetools.d.ts +5 -0
- package/dist/const.d.ts +4 -0
- package/dist/fetcher.d.ts +3 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +8 -0
- package/dist/product/use-product.d.ts +8 -0
- package/dist/product/use-search.d.ts +12 -0
- package/dist/provider.d.ts +49 -0
- package/dist/registerCommerceProvider.d.ts +11 -0
- package/dist/registerable.d.ts +6 -0
- package/dist/site/use-brands.d.ts +5 -0
- package/dist/site/use-categories.d.ts +5 -0
- package/dist/types/cart.d.ts +24 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/product.d.ts +14 -0
- package/dist/types/site.d.ts +7 -0
- package/dist/utils/cart-active.d.ts +4 -0
- package/dist/utils/cart-cookie.d.ts +3 -0
- package/dist/utils/cart-create.d.ts +4 -0
- package/dist/utils/common.d.ts +2 -0
- package/dist/utils/cookies.d.ts +3 -0
- package/dist/utils/get-sort-variables.d.ts +2 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/localized-string.d.ts +2 -0
- package/dist/utils/normalize.d.ts +21 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commerce-commercetools.esm.js","sources":["../src/utils/get-sort-variables.ts","../src/const.ts","../src/utils/cookies.ts","../src/utils/cart-cookie.ts","../src/utils/cart-create.ts","../src/utils/cart-active.ts","../src/utils/localized-string.ts","../src/utils/common.ts","../src/utils/normalize.ts","../src/cart/use-cart.tsx","../src/cart/use-add-item.tsx","../src/cart/use-remove-item.tsx","../src/cart/use-update-item.tsx","../src/client.ts","../src/fetcher.ts","../src/product/use-product.tsx","../src/product/use-search.tsx","../src/site/use-brands.tsx","../src/site/use-categories.tsx","../src/provider.ts","../src/commercetools.tsx","../src/registerCommerceProvider.tsx","../src/index.tsx"],"sourcesContent":["const getSortVariables = (sort?: string, isCategory: boolean = false) => {\n let output = undefined\n switch (sort) {\n case 'price-asc':\n output = 'price asc'\n break\n case 'price-desc':\n output = 'price desc'\n break\n case 'trending-desc': // default option\n output = undefined\n break\n case 'latest-desc':\n output = 'createdAt desc'\n break\n }\n return output\n}\n\nexport default getSortVariables\n","export const COMMERCETOOLS_COOKIE_EXPIRE = 30\n\nexport const COMMERCETOOLS_CART_COOKIE = 'commercetools_cart'\n\nexport const COMMERCETOOLS_CUSTOMER_COOKIE = 'commercetools_customer'\n\nexport const COMMERCETOOLS_WISHLIST_COOKIE = 'commercetools_wishlist'\n","import Cookies, { CookieAttributes } from 'js-cookie';\nimport { COMMERCETOOLS_COOKIE_EXPIRE } from '../const'\n\nconst options: CookieAttributes = {\n expires: COMMERCETOOLS_COOKIE_EXPIRE,\n sameSite: \"none\",\n secure: true\n}\n\nexport const getCookies = <T>(name: string) => {\n const cookie = Cookies.get(name);\n return cookie ? (JSON.parse(cookie) as T) : undefined\n}\n\nexport const setCookies = (name: string, value: any) => Cookies.set(name, JSON.stringify(value), options);\n\nexport const removeCookies = (name: string) => Cookies.remove(name);\n","import { COMMERCETOOLS_CART_COOKIE } from '../const'\nimport { getCookies, setCookies, removeCookies } from './cookies'\n\nexport const getCartId = () =>\n getCookies<string>(COMMERCETOOLS_CART_COOKIE)\n\nexport const setCartId = (id: string) =>\n setCookies(COMMERCETOOLS_CART_COOKIE, id)\n\nexport const removeCartCookie = () =>\n removeCookies(COMMERCETOOLS_CART_COOKIE)\n","import { Cart, CartDraft } from '@commercetools/platform-sdk'\nimport { ClientResponse } from '@commercetools/sdk-client-v2'\nimport { FetcherOptions } from '@daouypkgs/commerce'\nimport { removeCartCookie, setCartId } from './cart-cookie'\n\nconst createCart = async (\n fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>\n) => {\n const draft: CartDraft = {\n currency: 'USD',\n country: 'US',\n }\n\n const cart = await fetch<ClientResponse<Cart>, CartDraft>({\n query: 'carts',\n method: 'post',\n body: draft,\n })\n\n if (!cart.body) {\n removeCartCookie()\n } else {\n setCartId(cart.body.id)\n }\n return cart.body\n}\n\nexport default createCart\n","import { Cart, ClientResponse } from '@commercetools/platform-sdk'\nimport { FetcherOptions } from '@daouypkgs/commerce'\nimport { getCartId, removeCartCookie, setCartId } from './cart-cookie'\nimport createCart from './cart-create'\n\nconst getActiveCart = async (\n fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>\n) => {\n const cartId = getCartId()\n let activeCart\n if (cartId) {\n activeCart = (\n await fetch<ClientResponse<Cart>>({\n query: 'carts',\n method: 'get',\n variables: {\n id: cartId,\n },\n })\n ).body\n } else {\n activeCart = await createCart(fetch)\n }\n\n if (!activeCart) {\n removeCartCookie()\n } else {\n setCartId(activeCart.id)\n }\n return activeCart\n}\n\nexport default getActiveCart\n","const getLocalizedString = (\n localizedString: Record<string, string> | undefined,\n locale: string | undefined\n) =>\n !localizedString || !locale\n ? undefined\n : locale in localizedString\n ? localizedString[locale]\n : Object.values(localizedString)[0]\n\nexport default getLocalizedString\n","export const withoutNils = <T>(xs: Array<T | undefined | null>): T[] =>\n xs.filter((x): x is T => x != null)\n\nexport const dedup = <T>(xs: Array<T>): T[] => [...new Set(xs)]\n","import { Category } from '../types/site'\nimport {\n ProductProjection,\n Image,\n ProductVariant,\n Category as CommercetoolsCategory,\n Cart as CommercetoolsCart,\n LineItem as CommercetoolsLineItem,\n TypedMoney,\n Customer,\n ShoppingList,\n ProductData,\n} from '@commercetools/platform-sdk'\nimport { dedup, withoutNils } from './common'\nimport getLocalizedString from './localized-string'\nimport { Cart, LineItem } from '../types/cart'\nimport { Product, ProductOption } from '../types/product'\n\nconst currencyCode = 'USD'\n\nconst stringify = (value: any) =>\n typeof value === 'string' ? value : JSON.stringify(value)\n\nconst money = (price: TypedMoney | undefined) => {\n return price\n ? {\n value: price.centAmount / 100,\n currencyCode: price.currencyCode,\n }\n : {\n value: -1.0, // error\n currencyCode,\n }\n}\n\nconst normalizeProductOption = (option: {\n name: string\n value: string | string[]\n}): ProductOption => ({\n __typename: 'MultipleChoiceOption',\n id: option.name,\n displayName: option.name,\n values: dedup(\n Array.isArray(option.value) ? option.value : [option.value]\n ).map((val) => {\n if (\n option.name.match(/colou?r/gi) &&\n /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/i.test(val)\n ) {\n return {\n label: stringify(val),\n hexColors: [val],\n }\n } else {\n return {\n label: stringify(val),\n }\n }\n }),\n})\n\nconst normalizeProductImages = (images: Image[]) =>\n images.map((image) => ({\n url: image.url,\n ...(image.label ? { alt: image.label } : {}),\n width: image.dimensions.w,\n height: image.dimensions.h,\n }))\n\nconst normalizeProductVariant = (variant: ProductVariant) => {\n const price = money(\n variant.prices?.find((price) => price.value.currencyCode === currencyCode)\n ?.value ?? variant.prices?.[0]?.value\n ).value\n\n return {\n id: `${variant.id}`,\n name: `${variant.id}`,\n sku: variant.sku ?? '',\n price,\n options:\n variant.attributes?.map((attribute) =>\n normalizeProductOption({\n name: attribute.name,\n value: attribute.value.key,\n })\n ) ?? [],\n requiresShipping: false,\n listPrice: price,\n }\n}\n\nexport const normalizeProduct = (\n product: ProductProjection | (ProductData & { id: string }),\n locale: string,\n): Product => ({\n id: product.id,\n name: getLocalizedString(product.name, locale) ?? \"\",\n slug: getLocalizedString(product.slug, locale),\n path: `/${getLocalizedString(product.slug, locale)}`,\n description: getLocalizedString(product.description, locale) ?? '',\n price: money(\n product.masterVariant.prices?.find(\n (price) => price.value.currencyCode === currencyCode\n )?.value ?? product.masterVariant.prices?.[0]?.value\n ),\n images: normalizeProductImages(\n withoutNils([\n ...(product.masterVariant.images ? product.masterVariant.images : []),\n ...product.variants.flatMap((variant) => variant.images),\n ])\n ),\n variants: [product.masterVariant, ...product.variants].map(\n normalizeProductVariant\n ),\n options: withoutNils([\n ...(product.masterVariant.attributes\n ? product.masterVariant.attributes\n : []),\n ...product.variants.flatMap((variant) => variant.attributes),\n ])\n .reduce(\n (groupedAttributes, attribute) => {\n const groupedAttribute = groupedAttributes.find(\n (gAttr) => gAttr.name === attribute.name\n )\n if (groupedAttribute) {\n groupedAttribute.value.push(stringify(attribute.value.key))\n } else {\n groupedAttributes.push({\n name: attribute.name,\n value: [stringify(attribute.value.key)],\n })\n }\n return groupedAttributes\n },\n [] as {\n name: string\n value: string[]\n }[]\n )\n .map(normalizeProductOption),\n})\n\nconst normalizeLineItem = (\n lineItem: CommercetoolsLineItem,\n locale: string,\n): LineItem => ({\n id: lineItem.id,\n variantId: `${lineItem.variant.id}`,\n productId: lineItem.productId,\n name: getLocalizedString(lineItem.name, locale) ?? \"\",\n path: '',\n quantity: lineItem.quantity,\n discounts: [],\n variant: normalizeProductVariant(lineItem.variant),\n options:\n lineItem.variant.attributes?.map((attribute) => ({\n id: attribute.name,\n name: attribute.name,\n value: attribute.value.key,\n })) ?? [],\n})\n\nexport const normalizeCart = (\n cart: CommercetoolsCart,\n locale: string,\n): Cart => ({\n id: cart.id,\n customerId: cart.customerId,\n email: cart.customerEmail,\n createdAt: cart.createdAt,\n currency: {\n code: currencyCode,\n },\n taxesIncluded: cart.taxMode !== 'Disabled',\n lineItems: cart.lineItems.map((item) => normalizeLineItem(item, locale)),\n lineItemsSubtotalPrice: 0,\n subtotalPrice: money(cart.totalPrice).value,\n totalPrice: money(cart.totalPrice).value,\n discounts: [],\n})\n\nexport const normalizeCategory = (\n category: CommercetoolsCategory,\n locale: string,\n): Category => ({\n id: category.id,\n name: getLocalizedString(category.name, locale) ?? \"\",\n slug: getLocalizedString(category.slug, locale) ?? \"\",\n path: `/${getLocalizedString(category.slug, locale)}`,\n})\n\nexport const normalizeCustomer = (customer: Customer) => ({\n firstName: customer.firstName,\n lastName: customer.lastName,\n email: customer.email,\n})\n\nexport const normalizeWishlist = (wishlist: ShoppingList) => ({\n items:\n wishlist.lineItems?.map((item) => ({\n id: item.id,\n product_id: item.productId,\n variant_id: item.variantId!,\n })) ?? [],\n})\n","import { useMemo } from 'react'\nimport { useCart as useCommerceCart, UseCart } from '@daouypkgs/commerce'\nimport { SWRHook } from '@daouypkgs/commerce'\nimport { getActiveCart, normalizeCart } from '../utils'\nimport { GetCartHook } from '../types/cart'\n\nexport default useCommerceCart as UseCart<typeof handler>\n\nexport const handler: SWRHook<GetCartHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"get\",\n },\n async fetcher({ input, options, fetch, provider }) {\n const activeCart = await getActiveCart(fetch);\n return activeCart ? normalizeCart(activeCart, provider!.locale) : null;\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n })\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.lineItems.length ?? 0) <= 0\n },\n enumerable: true,\n },\n }),\n [response]\n )\n },\n}\n","import { Cart, CartUpdate, ClientResponse } from \"@commercetools/platform-sdk\";\nimport type { MutationHook } from \"@daouypkgs/commerce\";\nimport { useAddItem, UseAddItem } from \"@daouypkgs/commerce\";\nimport { useCallback } from \"react\";\nimport type { AddItemHook } from \"../types/cart\";\nimport {\n getActiveCart,\n normalizeCart,\n removeCartCookie,\n setCartId,\n} from \"../utils\";\nimport useCart from \"./use-cart\";\n\nexport default useAddItem as UseAddItem<typeof handler>;\n\nexport const handler: MutationHook<AddItemHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"post\",\n },\n async fetcher({ input: item, options, fetch, provider }) {\n const activeCart = await getActiveCart(fetch);\n if (\n (item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)) ||\n !activeCart\n ) {\n return undefined;\n }\n const updatedCart = await fetch<ClientResponse<Cart>, CartUpdate>({\n query: \"carts\",\n method: \"post\",\n variables: {\n id: activeCart.id,\n },\n body: {\n version: activeCart.version,\n actions: [\n {\n action: \"addLineItem\",\n variantId: +item.variantId,\n productId: item.productId,\n quantity: item.quantity ?? 1,\n },\n ],\n },\n });\n if (updatedCart.body) {\n setCartId(updatedCart.body.id);\n } else {\n removeCartCookie();\n }\n return updatedCart.body\n ? normalizeCart(updatedCart.body, provider!.locale)\n : undefined;\n },\n useHook:\n ({ fetch }) =>\n () => {\n const { mutate } = useCart();\n return useCallback(\n async function addItem(input) {\n const data = await fetch({ input });\n await mutate(data, false);\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","import {\n Cart as CommerceToolsCart,\n CartUpdate,\n ClientResponse,\n} from \"@commercetools/platform-sdk\";\nimport type {\n HookFetcherContext,\n MutationHook,\n MutationHookContext,\n} from \"@daouypkgs/commerce\";\nimport {\n UseRemoveItem,\n useRemoveItem,\n ValidationError,\n} from \"@daouypkgs/commerce\";\nimport { useCallback } from \"react\";\nimport type { Cart, LineItem, RemoveItemHook } from \"../types/cart\";\nimport {\n getActiveCart,\n normalizeCart,\n removeCartCookie,\n setCartId,\n} from \"../utils\";\nimport useCart from \"./use-cart\";\n\nexport type RemoveItemFn<T = any> = T extends LineItem\n ? (input?: RemoveItemActionInput<T>) => Promise<Cart | null | undefined>\n : (input: RemoveItemActionInput<T>) => Promise<Cart | null>;\n\nexport type RemoveItemActionInput<T = any> = T extends LineItem\n ? Partial<RemoveItemHook[\"actionInput\"]>\n : RemoveItemHook[\"actionInput\"];\n\nexport default useRemoveItem as UseRemoveItem<typeof handler>;\n\nexport const handler: MutationHook<RemoveItemHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"post\",\n },\n async fetcher({\n input: { itemId },\n options,\n fetch,\n provider,\n }: HookFetcherContext<RemoveItemHook>) {\n const activeCart = await getActiveCart(fetch);\n if (!itemId || !activeCart) {\n return undefined;\n }\n const updatedCart = await fetch<\n ClientResponse<CommerceToolsCart>,\n CartUpdate\n >({\n query: \"carts\",\n method: \"post\",\n variables: {\n id: activeCart.id,\n },\n body: {\n version: activeCart.version,\n actions: [\n {\n action: \"removeLineItem\",\n lineItemId: itemId,\n },\n ],\n },\n });\n if (updatedCart.body) {\n setCartId(updatedCart.body.id);\n } else {\n removeCartCookie();\n }\n return normalizeCart(updatedCart.body, provider!.locale);\n },\n useHook:\n ({ fetch }: MutationHookContext<RemoveItemHook>) =>\n <T extends LineItem | undefined = undefined>(ctx: { item?: T } = {}) => {\n const { item } = ctx;\n const { mutate } = useCart();\n const removeItem: RemoveItemFn<LineItem> = async (input) => {\n const itemId = input?.id ?? item?.id;\n\n if (!itemId) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({ input: { itemId } });\n await mutate(data, false);\n return data;\n };\n\n return useCallback(removeItem as RemoveItemFn<T>, [fetch, mutate]);\n },\n};\n","import { Cart, CartUpdate, ClientResponse } from \"@commercetools/platform-sdk\";\nimport type { MutationHook, MutationHookContext } from \"@daouypkgs/commerce\";\nimport {\n useUpdateItem,\n UseUpdateItem,\n ValidationError,\n} from \"@daouypkgs/commerce\";\nimport debounce from \"debounce\";\nimport { useCallback } from \"react\";\nimport type { LineItem, UpdateItemHook } from \"../types/cart\";\nimport {\n getActiveCart,\n normalizeCart,\n removeCartCookie,\n setCartId,\n} from \"../utils\";\nimport useCart from \"./use-cart\";\nimport { handler as removeItemHandler } from \"./use-remove-item\";\n\nexport type UpdateItemActionInput<T = any> = T extends LineItem\n ? Partial<UpdateItemHook[\"actionInput\"]>\n : UpdateItemHook[\"actionInput\"];\n\nexport default useUpdateItem as UseUpdateItem<typeof handler>;\n\nexport const handler: MutationHook<UpdateItemHook> = {\n fetchOptions: {\n query: \"cart\",\n method: \"post\",\n },\n async fetcher({ input: { item, itemId }, options, fetch, provider }) {\n if (Number.isInteger(item.quantity)) {\n // Also allow the update hook to remove an item if the quantity is lower than 1\n if (item.quantity! < 1) {\n return removeItemHandler.fetcher?.({\n options: removeItemHandler.fetchOptions,\n input: { itemId },\n fetch,\n provider,\n });\n }\n } else if (item.quantity) {\n throw new ValidationError({\n message: \"The item quantity has to be a valid integer\",\n });\n }\n\n const activeCart = await getActiveCart(fetch);\n if (\n (item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)) ||\n !activeCart\n ) {\n return undefined;\n }\n const updatedCart = await fetch<ClientResponse<Cart>, CartUpdate>({\n query: \"carts\",\n method: \"post\",\n variables: {\n id: activeCart.id,\n },\n body: {\n version: activeCart.version,\n actions: [\n {\n action: \"changeLineItemQuantity\",\n lineItemId: itemId,\n quantity: item.quantity ?? 1,\n },\n ],\n },\n });\n if (updatedCart.body) {\n setCartId(updatedCart.body.id);\n } else {\n removeCartCookie();\n }\n return updatedCart.body\n ? normalizeCart(updatedCart.body, provider!.locale)\n : undefined;\n },\n useHook:\n ({ fetch }: MutationHookContext<UpdateItemHook>) =>\n <T extends LineItem | undefined = undefined>(\n ctx: {\n item?: T;\n wait?: number;\n } = {}\n ) => {\n const { item } = ctx;\n const { mutate } = useCart() as any;\n\n return useCallback(\n debounce(async (input: UpdateItemActionInput<T>) => {\n const itemId = input.id ?? item?.id;\n if (!itemId || input.quantity == null) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({\n input: {\n item: {\n quantity: input.quantity,\n },\n itemId,\n },\n });\n await mutate(data, false);\n return data;\n }, ctx.wait ?? 500),\n [fetch, mutate]\n );\n },\n};\n","import {\n AuthMiddlewareOptions,\n ClientBuilder,\n HttpMiddlewareOptions,\n } from '@commercetools/sdk-client-v2'\nimport { CommercetoolsCredentials } from './provider'\n\nconst initCommercetoolsSDKClient = (creds: CommercetoolsCredentials) => {\n const scopes = [`manage_project:${creds.projectKey}`]\n \n // Configure authMiddlewareOptions\n const authMiddlewareOptions: AuthMiddlewareOptions = {\n host: `https://auth.${creds.region}.commercetools.com`,\n projectKey: creds.clientSecret,\n credentials: {\n clientId: creds.clientId,\n clientSecret: creds.clientSecret,\n },\n scopes,\n fetch,\n }\n \n // Configure httpMiddlewareOptions\n const httpMiddlewareOptions: HttpMiddlewareOptions = {\n host: `https://api.${creds.region}.commercetools.com`,\n fetch,\n }\n \n // Export the ClientBuilder\n return new ClientBuilder()\n .withProjectKey(creds.projectKey)\n .withClientCredentialsFlow(authMiddlewareOptions)\n .withHttpMiddleware(httpMiddlewareOptions)\n .build()\n}\n \n export default initCommercetoolsSDKClient","import { Fetcher } from '@daouypkgs/commerce'\nimport { CommercetoolsCredentials } from './provider'\nimport { createApiBuilderFromCtpClient } from '@commercetools/platform-sdk'\nimport initCommercetoolsSDKClient from './client'\n\nexport const getFetcher: \n (creds: CommercetoolsCredentials) => Fetcher =\n (creds) => {\n const client = initCommercetoolsSDKClient(creds);\n const apiRoot = createApiBuilderFromCtpClient(client).withProjectKey({\n projectKey: creds.projectKey!,\n })\n return async ({\n method, variables, query, body\n }) => {\n let queryBuilder: any = apiRoot;\n if (query) {\n queryBuilder = queryBuilder[query]();\n } \n if (variables?.id) {\n queryBuilder = queryBuilder.withId({ ID: variables.id });\n }\n if (variables?.search) {\n queryBuilder = queryBuilder.search();\n }\n return await queryBuilder[method!]({\n body,\n queryArgs: {\n expand: variables?.expand,\n limit: variables?.limit,\n ...(variables?.sort ? { sort: variables.sort } : {}),\n ...(variables?.search ? variables.search : {}),\n ...(variables?.filters ? { filter: variables.filters } : {}),\n ...(variables?.where ? { where: variables.where } : {})\n },\n })\n .execute()\n }\n}\n","import { SWRHook } from '@daouypkgs/commerce'\nimport { useProduct, UseProduct } from '@daouypkgs/commerce'\nimport {\n Product,\n ProductProjection,\n ClientResponse,\n} from '@commercetools/platform-sdk'\nimport { normalizeProduct } from '../utils'\nimport type { GetProductHook } from '@daouypkgs/commerce'\n\nexport type GetProductInput = {\n id?: string\n}\n\nexport default useProduct as UseProduct<typeof handler>\n\nexport const handler: SWRHook<GetProductHook> = {\n fetchOptions: {\n query: \"productProjections\",\n method: \"get\"\n },\n async fetcher({ input, options, fetch, provider }) {\n const { id } = input\n if (!id) {\n return null\n }\n\n const product = await fetch<ClientResponse<ProductProjection>>({\n ...options,\n variables: {\n id\n },\n });\n return product.body \n ? normalizeProduct(product.body, provider!.locale)\n : null\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n ['id', input.id],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n })\n },\n}\n","import {\n ClientResponse,\n ProductProjectionPagedQueryResponse,\n} from \"@commercetools/platform-sdk\";\nimport { useSearch } from \"@daouypkgs/commerce\";\nimport { getSortVariables, normalizeProduct } from \"../utils\";\n\nimport type {\n SearchProductsHook,\n SWRHook,\n UseSearch,\n} from \"@daouypkgs/commerce\";\n\nexport type SearchProductsInput = {\n search?: string;\n categoryId?: number;\n brandId?: number;\n sort?: string;\n locale?: string;\n count?: number;\n};\n\nconst useSearchTyped: UseSearch<typeof handler> = useSearch;\nexport default useSearchTyped;\n\nexport const handler: SWRHook<SearchProductsHook> = {\n fetchOptions: {\n method: \"get\",\n query: \"productProjections\",\n },\n async fetcher({ input, options, fetch, provider }) {\n const { search, categoryId, sort, count } = input;\n const response = await fetch<\n ClientResponse<ProductProjectionPagedQueryResponse>\n >({\n ...options,\n variables: {\n expand: [\"masterData.current\"],\n sort: getSortVariables(sort),\n limit: count,\n ...(search\n ? // eslint-disable-next-line\n { search: { [`text.${provider?.locale!}`]: search } }\n : {}),\n ...(categoryId\n ? { filters: `categories.id: subtree(\"${categoryId}\")` }\n : {}),\n },\n });\n return {\n products: response.body.results.map((product) =>\n normalizeProduct(product, provider!.locale)\n ),\n found: response.body.count > 0,\n };\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n [\"search\", input.search],\n [\"categoryId\", input.categoryId],\n [\"brandId\", input.brandId],\n [\"sort\", input.sort],\n [\"locale\", input.locale],\n [\"count\", input.count],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","import { SWRHook } from '@daouypkgs/commerce'\nimport { UseBrands, useBrands } from '@daouypkgs/commerce'\nimport { useMemo } from \"react\";\nimport { GetBrandsHook } from \"../types/site\"\n\nexport default useBrands as UseBrands<typeof handler>\n\nexport const handler: SWRHook<GetBrandsHook> = {\n fetchOptions: {\n query: \"\"\n },\n async fetcher({ input, options, fetch }) {\n return null;\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n })\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0\n },\n enumerable: true,\n },\n }),\n [response]\n )\n },\n}\n","import { SWRHook, UseCategories, useCategories } from \"@daouypkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { GetCategoriesHook } from \"../types/site\";\nimport {\n ClientResponse,\n Category,\n CategoryPagedQueryResponse,\n} from '@commercetools/platform-sdk'\nimport { normalizeCategory } from \"../utils\";\n\nexport default useCategories as UseCategories<typeof handler>;\n\nexport const handler: SWRHook<GetCategoriesHook> = {\n fetchOptions: {\n query: \"categories\",\n method: \"get\",\n },\n async fetcher({ input, options, fetch, provider }) {\n const { categoryId } = input;\n if (!categoryId) {\n const categories = await fetch<ClientResponse<CategoryPagedQueryResponse>>({\n ...options\n })\n return categories.body ? categories.body.results.map((category) => normalizeCategory(category, provider!.locale)) : [];\n } else {\n const category = await fetch<ClientResponse<Category>>({\n ...options,\n variables: {\n ...(categoryId ? { id: categoryId } : { })\n }\n })\n return category.body ? [normalizeCategory(category.body, provider!.locale)] : [];\n }\n },\n useHook: ({ useData }) => (input) => {\n const response = useData({\n input: [[\"categoryId\", input?.categoryId]],\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","import { Fetcher } from \"@daouypkgs/commerce\";\nimport { handler as useAddItem } from \"./cart/use-add-item\";\nimport { handler as useCart } from \"./cart/use-cart\";\nimport { handler as useRemoveItem } from \"./cart/use-remove-item\";\nimport { handler as useUpdateItem } from \"./cart/use-update-item\";\nimport { COMMERCETOOLS_CART_COOKIE } from \"./const\";\nimport { getFetcher } from \"./fetcher\";\nimport { handler as useProduct } from \"./product/use-product\";\nimport { handler as useSearch } from \"./product/use-search\";\nimport { handler as useBrands } from \"./site/use-brands\";\nimport { handler as useCategories } from \"./site/use-categories\";\n\nexport interface CommercetoolsCredentials {\n projectKey: string;\n clientId: string;\n clientSecret: string;\n region: string;\n}\n\nexport const getCommercetoolsProvider = (\n creds: CommercetoolsCredentials,\n locale: string\n) => ({\n locale,\n cartCookie: COMMERCETOOLS_CART_COOKIE,\n cart: { useCart, useAddItem, useRemoveItem, useUpdateItem },\n fetcher: getFetcher(creds),\n products: { useSearch, useProduct },\n site: { useCategories, useBrands },\n});\n\nexport type CommercetoolsProvider = {\n locale: string;\n cartCookie: string;\n fetcher: Fetcher;\n cart: {\n useCart: typeof useCart;\n useAddItem: typeof useAddItem;\n };\n products: {\n useSearch: typeof useSearch;\n useProduct: typeof useProduct;\n };\n site: {\n useCategories: typeof useCategories;\n useBrands: typeof useBrands;\n };\n};\n","import {\n getCommerceProvider as getCoreCommerceProvider,\n useCommerce as useCoreCommerce,\n} from '@daouypkgs/commerce'\nimport { getCommercetoolsProvider, CommercetoolsProvider, CommercetoolsCredentials } from './provider'\n\nexport type { CommercetoolsProvider }\n\nexport const useCommerce = () => useCoreCommerce<CommercetoolsProvider>()\n\nexport const getCommerceProvider = (creds: CommercetoolsCredentials, locale: string) => \n getCoreCommerceProvider(getCommercetoolsProvider(creds, locale))\n\n","import { ClientResponse, Project } from \"@commercetools/platform-sdk\";\nimport { GlobalContextMeta } from \"@daouy/host\";\nimport registerGlobalContext from \"@daouy/host/registerGlobalContext\";\nimport { useDaouyQueryData } from \"@daouy/query\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@daouypkgs/commerce\";\nimport React from \"react\";\nimport { getCommerceProvider } from \"./commercetools\";\nimport { getFetcher } from \"./fetcher\";\nimport { CommercetoolsCredentials } from \"./provider\";\nimport { Registerable } from \"./registerable\";\n\ninterface CommerceProviderProps extends CommercetoolsCredentials {\n children?: React.ReactNode;\n}\n\nconst globalContextName = \"daouy-commerce-commercetools-provider\";\n\nexport const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps> = {\n name: globalContextName,\n displayName: \"Commercetools Provider\",\n props: {\n projectKey: {\n type: \"string\",\n defaultValue: \"daouy-demo\",\n },\n clientId: {\n type: \"string\",\n defaultValue: \"B4hmK61xvz5LvdSDtsFmcflM\",\n },\n clientSecret: {\n type: \"string\",\n defaultValue: \"KhzjcjSu1Oul4aomSmOsLZOCZKbvfHqx\",\n },\n region: {\n type: \"choice\",\n options: [\n \"us-central1.gcp\",\n \"us-east-2.aws\",\n \"europe-west1.gcp\",\n \"eu-central-1.aws\",\n \"australia-southeast1.gcp\",\n ],\n defaultValue: \"us-central1.gcp\",\n },\n },\n ...{ globalActions: globalActionsRegistrations },\n importPath: \"@daouypkgs/commercetools\",\n importName: \"CommerceProviderComponent\",\n};\n\nexport function CommerceProviderComponent(props: CommerceProviderProps) {\n const { children, projectKey, clientId, clientSecret, region } = props;\n\n const creds = React.useMemo(\n () => ({ projectKey, clientId, clientSecret, region }),\n [projectKey, clientId, clientSecret, region]\n );\n\n const {\n data: locale,\n error,\n isLoading,\n } = useDaouyQueryData(JSON.stringify({ creds }) + \"locale\", async () => {\n const fetcher = getFetcher(creds);\n const project: ClientResponse<Project> = await fetcher({ method: \"get\" });\n return project.body ? project.body.languages[0] : undefined;\n });\n\n const CommerceProvider = React.useMemo(\n () => getCommerceProvider(creds, locale ?? \"\"),\n [creds, locale]\n );\n\n if (isLoading) {\n return null;\n } else if (error || !locale) {\n throw new Error(error ? error.message : \"Project language not found\");\n }\n\n return (\n <CommerceProvider>\n <CartActionsProvider globalContextName={globalContextName}>\n {children}\n </CartActionsProvider>\n </CommerceProvider>\n );\n}\n\nexport function registerCommerceProvider(\n loader?: Registerable,\n customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>\n) {\n const doRegisterComponent: typeof registerGlobalContext = (...args) =>\n loader\n ? loader.registerGlobalContext(...args)\n : registerGlobalContext(...args);\n doRegisterComponent(\n CommerceProviderComponent,\n customCommerceProviderMeta ?? commerceProviderMeta\n );\n}\n","import { Registerable } from \"./registerable\";\nimport { registerCommerceProvider } from \"./registerCommerceProvider\";\nexport * from \"./registerable\";\nexport * from \"./registerCommerceProvider\";\nexport * from \"./commercetools\";\n\nexport function registerAll(loader?: Registerable) {\n registerCommerceProvider(loader);\n}\n"],"names":["getSortVariables","sort","isCategory","output","undefined","COMMERCETOOLS_COOKIE_EXPIRE","COMMERCETOOLS_CART_COOKIE","options","expires","sameSite","secure","getCookies","name","cookie","Cookies","get","JSON","parse","setCookies","value","set","stringify","removeCookies","remove","getCartId","setCartId","id","removeCartCookie","createCart","_ref","_asyncToGenerator","_regenerator","m","_callee","fetch","draft","cart","w","_context","n","currency","country","query","method","body","v","a","_x","apply","arguments","getActiveCart","cartId","activeCart","variables","getLocalizedString","localizedString","locale","Object","values","withoutNils","xs","filter","x","dedup","concat","Set","currencyCode","money","price","centAmount","normalizeProductOption","option","__typename","displayName","Array","isArray","map","val","match","test","label","hexColors","normalizeProductImages","images","image","_extends","url","alt","width","dimensions","height","h","normalizeProductVariant","variant","_variant$prices$find$","_variant$prices","prices","find","_variant$prices2","sku","_variant$sku","_variant$attributes$m","_variant$attributes","attributes","attribute","key","requiresShipping","listPrice","normalizeProduct","product","_getLocalizedString","_getLocalizedString2","_product$masterVarian","_product$masterVarian2","_product$masterVarian3","slug","path","description","masterVariant","variants","flatMap","reduce","groupedAttributes","groupedAttribute","gAttr","push","normalizeLineItem","lineItem","_getLocalizedString3","_lineItem$variant$att","_lineItem$variant$att2","variantId","productId","quantity","discounts","normalizeCart","customerId","email","customerEmail","createdAt","code","taxesIncluded","taxMode","lineItems","item","lineItemsSubtotalPrice","subtotalPrice","totalPrice","normalizeCategory","category","_getLocalizedString4","_getLocalizedString5","handler","fetchOptions","fetcher","input","provider","useHook","_ref2","useData","response","swrOptions","revalidateOnFocus","useMemo","create","isEmpty","_response$data$lineIt","_response$data","data","length","enumerable","Number","isInteger","version","actions","action","_item$quantity","updatedCart","_useCart","useCart","mutate","useCallback","_addItem","_callee2","_context2","addItem","itemId","lineItemId","ctx","_ctx","removeItem","_ref3","_input$id","ValidationError","message","_ref$input","removeItemHandler","debounce","_ctx$wait","wait","initCommercetoolsSDKClient","creds","scopes","projectKey","authMiddlewareOptions","host","region","clientSecret","credentials","clientId","httpMiddlewareOptions","ClientBuilder","withProjectKey","withClientCredentialsFlow","withHttpMiddleware","build","getFetcher","client","apiRoot","createApiBuilderFromCtpClient","queryBuilder","withId","ID","search","queryArgs","expand","limit","filters","where","execute","categoryId","count","_search","products","results","found","brandId","_response$data$length","categories","getCommercetoolsProvider","cartCookie","useAddItem","useRemoveItem","useUpdateItem","useSearch","useProduct","site","useCategories","useBrands","useCommerce","useCoreCommerce","getCommerceProvider","getCoreCommerceProvider","globalContextName","commerceProviderMeta","props","type","defaultValue","globalActions","globalActionsRegistrations","importPath","importName","CommerceProviderComponent","children","React","_useDaouyQueryData","useDaouyQueryData","project","languages","error","isLoading","CommerceProvider","Error","CartActionsProvider","registerCommerceProvider","loader","customCommerceProviderMeta","doRegisterComponent","registerGlobalContext","registerAll"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,IAAa,EAAEC;EACvC,IAAIC,MAAM,GAAGC,SAAS;EACtB,QAAQH,IAAI;IACV,KAAK,WAAW;MACdE,MAAM,GAAG,WAAW;MACpB;IACF,KAAK,YAAY;MACfA,MAAM,GAAG,YAAY;MACrB;IACF,KAAK,eAAe;;MAClBA,MAAM,GAAGC,SAAS;MAClB;IACF,KAAK,aAAa;MAChBD,MAAM,GAAG,gBAAgB;MACzB;;EAEJ,OAAOA,MAAM;AACf,CAAC;;ACjBM,IAAME,2BAA2B,GAAG,EAAE;AAE7C,AAAO,IAAMC,yBAAyB,GAAG,oBAAoB;;ACC7D,IAAMC,OAAO,GAAqB;EAChCC,OAAO,EAAEH,2BAA2B;EACpCI,QAAQ,EAAE,MAAM;EAChBC,MAAM,EAAE;CACT;AAED,AAAO,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAOC,IAAY;EACxC,IAAMC,MAAM,GAAGC,OAAO,CAACC,GAAG,CAACH,IAAI,CAAC;EAChC,OAAOC,MAAM,GAAIG,IAAI,CAACC,KAAK,CAACJ,MAAM,CAAO,GAAGT,SAAS;AACvD,CAAC;AAED,AAAO,IAAMc,UAAU,GAAG,SAAbA,UAAUA,CAAIN,IAAY,EAAEO,KAAU;EAAA,OAAKL,OAAO,CAACM,GAAG,CAACR,IAAI,EAAEI,IAAI,CAACK,SAAS,CAACF,KAAK,CAAC,EAAEZ,OAAO,CAAC;AAAA;AAEzG,AAAO,IAAMe,aAAa,GAAG,SAAhBA,aAAaA,CAAIV,IAAY;EAAA,OAAKE,OAAO,CAACS,MAAM,CAACX,IAAI,CAAC;AAAA;;ACb5D,IAAMY,SAAS,GAAG,SAAZA,SAASA;EAAA,OACpBb,UAAU,CAASL,yBAAyB,CAAC;AAAA;AAE/C,AAAO,IAAMmB,SAAS,GAAG,SAAZA,SAASA,CAAIC,EAAU;EAAA,OAClCR,UAAU,CAACZ,yBAAyB,EAAEoB,EAAE,CAAC;AAAA;AAE3C,AAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA;EAAA,OAC3BL,aAAa,CAAChB,yBAAyB,CAAC;AAAA;;ACL1C,IAAMsB,UAAU;EAAA,IAAAC,IAAA,gBAAAC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAG,SAAAC,QACjBC,KAAoE;IAAA,IAAAC,KAAA,EAAAC,IAAA;IAAA,OAAAL,YAAA,GAAAM,CAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,CAAA;QAAA;UAE9DJ,KAAK,GAAc;YACvBK,QAAQ,EAAE,KAAK;YACfC,OAAO,EAAE;WACV;UAAAH,QAAA,CAAAC,CAAA;UAAA,OAEkBL,KAAK,CAAkC;YACxDQ,KAAK,EAAE,OAAO;YACdC,MAAM,EAAE,MAAM;YACdC,IAAI,EAAET;WACP,CAAC;QAAA;UAJIC,IAAI,GAAAE,QAAA,CAAAO,CAAA;UAMV,IAAI,CAACT,IAAI,CAACQ,IAAI,EAAE;YACdjB,gBAAgB,EAAE;WACnB,MAAM;YACLF,SAAS,CAACW,IAAI,CAACQ,IAAI,CAAClB,EAAE,CAAC;;UACxB,OAAAY,QAAA,CAAAQ,CAAA,IACMV,IAAI,CAACQ,IAAI;;OAAAX,OAAA;GACjB;EAAA,gBApBKL,UAAUA,CAAAmB,EAAA;IAAA,OAAAlB,IAAA,CAAAmB,KAAA,OAAAC,SAAA;;AAAA,GAoBf;;ACpBD,IAAMC,aAAa;EAAA,IAAArB,IAAA,gBAAAC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAG,SAAAC,QACpBC,KAAoE;IAAA,IAAAiB,MAAA,EAAAC,UAAA;IAAA,OAAArB,YAAA,GAAAM,CAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,CAAA;QAAA;UAE9DY,MAAM,GAAG3B,SAAS,EAAE;UAAA,KAEtB2B,MAAM;YAAAb,QAAA,CAAAC,CAAA;YAAA;;UAAAD,QAAA,CAAAC,CAAA;UAAA,OAEAL,KAAK,CAAuB;YAChCQ,KAAK,EAAE,OAAO;YACdC,MAAM,EAAE,KAAK;YACbU,SAAS,EAAE;cACT3B,EAAE,EAAEyB;;WAEP,CAAC;QAAA;UAPJC,UAAU,GAAAd,QAAA,CAAAO,CAAA,CAQRD,IAAI;UAAAN,QAAA,CAAAC,CAAA;UAAA;QAAA;UAAAD,QAAA,CAAAC,CAAA;UAAA,OAEaX,UAAU,CAACM,KAAK,CAAC;QAAA;UAApCkB,UAAU,GAAAd,QAAA,CAAAO,CAAA;QAAA;UAGZ,IAAI,CAACO,UAAU,EAAE;YACfzB,gBAAgB,EAAE;WACnB,MAAM;YACLF,SAAS,CAAC2B,UAAU,CAAC1B,EAAE,CAAC;;UACzB,OAAAY,QAAA,CAAAQ,CAAA,IACMM,UAAU;;OAAAnB,OAAA;GAClB;EAAA,gBAzBKiB,aAAaA,CAAAH,EAAA;IAAA,OAAAlB,IAAA,CAAAmB,KAAA,OAAAC,SAAA;;AAAA,GAyBlB;;AC9BD,IAAMK,kBAAkB,GAAG,SAArBA,kBAAkBA,CACtBC,eAAmD,EACnDC,MAA0B;EAAA,OAE1B,CAACD,eAAe,IAAI,CAACC,MAAM,GACvBpD,SAAS,GACToD,MAAM,IAAID,eAAe,GACzBA,eAAe,CAACC,MAAM,CAAC,GACvBC,MAAM,CAACC,MAAM,CAACH,eAAe,CAAC,CAAC,CAAC,CAAC;AAAA;;ACRhC,IAAMI,WAAW,GAAG,SAAdA,WAAWA,CAAOC,EAA+B;EAAA,OAC5DA,EAAE,CAACC,MAAM,CAAC,UAACC,CAAC;IAAA,OAAaA,CAAC,IAAI,IAAI;IAAC;AAAA;AAErC,AAAO,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAOH,EAAY;EAAA,UAAAI,MAAA,CAAc,IAAIC,GAAG,CAACL,EAAE,CAAC;AAAA,CAAC;;ACe/D,IAAMM,YAAY,GAAG,KAAK;AAE1B,IAAM7C,SAAS,GAAG,SAAZA,SAASA,CAAIF,KAAU;EAAA,OAC3B,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGH,IAAI,CAACK,SAAS,CAACF,KAAK,CAAC;AAAA;AAE3D,IAAMgD,KAAK,GAAG,SAARA,KAAKA,CAAIC,KAA6B;EAC1C,OAAOA,KAAK,GACR;IACEjD,KAAK,EAAEiD,KAAK,CAACC,UAAU,GAAG,GAAG;IAC7BH,YAAY,EAAEE,KAAK,CAACF;GACrB,GACD;IACE/C,KAAK,EAAE,CAAC,GAAG;IACX+C,YAAY,EAAZA;GACD;AACP,CAAC;AAED,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,MAG/B;EAAA,OAAqB;IACpBC,UAAU,EAAE,sBAAsB;IAClC9C,EAAE,EAAE6C,MAAM,CAAC3D,IAAI;IACf6D,WAAW,EAAEF,MAAM,CAAC3D,IAAI;IACxB8C,MAAM,EAAEK,KAAK,CACXW,KAAK,CAACC,OAAO,CAACJ,MAAM,CAACpD,KAAK,CAAC,GAAGoD,MAAM,CAACpD,KAAK,GAAG,CAACoD,MAAM,CAACpD,KAAK,CAAC,CAC5D,CAACyD,GAAG,CAAC,UAACC,GAAG;MACR,IACEN,MAAM,CAAC3D,IAAI,CAACkE,KAAK,CAAC,WAAW,CAAC,IAC9B,qCAAqC,CAACC,IAAI,CAACF,GAAG,CAAC,EAC/C;QACA,OAAO;UACLG,KAAK,EAAE3D,SAAS,CAACwD,GAAG,CAAC;UACrBI,SAAS,EAAE,CAACJ,GAAG;SAChB;OACF,MAAM;QACL,OAAO;UACLG,KAAK,EAAE3D,SAAS,CAACwD,GAAG;SACrB;;KAEJ;GACF;AAAA,CAAC;AAEF,IAAMK,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,MAAe;EAAA,OAC7CA,MAAM,CAACP,GAAG,CAAC,UAACQ,KAAK;IAAA,OAAAC,QAAA;MACfC,GAAG,EAAEF,KAAK,CAACE;OACPF,KAAK,CAACJ,KAAK,GAAG;MAAEO,GAAG,EAAEH,KAAK,CAACJ;KAAO,GAAG,EAAE;MAC3CQ,KAAK,EAAEJ,KAAK,CAACK,UAAU,CAACpD,CAAC;MACzBqD,MAAM,EAAEN,KAAK,CAACK,UAAU,CAACE;;GACzB,CAAC;AAAA;AAEL,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIC,OAAuB;;EACtD,IAAMzB,KAAK,GAAGD,KAAK,EAAA2B,qBAAA,IAAAC,eAAA,GACjBF,OAAO,CAACG,MAAM,cAAAD,eAAA,GAAdA,eAAA,CAAgBE,IAAI,CAAC,UAAC7B,KAAK;IAAA,OAAKA,KAAK,CAACjD,KAAK,CAAC+C,YAAY,KAAKA,YAAY;IAAC,qBAA1E6B,eAAA,CACI5E,KAAK,YAAA2E,qBAAA,IAAAI,gBAAA,GAAIL,OAAO,CAACG,MAAM,cAAAE,gBAAA,GAAdA,gBAAA,CAAiB,CAAC,CAAC,qBAAnBA,gBAAA,CAAqB/E,KAAK,CACxC,CAACA,KAAK;EAEP,OAAO;IACLO,EAAE,OAAKmE,OAAO,CAACnE,EAAI;IACnBd,IAAI,OAAKiF,OAAO,CAACnE,EAAI;IACrByE,GAAG,GAAAC,YAAA,GAAEP,OAAO,CAACM,GAAG,YAAAC,YAAA,GAAI,EAAE;IACtBhC,KAAK,EAALA,KAAK;IACL7D,OAAO,GAAA8F,qBAAA,IAAAC,mBAAA,GACLT,OAAO,CAACU,UAAU,qBAAlBD,mBAAA,CAAoB1B,GAAG,CAAC,UAAC4B,SAAS;MAAA,OAChClC,sBAAsB,CAAC;QACrB1D,IAAI,EAAE4F,SAAS,CAAC5F,IAAI;QACpBO,KAAK,EAAEqF,SAAS,CAACrF,KAAK,CAACsF;OACxB,CAAC;MACH,YAAAJ,qBAAA,GAAI,EAAE;IACTK,gBAAgB,EAAE,KAAK;IACvBC,SAAS,EAAEvC;GACZ;AACH,CAAC;AAED,AAAO,IAAMwC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAC3BC,OAA2D,EAC3DrD,MAAc;EAAA,IAAAsD,mBAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAAA,OACD;IACbxF,EAAE,EAAEmF,OAAO,CAACnF,EAAE;IACdd,IAAI,GAAAkG,mBAAA,GAAExD,kBAAkB,CAACuD,OAAO,CAACjG,IAAI,EAAE4C,MAAM,CAAC,YAAAsD,mBAAA,GAAI,EAAE;IACpDK,IAAI,EAAE7D,kBAAkB,CAACuD,OAAO,CAACM,IAAI,EAAE3D,MAAM,CAAC;IAC9C4D,IAAI,QAAM9D,kBAAkB,CAACuD,OAAO,CAACM,IAAI,EAAE3D,MAAM,CAAG;IACpD6D,WAAW,GAAAN,oBAAA,GAAEzD,kBAAkB,CAACuD,OAAO,CAACQ,WAAW,EAAE7D,MAAM,CAAC,YAAAuD,oBAAA,GAAI,EAAE;IAClE3C,KAAK,EAAED,KAAK,EAAA6C,qBAAA,IAAAC,sBAAA,GACVJ,OAAO,CAACS,aAAa,CAACtB,MAAM,cAAAiB,sBAAA,GAA5BA,sBAAA,CAA8BhB,IAAI,CAChC,UAAC7B,KAAK;MAAA,OAAKA,KAAK,CAACjD,KAAK,CAAC+C,YAAY,KAAKA,YAAY;MACrD,qBAFD+C,sBAAA,CAEG9F,KAAK,YAAA6F,qBAAA,IAAAE,sBAAA,GAAIL,OAAO,CAACS,aAAa,CAACtB,MAAM,cAAAkB,sBAAA,GAA5BA,sBAAA,CAA+B,CAAC,CAAC,qBAAjCA,sBAAA,CAAmC/F,KAAK,CACrD;IACDgE,MAAM,EAAED,sBAAsB,CAC5BvB,WAAW,IAAAK,MAAA,CACL6C,OAAO,CAACS,aAAa,CAACnC,MAAM,GAAG0B,OAAO,CAACS,aAAa,CAACnC,MAAM,GAAG,EAAE,EACjE0B,OAAO,CAACU,QAAQ,CAACC,OAAO,CAAC,UAAC3B,OAAO;MAAA,OAAKA,OAAO,CAACV,MAAM;MAAC,CACzD,CAAC,CACH;IACDoC,QAAQ,EAAE,CAACV,OAAO,CAACS,aAAa,EAAAtD,MAAA,CAAK6C,OAAO,CAACU,QAAQ,EAAE3C,GAAG,CACxDgB,uBAAuB,CACxB;IACDrF,OAAO,EAAEoD,WAAW,IAAAK,MAAA,CACd6C,OAAO,CAACS,aAAa,CAACf,UAAU,GAChCM,OAAO,CAACS,aAAa,CAACf,UAAU,GAChC,EAAE,EACHM,OAAO,CAACU,QAAQ,CAACC,OAAO,CAAC,UAAC3B,OAAO;MAAA,OAAKA,OAAO,CAACU,UAAU;MAAC,CAC7D,CAAC,CACCkB,MAAM,CACL,UAACC,iBAAiB,EAAElB,SAAS;MAC3B,IAAMmB,gBAAgB,GAAGD,iBAAiB,CAACzB,IAAI,CAC7C,UAAC2B,KAAK;QAAA,OAAKA,KAAK,CAAChH,IAAI,KAAK4F,SAAS,CAAC5F,IAAI;QACzC;MACD,IAAI+G,gBAAgB,EAAE;QACpBA,gBAAgB,CAACxG,KAAK,CAAC0G,IAAI,CAACxG,SAAS,CAACmF,SAAS,CAACrF,KAAK,CAACsF,GAAG,CAAC,CAAC;OAC5D,MAAM;QACLiB,iBAAiB,CAACG,IAAI,CAAC;UACrBjH,IAAI,EAAE4F,SAAS,CAAC5F,IAAI;UACpBO,KAAK,EAAE,CAACE,SAAS,CAACmF,SAAS,CAACrF,KAAK,CAACsF,GAAG,CAAC;SACvC,CAAC;;MAEJ,OAAOiB,iBAAiB;KACzB,EACD,EAGG,CACJ,CACA9C,GAAG,CAACN,sBAAsB;GAC9B;AAAA,CAAC;AAEF,IAAMwD,iBAAiB,GAAG,SAApBA,iBAAiBA,CACrBC,QAA+B,EAC/BvE,MAAc;EAAA,IAAAwE,oBAAA,EAAAC,qBAAA,EAAAC,sBAAA;EAAA,OACA;IACdxG,EAAE,EAAEqG,QAAQ,CAACrG,EAAE;IACfyG,SAAS,OAAKJ,QAAQ,CAAClC,OAAO,CAACnE,EAAI;IACnC0G,SAAS,EAAEL,QAAQ,CAACK,SAAS;IAC7BxH,IAAI,GAAAoH,oBAAA,GAAE1E,kBAAkB,CAACyE,QAAQ,CAACnH,IAAI,EAAE4C,MAAM,CAAC,YAAAwE,oBAAA,GAAI,EAAE;IACrDZ,IAAI,EAAE,EAAE;IACRiB,QAAQ,EAAEN,QAAQ,CAACM,QAAQ;IAC3BC,SAAS,EAAE,EAAE;IACbzC,OAAO,EAAED,uBAAuB,CAACmC,QAAQ,CAAClC,OAAO,CAAC;IAClDtF,OAAO,GAAA0H,qBAAA,IAAAC,sBAAA,GACLH,QAAQ,CAAClC,OAAO,CAACU,UAAU,qBAA3B2B,sBAAA,CAA6BtD,GAAG,CAAC,UAAC4B,SAAS;MAAA,OAAM;QAC/C9E,EAAE,EAAE8E,SAAS,CAAC5F,IAAI;QAClBA,IAAI,EAAE4F,SAAS,CAAC5F,IAAI;QACpBO,KAAK,EAAEqF,SAAS,CAACrF,KAAK,CAACsF;OACxB;KAAC,CAAC,YAAAwB,qBAAA,GAAI;GACV;AAAA,CAAC;AAEF,AAAO,IAAMM,aAAa,GAAG,SAAhBA,aAAaA,CACxBnG,IAAuB,EACvBoB,MAAc;EAAA,OACJ;IACV9B,EAAE,EAAEU,IAAI,CAACV,EAAE;IACX8G,UAAU,EAAEpG,IAAI,CAACoG,UAAU;IAC3BC,KAAK,EAAErG,IAAI,CAACsG,aAAa;IACzBC,SAAS,EAAEvG,IAAI,CAACuG,SAAS;IACzBnG,QAAQ,EAAE;MACRoG,IAAI,EAAE1E;KACP;IACD2E,aAAa,EAAEzG,IAAI,CAAC0G,OAAO,KAAK,UAAU;IAC1CC,SAAS,EAAE3G,IAAI,CAAC2G,SAAS,CAACnE,GAAG,CAAC,UAACoE,IAAI;MAAA,OAAKlB,iBAAiB,CAACkB,IAAI,EAAExF,MAAM,CAAC;MAAC;IACxEyF,sBAAsB,EAAE,CAAC;IACzBC,aAAa,EAAE/E,KAAK,CAAC/B,IAAI,CAAC+G,UAAU,CAAC,CAAChI,KAAK;IAC3CgI,UAAU,EAAEhF,KAAK,CAAC/B,IAAI,CAAC+G,UAAU,CAAC,CAAChI,KAAK;IACxCmH,SAAS,EAAE;GACZ;AAAA,CAAC;AAEF,AAAO,IAAMc,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,QAA+B,EAC/B7F,MAAc;EAAA,IAAA8F,oBAAA,EAAAC,oBAAA;EAAA,OACA;IACd7H,EAAE,EAAE2H,QAAQ,CAAC3H,EAAE;IACfd,IAAI,GAAA0I,oBAAA,GAAEhG,kBAAkB,CAAC+F,QAAQ,CAACzI,IAAI,EAAE4C,MAAM,CAAC,YAAA8F,oBAAA,GAAI,EAAE;IACrDnC,IAAI,GAAAoC,oBAAA,GAAEjG,kBAAkB,CAAC+F,QAAQ,CAAClC,IAAI,EAAE3D,MAAM,CAAC,YAAA+F,oBAAA,GAAI,EAAE;IACrDnC,IAAI,QAAM9D,kBAAkB,CAAC+F,QAAQ,CAAClC,IAAI,EAAE3D,MAAM;GACnD;AAAA,CAAC;;ACvLK,IAAMgG,OAAO,GAAyB;EAC3CC,YAAY,EAAE;IACZ/G,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;GACT;EACK+G,OAAO,WAAPA,OAAOA,CAAA7H,IAAA;;;;;;YAAG8H,AAAgBzH,KAAK,GAAAL,IAAA,CAALK,KAAK,EAAE0H,QAAQ,GAAA/H,IAAA,CAAR+H,QAAQ;YAAAtH,QAAA,CAAAC,CAAA;YAAA,OACpBW,aAAa,CAAChB,KAAK,CAAC;UAAA;YAAvCkB,UAAU,GAAAd,QAAA,CAAAO,CAAA;YAAA,OAAAP,QAAA,CAAAQ,CAAA,IACTM,UAAU,GAAGmF,aAAa,CAACnF,UAAU,EAAEwG,QAAS,CAACpG,MAAM,CAAC,GAAG,IAAI;;SAAAvB,OAAA;;GACvE;EACD4H,OAAO,EACL,SADFA,OAAOA,CAAAC,KAAA;IAAA,IACFC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAA,OACV,UAACJ,KAAK;MACJ,IAAMK,QAAQ,GAAGD,OAAO,CAAC;QACvBE,UAAU,EAAA5E,QAAA;UAAI6E,iBAAiB,EAAE;WAAUP,KAAK,oBAALA,KAAK,CAAEM,UAAU;OAC7D,CAAC;MACF,OAAOE,OAAO,CACZ;QAAA,OACE1G,MAAM,CAAC2G,MAAM,CAACJ,QAAQ,EAAE;UACtBK,OAAO,EAAE;YACPtJ,GAAG,WAAHA,GAAGA;;cACD,OAAO,EAAAuJ,qBAAA,IAAAC,cAAA,GAACP,QAAQ,CAACQ,IAAI,qBAAbD,cAAA,CAAexB,SAAS,CAAC0B,MAAM,YAAAH,qBAAA,GAAI,CAAC,KAAK,CAAC;aACnD;YACDI,UAAU,EAAE;;SAEf,CAAC;SACJ,CAACV,QAAQ,CAAC,CACX;KACF;;CACJ;;ACrBM,IAAMR,SAAO,GAA8B;EAChDC,YAAY,EAAE;IACZ/G,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;GACT;EACK+G,OAAO,WAAPA,OAAOA,CAAA7H,IAAA;;;;;;;YAAUmH,IAAI,GAAAnH,IAAA,CAAX8H,KAAK,EAAQpJ,AAAS2B,KAAK,GAAAL,IAAA,CAALK,KAAK,EAAE0H,QAAQ,GAAA/H,IAAA,CAAR+H,QAAQ;YAAAtH,QAAA,CAAAC,CAAA;YAAA,OAC1BW,aAAa,CAAChB,KAAK,CAAC;UAAA;YAAvCkB,UAAU,GAAAd,QAAA,CAAAO,CAAA;YAAA,MAEbmG,IAAI,CAACX,QAAQ,KACX,CAACsC,MAAM,CAACC,SAAS,CAAC5B,IAAI,CAACX,QAAQ,CAAC,IAAIW,IAAI,CAACX,QAAS,GAAG,CAAC,CAAC,IAC1D,CAACjF,UAAU;cAAAd,QAAA,CAAAC,CAAA;cAAA;;YAAA,OAAAD,QAAA,CAAAQ,CAAA,IAEJ1C,SAAS;UAAA;YAAAkC,QAAA,CAAAC,CAAA;YAAA,OAEQL,KAAK,CAAmC;cAChEQ,KAAK,EAAE,OAAO;cACdC,MAAM,EAAE,MAAM;cACdU,SAAS,EAAE;gBACT3B,EAAE,EAAE0B,UAAU,CAAC1B;eAChB;cACDkB,IAAI,EAAE;gBACJiI,OAAO,EAAEzH,UAAU,CAACyH,OAAO;gBAC3BC,OAAO,EAAE,CACP;kBACEC,MAAM,EAAE,aAAa;kBACrB5C,SAAS,EAAE,CAACa,IAAI,CAACb,SAAS;kBAC1BC,SAAS,EAAEY,IAAI,CAACZ,SAAS;kBACzBC,QAAQ,GAAA2C,cAAA,GAAEhC,IAAI,CAACX,QAAQ,YAAA2C,cAAA,GAAI;iBAC5B;;aAGN,CAAC;UAAA;YAjBIC,WAAW,GAAA3I,QAAA,CAAAO,CAAA;YAkBjB,IAAIoI,WAAW,CAACrI,IAAI,EAAE;cACpBnB,SAAS,CAACwJ,WAAW,CAACrI,IAAI,CAAClB,EAAE,CAAC;aAC/B,MAAM;cACLC,gBAAgB,EAAE;;YACnB,OAAAW,QAAA,CAAAQ,CAAA,IACMmI,WAAW,CAACrI,IAAI,GACnB2F,aAAa,CAAC0C,WAAW,CAACrI,IAAI,EAAEgH,QAAS,CAACpG,MAAM,CAAC,GACjDpD,SAAS;;SAAA6B,OAAA;;GACd;EACD4H,OAAO,EACL,SADFA,OAAOA,CAAAC,KAAA;IAAA,IACF5H,KAAK,GAAA4H,KAAA,CAAL5H,KAAK;IAAA,OACR;MACE,IAAAgJ,QAAA,GAAmBC,OAAO,EAAE;QAApBC,MAAM,GAAAF,QAAA,CAANE,MAAM;MACd,OAAOC,WAAW;QAAA,IAAAC,QAAA,GAAAxJ,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAChB,SAAAuJ,SAAuB5B,KAAK;UAAA,IAAAa,IAAA;UAAA,OAAAzI,YAAA,GAAAM,CAAA,WAAAmJ,SAAA;YAAA,kBAAAA,SAAA,CAAAjJ,CAAA;cAAA;gBAAAiJ,SAAA,CAAAjJ,CAAA;gBAAA,OACPL,KAAK,CAAC;kBAAEyH,KAAK,EAALA;iBAAO,CAAC;cAAA;gBAA7Ba,IAAI,GAAAgB,SAAA,CAAA3I,CAAA;gBAAA2I,SAAA,CAAAjJ,CAAA;gBAAA,OACJ6I,MAAM,CAACZ,IAAI,EAAE,KAAK,CAAC;cAAA;gBAAA,OAAAgB,SAAA,CAAA1I,CAAA,IAClB0H,IAAI;;aAAAe,QAAA;SACZ;QAAA,SAJcE,OAAOA,CAAA1I,EAAA;UAAA,OAAAuI,QAAA,CAAAtI,KAAA,OAAAC,SAAA;;QAAA,OAAPwI,OAAO;WAKtB,CAACvJ,KAAK,EAAEkJ,MAAM,CAAC,CAChB;KACF;;CACJ;;AClCM,IAAM5B,SAAO,GAAiC;EACnDC,YAAY,EAAE;IACZ/G,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;GACT;EACK+G,OAAO,WAAPA,OAAOA,CAAA7H,IAAA;;;;;;YACF6J,MAAM,GAAA7J,IAAA,CAAf8H,KAAK,CAAI+B,MAAM,EACfnL,AACA2B,KAAK,GAAAL,IAAA,CAALK,KAAK,EACL0H,QAAQ,GAAA/H,IAAA,CAAR+H,QAAQ;YAAAtH,QAAA,CAAAC,CAAA;YAAA,OAEiBW,aAAa,CAAChB,KAAK,CAAC;UAAA;YAAvCkB,UAAU,GAAAd,QAAA,CAAAO,CAAA;YAAA,MACZ,CAAC6I,MAAM,IAAI,CAACtI,UAAU;cAAAd,QAAA,CAAAC,CAAA;cAAA;;YAAA,OAAAD,QAAA,CAAAQ,CAAA,IACjB1C,SAAS;UAAA;YAAAkC,QAAA,CAAAC,CAAA;YAAA,OAEQL,KAAK,CAG7B;cACAQ,KAAK,EAAE,OAAO;cACdC,MAAM,EAAE,MAAM;cACdU,SAAS,EAAE;gBACT3B,EAAE,EAAE0B,UAAU,CAAC1B;eAChB;cACDkB,IAAI,EAAE;gBACJiI,OAAO,EAAEzH,UAAU,CAACyH,OAAO;gBAC3BC,OAAO,EAAE,CACP;kBACEC,MAAM,EAAE,gBAAgB;kBACxBY,UAAU,EAAED;iBACb;;aAGN,CAAC;UAAA;YAlBIT,WAAW,GAAA3I,QAAA,CAAAO,CAAA;YAmBjB,IAAIoI,WAAW,CAACrI,IAAI,EAAE;cACpBnB,SAAS,CAACwJ,WAAW,CAACrI,IAAI,CAAClB,EAAE,CAAC;aAC/B,MAAM;cACLC,gBAAgB,EAAE;;YACnB,OAAAW,QAAA,CAAAQ,CAAA,IACMyF,aAAa,CAAC0C,WAAW,CAACrI,IAAI,EAAEgH,QAAS,CAACpG,MAAM,CAAC;;SAAAvB,OAAA;;GACzD;EACD4H,OAAO,EACL,SADFA,OAAOA,CAAAC,KAAA;IAAA,IACF5H,KAAK,GAAA4H,KAAA,CAAL5H,KAAK;IAAA,OACR,UAA6C0J;UAAAA;QAAAA,MAAoB,EAAE;;MACjE,IAAAC,IAAA,GAAiBD,GAAG;QAAZ5C,IAAI,GAAA6C,IAAA,CAAJ7C,IAAI;MACZ,IAAAkC,QAAA,GAAmBC,OAAO,EAAE;QAApBC,MAAM,GAAAF,QAAA,CAANE,MAAM;MACd,IAAMU,UAAU;QAAA,IAAAC,KAAA,GAAAjK,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAA2B,SAAAuJ,SAAO5B,KAAK;UAAA,IAAAqC,SAAA;UAAA,IAAAN,MAAA,EAAAlB,IAAA;UAAA,OAAAzI,YAAA,GAAAM,CAAA,WAAAmJ,SAAA;YAAA,kBAAAA,SAAA,CAAAjJ,CAAA;cAAA;gBAC/CmJ,MAAM,IAAAM,SAAA,GAAGrC,KAAK,oBAALA,KAAK,CAAEjI,EAAE,YAAAsK,SAAA,GAAIhD,IAAI,oBAAJA,IAAI,CAAEtH,EAAE;gBAAA,IAE/BgK,MAAM;kBAAAF,SAAA,CAAAjJ,CAAA;kBAAA;;gBAAA,MACH,IAAI0J,eAAe,CAAC;kBACxBC,OAAO,EAAE;iBACV,CAAC;cAAA;gBAAAV,SAAA,CAAAjJ,CAAA;gBAAA,OAGeL,KAAK,CAAC;kBAAEyH,KAAK,EAAE;oBAAE+B,MAAM,EAANA;;iBAAU,CAAC;cAAA;gBAAzClB,IAAI,GAAAgB,SAAA,CAAA3I,CAAA;gBAAA2I,SAAA,CAAAjJ,CAAA;gBAAA,OACJ6I,MAAM,CAACZ,IAAI,EAAE,KAAK,CAAC;cAAA;gBAAA,OAAAgB,SAAA,CAAA1I,CAAA,IAClB0H,IAAI;;aAAAe,QAAA;SACZ;QAAA,gBAZKO,UAAUA,CAAA/I,EAAA;UAAA,OAAAgJ,KAAA,CAAA/I,KAAA,OAAAC,SAAA;;SAYf;MAED,OAAOoI,WAAW,CAACS,UAA6B,EAAE,CAAC5J,KAAK,EAAEkJ,MAAM,CAAC,CAAC;KACnE;;CACJ;;ACxEM,IAAM5B,SAAO,GAAiC;EACnDC,YAAY,EAAE;IACZ/G,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;GACT;EACK+G,OAAO,WAAPA,OAAOA,CAAA7H,IAAA;;;;;;;8BAAG8H,KAAK,EAAIX,IAAI,GAAAmD,UAAA,CAAJnD,IAAI,EAAE0C,MAAM,GAAAS,UAAA,CAANT,MAAM,EAAInL,AAAS2B,KAAK,GAAAL,IAAA,CAALK,KAAK,EAAE0H,QAAQ,GAAA/H,IAAA,CAAR+H,QAAQ;YAAA,KAC3De,MAAM,CAACC,SAAS,CAAC5B,IAAI,CAACX,QAAQ,CAAC;cAAA/F,QAAA,CAAAC,CAAA;cAAA;;YAAA,MAE7ByG,IAAI,CAACX,QAAS,GAAG,CAAC;cAAA/F,QAAA,CAAAC,CAAA;cAAA;;YAAA,OAAAD,QAAA,CAAAQ,CAAA,IACbsJ,SAAiB,CAAC1C,OAAO,oBAAzB0C,SAAiB,CAAC1C,OAAO,CAAG;cACjCnJ,OAAO,EAAE6L,SAAiB,CAAC3C,YAAY;cACvCE,KAAK,EAAE;gBAAE+B,MAAM,EAANA;eAAQ;cACjBxJ,KAAK,EAALA,KAAK;cACL0H,QAAQ,EAARA;aACD,CAAC;UAAA;YAAAtH,QAAA,CAAAC,CAAA;YAAA;UAAA;YAAA,KAEKyG,IAAI,CAACX,QAAQ;cAAA/F,QAAA,CAAAC,CAAA;cAAA;;YAAA,MAChB,IAAI0J,eAAe,CAAC;cACxBC,OAAO,EAAE;aACV,CAAC;UAAA;YAAA5J,QAAA,CAAAC,CAAA;YAAA,OAGqBW,aAAa,CAAChB,KAAK,CAAC;UAAA;YAAvCkB,UAAU,GAAAd,QAAA,CAAAO,CAAA;YAAA,MAEbmG,IAAI,CAACX,QAAQ,KACX,CAACsC,MAAM,CAACC,SAAS,CAAC5B,IAAI,CAACX,QAAQ,CAAC,IAAIW,IAAI,CAACX,QAAS,GAAG,CAAC,CAAC,IAC1D,CAACjF,UAAU;cAAAd,QAAA,CAAAC,CAAA;cAAA;;YAAA,OAAAD,QAAA,CAAAQ,CAAA,IAEJ1C,SAAS;UAAA;YAAAkC,QAAA,CAAAC,CAAA;YAAA,OAEQL,KAAK,CAAmC;cAChEQ,KAAK,EAAE,OAAO;cACdC,MAAM,EAAE,MAAM;cACdU,SAAS,EAAE;gBACT3B,EAAE,EAAE0B,UAAU,CAAC1B;eAChB;cACDkB,IAAI,EAAE;gBACJiI,OAAO,EAAEzH,UAAU,CAACyH,OAAO;gBAC3BC,OAAO,EAAE,CACP;kBACEC,MAAM,EAAE,wBAAwB;kBAChCY,UAAU,EAAED,MAAM;kBAClBrD,QAAQ,GAAA2C,cAAA,GAAEhC,IAAI,CAACX,QAAQ,YAAA2C,cAAA,GAAI;iBAC5B;;aAGN,CAAC;UAAA;YAhBIC,WAAW,GAAA3I,QAAA,CAAAO,CAAA;YAiBjB,IAAIoI,WAAW,CAACrI,IAAI,EAAE;cACpBnB,SAAS,CAACwJ,WAAW,CAACrI,IAAI,CAAClB,EAAE,CAAC;aAC/B,MAAM;cACLC,gBAAgB,EAAE;;YACnB,OAAAW,QAAA,CAAAQ,CAAA,IACMmI,WAAW,CAACrI,IAAI,GACnB2F,aAAa,CAAC0C,WAAW,CAACrI,IAAI,EAAEgH,QAAS,CAACpG,MAAM,CAAC,GACjDpD,SAAS;;SAAA6B,OAAA;;GACd;EACD4H,OAAO,EACL,SADFA,OAAOA,CAAAC,KAAA;IAAA,IACF5H,KAAK,GAAA4H,KAAA,CAAL5H,KAAK;IAAA,OACR,UACE0J;;UAAAA;QAAAA,MAGI,EAAE;;MAEN,IAAAC,IAAA,GAAiBD,GAAG;QAAZ5C,IAAI,GAAA6C,IAAA,CAAJ7C,IAAI;MACZ,IAAAkC,QAAA,GAAmBC,OAAO,EAAS;QAA3BC,MAAM,GAAAF,QAAA,CAANE,MAAM;MAEd,OAAOC,WAAW,CAChBgB,QAAQ;QAAA,IAAAN,KAAA,GAAAjK,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAC,SAAAuJ,SAAO5B,KAA+B;UAAA,IAAAqC,SAAA;UAAA,IAAAN,MAAA,EAAAlB,IAAA;UAAA,OAAAzI,YAAA,GAAAM,CAAA,WAAAmJ,SAAA;YAAA,kBAAAA,SAAA,CAAAjJ,CAAA;cAAA;gBACvCmJ,MAAM,IAAAM,SAAA,GAAGrC,KAAK,CAACjI,EAAE,YAAAsK,SAAA,GAAIhD,IAAI,oBAAJA,IAAI,CAAEtH,EAAE;gBAAA,MAC/B,CAACgK,MAAM,IAAI/B,KAAK,CAACtB,QAAQ,IAAI,IAAI;kBAAAmD,SAAA,CAAAjJ,CAAA;kBAAA;;gBAAA,MAC7B,IAAI0J,eAAe,CAAC;kBACxBC,OAAO,EAAE;iBACV,CAAC;cAAA;gBAAAV,SAAA,CAAAjJ,CAAA;gBAAA,OAGeL,KAAK,CAAC;kBACvByH,KAAK,EAAE;oBACLX,IAAI,EAAE;sBACJX,QAAQ,EAAEsB,KAAK,CAACtB;qBACjB;oBACDqD,MAAM,EAANA;;iBAEH,CAAC;cAAA;gBAPIlB,IAAI,GAAAgB,SAAA,CAAA3I,CAAA;gBAAA2I,SAAA,CAAAjJ,CAAA;gBAAA,OAQJ6I,MAAM,CAACZ,IAAI,EAAE,KAAK,CAAC;cAAA;gBAAA,OAAAgB,SAAA,CAAA1I,CAAA,IAClB0H,IAAI;;aAAAe,QAAA;SACZ;QAAA,iBAAAxI,EAAA;UAAA,OAAAgJ,KAAA,CAAA/I,KAAA,OAAAC,SAAA;;YAAAqJ,SAAA,GAAEV,GAAG,CAACW,IAAI,YAAAD,SAAA,GAAI,GAAG,CAAC,EACnB,CAACpK,KAAK,EAAEkJ,MAAM,CAAC,CAChB;KACF;;CACJ;;AC5GD,IAAMoB,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAIC,KAA+B;EACjE,IAAMC,MAAM,GAAG,qBAAmBD,KAAK,CAACE,UAAU,CAAG;;EAGrD,IAAMC,qBAAqB,GAA0B;IACnDC,IAAI,oBAAkBJ,KAAK,CAACK,MAAM,uBAAoB;IACtDH,UAAU,EAAEF,KAAK,CAACM,YAAY;IAC9BC,WAAW,EAAE;MACXC,QAAQ,EAAER,KAAK,CAACQ,QAAQ;MACxBF,YAAY,EAAEN,KAAK,CAACM;KACrB;IACDL,MAAM,EAANA,MAAM;IACNxK,KAAK,EAALA;GACD;;EAGD,IAAMgL,qBAAqB,GAA0B;IACnDL,IAAI,mBAAiBJ,KAAK,CAACK,MAAM,uBAAoB;IACrD5K,KAAK,EAALA;GACD;;EAGD,OAAO,IAAIiL,aAAa,EAAE,CACvBC,cAAc,CAACX,KAAK,CAACE,UAAU,CAAC,CAChCU,yBAAyB,CAACT,qBAAqB,CAAC,CAChDU,kBAAkB,CAACJ,qBAAqB,CAAC,CACzCK,KAAK,EAAE;AACZ,CAAC;;AC7BM,IAAMC,UAAU,GAErB,SAFWA,UAAUA,CAEpBf,KAAK;EACJ,IAAMgB,MAAM,GAAGjB,0BAA0B,CAACC,KAAK,CAAC;EAChD,IAAMiB,OAAO,GAAGC,6BAA6B,CAACF,MAAM,CAAC,CAACL,cAAc,CAAC;IACnET,UAAU,EAAEF,KAAK,CAACE;GACnB,CAAC;EACF;IAAA,IAAA7C,KAAA,GAAAhI,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAO,SAAAC,QAAAJ,IAAA;MAAA,IAAAc,MAAA,EAAAU,SAAA,EAAAX,KAAA,EAAAE,IAAA,EAAAgL,YAAA;MAAA,OAAA7L,YAAA,GAAAM,CAAA,WAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,CAAA;UAAA;YACLI,MAAM,GAAAd,IAAA,CAANc,MAAM,EAAEU,SAAS,GAAAxB,IAAA,CAATwB,SAAS,EAAEX,KAAK,GAAAb,IAAA,CAALa,KAAK,EAAEE,IAAI,GAAAf,IAAA,CAAJe,IAAI;YAE1BgL,YAAY,GAAQF,OAAO;YAC/B,IAAIhL,KAAK,EAAE;cACTkL,YAAY,GAAGA,YAAY,CAAClL,KAAK,CAAC,EAAE;;YAEtC,IAAIW,SAAS,YAATA,SAAS,CAAE3B,EAAE,EAAE;cACjBkM,YAAY,GAAGA,YAAY,CAACC,MAAM,CAAC;gBAAEC,EAAE,EAAEzK,SAAS,CAAC3B;eAAI,CAAC;;YAE1D,IAAI2B,SAAS,YAATA,SAAS,CAAE0K,MAAM,EAAE;cACrBH,YAAY,GAAGA,YAAY,CAACG,MAAM,EAAE;;YACrCzL,QAAA,CAAAC,CAAA;YAAA,OACYqL,YAAY,CAACjL,MAAO,CAAC,CAAC;cACjCC,IAAI,EAAJA,IAAI;cACJoL,SAAS,EAAA3I,QAAA;gBACP4I,MAAM,EAAE5K,SAAS,oBAATA,SAAS,CAAE4K,MAAM;gBACzBC,KAAK,EAAE7K,SAAS,oBAATA,SAAS,CAAE6K;iBACd7K,SAAS,YAATA,SAAS,CAAEpD,IAAI,GAAG;gBAAEA,IAAI,EAAEoD,SAAS,CAACpD;eAAM,GAAG,EAAE,EAC/CoD,SAAS,YAATA,SAAS,CAAE0K,MAAM,GAAG1K,SAAS,CAAC0K,MAAM,GAAG,EAAE,EACzC1K,SAAS,YAATA,SAAS,CAAE8K,OAAO,GAAG;gBAAEtK,MAAM,EAAER,SAAS,CAAC8K;eAAS,GAAG,EAAE,EACvD9K,SAAS,YAATA,SAAS,CAAE+K,KAAK,GAAG;gBAAEA,KAAK,EAAE/K,SAAS,CAAC+K;eAAO,GAAG,EAAE;aAEzD,CAAC,CACDC,OAAO,EAAE;UAAA;YAAA,OAAA/L,QAAA,CAAAQ,CAAA,IAAAR,QAAA,CAAAO,CAAA;;SAAAZ,OAAA;KACX;IAAA,iBAAAc,EAAA;MAAA,OAAA+G,KAAA,CAAA9G,KAAA,OAAAC,SAAA;;;AACL,CAAC;;ACtBM,IAAMuG,SAAO,GAA4B;EAC9CC,YAAY,EAAE;IACZ/G,KAAK,EAAE,oBAAoB;IAC3BC,MAAM,EAAE;GACT;EACK+G,OAAO,WAAPA,OAAOA,CAAA7H,IAAA;;;;;;YAAG8H,KAAK,GAAA9H,IAAA,CAAL8H,KAAK,EAAEpJ,OAAO,GAAAsB,IAAA,CAAPtB,OAAO,EAAE2B,KAAK,GAAAL,IAAA,CAALK,KAAK,EAAE0H,QAAQ,GAAA/H,IAAA,CAAR+H,QAAQ;YACrClI,EAAE,GAAKiI,KAAK,CAAZjI,EAAE;YAAA,IACLA,EAAE;cAAAY,QAAA,CAAAC,CAAA;cAAA;;YAAA,OAAAD,QAAA,CAAAQ,CAAA,IACE,IAAI;UAAA;YAAAR,QAAA,CAAAC,CAAA;YAAA,OAGSL,KAAK,CAAAmD,QAAA,KACtB9E,OAAO;cACV8C,SAAS,EAAE;gBACT3B,EAAE,EAAFA;;cAEH,CAAC;UAAA;YALImF,OAAO,GAAAvE,QAAA,CAAAO,CAAA;YAAA,OAAAP,QAAA,CAAAQ,CAAA,IAMN+D,OAAO,CAACjE,IAAI,GACfgE,gBAAgB,CAACC,OAAO,CAACjE,IAAI,EAAEgH,QAAS,CAACpG,MAAM,CAAC,GAChD,IAAI;;SAAAvB,OAAA;;GACT;EACD4H,OAAO,EACL,SADFA,OAAOA,CAAAC,KAAA;IAAA,IACFC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAA,OACV,UAACJ,KAAK;UAALA,KAAK;QAALA,KAAK,GAAG,EAAE;;MACT,OAAOI,OAAO,CAAC;QACbJ,KAAK,EAAE,CACL,CAAC,IAAI,EAAEA,KAAK,CAACjI,EAAE,CAAC,CACjB;QACDuI,UAAU,EAAA5E,QAAA;UACR6E,iBAAiB,EAAE;WAChBP,KAAK,CAACM,UAAU;OAEtB,CAAC;KACH;;CACJ;;ACzBM,IAAMT,SAAO,GAAgC;EAClDC,YAAY,EAAE;IACZ9G,MAAM,EAAE,KAAK;IACbD,KAAK,EAAE;GACR;EACKgH,OAAO,WAAPA,OAAOA,CAAA7H,IAAA;;;;;;;YAAG8H,KAAK,GAAA9H,IAAA,CAAL8H,KAAK,EAAEpJ,OAAO,GAAAsB,IAAA,CAAPtB,OAAO,EAAE2B,KAAK,GAAAL,IAAA,CAALK,KAAK,EAAE0H,QAAQ,GAAA/H,IAAA,CAAR+H,QAAQ;YACrCmE,MAAM,GAA8BpE,KAAK,CAAzCoE,MAAM,EAAEO,UAAU,GAAkB3E,KAAK,CAAjC2E,UAAU,EAAErO,IAAI,GAAY0J,KAAK,CAArB1J,IAAI,EAAEsO,KAAK,GAAK5E,KAAK,CAAf4E,KAAK;YAAAjM,QAAA,CAAAC,CAAA;YAAA,OAChBL,KAAK,CAAAmD,QAAA,KAGvB9E,OAAO;cACV8C,SAAS,EAAAgC,QAAA;gBACP4I,MAAM,EAAE,CAAC,oBAAoB,CAAC;gBAC9BhO,IAAI,EAAED,gBAAgB,CAACC,IAAI,CAAC;gBAC5BiO,KAAK,EAAEK;iBACHR,MAAM;;cAEN;gBAAEA,MAAM,GAAAS,OAAA,OAAAA,OAAA,YAAa5E,QAAQ,oBAARA,QAAQ,CAAEpG,MAAO,KAAKuK,MAAM,EAAAS,OAAA;eAAI,GACrD,EAAE,EACFF,UAAU,GACV;gBAAEH,OAAO,gCAA6BG,UAAU;eAAM,GACtD,EAAE;cAET,CAAC;UAAA;YAhBItE,QAAQ,GAAA1H,QAAA,CAAAO,CAAA;YAAA,OAAAP,QAAA,CAAAQ,CAAA,IAiBP;cACL2L,QAAQ,EAAEzE,QAAQ,CAACpH,IAAI,CAAC8L,OAAO,CAAC9J,GAAG,CAAC,UAACiC,OAAO;gBAAA,OAC1CD,gBAAgB,CAACC,OAAO,EAAE+C,QAAS,CAACpG,MAAM,CAAC;gBAC5C;cACDmL,KAAK,EAAE3E,QAAQ,CAACpH,IAAI,CAAC2L,KAAK,GAAG;aAC9B;;SAAAtM,OAAA;;GACF;EACD4H,OAAO,EACL,SADFA,OAAOA,CAAAC,KAAA;IAAA,IACFC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAA,OACV,UAACJ,KAAK;UAALA,KAAK;QAALA,KAAK,GAAG,EAAE;;MACT,OAAOI,OAAO,CAAC;QACbJ,KAAK,EAAE,CACL,CAAC,QAAQ,EAAEA,KAAK,CAACoE,MAAM,CAAC,EACxB,CAAC,YAAY,EAAEpE,KAAK,CAAC2E,UAAU,CAAC,EAChC,CAAC,SAAS,EAAE3E,KAAK,CAACiF,OAAO,CAAC,EAC1B,CAAC,MAAM,EAAEjF,KAAK,CAAC1J,IAAI,CAAC,EACpB,CAAC,QAAQ,EAAE0J,KAAK,CAACnG,MAAM,CAAC,EACxB,CAAC,OAAO,EAAEmG,KAAK,CAAC4E,KAAK,CAAC,CACvB;QACDtE,UAAU,EAAA5E,QAAA;UACR6E,iBAAiB,EAAE;WAChBP,KAAK,CAACM,UAAU;OAEtB,CAAC;KACH;;CACJ;;ACnEM,IAAMT,SAAO,GAA2B;EAC7CC,YAAY,EAAE;IACZ/G,KAAK,EAAE;GACR;EACKgH,OAAO,WAAPA,OAAOA,CAAA7H,IAAA;;;;;YAAwB,OAAAS,QAAA,CAAAQ,CAAA,IAC5B,IAAI;;SAAAb,OAAA;;GACZ;EACD4H,OAAO,EACL,SADFA,OAAOA,CAAAC,KAAA;IAAA,IACFC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAA,OACV,UAACJ,KAAK;MACJ,IAAMK,QAAQ,GAAGD,OAAO,CAAC;QACvBE,UAAU,EAAA5E,QAAA;UAAI6E,iBAAiB,EAAE;WAAUP,KAAK,oBAALA,KAAK,CAAEM,UAAU;OAC7D,CAAC;MACF,OAAOE,OAAO,CACZ;QAAA,OACE1G,MAAM,CAAC2G,MAAM,CAACJ,QAAQ,EAAE;UACtBK,OAAO,EAAE;YACPtJ,GAAG,WAAHA,GAAGA;;cACD,OAAO,EAAA8N,qBAAA,IAAAtE,cAAA,GAACP,QAAQ,CAACQ,IAAI,qBAAbD,cAAA,CAAeE,MAAM,YAAAoE,qBAAA,GAAI,CAAC,KAAK,CAAC;aACzC;YACDnE,UAAU,EAAE;;SAEf,CAAC;SACJ,CAACV,QAAQ,CAAC,CACX;KACF;;CACJ;;ACrBM,IAAMR,SAAO,GAA+B;EACjDC,YAAY,EAAE;IACZ/G,KAAK,EAAE,YAAY;IACnBC,MAAM,EAAE;GACT;EACK+G,OAAO,WAAPA,OAAOA,CAAA7H,IAAA;;;;;;YAAG8H,KAAK,GAAA9H,IAAA,CAAL8H,KAAK,EAAEpJ,OAAO,GAAAsB,IAAA,CAAPtB,OAAO,EAAE2B,KAAK,GAAAL,IAAA,CAALK,KAAK,EAAE0H,QAAQ,GAAA/H,IAAA,CAAR+H,QAAQ;YACrC0E,UAAU,GAAK3E,KAAK,CAApB2E,UAAU;YAAA,IACbA,UAAU;cAAAhM,QAAA,CAAAC,CAAA;cAAA;;YAAAD,QAAA,CAAAC,CAAA;YAAA,OACYL,KAAK,CAAAmD,QAAA,KACzB9E,OAAO,CACX,CAAC;UAAA;YAFIuO,UAAU,GAAAxM,QAAA,CAAAO,CAAA;YAAA,OAAAP,QAAA,CAAAQ,CAAA,IAGTgM,UAAU,CAAClM,IAAI,GAAGkM,UAAU,CAAClM,IAAI,CAAC8L,OAAO,CAAC9J,GAAG,CAAC,UAACyE,QAAQ;cAAA,OAAKD,iBAAiB,CAACC,QAAQ,EAAEO,QAAS,CAACpG,MAAM,CAAC;cAAC,GAAG,EAAE;UAAA;YAAAlB,QAAA,CAAAC,CAAA;YAAA,OAE9FL,KAAK,CAAAmD,QAAA,KACxB9E,OAAO;cACV8C,SAAS,EAAAgC,QAAA,KACHiJ,UAAU,GAAG;gBAAE5M,EAAE,EAAE4M;eAAY,GAAI,EAAG;cAE7C,CAAC;UAAA;YALIjF,QAAQ,GAAA/G,QAAA,CAAAO,CAAA;YAAA,OAAAP,QAAA,CAAAQ,CAAA,IAMPuG,QAAQ,CAACzG,IAAI,GAAG,CAACwG,iBAAiB,CAACC,QAAQ,CAACzG,IAAI,EAAEgH,QAAS,CAACpG,MAAM,CAAC,CAAC,GAAG,EAAE;UAAA;YAAA,OAAAlB,QAAA,CAAAQ,CAAA;;SAAAb,OAAA;;GAEnF;EACD4H,OAAO,EAAE,SAATA,OAAOA,CAAAC,KAAA;IAAA,IAAKC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAA,OAAO,UAACJ,KAAK;MAC9B,IAAMK,QAAQ,GAAGD,OAAO,CAAC;QACvBJ,KAAK,EAAE,CAAC,CAAC,YAAY,EAAEA,KAAK,oBAALA,KAAK,CAAE2E,UAAU,CAAC,CAAC;QAC1CrE,UAAU,EAAA5E,QAAA;UAAI6E,iBAAiB,EAAE;WAAUP,KAAK,oBAALA,KAAK,CAAEM,UAAU;OAC7D,CAAC;MACF,OAAOE,OAAO,CACZ;QAAA,OACE1G,MAAM,CAAC2G,MAAM,CAACJ,QAAQ,EAAE;UACtBK,OAAO,EAAE;YACPtJ,GAAG,WAAHA,GAAGA;;cACD,OAAO,EAAA8N,qBAAA,IAAAtE,cAAA,GAACP,QAAQ,CAACQ,IAAI,qBAAbD,cAAA,CAAeE,MAAM,YAAAoE,qBAAA,GAAI,CAAC,KAAK,CAAC;aACzC;YACDnE,UAAU,EAAE;;SAEf,CAAC;SACJ,CAACV,QAAQ,CAAC,CACX;KACF;;CACF;;ACjCM,IAAM+E,wBAAwB,GAAG,SAA3BA,wBAAwBA,CACnCtC,KAA+B,EAC/BjJ,MAAc;EAAA,OACV;IACJA,MAAM,EAANA,MAAM;IACNwL,UAAU,EAAE1O,yBAAyB;IACrC8B,IAAI,EAAE;MAAE+I,OAAO,EAAPA,OAAO;MAAE8D,UAAU,EAAVA,SAAU;MAAEC,aAAa,EAAbA,SAAa;MAAEC,aAAa,EAAbA;KAAe;IAC3DzF,OAAO,EAAE8D,UAAU,CAACf,KAAK,CAAC;IAC1BgC,QAAQ,EAAE;MAAEW,SAAS,EAATA,SAAS;MAAEC,UAAU,EAAVA;KAAY;IACnCC,IAAI,EAAE;MAAEC,aAAa,EAAbA,SAAa;MAAEC,SAAS,EAATA;;GACxB;AAAA,CAAC;;ICrBWC,WAAW,GAAG,SAAdA,WAAWA;EAAA,OAASC,aAAe,EAAyB;AAAA;AAEzE,IAAaC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIlD,KAA+B,EAAEjJ,MAAc;EAAA,OACjFoM,qBAAuB,CAACb,wBAAwB,CAACtC,KAAK,EAAEjJ,MAAM,CAAC,CAAC;AAAA;;ACOlE,IAAMqM,iBAAiB,GAAG,uCAAuC;AAEjE,IAAaC,oBAAoB,gBAAAzK,QAAA;EAC/BzE,IAAI,EAAEiP,iBAAiB;EACvBpL,WAAW,EAAE,wBAAwB;EACrCsL,KAAK,EAAE;IACLpD,UAAU,EAAE;MACVqD,IAAI,EAAE,QAAQ;MACdC,YAAY,EAAE;KACf;IACDhD,QAAQ,EAAE;MACR+C,IAAI,EAAE,QAAQ;MACdC,YAAY,EAAE;KACf;IACDlD,YAAY,EAAE;MACZiD,IAAI,EAAE,QAAQ;MACdC,YAAY,EAAE;KACf;IACDnD,MAAM,EAAE;MACNkD,IAAI,EAAE,QAAQ;MACdzP,OAAO,EAAE,CACP,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,CAC3B;MACD0P,YAAY,EAAE;;;AAEjB,GACE;EAAEC,aAAa,EAAEC;CAA4B;EAChDC,UAAU,EAAE,0BAA0B;EACtCC,UAAU,EAAE;AAA2B,EACxC;AAED,SAAgBC,yBAAyBA,CAACP,KAA4B;EACpE,IAAQQ,QAAQ,GAAiDR,KAAK,CAA9DQ,QAAQ;IAAE5D,UAAU,GAAqCoD,KAAK,CAApDpD,UAAU;IAAEM,QAAQ,GAA2B8C,KAAK,CAAxC9C,QAAQ;IAAEF,YAAY,GAAagD,KAAK,CAA9BhD,YAAY;IAAED,MAAM,GAAKiD,KAAK,CAAhBjD,MAAM;EAE5D,IAAML,KAAK,GAAG+D,KAAK,CAACrG,OAAO,CACzB;IAAA,OAAO;MAAEwC,UAAU,EAAVA,UAAU;MAAEM,QAAQ,EAARA,QAAQ;MAAEF,YAAY,EAAZA,YAAY;MAAED,MAAM,EAANA;KAAQ;GAAC,EACtD,CAACH,UAAU,EAAEM,QAAQ,EAAEF,YAAY,EAAED,MAAM,CAAC,CAC7C;EAED,IAAA2D,kBAAA,GAIIC,iBAAiB,CAAC1P,IAAI,CAACK,SAAS,CAAC;MAAEoL,KAAK,EAALA;KAAO,CAAC,GAAG,QAAQ,eAAA3K,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAE,SAAAC;MAAA,IAAAyH,OAAA,EAAAiH,OAAA;MAAA,OAAA5O,YAAA,GAAAM,CAAA,WAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,CAAA;UAAA;YACpDmH,OAAO,GAAG8D,UAAU,CAACf,KAAK,CAAC;YAAAnK,QAAA,CAAAC,CAAA;YAAA,OACcmH,OAAO,CAAC;cAAE/G,MAAM,EAAE;aAAO,CAAC;UAAA;YAAnEgO,OAAO,GAAArO,QAAA,CAAAO,CAAA;YAAA,OAAAP,QAAA,CAAAQ,CAAA,IACN6N,OAAO,CAAC/N,IAAI,GAAG+N,OAAO,CAAC/N,IAAI,CAACgO,SAAS,CAAC,CAAC,CAAC,GAAGxQ,SAAS;;SAAA6B,OAAA;KAC5D,GAAC;IAPMuB,MAAM,GAAAiN,kBAAA,CAAZjG,IAAI;IACJqG,KAAK,GAAAJ,kBAAA,CAALI,KAAK;IACLC,SAAS,GAAAL,kBAAA,CAATK,SAAS;EAOX,IAAMC,gBAAgB,GAAGP,KAAK,CAACrG,OAAO,CACpC;IAAA,OAAMwF,mBAAmB,CAAClD,KAAK,EAAEjJ,MAAM,WAANA,MAAM,GAAI,EAAE,CAAC;KAC9C,CAACiJ,KAAK,EAAEjJ,MAAM,CAAC,CAChB;EAED,IAAIsN,SAAS,EAAE;IACb,OAAO,IAAI;GACZ,MAAM,IAAID,KAAK,IAAI,CAACrN,MAAM,EAAE;IAC3B,MAAM,IAAIwN,KAAK,CAACH,KAAK,GAAGA,KAAK,CAAC3E,OAAO,GAAG,4BAA4B,CAAC;;EAGvE,OACEsE,oBAACO,gBAAgB,QACfP,oBAACS,mBAAmB;IAACpB,iBAAiB,EAAEA;KACrCU,QAAQ,CACW,CACL;AAEvB;AAEA,SAAgBW,wBAAwBA,CACtCC,MAAqB,EACrBC,0BAAqE;EAErE,IAAMC,mBAAmB,GAAiC,SAApDA,mBAAmBA;IAAA,OACvBF,MAAM,GACFA,MAAM,CAACG,qBAAqB,CAAAtO,KAAA,CAA5BmO,MAAM,EAAAlO,SAA8B,CAAC,GACrCqO,qBAAqB,CAAAtO,KAAA,SAAAC,SAAQ,CAAC;;EACpCoO,mBAAmB,CACjBf,yBAAyB,EACzBc,0BAA0B,WAA1BA,0BAA0B,GAAItB,oBAAoB,CACnD;AACH;;SCjGgByB,WAAWA,CAACJ,MAAqB;EAC/CD,wBAAwB,CAACC,MAAM,CAAC;AAClC;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { CommercetoolsProvider, CommercetoolsCredentials } from './provider';
|
|
3
|
+
export type { CommercetoolsProvider };
|
|
4
|
+
export declare const useCommerce: () => import("@daouypkgs/commerce").CommerceContextValue<CommercetoolsProvider>;
|
|
5
|
+
export declare const getCommerceProvider: (creds: CommercetoolsCredentials, locale: string) => ({ children, ...props }: import("@daouypkgs/commerce").CommerceProviderProps) => import("react").JSX.Element;
|
package/dist/const.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const COMMERCETOOLS_COOKIE_EXPIRE = 30;
|
|
2
|
+
export declare const COMMERCETOOLS_CART_COOKIE = "commercetools_cart";
|
|
3
|
+
export declare const COMMERCETOOLS_CUSTOMER_COOKIE = "commercetools_customer";
|
|
4
|
+
export declare const COMMERCETOOLS_WISHLIST_COOKIE = "commercetools_wishlist";
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SWRHook } from '@daouypkgs/commerce';
|
|
2
|
+
import type { GetProductHook } from '@daouypkgs/commerce';
|
|
3
|
+
export declare type GetProductInput = {
|
|
4
|
+
id?: string;
|
|
5
|
+
};
|
|
6
|
+
declare const _default;
|
|
7
|
+
export default _default;
|
|
8
|
+
export declare const handler: SWRHook<GetProductHook>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SearchProductsHook, SWRHook, UseSearch } from "@daouypkgs/commerce";
|
|
2
|
+
export declare type SearchProductsInput = {
|
|
3
|
+
search?: string;
|
|
4
|
+
categoryId?: number;
|
|
5
|
+
brandId?: number;
|
|
6
|
+
sort?: string;
|
|
7
|
+
locale?: string;
|
|
8
|
+
count?: number;
|
|
9
|
+
};
|
|
10
|
+
declare const useSearchTyped: UseSearch<typeof handler>;
|
|
11
|
+
export default useSearchTyped;
|
|
12
|
+
export declare const handler: SWRHook<SearchProductsHook>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Fetcher } from "@daouypkgs/commerce";
|
|
2
|
+
import { handler as useAddItem } from "./cart/use-add-item";
|
|
3
|
+
import { handler as useCart } from "./cart/use-cart";
|
|
4
|
+
import { handler as useProduct } from "./product/use-product";
|
|
5
|
+
import { handler as useSearch } from "./product/use-search";
|
|
6
|
+
import { handler as useBrands } from "./site/use-brands";
|
|
7
|
+
import { handler as useCategories } from "./site/use-categories";
|
|
8
|
+
export interface CommercetoolsCredentials {
|
|
9
|
+
projectKey: string;
|
|
10
|
+
clientId: string;
|
|
11
|
+
clientSecret: string;
|
|
12
|
+
region: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const getCommercetoolsProvider: (creds: CommercetoolsCredentials, locale: string) => {
|
|
15
|
+
locale: string;
|
|
16
|
+
cartCookie: string;
|
|
17
|
+
cart: {
|
|
18
|
+
useCart: import("@daouypkgs/commerce").SWRHook<import("@daouypkgs/commerce/dist/types/cart").GetCartHook<import("@daouypkgs/commerce/dist/types/cart").CartTypes>>;
|
|
19
|
+
useAddItem: import("@daouypkgs/commerce").MutationHook<import("@daouypkgs/commerce/dist/types/cart").AddItemHook<import("@daouypkgs/commerce/dist/types/cart").CartTypes>>;
|
|
20
|
+
useRemoveItem: import("@daouypkgs/commerce").MutationHook<import("@daouypkgs/commerce/dist/types/cart").RemoveItemHook<import("@daouypkgs/commerce/dist/types/cart").CartTypes>>;
|
|
21
|
+
useUpdateItem: import("@daouypkgs/commerce").MutationHook<import("@daouypkgs/commerce/dist/types/cart").UpdateItemHook<import("@daouypkgs/commerce/dist/types/cart").CartTypes>>;
|
|
22
|
+
};
|
|
23
|
+
fetcher: Fetcher<any, any>;
|
|
24
|
+
products: {
|
|
25
|
+
useSearch: import("@daouypkgs/commerce").SWRHook<import("@daouypkgs/commerce").SearchProductsHook<import("@daouypkgs/commerce/dist/types/product").ProductTypes>>;
|
|
26
|
+
useProduct: import("@daouypkgs/commerce").SWRHook<import("@daouypkgs/commerce").GetProductHook<import("@daouypkgs/commerce/dist/types/product").ProductTypes>>;
|
|
27
|
+
};
|
|
28
|
+
site: {
|
|
29
|
+
useCategories: import("@daouypkgs/commerce").SWRHook<import("@daouypkgs/commerce/dist/types/site").GetCategoriesHook<import("@daouypkgs/commerce/dist/types/site").SiteTypes>>;
|
|
30
|
+
useBrands: import("@daouypkgs/commerce").SWRHook<import("@daouypkgs/commerce/dist/types/site").GetBrandsHook<import("@daouypkgs/commerce/dist/types/site").SiteTypes>>;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export declare type CommercetoolsProvider = {
|
|
34
|
+
locale: string;
|
|
35
|
+
cartCookie: string;
|
|
36
|
+
fetcher: Fetcher;
|
|
37
|
+
cart: {
|
|
38
|
+
useCart: typeof useCart;
|
|
39
|
+
useAddItem: typeof useAddItem;
|
|
40
|
+
};
|
|
41
|
+
products: {
|
|
42
|
+
useSearch: typeof useSearch;
|
|
43
|
+
useProduct: typeof useProduct;
|
|
44
|
+
};
|
|
45
|
+
site: {
|
|
46
|
+
useCategories: typeof useCategories;
|
|
47
|
+
useBrands: typeof useBrands;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GlobalContextMeta } from "@daouy/host";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { CommercetoolsCredentials } from "./provider";
|
|
4
|
+
import { Registerable } from "./registerable";
|
|
5
|
+
interface CommerceProviderProps extends CommercetoolsCredentials {
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export declare const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps>;
|
|
9
|
+
export declare function CommerceProviderComponent(props: CommerceProviderProps): React.JSX.Element | null;
|
|
10
|
+
export declare function registerCommerceProvider(loader?: Registerable, customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>): void;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import registerGlobalContext from "@daouy/host/registerGlobalContext";
|
|
2
|
+
import registerComponent from "@daouy/host/registerComponent";
|
|
3
|
+
export declare type Registerable = {
|
|
4
|
+
registerComponent: typeof registerComponent;
|
|
5
|
+
registerGlobalContext: typeof registerGlobalContext;
|
|
6
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CartType as Core } from '@daouypkgs/commerce';
|
|
2
|
+
export declare type SelectedOption = Core.SelectedOption;
|
|
3
|
+
export declare type LineItem = Core.LineItem;
|
|
4
|
+
export declare type ProductVariant = Core.ProductVariant;
|
|
5
|
+
export declare type CartItemBody = Core.CartItemBody;
|
|
6
|
+
/**
|
|
7
|
+
* Extend core cart types
|
|
8
|
+
*/
|
|
9
|
+
export declare type Cart = Core.Cart & {
|
|
10
|
+
lineItems: Core.LineItem[];
|
|
11
|
+
url?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare type CartTypes = Core.CartTypes;
|
|
14
|
+
export declare type CartHooks = Core.CartHooks<CartTypes>;
|
|
15
|
+
export declare type GetCartHook = CartHooks['getCart'];
|
|
16
|
+
export declare type AddItemHook = CartHooks['addItem'];
|
|
17
|
+
export declare type UpdateItemHook = CartHooks['updateItem'];
|
|
18
|
+
export declare type RemoveItemHook = CartHooks['removeItem'];
|
|
19
|
+
export declare type CartSchema = Core.CartSchema<CartTypes>;
|
|
20
|
+
export declare type CartHandlers = Core.CartHandlers<CartTypes>;
|
|
21
|
+
export declare type GetCartHandler = CartHandlers['getCart'];
|
|
22
|
+
export declare type AddItemHandler = CartHandlers['addItem'];
|
|
23
|
+
export declare type UpdateItemHandler = CartHandlers['updateItem'];
|
|
24
|
+
export declare type RemoveItemHandler = CartHandlers['removeItem'];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ProductTypes as Core } from '@daouypkgs/commerce';
|
|
2
|
+
export declare type ProductImage = Core.ProductImage;
|
|
3
|
+
export declare type ProductPrice = Core.ProductPrice;
|
|
4
|
+
export declare type ProductOption = Core.ProductOption;
|
|
5
|
+
export declare type ProductOptionValues = Core.ProductOptionValues;
|
|
6
|
+
export declare type ProductVariant = Core.ProductVariant;
|
|
7
|
+
export declare type Product = Core.Product;
|
|
8
|
+
export declare type SearchProductsBody = Core.SearchProductsBody;
|
|
9
|
+
export declare type ProductTypes = Core.ProductTypes;
|
|
10
|
+
export declare type SearchProductsHook = Core.SearchProductsHook;
|
|
11
|
+
export declare type ProductsSchema = Core.ProductsSchema;
|
|
12
|
+
export declare type GetAllProductPathsOperation = Core.GetAllProductPathsOperation;
|
|
13
|
+
export declare type GetAllProductsOperation = Core.GetAllProductsOperation;
|
|
14
|
+
export declare type GetProductOperation = Core.GetProductOperation;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SiteTypes } from "@daouypkgs/commerce";
|
|
2
|
+
export declare type Category = SiteTypes.Category;
|
|
3
|
+
export declare type Brand = SiteTypes.Brand;
|
|
4
|
+
export declare type SiteTypes = SiteTypes.SiteTypes;
|
|
5
|
+
export declare type GetSiteInfoOperation = SiteTypes.GetSiteInfoOperation;
|
|
6
|
+
export declare type GetCategoriesHook = SiteTypes.GetCategoriesHook;
|
|
7
|
+
export declare type GetBrandsHook = SiteTypes.GetBrandsHook;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { default as getSortVariables } from './get-sort-variables';
|
|
2
|
+
export { default as createCart } from './cart-create';
|
|
3
|
+
export { default as getActiveCart } from './cart-active';
|
|
4
|
+
export { default as getLocalizedString } from './localized-string';
|
|
5
|
+
export * from './normalize';
|
|
6
|
+
export * from './common';
|
|
7
|
+
export * from './cart-cookie';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Category } from '../types/site';
|
|
2
|
+
import { ProductProjection, Category as CommercetoolsCategory, Cart as CommercetoolsCart, Customer, ShoppingList, ProductData } from '@commercetools/platform-sdk';
|
|
3
|
+
import { Cart } from '../types/cart';
|
|
4
|
+
import { Product } from '../types/product';
|
|
5
|
+
export declare const normalizeProduct: (product: ProductProjection | (ProductData & {
|
|
6
|
+
id: string;
|
|
7
|
+
}), locale: string) => Product;
|
|
8
|
+
export declare const normalizeCart: (cart: CommercetoolsCart, locale: string) => Cart;
|
|
9
|
+
export declare const normalizeCategory: (category: CommercetoolsCategory, locale: string) => Category;
|
|
10
|
+
export declare const normalizeCustomer: (customer: Customer) => {
|
|
11
|
+
firstName: string | undefined;
|
|
12
|
+
lastName: string | undefined;
|
|
13
|
+
email: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const normalizeWishlist: (wishlist: ShoppingList) => {
|
|
16
|
+
items: {
|
|
17
|
+
id: string;
|
|
18
|
+
product_id: string;
|
|
19
|
+
variant_id: number;
|
|
20
|
+
}[];
|
|
21
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@daouypkgs/commerce-commercetools",
|
|
3
|
+
"version": "0.0.183",
|
|
4
|
+
"description": "Daouy registration calls for commercetools commerce provider",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"module": "dist/commerce-commercetools.esm.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsdx build",
|
|
13
|
+
"start": "tsdx watch",
|
|
14
|
+
"test": "TEST_CWD=`pwd` yarn --cwd=../../.. test --passWithNoTests",
|
|
15
|
+
"lint": "tsdx lint",
|
|
16
|
+
"prepublishOnly": "npm run build",
|
|
17
|
+
"size": "size-limit",
|
|
18
|
+
"analyze": "size-limit --why"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@daouy/host": "^1.0.234",
|
|
22
|
+
"@daouy/query": "^0.1.82",
|
|
23
|
+
"@types/debounce": "^1.2.4",
|
|
24
|
+
"@types/js-cookie": "^3.0.1",
|
|
25
|
+
"@types/node": "^14.0.26",
|
|
26
|
+
"react": "^18.2.0",
|
|
27
|
+
"react-dom": "^18.2.0",
|
|
28
|
+
"tsdx": "^0.14.1"
|
|
29
|
+
},
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"@daouy/host": "^1.0.234",
|
|
32
|
+
"@daouy/query": "^0.1.82",
|
|
33
|
+
"react": ">=16.8.0"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@commercetools/platform-sdk": "^2.8.0",
|
|
37
|
+
"@commercetools/sdk-client-v2": "^2.2.2",
|
|
38
|
+
"@daouypkgs/commerce": "^0.0.233",
|
|
39
|
+
"@types/react": "^18.0.27",
|
|
40
|
+
"debounce": "^2.0.0",
|
|
41
|
+
"js-cookie": "^3.0.5",
|
|
42
|
+
"qs": "^6.11.0"
|
|
43
|
+
},
|
|
44
|
+
"publishConfig": {
|
|
45
|
+
"access": "public"
|
|
46
|
+
}
|
|
47
|
+
}
|