@sazito/client-sdk 1.1.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/README.md +459 -0
- package/dist/index.d.ts +1812 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.umd.js +2 -0
- package/dist/index.umd.js.map +1 -0
- package/package.json +95 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const t={timeout:3e4,retry:{enabled:!0,retries:3,retryDelay:1e3},cache:{products:{enabled:!0,ttl:6e5},categories:{enabled:!0,ttl:6e5},cart:{enabled:!1},orders:{enabled:!1},search:{enabled:!0,ttl:3e5},cms:{enabled:!0,ttl:6e5},tags:{enabled:!0,ttl:6e5},entityRoutes:{enabled:!0,ttl:6e5}},debug:!1};function e(e){return{...t,...e,retry:{...t.retry,...e.retry},cache:{...t.cache,...e.cache},customFetchApi:e.customFetchApi||("undefined"!=typeof fetch?fetch:void 0)}}class a{constructor(){this.tokenKey="user_id_token"}get(){if("undefined"==typeof window||"undefined"==typeof document)return null;const t=this.getFromLocalStorage();if(t)return t;return this.parseCookies()[this.tokenKey]||null}set(t,e){if("undefined"==typeof window||"undefined"==typeof document)return void console.warn("[Sazito SDK] Cannot set token in SSR environment");this.setInLocalStorage(t);const a={secure:!0,sameSite:"Lax",maxAge:2592e3,path:"/",...e};this.setCookie(this.tokenKey,t,a)}remove(){"undefined"!=typeof window&&"undefined"!=typeof document&&(this.removeFromLocalStorage(),this.setCookie(this.tokenKey,"",{maxAge:-1,path:"/"}))}getFromLocalStorage(){try{return window.localStorage.getItem(this.tokenKey)}catch{return null}}setInLocalStorage(t){try{window.localStorage.setItem(this.tokenKey,t)}catch{}}removeFromLocalStorage(){try{window.localStorage.removeItem(this.tokenKey)}catch{}}parseCookies(){return"undefined"==typeof document?{}:document.cookie.split(";").reduce((t,e)=>{const[a,i]=e.trim().split("=");return a&&i&&(t[a]=decodeURIComponent(i)),t},{})}setCookie(t,e,a){let i=`${t}=${encodeURIComponent(e)}`;void 0!==a.maxAge&&(i+=`; Max-Age=${a.maxAge}`),a.path&&(i+=`; Path=${a.path}`),a.domain&&(i+=`; Domain=${a.domain}`),a.secure&&(i+="; Secure"),a.httpOnly&&(i+="; HttpOnly"),a.sameSite&&(i+=`; SameSite=${a.sameSite}`),document.cookie=i}}class i{constructor(){this.cache=new Map}get(t,e){const a=this.cache.get(t);return a?e&&Date.now()-a.timestamp>e?(this.cache.delete(t),null):a.data:null}set(t,e){this.cache.set(t,{data:e,timestamp:Date.now()})}delete(t){this.cache.delete(t)}deletePattern(t){const e=new RegExp(t),a=[];this.cache.forEach((t,i)=>{e.test(i)&&a.push(i)}),a.forEach(t=>this.cache.delete(t))}clear(){this.cache.clear()}static generateKey(t,e,a){return`${t}:${e}:${a?JSON.stringify(a):""}`}}const r={no_of_items:"quantity",single_item_price:"unitPrice",total_items_price:"lineTotal",items_total_raw_price:"totalOriginalPrice",items_discount:"totalDiscount",customer_profit:"savings",customer_profit_percentage:"savingsPercentage",total_amount:"totalAmount",net_total:"subtotal",gross_total:"total",final_total:"finalTotal",discount_total:"discountTotal",shipping_total:"shippingTotal",tax_total:"taxTotal",unique_identifier:"identifier",invoice_identifier:"identifier",payment_identifier:"identifier",shipping_address_identifier:"identifier",first_name:"firstName",last_name:"lastName",mobile_phone:"mobilePhone",phone_number:"phoneNumber",postal_code:"postalCode",user_comment:"comment",product_id:"productId",variant_id:"variantId",product_name:"name",product_image:"image",product_variant:"variant",product_variants:"variants",product_categories:"categories",product_attributes:"attributes",product_type:"productType",title:"name",short_description:"shortDescription",stock_quantity:"stockQuantity",stock_number:"stockQuantity",sale_price:"salePrice",raw_price:"originalPrice",has_max_order:"hasMaxOrder",max_no_of_order:"maxOrderQuantity",min_order_count:"minOrderQuantity",sold_count:"soldCount",static_url:"staticUrl",dynamic_form_id:"dynamicFormId",event_entity_id:"eventEntityId",theme_config:"themeConfig",image_id:"imageId",is_stock_managed:"isStockManaged",commercial_files:"commercialFiles",sort_index:"sortIndex",attribute_type:"attributeType",cart_products:"items",cart_product_id:"cartProductId",invoice_items:"items",products:"items",total_count:"total",shipping_method_needed:"needsShipping",shipping_method:"shippingMethod",shipping_address:"shippingAddress",shipping_items:"shippingItems",delivery_time:"deliveryTime",min_delivery_days:"minDays",max_delivery_days:"maxDays",payment_type:"paymentType",payment_types:"methods",reference_code:"code",is_default:"isDefault",is_available:"isAvailable",delete_coupon:"deleteCoupon",form_attributes:"formAttributes",booking_attributes:"bookingAttributes",readable_form_attr:"formFields",created_at:"createdAt",updated_at:"updatedAt",page_number:"page",page_size:"pageSize",total_count_raw:"totalCountRaw",max_price:"maxPrice",min_price:"minPrice",stock_alert_limit:"stockAlertLimit",sub_categories:"subCategories",order_number:"orderNumber",sort_order:"sortOrder",pinned_ids:"pinnedIds",region_id:"regionId",city_id:"cityId",parent_id:"parentId",discount_code:"discountCode",entity_name:"entityType",entity_id:"entityId",other_props:"entity",shipping_methods:"shippingMethods",shipping_rates:"shippingRates",grouped_shipping_rates:"groupedShippingRates",items_shipping_rate:"itemsShippingRate",shipping_rate:"shippingRate",rate_id:"rateId",invoice_item_id:"invoiceItemId",invoice_item_ids:"invoiceItemIds",scheduler_booking_attributes:"schedulerBookingAttributes",inventory_count:"inventoryCount",order_identifier:"orderIdentifier",self_only:"selfOnly",coupon:"coupon",user_set_coordinates_before:"userSetCoordinatesBefore",alt:"alt",url:"url",activate_add_to_cart_alert:"addToCardAlert",activate_advanced_card_to_card:"advancedCardToCard",activate_ayria_payment_customization:"ayriaPaymentGateway",activate_azki_payment_customization:"azkiPaymentGateway",activate_bazar_payment_customization:"bazarPaymentGateway",activate_blog:"shopBlog",activate_card_to_card_payment:"cardToCardPayment",activate_checkout_dynamic_form:"checkoutDynamicForm",activate_different_register_customization:"multiTypeRegister",activate_digipay_payment:"digipayPaymentGateway",activate_digipay_payment_customization:"digipayPaymentGateway",activate_filter_products:"productFilters",activate_ghesta_payment_customization:"ghestaPaymentGateway",activate_mega_footer:"megaFooter",activate_mellat_payment_customization:"mellatPaymentGateway",activate_min_basket:"checkoutMinimumAmount",activate_novapay_payment_customization:"novapayPaymentGateway",activate_ozon_payment_customization:"ozonPaymentGateway",activate_payment_in_place:"paymentInPlace",activate_payping_payment:"paypingPaymentGateway",activate_pec_payment_customization:"pecPaymentGateway",activate_sabin_payment_customization:"sabinPaymentGateway",activate_sadad_payment_customization:"sadadPaymentGateway",activate_search:"shopSearch",activate_sep_payment_customization:"sepPaymentGateway",activate_shop_vat:"shopVat",activate_snapppay_payment_customization:"snapppayPaymentGateway",activate_tajrobe:"tajrobe",activate_tara_payment_customization:"taraPaymentGateway",activate_theme_config_settings:"themeConfigSettings",activate_toman_payment_customization:"tomanPaymentGateway",activate_torobpay_payment_customization:"torobpayPaymentGateway",activate_up_payment_customization:"asanpardakhtPaymentGateway",activate_vandar_payment_customization:"vandarPaymentGateway",activate_wallet:"wallet",activate_yourgate_payment_customization:"yourgatePaymentGateway",activate_zarinpal_payment:"zarinpalPaymentGateway",activate_zarinplus_payment_customization:"zarinplusPaymentGateway",activate_zibal_payment_customization:"zibalPaymentGateway",activate_zify_payment_customization:"zifyPaymentGateway",disable_ordering:"disableOrdering",pwa:"progressiveWebApp",remove_front_basket:"hideCheckout",remove_front_taint:"sazitoBrandingRemoval"},n=Object.entries(r).reduce((t,[e,a])=>(t[a]||(t[a]=e),t),{});function s(t){return t.replace(/_([a-z])/g,(t,e)=>e.toUpperCase())}function o(t){return t.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function c(t){return!(null===t||"object"!=typeof t||Array.isArray(t)||t instanceof Date)}function d(t,e){const a={...t};for(const t of e)delete a[t];return a}function p(t){if(!c(t))return Array.isArray(t)?t.map(t=>p(t)):t;const e={};for(const[a,i]of Object.entries(t)){let t=r[a];t||(t=s(a)),c(i)?e[t]=p(i):Array.isArray(i)?e[t]=i.map(t=>p(t)):e[t]=i}return e}function u(t){if(!c(t))return Array.isArray(t)?t.map(t=>u(t)):t;const e={};for(const[a,i]of Object.entries(t)){let t=n[a];t||(t=o(a)),c(i)?e[t]=u(i):Array.isArray(i)?e[t]=i.map(t=>u(t)):e[t]=i}return e}function l(t){if(t?.data?.result){const e=t.data.result,a=Object.keys(e);return 1===a.length&&c(e[a[0]])?p(e[a[0]]):p(e)}return p(t)}function h(t){if(!t)return t;const{general:e,shop:a,checkout:i,features:r,wallet:n,tajrobe:s,domain:o,enamad:d,google:p,logo:u,social:l,...h}=t,_={...e,...a},{registerType:f,showProductStockNumber:v,...C}=_||{};let S=i;if(c(i)){const t={...i};void 0===t.preventRedirect&&void 0!==t.manual&&(t.preventRedirect=t.manual),delete t.manual,S=t}return{...h,scripts:{enamad:d,google:p},shop:y({...C,domain:o,logo:u,social:l}),settings:{checkout:S,features:b(r),wallet:P(n),tajrobe:w(s),registerType:m(f),showProductStockNumber:g(v)}}}function m(t){return"string"==typeof t?t:""}function g(t){return"boolean"==typeof t?t:c(t)&&Object.prototype.hasOwnProperty.call(t,"enabled")?g(t.enabled):1===t||"1"===t||"true"===t}function y(t){if(!c(t))return t;const e={...t};if(c(e.city)){const t=d(e.city,["createdAt","updatedAt"]);let a=t.region;c(a)&&(a=d(a,["createdAt","updatedAt","cities"])),t.region=a,e.city=t}return e}const _={addToCardAlert:"addToCartAlertEnabled",addToCartAlert:"addToCartAlertEnabled",advancedCardToCard:"advancedCardToCardEnabled",cardToCardPayment:"cardToCardPaymentEnabled",checkoutDynamicForm:"checkoutDynamicFormEnabled",multiTypeRegister:"multiTypeRegisterEnabled",productFilters:"productFiltersEnabled",megaFooter:"megaFooterEnabled",checkoutMinimumAmount:"checkoutMinimumAmountEnabled",paymentInPlace:"paymentInPlaceEnabled",shopBlog:"blogEnabled",shopSearch:"searchEnabled",shopVat:"shopVatEnabled",tajrobe:"tajrobeEnabled",themeConfigSettings:"themeConfigSettingsEnabled",wallet:"walletEnabled",progressiveWebApp:"progressiveWebAppEnabled",disableOrdering:"orderingDisabled",hideCheckout:"checkoutHidden",sazitoBrandingRemoval:"sazitoBrandingRemoved",ayriaPaymentGateway:"ayriaPaymentGatewayEnabled",azkiPaymentGateway:"azkiPaymentGatewayEnabled",bazarPaymentGateway:"bazarPaymentGatewayEnabled",digipayPaymentGateway:"digipayPaymentGatewayEnabled",ghestaPaymentGateway:"ghestaPaymentGatewayEnabled",mellatPaymentGateway:"mellatPaymentGatewayEnabled",novapayPaymentGateway:"novapayPaymentGatewayEnabled",ozonPaymentGateway:"ozonPaymentGatewayEnabled",paypingPaymentGateway:"paypingPaymentGatewayEnabled",pecPaymentGateway:"pecPaymentGatewayEnabled",sabinPaymentGateway:"sabinPaymentGatewayEnabled",sadadPaymentGateway:"sadadPaymentGatewayEnabled",sepPaymentGateway:"sepPaymentGatewayEnabled",snapppayPaymentGateway:"snapppayPaymentGatewayEnabled",taraPaymentGateway:"taraPaymentGatewayEnabled",tomanPaymentGateway:"tomanPaymentGatewayEnabled",torobpayPaymentGateway:"torobpayPaymentGatewayEnabled",asanpardakhtPaymentGateway:"asanpardakhtPaymentGatewayEnabled",vandarPaymentGateway:"vandarPaymentGatewayEnabled",yourgatePaymentGateway:"yourgatePaymentGatewayEnabled",zarinpalPaymentGateway:"zarinpalPaymentGatewayEnabled",zarinplusPaymentGateway:"zarinplusPaymentGatewayEnabled",zibalPaymentGateway:"zibalPaymentGatewayEnabled",zifyPaymentGateway:"zifyPaymentGatewayEnabled",activateEditOrderCustomization:"editOrderEnabled",activateEditOrderCustomizationEnabled:"editOrderEnabled"},f=new Set(["activateAlopeykAdvanced","activate_alopeyk_advanced"]),v=new Set(["auditLogEnabled","editOrderEnabled","rahkaranAccountingCustomizationEnabled","advancedThemeDesignerEnabled","checkoutHidden","eventPublisherEnabled","exportOrdersEnabled","exportProductsEnabled","exportUsersEnabled","fontCustomizationEnabled","forwardShippingEnabled","podroShippingEnabled","postexShippingEnabled","quotaNotificationsEnabled","recaptchaEnabled","rolePoliciesEnabled","sepidarAccountingCustomizationEnabled","shortUrlEnabled","skuSearchEnabled","snappShopCustomizationEnabled","snappboxShippingEnabled","stockAlertNotificationsEnabled","tapsipackShippingEnabled","themeConfigSettingsEnabled","advancedTextEditorEnabled","advancedShippingEnabled","bulkActionEnabled","discountBulkEnabled","discountCodeEnabled","orderBulkActionEnabled","importProductsEnabled","mahakAccountingCustomizationEnabled","millipayPaymentCustomizationEnabled","orderSmsNotificationsEnabled"]);function b(t){if(!c(t))return{};const e={},a=(t,a)=>{if(f.has(t))return;const i=(t=>{if("boolean"==typeof t)return t;if("number"==typeof t)return 1===t||0!==t&&void 0;if("string"==typeof t){const e=t.trim().toLowerCase();return"true"===e||"1"===e||"false"!==e&&"0"!==e&&void 0}})(a);void 0!==i&&(e[t]=i)};c(t.flags)&&Object.entries(t.flags).forEach(([t,e])=>{a(t,e)}),c(t.configurations)&&Object.entries(t.configurations).forEach(([t,e])=>{a(t,e)}),Object.entries(t).forEach(([t,e])=>{"flags"!==t&&"premium"!==t&&"configurations"!==t&&(c(e)&&Object.prototype.hasOwnProperty.call(e,"enabled")?a(t,e.enabled):a(t,e))});const i={};Object.entries(e).forEach(([t,e])=>{const a=function(t){const e=t.includes("_")?s(t):t,a=_[e];if(a)return a;const i=e.startsWith("activate")&&e.length>8?`${e.charAt(8).toLowerCase()}${e.slice(9)}`:e;return i.endsWith("Enabled")||i.endsWith("Disabled")||i.endsWith("Hidden")||i.endsWith("Removed")?i:`${i}Enabled`}(t);v.has(a)||(i[a]=e)});const r={...i};return c(t.premium)&&(r.premium=t.premium),r}function P(t){if(!c(t))return t;const e=c(t.configurations)?{...t,...t.configurations}:{...t},a=t=>"boolean"==typeof t?t:1===t||"1"===t||"true"===t||0!==t&&"0"!==t&&"false"!==t&&void 0;return{enabled:a(e.enabled)??!1,useWithDiscount:a(e.useWithDiscount)??!1,minAmount:(t=>{if("number"==typeof t&&Number.isFinite(t))return t;const e=Number(t);return Number.isFinite(e)?e:void 0})(e.minAmount??e.walletMinAmount)??0,minAmountRequired:a(e.minAmountRequired??e.walletMinStatus)??!1}}function w(t){if(!c(t))return t;const e=c(t.configurations)?{...t,...t.configurations}:{...t};let a=!1;return"boolean"==typeof e.enabled?a=e.enabled:1!==e.enabled&&"1"!==e.enabled&&"true"!==e.enabled||(a=!0),{enabled:a}}function C(t){if(!t)return t;const e=d(t,["staticUrl","summary","tags","slug"]);return e.variants&&Array.isArray(e.variants)&&(e.variants=e.variants.map(t=>d(t,["name","title","product","status","soldCount"]))),e.categories&&Array.isArray(e.categories)&&(e.categories=e.categories.map(t=>({id:t.id,name:t.name,url:t.url}))),e.images&&Array.isArray(e.images)&&(e.images=e.images.map(t=>d(t,["widthRatio","heightRatio","thumb"]))),e}function S(t){const e=C(t);return e?d(e,["themeConfig"]):e}function A(t){const e=l(t);return e.items&&Array.isArray(e.items)?{items:e.items.map(t=>S(t)),total:e.total||e.items.length,page:e.page||1,pageSize:e.pageSize||e.items.length,totalPages:e.totalPages||Math.ceil((e.total||e.items.length)/(e.pageSize||e.items.length))}:e}function I(t){if(!t)return t;const e={products:{items:[],total:0,page:1,pageSize:20},blogPages:{items:[],total:0,page:1,pageSize:20},cmsPages:{items:[],total:0,page:1,pageSize:20},productCategories:{items:[],total:0,page:1,pageSize:20}};return t.items&&Array.isArray(t.items)&&(e.products.items=t.items.map(t=>S(t)),e.products.total=t.productsCount||0,e.products.page=t.productsPageNumber||1,e.products.pageSize=t.productsPageSize||20),t.blogPages&&Array.isArray(t.blogPages)&&(e.blogPages.items=t.blogPages.map(t=>k(t)),e.blogPages.total=t.blogPagesCount||0,e.blogPages.page=t.blogPagesPageNumber||1,e.blogPages.pageSize=t.blogPagesPageSize||20),t.cmsPages&&Array.isArray(t.cmsPages)&&(e.cmsPages.items=t.cmsPages.map(t=>k(t)),e.cmsPages.total=t.cmsPagesCount||0,e.cmsPages.page=t.cmsPagesPageNumber||1,e.cmsPages.pageSize=t.cmsPagesPageSize||20),t.categories&&Array.isArray(t.categories)&&(e.productCategories.items=t.categories.map(t=>z(t)),e.productCategories.total=t.productCategoriesCount||0,e.productCategories.page=t.productCategoriesPageNumber||1,e.productCategories.pageSize=t.productCategoriesPageSize||20),e}function E(t){return t?d(t,["staticUrl","products","items"]):t}function z(t){const e=E(t);return e?d(e,["themeConfig"]):e}function T(t){return t?d(t,["staticUrl","urlKey"]):t}function k(t){const e=T(t);return e?d(e,["themeConfig"]):e}function x(t){const e=l(t);if(!e||!e.route)return e;const a=e.route;if(a.entity){switch(a.entityType){case"product":a.entity=C(a.entity);break;case"product_category":a.entity=E(a.entity);break;case"cms_page":case"blog_page":a.entity=T(a.entity)}a.entity=d(a.entity,["id"]),!a.url&&a.entity.url&&(a.url=a.entity.url)}return a}function G(t){if(!t)return t;const e={...t};return e.entity&&(e.entity=z(e.entity),e.entity&&"object"==typeof e.entity&&(e.entity=d(e.entity,["id"]))),e.children&&Array.isArray(e.children)&&(e.children=e.children.map(G)),e}function $(t){const e=l(t);return e?e.cmsPages&&Array.isArray(e.cmsPages)?{items:e.cmsPages.map(k),total:e.total||e.cmsPages.length,page:e.page||e.pageNumber||1,pageSize:e.pageSize||e.cmsPages.length}:e.items&&Array.isArray(e.items)?{items:e.items.map(t=>k(t)),total:e.total||e.items.length,page:e.page||1,pageSize:e.pageSize||e.items.length}:e:e}function N(t){if(!t)return{};const e={};if(void 0!==t.page&&(e.page_number=t.page),void 0!==t.pageSize&&(e.page_size=t.pageSize),t.cmsPageTypes){const a=Array.isArray(t.cmsPageTypes)?t.cmsPageTypes[0]:t.cmsPageTypes;e["filters[]"]=JSON.stringify({name:"cms_page_types",value:a})}return e}function O(t){if(!t)return t;const e={};if(t.entityType&&(e.entityType=t.entityType),void 0!==t.entityId&&(e.entityId=t.entityId),t.entity){const a=d(t.entity,["staticUrl","id"]);Object.keys(a).length>0&&(e.entity=a)}return t.details&&(e.details=t.details),t.children&&Array.isArray(t.children)&&(e.children=t.children.map(t=>O(t))),e}function D(t){const e=l(t);if(!e||!e.tree)return e;const a=e.tree;return a.treeStructure&&a.treeStructure.nodes&&(a.treeStructure.nodes=a.treeStructure.nodes.map(t=>O(t))),e}class R{constructor(t){this.config=t,this.baseUrl="http://api.sazito.com:8080",this.domain=t.domain,this.tokenStorage=new a,this.cache=new i,this.fetchApi=t.customFetchApi.bind(globalThis)}async get(t,e){const a=this.buildUrl(t,e?.params),r=i.generateKey("GET",a,e?.params);if(!1!==e?.cache){const e=this.getApiName(t),a=this.config.cache[e];if(a?.enabled&&a.ttl){const e=this.cache.get(r,a.ttl);if(e)return this.config.debug&&console.log("[Sazito SDK] Cache hit:",t),{data:e}}}const n=await this.request("GET",a,e);return n.data&&!1!==e?.cache&&this.cache.set(r,n.data),n}async post(t,e,a){const i=this.buildUrl(t),r=e?u(e):void 0,n=this.getApiName(t);return this.cache.deletePattern(`GET:.*${n}`),this.request("POST",i,{...a,body:r})}async put(t,e,a){const i=this.buildUrl(t),r=e?u(e):void 0,n=this.getApiName(t);return this.cache.deletePattern(`GET:.*${n}`),this.request("PUT",i,{...a,body:r})}async delete(t,e){const a=this.buildUrl(t),i=this.getApiName(t);return this.cache.deletePattern(`GET:.*${i}`),this.request("DELETE",a,e)}async request(t,e,a,i=0){const r=new AbortController,n=a?.signal||r.signal,s=a?.timeout||this.config.timeout,o=setTimeout(()=>r.abort(),s);try{const r=await this.fetchApi(e,{method:t,headers:this.getHeaders(a?.headers),body:a?.body?JSON.stringify(a.body):void 0,signal:n});clearTimeout(o);const s=void 0!==a?.retries?a.retries:this.config.retry.retries;if(!r.ok&&this.shouldRetry(r.status)&&i<s)return this.config.debug&&console.log(`[Sazito SDK] Retrying request (${i+1}/${s}):`,e),await this.delay(this.config.retry.retryDelay*(i+1)),this.request(t,e,a,i+1);const c=r.headers.get("content-type");let d;d=c?.includes("application/json")?await r.json():await r.text();const u=void 0!==d?.result?d.result:d;this.config.debug&&console.log(`[Sazito SDK] ${t} ${e}:`,{status:r.status,data:u});let l=u?p(u):u;const h=["cart","product","user","order","invoice","payment","shipping"];if(l&&"object"==typeof l&&!Array.isArray(l)){const t=Object.keys(l);1===t.length&&h.includes(t[0])&&"object"==typeof l[t[0]]&&null!==l[t[0]]&&(l=l[t[0]])}return r.ok?{data:l}:{error:{status:r.status,message:l?.message||u?.message||r.statusText||"Request failed",type:"api",details:l}}}catch(t){return clearTimeout(o),this.config.debug&&console.error("[Sazito SDK] Request failed:",t),{error:{message:"AbortError"===t.name?"Request timeout":t.message||"Network error",type:"network",details:t}}}}buildUrl(t,e){const a=`${this.baseUrl}${t}`;if(!e||0===Object.keys(e).length)return a;const i=new URLSearchParams;return Object.entries(e).forEach(([t,e])=>{null!=e&&i.append(t,String(e))}),`${a}?${i.toString()}`}getHeaders(t){const e={"Content-Type":"application/json","x-forwarded-host":this.domain,...t},a=this.tokenStorage.get();return a&&(e.Authorization=a),e}shouldRetry(t){return t>=500&&t<600}delay(t){return new Promise(e=>setTimeout(e,t))}getApiName(t){return t.includes("/products")?"products":t.includes("/product_categories")?"categories":t.includes("/cart")?"cart":t.includes("/orders")?"orders":t.includes("/search")?"search":t.includes("/tags")?"tags":t.includes("/entity_route")?"entityRoutes":"cms"}getTokenStorage(){return this.tokenStorage}clearCache(){this.cache.clear()}}class M{constructor(){this.CART_KEY="CART_CREDENTIALS",this.INVOICE_KEY="INVOICE_CREDENTIALS",this.SHIPPING_KEY="SHIPPING_ADDRESS_CREDENTIALS",this.PAYMENT_KEY="PAYMENT_CREDENTIALS",this.DISCOUNT_KEY="DISCOUNT_CODE_INFO"}getCartCredentials(){return this.getItem(this.CART_KEY)}setCartCredentials(t){this.setItem(this.CART_KEY,t)}clearCartCredentials(){this.removeItem(this.CART_KEY)}getInvoiceCredentials(){return this.getItem(this.INVOICE_KEY)}setInvoiceCredentials(t){this.setItem(this.INVOICE_KEY,t)}clearInvoiceCredentials(){this.removeItem(this.INVOICE_KEY)}getShippingCredentials(){return this.getItem(this.SHIPPING_KEY)}setShippingCredentials(t){this.setItem(this.SHIPPING_KEY,t)}clearShippingCredentials(){this.removeItem(this.SHIPPING_KEY)}getPaymentCredentials(){return this.getItem(this.PAYMENT_KEY)}setPaymentCredentials(t){this.setItem(this.PAYMENT_KEY,t)}clearPaymentCredentials(){this.removeItem(this.PAYMENT_KEY)}getDiscountCode(){return this.getItem(this.DISCOUNT_KEY)}setDiscountCode(t){this.setItem(this.DISCOUNT_KEY,t)}clearDiscountCode(){this.removeItem(this.DISCOUNT_KEY)}clearAll(){this.clearCartCredentials(),this.clearInvoiceCredentials(),this.clearShippingCredentials(),this.clearPaymentCredentials(),this.clearDiscountCode()}getItem(t){if("undefined"==typeof localStorage)return null;try{const e=localStorage.getItem(t);return e?JSON.parse(e):null}catch(e){return console.error(`[Sazito SDK] Error reading ${t} from localStorage:`,e),null}}setItem(t,e){if("undefined"!=typeof localStorage)try{localStorage.setItem(t,JSON.stringify(e))}catch(e){console.error(`[Sazito SDK] Error writing ${t} to localStorage:`,e)}else console.warn("[Sazito SDK] localStorage not available")}removeItem(t){if("undefined"!=typeof localStorage)try{localStorage.removeItem(t)}catch(e){console.error(`[Sazito SDK] Error removing ${t} from localStorage:`,e)}}}const K="/api/v1/product_categories",j="/api/v1/search",F="/api/v2/carts",U="/api/v2/invoices",q="/api/v2/shipping_addresses",Y="/api/v2/payments",L="/api/v1/orders",B="/api/v1/users",H="/api/v1/sessions",W="/api/v1/feedbacks",V="/api/v1/cms_pages",Q="/api/v1/images",J="/api/v1/scheduler/events",Z="/api/v1/scheduler/bookings",X="/api/v1/entity_route/route";class tt{constructor(t){this.http=t}mapSortToApi(t){if(!t)return null;return{newest:{sort:"date"},"best-selling":{sort:"sold"},availability:{sort:"stock_status"},discount:{sort:"raw_price"},"!price":{sort:"price",sortOrder:"asc"},price:{sort:"price"}}[t]||null}transformFilters(t){if(!t)return{};const e={},a=[];if(t.categories){const e=Array.isArray(t.categories)?t.categories:[t.categories];e.length>0&&a.push({name:"product_categories",value:e.join(",")})}if(!1===t.availableOnly&&a.push({name:"in_stock"}),t.discountedOnly&&a.push({name:"has_raw_price",value:!0}),t.similarTo&&a.push({name:"similar_to",value:{entity_name:"product",entity_id:t.similarTo}}),a.length>0&&(e["filters[]"]=JSON.stringify(a)),t.pinnedIds&&t.pinnedIds.length>0&&(e.pinned_ids=JSON.stringify(t.pinnedIds)),t.sort){const a=this.mapSortToApi(t.sort);a&&(e.sort=a.sort,a.sortOrder&&(e.sort_order=a.sortOrder))}return void 0!==t.priceMin&&(e.min_price=t.priceMin),void 0!==t.priceMax&&(e.max_price=t.priceMax),t.page&&(e.page=t.page),t.pageSize&&(e.page_size=t.pageSize),e}async get(t,e){const a=t.startsWith("/product/")?t:`/product/${t}`,i=await this.http.get(X,{...e,params:{url_part:a}});if(i.data){const t=x(i.data);return"product"===t.entityType&&t.entity?{data:t.entity}:"unknown"===t.entityType?{error:{message:"Product not found",type:"api",status:404}}:{error:{message:`Invalid entity type: expected 'product', got '${t.entityType}'`,type:"api",status:400}}}return i}async list(t,e){const a=this.transformFilters(t),i=await this.http.get("/api/v1/products",{...e,params:a});if(i.data){return{data:A(i.data)}}return i}async search(t,e,a){const i={query:t,search_direction:"center",page_size:e?.pageSize||20,page_number:e?.page||1},r=await this.http.get(j,{...a,params:i});if(r.data){return{data:I(r.data)}}return r}}class et{constructor(t){this.http=t}async get(t,e){const a=await this.http.get(`${K}/${t}`,e);if(a.data){const t=function(t){const e=l(t);return e?E(e.productCategory||e):e}(a.data);return{data:t}}return a}async list(t,e){const a={};void 0!==t?.page&&(a.page_number=t.page),void 0!==t?.pageSize&&(a.page_size=t.pageSize);const i=await this.http.get(K,{...e,params:a});if(i.data){const t=function(t){const e=l(t);return e?(e.categories&&Array.isArray(e.categories)&&(e.categories=e.categories.map(z)),e.tree&&e.tree.treeStructure&&e.tree.treeStructure.nodes&&(e.tree.treeStructure.nodes=e.tree.treeStructure.nodes.map(G)),e):e}(i.data);return{data:t}}return i}}class at{constructor(t,e){this.http=t,this.credentials=e}async get(t){const e=this.credentials.getCartCredentials();return e?this.http.get(`${F}/${e.id}`,{...t,params:{identifier:e.identifier}}):{error:{message:"No cart found. Please create a cart first.",type:"validation"}}}async create(t,e){const a=await this.http.post(F,t,e);return a.data&&this.credentials.setCartCredentials({id:a.data.id,identifier:a.data.identifier}),a}async addItem(t,e,a,i){const r=this.credentials.getCartCredentials();if(!r)return this.create({variants:[{id:t,count:e,formAttributes:a}]},i);return await this.http.post(`${F}/${r.id}/add_products_to_cart`,{identifier:r.identifier,variants:[{id:t,count:e}],formAttributes:a},i)}async updateItem(t,e,a){const i=this.credentials.getCartCredentials();return i?this.http.post(`${F}/${i.id}/update_products_in_cart`,{identifier:i.identifier,cartProductId:t,variants:[{id:t,count:e}]},a):{error:{message:"No cart found",type:"validation"}}}async removeItem(t,e,a){const i=this.credentials.getCartCredentials();return i?this.http.post(`${F}/${i.id}/remove_products_from_cart`,{identifier:i.identifier,cartProductId:t,variants:[{id:e}]},a):{error:{message:"No cart found",type:"validation"}}}clearCart(){this.credentials.clearCartCredentials()}}class it{constructor(t){this.http=t}async list(t,e){return this.http.get(L,{...e,params:t})}async get(t,e){return this.http.get(`${L}/${t}`,e)}}class rt{constructor(t,e){this.http=t,this.credentials=e}async get(t){const e=this.credentials.getInvoiceCredentials();return e?this.http.get(`${U}/${e.id}`,{...t,params:{identifier:e.identifier}}):{error:{message:"No invoice found. Please create an invoice first.",type:"validation"}}}async create(t){const e=this.credentials.getCartCredentials();if(!e)return{error:{message:"No cart found. Please create a cart first.",type:"validation"}};const a=await this.http.post(U,{cart_id:e.id,cart_identifier:e.identifier},t);return a.data&&this.credentials.setInvoiceCredentials({id:a.data.id,identifier:a.data.identifier}),a}async refresh(t){const e=this.credentials.getCartCredentials(),a=this.credentials.getInvoiceCredentials();return e&&a?this.http.post(`/api/v1/invoices/${a.id}/refresh`,{cart_id:e.id,cart_identifier:e.identifier,identifier:a.identifier},t):{error:{message:"No cart or invoice found",type:"validation"}}}async addShippingAddress(t,e,a){const i=this.credentials.getCartCredentials(),r=this.credentials.getInvoiceCredentials();return i&&r?this.http.post(`/api/v1/invoices/${r.id}/add_shipping_address`,{identifier:r.identifier,shipping_address_id:t,shipping_address_identifier:e,cart_id:i.id,cart_identifier:i.identifier},a):{error:{message:"No cart or invoice found",type:"validation"}}}async addDiscountCode(t,e){const a=this.credentials.getInvoiceCredentials();if(!a)return{error:{message:"No invoice found",type:"validation"}};const i=await this.http.post(`/api/v1/invoices/${a.id}/add_discount_code`,{identifier:a.identifier,discount_code:t.toUpperCase()},e);return i.data&&this.credentials.setDiscountCode(t),i}async assignShippingMethod(t,e){const a=this.credentials.getInvoiceCredentials();return a?this.http.post(`/api/v1/invoices/${a.id}/add_shipping_method`,{identifier:a.identifier,shippings:t},e):{error:{message:"No invoice found",type:"validation"}}}async addDetails(t,e){const a=this.credentials.getInvoiceCredentials();return a?this.http.post(`/api/v1/invoices/${a.id}/add_invoice_details`,{identifier:a.identifier,user_comment:t},e):{error:{message:"No invoice found",type:"validation"}}}async getApplicableShippingMethods(t){const e=this.credentials.getInvoiceCredentials();return e?this.http.get(`/api/v1/invoices/${e.id}/applicable_shipping_methods`,{...t,params:{identifier:e.identifier}}):{error:{message:"No invoice found",type:"validation"}}}clearInvoice(){this.credentials.clearInvoiceCredentials()}}class nt{constructor(t,e){this.http=t,this.credentials=e}async createAddress(t,e){const a=await this.http.post(q,{shipping_address:t},e);return a.data&&this.credentials.setShippingCredentials({id:a.data.id,identifier:a.data.identifier}),a}async updateAddress(t,e){const a=this.credentials.getShippingCredentials();if(!a)return this.createAddress(t,e);const i=await this.http.post(q,{identifier:a.identifier,shipping_address:t},e);return i.data&&this.credentials.setShippingCredentials({id:i.data.id,identifier:i.data.identifier}),i}async getAddress(t){const e=this.credentials.getShippingCredentials();return e?this.http.get(`${q}/${e.id}`,{...t,params:{identifier:e.identifier}}):{error:{message:"No shipping address found",type:"validation"}}}async getMethods(t){return this.http.post("/api/v2/shipping_methods/list",{},t)}clearAddress(){this.credentials.clearShippingCredentials()}}class st{constructor(t,e){this.http=t,this.credentials=e}async getMethods(t){const e=this.credentials.getInvoiceCredentials();return e?this.http.post(`${Y}/list`,{invoice_id:e.id,invoice_identifier:e.identifier},t):{error:{message:"No invoice found",type:"validation"}}}async create(t,e){const a=this.credentials.getInvoiceCredentials();if(!a)return{error:{message:"No invoice found",type:"validation"}};const i=await this.http.post(Y,{invoice_id:a.id,invoice_identifier:a.identifier,payment_type:t},e);return i.data&&this.credentials.setPaymentCredentials({id:i.data.id,identifier:i.data.identifier}),i}async initialize(t){const e=this.credentials.getPaymentCredentials();return e?this.http.post(`${Y}/${e.id}/process_payment_step`,{payment_identifier:e.identifier},t):{error:{message:"No payment found. Please create a payment first.",type:"validation"}}}async processStep(t,e){const a=this.credentials.getPaymentCredentials();return a?this.http.post(`${Y}/${a.id}/process_payment_step`,{payment_identifier:a.identifier,...t},e):{error:{message:"No payment found",type:"validation"}}}clearPayment(){this.credentials.clearPaymentCredentials()}}class ot{constructor(t){this.http=t}async login(t,e){return this.http.post(`${H}/login`,t,e)}async requestMobileOTP(t,e){return this.http.post(`${H}/login_request`,t,e)}async verifyMobileOTP(t,e){return this.http.post(`${H}/login_request_verification`,t,e)}async requestEmailLogin(t,e){return this.http.post(`${B}/email_login_request`,t,e)}async register(t,e){return this.http.post(`${B}/register`,t,e)}async getCurrentUser(t){return this.http.get(`${B}/current`,t)}async updateProfile(t,e,a){return this.http.put(`${B}/${t}`,e,a)}async requestMobilePhoneUpdate(t,e){return this.http.post(`${B}/update_mobile_phone_request`,t,e)}async verifyMobilePhoneUpdate(t,e){return this.http.post(`${B}/update_mobile_phone_verification`,t,e)}async forgotPassword(t,e){return this.http.post(`${B}/forgot_password`,t,e)}async revivePassword(t,e){return this.http.post(`${B}/revive_password`,t,e)}async mergeUser(t){return this.http.post(`${B}/merge_user`,{},t)}}class ct{constructor(t){this.http=t}transformFilters(t){if(!t)return{};const e={};return void 0!==t.page&&(e.page_number=t.page),void 0!==t.pageSize&&(e.page_size=t.pageSize),void 0!==t.categoryId&&(e.category_id=t.categoryId),void 0!==t.minPrice&&(e.min_price=t.minPrice),void 0!==t.maxPrice&&(e.max_price=t.maxPrice),e}async query(t,e,a){const i=this.transformFilters(e),r=await this.http.get(j,{...a,params:{...i,query:t,page_number:i.page_number??1,page_size:i.page_size??20,search_direction:"center"}});if(r.data){return{data:I(r.data)}}return r}}class dt{constructor(t){this.http=t}transformFilters(t){if(!t)return{};const e={};return void 0!==t.productId&&(e.product_id=t.productId),void 0!==t.page&&(e.page=t.page),void 0!==t.pageSize&&(e.page_size=t.pageSize),e}async list(t,e){return this.http.get(W,{...e,params:this.transformFilters(t)})}async create(t,e){return this.http.post(W,t,e)}async get(t,e){return this.http.get(`${W}/${t}`,e)}}class pt{constructor(t){this.http=t}validateInvoiceId(t){return!Number.isFinite(t)||t<=0?{error:{message:"Invalid invoice ID",type:"validation"}}:null}async getBalance(t){return this.http.get("/api/v1/users/wallet/balance",t)}async listTransactions(t,e){const a=t?.page_number??1,i=t?.page_size??100;return this.http.get("/api/v1/wallet/transactions",{...e,params:{page_number:a,page_size:i}})}async applyCredit(t,e){const a=this.validateInvoiceId(t);return a||this.http.post(`/api/v1/invoices/${t}/add_credit`,{},e)}async removeCredit(t,e){const a=this.validateInvoiceId(t);return a||this.http.post(`/api/v1/invoices/${t}/remove_credit`,{},e)}}class ut{constructor(t){this.http=t}async getPage(t,e){const a=await this.http.get(X,{...e,params:{url_part:t}}),i=x(a.data);if("cms_page"!==i.entityType||"blog"===i.entity?.cmsPageType)throw new Error(`Expected CMS page at ${t}, but got ${i.entityType}`);return{...a,data:i.entity}}async listPages(t,e){const a=N({...t,cmsPageTypes:"normal"}),i=await this.http.get(V,{...e,params:a});return{...i,data:$(i.data)}}async getBlogPost(t,e){const a=await this.http.get(X,{...e,params:{url_part:t}}),i=x(a.data);if("cms_page"!==i.entityType||"blog"!==i.entity?.cmsPageType)throw new Error(`Expected blog post at ${t}, but got ${i.entityType}`);return{...a,data:i.entity}}async listBlogPosts(t,e){const a=N({...t,cmsPageTypes:"blog"}),i=await this.http.get(V,{...e,params:a});return{...i,data:$(i.data)}}async listAll(t,e){const a=N(t),i=await this.http.get(V,{...e,params:a});return{...i,data:$(i.data)}}}class lt{constructor(t){this.http=t}async upload(t,e){const a=new FormData;a.append("image",t);const i={...e?.headers};return delete i["Content-Type"],this.http.post(Q,a,{...e,headers:i})}async delete(t,e){return this.http.delete(`${Q}/${t}`,e)}}class ht{constructor(t){this.http=t}async track(t,e){const a=e??((i=t)&&"object"==typeof i&&("retries"in i||"timeout"in i||"cache"in i||"headers"in i||"signal"in i)?t:void 0);var i;return this.http.post("/api/v1/visits/add",void 0,a)}async trackProduct(t,e,a){return this.track(a)}async trackCategory(t,e,a){return this.track(a)}}class mt{constructor(t){this.http=t}async listEvents(t,e){return this.http.get(J,{...e,params:t})}async getEvent(t,e){return this.http.get(`${J}/${t}`,e)}async createBooking(t,e){return this.http.post(Z,t,e)}async listBookings(t){return this.http.get(Z,t)}async cancelBooking(t,e){return this.http.post(`${Z}/${t}/cancel`,{},e)}}class gt{constructor(t){this.http=t}async resolve(t,e){const a=await this.http.get(X,{...e,params:{url_part:t}});if(a.data){return{data:x(a.data)}}return a}}class yt{constructor(t){this.http=t}async getHeaderMenu(t="headermenu",e){const a=await this.http.get("/api/v1/trees/fetch_single",{...e,params:{identifier:t}}),i=a.data?D(a.data):a.data,r=i?.tree?.treeStructure?.nodes||[],n=this.convertRawTreeToNavigation(r);return{...a,data:n}}convertRawTreeToNavigation(t){if(!t||0===t.length)return[];return t.map(t=>({name:this.findNodeTitle(t),url:this.findNodeUrl(t),children:this.convertRawTreeToNavigation(t.children||[]),shouldBeDropped:this.shouldDropNode(t)})).filter(t=>!t.shouldBeDropped).map(({shouldBeDropped:t,...e})=>e)}findNodeTitle(t){const{entityType:e,details:a,entity:i}=t;return a&&!a.isTitleDefault&&a.title?a.title:a&&!a.isTitleDefault&&a.name?a.name:"product_category"===e||"product"===e?i?.name||"":("cms_page"===e||"blog_page"===e)&&i?.name||""}findNodeUrl(t){return"product"===t.entityType||"product_category"===t.entityType||"cms_page"===t.entityType||"blog_page"===t.entityType?t.entity?.url||"#":"url"===t.entityType&&t.details?.url||"#"}shouldDropNode(t){return("product"===t.entityType||"product_category"===t.entityType||"cms_page"===t.entityType||"blog_page"===t.entityType)&&!t.entity?.enabled}}class _t{constructor(t){this.http=t}async getInfo(t){const e=await this.http.get("/api/v2/general/info",t);return e.data?{data:h(e.data)}:e.error?{error:e.error}:{error:{type:"api",message:"No data returned from general info endpoint."}}}async getFeatures(t){const e=await this.getInfo(t);return e.error?{error:e.error}:{data:e.data?.settings?.features}}async getCheckoutConfig(t){const e=await this.getInfo(t);return e.error?{error:e.error}:{data:e.data?.settings?.checkout}}async getWalletConfig(t){const e=await this.getInfo(t);return e.error?{error:e.error}:{data:e.data?.settings?.wallet}}async getTajrobeConfig(t){const e=await this.getInfo(t);return e.error?{error:e.error}:{data:e.data?.settings?.tajrobe}}}class ft{constructor(t){const a=e(t);this.http=new R(a),this.tokenStorage=this.http.getTokenStorage(),this.credentialsManager=new M,this.products=new tt(this.http),this.categories=new et(this.http),this.cart=new at(this.http,this.credentialsManager),this.orders=new it(this.http),this.invoices=new rt(this.http,this.credentialsManager),this.shipping=new nt(this.http,this.credentialsManager),this.payments=new st(this.http,this.credentialsManager),this.users=new ot(this.http),this.search=new ct(this.http),this.feedbacks=new dt(this.http),this.wallet=new pt(this.http),this.cms=new ut(this.http),this.images=new lt(this.http),this.visits=new ht(this.http),this.booking=new mt(this.http),this.entityRoutes=new gt(this.http),this.menu=new yt(this.http),this.general=new _t(this.http)}setAuthToken(t){this.tokenStorage.set(t)}getAuthToken(){return this.tokenStorage.get()}clearAuth(){this.tokenStorage.remove()}isAuthenticated(){return null!==this.tokenStorage.get()}clearCache(){this.http.clearCache()}clearCredentials(){this.credentialsManager.clearAll()}clearAll(){this.clearAuth(),this.clearCache(),this.clearCredentials()}async searchQuery(t,e,a){return this.search.query(t,e,a)}}function vt(t){return function(t){if(!t||"object"!=typeof t)return!1;const e=t;return e.http instanceof R&&e.credentials instanceof M}(t)?t:function(t){const a=e(t);return{http:new R(a),credentials:new M}}(t)}function bt(t){const{http:e}=vt(t);return new tt(e)}function Pt(t){const{http:e}=vt(t);return new et(e)}function wt(t){const{http:e,credentials:a}=vt(t);return new at(e,a)}function Ct(t){const{http:e}=vt(t);return new it(e)}function St(t){const{http:e,credentials:a}=vt(t);return new rt(e,a)}function At(t){const{http:e,credentials:a}=vt(t);return new nt(e,a)}function It(t){const{http:e,credentials:a}=vt(t);return new st(e,a)}function Et(t){const{http:e}=vt(t);return new ot(e)}function zt(t){const{http:e}=vt(t);return new ct(e)}function Tt(t){const{http:e}=vt(t);return new dt(e)}function kt(t){const{http:e}=vt(t);return new pt(e)}function xt(t){const{http:e}=vt(t);return new ut(e)}function Gt(t){const{http:e}=vt(t);return new lt(e)}function $t(t){const{http:e}=vt(t);return new ht(e)}function Nt(t){const{http:e}=vt(t);return new mt(e)}function Ot(t){const{http:e}=vt(t);return new gt(e)}function Dt(t){const{http:e}=vt(t);return new yt(e)}function Rt(t){const{http:e}=vt(t);return new _t(e)}exports.CredentialsManager=M,exports.HttpClient=R,exports.SazitoClient=ft,exports.TokenStorage=a,exports.booking=Nt,exports.cart=wt,exports.categories=Pt,exports.cms=xt,exports.createBookingAPI=Nt,exports.createCMSAPI=xt,exports.createCartAPI=wt,exports.createCategoriesAPI=Pt,exports.createEntityRoutesAPI=Ot,exports.createFeedbacksAPI=Tt,exports.createGeneralAPI=Rt,exports.createImagesAPI=Gt,exports.createInvoicesAPI=St,exports.createMenuAPI=Dt,exports.createOrdersAPI=Ct,exports.createPaymentsAPI=It,exports.createProductsAPI=bt,exports.createSazitoClient=function(t){return new ft(t)},exports.createSearchAPI=zt,exports.createShippingAPI=At,exports.createUsersAPI=Et,exports.createVisitsAPI=$t,exports.createWalletAPI=kt,exports.entityRoutes=Ot,exports.feedbacks=Tt,exports.general=Rt,exports.images=Gt,exports.invoices=St,exports.menu=Dt,exports.orders=Ct,exports.payments=It,exports.products=bt,exports.search=zt,exports.shipping=At,exports.transformAddToCartInput=function(t,e,a){const i={product_variants:[{id:t,count:e}]};return a&&(i.form_attributes=u(a)),i},exports.transformApiResponse=l,exports.transformCartResponse=function(t){const e=l(t);return e.items&&Array.isArray(e.items)&&(e.items=e.items.map(t=>({...t,product:{variantId:t.variant?.id||t.product?.variantId,productId:t.variant?.product?.id||t.product?.productId,name:t.name||t.product?.name,image:t.image||t.product?.image,attributes:t.attributes||t.product?.attributes||[],hasMaxOrder:t.product?.hasMaxOrder||!1,maxOrderQuantity:t.product?.maxOrderQuantity,minOrderQuantity:t.product?.minOrderQuantity}}))),e},exports.transformCreateCartInput=function(t){const e={product_variants:t.productVariants?.map(t=>({id:t.id||t.variantId,count:t.count||t.quantity,form_attributes:t.formAttributes?u(t.formAttributes):void 0}))||[]};return t.coupon&&(e.coupon=t.coupon),e},exports.transformInvoiceResponse=function(t){const e=l(t);return e.items&&Array.isArray(e.items)&&(e.items=e.items.map(t=>({...t,discount:t.discount||(t.originalPrice?t.originalPrice-t.unitPrice:0)}))),e},exports.transformProductListResponse=A,exports.transformRequestKeys=u,exports.transformResponseKeys=p,exports.transformShippingAddressInput=function(t){return{shipping_address:u(t)}},exports.users=Et,exports.visits=$t,exports.wallet=kt;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|