@takeshape/purchase-order-chat 1.65.0 → 1.67.0
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/index.js +1 -1
- package/dist/{purchase-order-chat-wrapper-BnFD7EDN.js → purchase-order-chat-wrapper-DkViJTyi.js} +3149 -2687
- package/dist/purchase-order-chat-wrapper-DkViJTyi.js.map +1 -0
- package/dist/shadow.js +2 -2
- package/dist/tailwind.d.ts +16 -0
- package/dist/tailwind.js +52 -37
- package/dist/tailwind.js.map +1 -1
- package/package.json +3 -3
- package/dist/purchase-order-chat-wrapper-BnFD7EDN.js.map +0 -1
package/dist/tailwind.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind.js","sources":["../src/lib/bigcommerce/storefront/mock-client.ts"],"sourcesContent":["// Mock BigCommerce Client for Development/Demo Mode\n\nimport type {\n BigCommerceConfig,\n CachedProduct,\n CachedVariant,\n Cart,\n CartBatchError,\n CartLineItem,\n CartLineItemInput,\n CartRedirectUrls,\n Checkout,\n CheckoutAddress,\n CheckoutConsignment,\n CheckoutConsignmentLineItem,\n CheckoutShippingOption,\n CustomerAddress,\n CustomerInfo,\n Money,\n OptionValueId,\n ProductVariantDetails\n} from './types.js';\n\nexport class MockBigCommerceClient {\n private carts: Map<string, Cart> = new Map();\n private checkouts: Map<string, Checkout> = new Map();\n private checkoutToCartId: Map<string, string> = new Map();\n private nextCartId = 1;\n private nextCheckoutId = 1;\n private nextLineItemId = 1;\n private nextConsignmentId = 1;\n private nextShippingOptionId = 1;\n\n readonly channelId = 1; // Default channel ID for mock\n\n constructor(_config?: BigCommerceConfig) {\n // Config not used in mock\n }\n\n /**\n * Helper: Create a Money object\n */\n private createMoney(value: number): Money {\n return {\n value,\n currencyCode: 'USD'\n };\n }\n\n /**\n * Helper: Generate cart entity ID\n */\n private generateCartId(): string {\n return `cart-${this.nextCartId++}`;\n }\n\n /**\n * Helper: Generate checkout entity ID\n */\n private generateCheckoutId(): string {\n return `checkout-${this.nextCheckoutId++}`;\n }\n\n /**\n * Helper: Generate line item entity ID\n */\n private generateLineItemId(): string {\n return `item-${this.nextLineItemId++}`;\n }\n\n /**\n * Helper: Generate consignment entity ID\n */\n private generateConsignmentId(): string {\n return `consignment-${this.nextConsignmentId++}`;\n }\n\n /**\n * Helper: Generate shipping option entity ID\n */\n private generateShippingOptionId(): string {\n return `shipping-option-${this.nextShippingOptionId++}`;\n }\n\n /**\n * Helper: Create a cart line item from input\n */\n private createCartLineItem(input: CartLineItemInput): CartLineItem {\n const price = input.productEntityId * 0.1;\n const extendedPrice = price * input.quantity;\n\n return {\n entityId: this.generateLineItemId(),\n productEntityId: input.productEntityId,\n variantEntityId: input.variantEntityId ?? input.productEntityId,\n quantity: input.quantity,\n name: `Product ${input.productEntityId}`,\n sku: `SKU-${input.productEntityId}`,\n originalPrice: this.createMoney(price),\n listPrice: this.createMoney(price),\n extendedListPrice: this.createMoney(extendedPrice),\n extendedSalePrice: this.createMoney(extendedPrice),\n imageUrl: null\n };\n }\n\n /**\n * Helper: Calculate cart totals\n */\n private calculateCartTotals(items: CartLineItem[]): {\n amount: Money;\n baseAmount: Money;\n discountedAmount: Money;\n } {\n const total = items.reduce(\n (sum, item) => sum + item.extendedSalePrice.value,\n 0\n );\n\n return {\n amount: this.createMoney(total),\n baseAmount: this.createMoney(total),\n discountedAmount: this.createMoney(0)\n };\n }\n\n /**\n * Helper: Calculate checkout totals\n */\n private calculateCheckoutTotals(checkout: Checkout): void {\n const cartId = this.checkoutToCartId.get(checkout.entityId);\n const cart = cartId ? this.carts.get(cartId) : undefined;\n const subtotal = cart?.amount.value ?? 0;\n let tax = 0;\n let shipping = 0;\n\n // Calculate tax if shipping consignment exists (8% rate)\n if (\n checkout.shippingConsignments &&\n checkout.shippingConsignments.length > 0\n ) {\n tax = subtotal * 0.08;\n }\n\n // Calculate shipping from selected options\n for (const consignment of checkout.shippingConsignments ?? []) {\n if (consignment.selectedShippingOption) {\n shipping += consignment.selectedShippingOption.cost.value;\n }\n }\n\n checkout.subtotal = this.createMoney(subtotal);\n checkout.taxTotal = this.createMoney(tax);\n checkout.shippingCostTotal = this.createMoney(shipping);\n checkout.handlingCostTotal = this.createMoney(0);\n checkout.grandTotal = this.createMoney(subtotal + tax + shipping);\n }\n\n /**\n * Get an existing cart by ID\n */\n async getCart(cartEntityId?: string): Promise<Cart | null> {\n if (!cartEntityId) {\n return null;\n }\n return this.carts.get(cartEntityId) ?? null;\n }\n\n /**\n * Create a new cart with line items\n * Returns { cart, errors } to match the real client\n */\n async createCart(\n lineItems: CartLineItemInput[]\n ): Promise<{ cart: Cart | null; errors: CartBatchError[] }> {\n if (lineItems.length === 0) {\n throw new Error('Cannot create cart with no line items');\n }\n\n const cartId = this.generateCartId();\n const checkoutId = this.generateCheckoutId();\n const now = { utc: new Date().toISOString() };\n\n const physicalItems = lineItems.map((item) =>\n this.createCartLineItem(item)\n );\n const totals = this.calculateCartTotals(physicalItems);\n\n const cart: Cart = {\n id: cartId,\n entityId: cartId,\n lineItems: {\n physicalItems,\n digitalItems: []\n },\n amount: totals.amount,\n baseAmount: totals.baseAmount,\n discountedAmount: totals.discountedAmount,\n createdAt: now,\n updatedAt: now\n };\n\n this.carts.set(cartId, cart);\n\n // Create corresponding checkout\n const checkout: Checkout = {\n entityId: checkoutId,\n subtotal: cart.amount,\n taxTotal: this.createMoney(0),\n grandTotal: cart.amount,\n shippingCostTotal: this.createMoney(0),\n handlingCostTotal: this.createMoney(0),\n billingAddress: null,\n shippingConsignments: null\n };\n\n this.checkouts.set(checkoutId, checkout);\n this.checkoutToCartId.set(checkoutId, cartId);\n\n return { cart, errors: [] };\n }\n\n /**\n * Add line items to an existing cart\n * Returns { cart, errors } to match the real client\n */\n async addCartLineItems(\n cartEntityId: string,\n lineItems: CartLineItemInput[]\n ): Promise<{ cart: Cart | null; errors: CartBatchError[] }> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return { cart: null, errors: [] };\n }\n\n if (lineItems.length === 0) {\n return { cart, errors: [] };\n }\n\n const newItems = lineItems.map((item) => this.createCartLineItem(item));\n const allItems = [...cart.lineItems.physicalItems, ...newItems];\n const totals = this.calculateCartTotals(allItems);\n\n const updatedCart: Cart = {\n ...cart,\n lineItems: {\n ...cart.lineItems,\n physicalItems: allItems\n },\n amount: totals.amount,\n baseAmount: totals.baseAmount,\n discountedAmount: totals.discountedAmount,\n updatedAt: { utc: new Date().toISOString() }\n };\n\n this.carts.set(cartEntityId, updatedCart);\n\n // Update corresponding checkout\n for (const [checkoutId, cartId] of this.checkoutToCartId.entries()) {\n if (cartId === cartEntityId) {\n const checkout = this.checkouts.get(checkoutId);\n if (checkout) {\n const updatedCheckout = { ...checkout };\n this.calculateCheckoutTotals(updatedCheckout);\n this.checkouts.set(checkoutId, updatedCheckout);\n }\n break;\n }\n }\n\n return { cart: updatedCart, errors: [] };\n }\n\n /**\n * Update the quantity of a cart line item\n */\n async updateCartLineItem(\n cartEntityId: string,\n lineItemEntityId: string,\n quantity: number,\n _productEntityId: number,\n _variantEntityId?: number\n ): Promise<Cart | null> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return null;\n }\n\n const itemIndex = cart.lineItems.physicalItems.findIndex(\n (item) => item.entityId === lineItemEntityId\n );\n if (itemIndex === -1) {\n return null;\n }\n\n const updatedItems = [...cart.lineItems.physicalItems];\n const item = updatedItems[itemIndex];\n if (!item) {\n return null;\n }\n\n const price = item.listPrice.value;\n const extendedPrice = price * quantity;\n\n updatedItems[itemIndex] = {\n ...item,\n quantity,\n extendedListPrice: this.createMoney(extendedPrice),\n extendedSalePrice: this.createMoney(extendedPrice)\n };\n\n const totals = this.calculateCartTotals(updatedItems);\n\n const updatedCart: Cart = {\n ...cart,\n lineItems: {\n ...cart.lineItems,\n physicalItems: updatedItems\n },\n amount: totals.amount,\n baseAmount: totals.baseAmount,\n discountedAmount: totals.discountedAmount,\n updatedAt: { utc: new Date().toISOString() }\n };\n\n this.carts.set(cartEntityId, updatedCart);\n\n // Update corresponding checkout\n for (const [checkoutId, cartId] of this.checkoutToCartId.entries()) {\n if (cartId === cartEntityId) {\n const checkout = this.checkouts.get(checkoutId);\n if (checkout) {\n const updatedCheckout = { ...checkout };\n this.calculateCheckoutTotals(updatedCheckout);\n this.checkouts.set(checkoutId, updatedCheckout);\n }\n break;\n }\n }\n\n return updatedCart;\n }\n\n /**\n * Remove a line item from the cart\n */\n async deleteCartLineItem(\n cartEntityId: string,\n lineItemEntityId: string\n ): Promise<Cart | null> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return null;\n }\n\n const itemExists = cart.lineItems.physicalItems.some(\n (item) => item.entityId === lineItemEntityId\n );\n if (!itemExists) {\n return null;\n }\n\n const updatedItems = cart.lineItems.physicalItems.filter(\n (item) => item.entityId !== lineItemEntityId\n );\n const totals = this.calculateCartTotals(updatedItems);\n\n const updatedCart: Cart = {\n ...cart,\n lineItems: {\n ...cart.lineItems,\n physicalItems: updatedItems\n },\n amount: totals.amount,\n baseAmount: totals.baseAmount,\n discountedAmount: totals.discountedAmount,\n updatedAt: { utc: new Date().toISOString() }\n };\n\n this.carts.set(cartEntityId, updatedCart);\n\n // Update corresponding checkout\n for (const [checkoutId, cartId] of this.checkoutToCartId.entries()) {\n if (cartId === cartEntityId) {\n const checkout = this.checkouts.get(checkoutId);\n if (checkout) {\n const updatedCheckout = { ...checkout };\n this.calculateCheckoutTotals(updatedCheckout);\n this.checkouts.set(checkoutId, updatedCheckout);\n }\n break;\n }\n }\n\n return updatedCart;\n }\n\n /**\n * Delete an entire cart\n */\n async deleteCart(cartEntityId: string): Promise<string | null> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return null;\n }\n\n this.carts.delete(cartEntityId);\n\n // Delete corresponding checkout\n for (const [checkoutId, cartId] of this.checkoutToCartId.entries()) {\n if (cartId === cartEntityId) {\n this.checkouts.delete(checkoutId);\n this.checkoutToCartId.delete(checkoutId);\n break;\n }\n }\n\n return cartEntityId;\n }\n\n /**\n * Create a cart or add to existing cart\n * Convenience method that handles both cases\n * Returns { cart, errors } to match the real client\n */\n async addToCart(\n lineItems: CartLineItemInput[],\n existingCartId?: string\n ): Promise<{ cart: Cart | null; errors: CartBatchError[] }> {\n if (existingCartId) {\n return this.addCartLineItems(existingCartId, lineItems);\n }\n return this.createCart(lineItems);\n }\n\n /**\n * Create single-use redirect URLs for a cart\n */\n async createCartRedirectUrls(\n cartEntityId: string\n ): Promise<CartRedirectUrls | null> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return null;\n }\n\n return {\n redirectedCheckoutUrl: `https://store.example.com/cart/${cartEntityId}`\n };\n }\n\n /**\n * Get checkout by entity ID\n */\n async getCheckout(checkoutEntityId?: string): Promise<Checkout | null> {\n if (!checkoutEntityId) {\n return null;\n }\n return this.checkouts.get(checkoutEntityId) ?? null;\n }\n\n /**\n * Add shipping consignments (addresses) to a checkout\n */\n async setCheckoutShippingAddress(\n checkoutEntityId: string,\n address: CheckoutAddress,\n lineItems: CheckoutConsignmentLineItem[]\n ): Promise<Checkout | null> {\n const checkout = this.checkouts.get(checkoutEntityId);\n if (!checkout) {\n return null;\n }\n\n const consignmentId = this.generateConsignmentId();\n\n // Generate shipping options\n const shippingOptions: CheckoutShippingOption[] = [\n {\n entityId: this.generateShippingOptionId(),\n description: 'Standard Shipping',\n type: 'shipping_flatrate',\n cost: this.createMoney(5)\n },\n {\n entityId: this.generateShippingOptionId(),\n description: 'Express Shipping',\n type: 'shipping_express',\n cost: this.createMoney(15)\n },\n {\n entityId: this.generateShippingOptionId(),\n description: 'Overnight Shipping',\n type: 'shipping_overnight',\n cost: this.createMoney(25)\n }\n ];\n\n const consignment: CheckoutConsignment = {\n entityId: consignmentId,\n address: {\n firstName: address.firstName ?? null,\n lastName: address.lastName ?? null,\n address1: address.address1 ?? null,\n address2: address.address2 ?? null,\n city: address.city ?? null,\n stateOrProvince: address.stateOrProvince ?? null,\n stateOrProvinceCode: address.stateOrProvinceCode ?? null,\n countryCode: address.countryCode,\n postalCode: address.postalCode ?? null,\n phone: address.phone ?? null,\n email: address.email ?? null\n },\n availableShippingOptions: shippingOptions,\n selectedShippingOption: null,\n shippingCost: null,\n lineItemIds: lineItems.map((item) => item.lineItemEntityId)\n };\n\n const updatedCheckout: Checkout = {\n ...checkout,\n shippingConsignments: [\n ...(checkout.shippingConsignments ?? []),\n consignment\n ]\n };\n\n this.calculateCheckoutTotals(updatedCheckout);\n this.checkouts.set(checkoutEntityId, updatedCheckout);\n\n return updatedCheckout;\n }\n\n /**\n * Add billing address to a checkout\n */\n async setCheckoutBillingAddress(\n checkoutEntityId: string,\n address: CheckoutAddress\n ): Promise<Checkout | null> {\n const checkout = this.checkouts.get(checkoutEntityId);\n if (!checkout) {\n return null;\n }\n\n checkout.billingAddress = {\n firstName: address.firstName ?? null,\n lastName: address.lastName ?? null,\n address1: address.address1 ?? null,\n address2: address.address2 ?? null,\n city: address.city ?? null,\n stateOrProvince: address.stateOrProvince ?? null,\n stateOrProvinceCode: address.stateOrProvinceCode ?? null,\n countryCode: address.countryCode,\n postalCode: address.postalCode ?? null,\n phone: address.phone ?? null,\n email: address.email ?? null\n };\n\n this.checkouts.set(checkoutEntityId, checkout);\n return checkout;\n }\n\n /**\n * Get customer's saved addresses and customer info\n * Always returns empty for mock (simulates logged-out state)\n */\n async getCustomerAddresses(): Promise<{\n customerInfo: CustomerInfo | null;\n addresses: CustomerAddress[];\n }> {\n return {\n customerInfo: null,\n addresses: []\n };\n }\n\n /**\n * Update checkout customer message (order notes)\n */\n async updateCheckoutCustomerMessage(\n checkoutEntityId: string,\n _message: any\n ): Promise<Checkout | null> {\n const checkout = this.checkouts.get(checkoutEntityId);\n if (!checkout) {\n return null;\n }\n\n // Note: The Checkout type doesn't have a message field,\n // but we can still update and return the checkout\n // In a real implementation, this would be stored on the checkout\n return checkout;\n }\n\n /**\n * Create a metafield on a cart (no-op in mock)\n */\n async createCartMetafield(\n _cartEntityId: string,\n _key: string,\n _value: string\n ): Promise<void> {\n // No-op in mock client\n }\n\n /**\n * Low-level request method (not implemented in mock)\n */\n async request<T = unknown>(_options: unknown): Promise<T> {\n throw new Error(\n 'MockBigCommerceClient.request() is not implemented. Use specific methods instead.'\n );\n }\n\n /**\n * Get product variant details for multiple products\n * Returns mock product options and variants\n */\n async getProductVariantDetails(\n productEntityIds: number[]\n ): Promise<ProductVariantDetails[]> {\n return productEntityIds.map((entityId) => ({\n entityId,\n productOptions: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n isRequired: true,\n isVariantOption: true,\n displayStyle: 'DropdownList',\n values: [\n { entityId: entityId * 100 + 1, label: 'Small', isDefault: true },\n { entityId: entityId * 100 + 2, label: 'Medium', isDefault: false },\n { entityId: entityId * 100 + 3, label: 'Large', isDefault: false }\n ]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n isRequired: true,\n isVariantOption: true,\n displayStyle: 'DropdownList',\n values: [\n { entityId: entityId * 100 + 11, label: 'Red', isDefault: true },\n { entityId: entityId * 100 + 12, label: 'Blue', isDefault: false }\n ]\n }\n ],\n variants: [\n // Small + Red\n {\n entityId: entityId * 1000 + 1,\n sku: `SKU-${entityId}-S-R`,\n isPurchasable: true,\n prices: { price: { value: 29.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 10, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 1, label: 'Small' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 11, label: 'Red' }]\n }\n ]\n },\n // Small + Blue\n {\n entityId: entityId * 1000 + 2,\n sku: `SKU-${entityId}-S-B`,\n isPurchasable: true,\n prices: { price: { value: 29.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 5, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 1, label: 'Small' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 12, label: 'Blue' }]\n }\n ]\n },\n // Medium + Red\n {\n entityId: entityId * 1000 + 3,\n sku: `SKU-${entityId}-M-R`,\n isPurchasable: true,\n prices: { price: { value: 34.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 8, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 2, label: 'Medium' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 11, label: 'Red' }]\n }\n ]\n },\n // Medium + Blue\n {\n entityId: entityId * 1000 + 4,\n sku: `SKU-${entityId}-M-B`,\n isPurchasable: false, // Out of stock example\n prices: { price: { value: 34.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 0, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 2, label: 'Medium' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 12, label: 'Blue' }]\n }\n ]\n },\n // Large + Red\n {\n entityId: entityId * 1000 + 5,\n sku: `SKU-${entityId}-L-R`,\n isPurchasable: true,\n prices: { price: { value: 39.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 12, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 3, label: 'Large' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 11, label: 'Red' }]\n }\n ]\n },\n // Large + Blue\n {\n entityId: entityId * 1000 + 6,\n sku: `SKU-${entityId}-L-B`,\n isPurchasable: true,\n prices: { price: { value: 39.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 7, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 3, label: 'Large' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 12, label: 'Blue' }]\n }\n ]\n }\n ]\n }));\n }\n\n /**\n * Get product display data for caching (unified query).\n * Returns mock products with paths, options, and default variant.\n */\n async getProductDisplayData(\n productEntityIds: number[],\n variantEntityIds?: number[]\n ): Promise<CachedProduct[]> {\n return productEntityIds.map((entityId) => {\n // Default variant\n const defaultVariantBase: CachedVariant = {\n entityId: entityId * 1000 + 1,\n productEntityId: entityId,\n sku: `SKU-${entityId}-S-R`,\n isPurchasable: true,\n defaultImage:\n 'https://cdn11.bigcommerce.com/s-abc/images/stencil/200w/products/{:size}/variant1.jpg',\n price: 29.99,\n currencyCode: 'USD',\n isInStock: true,\n availableToSell: 10,\n optionValues: {\n [entityId * 100]: entityId * 100 + 1, // Size: Small\n [entityId * 100 + 10]: entityId * 100 + 11 // Color: Red\n }\n };\n\n // If specific variant IDs were requested, try to match one\n let defaultVariant = defaultVariantBase;\n if (variantEntityIds?.length) {\n const requestedId = variantEntityIds.find(\n (vid) => vid >= entityId * 1000 + 1 && vid <= entityId * 1000 + 6\n );\n if (requestedId && requestedId !== defaultVariantBase.entityId) {\n defaultVariant = {\n ...defaultVariantBase,\n entityId: requestedId,\n sku: `SKU-${entityId}-V${requestedId - entityId * 1000}`\n };\n }\n }\n\n return {\n entityId,\n name: `Product ${entityId}`,\n sku: `SKU-${entityId}`,\n path: `/products/product-${entityId}/`,\n defaultImage:\n 'https://cdn11.bigcommerce.com/s-abc/images/stencil/200w/products/{:size}/sample.jpg',\n productOptions: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n isRequired: true,\n isVariantOption: true,\n displayStyle: 'DropdownList',\n values: [\n {\n entityId: entityId * 100 + 1,\n label: 'Small',\n isDefault: true\n },\n {\n entityId: entityId * 100 + 2,\n label: 'Medium',\n isDefault: false\n },\n {\n entityId: entityId * 100 + 3,\n label: 'Large',\n isDefault: false\n }\n ]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n isRequired: true,\n isVariantOption: true,\n displayStyle: 'DropdownList',\n values: [\n {\n entityId: entityId * 100 + 11,\n label: 'Red',\n isDefault: true\n },\n {\n entityId: entityId * 100 + 12,\n label: 'Blue',\n isDefault: false\n }\n ]\n }\n ],\n defaultVariant\n };\n });\n }\n\n /**\n * Get a specific variant by option selections (lazy loading).\n * Returns a mock variant matching the selections.\n */\n async getVariantByOptions(\n productEntityId: number,\n optionValueIds: OptionValueId[]\n ): Promise<CachedVariant | null> {\n // Build a map of option selections\n const selections: Record<number, number> = {};\n for (const { optionEntityId, valueEntityId } of optionValueIds) {\n selections[optionEntityId] = valueEntityId;\n }\n\n // Get size and color selections\n const sizeOptionId = productEntityId * 100;\n const colorOptionId = productEntityId * 100 + 10;\n const sizeValueId = selections[sizeOptionId];\n const colorValueId = selections[colorOptionId];\n\n // Map size value IDs to labels\n const sizeLabels: Record<number, string> = {\n [productEntityId * 100 + 1]: 'S',\n [productEntityId * 100 + 2]: 'M',\n [productEntityId * 100 + 3]: 'L'\n };\n\n // Map color value IDs to labels\n const colorLabels: Record<number, string> = {\n [productEntityId * 100 + 11]: 'R',\n [productEntityId * 100 + 12]: 'B'\n };\n\n const sizeLabel = sizeValueId ? sizeLabels[sizeValueId] : 'S';\n const colorLabel = colorValueId ? colorLabels[colorValueId] : 'R';\n\n // Generate a consistent variant ID based on selections\n const variantIndex =\n (sizeValueId ? sizeValueId - (productEntityId * 100 + 1) : 0) * 2 +\n (colorValueId ? colorValueId - (productEntityId * 100 + 11) : 0) +\n 1;\n\n return {\n entityId: productEntityId * 1000 + variantIndex,\n productEntityId,\n sku: `SKU-${productEntityId}-${sizeLabel}-${colorLabel}`,\n isPurchasable: true,\n defaultImage:\n 'https://cdn11.bigcommerce.com/s-abc/images/stencil/200w/products/{:size}/variant.jpg',\n price:\n 29.99 +\n (sizeValueId ? (sizeValueId - (productEntityId * 100 + 1)) * 5 : 0),\n currencyCode: 'USD',\n isInStock: true,\n availableToSell: 10 - variantIndex,\n optionValues: selections\n };\n }\n\n /**\n * Reset all state (useful for testing)\n */\n reset(): void {\n this.carts.clear();\n this.checkouts.clear();\n this.checkoutToCartId.clear();\n this.nextCartId = 1;\n this.nextCheckoutId = 1;\n this.nextLineItemId = 1;\n this.nextConsignmentId = 1;\n this.nextShippingOptionId = 1;\n }\n}\n\n/**\n * Create a mock BigCommerce client instance\n */\nexport function createMockBigCommerceClient(\n config?: BigCommerceConfig\n): MockBigCommerceClient {\n return new MockBigCommerceClient(config);\n}\n"],"names":["MockBigCommerceClient","_config","value","input","price","extendedPrice","items","total","sum","item","checkout","cartId","subtotal","tax","shipping","consignment","cartEntityId","lineItems","checkoutId","now","physicalItems","totals","cart","newItems","allItems","updatedCart","updatedCheckout","lineItemEntityId","quantity","_productEntityId","_variantEntityId","itemIndex","updatedItems","existingCartId","checkoutEntityId","address","consignmentId","shippingOptions","_message","_cartEntityId","_key","_value","_options","productEntityIds","entityId","variantEntityIds","defaultVariantBase","defaultVariant","requestedId","vid","productEntityId","optionValueIds","selections","optionEntityId","valueEntityId","sizeOptionId","colorOptionId","sizeValueId","colorValueId","sizeLabels","colorLabels","sizeLabel","colorLabel","variantIndex","createMockBigCommerceClient","config"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tailwind.js","sources":["../src/lib/bigcommerce/storefront/mock-client.ts"],"sourcesContent":["// Mock BigCommerce Client for Development/Demo Mode\n\nimport type {\n BigCommerceConfig,\n CachedProduct,\n CachedVariant,\n Cart,\n CartBatchError,\n CartLineItem,\n CartLineItemInput,\n CartRedirectUrls,\n Checkout,\n CheckoutAddress,\n CheckoutConsignment,\n CheckoutConsignmentLineItem,\n CheckoutShippingOption,\n CustomerAddress,\n CustomerInfo,\n Money,\n OptionValueId,\n ProductVariantDetails\n} from './types.js';\n\nexport class MockBigCommerceClient {\n private carts: Map<string, Cart> = new Map();\n private checkouts: Map<string, Checkout> = new Map();\n private checkoutToCartId: Map<string, string> = new Map();\n private nextCartId = 1;\n private nextCheckoutId = 1;\n private nextLineItemId = 1;\n private nextConsignmentId = 1;\n private nextShippingOptionId = 1;\n private customerEntityId: number | null = null;\n\n readonly channelId = 1; // Default channel ID for mock\n\n constructor(_config?: BigCommerceConfig) {\n // Config not used in mock\n }\n\n /**\n * Helper: Create a Money object\n */\n private createMoney(value: number): Money {\n return {\n value,\n currencyCode: 'USD'\n };\n }\n\n /**\n * Helper: Generate cart entity ID\n */\n private generateCartId(): string {\n return `cart-${this.nextCartId++}`;\n }\n\n /**\n * Helper: Generate checkout entity ID\n */\n private generateCheckoutId(): string {\n return `checkout-${this.nextCheckoutId++}`;\n }\n\n /**\n * Helper: Generate line item entity ID\n */\n private generateLineItemId(): string {\n return `item-${this.nextLineItemId++}`;\n }\n\n /**\n * Helper: Generate consignment entity ID\n */\n private generateConsignmentId(): string {\n return `consignment-${this.nextConsignmentId++}`;\n }\n\n /**\n * Helper: Generate shipping option entity ID\n */\n private generateShippingOptionId(): string {\n return `shipping-option-${this.nextShippingOptionId++}`;\n }\n\n /**\n * Helper: Create a cart line item from input\n */\n private createCartLineItem(input: CartLineItemInput): CartLineItem {\n const price = input.productEntityId * 0.1;\n const extendedPrice = price * input.quantity;\n\n return {\n entityId: this.generateLineItemId(),\n productEntityId: input.productEntityId,\n variantEntityId: input.variantEntityId ?? input.productEntityId,\n quantity: input.quantity,\n name: `Product ${input.productEntityId}`,\n sku: `SKU-${input.productEntityId}`,\n originalPrice: this.createMoney(price),\n listPrice: this.createMoney(price),\n extendedListPrice: this.createMoney(extendedPrice),\n extendedSalePrice: this.createMoney(extendedPrice),\n imageUrl: null\n };\n }\n\n /**\n * Helper: Calculate cart totals\n */\n private calculateCartTotals(items: CartLineItem[]): {\n amount: Money;\n baseAmount: Money;\n discountedAmount: Money;\n } {\n const total = items.reduce(\n (sum, item) => sum + item.extendedSalePrice.value,\n 0\n );\n\n return {\n amount: this.createMoney(total),\n baseAmount: this.createMoney(total),\n discountedAmount: this.createMoney(0)\n };\n }\n\n /**\n * Helper: Calculate checkout totals\n */\n private calculateCheckoutTotals(checkout: Checkout): void {\n const cartId = this.checkoutToCartId.get(checkout.entityId);\n const cart = cartId ? this.carts.get(cartId) : undefined;\n const subtotal = cart?.amount.value ?? 0;\n let tax = 0;\n let shipping = 0;\n\n // Calculate tax if shipping consignment exists (8% rate)\n if (\n checkout.shippingConsignments &&\n checkout.shippingConsignments.length > 0\n ) {\n tax = subtotal * 0.08;\n }\n\n // Calculate shipping from selected options\n for (const consignment of checkout.shippingConsignments ?? []) {\n if (consignment.selectedShippingOption) {\n shipping += consignment.selectedShippingOption.cost.value;\n }\n }\n\n checkout.subtotal = this.createMoney(subtotal);\n checkout.taxTotal = this.createMoney(tax);\n checkout.shippingCostTotal = this.createMoney(shipping);\n checkout.handlingCostTotal = this.createMoney(0);\n checkout.grandTotal = this.createMoney(subtotal + tax + shipping);\n }\n\n /**\n * Get an existing cart by ID\n */\n async getCart(cartEntityId?: string): Promise<Cart | null> {\n if (!cartEntityId) {\n return null;\n }\n return this.carts.get(cartEntityId) ?? null;\n }\n\n /**\n * Create a new cart with line items\n * Returns { cart, errors } to match the real client\n */\n async createCart(\n lineItems: CartLineItemInput[]\n ): Promise<{ cart: Cart | null; errors: CartBatchError[] }> {\n if (lineItems.length === 0) {\n throw new Error('Cannot create cart with no line items');\n }\n\n const cartId = this.generateCartId();\n const checkoutId = this.generateCheckoutId();\n const now = { utc: new Date().toISOString() };\n\n const physicalItems = lineItems.map((item) =>\n this.createCartLineItem(item)\n );\n const totals = this.calculateCartTotals(physicalItems);\n\n const cart: Cart = {\n id: cartId,\n entityId: cartId,\n lineItems: {\n physicalItems,\n digitalItems: []\n },\n amount: totals.amount,\n baseAmount: totals.baseAmount,\n discountedAmount: totals.discountedAmount,\n createdAt: now,\n updatedAt: now\n };\n\n this.carts.set(cartId, cart);\n\n // Create corresponding checkout\n const checkout: Checkout = {\n entityId: checkoutId,\n subtotal: cart.amount,\n taxTotal: this.createMoney(0),\n grandTotal: cart.amount,\n shippingCostTotal: this.createMoney(0),\n handlingCostTotal: this.createMoney(0),\n billingAddress: null,\n shippingConsignments: null\n };\n\n this.checkouts.set(checkoutId, checkout);\n this.checkoutToCartId.set(checkoutId, cartId);\n\n return { cart, errors: [] };\n }\n\n /**\n * Add line items to an existing cart\n * Returns { cart, errors } to match the real client\n */\n async addCartLineItems(\n cartEntityId: string,\n lineItems: CartLineItemInput[]\n ): Promise<{ cart: Cart | null; errors: CartBatchError[] }> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return { cart: null, errors: [] };\n }\n\n if (lineItems.length === 0) {\n return { cart, errors: [] };\n }\n\n const newItems = lineItems.map((item) => this.createCartLineItem(item));\n const allItems = [...cart.lineItems.physicalItems, ...newItems];\n const totals = this.calculateCartTotals(allItems);\n\n const updatedCart: Cart = {\n ...cart,\n lineItems: {\n ...cart.lineItems,\n physicalItems: allItems\n },\n amount: totals.amount,\n baseAmount: totals.baseAmount,\n discountedAmount: totals.discountedAmount,\n updatedAt: { utc: new Date().toISOString() }\n };\n\n this.carts.set(cartEntityId, updatedCart);\n\n // Update corresponding checkout\n for (const [checkoutId, cartId] of this.checkoutToCartId.entries()) {\n if (cartId === cartEntityId) {\n const checkout = this.checkouts.get(checkoutId);\n if (checkout) {\n const updatedCheckout = { ...checkout };\n this.calculateCheckoutTotals(updatedCheckout);\n this.checkouts.set(checkoutId, updatedCheckout);\n }\n break;\n }\n }\n\n return { cart: updatedCart, errors: [] };\n }\n\n /**\n * Update the quantity of a cart line item\n */\n async updateCartLineItem(\n cartEntityId: string,\n lineItemEntityId: string,\n quantity: number,\n _productEntityId: number,\n _variantEntityId?: number\n ): Promise<Cart | null> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return null;\n }\n\n const itemIndex = cart.lineItems.physicalItems.findIndex(\n (item) => item.entityId === lineItemEntityId\n );\n if (itemIndex === -1) {\n return null;\n }\n\n const updatedItems = [...cart.lineItems.physicalItems];\n const item = updatedItems[itemIndex];\n if (!item) {\n return null;\n }\n\n const price = item.listPrice.value;\n const extendedPrice = price * quantity;\n\n updatedItems[itemIndex] = {\n ...item,\n quantity,\n extendedListPrice: this.createMoney(extendedPrice),\n extendedSalePrice: this.createMoney(extendedPrice)\n };\n\n const totals = this.calculateCartTotals(updatedItems);\n\n const updatedCart: Cart = {\n ...cart,\n lineItems: {\n ...cart.lineItems,\n physicalItems: updatedItems\n },\n amount: totals.amount,\n baseAmount: totals.baseAmount,\n discountedAmount: totals.discountedAmount,\n updatedAt: { utc: new Date().toISOString() }\n };\n\n this.carts.set(cartEntityId, updatedCart);\n\n // Update corresponding checkout\n for (const [checkoutId, cartId] of this.checkoutToCartId.entries()) {\n if (cartId === cartEntityId) {\n const checkout = this.checkouts.get(checkoutId);\n if (checkout) {\n const updatedCheckout = { ...checkout };\n this.calculateCheckoutTotals(updatedCheckout);\n this.checkouts.set(checkoutId, updatedCheckout);\n }\n break;\n }\n }\n\n return updatedCart;\n }\n\n /**\n * Remove a line item from the cart\n */\n async deleteCartLineItem(\n cartEntityId: string,\n lineItemEntityId: string\n ): Promise<Cart | null> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return null;\n }\n\n const itemExists = cart.lineItems.physicalItems.some(\n (item) => item.entityId === lineItemEntityId\n );\n if (!itemExists) {\n return null;\n }\n\n const updatedItems = cart.lineItems.physicalItems.filter(\n (item) => item.entityId !== lineItemEntityId\n );\n const totals = this.calculateCartTotals(updatedItems);\n\n const updatedCart: Cart = {\n ...cart,\n lineItems: {\n ...cart.lineItems,\n physicalItems: updatedItems\n },\n amount: totals.amount,\n baseAmount: totals.baseAmount,\n discountedAmount: totals.discountedAmount,\n updatedAt: { utc: new Date().toISOString() }\n };\n\n this.carts.set(cartEntityId, updatedCart);\n\n // Update corresponding checkout\n for (const [checkoutId, cartId] of this.checkoutToCartId.entries()) {\n if (cartId === cartEntityId) {\n const checkout = this.checkouts.get(checkoutId);\n if (checkout) {\n const updatedCheckout = { ...checkout };\n this.calculateCheckoutTotals(updatedCheckout);\n this.checkouts.set(checkoutId, updatedCheckout);\n }\n break;\n }\n }\n\n return updatedCart;\n }\n\n /**\n * Delete an entire cart\n */\n async deleteCart(cartEntityId: string): Promise<string | null> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return null;\n }\n\n this.carts.delete(cartEntityId);\n\n // Delete corresponding checkout\n for (const [checkoutId, cartId] of this.checkoutToCartId.entries()) {\n if (cartId === cartEntityId) {\n this.checkouts.delete(checkoutId);\n this.checkoutToCartId.delete(checkoutId);\n break;\n }\n }\n\n return cartEntityId;\n }\n\n /**\n * Create a cart or add to existing cart\n * Convenience method that handles both cases\n * Returns { cart, errors } to match the real client\n */\n async addToCart(\n lineItems: CartLineItemInput[],\n existingCartId?: string\n ): Promise<{ cart: Cart | null; errors: CartBatchError[] }> {\n if (existingCartId) {\n return this.addCartLineItems(existingCartId, lineItems);\n }\n return this.createCart(lineItems);\n }\n\n /**\n * Create single-use redirect URLs for a cart\n */\n async createCartRedirectUrls(\n cartEntityId: string\n ): Promise<CartRedirectUrls | null> {\n const cart = this.carts.get(cartEntityId);\n if (!cart) {\n return null;\n }\n\n return {\n redirectedCheckoutUrl: `https://store.example.com/cart/${cartEntityId}`\n };\n }\n\n /**\n * Get checkout by entity ID\n */\n async getCheckout(checkoutEntityId?: string): Promise<Checkout | null> {\n if (!checkoutEntityId) {\n return null;\n }\n return this.checkouts.get(checkoutEntityId) ?? null;\n }\n\n /**\n * Add shipping consignments (addresses) to a checkout\n */\n async setCheckoutShippingAddress(\n checkoutEntityId: string,\n address: CheckoutAddress,\n lineItems: CheckoutConsignmentLineItem[]\n ): Promise<Checkout | null> {\n const checkout = this.checkouts.get(checkoutEntityId);\n if (!checkout) {\n return null;\n }\n\n const consignmentId = this.generateConsignmentId();\n\n // Generate shipping options\n const shippingOptions: CheckoutShippingOption[] = [\n {\n entityId: this.generateShippingOptionId(),\n description: 'Standard Shipping',\n type: 'shipping_flatrate',\n cost: this.createMoney(5)\n },\n {\n entityId: this.generateShippingOptionId(),\n description: 'Express Shipping',\n type: 'shipping_express',\n cost: this.createMoney(15)\n },\n {\n entityId: this.generateShippingOptionId(),\n description: 'Overnight Shipping',\n type: 'shipping_overnight',\n cost: this.createMoney(25)\n }\n ];\n\n const consignment: CheckoutConsignment = {\n entityId: consignmentId,\n address: {\n firstName: address.firstName ?? null,\n lastName: address.lastName ?? null,\n address1: address.address1 ?? null,\n address2: address.address2 ?? null,\n city: address.city ?? null,\n stateOrProvince: address.stateOrProvince ?? null,\n stateOrProvinceCode: address.stateOrProvinceCode ?? null,\n countryCode: address.countryCode,\n postalCode: address.postalCode ?? null,\n phone: address.phone ?? null,\n email: address.email ?? null\n },\n availableShippingOptions: shippingOptions,\n selectedShippingOption: null,\n shippingCost: null,\n lineItemIds: lineItems.map((item) => item.lineItemEntityId)\n };\n\n const updatedCheckout: Checkout = {\n ...checkout,\n shippingConsignments: [\n ...(checkout.shippingConsignments ?? []),\n consignment\n ]\n };\n\n this.calculateCheckoutTotals(updatedCheckout);\n this.checkouts.set(checkoutEntityId, updatedCheckout);\n\n return updatedCheckout;\n }\n\n /**\n * Add billing address to a checkout\n */\n async setCheckoutBillingAddress(\n checkoutEntityId: string,\n address: CheckoutAddress\n ): Promise<Checkout | null> {\n const checkout = this.checkouts.get(checkoutEntityId);\n if (!checkout) {\n return null;\n }\n\n checkout.billingAddress = {\n firstName: address.firstName ?? null,\n lastName: address.lastName ?? null,\n address1: address.address1 ?? null,\n address2: address.address2 ?? null,\n city: address.city ?? null,\n stateOrProvince: address.stateOrProvince ?? null,\n stateOrProvinceCode: address.stateOrProvinceCode ?? null,\n countryCode: address.countryCode,\n postalCode: address.postalCode ?? null,\n phone: address.phone ?? null,\n email: address.email ?? null\n };\n\n this.checkouts.set(checkoutEntityId, checkout);\n return checkout;\n }\n\n /**\n * Get customer's saved addresses and customer info\n * Always returns empty for mock (simulates logged-out state)\n */\n async getCustomerAddresses(): Promise<{\n customerInfo: CustomerInfo | null;\n addresses: CustomerAddress[];\n }> {\n return {\n customerInfo: null,\n addresses: []\n };\n }\n\n /**\n * Lightweight customer presence check. Returns the configured entityId\n * (default: null = anonymous). Tests can call setCustomerEntityId() to\n * simulate login/logout transitions.\n */\n async getCustomerEntityId(): Promise<number | null> {\n return this.customerEntityId;\n }\n\n /**\n * Test helper: simulate a logged-in or logged-out shopper.\n */\n setCustomerEntityId(id: number | null): void {\n this.customerEntityId = id;\n }\n\n /**\n * Update checkout customer message (order notes)\n */\n async updateCheckoutCustomerMessage(\n checkoutEntityId: string,\n _message: any\n ): Promise<Checkout | null> {\n const checkout = this.checkouts.get(checkoutEntityId);\n if (!checkout) {\n return null;\n }\n\n // Note: The Checkout type doesn't have a message field,\n // but we can still update and return the checkout\n // In a real implementation, this would be stored on the checkout\n return checkout;\n }\n\n /**\n * Create a metafield on a cart (no-op in mock)\n */\n async createCartMetafield(\n _cartEntityId: string,\n _key: string,\n _value: string\n ): Promise<void> {\n // No-op in mock client\n }\n\n /**\n * Low-level request method (not implemented in mock)\n */\n async request<T = unknown>(_options: unknown): Promise<T> {\n throw new Error(\n 'MockBigCommerceClient.request() is not implemented. Use specific methods instead.'\n );\n }\n\n /**\n * Get product variant details for multiple products\n * Returns mock product options and variants\n */\n async getProductVariantDetails(\n productEntityIds: number[]\n ): Promise<ProductVariantDetails[]> {\n return productEntityIds.map((entityId) => ({\n entityId,\n productOptions: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n isRequired: true,\n isVariantOption: true,\n displayStyle: 'DropdownList',\n values: [\n { entityId: entityId * 100 + 1, label: 'Small', isDefault: true },\n { entityId: entityId * 100 + 2, label: 'Medium', isDefault: false },\n { entityId: entityId * 100 + 3, label: 'Large', isDefault: false }\n ]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n isRequired: true,\n isVariantOption: true,\n displayStyle: 'DropdownList',\n values: [\n { entityId: entityId * 100 + 11, label: 'Red', isDefault: true },\n { entityId: entityId * 100 + 12, label: 'Blue', isDefault: false }\n ]\n }\n ],\n variants: [\n // Small + Red\n {\n entityId: entityId * 1000 + 1,\n sku: `SKU-${entityId}-S-R`,\n isPurchasable: true,\n prices: { price: { value: 29.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 10, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 1, label: 'Small' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 11, label: 'Red' }]\n }\n ]\n },\n // Small + Blue\n {\n entityId: entityId * 1000 + 2,\n sku: `SKU-${entityId}-S-B`,\n isPurchasable: true,\n prices: { price: { value: 29.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 5, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 1, label: 'Small' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 12, label: 'Blue' }]\n }\n ]\n },\n // Medium + Red\n {\n entityId: entityId * 1000 + 3,\n sku: `SKU-${entityId}-M-R`,\n isPurchasable: true,\n prices: { price: { value: 34.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 8, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 2, label: 'Medium' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 11, label: 'Red' }]\n }\n ]\n },\n // Medium + Blue\n {\n entityId: entityId * 1000 + 4,\n sku: `SKU-${entityId}-M-B`,\n isPurchasable: false, // Out of stock example\n prices: { price: { value: 34.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 0, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 2, label: 'Medium' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 12, label: 'Blue' }]\n }\n ]\n },\n // Large + Red\n {\n entityId: entityId * 1000 + 5,\n sku: `SKU-${entityId}-L-R`,\n isPurchasable: true,\n prices: { price: { value: 39.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 12, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 3, label: 'Large' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 11, label: 'Red' }]\n }\n ]\n },\n // Large + Blue\n {\n entityId: entityId * 1000 + 6,\n sku: `SKU-${entityId}-L-B`,\n isPurchasable: true,\n prices: { price: { value: 39.99, currencyCode: 'USD' } },\n inventory: { aggregated: { availableToSell: 7, warningLevel: 3 } },\n options: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n values: [{ entityId: entityId * 100 + 3, label: 'Large' }]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n values: [{ entityId: entityId * 100 + 12, label: 'Blue' }]\n }\n ]\n }\n ]\n }));\n }\n\n /**\n * Get product display data for caching (unified query).\n * Returns mock products with paths, options, and default variant.\n */\n async getProductDisplayData(\n productEntityIds: number[],\n variantEntityIds?: number[]\n ): Promise<CachedProduct[]> {\n return productEntityIds.map((entityId) => {\n // Default variant\n const defaultVariantBase: CachedVariant = {\n entityId: entityId * 1000 + 1,\n productEntityId: entityId,\n sku: `SKU-${entityId}-S-R`,\n isPurchasable: true,\n defaultImage:\n 'https://cdn11.bigcommerce.com/s-abc/images/stencil/200w/products/{:size}/variant1.jpg',\n price: 29.99,\n currencyCode: 'USD',\n isInStock: true,\n availableToSell: 10,\n optionValues: {\n [entityId * 100]: entityId * 100 + 1, // Size: Small\n [entityId * 100 + 10]: entityId * 100 + 11 // Color: Red\n }\n };\n\n // If specific variant IDs were requested, try to match one\n let defaultVariant = defaultVariantBase;\n if (variantEntityIds?.length) {\n const requestedId = variantEntityIds.find(\n (vid) => vid >= entityId * 1000 + 1 && vid <= entityId * 1000 + 6\n );\n if (requestedId && requestedId !== defaultVariantBase.entityId) {\n defaultVariant = {\n ...defaultVariantBase,\n entityId: requestedId,\n sku: `SKU-${entityId}-V${requestedId - entityId * 1000}`\n };\n }\n }\n\n return {\n entityId,\n name: `Product ${entityId}`,\n sku: `SKU-${entityId}`,\n path: `/products/product-${entityId}/`,\n defaultImage:\n 'https://cdn11.bigcommerce.com/s-abc/images/stencil/200w/products/{:size}/sample.jpg',\n productOptions: [\n {\n entityId: entityId * 100,\n displayName: 'Size',\n isRequired: true,\n isVariantOption: true,\n displayStyle: 'DropdownList',\n values: [\n {\n entityId: entityId * 100 + 1,\n label: 'Small',\n isDefault: true\n },\n {\n entityId: entityId * 100 + 2,\n label: 'Medium',\n isDefault: false\n },\n {\n entityId: entityId * 100 + 3,\n label: 'Large',\n isDefault: false\n }\n ]\n },\n {\n entityId: entityId * 100 + 10,\n displayName: 'Color',\n isRequired: true,\n isVariantOption: true,\n displayStyle: 'DropdownList',\n values: [\n {\n entityId: entityId * 100 + 11,\n label: 'Red',\n isDefault: true\n },\n {\n entityId: entityId * 100 + 12,\n label: 'Blue',\n isDefault: false\n }\n ]\n }\n ],\n defaultVariant\n };\n });\n }\n\n /**\n * Get a specific variant by option selections (lazy loading).\n * Returns a mock variant matching the selections.\n */\n async getVariantByOptions(\n productEntityId: number,\n optionValueIds: OptionValueId[]\n ): Promise<CachedVariant | null> {\n // Build a map of option selections\n const selections: Record<number, number> = {};\n for (const { optionEntityId, valueEntityId } of optionValueIds) {\n selections[optionEntityId] = valueEntityId;\n }\n\n // Get size and color selections\n const sizeOptionId = productEntityId * 100;\n const colorOptionId = productEntityId * 100 + 10;\n const sizeValueId = selections[sizeOptionId];\n const colorValueId = selections[colorOptionId];\n\n // Map size value IDs to labels\n const sizeLabels: Record<number, string> = {\n [productEntityId * 100 + 1]: 'S',\n [productEntityId * 100 + 2]: 'M',\n [productEntityId * 100 + 3]: 'L'\n };\n\n // Map color value IDs to labels\n const colorLabels: Record<number, string> = {\n [productEntityId * 100 + 11]: 'R',\n [productEntityId * 100 + 12]: 'B'\n };\n\n const sizeLabel = sizeValueId ? sizeLabels[sizeValueId] : 'S';\n const colorLabel = colorValueId ? colorLabels[colorValueId] : 'R';\n\n // Generate a consistent variant ID based on selections\n const variantIndex =\n (sizeValueId ? sizeValueId - (productEntityId * 100 + 1) : 0) * 2 +\n (colorValueId ? colorValueId - (productEntityId * 100 + 11) : 0) +\n 1;\n\n return {\n entityId: productEntityId * 1000 + variantIndex,\n productEntityId,\n sku: `SKU-${productEntityId}-${sizeLabel}-${colorLabel}`,\n isPurchasable: true,\n defaultImage:\n 'https://cdn11.bigcommerce.com/s-abc/images/stencil/200w/products/{:size}/variant.jpg',\n price:\n 29.99 +\n (sizeValueId ? (sizeValueId - (productEntityId * 100 + 1)) * 5 : 0),\n currencyCode: 'USD',\n isInStock: true,\n availableToSell: 10 - variantIndex,\n optionValues: selections\n };\n }\n\n /**\n * Reset all state (useful for testing)\n */\n reset(): void {\n this.carts.clear();\n this.checkouts.clear();\n this.checkoutToCartId.clear();\n this.nextCartId = 1;\n this.nextCheckoutId = 1;\n this.nextLineItemId = 1;\n this.nextConsignmentId = 1;\n this.nextShippingOptionId = 1;\n this.customerEntityId = null;\n }\n}\n\n/**\n * Create a mock BigCommerce client instance\n */\nexport function createMockBigCommerceClient(\n config?: BigCommerceConfig\n): MockBigCommerceClient {\n return new MockBigCommerceClient(config);\n}\n"],"names":["MockBigCommerceClient","_config","value","input","price","extendedPrice","items","total","sum","item","checkout","cartId","subtotal","tax","shipping","consignment","cartEntityId","lineItems","checkoutId","now","physicalItems","totals","cart","newItems","allItems","updatedCart","updatedCheckout","lineItemEntityId","quantity","_productEntityId","_variantEntityId","itemIndex","updatedItems","existingCartId","checkoutEntityId","address","consignmentId","shippingOptions","id","_message","_cartEntityId","_key","_value","_options","productEntityIds","entityId","variantEntityIds","defaultVariantBase","defaultVariant","requestedId","vid","productEntityId","optionValueIds","selections","optionEntityId","valueEntityId","sizeOptionId","colorOptionId","sizeValueId","colorValueId","sizeLabels","colorLabels","sizeLabel","colorLabel","variantIndex","createMockBigCommerceClient","config"],"mappings":";AAuBO,MAAMA,EAAsB;AAAA,EACzB,4BAA+B,IAAA;AAAA,EAC/B,gCAAuC,IAAA;AAAA,EACvC,uCAA4C,IAAA;AAAA,EAC5C,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,mBAAkC;AAAA,EAEjC,YAAY;AAAA;AAAA,EAErB,YAAYC,GAA6B;AAAA,EAEzC;AAAA;AAAA;AAAA;AAAA,EAKQ,YAAYC,GAAsB;AACxC,WAAO;AAAA,MACL,OAAAA;AAAA,MACA,cAAc;AAAA,IAAA;AAAA,EAElB;AAAA;AAAA;AAAA;AAAA,EAKQ,iBAAyB;AAC/B,WAAO,QAAQ,KAAK,YAAY;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKQ,qBAA6B;AACnC,WAAO,YAAY,KAAK,gBAAgB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKQ,qBAA6B;AACnC,WAAO,QAAQ,KAAK,gBAAgB;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKQ,wBAAgC;AACtC,WAAO,eAAe,KAAK,mBAAmB;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA,EAKQ,2BAAmC;AACzC,WAAO,mBAAmB,KAAK,sBAAsB;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA,EAKQ,mBAAmBC,GAAwC;AACjE,UAAMC,IAAQD,EAAM,kBAAkB,KAChCE,IAAgBD,IAAQD,EAAM;AAEpC,WAAO;AAAA,MACL,UAAU,KAAK,mBAAA;AAAA,MACf,iBAAiBA,EAAM;AAAA,MACvB,iBAAiBA,EAAM,mBAAmBA,EAAM;AAAA,MAChD,UAAUA,EAAM;AAAA,MAChB,MAAM,WAAWA,EAAM,eAAe;AAAA,MACtC,KAAK,OAAOA,EAAM,eAAe;AAAA,MACjC,eAAe,KAAK,YAAYC,CAAK;AAAA,MACrC,WAAW,KAAK,YAAYA,CAAK;AAAA,MACjC,mBAAmB,KAAK,YAAYC,CAAa;AAAA,MACjD,mBAAmB,KAAK,YAAYA,CAAa;AAAA,MACjD,UAAU;AAAA,IAAA;AAAA,EAEd;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAAoBC,GAI1B;AACA,UAAMC,IAAQD,EAAM;AAAA,MAClB,CAACE,GAAKC,MAASD,IAAMC,EAAK,kBAAkB;AAAA,MAC5C;AAAA,IAAA;AAGF,WAAO;AAAA,MACL,QAAQ,KAAK,YAAYF,CAAK;AAAA,MAC9B,YAAY,KAAK,YAAYA,CAAK;AAAA,MAClC,kBAAkB,KAAK,YAAY,CAAC;AAAA,IAAA;AAAA,EAExC;AAAA;AAAA;AAAA;AAAA,EAKQ,wBAAwBG,GAA0B;AACxD,UAAMC,IAAS,KAAK,iBAAiB,IAAID,EAAS,QAAQ,GAEpDE,KADOD,IAAS,KAAK,MAAM,IAAIA,CAAM,IAAI,SACxB,OAAO,SAAS;AACvC,QAAIE,IAAM,GACNC,IAAW;AAGf,IACEJ,EAAS,wBACTA,EAAS,qBAAqB,SAAS,MAEvCG,IAAMD,IAAW;AAInB,eAAWG,KAAeL,EAAS,wBAAwB,CAAA;AACzD,MAAIK,EAAY,2BACdD,KAAYC,EAAY,uBAAuB,KAAK;AAIxD,IAAAL,EAAS,WAAW,KAAK,YAAYE,CAAQ,GAC7CF,EAAS,WAAW,KAAK,YAAYG,CAAG,GACxCH,EAAS,oBAAoB,KAAK,YAAYI,CAAQ,GACtDJ,EAAS,oBAAoB,KAAK,YAAY,CAAC,GAC/CA,EAAS,aAAa,KAAK,YAAYE,IAAWC,IAAMC,CAAQ;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQE,GAA6C;AACzD,WAAKA,IAGE,KAAK,MAAM,IAAIA,CAAY,KAAK,OAF9B;AAAA,EAGX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WACJC,GAC0D;AAC1D,QAAIA,EAAU,WAAW;AACvB,YAAM,IAAI,MAAM,uCAAuC;AAGzD,UAAMN,IAAS,KAAK,eAAA,GACdO,IAAa,KAAK,mBAAA,GAClBC,IAAM,EAAE,0BAAS,KAAA,GAAO,cAAY,GAEpCC,IAAgBH,EAAU;AAAA,MAAI,CAACR,MACnC,KAAK,mBAAmBA,CAAI;AAAA,IAAA,GAExBY,IAAS,KAAK,oBAAoBD,CAAa,GAE/CE,IAAa;AAAA,MACjB,IAAIX;AAAA,MACJ,UAAUA;AAAA,MACV,WAAW;AAAA,QACT,eAAAS;AAAA,QACA,cAAc,CAAA;AAAA,MAAC;AAAA,MAEjB,QAAQC,EAAO;AAAA,MACf,YAAYA,EAAO;AAAA,MACnB,kBAAkBA,EAAO;AAAA,MACzB,WAAWF;AAAA,MACX,WAAWA;AAAA,IAAA;AAGb,SAAK,MAAM,IAAIR,GAAQW,CAAI;AAG3B,UAAMZ,IAAqB;AAAA,MACzB,UAAUQ;AAAA,MACV,UAAUI,EAAK;AAAA,MACf,UAAU,KAAK,YAAY,CAAC;AAAA,MAC5B,YAAYA,EAAK;AAAA,MACjB,mBAAmB,KAAK,YAAY,CAAC;AAAA,MACrC,mBAAmB,KAAK,YAAY,CAAC;AAAA,MACrC,gBAAgB;AAAA,MAChB,sBAAsB;AAAA,IAAA;AAGxB,gBAAK,UAAU,IAAIJ,GAAYR,CAAQ,GACvC,KAAK,iBAAiB,IAAIQ,GAAYP,CAAM,GAErC,EAAE,MAAAW,GAAM,QAAQ,GAAC;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,iBACJN,GACAC,GAC0D;AAC1D,UAAMK,IAAO,KAAK,MAAM,IAAIN,CAAY;AACxC,QAAI,CAACM;AACH,aAAO,EAAE,MAAM,MAAM,QAAQ,CAAA,EAAC;AAGhC,QAAIL,EAAU,WAAW;AACvB,aAAO,EAAE,MAAAK,GAAM,QAAQ,GAAC;AAG1B,UAAMC,IAAWN,EAAU,IAAI,CAACR,MAAS,KAAK,mBAAmBA,CAAI,CAAC,GAChEe,IAAW,CAAC,GAAGF,EAAK,UAAU,eAAe,GAAGC,CAAQ,GACxDF,IAAS,KAAK,oBAAoBG,CAAQ,GAE1CC,IAAoB;AAAA,MACxB,GAAGH;AAAA,MACH,WAAW;AAAA,QACT,GAAGA,EAAK;AAAA,QACR,eAAeE;AAAA,MAAA;AAAA,MAEjB,QAAQH,EAAO;AAAA,MACf,YAAYA,EAAO;AAAA,MACnB,kBAAkBA,EAAO;AAAA,MACzB,WAAW,EAAE,0BAAS,KAAA,GAAO,cAAY;AAAA,IAAE;AAG7C,SAAK,MAAM,IAAIL,GAAcS,CAAW;AAGxC,eAAW,CAACP,GAAYP,CAAM,KAAK,KAAK,iBAAiB;AACvD,UAAIA,MAAWK,GAAc;AAC3B,cAAMN,IAAW,KAAK,UAAU,IAAIQ,CAAU;AAC9C,YAAIR,GAAU;AACZ,gBAAMgB,IAAkB,EAAE,GAAGhB,EAAA;AAC7B,eAAK,wBAAwBgB,CAAe,GAC5C,KAAK,UAAU,IAAIR,GAAYQ,CAAe;AAAA,QAChD;AACA;AAAA,MACF;AAGF,WAAO,EAAE,MAAMD,GAAa,QAAQ,CAAA,EAAC;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBACJT,GACAW,GACAC,GACAC,GACAC,GACsB;AACtB,UAAMR,IAAO,KAAK,MAAM,IAAIN,CAAY;AACxC,QAAI,CAACM;AACH,aAAO;AAGT,UAAMS,IAAYT,EAAK,UAAU,cAAc;AAAA,MAC7C,CAACb,MAASA,EAAK,aAAakB;AAAA,IAAA;AAE9B,QAAII,MAAc;AAChB,aAAO;AAGT,UAAMC,IAAe,CAAC,GAAGV,EAAK,UAAU,aAAa,GAC/Cb,IAAOuB,EAAaD,CAAS;AACnC,QAAI,CAACtB;AACH,aAAO;AAIT,UAAMJ,IADQI,EAAK,UAAU,QACCmB;AAE9B,IAAAI,EAAaD,CAAS,IAAI;AAAA,MACxB,GAAGtB;AAAA,MACH,UAAAmB;AAAA,MACA,mBAAmB,KAAK,YAAYvB,CAAa;AAAA,MACjD,mBAAmB,KAAK,YAAYA,CAAa;AAAA,IAAA;AAGnD,UAAMgB,IAAS,KAAK,oBAAoBW,CAAY,GAE9CP,IAAoB;AAAA,MACxB,GAAGH;AAAA,MACH,WAAW;AAAA,QACT,GAAGA,EAAK;AAAA,QACR,eAAeU;AAAA,MAAA;AAAA,MAEjB,QAAQX,EAAO;AAAA,MACf,YAAYA,EAAO;AAAA,MACnB,kBAAkBA,EAAO;AAAA,MACzB,WAAW,EAAE,0BAAS,KAAA,GAAO,cAAY;AAAA,IAAE;AAG7C,SAAK,MAAM,IAAIL,GAAcS,CAAW;AAGxC,eAAW,CAACP,GAAYP,CAAM,KAAK,KAAK,iBAAiB;AACvD,UAAIA,MAAWK,GAAc;AAC3B,cAAMN,IAAW,KAAK,UAAU,IAAIQ,CAAU;AAC9C,YAAIR,GAAU;AACZ,gBAAMgB,IAAkB,EAAE,GAAGhB,EAAA;AAC7B,eAAK,wBAAwBgB,CAAe,GAC5C,KAAK,UAAU,IAAIR,GAAYQ,CAAe;AAAA,QAChD;AACA;AAAA,MACF;AAGF,WAAOD;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBACJT,GACAW,GACsB;AACtB,UAAML,IAAO,KAAK,MAAM,IAAIN,CAAY;AAQxC,QAPI,CAACM,KAOD,CAHeA,EAAK,UAAU,cAAc;AAAA,MAC9C,CAACb,MAASA,EAAK,aAAakB;AAAA,IAAA;AAG5B,aAAO;AAGT,UAAMK,IAAeV,EAAK,UAAU,cAAc;AAAA,MAChD,CAACb,MAASA,EAAK,aAAakB;AAAA,IAAA,GAExBN,IAAS,KAAK,oBAAoBW,CAAY,GAE9CP,IAAoB;AAAA,MACxB,GAAGH;AAAA,MACH,WAAW;AAAA,QACT,GAAGA,EAAK;AAAA,QACR,eAAeU;AAAA,MAAA;AAAA,MAEjB,QAAQX,EAAO;AAAA,MACf,YAAYA,EAAO;AAAA,MACnB,kBAAkBA,EAAO;AAAA,MACzB,WAAW,EAAE,0BAAS,KAAA,GAAO,cAAY;AAAA,IAAE;AAG7C,SAAK,MAAM,IAAIL,GAAcS,CAAW;AAGxC,eAAW,CAACP,GAAYP,CAAM,KAAK,KAAK,iBAAiB;AACvD,UAAIA,MAAWK,GAAc;AAC3B,cAAMN,IAAW,KAAK,UAAU,IAAIQ,CAAU;AAC9C,YAAIR,GAAU;AACZ,gBAAMgB,IAAkB,EAAE,GAAGhB,EAAA;AAC7B,eAAK,wBAAwBgB,CAAe,GAC5C,KAAK,UAAU,IAAIR,GAAYQ,CAAe;AAAA,QAChD;AACA;AAAA,MACF;AAGF,WAAOD;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAWT,GAA8C;AAE7D,QAAI,CADS,KAAK,MAAM,IAAIA,CAAY;AAEtC,aAAO;AAGT,SAAK,MAAM,OAAOA,CAAY;AAG9B,eAAW,CAACE,GAAYP,CAAM,KAAK,KAAK,iBAAiB;AACvD,UAAIA,MAAWK,GAAc;AAC3B,aAAK,UAAU,OAAOE,CAAU,GAChC,KAAK,iBAAiB,OAAOA,CAAU;AACvC;AAAA,MACF;AAGF,WAAOF;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,UACJC,GACAgB,GAC0D;AAC1D,WAAIA,IACK,KAAK,iBAAiBA,GAAgBhB,CAAS,IAEjD,KAAK,WAAWA,CAAS;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,uBACJD,GACkC;AAElC,WADa,KAAK,MAAM,IAAIA,CAAY,IAKjC;AAAA,MACL,uBAAuB,kCAAkCA,CAAY;AAAA,IAAA,IAJ9D;AAAA,EAMX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAAYkB,GAAqD;AACrE,WAAKA,IAGE,KAAK,UAAU,IAAIA,CAAgB,KAAK,OAFtC;AAAA,EAGX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,2BACJA,GACAC,GACAlB,GAC0B;AAC1B,UAAMP,IAAW,KAAK,UAAU,IAAIwB,CAAgB;AACpD,QAAI,CAACxB;AACH,aAAO;AAGT,UAAM0B,IAAgB,KAAK,sBAAA,GAGrBC,IAA4C;AAAA,MAChD;AAAA,QACE,UAAU,KAAK,yBAAA;AAAA,QACf,aAAa;AAAA,QACb,MAAM;AAAA,QACN,MAAM,KAAK,YAAY,CAAC;AAAA,MAAA;AAAA,MAE1B;AAAA,QACE,UAAU,KAAK,yBAAA;AAAA,QACf,aAAa;AAAA,QACb,MAAM;AAAA,QACN,MAAM,KAAK,YAAY,EAAE;AAAA,MAAA;AAAA,MAE3B;AAAA,QACE,UAAU,KAAK,yBAAA;AAAA,QACf,aAAa;AAAA,QACb,MAAM;AAAA,QACN,MAAM,KAAK,YAAY,EAAE;AAAA,MAAA;AAAA,IAC3B,GAGItB,IAAmC;AAAA,MACvC,UAAUqB;AAAA,MACV,SAAS;AAAA,QACP,WAAWD,EAAQ,aAAa;AAAA,QAChC,UAAUA,EAAQ,YAAY;AAAA,QAC9B,UAAUA,EAAQ,YAAY;AAAA,QAC9B,UAAUA,EAAQ,YAAY;AAAA,QAC9B,MAAMA,EAAQ,QAAQ;AAAA,QACtB,iBAAiBA,EAAQ,mBAAmB;AAAA,QAC5C,qBAAqBA,EAAQ,uBAAuB;AAAA,QACpD,aAAaA,EAAQ;AAAA,QACrB,YAAYA,EAAQ,cAAc;AAAA,QAClC,OAAOA,EAAQ,SAAS;AAAA,QACxB,OAAOA,EAAQ,SAAS;AAAA,MAAA;AAAA,MAE1B,0BAA0BE;AAAA,MAC1B,wBAAwB;AAAA,MACxB,cAAc;AAAA,MACd,aAAapB,EAAU,IAAI,CAACR,MAASA,EAAK,gBAAgB;AAAA,IAAA,GAGtDiB,IAA4B;AAAA,MAChC,GAAGhB;AAAA,MACH,sBAAsB;AAAA,QACpB,GAAIA,EAAS,wBAAwB,CAAA;AAAA,QACrCK;AAAA,MAAA;AAAA,IACF;AAGF,gBAAK,wBAAwBW,CAAe,GAC5C,KAAK,UAAU,IAAIQ,GAAkBR,CAAe,GAE7CA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,0BACJQ,GACAC,GAC0B;AAC1B,UAAMzB,IAAW,KAAK,UAAU,IAAIwB,CAAgB;AACpD,WAAKxB,KAILA,EAAS,iBAAiB;AAAA,MACxB,WAAWyB,EAAQ,aAAa;AAAA,MAChC,UAAUA,EAAQ,YAAY;AAAA,MAC9B,UAAUA,EAAQ,YAAY;AAAA,MAC9B,UAAUA,EAAQ,YAAY;AAAA,MAC9B,MAAMA,EAAQ,QAAQ;AAAA,MACtB,iBAAiBA,EAAQ,mBAAmB;AAAA,MAC5C,qBAAqBA,EAAQ,uBAAuB;AAAA,MACpD,aAAaA,EAAQ;AAAA,MACrB,YAAYA,EAAQ,cAAc;AAAA,MAClC,OAAOA,EAAQ,SAAS;AAAA,MACxB,OAAOA,EAAQ,SAAS;AAAA,IAAA,GAG1B,KAAK,UAAU,IAAID,GAAkBxB,CAAQ,GACtCA,KAlBE;AAAA,EAmBX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,uBAGH;AACD,WAAO;AAAA,MACL,cAAc;AAAA,MACd,WAAW,CAAA;AAAA,IAAC;AAAA,EAEhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAA8C;AAClD,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB4B,GAAyB;AAC3C,SAAK,mBAAmBA;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,8BACJJ,GACAK,GAC0B;AAC1B,UAAM7B,IAAW,KAAK,UAAU,IAAIwB,CAAgB;AACpD,WAAKxB,KACI;AAAA,EAOX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,oBACJ8B,GACAC,GACAC,GACe;AAAA,EAEjB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAqBC,GAA+B;AACxD,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,yBACJC,GACkC;AAClC,WAAOA,EAAiB,IAAI,CAACC,OAAc;AAAA,MACzC,UAAAA;AAAA,MACA,gBAAgB;AAAA,QACd;AAAA,UACE,UAAUA,IAAW;AAAA,UACrB,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,cAAc;AAAA,UACd,QAAQ;AAAA,YACN,EAAE,UAAUA,IAAW,MAAM,GAAG,OAAO,SAAS,WAAW,GAAA;AAAA,YAC3D,EAAE,UAAUA,IAAW,MAAM,GAAG,OAAO,UAAU,WAAW,GAAA;AAAA,YAC5D,EAAE,UAAUA,IAAW,MAAM,GAAG,OAAO,SAAS,WAAW,GAAA;AAAA,UAAM;AAAA,QACnE;AAAA,QAEF;AAAA,UACE,UAAUA,IAAW,MAAM;AAAA,UAC3B,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,cAAc;AAAA,UACd,QAAQ;AAAA,YACN,EAAE,UAAUA,IAAW,MAAM,IAAI,OAAO,OAAO,WAAW,GAAA;AAAA,YAC1D,EAAE,UAAUA,IAAW,MAAM,IAAI,OAAO,QAAQ,WAAW,GAAA;AAAA,UAAM;AAAA,QACnE;AAAA,MACF;AAAA,MAEF,UAAU;AAAA;AAAA,QAER;AAAA,UACE,UAAUA,IAAW,MAAO;AAAA,UAC5B,KAAK,OAAOA,CAAQ;AAAA,UACpB,eAAe;AAAA,UACf,QAAQ,EAAE,OAAO,EAAE,OAAO,OAAO,cAAc,QAAM;AAAA,UACrD,WAAW,EAAE,YAAY,EAAE,iBAAiB,IAAI,cAAc,IAAE;AAAA,UAChE,SAAS;AAAA,YACP;AAAA,cACE,UAAUA,IAAW;AAAA,cACrB,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,GAAG,OAAO,QAAA,CAAS;AAAA,YAAA;AAAA,YAE3D;AAAA,cACE,UAAUA,IAAW,MAAM;AAAA,cAC3B,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,IAAI,OAAO,MAAA,CAAO;AAAA,YAAA;AAAA,UAC1D;AAAA,QACF;AAAA;AAAA,QAGF;AAAA,UACE,UAAUA,IAAW,MAAO;AAAA,UAC5B,KAAK,OAAOA,CAAQ;AAAA,UACpB,eAAe;AAAA,UACf,QAAQ,EAAE,OAAO,EAAE,OAAO,OAAO,cAAc,QAAM;AAAA,UACrD,WAAW,EAAE,YAAY,EAAE,iBAAiB,GAAG,cAAc,IAAE;AAAA,UAC/D,SAAS;AAAA,YACP;AAAA,cACE,UAAUA,IAAW;AAAA,cACrB,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,GAAG,OAAO,QAAA,CAAS;AAAA,YAAA;AAAA,YAE3D;AAAA,cACE,UAAUA,IAAW,MAAM;AAAA,cAC3B,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,IAAI,OAAO,OAAA,CAAQ;AAAA,YAAA;AAAA,UAC3D;AAAA,QACF;AAAA;AAAA,QAGF;AAAA,UACE,UAAUA,IAAW,MAAO;AAAA,UAC5B,KAAK,OAAOA,CAAQ;AAAA,UACpB,eAAe;AAAA,UACf,QAAQ,EAAE,OAAO,EAAE,OAAO,OAAO,cAAc,QAAM;AAAA,UACrD,WAAW,EAAE,YAAY,EAAE,iBAAiB,GAAG,cAAc,IAAE;AAAA,UAC/D,SAAS;AAAA,YACP;AAAA,cACE,UAAUA,IAAW;AAAA,cACrB,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,GAAG,OAAO,SAAA,CAAU;AAAA,YAAA;AAAA,YAE5D;AAAA,cACE,UAAUA,IAAW,MAAM;AAAA,cAC3B,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,IAAI,OAAO,MAAA,CAAO;AAAA,YAAA;AAAA,UAC1D;AAAA,QACF;AAAA;AAAA,QAGF;AAAA,UACE,UAAUA,IAAW,MAAO;AAAA,UAC5B,KAAK,OAAOA,CAAQ;AAAA,UACpB,eAAe;AAAA;AAAA,UACf,QAAQ,EAAE,OAAO,EAAE,OAAO,OAAO,cAAc,QAAM;AAAA,UACrD,WAAW,EAAE,YAAY,EAAE,iBAAiB,GAAG,cAAc,IAAE;AAAA,UAC/D,SAAS;AAAA,YACP;AAAA,cACE,UAAUA,IAAW;AAAA,cACrB,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,GAAG,OAAO,SAAA,CAAU;AAAA,YAAA;AAAA,YAE5D;AAAA,cACE,UAAUA,IAAW,MAAM;AAAA,cAC3B,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,IAAI,OAAO,OAAA,CAAQ;AAAA,YAAA;AAAA,UAC3D;AAAA,QACF;AAAA;AAAA,QAGF;AAAA,UACE,UAAUA,IAAW,MAAO;AAAA,UAC5B,KAAK,OAAOA,CAAQ;AAAA,UACpB,eAAe;AAAA,UACf,QAAQ,EAAE,OAAO,EAAE,OAAO,OAAO,cAAc,QAAM;AAAA,UACrD,WAAW,EAAE,YAAY,EAAE,iBAAiB,IAAI,cAAc,IAAE;AAAA,UAChE,SAAS;AAAA,YACP;AAAA,cACE,UAAUA,IAAW;AAAA,cACrB,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,GAAG,OAAO,QAAA,CAAS;AAAA,YAAA;AAAA,YAE3D;AAAA,cACE,UAAUA,IAAW,MAAM;AAAA,cAC3B,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,IAAI,OAAO,MAAA,CAAO;AAAA,YAAA;AAAA,UAC1D;AAAA,QACF;AAAA;AAAA,QAGF;AAAA,UACE,UAAUA,IAAW,MAAO;AAAA,UAC5B,KAAK,OAAOA,CAAQ;AAAA,UACpB,eAAe;AAAA,UACf,QAAQ,EAAE,OAAO,EAAE,OAAO,OAAO,cAAc,QAAM;AAAA,UACrD,WAAW,EAAE,YAAY,EAAE,iBAAiB,GAAG,cAAc,IAAE;AAAA,UAC/D,SAAS;AAAA,YACP;AAAA,cACE,UAAUA,IAAW;AAAA,cACrB,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,GAAG,OAAO,QAAA,CAAS;AAAA,YAAA;AAAA,YAE3D;AAAA,cACE,UAAUA,IAAW,MAAM;AAAA,cAC3B,aAAa;AAAA,cACb,QAAQ,CAAC,EAAE,UAAUA,IAAW,MAAM,IAAI,OAAO,OAAA,CAAQ;AAAA,YAAA;AAAA,UAC3D;AAAA,QACF;AAAA,MACF;AAAA,IACF,EACA;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,sBACJD,GACAE,GAC0B;AAC1B,WAAOF,EAAiB,IAAI,CAACC,MAAa;AAExC,YAAME,IAAoC;AAAA,QACxC,UAAUF,IAAW,MAAO;AAAA,QAC5B,iBAAiBA;AAAA,QACjB,KAAK,OAAOA,CAAQ;AAAA,QACpB,eAAe;AAAA,QACf,cACE;AAAA,QACF,OAAO;AAAA,QACP,cAAc;AAAA,QACd,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,cAAc;AAAA,UACZ,CAACA,IAAW,GAAG,GAAGA,IAAW,MAAM;AAAA;AAAA,UACnC,CAACA,IAAW,MAAM,EAAE,GAAGA,IAAW,MAAM;AAAA;AAAA,QAAA;AAAA,MAC1C;AAIF,UAAIG,IAAiBD;AACrB,UAAID,GAAkB,QAAQ;AAC5B,cAAMG,IAAcH,EAAiB;AAAA,UACnC,CAACI,MAAQA,KAAOL,IAAW,MAAO,KAAKK,KAAOL,IAAW,MAAO;AAAA,QAAA;AAElE,QAAII,KAAeA,MAAgBF,EAAmB,aACpDC,IAAiB;AAAA,UACf,GAAGD;AAAA,UACH,UAAUE;AAAA,UACV,KAAK,OAAOJ,CAAQ,KAAKI,IAAcJ,IAAW,GAAI;AAAA,QAAA;AAAA,MAG5D;AAEA,aAAO;AAAA,QACL,UAAAA;AAAA,QACA,MAAM,WAAWA,CAAQ;AAAA,QACzB,KAAK,OAAOA,CAAQ;AAAA,QACpB,MAAM,qBAAqBA,CAAQ;AAAA,QACnC,cACE;AAAA,QACF,gBAAgB;AAAA,UACd;AAAA,YACE,UAAUA,IAAW;AAAA,YACrB,aAAa;AAAA,YACb,YAAY;AAAA,YACZ,iBAAiB;AAAA,YACjB,cAAc;AAAA,YACd,QAAQ;AAAA,cACN;AAAA,gBACE,UAAUA,IAAW,MAAM;AAAA,gBAC3B,OAAO;AAAA,gBACP,WAAW;AAAA,cAAA;AAAA,cAEb;AAAA,gBACE,UAAUA,IAAW,MAAM;AAAA,gBAC3B,OAAO;AAAA,gBACP,WAAW;AAAA,cAAA;AAAA,cAEb;AAAA,gBACE,UAAUA,IAAW,MAAM;AAAA,gBAC3B,OAAO;AAAA,gBACP,WAAW;AAAA,cAAA;AAAA,YACb;AAAA,UACF;AAAA,UAEF;AAAA,YACE,UAAUA,IAAW,MAAM;AAAA,YAC3B,aAAa;AAAA,YACb,YAAY;AAAA,YACZ,iBAAiB;AAAA,YACjB,cAAc;AAAA,YACd,QAAQ;AAAA,cACN;AAAA,gBACE,UAAUA,IAAW,MAAM;AAAA,gBAC3B,OAAO;AAAA,gBACP,WAAW;AAAA,cAAA;AAAA,cAEb;AAAA,gBACE,UAAUA,IAAW,MAAM;AAAA,gBAC3B,OAAO;AAAA,gBACP,WAAW;AAAA,cAAA;AAAA,YACb;AAAA,UACF;AAAA,QACF;AAAA,QAEF,gBAAAG;AAAA,MAAA;AAAA,IAEJ,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,oBACJG,GACAC,GAC+B;AAE/B,UAAMC,IAAqC,CAAA;AAC3C,eAAW,EAAE,gBAAAC,GAAgB,eAAAC,EAAA,KAAmBH;AAC9C,MAAAC,EAAWC,CAAc,IAAIC;AAI/B,UAAMC,IAAeL,IAAkB,KACjCM,IAAgBN,IAAkB,MAAM,IACxCO,IAAcL,EAAWG,CAAY,GACrCG,IAAeN,EAAWI,CAAa,GAGvCG,IAAqC;AAAA,MACzC,CAACT,IAAkB,MAAM,CAAC,GAAG;AAAA,MAC7B,CAACA,IAAkB,MAAM,CAAC,GAAG;AAAA,MAC7B,CAACA,IAAkB,MAAM,CAAC,GAAG;AAAA,IAAA,GAIzBU,IAAsC;AAAA,MAC1C,CAACV,IAAkB,MAAM,EAAE,GAAG;AAAA,MAC9B,CAACA,IAAkB,MAAM,EAAE,GAAG;AAAA,IAAA,GAG1BW,IAAYJ,IAAcE,EAAWF,CAAW,IAAI,KACpDK,IAAaJ,IAAeE,EAAYF,CAAY,IAAI,KAGxDK,KACHN,IAAcA,KAAeP,IAAkB,MAAM,KAAK,KAAK,KAC/DQ,IAAeA,KAAgBR,IAAkB,MAAM,MAAM,KAC9D;AAEF,WAAO;AAAA,MACL,UAAUA,IAAkB,MAAOa;AAAA,MACnC,iBAAAb;AAAA,MACA,KAAK,OAAOA,CAAe,IAAIW,CAAS,IAAIC,CAAU;AAAA,MACtD,eAAe;AAAA,MACf,cACE;AAAA,MACF,OACE,SACCL,KAAeA,KAAeP,IAAkB,MAAM,MAAM,IAAI;AAAA,MACnE,cAAc;AAAA,MACd,WAAW;AAAA,MACX,iBAAiB,KAAKa;AAAA,MACtB,cAAcX;AAAA,IAAA;AAAA,EAElB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,SAAK,MAAM,MAAA,GACX,KAAK,UAAU,MAAA,GACf,KAAK,iBAAiB,MAAA,GACtB,KAAK,aAAa,GAClB,KAAK,iBAAiB,GACtB,KAAK,iBAAiB,GACtB,KAAK,oBAAoB,GACzB,KAAK,uBAAuB,GAC5B,KAAK,mBAAmB;AAAA,EAC1B;AACF;AAKO,SAASY,EACdC,GACuB;AACvB,SAAO,IAAIlE,EAAsBkE,CAAM;AACzC;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takeshape/purchase-order-chat",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.67.0",
|
|
4
4
|
"description": "BigCommerce purchase order chat UI components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"imports": {
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"vite-plugin-dts": "^4.5.4",
|
|
66
66
|
"vite-tsconfig-paths": "^6.0.4",
|
|
67
67
|
"@takeshape/scripts": "0.0.0",
|
|
68
|
-
"@takeshape/
|
|
69
|
-
"@takeshape/
|
|
68
|
+
"@takeshape/config": "0.0.0",
|
|
69
|
+
"@takeshape/vite": "0.0.0"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
72
|
"react": ">=19.0.0",
|