@nextblock-cms/ecom 0.15.8 → 0.15.10
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/index.cjs.js +1 -1
- package/index.d.ts +1 -0
- package/index.es.js +94 -90
- package/lib/PaymentReadinessProvider.cjs.js +1 -0
- package/lib/PaymentReadinessProvider.d.ts +26 -0
- package/lib/PaymentReadinessProvider.es.js +34 -0
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +51 -31
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +369 -360
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.d.ts +8 -0
- package/lib/components/ProductDetailsLayout.es.js +196 -194
- package/lib/pages/cms/payments/actions.cjs.js +1 -1
- package/lib/pages/cms/payments/actions.es.js +16 -16
- package/lib/pages/cms/payments/queries.cjs.js +1 -1
- package/lib/pages/cms/payments/queries.d.ts +32 -1
- package/lib/pages/cms/payments/queries.es.js +50 -13
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +271 -267
- package/lib/payment-config.es.js +5 -5
- package/lib/providers/freemius.cjs.js +2 -2
- package/lib/providers/freemius.es.js +176 -169
- package/lib/providers/stripe.cjs.js +1 -1
- package/lib/providers/stripe.es.js +60 -51
- package/lib/stripe/client.cjs.js +1 -1
- package/lib/stripe/client.d.ts +9 -0
- package/lib/stripe/client.es.js +17 -7
- package/package.json +4 -4
- package/server.cjs.js +1 -1
- package/server.d.ts +1 -1
- package/server.es.js +184 -180
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const pe=require("../stripe/client.cjs.js"),ke=require("@supabase/supabase-js"),Pe=require("../countries.cjs.js"),be=require("../customer.cjs.js"),O=require("../coupon-server.cjs.js"),Te=require("../coupons.cjs.js"),de=require("../customer-addresses.cjs.js"),T=require("../inventory-settings.cjs.js"),w=require("../tax-calculation.cjs.js"),v=require("../currency.cjs.js"),we=require("../order-tax-details.cjs.js"),Ae=require("../types.cjs.js"),Ie=require("../variation-utils.cjs.js"),De=Pe.countries.map(r=>r.code),Me=new Set(["bg","cs","da","de","el","en","en-GB","es","es-419","et","fi","fil","fr","hr","hu","id","it","ja","ko","lt","lv","ms","mt","nb","nl","pl","pt","pt-BR","ro","ru","sk","sl","sv","th","tr","vi","zh","zh-HK","zh-TW"]);function _e(r){if(r)return{line1:r.line1||void 0,line2:r.line2||void 0,city:r.city||void 0,state:r.state||void 0,postal_code:r.postal_code||void 0,country:r.country_code||void 0}}function Ue(r){const i=r?.trim().replace("_","-");if(!i)return;const l=[i,i.toLowerCase(),i.split("-")[0].toLowerCase()];for(const d of l)if(Me.has(d))return d}function Le(r,i){return Ie.resolveTranslatedText(r.name,r.name_translations||null,i)}async function Fe(r){if(!r.email)return null;const i=await pe.getStripeClient(),l=_e(r.shippingAddress),d=r.shippingAddress?.recipient_name||r.billingAddress?.recipient_name||void 0,_={email:r.email,name:r.billingAddress?.recipient_name||r.shippingAddress?.recipient_name||void 0,phone:r.phone||void 0,address:_e(r.billingAddress),metadata:r.userId?{userId:r.userId}:void 0,...l&&d?{shipping:{name:d,phone:r.phone||void 0,address:l}}:{}};try{const p=(await i.customers.list({email:r.email,limit:1})).data[0];return p?(await i.customers.update(p.id,_),p.id):(await i.customers.create(_)).id}catch(u){return console.error("Failed to upsert Stripe customer for checkout prefill:",u),null}}class Re{getProviderName(){return"Stripe"}async createCheckoutSession({items:i,customerEmail:l,customerPhone:d,userId:_,billingAddress:u,shippingAddress:p,shippingMethodId:U,currencyCode:me,locale:B,couponCode:z,couponContextItems:L}){const he=await pe.getStripeClient(),K=process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL,Q=process.env.SUPABASE_SERVICE_ROLE_KEY||process.env.SUPABASE_SECRET_KEY;if(!K||!Q)return console.error("Missing Supabase credentials for checkout (Service Key required)."),{error:"Internal Server Error",url:null};const a=ke.createClient(K,Q),$=process.env.NEXT_PUBLIC_URL||"http://localhost:4200",X=i.some(e=>!Ae.isDigitalItem(e));if(!i.length)return{error:"Cart is empty",url:null};const{data:ve,error:H}=await a.from("currencies").select("code, symbol, exchange_rate, is_default, is_active, auto_sync_product_prices, auto_update_exchange_rate, exchange_rate_source, exchange_rate_updated_at, rounding_mode, rounding_increment, rounding_charm_amount").eq("is_active",!0).order("code",{ascending:!0}),g=ve??[];if(H||g.length===0)return console.error("Error fetching currencies for checkout:",H),{error:"Failed to resolve store currencies",url:null};const j=v.getDefaultCurrency(g),m=g.find(e=>e.code===(me||"").toUpperCase())??j,F=m.code.toLowerCase(),G=await T.getEcommerceInventorySettings(a),fe=i.map(e=>e.product_id),V=i.map(e=>e.variant_id).filter(e=>!!e),{data:W,error:Y}=await a.from("products").select("id, title, sku, price, prices, sale_price, sale_prices, sale_start_at, sale_end_at, scheduled_price, scheduled_prices, scheduled_price_at, stock, is_taxable").in("id",fe);if(Y||!W)return console.error("Error fetching products for validation:",Y),{error:"Failed to validate product prices",url:null};const{data:ye,error:J}=V.length?await a.from("product_variants").select("id, product_id, sku, price, prices, sale_price, sale_prices, sale_start_at, sale_end_at, scheduled_price, scheduled_prices, scheduled_price_at, stock_quantity").in("id",V):{data:[],error:null};if(J)return console.error("Error fetching variants for validation:",J),{error:"Failed to validate product variants",url:null};const Z=new Map(W.map(e=>[e.id,e])),ee=new Map((ye||[]).map(e=>[e.id,e])),R=new Set,A=new Map;for(const e of i){const t=Z.get(e.product_id);if(!t)continue;const n=(e.variant_id?ee.get(e.variant_id):null)?.sku||t.sku;n&&(R.add(n),A.set(n,(A.get(n)??0)+e.quantity))}const{data:ge,error:te}=R.size?await a.from("inventory_items").select("sku, quantity").in("sku",[...R]):{data:[],error:null};if(te)return console.error("Error fetching SKU inventory for validation:",te),{error:"Failed to validate SKU inventory",url:null};const I=new Map((ge||[]).map(e=>[e.sku,Math.max(0,e.quantity??0)])),S=[],re=[],oe=[];let f=0,C=0,c=null;if(z){const e=await O.getCouponQuote({client:a,code:z,items:L&&L.length>0?L:i,currencyCode:m.code});if(!e.success)return{error:e.error,errorKey:e.errorKey,errorStatus:400,url:null};c=e.quote}const Se=O.getQuoteLineDiscountMap(c),Ce=e=>{const t=e.unitAmount*e.quantity,y=Math.max(0,t-e.lineDiscount);if(y<=0)return;const n=Math.floor(y/e.quantity),P=y-n*e.quantity,x=(b,k)=>{k<=0||b<=0||S.push({price_data:{currency:e.currency,product_data:{name:e.name,tax_code:w.getStripeTaxCodeForProduct(e.isTaxable),metadata:{productId:e.productId,variantId:e.variantId||""}},tax_behavior:"exclusive",unit_amount:b},quantity:k})};x(n,e.quantity-P),x(n+1,P)};for(const e of i){const t=Z.get(e.product_id);if(!t)return console.warn(`Product ${e.product_id} not found in DB.`),{url:null,...T.createInventoryUnavailableError(e.title)};const y=v.resolveEffectivePriceForCurrency({prices:v.normalizePriceMap(t.prices),salePrices:t.sale_prices||{},fallbackPrice:t.price,fallbackSalePrice:t.sale_price,saleStartAt:t.sale_start_at,saleEndAt:t.sale_end_at,scheduledPrice:t.scheduled_price,scheduledPrices:v.normalizePriceMap(t.scheduled_prices),scheduledPriceAt:t.scheduled_price_at,currencyCode:m.code,currencies:g});let n=y.sale_price??y.price,P=t.title,x=null;if(e.variant_id){const o=ee.get(e.variant_id);if(!o||o.product_id!==e.product_id)return{url:null,...T.createInventoryUnavailableError(e.title)};const M=A.get(o.sku)??e.quantity,ue=I.has(o.sku)?I.get(o.sku)??0:Math.max(0,o.stock_quantity??0);if(G.trackQuantities&&M>ue)return{url:null,...T.createInventoryInsufficientError(e.title,ue)};const le=v.resolveEffectivePriceForCurrency({prices:v.normalizePriceMap(o.prices),salePrices:o.sale_prices||{},fallbackPrice:o.price,fallbackSalePrice:o.sale_price,saleStartAt:o.sale_start_at,saleEndAt:o.sale_end_at,scheduledPrice:o.scheduled_price,scheduledPrices:v.normalizePriceMap(o.scheduled_prices),scheduledPriceAt:o.scheduled_price_at,currencyCode:m.code,currencies:g});n=le.sale_price??le.price,x=o.id,P=e.variant_label?`${t.title} - ${e.variant_label}`:`${t.title} - ${o.sku}`}else{const o=A.get(t.sku)??e.quantity,M=I.has(t.sku)?I.get(t.sku)??0:Math.max(0,t.stock??0);if(G.trackQuantities&&o>M)return{url:null,...T.createInventoryInsufficientError(e.title,M)}}const b=t.is_taxable??!0;if(n<0)return{error:"A product variation produced an invalid price.",url:null};const k=Math.min(n*e.quantity,Se.get(Te.getCartLineCouponKey(e))??0);Ce({name:P,currency:F,productId:t.id,variantId:x,isTaxable:b,unitAmount:n,quantity:e.quantity,lineDiscount:k}),f+=n*e.quantity,C+=k,oe.push({product_id:t.id,quantity:e.quantity,price_at_purchase:n,variant_id:x}),re.push({product_id:t.id,quantity:e.quantity,unit_amount:n,discount_amount:k,is_taxable:b})}if(S.length===0&&C>=f)return{error:"This coupon would reduce the Stripe order to zero. Use a smaller discount for Stripe checkout.",errorKey:"ecommerce.coupon_zero_total_not_supported",errorStatus:400,url:null};if(S.length===0)return{error:"No valid items in cart",url:null};let h=0,N=null;if(U){const{data:e,error:t}=await a.from("shipping_zone_methods").select("id, name, name_translations, cost_amount, cost_currency").eq("id",U).single();if(t)return console.error("Failed to load shipping method:",t),{error:"Failed to load shipping method",url:null};h=v.convertMinorUnitAmount({amount:e.cost_amount??0,fromCurrencyCode:e.cost_currency||j.code,toCurrencyCode:m.code,currencies:g}),N=Le(e,B)}const ie=X?p??u:u;let s;try{s=await w.calculateCheckoutTaxes(a,{items:re,destination:{country_code:ie?.country_code,state:ie?.state}})}catch(e){return console.error("Failed to calculate checkout taxes:",e),{error:"Failed to calculate taxes",url:null}}h>0&&N&&S.push({price_data:{currency:F,product_data:{name:N,tax_code:s.enabled&&s.mode==="automatic"?w.STRIPE_TAX_CODE_SHIPPING:w.STRIPE_TAX_CODE_NONTAXABLE},tax_behavior:"exclusive",unit_amount:h},quantity:1});const E=s.enabled&&s.mode==="manual"&&!s.isPendingExternalCalculation?s.amount:0;E>0&&S.push({price_data:{currency:F,product_data:{name:"Tax",tax_code:w.STRIPE_TAX_CODE_NONTAXABLE},tax_behavior:"exclusive",unit_amount:E},quantity:1});const Ee=be.normalizeOrderCustomerDetails({email:l,phone:d,name:u?.recipient_name,billing:u,shipping:p}),ae=m.code,qe=we.buildOrderTaxDetailsFromCalculation({calculation:s,subtotal:f,shippingTotal:h,total:Math.max(0,f-C)+h+E,currency:ae}),xe=Math.max(0,f-C)+h+E,{data:ne,error:ce}=await a.from("orders").insert({status:"pending",total:xe,currency:ae,exchange_rate_at_purchase:m.exchange_rate,subtotal:f,shipping_total:h,tax_total:E,tax_details:qe,coupon_id:c?.couponId??null,coupon_code:c?.code??null,discount_total:C,discount_details:c?{code:c.code,discount_type:c.discountType,discount_amount:c.discountAmount,provider:"stripe",provider_discounts:c.providerDiscounts,line_discounts:c.lineDiscounts}:null,provider:"stripe",user_id:_,customer_details:Ee}).select("id").single();if(ce||!ne)return console.error("Failed to create pending order:",ce),{error:"Failed to initiate order",url:null};const q=ne.id,{error:se}=await a.from("order_items").insert(oe.map(e=>({order_id:q,product_id:e.product_id,variant_id:e.variant_id??null,quantity:e.quantity,price_at_purchase:e.price_at_purchase})));if(se)return console.error("Failed to insert order items:",se),await a.from("orders").update({status:"failed"}).eq("id",q),{error:"Failed to record order items",url:null};if(_)try{await de.upsertDefaultUserAddresses({userId:_,billingAddress:u,shippingAddress:p,client:a}),await de.fillMissingUserProfileCheckoutDetails({userId:_,fullName:u?.recipient_name??p?.recipient_name??null,phone:d,client:a})}catch(e){console.error("Failed to sync checkout profile defaults before checkout:",e)}c&&await O.recordCouponRedemption({client:a,quote:c,orderId:q,provider:"stripe",discountTotal:C,userId:_,customerEmail:l,metadata:{currency:m.code,subtotal:f,shipping_total:h,tax_total:E}});const D=await Fe({email:l,phone:d,userId:_,billingAddress:u,shippingAddress:p});try{const e=await he.checkout.sessions.create({mode:"payment",success_url:`${$}/checkout/success?session_id={CHECKOUT_SESSION_ID}`,cancel_url:`${$}/checkout`,locale:Ue(B),line_items:S,automatic_tax:s.enabled&&s.mode==="automatic"?{enabled:!0}:void 0,billing_address_collection:"auto",customer:D||void 0,customer_email:D?void 0:l||void 0,customer_creation:D?void 0:"if_required",customer_update:D?{name:"auto",address:"auto",shipping:"auto"}:void 0,shipping_address_collection:X?{allowed_countries:De}:void 0,metadata:{orderId:q,taxMode:s.mode,currencyCode:m.code,couponCode:c?.code||""}}),{error:t}=await a.from("orders").update({stripe_session_id:e.id}).eq("id",q);return t&&console.error("Failed to save Stripe session ID on order:",t),{url:e.url}}catch(e){return console.error("Stripe session creation failed:",e),await a.from("orders").update({status:"failed"}).eq("id",q),{error:e.message,url:null}}}}exports.StripeProvider=Re;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _e=require("../stripe/client.cjs.js"),xe=require("@supabase/supabase-js"),Pe=require("../countries.cjs.js"),be=require("../customer.cjs.js"),O=require("../coupon-server.cjs.js"),we=require("../coupons.cjs.js"),de=require("../customer-addresses.cjs.js"),w=require("../inventory-settings.cjs.js"),T=require("../tax-calculation.cjs.js"),v=require("../currency.cjs.js"),Te=require("../order-tax-details.cjs.js"),Ae=require("../types.cjs.js"),Ie=require("../variation-utils.cjs.js"),De=Pe.countries.map(t=>t.code),Me=new Set(["bg","cs","da","de","el","en","en-GB","es","es-419","et","fi","fil","fr","hr","hu","id","it","ja","ko","lt","lv","ms","mt","nb","nl","pl","pt","pt-BR","ro","ru","sk","sl","sv","th","tr","vi","zh","zh-HK","zh-TW"]);function pe(t){if(t)return{line1:t.line1||void 0,line2:t.line2||void 0,city:t.city||void 0,state:t.state||void 0,postal_code:t.postal_code||void 0,country:t.country_code||void 0}}function Ue(t){const i=t?.trim().replace("_","-");if(!i)return;const l=[i,i.toLowerCase(),i.split("-")[0].toLowerCase()];for(const d of l)if(Me.has(d))return d}function Le(t,i){return Ie.resolveTranslatedText(t.name,t.name_translations||null,i)}async function Fe(t){if(!t.email)return null;const i=await _e.getStripeClient(),l=pe(t.shippingAddress),d=t.shippingAddress?.recipient_name||t.billingAddress?.recipient_name||void 0,p={email:t.email,name:t.billingAddress?.recipient_name||t.shippingAddress?.recipient_name||void 0,phone:t.phone||void 0,address:pe(t.billingAddress),metadata:t.userId?{userId:t.userId}:void 0,...l&&d?{shipping:{name:d,phone:t.phone||void 0,address:l}}:{}};try{const _=(await i.customers.list({email:t.email,limit:1})).data[0];return _?(await i.customers.update(_.id,p),_.id):(await i.customers.create(p)).id}catch(u){return console.error("Failed to upsert Stripe customer for checkout prefill:",u),null}}class Re{getProviderName(){return"Stripe"}async createCheckoutSession({items:i,customerEmail:l,customerPhone:d,userId:p,billingAddress:u,shippingAddress:_,shippingMethodId:U,currencyCode:me,locale:B,couponCode:K,couponContextItems:L}){const he=await _e.getStripeClient(),z=process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL,Q=process.env.SUPABASE_SERVICE_ROLE_KEY||process.env.SUPABASE_SECRET_KEY;if(!z||!Q)return console.error("Missing Supabase credentials for checkout (Service Key required)."),{error:"Internal Server Error",url:null};const a=xe.createClient(z,Q),$=process.env.NEXT_PUBLIC_URL||"http://localhost:4200",X=i.some(e=>!Ae.isDigitalItem(e));if(!i.length)return{error:"Cart is empty",url:null};const{data:ve,error:H}=await a.from("currencies").select("code, symbol, exchange_rate, is_default, is_active, auto_sync_product_prices, auto_update_exchange_rate, exchange_rate_source, exchange_rate_updated_at, rounding_mode, rounding_increment, rounding_charm_amount").eq("is_active",!0).order("code",{ascending:!0}),g=ve??[];if(H||g.length===0)return console.error("Error fetching currencies for checkout:",H),{error:"Failed to resolve store currencies",url:null};const j=v.getDefaultCurrency(g),m=g.find(e=>e.code===(me||"").toUpperCase())??j,F=m.code.toLowerCase(),G=await w.getEcommerceInventorySettings(a),fe=i.map(e=>e.product_id),V=i.map(e=>e.variant_id).filter(e=>!!e),{data:W,error:Y}=await a.from("products").select("id, title, sku, price, prices, sale_price, sale_prices, sale_start_at, sale_end_at, scheduled_price, scheduled_prices, scheduled_price_at, stock, is_taxable").in("id",fe);if(Y||!W)return console.error("Error fetching products for validation:",Y),{error:"Failed to validate product prices",url:null};const{data:ye,error:J}=V.length?await a.from("product_variants").select("id, product_id, sku, price, prices, sale_price, sale_prices, sale_start_at, sale_end_at, scheduled_price, scheduled_prices, scheduled_price_at, stock_quantity").in("id",V):{data:[],error:null};if(J)return console.error("Error fetching variants for validation:",J),{error:"Failed to validate product variants",url:null};const Z=new Map(W.map(e=>[e.id,e])),ee=new Map((ye||[]).map(e=>[e.id,e])),R=new Set,A=new Map;for(const e of i){const r=Z.get(e.product_id);if(!r)continue;const n=(e.variant_id?ee.get(e.variant_id):null)?.sku||r.sku;n&&(R.add(n),A.set(n,(A.get(n)??0)+e.quantity))}const{data:ge,error:re}=R.size?await a.from("inventory_items").select("sku, quantity").in("sku",[...R]):{data:[],error:null};if(re)return console.error("Error fetching SKU inventory for validation:",re),{error:"Failed to validate SKU inventory",url:null};const I=new Map((ge||[]).map(e=>[e.sku,Math.max(0,e.quantity??0)])),S=[],te=[],oe=[];let f=0,C=0,c=null;if(K){const e=await O.getCouponQuote({client:a,code:K,items:L&&L.length>0?L:i,currencyCode:m.code});if(!e.success)return{error:e.error,errorKey:e.errorKey,errorStatus:400,url:null};c=e.quote}const Se=O.getQuoteLineDiscountMap(c),Ce=e=>{const r=e.unitAmount*e.quantity,y=Math.max(0,r-e.lineDiscount);if(y<=0)return;const n=Math.floor(y/e.quantity),P=y-n*e.quantity,q=(b,x)=>{x<=0||b<=0||S.push({price_data:{currency:e.currency,product_data:{name:e.name,tax_code:T.getStripeTaxCodeForProduct(e.isTaxable),metadata:{productId:e.productId,variantId:e.variantId||""}},tax_behavior:"exclusive",unit_amount:b},quantity:x})};q(n,e.quantity-P),q(n+1,P)};for(const e of i){const r=Z.get(e.product_id);if(!r)return console.warn(`Product ${e.product_id} not found in DB.`),{url:null,...w.createInventoryUnavailableError(e.title)};const y=v.resolveEffectivePriceForCurrency({prices:v.normalizePriceMap(r.prices),salePrices:r.sale_prices||{},fallbackPrice:r.price,fallbackSalePrice:r.sale_price,saleStartAt:r.sale_start_at,saleEndAt:r.sale_end_at,scheduledPrice:r.scheduled_price,scheduledPrices:v.normalizePriceMap(r.scheduled_prices),scheduledPriceAt:r.scheduled_price_at,currencyCode:m.code,currencies:g});let n=y.sale_price??y.price,P=r.title,q=null;if(e.variant_id){const o=ee.get(e.variant_id);if(!o||o.product_id!==e.product_id)return{url:null,...w.createInventoryUnavailableError(e.title)};const M=A.get(o.sku)??e.quantity,ue=I.has(o.sku)?I.get(o.sku)??0:Math.max(0,o.stock_quantity??0);if(G.trackQuantities&&M>ue)return{url:null,...w.createInventoryInsufficientError(e.title,ue)};const le=v.resolveEffectivePriceForCurrency({prices:v.normalizePriceMap(o.prices),salePrices:o.sale_prices||{},fallbackPrice:o.price,fallbackSalePrice:o.sale_price,saleStartAt:o.sale_start_at,saleEndAt:o.sale_end_at,scheduledPrice:o.scheduled_price,scheduledPrices:v.normalizePriceMap(o.scheduled_prices),scheduledPriceAt:o.scheduled_price_at,currencyCode:m.code,currencies:g});n=le.sale_price??le.price,q=o.id,P=e.variant_label?`${r.title} - ${e.variant_label}`:`${r.title} - ${o.sku}`}else{const o=A.get(r.sku)??e.quantity,M=I.has(r.sku)?I.get(r.sku)??0:Math.max(0,r.stock??0);if(G.trackQuantities&&o>M)return{url:null,...w.createInventoryInsufficientError(e.title,M)}}const b=r.is_taxable??!0;if(n<0)return{error:"A product variation produced an invalid price.",url:null};const x=Math.min(n*e.quantity,Se.get(we.getCartLineCouponKey(e))??0);Ce({name:P,currency:F,productId:r.id,variantId:q,isTaxable:b,unitAmount:n,quantity:e.quantity,lineDiscount:x}),f+=n*e.quantity,C+=x,oe.push({product_id:r.id,quantity:e.quantity,price_at_purchase:n,variant_id:q}),te.push({product_id:r.id,quantity:e.quantity,unit_amount:n,discount_amount:x,is_taxable:b})}if(S.length===0&&C>=f)return{error:"This coupon would reduce the Stripe order to zero. Use a smaller discount for Stripe checkout.",errorKey:"ecommerce.coupon_zero_total_not_supported",errorStatus:400,url:null};if(S.length===0)return{error:"No valid items in cart",url:null};let h=0,N=null;if(U){const{data:e,error:r}=await a.from("shipping_zone_methods").select("id, name, name_translations, cost_amount, cost_currency").eq("id",U).single();if(r)return console.error("Failed to load shipping method:",r),{error:"Failed to load shipping method",url:null};h=v.convertMinorUnitAmount({amount:e.cost_amount??0,fromCurrencyCode:e.cost_currency||j.code,toCurrencyCode:m.code,currencies:g}),N=Le(e,B)}const ie=X?_??u:u;let s;try{s=await T.calculateCheckoutTaxes(a,{items:te,destination:{country_code:ie?.country_code,state:ie?.state}})}catch(e){return console.error("Failed to calculate checkout taxes:",e),{error:"Failed to calculate taxes",url:null}}h>0&&N&&S.push({price_data:{currency:F,product_data:{name:N,tax_code:s.enabled&&s.mode==="automatic"?T.STRIPE_TAX_CODE_SHIPPING:T.STRIPE_TAX_CODE_NONTAXABLE},tax_behavior:"exclusive",unit_amount:h},quantity:1});const E=s.enabled&&s.mode==="manual"&&!s.isPendingExternalCalculation?s.amount:0;E>0&&S.push({price_data:{currency:F,product_data:{name:"Tax",tax_code:T.STRIPE_TAX_CODE_NONTAXABLE},tax_behavior:"exclusive",unit_amount:E},quantity:1});const Ee=be.normalizeOrderCustomerDetails({email:l,phone:d,name:u?.recipient_name,billing:u,shipping:_}),ae=m.code,ke=Te.buildOrderTaxDetailsFromCalculation({calculation:s,subtotal:f,shippingTotal:h,total:Math.max(0,f-C)+h+E,currency:ae}),qe=Math.max(0,f-C)+h+E,{data:ne,error:ce}=await a.from("orders").insert({status:"pending",total:qe,currency:ae,exchange_rate_at_purchase:m.exchange_rate,subtotal:f,shipping_total:h,tax_total:E,tax_details:ke,coupon_id:c?.couponId??null,coupon_code:c?.code??null,discount_total:C,discount_details:c?{code:c.code,discount_type:c.discountType,discount_amount:c.discountAmount,provider:"stripe",provider_discounts:c.providerDiscounts,line_discounts:c.lineDiscounts}:null,provider:"stripe",user_id:p,customer_details:Ee}).select("id").single();if(ce||!ne)return console.error("Failed to create pending order:",ce),{error:"Failed to initiate order",url:null};const k=ne.id,{error:se}=await a.from("order_items").insert(oe.map(e=>({order_id:k,product_id:e.product_id,variant_id:e.variant_id??null,quantity:e.quantity,price_at_purchase:e.price_at_purchase})));if(se)return console.error("Failed to insert order items:",se),await a.from("orders").update({status:"failed"}).eq("id",k),{error:"Failed to record order items",url:null};if(p)try{await de.upsertDefaultUserAddresses({userId:p,billingAddress:u,shippingAddress:_,client:a}),await de.fillMissingUserProfileCheckoutDetails({userId:p,fullName:u?.recipient_name??_?.recipient_name??null,phone:d,client:a})}catch(e){console.error("Failed to sync checkout profile defaults before checkout:",e)}c&&await O.recordCouponRedemption({client:a,quote:c,orderId:k,provider:"stripe",discountTotal:C,userId:p,customerEmail:l,metadata:{currency:m.code,subtotal:f,shipping_total:h,tax_total:E}});const D=await Fe({email:l,phone:d,userId:p,billingAddress:u,shippingAddress:_});try{const e=await he.checkout.sessions.create({mode:"payment",success_url:`${$}/checkout/success?session_id={CHECKOUT_SESSION_ID}`,cancel_url:`${$}/checkout`,locale:Ue(B),line_items:S,automatic_tax:s.enabled&&s.mode==="automatic"?{enabled:!0}:void 0,billing_address_collection:"auto",customer:D||void 0,customer_email:D?void 0:l||void 0,customer_creation:D?void 0:"if_required",customer_update:D?{name:"auto",address:"auto",shipping:"auto"}:void 0,shipping_address_collection:X?{allowed_countries:De}:void 0,metadata:{orderId:k,taxMode:s.mode,currencyCode:m.code,couponCode:c?.code||""}}),{error:r}=await a.from("orders").update({stripe_session_id:e.id}).eq("id",k);return r&&console.error("Failed to save Stripe session ID on order:",r),{url:e.url}}catch(e){return console.error("Stripe session creation failed:",e),await a.from("orders").update({status:"failed"}).eq("id",k),e?.name==="StripeNotConfiguredError"||e?.type==="StripeAuthenticationError"?{error:"This store is not able to take payments right now. Please contact the seller to complete your purchase.",errorKey:"ecommerce.checkout_payments_unavailable",errorStatus:503,url:null}:{error:"Something went wrong while preparing your checkout. Please try again.",errorKey:"ecommerce.checkout_internal_server_error",url:null}}}}exports.StripeProvider=Re;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { getStripeClient as _e } from "../stripe/client.es.js";
|
|
2
|
-
import { createClient as
|
|
3
|
-
import { countries as
|
|
4
|
-
import { normalizeOrderCustomerDetails as
|
|
5
|
-
import { getCouponQuote as
|
|
2
|
+
import { createClient as we } from "@supabase/supabase-js";
|
|
3
|
+
import { countries as Pe } from "../countries.es.js";
|
|
4
|
+
import { normalizeOrderCustomerDetails as be } from "../customer.es.js";
|
|
5
|
+
import { getCouponQuote as qe, getQuoteLineDiscountMap as Te, recordCouponRedemption as Ae } from "../coupon-server.es.js";
|
|
6
6
|
import { getCartLineCouponKey as Ie } from "../coupons.es.js";
|
|
7
7
|
import { upsertDefaultUserAddresses as De, fillMissingUserProfileCheckoutDetails as Ue } from "../customer-addresses.es.js";
|
|
8
8
|
import { getEcommerceInventorySettings as Le, createInventoryUnavailableError as se, createInventoryInsufficientError as ue } from "../inventory-settings.es.js";
|
|
9
9
|
import { calculateCheckoutTaxes as Me, STRIPE_TAX_CODE_SHIPPING as Fe, STRIPE_TAX_CODE_NONTAXABLE as le, getStripeTaxCodeForProduct as Re } from "../tax-calculation.es.js";
|
|
10
|
-
import { getDefaultCurrency as Ne, resolveEffectivePriceForCurrency as de, normalizePriceMap as I, convertMinorUnitAmount as
|
|
11
|
-
import { buildOrderTaxDetailsFromCalculation as
|
|
12
|
-
import { isDigitalItem as
|
|
10
|
+
import { getDefaultCurrency as Ne, resolveEffectivePriceForCurrency as de, normalizePriceMap as I, convertMinorUnitAmount as Ke } from "../currency.es.js";
|
|
11
|
+
import { buildOrderTaxDetailsFromCalculation as Be } from "../order-tax-details.es.js";
|
|
12
|
+
import { isDigitalItem as Oe } from "../types.es.js";
|
|
13
13
|
import { resolveTranslatedText as Qe } from "../variation-utils.es.js";
|
|
14
|
-
const ze =
|
|
14
|
+
const ze = Pe.map((r) => r.code), $e = /* @__PURE__ */ new Set([
|
|
15
15
|
"bg",
|
|
16
16
|
"cs",
|
|
17
17
|
"da",
|
|
@@ -123,10 +123,10 @@ class ct {
|
|
|
123
123
|
couponCode: N,
|
|
124
124
|
couponContextItems: U
|
|
125
125
|
}) {
|
|
126
|
-
const he = await _e(),
|
|
127
|
-
if (!
|
|
126
|
+
const he = await _e(), K = process.env.NEXT_PUBLIC_SUPABASE_URL || process.env.SUPABASE_URL, B = process.env.SUPABASE_SERVICE_ROLE_KEY || process.env.SUPABASE_SECRET_KEY;
|
|
127
|
+
if (!K || !B)
|
|
128
128
|
return console.error("Missing Supabase credentials for checkout (Service Key required)."), { error: "Internal Server Error", url: null };
|
|
129
|
-
const a =
|
|
129
|
+
const a = we(K, B), O = process.env.NEXT_PUBLIC_URL || "http://localhost:4200", Q = i.some((e) => !Oe(e));
|
|
130
130
|
if (!i.length)
|
|
131
131
|
return { error: "Cart is empty", url: null };
|
|
132
132
|
const { data: fe, error: z } = await a.from("currencies").select(
|
|
@@ -140,21 +140,21 @@ class ct {
|
|
|
140
140
|
const { data: ye, error: W } = H.length ? await a.from("product_variants").select("id, product_id, sku, price, prices, sale_price, sale_prices, sale_start_at, sale_end_at, scheduled_price, scheduled_prices, scheduled_price_at, stock_quantity").in("id", H) : { data: [], error: null };
|
|
141
141
|
if (W)
|
|
142
142
|
return console.error("Error fetching variants for validation:", W), { error: "Failed to validate product variants", url: null };
|
|
143
|
-
const Y = new Map(G.map((e) => [e.id, e])), j = new Map((ye || []).map((e) => [e.id, e])), M = /* @__PURE__ */ new Set(),
|
|
143
|
+
const Y = new Map(G.map((e) => [e.id, e])), j = new Map((ye || []).map((e) => [e.id, e])), M = /* @__PURE__ */ new Set(), b = /* @__PURE__ */ new Map();
|
|
144
144
|
for (const e of i) {
|
|
145
145
|
const t = Y.get(e.product_id);
|
|
146
146
|
if (!t)
|
|
147
147
|
continue;
|
|
148
148
|
const n = (e.variant_id ? j.get(e.variant_id) : null)?.sku || t.sku;
|
|
149
|
-
n && (M.add(n),
|
|
149
|
+
n && (M.add(n), b.set(
|
|
150
150
|
n,
|
|
151
|
-
(
|
|
151
|
+
(b.get(n) ?? 0) + e.quantity
|
|
152
152
|
));
|
|
153
153
|
}
|
|
154
154
|
const { data: ge, error: J } = M.size ? await a.from("inventory_items").select("sku, quantity").in("sku", [...M]) : { data: [], error: null };
|
|
155
155
|
if (J)
|
|
156
156
|
return console.error("Error fetching SKU inventory for validation:", J), { error: "Failed to validate SKU inventory", url: null };
|
|
157
|
-
const
|
|
157
|
+
const q = new Map(
|
|
158
158
|
(ge || []).map((e) => [
|
|
159
159
|
e.sku,
|
|
160
160
|
Math.max(0, e.quantity ?? 0)
|
|
@@ -162,7 +162,7 @@ class ct {
|
|
|
162
162
|
), g = [], Z = [], ee = [];
|
|
163
163
|
let f = 0, S = 0, c = null;
|
|
164
164
|
if (N) {
|
|
165
|
-
const e = await
|
|
165
|
+
const e = await qe({
|
|
166
166
|
client: a,
|
|
167
167
|
code: N,
|
|
168
168
|
items: U && U.length > 0 ? U : i,
|
|
@@ -181,8 +181,8 @@ class ct {
|
|
|
181
181
|
const t = e.unitAmount * e.quantity, v = Math.max(0, t - e.lineDiscount);
|
|
182
182
|
if (v <= 0)
|
|
183
183
|
return;
|
|
184
|
-
const n = Math.floor(v / e.quantity),
|
|
185
|
-
|
|
184
|
+
const n = Math.floor(v / e.quantity), w = v - n * e.quantity, E = (P, x) => {
|
|
185
|
+
x <= 0 || P <= 0 || g.push({
|
|
186
186
|
price_data: {
|
|
187
187
|
currency: e.currency,
|
|
188
188
|
product_data: {
|
|
@@ -194,12 +194,12 @@ class ct {
|
|
|
194
194
|
}
|
|
195
195
|
},
|
|
196
196
|
tax_behavior: "exclusive",
|
|
197
|
-
unit_amount:
|
|
197
|
+
unit_amount: P
|
|
198
198
|
},
|
|
199
|
-
quantity:
|
|
199
|
+
quantity: x
|
|
200
200
|
});
|
|
201
201
|
};
|
|
202
|
-
|
|
202
|
+
E(n, e.quantity - w), E(n + 1, w);
|
|
203
203
|
};
|
|
204
204
|
for (const e of i) {
|
|
205
205
|
const t = Y.get(e.product_id);
|
|
@@ -221,7 +221,7 @@ class ct {
|
|
|
221
221
|
currencyCode: m.code,
|
|
222
222
|
currencies: y
|
|
223
223
|
});
|
|
224
|
-
let n = v.sale_price ?? v.price,
|
|
224
|
+
let n = v.sale_price ?? v.price, w = t.title, E = null;
|
|
225
225
|
if (e.variant_id) {
|
|
226
226
|
const o = j.get(e.variant_id);
|
|
227
227
|
if (!o || o.product_id !== e.product_id)
|
|
@@ -229,7 +229,7 @@ class ct {
|
|
|
229
229
|
url: null,
|
|
230
230
|
...se(e.title)
|
|
231
231
|
};
|
|
232
|
-
const A =
|
|
232
|
+
const A = b.get(o.sku) ?? e.quantity, ne = q.has(o.sku) ? q.get(o.sku) ?? 0 : Math.max(0, o.stock_quantity ?? 0);
|
|
233
233
|
if (X.trackQuantities && A > ne)
|
|
234
234
|
return {
|
|
235
235
|
url: null,
|
|
@@ -248,42 +248,42 @@ class ct {
|
|
|
248
248
|
currencyCode: m.code,
|
|
249
249
|
currencies: y
|
|
250
250
|
});
|
|
251
|
-
n = ce.sale_price ?? ce.price,
|
|
251
|
+
n = ce.sale_price ?? ce.price, E = o.id, w = e.variant_label ? `${t.title} - ${e.variant_label}` : `${t.title} - ${o.sku}`;
|
|
252
252
|
} else {
|
|
253
|
-
const o =
|
|
253
|
+
const o = b.get(t.sku) ?? e.quantity, A = q.has(t.sku) ? q.get(t.sku) ?? 0 : Math.max(0, t.stock ?? 0);
|
|
254
254
|
if (X.trackQuantities && o > A)
|
|
255
255
|
return {
|
|
256
256
|
url: null,
|
|
257
257
|
...ue(e.title, A)
|
|
258
258
|
};
|
|
259
259
|
}
|
|
260
|
-
const
|
|
260
|
+
const P = t.is_taxable ?? !0;
|
|
261
261
|
if (n < 0)
|
|
262
262
|
return { error: "A product variation produced an invalid price.", url: null };
|
|
263
|
-
const
|
|
263
|
+
const x = Math.min(
|
|
264
264
|
n * e.quantity,
|
|
265
265
|
Se.get(Ie(e)) ?? 0
|
|
266
266
|
);
|
|
267
267
|
Ce({
|
|
268
|
-
name:
|
|
268
|
+
name: w,
|
|
269
269
|
currency: L,
|
|
270
270
|
productId: t.id,
|
|
271
|
-
variantId:
|
|
272
|
-
isTaxable:
|
|
271
|
+
variantId: E,
|
|
272
|
+
isTaxable: P,
|
|
273
273
|
unitAmount: n,
|
|
274
274
|
quantity: e.quantity,
|
|
275
|
-
lineDiscount:
|
|
276
|
-
}), f += n * e.quantity, S +=
|
|
275
|
+
lineDiscount: x
|
|
276
|
+
}), f += n * e.quantity, S += x, ee.push({
|
|
277
277
|
product_id: t.id,
|
|
278
278
|
quantity: e.quantity,
|
|
279
279
|
price_at_purchase: n,
|
|
280
|
-
variant_id:
|
|
280
|
+
variant_id: E
|
|
281
281
|
}), Z.push({
|
|
282
282
|
product_id: t.id,
|
|
283
283
|
quantity: e.quantity,
|
|
284
284
|
unit_amount: n,
|
|
285
|
-
discount_amount:
|
|
286
|
-
is_taxable:
|
|
285
|
+
discount_amount: x,
|
|
286
|
+
is_taxable: P
|
|
287
287
|
});
|
|
288
288
|
}
|
|
289
289
|
if (g.length === 0 && S >= f)
|
|
@@ -300,7 +300,7 @@ class ct {
|
|
|
300
300
|
const { data: e, error: t } = await a.from("shipping_zone_methods").select("id, name, name_translations, cost_amount, cost_currency").eq("id", D).single();
|
|
301
301
|
if (t)
|
|
302
302
|
return console.error("Failed to load shipping method:", t), { error: "Failed to load shipping method", url: null };
|
|
303
|
-
h =
|
|
303
|
+
h = Ke({
|
|
304
304
|
amount: e.cost_amount ?? 0,
|
|
305
305
|
fromCurrencyCode: e.cost_currency || $.code,
|
|
306
306
|
toCurrencyCode: m.code,
|
|
@@ -345,27 +345,27 @@ class ct {
|
|
|
345
345
|
},
|
|
346
346
|
quantity: 1
|
|
347
347
|
});
|
|
348
|
-
const
|
|
348
|
+
const ke = be({
|
|
349
349
|
email: l,
|
|
350
350
|
phone: d,
|
|
351
351
|
name: u?.recipient_name,
|
|
352
352
|
billing: u,
|
|
353
353
|
shipping: _
|
|
354
|
-
}), re = m.code,
|
|
354
|
+
}), re = m.code, Ee = Be({
|
|
355
355
|
calculation: s,
|
|
356
356
|
subtotal: f,
|
|
357
357
|
shippingTotal: h,
|
|
358
358
|
total: Math.max(0, f - S) + h + C,
|
|
359
359
|
currency: re
|
|
360
|
-
}),
|
|
360
|
+
}), xe = Math.max(0, f - S) + h + C, { data: oe, error: ie } = await a.from("orders").insert({
|
|
361
361
|
status: "pending",
|
|
362
|
-
total:
|
|
362
|
+
total: xe,
|
|
363
363
|
currency: re,
|
|
364
364
|
exchange_rate_at_purchase: m.exchange_rate,
|
|
365
365
|
subtotal: f,
|
|
366
366
|
shipping_total: h,
|
|
367
367
|
tax_total: C,
|
|
368
|
-
tax_details:
|
|
368
|
+
tax_details: Ee,
|
|
369
369
|
coupon_id: c?.couponId ?? null,
|
|
370
370
|
coupon_code: c?.code ?? null,
|
|
371
371
|
discount_total: S,
|
|
@@ -379,13 +379,13 @@ class ct {
|
|
|
379
379
|
} : null,
|
|
380
380
|
provider: "stripe",
|
|
381
381
|
user_id: p,
|
|
382
|
-
customer_details:
|
|
382
|
+
customer_details: ke
|
|
383
383
|
}).select("id").single();
|
|
384
384
|
if (ie || !oe)
|
|
385
385
|
return console.error("Failed to create pending order:", ie), { error: "Failed to initiate order", url: null };
|
|
386
|
-
const
|
|
386
|
+
const k = oe.id, { error: ae } = await a.from("order_items").insert(
|
|
387
387
|
ee.map((e) => ({
|
|
388
|
-
order_id:
|
|
388
|
+
order_id: k,
|
|
389
389
|
product_id: e.product_id,
|
|
390
390
|
variant_id: e.variant_id ?? null,
|
|
391
391
|
quantity: e.quantity,
|
|
@@ -393,7 +393,7 @@ class ct {
|
|
|
393
393
|
}))
|
|
394
394
|
);
|
|
395
395
|
if (ae)
|
|
396
|
-
return console.error("Failed to insert order items:", ae), await a.from("orders").update({ status: "failed" }).eq("id",
|
|
396
|
+
return console.error("Failed to insert order items:", ae), await a.from("orders").update({ status: "failed" }).eq("id", k), { error: "Failed to record order items", url: null };
|
|
397
397
|
if (p)
|
|
398
398
|
try {
|
|
399
399
|
await De({
|
|
@@ -416,7 +416,7 @@ class ct {
|
|
|
416
416
|
c && await Ae({
|
|
417
417
|
client: a,
|
|
418
418
|
quote: c,
|
|
419
|
-
orderId:
|
|
419
|
+
orderId: k,
|
|
420
420
|
provider: "stripe",
|
|
421
421
|
discountTotal: S,
|
|
422
422
|
userId: p,
|
|
@@ -438,8 +438,8 @@ class ct {
|
|
|
438
438
|
try {
|
|
439
439
|
const e = await he.checkout.sessions.create({
|
|
440
440
|
mode: "payment",
|
|
441
|
-
success_url: `${
|
|
442
|
-
cancel_url: `${
|
|
441
|
+
success_url: `${O}/checkout/success?session_id={CHECKOUT_SESSION_ID}`,
|
|
442
|
+
cancel_url: `${O}/checkout`,
|
|
443
443
|
locale: Xe(R),
|
|
444
444
|
line_items: g,
|
|
445
445
|
automatic_tax: s.enabled && s.mode === "automatic" ? { enabled: !0 } : void 0,
|
|
@@ -456,15 +456,24 @@ class ct {
|
|
|
456
456
|
allowed_countries: ze
|
|
457
457
|
} : void 0,
|
|
458
458
|
metadata: {
|
|
459
|
-
orderId:
|
|
459
|
+
orderId: k,
|
|
460
460
|
taxMode: s.mode,
|
|
461
461
|
currencyCode: m.code,
|
|
462
462
|
couponCode: c?.code || ""
|
|
463
463
|
}
|
|
464
|
-
}), { error: t } = await a.from("orders").update({ stripe_session_id: e.id }).eq("id",
|
|
464
|
+
}), { error: t } = await a.from("orders").update({ stripe_session_id: e.id }).eq("id", k);
|
|
465
465
|
return t && console.error("Failed to save Stripe session ID on order:", t), { url: e.url };
|
|
466
466
|
} catch (e) {
|
|
467
|
-
return console.error("Stripe session creation failed:", e), await a.from("orders").update({ status: "failed" }).eq("id",
|
|
467
|
+
return console.error("Stripe session creation failed:", e), await a.from("orders").update({ status: "failed" }).eq("id", k), e?.name === "StripeNotConfiguredError" || e?.type === "StripeAuthenticationError" ? {
|
|
468
|
+
error: "This store is not able to take payments right now. Please contact the seller to complete your purchase.",
|
|
469
|
+
errorKey: "ecommerce.checkout_payments_unavailable",
|
|
470
|
+
errorStatus: 503,
|
|
471
|
+
url: null
|
|
472
|
+
} : {
|
|
473
|
+
error: "Something went wrong while preparing your checkout. Please try again.",
|
|
474
|
+
errorKey: "ecommerce.checkout_internal_server_error",
|
|
475
|
+
url: null
|
|
476
|
+
};
|
|
468
477
|
}
|
|
469
478
|
}
|
|
470
479
|
}
|
package/lib/stripe/client.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("stripe"),o=require("../payment-config.cjs.js");let r=null,t=null;class n extends Error{constructor(){super("Stripe is not configured: no secret key found in CMS → Payments or STRIPE_SECRET_KEY."),this.name="StripeNotConfiguredError"}}async function c(){const e=await o.resolveStripeSecretKey();if(!e)throw new n;return r&&t===e||(r=new i(e,{typescript:!0}),t=e),r}exports.StripeNotConfiguredError=n;exports.getStripeClient=c;
|
package/lib/stripe/client.d.ts
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
import { default as Stripe } from 'stripe';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when Stripe is asked for before any secret key has been configured. Callers
|
|
4
|
+
* that can reach a shopper should preflight with `getProviderReadiness('stripe')`
|
|
5
|
+
* instead of relying on this — it exists so a misconfiguration can never be mistaken
|
|
6
|
+
* for a Stripe outage.
|
|
7
|
+
*/
|
|
8
|
+
export declare class StripeNotConfiguredError extends Error {
|
|
9
|
+
constructor();
|
|
10
|
+
}
|
|
2
11
|
export declare function getStripeClient(): Promise<Stripe>;
|
package/lib/stripe/client.es.js
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { resolveStripeSecretKey as
|
|
3
|
-
let
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import n from "stripe";
|
|
2
|
+
import { resolveStripeSecretKey as o } from "../payment-config.es.js";
|
|
3
|
+
let r = null, t = null;
|
|
4
|
+
class i extends Error {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(
|
|
7
|
+
"Stripe is not configured: no secret key found in CMS → Payments or STRIPE_SECRET_KEY."
|
|
8
|
+
), this.name = "StripeNotConfiguredError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
async function p() {
|
|
12
|
+
const e = await o();
|
|
13
|
+
if (!e)
|
|
14
|
+
throw new i();
|
|
15
|
+
return r && t === e || (r = new n(e, { typescript: !0 }), t = e), r;
|
|
7
16
|
}
|
|
8
17
|
export {
|
|
9
|
-
|
|
18
|
+
i as StripeNotConfiguredError,
|
|
19
|
+
p as getStripeClient
|
|
10
20
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextblock-cms/ecom",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.10",
|
|
4
4
|
"license": "AGPL-3.0-or-later",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
},
|
|
12
12
|
"type": "module",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@nextblock-cms/db": "^0.15.
|
|
15
|
-
"@nextblock-cms/ui": "^0.15.
|
|
16
|
-
"@nextblock-cms/utils": "^0.15.
|
|
14
|
+
"@nextblock-cms/db": "^0.15.10",
|
|
15
|
+
"@nextblock-cms/ui": "^0.15.10",
|
|
16
|
+
"@nextblock-cms/utils": "^0.15.10",
|
|
17
17
|
"@freemius/checkout": "^1.4.1",
|
|
18
18
|
"@freemius/sdk": "^0.3.0",
|
|
19
19
|
"@hookform/resolvers": "^5.2.2",
|
package/server.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./lib/payment-config.cjs.js"),h=require("./lib/stripe/client.cjs.js"),O=require("./lib/stripe/checkout.cjs.js"),A=require("./lib/stripe/order-sync.cjs.js"),R=require("./lib/stripe/webhooks.cjs.js"),T=require("./lib/order-inventory.cjs.js"),n=require("./lib/order-tax-details.cjs.js"),i=require("./lib/invoice.cjs.js"),g=require("./lib/invoice-server.cjs.js"),l=require("./lib/customer-orders.cjs.js"),C=require("./lib/coupon-server.cjs.js"),P=require("./lib/freemius-coupons.cjs.js"),d=require("./lib/customer.cjs.js"),m=require("./lib/customer-addresses.cjs.js"),e=require("./lib/currency.cjs.js"),q=require("./lib/currency-constants.cjs.js"),p=require("./lib/currency-sync.cjs.js"),D=require("./lib/product-schema.cjs.js"),r=require("./lib/product-actions.cjs.js"),E=require("./lib/factory.cjs.js"),b=require("./lib/providers/stripe.cjs.js"),c=require("./lib/providers/freemius.cjs.js"),a=require("./lib/freemius-order-sync.cjs.js"),I=require("./lib/freemius-license.cjs.js"),s=require("./lib/pages/cms/products/actions.cjs.js"),o=require("./lib/pages/cms/products/server-actions.cjs.js"),y=require("./lib/pages/cms/payments/queries.cjs.js"),f=require("./lib/pages/cms/orders/OrdersPage.cjs.js"),x=require("./lib/pages/cms/orders/OrderDetailPage.cjs.js"),k=require("./lib/pages/cms/orders/ExportReportsDialog.cjs.js"),M=require("./lib/pages/cms/orders/export-actions.cjs.js"),v=require("./lib/pages/cms/orders/actions.cjs.js"),L=require("./lib/pages/cms/products/ProductsPage.cjs.js"),N=require("./lib/pages/cms/products/inventory/InventoryPage.cjs.js"),z=require("./lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js"),_=require("./lib/pages/cms/products/new/NewProductPage.cjs.js"),U=require("./lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js"),W=require("./lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js"),G=require("./lib/pages/cms/products/categories/CategoryManagementPage.cjs.js"),w=require("./lib/pages/cms/payments/PaymentsPage.cjs.js"),F=require("./lib/pages/cms/payments/actions.cjs.js"),K=require("./lib/pages/cms/shipping/ShippingPage.cjs.js"),u=require("./lib/pages/cms/shipping/server-actions.cjs.js"),V=require("./lib/pages/cms/taxes/TaxesPage.cjs.js"),S=require("./lib/pages/cms/taxes/actions.cjs.js"),B=require("./lib/pages/cms/coupons/CouponsPage.cjs.js"),Y=require("./lib/pages/cms/coupons/EditCouponPage.cjs.js");exports.clearPaymentConfigCache=t.clearPaymentConfigCache;exports.getPaymentConfigStatus=t.getPaymentConfigStatus;exports.getPaymentCredentialsView=t.getPaymentCredentialsView;exports.hydrateFreemiusEnvFromDb=t.hydrateFreemiusEnvFromDb;exports.resolveStripePublishableKey=t.resolveStripePublishableKey;exports.resolveStripeSecretKey=t.resolveStripeSecretKey;exports.resolveStripeWebhookSecret=t.resolveStripeWebhookSecret;exports.savePaymentCredentials=t.savePaymentCredentials;exports.getStripeClient=h.getStripeClient;exports.createCheckoutSession=O.createCheckoutSession;exports.syncStripeOrderFromSession=A.syncStripeOrderFromSession;exports.handleStripeWebhook=R.handleStripeWebhook;exports.applyOrderInventoryDeduction=T.applyOrderInventoryDeduction;exports.aggregateOrderTaxLines=n.aggregateOrderTaxLines;exports.buildOrderTaxDetailsFromCalculation=n.buildOrderTaxDetailsFromCalculation;exports.buildOrderTaxDetailsFromStripeSession=n.buildOrderTaxDetailsFromStripeSession;exports.getOrderTaxRateJurisdiction=n.getOrderTaxRateJurisdiction;exports.getOrderTaxRateLabel=n.getOrderTaxRateLabel;exports.getOrderTaxRatePercentage=n.getOrderTaxRatePercentage;exports.normalizeOrderTaxDetails=n.normalizeOrderTaxDetails;exports.DEFAULT_INVOICE_SETTINGS=i.DEFAULT_INVOICE_SETTINGS;exports.INVOICE_SETTINGS_KEY=i.INVOICE_SETTINGS_KEY;exports.formatInvoiceCurrency=i.formatInvoiceCurrency;exports.formatInvoiceDate=i.formatInvoiceDate;exports.getInvoiceAddressLines=i.getInvoiceAddressLines;exports.normalizeInvoiceSettings=i.normalizeInvoiceSettings;exports.serializeInvoiceSettings=i.serializeInvoiceSettings;exports.assignInvoiceMetadata=g.assignInvoiceMetadata;exports.getInvoiceBrandingData=g.getInvoiceBrandingData;exports.getInvoiceOrder=g.getInvoiceOrder;exports.getInvoicePresentationData=g.getInvoicePresentationData;exports.getCurrentCustomerOrder=l.getCurrentCustomerOrder;exports.getCurrentCustomerOrderInvoice=l.getCurrentCustomerOrderInvoice;exports.getCurrentCustomerOrders=l.getCurrentCustomerOrders;exports.getCouponQuote=C.getCouponQuote;exports.getQuoteLineDiscountMap=C.getQuoteLineDiscountMap;exports.recordCouponRedemption=C.recordCouponRedemption;exports.deleteCouponFromFreemius=P.deleteCouponFromFreemius;exports.syncCouponToFreemius=P.syncCouponToFreemius;exports.syncProductSaleCouponToFreemius=P.syncProductSaleCouponToFreemius;exports.addressesMatch=d.addressesMatch;exports.emptyCustomerAddress=d.emptyCustomerAddress;exports.isCustomerAddressComplete=d.isCustomerAddressComplete;exports.normalizeCustomerAddress=d.normalizeCustomerAddress;exports.normalizeOrderCustomerDetails=d.normalizeOrderCustomerDetails;exports.fillMissingUserProfileCheckoutDetails=m.fillMissingUserProfileCheckoutDetails;exports.getDefaultUserAddresses=m.getDefaultUserAddresses;exports.upsertDefaultUserAddresses=m.upsertDefaultUserAddresses;exports.CURRENCY_ROUNDING_MODES=e.CURRENCY_ROUNDING_MODES;exports.applyCurrencyRounding=e.applyCurrencyRounding;exports.convertMinorUnitAmount=e.convertMinorUnitAmount;exports.describeCurrencyRoundingRule=e.describeCurrencyRoundingRule;exports.getCurrencyLookup=e.getCurrencyLookup;exports.getDefaultCurrency=e.getDefaultCurrency;exports.getExchangeRateForCurrency=e.getExchangeRateForCurrency;exports.inferCurrencyCodeFromLocale=e.inferCurrencyCodeFromLocale;exports.isSaleWindowActive=e.isSaleWindowActive;exports.isScheduledPriceDue=e.isScheduledPriceDue;exports.normalizeCurrencyRecord=e.normalizeCurrencyRecord;exports.normalizeCurrencyRoundingMode=e.normalizeCurrencyRoundingMode;exports.normalizePriceMap=e.normalizePriceMap;exports.normalizeSalePriceMap=e.normalizeSalePriceMap;exports.resolveEffectivePriceForCurrency=e.resolveEffectivePriceForCurrency;exports.resolvePriceForCurrency=e.resolvePriceForCurrency;exports.resolvePriceRangeForCurrency=e.resolvePriceRangeForCurrency;exports.sortCurrencies=e.sortCurrencies;exports.CURRENCY_COOKIE_NAME=q.CURRENCY_COOKIE_NAME;exports.clearAutoSyncedCurrencyPriceOverrides=p.clearAutoSyncedCurrencyPriceOverrides;exports.rebaseStoreCurrencyExchangeRates=p.rebaseStoreCurrencyExchangeRates;exports.syncStoreCurrencyRates=p.syncStoreCurrencyRates;exports.productSchema=D.productSchema;exports.copyProductFromLanguage=r.copyProductFromLanguage;exports.createProduct=r.createProduct;exports.deleteProduct=r.deleteProduct;exports.fetchTranslatedProductsForCartInternal=r.fetchTranslatedProductsForCartInternal;exports.getProduct=r.getProduct;exports.getProductBySlug=r.getProductBySlug;exports.getProducts=r.getProducts;exports.syncCategoriesForTranslationGroup=r.syncCategoriesForTranslationGroup;exports.updateProduct=r.updateProduct;exports.getPaymentProvider=E.getPaymentProvider;exports.StripeProvider=b.StripeProvider;exports.FreemiusProvider=c.FreemiusProvider;exports.parseFreemiusCheckoutCredentialsMap=c.parseFreemiusCheckoutCredentialsMap;exports.readFreemiusEnvValue=c.readFreemiusEnvValue;exports.resolveFreemiusCheckoutCredentials=c.resolveFreemiusCheckoutCredentials;exports.syncFreemiusProductsToSupabase=c.syncFreemiusProductsToSupabase;exports.syncSingleFreemiusProduct=c.syncSingleFreemiusProduct;exports.extractFreemiusCheckoutMetadata=a.extractFreemiusCheckoutMetadata;exports.getFreemiusWebhookSecretCandidates=a.getFreemiusWebhookSecretCandidates;exports.resolveFreemiusStatusFromCheckoutResponse=a.resolveFreemiusStatusFromCheckoutResponse;exports.resolveFreemiusStatusFromWebhookEvent=a.resolveFreemiusStatusFromWebhookEvent;exports.syncFreemiusCheckoutOrder=a.syncFreemiusCheckoutOrder;exports.syncFreemiusOrderFromWebhookEvent=a.syncFreemiusOrderFromWebhookEvent;exports.verifyFreemiusWebhookSignature=a.verifyFreemiusWebhookSignature;exports.getFreemiusOrderLicense=I.getFreemiusOrderLicense;exports.getCategoriesWithCount=s.getCategoriesWithCount;exports.getCategoryBySlug=s.getCategoryBySlug;exports.getCmsProduct=s.getProduct;exports.getCmsProducts=s.getProducts;exports.getGlobalProductAttributes=s.getGlobalProductAttributes;exports.getProductCategories=s.getProductCategories;exports.getProductTranslations=s.getProductTranslations;exports.createCategoryAction=o.createCategoryAction;exports.createProductAction=o.createProductAction;exports.deleteCategoryAction=o.deleteCategoryAction;exports.deleteProductAction=o.deleteProductAction;exports.publishProductAction=o.publishProductAction;exports.syncProductCategoriesAction=o.syncProductCategoriesAction;exports.updateCategoryAction=o.updateCategoryAction;exports.updateProductAction=o.updateProductAction;exports.getEnabledPaymentProviders=y.getEnabledPaymentProviders;exports.getPaymentSettings=y.getPaymentSettings;exports.getStoreConfigStatus=y.getStoreConfigStatus;exports.OrdersPage=f.OrdersPage;exports.OrderDetailPage=x.OrderDetailPage;exports.ExportReportsDialog=k.ExportReportsDialog;exports.fetchOrderReportData=M.fetchOrderReportData;exports.getOrderDetails=v.getOrderDetails;exports.getOrders=v.getOrders;exports.ProductsPage=L.ProductsPage;exports.InventoryPage=N.InventoryPage;exports.AttributeManagementPage=z.AttributeManagementPage;exports.NewProductPage=_.NewProductPage;exports.EditProductPage=U.EditProductPage;exports.CopyProductFromLanguage=W.CopyProductFromLanguage;exports.CategoryManagementPage=G.CategoryManagementPage;exports.PaymentsPage=w.PaymentsPage;exports.savePaymentProviderCredentials=F.savePaymentProviderCredentials;exports.updatePaymentSettings=F.updatePaymentSettings;exports.ShippingPage=K.ShippingPage;exports.createShippingRate=u.createShippingRate;exports.createShippingZone=u.createShippingZone;exports.deleteShippingRate=u.deleteShippingRate;exports.deleteShippingZone=u.deleteShippingZone;exports.updateInventoryTrackingAction=u.updateInventoryTrackingAction;exports.updateShippingRate=u.updateShippingRate;exports.updateShippingZone=u.updateShippingZone;exports.TaxesPage=V.TaxesPage;exports.deleteTaxRateAction=S.deleteTaxRateAction;exports.saveTaxRateAction=S.saveTaxRateAction;exports.updateTaxSettingsAction=S.updateTaxSettingsAction;exports.CouponsPage=B.CouponsPage;exports.EditCouponPage=Y.EditCouponPage;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./lib/payment-config.cjs.js"),v=require("./lib/stripe/client.cjs.js"),O=require("./lib/stripe/checkout.cjs.js"),R=require("./lib/stripe/order-sync.cjs.js"),A=require("./lib/stripe/webhooks.cjs.js"),T=require("./lib/order-inventory.cjs.js"),n=require("./lib/order-tax-details.cjs.js"),i=require("./lib/invoice.cjs.js"),l=require("./lib/invoice-server.cjs.js"),C=require("./lib/customer-orders.cjs.js"),P=require("./lib/coupon-server.cjs.js"),m=require("./lib/freemius-coupons.cjs.js"),g=require("./lib/customer.cjs.js"),p=require("./lib/customer-addresses.cjs.js"),e=require("./lib/currency.cjs.js"),E=require("./lib/currency-constants.cjs.js"),y=require("./lib/currency-sync.cjs.js"),q=require("./lib/product-schema.cjs.js"),r=require("./lib/product-actions.cjs.js"),D=require("./lib/factory.cjs.js"),b=require("./lib/providers/stripe.cjs.js"),c=require("./lib/providers/freemius.cjs.js"),a=require("./lib/freemius-order-sync.cjs.js"),I=require("./lib/freemius-license.cjs.js"),s=require("./lib/pages/cms/products/actions.cjs.js"),o=require("./lib/pages/cms/products/server-actions.cjs.js"),d=require("./lib/pages/cms/payments/queries.cjs.js"),f=require("./lib/pages/cms/orders/OrdersPage.cjs.js"),x=require("./lib/pages/cms/orders/OrderDetailPage.cjs.js"),k=require("./lib/pages/cms/orders/ExportReportsDialog.cjs.js"),M=require("./lib/pages/cms/orders/export-actions.cjs.js"),F=require("./lib/pages/cms/orders/actions.cjs.js"),N=require("./lib/pages/cms/products/ProductsPage.cjs.js"),L=require("./lib/pages/cms/products/inventory/InventoryPage.cjs.js"),z=require("./lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js"),_=require("./lib/pages/cms/products/new/NewProductPage.cjs.js"),U=require("./lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js"),W=require("./lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js"),G=require("./lib/pages/cms/products/categories/CategoryManagementPage.cjs.js"),w=require("./lib/pages/cms/payments/PaymentsPage.cjs.js"),h=require("./lib/pages/cms/payments/actions.cjs.js"),K=require("./lib/pages/cms/shipping/ShippingPage.cjs.js"),u=require("./lib/pages/cms/shipping/server-actions.cjs.js"),V=require("./lib/pages/cms/taxes/TaxesPage.cjs.js"),S=require("./lib/pages/cms/taxes/actions.cjs.js"),B=require("./lib/pages/cms/coupons/CouponsPage.cjs.js"),Y=require("./lib/pages/cms/coupons/EditCouponPage.cjs.js");exports.clearPaymentConfigCache=t.clearPaymentConfigCache;exports.getPaymentConfigStatus=t.getPaymentConfigStatus;exports.getPaymentCredentialsView=t.getPaymentCredentialsView;exports.hydrateFreemiusEnvFromDb=t.hydrateFreemiusEnvFromDb;exports.resolveStripePublishableKey=t.resolveStripePublishableKey;exports.resolveStripeSecretKey=t.resolveStripeSecretKey;exports.resolveStripeWebhookSecret=t.resolveStripeWebhookSecret;exports.savePaymentCredentials=t.savePaymentCredentials;exports.StripeNotConfiguredError=v.StripeNotConfiguredError;exports.getStripeClient=v.getStripeClient;exports.createCheckoutSession=O.createCheckoutSession;exports.syncStripeOrderFromSession=R.syncStripeOrderFromSession;exports.handleStripeWebhook=A.handleStripeWebhook;exports.applyOrderInventoryDeduction=T.applyOrderInventoryDeduction;exports.aggregateOrderTaxLines=n.aggregateOrderTaxLines;exports.buildOrderTaxDetailsFromCalculation=n.buildOrderTaxDetailsFromCalculation;exports.buildOrderTaxDetailsFromStripeSession=n.buildOrderTaxDetailsFromStripeSession;exports.getOrderTaxRateJurisdiction=n.getOrderTaxRateJurisdiction;exports.getOrderTaxRateLabel=n.getOrderTaxRateLabel;exports.getOrderTaxRatePercentage=n.getOrderTaxRatePercentage;exports.normalizeOrderTaxDetails=n.normalizeOrderTaxDetails;exports.DEFAULT_INVOICE_SETTINGS=i.DEFAULT_INVOICE_SETTINGS;exports.INVOICE_SETTINGS_KEY=i.INVOICE_SETTINGS_KEY;exports.formatInvoiceCurrency=i.formatInvoiceCurrency;exports.formatInvoiceDate=i.formatInvoiceDate;exports.getInvoiceAddressLines=i.getInvoiceAddressLines;exports.normalizeInvoiceSettings=i.normalizeInvoiceSettings;exports.serializeInvoiceSettings=i.serializeInvoiceSettings;exports.assignInvoiceMetadata=l.assignInvoiceMetadata;exports.getInvoiceBrandingData=l.getInvoiceBrandingData;exports.getInvoiceOrder=l.getInvoiceOrder;exports.getInvoicePresentationData=l.getInvoicePresentationData;exports.getCurrentCustomerOrder=C.getCurrentCustomerOrder;exports.getCurrentCustomerOrderInvoice=C.getCurrentCustomerOrderInvoice;exports.getCurrentCustomerOrders=C.getCurrentCustomerOrders;exports.getCouponQuote=P.getCouponQuote;exports.getQuoteLineDiscountMap=P.getQuoteLineDiscountMap;exports.recordCouponRedemption=P.recordCouponRedemption;exports.deleteCouponFromFreemius=m.deleteCouponFromFreemius;exports.syncCouponToFreemius=m.syncCouponToFreemius;exports.syncProductSaleCouponToFreemius=m.syncProductSaleCouponToFreemius;exports.addressesMatch=g.addressesMatch;exports.emptyCustomerAddress=g.emptyCustomerAddress;exports.isCustomerAddressComplete=g.isCustomerAddressComplete;exports.normalizeCustomerAddress=g.normalizeCustomerAddress;exports.normalizeOrderCustomerDetails=g.normalizeOrderCustomerDetails;exports.fillMissingUserProfileCheckoutDetails=p.fillMissingUserProfileCheckoutDetails;exports.getDefaultUserAddresses=p.getDefaultUserAddresses;exports.upsertDefaultUserAddresses=p.upsertDefaultUserAddresses;exports.CURRENCY_ROUNDING_MODES=e.CURRENCY_ROUNDING_MODES;exports.applyCurrencyRounding=e.applyCurrencyRounding;exports.convertMinorUnitAmount=e.convertMinorUnitAmount;exports.describeCurrencyRoundingRule=e.describeCurrencyRoundingRule;exports.getCurrencyLookup=e.getCurrencyLookup;exports.getDefaultCurrency=e.getDefaultCurrency;exports.getExchangeRateForCurrency=e.getExchangeRateForCurrency;exports.inferCurrencyCodeFromLocale=e.inferCurrencyCodeFromLocale;exports.isSaleWindowActive=e.isSaleWindowActive;exports.isScheduledPriceDue=e.isScheduledPriceDue;exports.normalizeCurrencyRecord=e.normalizeCurrencyRecord;exports.normalizeCurrencyRoundingMode=e.normalizeCurrencyRoundingMode;exports.normalizePriceMap=e.normalizePriceMap;exports.normalizeSalePriceMap=e.normalizeSalePriceMap;exports.resolveEffectivePriceForCurrency=e.resolveEffectivePriceForCurrency;exports.resolvePriceForCurrency=e.resolvePriceForCurrency;exports.resolvePriceRangeForCurrency=e.resolvePriceRangeForCurrency;exports.sortCurrencies=e.sortCurrencies;exports.CURRENCY_COOKIE_NAME=E.CURRENCY_COOKIE_NAME;exports.clearAutoSyncedCurrencyPriceOverrides=y.clearAutoSyncedCurrencyPriceOverrides;exports.rebaseStoreCurrencyExchangeRates=y.rebaseStoreCurrencyExchangeRates;exports.syncStoreCurrencyRates=y.syncStoreCurrencyRates;exports.productSchema=q.productSchema;exports.copyProductFromLanguage=r.copyProductFromLanguage;exports.createProduct=r.createProduct;exports.deleteProduct=r.deleteProduct;exports.fetchTranslatedProductsForCartInternal=r.fetchTranslatedProductsForCartInternal;exports.getProduct=r.getProduct;exports.getProductBySlug=r.getProductBySlug;exports.getProducts=r.getProducts;exports.syncCategoriesForTranslationGroup=r.syncCategoriesForTranslationGroup;exports.updateProduct=r.updateProduct;exports.getPaymentProvider=D.getPaymentProvider;exports.StripeProvider=b.StripeProvider;exports.FreemiusProvider=c.FreemiusProvider;exports.parseFreemiusCheckoutCredentialsMap=c.parseFreemiusCheckoutCredentialsMap;exports.readFreemiusEnvValue=c.readFreemiusEnvValue;exports.resolveFreemiusCheckoutCredentials=c.resolveFreemiusCheckoutCredentials;exports.syncFreemiusProductsToSupabase=c.syncFreemiusProductsToSupabase;exports.syncSingleFreemiusProduct=c.syncSingleFreemiusProduct;exports.extractFreemiusCheckoutMetadata=a.extractFreemiusCheckoutMetadata;exports.getFreemiusWebhookSecretCandidates=a.getFreemiusWebhookSecretCandidates;exports.resolveFreemiusStatusFromCheckoutResponse=a.resolveFreemiusStatusFromCheckoutResponse;exports.resolveFreemiusStatusFromWebhookEvent=a.resolveFreemiusStatusFromWebhookEvent;exports.syncFreemiusCheckoutOrder=a.syncFreemiusCheckoutOrder;exports.syncFreemiusOrderFromWebhookEvent=a.syncFreemiusOrderFromWebhookEvent;exports.verifyFreemiusWebhookSignature=a.verifyFreemiusWebhookSignature;exports.getFreemiusOrderLicense=I.getFreemiusOrderLicense;exports.getCategoriesWithCount=s.getCategoriesWithCount;exports.getCategoryBySlug=s.getCategoryBySlug;exports.getCmsProduct=s.getProduct;exports.getCmsProducts=s.getProducts;exports.getGlobalProductAttributes=s.getGlobalProductAttributes;exports.getProductCategories=s.getProductCategories;exports.getProductTranslations=s.getProductTranslations;exports.createCategoryAction=o.createCategoryAction;exports.createProductAction=o.createProductAction;exports.deleteCategoryAction=o.deleteCategoryAction;exports.deleteProductAction=o.deleteProductAction;exports.publishProductAction=o.publishProductAction;exports.syncProductCategoriesAction=o.syncProductCategoriesAction;exports.updateCategoryAction=o.updateCategoryAction;exports.updateProductAction=o.updateProductAction;exports.getEnabledPaymentProviders=d.getEnabledPaymentProviders;exports.getPaymentSettings=d.getPaymentSettings;exports.getProviderReadiness=d.getProviderReadiness;exports.getReadinessForProductType=d.getReadinessForProductType;exports.getStoreConfigStatus=d.getStoreConfigStatus;exports.getStoreReadiness=d.getStoreReadiness;exports.OrdersPage=f.OrdersPage;exports.OrderDetailPage=x.OrderDetailPage;exports.ExportReportsDialog=k.ExportReportsDialog;exports.fetchOrderReportData=M.fetchOrderReportData;exports.getOrderDetails=F.getOrderDetails;exports.getOrders=F.getOrders;exports.ProductsPage=N.ProductsPage;exports.InventoryPage=L.InventoryPage;exports.AttributeManagementPage=z.AttributeManagementPage;exports.NewProductPage=_.NewProductPage;exports.EditProductPage=U.EditProductPage;exports.CopyProductFromLanguage=W.CopyProductFromLanguage;exports.CategoryManagementPage=G.CategoryManagementPage;exports.PaymentsPage=w.PaymentsPage;exports.savePaymentProviderCredentials=h.savePaymentProviderCredentials;exports.updatePaymentSettings=h.updatePaymentSettings;exports.ShippingPage=K.ShippingPage;exports.createShippingRate=u.createShippingRate;exports.createShippingZone=u.createShippingZone;exports.deleteShippingRate=u.deleteShippingRate;exports.deleteShippingZone=u.deleteShippingZone;exports.updateInventoryTrackingAction=u.updateInventoryTrackingAction;exports.updateShippingRate=u.updateShippingRate;exports.updateShippingZone=u.updateShippingZone;exports.TaxesPage=V.TaxesPage;exports.deleteTaxRateAction=S.deleteTaxRateAction;exports.saveTaxRateAction=S.saveTaxRateAction;exports.updateTaxSettingsAction=S.updateTaxSettingsAction;exports.CouponsPage=B.CouponsPage;exports.EditCouponPage=Y.EditCouponPage;
|
package/server.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export * from './lib/freemius-order-sync';
|
|
|
24
24
|
export * from './lib/freemius-license';
|
|
25
25
|
export { getProduct as getCmsProduct, getProducts as getCmsProducts, getGlobalProductAttributes, getProductTranslations, getCategoriesWithCount, getProductCategories, getCategoryBySlug, } from './lib/pages/cms/products/actions';
|
|
26
26
|
export { createProductAction, updateProductAction, publishProductAction, deleteProductAction, createCategoryAction, updateCategoryAction, deleteCategoryAction, syncProductCategoriesAction, } from './lib/pages/cms/products/server-actions';
|
|
27
|
-
export { getEnabledPaymentProviders, getPaymentSettings, getStoreConfigStatus, } from './lib/pages/cms/payments/queries';
|
|
27
|
+
export { getEnabledPaymentProviders, getPaymentSettings, getProviderReadiness, getReadinessForProductType, getStoreConfigStatus, getStoreReadiness, type ProviderReadiness, type StoreReadiness, } from './lib/pages/cms/payments/queries';
|
|
28
28
|
export * from './lib/pages/cms/orders';
|
|
29
29
|
export * from './lib/pages/cms/products';
|
|
30
30
|
export * from './lib/pages/cms/payments';
|