@nextblock-cms/ecom 0.22.1 → 0.22.3
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 +43 -43
- package/index.cjs +1 -1
- package/index.es.js +31 -31
- package/lib/components/Checkout.cjs +1 -1
- package/lib/components/Checkout.es.js +1 -0
- package/lib/components/SubscriptionSelector.cjs +1 -1
- package/lib/components/SubscriptionSelector.es.js +91 -92
- package/lib/coupon-server.cjs +1 -1
- package/lib/coupon-server.es.js +78 -61
- package/lib/coupons.cjs +1 -1
- package/lib/coupons.d.ts +9 -0
- package/lib/coupons.es.js +11 -2
- package/lib/currency-sync.cjs +1 -1
- package/lib/currency-sync.es.js +1 -1
- package/lib/freemius-coupons.cjs +1 -1
- package/lib/freemius-coupons.es.js +88 -92
- package/lib/freemius-license-claim.cjs +1 -1
- package/lib/freemius-license-claim.d.ts +13 -0
- package/lib/freemius-license-claim.es.js +44 -29
- package/lib/freemius-license.cjs +1 -1
- package/lib/freemius-license.es.js +19 -17
- package/lib/freemius-order-sync.cjs +1 -1
- package/lib/freemius-order-sync.d.ts +44 -0
- package/lib/freemius-order-sync.es.js +164 -77
- package/lib/freemius-pricing-server.cjs +1 -0
- package/lib/freemius-pricing-server.d.ts +65 -0
- package/lib/freemius-pricing-server.es.js +82 -0
- package/lib/freemius-pricing.cjs +1 -0
- package/lib/freemius-pricing.d.ts +53 -0
- package/lib/freemius-pricing.es.js +51 -0
- package/lib/invoice-server.cjs +1 -1
- package/lib/invoice-server.es.js +1 -0
- package/lib/pages/cms/coupons/CouponsPage.cjs +1 -1
- package/lib/pages/cms/coupons/CouponsPage.es.js +1 -0
- package/lib/pages/cms/coupons/EditCouponPage.cjs +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +1 -0
- package/lib/pages/cms/coupons/actions.cjs +1 -1
- package/lib/pages/cms/coupons/actions.es.js +1 -0
- package/lib/pages/cms/orders/actions.cjs +1 -1
- package/lib/pages/cms/orders/actions.es.js +1 -0
- package/lib/pages/cms/orders/export-actions.cjs +1 -1
- package/lib/pages/cms/orders/export-actions.es.js +1 -0
- package/lib/pages/cms/orders/server-actions.cjs +1 -1
- package/lib/pages/cms/orders/server-actions.es.js +1 -0
- package/lib/pages/cms/products/ProductsPage.cjs +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +1 -0
- package/lib/pages/cms/products/[id]/edit/EditProductPage.cjs +1 -1
- package/lib/pages/cms/products/[id]/edit/EditProductPage.es.js +1 -0
- package/lib/pages/cms/products/actions.cjs +3 -3
- package/lib/pages/cms/products/actions.d.ts +11 -5
- package/lib/pages/cms/products/actions.es.js +45 -12
- package/lib/pages/cms/products/inventory/actions.cjs +1 -1
- package/lib/pages/cms/products/inventory/actions.es.js +1 -0
- package/lib/pages/cms/products/new/NewProductPage.cjs +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +1 -0
- package/lib/pages/cms/products/server-actions.cjs +1 -1
- package/lib/pages/cms/products/server-actions.es.js +1 -0
- package/lib/pages/cms/shipping/ShippingPage.cjs +1 -1
- package/lib/pages/cms/shipping/ShippingPage.es.js +1 -0
- package/lib/pages/cms/shipping/server-actions.cjs +1 -1
- package/lib/pages/cms/shipping/server-actions.es.js +1 -0
- package/lib/pages/cms/taxes/TaxesPage.cjs +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +1 -0
- package/lib/payment-config.cjs +1 -1
- package/lib/payment-config.es.js +1 -0
- package/lib/providers/freemius.cjs +1 -1
- package/lib/providers/freemius.es.js +200 -187
- package/lib/providers/stripe.cjs +1 -1
- package/lib/providers/stripe.es.js +151 -150
- package/lib/server-actions/coupon-actions.cjs +1 -1
- package/lib/server-actions/coupon-actions.es.js +1 -0
- package/lib/server-actions/customer-actions.d.ts +6 -1
- package/lib/server-actions/require-ecom-role.cjs +1 -1
- package/lib/server-actions/require-ecom-role.es.js +22 -10
- package/lib/server-actions/tax-actions.cjs +1 -1
- package/lib/server-actions/tax-actions.es.js +1 -0
- package/lib/shared-inventory.cjs +1 -1
- package/lib/shared-inventory.es.js +1 -1
- package/lib/stripe/checkout.cjs +1 -1
- package/lib/stripe/checkout.es.js +1 -0
- package/lib/stripe/order-sync.cjs +1 -1
- package/lib/stripe/order-sync.es.js +1 -0
- package/lib/stripe/webhooks.cjs +1 -1
- package/lib/stripe/webhooks.d.ts +10 -0
- package/lib/stripe/webhooks.es.js +23 -10
- package/package.json +4 -4
- package/server.cjs +1 -1
- package/server.es.js +31 -31
|
@@ -11,7 +11,12 @@ export interface ProfileUpdateData {
|
|
|
11
11
|
export declare function updateProfile(data: ProfileUpdateData): Promise<{
|
|
12
12
|
success: boolean;
|
|
13
13
|
}>;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Is the signed-in customer's profile complete enough to check out? Always the session's
|
|
16
|
+
* user: a server action never takes a user id from the caller. The old `userId` argument is
|
|
17
|
+
* still accepted so existing callers compile, and ignored.
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateCheckoutEligibility(..._ignoredArgs: unknown[]): Promise<{
|
|
15
20
|
ready: boolean;
|
|
16
21
|
missingFields: string[];
|
|
17
22
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require("@nextblock-cms/db/server");
|
|
1
|
+
require("server-only");let e=require("@nextblock-cms/db/server");async function t(){return i()}var n=Symbol.for(`nextblock.cms.secondFactorGate`);async function r(e,t){let r=globalThis[n];if(typeof r==`function`)return!!await r();let{data:i}=await e.from(`user_security_settings`).select(`mfa_enabled, mfa_type`).eq(`user_id`,t).maybeSingle();if(!i?.mfa_enabled||!i?.mfa_type)return!0;if(i.mfa_type===`totp`){let{data:t}=await e.auth.mfa.getAuthenticatorAssuranceLevel();return t?.currentLevel===`aal2`}return!1}async function i(){let t=(0,e.createClient)(),{data:{user:n}}=await t.auth.getUser();if(!n)return null;let{data:i}=await t.from(`profiles`).select(`role`).eq(`id`,n.id).single(),a=i?.role;return a!==`ADMIN`&&a!==`WRITER`||!await r(t,n.id)?null:a}async function a(){let t=await i();if(!t)throw Error(`Unauthorized`);if(t!==`ADMIN`)throw Error(`Forbidden`);return(0,e.getServiceRoleSupabaseClient)()}async function o(){if(!await i())throw Error(`Unauthorized`);return(0,e.getServiceRoleSupabaseClient)()}exports.getEcomActorRole=t,exports.requireEcomAdmin=a,exports.requireEcomStaff=o;
|
|
@@ -1,24 +1,36 @@
|
|
|
1
|
-
import { createClient as e, getServiceRoleSupabaseClient as t } from "@nextblock-cms/db/server";
|
|
2
1
|
import "server-only";
|
|
2
|
+
import { createClient as e, getServiceRoleSupabaseClient as t } from "@nextblock-cms/db/server";
|
|
3
3
|
//#region src/lib/server-actions/require-ecom-role.ts
|
|
4
4
|
async function n() {
|
|
5
|
-
return
|
|
5
|
+
return a();
|
|
6
|
+
}
|
|
7
|
+
var r = Symbol.for("nextblock.cms.secondFactorGate");
|
|
8
|
+
async function i(e, t) {
|
|
9
|
+
let n = globalThis[r];
|
|
10
|
+
if (typeof n == "function") return !!await n();
|
|
11
|
+
let { data: i } = await e.from("user_security_settings").select("mfa_enabled, mfa_type").eq("user_id", t).maybeSingle();
|
|
12
|
+
if (!i?.mfa_enabled || !i?.mfa_type) return !0;
|
|
13
|
+
if (i.mfa_type === "totp") {
|
|
14
|
+
let { data: t } = await e.auth.mfa.getAuthenticatorAssuranceLevel();
|
|
15
|
+
return t?.currentLevel === "aal2";
|
|
16
|
+
}
|
|
17
|
+
return !1;
|
|
6
18
|
}
|
|
7
|
-
async function
|
|
19
|
+
async function a() {
|
|
8
20
|
let t = e(), { data: { user: n } } = await t.auth.getUser();
|
|
9
21
|
if (!n) return null;
|
|
10
|
-
let { data: r } = await t.from("profiles").select("role").eq("id", n.id).single(),
|
|
11
|
-
return
|
|
22
|
+
let { data: r } = await t.from("profiles").select("role").eq("id", n.id).single(), a = r?.role;
|
|
23
|
+
return a !== "ADMIN" && a !== "WRITER" || !await i(t, n.id) ? null : a;
|
|
12
24
|
}
|
|
13
|
-
async function
|
|
14
|
-
let e = await
|
|
25
|
+
async function o() {
|
|
26
|
+
let e = await a();
|
|
15
27
|
if (!e) throw Error("Unauthorized");
|
|
16
28
|
if (e !== "ADMIN") throw Error("Forbidden");
|
|
17
29
|
return t();
|
|
18
30
|
}
|
|
19
|
-
async function
|
|
20
|
-
if (!await
|
|
31
|
+
async function s() {
|
|
32
|
+
if (!await a()) throw Error("Unauthorized");
|
|
21
33
|
return t();
|
|
22
34
|
}
|
|
23
35
|
//#endregion
|
|
24
|
-
export { n as getEcomActorRole,
|
|
36
|
+
export { n as getEcomActorRole, o as requireEcomAdmin, s as requireEcomStaff };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use server";const e=require("../coupon-server.cjs"),t=require("../tax-calculation.cjs");let n=require("next/headers"),r=require("@nextblock-cms/db/server");async function i(i,a,o=`USD`,s,c){try{let l=(0,r.createClient)(),u=(0,r.getServiceRoleSupabaseClient)(),{data:d}=await l.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}),f=d??[],p;if(s){let t=e.resolveCouponValidationThrottleKey(await(0,n.headers)());if(e.consumeCouponValidationToken(t)){let t=await e.getCouponQuote({client:u,code:s,items:c&&c.length>0?c:i,currencyCode:o});t.success&&(p=e.getQuoteLineDiscountMap(t.quote))}}let m=await t.buildCheckoutTaxableItemsFromCart(l,i,o,f,p);return{success:!0,tax:await t.calculateCheckoutTaxes(l,{items:m,destination:a})}}catch(e){return console.error(`Failed to estimate taxes:`,e),{success:!1,error:e.message||`Failed to calculate taxes`}}}exports.getTaxEstimate=i;
|
|
1
|
+
"use server";const e=require("../coupon-server.cjs"),t=require("../tax-calculation.cjs");require("server-only");let n=require("next/headers"),r=require("@nextblock-cms/db/server");async function i(i,a,o=`USD`,s,c){try{let l=(0,r.createClient)(),u=(0,r.getServiceRoleSupabaseClient)(),{data:d}=await l.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}),f=d??[],p;if(s){let t=e.resolveCouponValidationThrottleKey(await(0,n.headers)());if(e.consumeCouponValidationToken(t)){let t=await e.getCouponQuote({client:u,code:s,items:c&&c.length>0?c:i,currencyCode:o});t.success&&(p=e.getQuoteLineDiscountMap(t.quote))}}let m=await t.buildCheckoutTaxableItemsFromCart(l,i,o,f,p);return{success:!0,tax:await t.calculateCheckoutTaxes(l,{items:m,destination:a})}}catch(e){return console.error(`Failed to estimate taxes:`,e),{success:!1,error:e.message||`Failed to calculate taxes`}}}exports.getTaxEstimate=i;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use server";
|
|
2
2
|
import { consumeCouponValidationToken as e, getCouponQuote as t, getQuoteLineDiscountMap as n, resolveCouponValidationThrottleKey as r } from "../coupon-server.es.js";
|
|
3
3
|
import { buildCheckoutTaxableItemsFromCart as i, calculateCheckoutTaxes as a } from "../tax-calculation.es.js";
|
|
4
|
+
import "server-only";
|
|
4
5
|
import { headers as o } from "next/headers";
|
|
5
6
|
import { createClient as s, getServiceRoleSupabaseClient as c } from "@nextblock-cms/db/server";
|
|
6
7
|
//#region src/lib/server-actions/tax-actions.ts
|
package/lib/shared-inventory.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
let e=require("@nextblock-cms/db/server");
|
|
1
|
+
require("server-only");let e=require("@nextblock-cms/db/server");function t(t){return t??(0,e.getServiceRoleSupabaseClient)()}function n(e){return e?(Array.isArray(e)?e:[e]).map(e=>e?.code?.toUpperCase().trim()).filter(e=>!!e):[]}function r(e){return[...new Set(e)].sort((e,t)=>e.localeCompare(t))}function i(e,t){return!e||e===t?t:`mixed`}async function a(e,t){let n=Array.from(t.reduce((e,t)=>{let n=t.sku.trim();return n&&e.set(n,{sku:n,quantity:Math.max(0,Math.trunc(t.quantity))}),e},new Map).values());if(n.length===0)return;let{error:r}=await e.from(`inventory_items`).upsert(n,{onConflict:`sku`});if(r)throw Error(r.message)}async function o(e,t){let n=r(t.map(e=>e.trim()).filter(Boolean));if(n.length===0)return new Map;let{data:i,error:a}=await e.from(`inventory_items`).select(`sku, quantity`).in(`sku`,n);if(a)throw Error(a.message);return new Map((i||[]).map(e=>[e.sku,Math.max(0,e.quantity??0)]))}async function s(e){let{data:t,error:r}=await e.from(`products`).select(`
|
|
2
2
|
id,
|
|
3
3
|
title,
|
|
4
4
|
sku,
|
package/lib/stripe/checkout.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../currency.cjs"),t=require("../shipping/resolver.cjs"),n=require("./client.cjs");let r=require("@nextblock-cms/db/server"),i=require("@supabase/supabase-js");var a=async(a,o,s,c)=>{let l=process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL,u=process.env.SUPABASE_SERVICE_ROLE_KEY||process.env.SUPABASE_SECRET_KEY;if(!l||!u)return console.error(`Missing Supabase credentials for checkout (Service Key required).`),{error:`Internal Server Error`,url:null};let d=(0,i.createClient)(l,u),f=process.env.NEXT_PUBLIC_URL||`http://localhost:4200`;if(!a.length)return{error:`Cart is empty`,url:null};let{data:p}=await d.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}),m=p??[],h=e.getDefaultCurrency(m),g=m.find(e=>e.code===(c||``).toUpperCase())??h;if(!await(0,r.verifyPackageOnline)(`ecommerce`))return{error:`E-Commerce Package not active. Please purchase a license to accept payments.`,url:null};let _=a.map(e=>e.product_id),{data:v,error:y}=await d.from(`products`).select(`id, title, price, prices, sale_price, sale_prices, sale_start_at, sale_end_at, scheduled_price, scheduled_prices, scheduled_price_at`).in(`id`,_);if(y||!v)return console.error(`Error fetching products for validation:`,y),{error:`Failed to validate product prices`,url:null};let b=new Map(v.map(e=>[e.id,e])),x=[],S=0,C=[];for(let t of a){let n=b.get(t.product_id);if(!n){console.warn(`Product ${t.product_id} not found in DB, skipping.`);continue}let r=e.resolveEffectivePriceForCurrency({prices:n.prices||{},salePrices:n.sale_prices||{},fallbackPrice:n.price,fallbackSalePrice:n.sale_price,saleStartAt:n.sale_start_at,saleEndAt:n.sale_end_at,scheduledPrice:n.scheduled_price,scheduledPrices:n.scheduled_prices||{},scheduledPriceAt:n.scheduled_price_at,currencyCode:g.code,currencies:m}),i=r.sale_price??r.price;i<=0&&console.warn(`[Checkout Session Warning] Product ${n.title} has zero or negative price!`),x.push({price_data:{currency:g.code.toLowerCase(),product_data:{name:n.title,images:[],metadata:{productId:n.id}},unit_amount:i},quantity:t.quantity}),S+=i*t.quantity,C.push({product_id:n.id,quantity:t.quantity,price_at_purchase:i})}if(x.length===0)return{error:`No valid items in cart`,url:null};let{data:w,error:T}=await d.from(`orders`).insert({total:S,user_id:o,currency:g.code,exchange_rate_at_purchase:g.exchange_rate}).select(`id`).single();if(T||!w)return console.error(`Failed to create pending order:`,T),console.error(`Order Data attempted:`,{status:`pending`,total:S}),{error:`Failed to initiate order: ${T?.message||`Unknown error`}`,url:null};let E=C.map(e=>({order_id:w.id,product_id:e.product_id,quantity:e.quantity,price_at_purchase:e.price_at_purchase})),{error:D}=await d.from(`order_items`).insert(E);D&&console.error(`Failed to insert order items:`,D);let O=[],k=s;if(!k&&o){let{data:e}=await d.from(`user_addresses`).select(`country_code, state_code, postal_code`).eq(`user_id`,o).eq(`address_type`,`shipping`).limit(1).single();e&&(k={country:e.country_code,state:e.state_code,postal_code:e.postal_code})}k&&(O=(await t.resolveShippingOptions(S,k,null,g.code)).map(e=>({shipping_rate_data:{type:`fixed_amount`,fixed_amount:{amount:e.amount,currency:e.currency.toLowerCase()},display_name:e.name}})));try{let e=await(await n.getStripeClient()).checkout.sessions.create({mode:`payment`,success_url:`${f}/checkout/success?session_id={CHECKOUT_SESSION_ID}`,cancel_url:`${f}/`,line_items:x,billing_address_collection:`required`,shipping_address_collection:{allowed_countries:`US.CA.GB.AU.NZ.IE.FR.DE.IT.ES.MX.BR.AR.CL.CO.PE.ZA.NG.KE.IN.JP.KR.CN.SG.MY.PH.TH.VN.ID.AE.SA.EG.MA.DZ.TN.PT.NL.BE.CH.AT.SE.NO.DK.FI.PL.CZ.HU.RO.BG.GR.TR.IL.CY.MT`.split(`.`)},shipping_options:O.length>0?O:void 0,metadata:{orderId:w.id}});return await d.from(`orders`).update({stripe_session_id:e.id}).eq(`id`,w.id),{url:e.url}}catch(e){return console.error(`Stripe session creation failed:`,e),{error:e.message,url:null}}};exports.createCheckoutSession=a;
|
|
1
|
+
const e=require("../currency.cjs"),t=require("../shipping/resolver.cjs"),n=require("./client.cjs");require("server-only");let r=require("@nextblock-cms/db/server"),i=require("@supabase/supabase-js");var a=async(a,o,s,c)=>{let l=process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL,u=process.env.SUPABASE_SERVICE_ROLE_KEY||process.env.SUPABASE_SECRET_KEY;if(!l||!u)return console.error(`Missing Supabase credentials for checkout (Service Key required).`),{error:`Internal Server Error`,url:null};let d=(0,i.createClient)(l,u),f=process.env.NEXT_PUBLIC_URL||`http://localhost:4200`;if(!a.length)return{error:`Cart is empty`,url:null};let{data:p}=await d.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}),m=p??[],h=e.getDefaultCurrency(m),g=m.find(e=>e.code===(c||``).toUpperCase())??h;if(!await(0,r.verifyPackageOnline)(`ecommerce`))return{error:`E-Commerce Package not active. Please purchase a license to accept payments.`,url:null};let _=a.map(e=>e.product_id),{data:v,error:y}=await d.from(`products`).select(`id, title, price, prices, sale_price, sale_prices, sale_start_at, sale_end_at, scheduled_price, scheduled_prices, scheduled_price_at`).in(`id`,_);if(y||!v)return console.error(`Error fetching products for validation:`,y),{error:`Failed to validate product prices`,url:null};let b=new Map(v.map(e=>[e.id,e])),x=[],S=0,C=[];for(let t of a){let n=b.get(t.product_id);if(!n){console.warn(`Product ${t.product_id} not found in DB, skipping.`);continue}let r=e.resolveEffectivePriceForCurrency({prices:n.prices||{},salePrices:n.sale_prices||{},fallbackPrice:n.price,fallbackSalePrice:n.sale_price,saleStartAt:n.sale_start_at,saleEndAt:n.sale_end_at,scheduledPrice:n.scheduled_price,scheduledPrices:n.scheduled_prices||{},scheduledPriceAt:n.scheduled_price_at,currencyCode:g.code,currencies:m}),i=r.sale_price??r.price;i<=0&&console.warn(`[Checkout Session Warning] Product ${n.title} has zero or negative price!`),x.push({price_data:{currency:g.code.toLowerCase(),product_data:{name:n.title,images:[],metadata:{productId:n.id}},unit_amount:i},quantity:t.quantity}),S+=i*t.quantity,C.push({product_id:n.id,quantity:t.quantity,price_at_purchase:i})}if(x.length===0)return{error:`No valid items in cart`,url:null};let{data:w,error:T}=await d.from(`orders`).insert({total:S,user_id:o,currency:g.code,exchange_rate_at_purchase:g.exchange_rate}).select(`id`).single();if(T||!w)return console.error(`Failed to create pending order:`,T),console.error(`Order Data attempted:`,{status:`pending`,total:S}),{error:`Failed to initiate order: ${T?.message||`Unknown error`}`,url:null};let E=C.map(e=>({order_id:w.id,product_id:e.product_id,quantity:e.quantity,price_at_purchase:e.price_at_purchase})),{error:D}=await d.from(`order_items`).insert(E);D&&console.error(`Failed to insert order items:`,D);let O=[],k=s;if(!k&&o){let{data:e}=await d.from(`user_addresses`).select(`country_code, state_code, postal_code`).eq(`user_id`,o).eq(`address_type`,`shipping`).limit(1).single();e&&(k={country:e.country_code,state:e.state_code,postal_code:e.postal_code})}k&&(O=(await t.resolveShippingOptions(S,k,null,g.code)).map(e=>({shipping_rate_data:{type:`fixed_amount`,fixed_amount:{amount:e.amount,currency:e.currency.toLowerCase()},display_name:e.name}})));try{let e=await(await n.getStripeClient()).checkout.sessions.create({mode:`payment`,success_url:`${f}/checkout/success?session_id={CHECKOUT_SESSION_ID}`,cancel_url:`${f}/`,line_items:x,billing_address_collection:`required`,shipping_address_collection:{allowed_countries:`US.CA.GB.AU.NZ.IE.FR.DE.IT.ES.MX.BR.AR.CL.CO.PE.ZA.NG.KE.IN.JP.KR.CN.SG.MY.PH.TH.VN.ID.AE.SA.EG.MA.DZ.TN.PT.NL.BE.CH.AT.SE.NO.DK.FI.PL.CZ.HU.RO.BG.GR.TR.IL.CY.MT`.split(`.`)},shipping_options:O.length>0?O:void 0,metadata:{orderId:w.id}});return await d.from(`orders`).update({stripe_session_id:e.id}).eq(`id`,w.id),{url:e.url}}catch(e){return console.error(`Stripe session creation failed:`,e),{error:e.message,url:null}}};exports.createCheckoutSession=a;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getDefaultCurrency as e, resolveEffectivePriceForCurrency as t } from "../currency.es.js";
|
|
2
2
|
import { resolveShippingOptions as n } from "../shipping/resolver.es.js";
|
|
3
3
|
import { getStripeClient as r } from "./client.es.js";
|
|
4
|
+
import "server-only";
|
|
4
5
|
import { verifyPackageOnline as i } from "@nextblock-cms/db/server";
|
|
5
6
|
import { createClient as a } from "@supabase/supabase-js";
|
|
6
7
|
//#region src/lib/stripe/checkout.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../customer.cjs"),t=require("../customer-addresses.cjs"),n=require("../order-tax-details.cjs"),r=require("./client.cjs"),i=require("../order-inventory.cjs"),a=require("../invoice-server.cjs");let o=require("@supabase/supabase-js");var s=[`total_details.breakdown`],c=[`data.taxes.rate`];function l(){let e=process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL,t=process.env.SUPABASE_SERVICE_ROLE_KEY||process.env.SUPABASE_SECRET_KEY;if(!e||!t)throw Error(`Missing Supabase Service Role environment variables`);return(0,o.createClient)(e,t,{auth:{autoRefreshToken:!1,persistSession:!1}})}function u(t,n){return t?e.normalizeCustomerAddress({recipient_name:n,line1:t.line1??null,line2:t.line2??null,city:t.city??null,state:t.state??null,postal_code:t.postal_code??null,country_code:t.country??null}):null}function d(t){let n=t??{};return e.normalizeOrderCustomerDetails({email:typeof n.email==`string`?n.email:null,name:typeof n.name==`string`?n.name:null,phone:typeof n.phone==`string`?n.phone:null,billing:n.billing??null,shipping:n.shipping??null})}async function f(o){let f=l(),p=await r.getStripeClient(),m=o;try{m=await p.checkout.sessions.retrieve(o.id,{expand:[...s]})}catch(e){console.error(`[Stripe Sync] Failed to rehydrate session tax details:`,e)}let h=m.metadata?.orderId,g=f.from(`orders`).select(`id, user_id, status, total, currency, subtotal, shipping_total, tax_total, tax_details, customer_details`).eq(`stripe_session_id`,o.id).maybeSingle();h&&(g=f.from(`orders`).select(`id, user_id, status, total, currency, subtotal, shipping_total, tax_total, tax_details, customer_details`).eq(`id`,h).maybeSingle());let{data:_,error:v}=await g;if(v||!_)throw Error(v?.message||`Order lookup failed`);let y=d(_.customer_details),b=n.normalizeOrderTaxDetails(_.tax_details),x=u(m.customer_details?.address,m.customer_details?.name??y.name),S=m.shipping_details,C=m.collected_information?.shipping_details??S??null,w=u(C?.address,C?.name??y.name),T=e.normalizeOrderCustomerDetails({email:m.customer_details?.email??y.email,name:m.customer_details?.name??y.name,phone:m.customer_details?.phone??y.phone,billing:y.billing??x,shipping:y.shipping??w}),E=_.status===`paid`,D=await p.checkout.sessions.listLineItems(m.id,{limit:100,expand:[...c]}),O=n.buildOrderTaxDetailsFromStripeSession({session:m,lineItems:D.data,subtotal:typeof _.subtotal==`number`?_.subtotal:b?.subtotal??0,shippingTotal:typeof _.shipping_total==`number`?_.shipping_total:b?.shipping_total??0,fallbackMode:b?.mode??`automatic`,currency:(m.currency??_.currency??b?.currency??`USD`).toUpperCase()}),k=O.tax_total>0||O.lines.length>0?O:b??O,A=k?.tax_total??(typeof _.tax_total==`number`?_.tax_total:0),j=(m.currency??_.currency??k?.currency??`USD`).toUpperCase(),M={status:`paid`,stripe_session_id:m.id,payment_intent_id:typeof m.payment_intent==`string`?m.payment_intent:null,provider:`stripe`,customer_details:T,total:typeof m.amount_total==`number`?m.amount_total:_.total,currency:j,tax_total:A,tax_details:k},{error:N}=await f.from(`orders`).update(M).eq(`id`,_.id);if(N)throw Error(N.message);if(_.user_id)try{await t.upsertDefaultUserAddresses({userId:_.user_id,billingAddress:T.billing,shippingAddress:T.shipping,client:f})}catch(e){console.error(`[Stripe Sync] Failed to refresh saved customer addresses:`,e)}let P=await a.assignInvoiceMetadata({orderId:_.id,client:f});return await i.applyOrderInventoryDeduction(f,_.id),{orderId:_.id,alreadyPaid:E,customerDetails:T,order:{id:_.id,invoice_number:P.invoiceNumber,paid_at:P.paidAt,total:M.total,currency:j,subtotal:typeof _.subtotal==`number`?_.subtotal:k?.subtotal??0,shipping_total:typeof _.shipping_total==`number`?_.shipping_total:k?.shipping_total??0,tax_total:A,tax_details:k}}}exports.syncStripeOrderFromSession=f;
|
|
1
|
+
const e=require("../customer.cjs"),t=require("../customer-addresses.cjs"),n=require("../order-tax-details.cjs"),r=require("./client.cjs"),i=require("../order-inventory.cjs"),a=require("../invoice-server.cjs");require("server-only");let o=require("@supabase/supabase-js");var s=[`total_details.breakdown`],c=[`data.taxes.rate`];function l(){let e=process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL,t=process.env.SUPABASE_SERVICE_ROLE_KEY||process.env.SUPABASE_SECRET_KEY;if(!e||!t)throw Error(`Missing Supabase Service Role environment variables`);return(0,o.createClient)(e,t,{auth:{autoRefreshToken:!1,persistSession:!1}})}function u(t,n){return t?e.normalizeCustomerAddress({recipient_name:n,line1:t.line1??null,line2:t.line2??null,city:t.city??null,state:t.state??null,postal_code:t.postal_code??null,country_code:t.country??null}):null}function d(t){let n=t??{};return e.normalizeOrderCustomerDetails({email:typeof n.email==`string`?n.email:null,name:typeof n.name==`string`?n.name:null,phone:typeof n.phone==`string`?n.phone:null,billing:n.billing??null,shipping:n.shipping??null})}async function f(o){let f=l(),p=await r.getStripeClient(),m=o;try{m=await p.checkout.sessions.retrieve(o.id,{expand:[...s]})}catch(e){console.error(`[Stripe Sync] Failed to rehydrate session tax details:`,e)}let h=m.metadata?.orderId,g=f.from(`orders`).select(`id, user_id, status, total, currency, subtotal, shipping_total, tax_total, tax_details, customer_details`).eq(`stripe_session_id`,o.id).maybeSingle();h&&(g=f.from(`orders`).select(`id, user_id, status, total, currency, subtotal, shipping_total, tax_total, tax_details, customer_details`).eq(`id`,h).maybeSingle());let{data:_,error:v}=await g;if(v||!_)throw Error(v?.message||`Order lookup failed`);let y=d(_.customer_details),b=n.normalizeOrderTaxDetails(_.tax_details),x=u(m.customer_details?.address,m.customer_details?.name??y.name),S=m.shipping_details,C=m.collected_information?.shipping_details??S??null,w=u(C?.address,C?.name??y.name),T=e.normalizeOrderCustomerDetails({email:m.customer_details?.email??y.email,name:m.customer_details?.name??y.name,phone:m.customer_details?.phone??y.phone,billing:y.billing??x,shipping:y.shipping??w}),E=_.status===`paid`,D=await p.checkout.sessions.listLineItems(m.id,{limit:100,expand:[...c]}),O=n.buildOrderTaxDetailsFromStripeSession({session:m,lineItems:D.data,subtotal:typeof _.subtotal==`number`?_.subtotal:b?.subtotal??0,shippingTotal:typeof _.shipping_total==`number`?_.shipping_total:b?.shipping_total??0,fallbackMode:b?.mode??`automatic`,currency:(m.currency??_.currency??b?.currency??`USD`).toUpperCase()}),k=O.tax_total>0||O.lines.length>0?O:b??O,A=k?.tax_total??(typeof _.tax_total==`number`?_.tax_total:0),j=(m.currency??_.currency??k?.currency??`USD`).toUpperCase(),M={status:`paid`,stripe_session_id:m.id,payment_intent_id:typeof m.payment_intent==`string`?m.payment_intent:null,provider:`stripe`,customer_details:T,total:typeof m.amount_total==`number`?m.amount_total:_.total,currency:j,tax_total:A,tax_details:k},{error:N}=await f.from(`orders`).update(M).eq(`id`,_.id);if(N)throw Error(N.message);if(_.user_id)try{await t.upsertDefaultUserAddresses({userId:_.user_id,billingAddress:T.billing,shippingAddress:T.shipping,client:f})}catch(e){console.error(`[Stripe Sync] Failed to refresh saved customer addresses:`,e)}let P=await a.assignInvoiceMetadata({orderId:_.id,client:f});return await i.applyOrderInventoryDeduction(f,_.id),{orderId:_.id,alreadyPaid:E,customerDetails:T,order:{id:_.id,invoice_number:P.invoiceNumber,paid_at:P.paidAt,total:M.total,currency:j,subtotal:typeof _.subtotal==`number`?_.subtotal:k?.subtotal??0,shipping_total:typeof _.shipping_total==`number`?_.shipping_total:k?.shipping_total??0,tax_total:A,tax_details:k}}}exports.syncStripeOrderFromSession=f;
|
|
@@ -4,6 +4,7 @@ import { buildOrderTaxDetailsFromStripeSession as r, normalizeOrderTaxDetails as
|
|
|
4
4
|
import { getStripeClient as a } from "./client.es.js";
|
|
5
5
|
import { applyOrderInventoryDeduction as o } from "../order-inventory.es.js";
|
|
6
6
|
import { assignInvoiceMetadata as s } from "../invoice-server.es.js";
|
|
7
|
+
import "server-only";
|
|
7
8
|
import { createClient as c } from "@supabase/supabase-js";
|
|
8
9
|
//#region src/lib/stripe/order-sync.ts
|
|
9
10
|
var l = ["total_details.breakdown"], u = ["data.taxes.rate"];
|
package/lib/stripe/webhooks.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../payment-config.cjs"),t=require("./client.cjs"),n=require("./order-sync.cjs");var
|
|
1
|
+
const e=require("../payment-config.cjs"),t=require("./client.cjs"),n=require("./order-sync.cjs");function r(e){return e.payment_status===`paid`||e.payment_status===`no_payment_required`}var i=async(i,a)=>{let o=await e.resolveStripeWebhookSecret();if(!o)return console.error(`Missing Stripe webhook secret (configure it in CMS or STRIPE_WEBHOOK_SECRET)`),{received:!1,error:`Server configuration error`};let s=await t.getStripeClient(),c;try{c=s.webhooks.constructEvent(a,i,o)}catch(e){return console.error(`Webhook signature verification failed: ${e.message}`),{received:!1,error:`Webhook Error: ${e.message}`}}switch(c.type){case`checkout.session.completed`:case`checkout.session.async_payment_succeeded`:{let e=c.data.object;if(!r(e)){console.log(`[Stripe Webhook] Session ${e.id} is ${e.payment_status}; waiting for the payment to settle`);break}try{await n.syncStripeOrderFromSession(e)}catch(e){return console.error(`[Stripe Webhook Error] Failed to sync completed session:`,e),{received:!1,error:e.message||`Failed to sync Stripe session`}}break}case`checkout.session.async_payment_failed`:{let e=c.data.object;console.warn(`[Stripe Webhook] Delayed payment failed for session ${e.id}; order stays unpaid`);break}default:console.log(`Unhandled event type ${c.type}`)}return{received:!0}};exports.handleStripeWebhook=i,exports.isStripeSessionSettled=r;
|
package/lib/stripe/webhooks.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
import { default as Stripe } from 'stripe';
|
|
2
|
+
/**
|
|
3
|
+
* Only a session whose money has actually arrived may mark an order paid (which also issues the
|
|
4
|
+
* invoice and deducts stock). With a delayed payment method enabled in the Stripe dashboard
|
|
5
|
+
* (SEPA/ACH/Bacs debit, Boleto, OXXO, Konbini, bank transfer), `checkout.session.completed`
|
|
6
|
+
* arrives with `payment_status: 'unpaid'` and the money follows, or never does, in
|
|
7
|
+
* `checkout.session.async_payment_succeeded` / `_failed`. Until 2026-10-21 the completed event
|
|
8
|
+
* alone marked the order paid, so a buyer could pick a voucher, never pay, and receive the goods.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isStripeSessionSettled(session: Pick<Stripe.Checkout.Session, 'payment_status'>): boolean;
|
|
1
11
|
export declare const handleStripeWebhook: (signature: string, body: string | Buffer) => Promise<{
|
|
2
12
|
received: boolean;
|
|
3
13
|
error?: string;
|
|
@@ -2,24 +2,32 @@ import { resolveStripeWebhookSecret as e } from "../payment-config.es.js";
|
|
|
2
2
|
import { getStripeClient as t } from "./client.es.js";
|
|
3
3
|
import { syncStripeOrderFromSession as n } from "./order-sync.es.js";
|
|
4
4
|
//#region src/lib/stripe/webhooks.ts
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function r(e) {
|
|
6
|
+
return e.payment_status === "paid" || e.payment_status === "no_payment_required";
|
|
7
|
+
}
|
|
8
|
+
var i = async (i, a) => {
|
|
9
|
+
let o = await e();
|
|
10
|
+
if (!o) return console.error("Missing Stripe webhook secret (configure it in CMS or STRIPE_WEBHOOK_SECRET)"), {
|
|
8
11
|
received: !1,
|
|
9
12
|
error: "Server configuration error"
|
|
10
13
|
};
|
|
11
|
-
let
|
|
14
|
+
let s = await t(), c;
|
|
12
15
|
try {
|
|
13
|
-
|
|
16
|
+
c = s.webhooks.constructEvent(a, i, o);
|
|
14
17
|
} catch (e) {
|
|
15
18
|
return console.error(`Webhook signature verification failed: ${e.message}`), {
|
|
16
19
|
received: !1,
|
|
17
20
|
error: `Webhook Error: ${e.message}`
|
|
18
21
|
};
|
|
19
22
|
}
|
|
20
|
-
switch (
|
|
21
|
-
case "checkout.session.completed":
|
|
22
|
-
|
|
23
|
+
switch (c.type) {
|
|
24
|
+
case "checkout.session.completed":
|
|
25
|
+
case "checkout.session.async_payment_succeeded": {
|
|
26
|
+
let e = c.data.object;
|
|
27
|
+
if (!r(e)) {
|
|
28
|
+
console.log(`[Stripe Webhook] Session ${e.id} is ${e.payment_status}; waiting for the payment to settle`);
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
23
31
|
try {
|
|
24
32
|
await n(e);
|
|
25
33
|
} catch (e) {
|
|
@@ -30,9 +38,14 @@ var r = async (r, i) => {
|
|
|
30
38
|
}
|
|
31
39
|
break;
|
|
32
40
|
}
|
|
33
|
-
|
|
41
|
+
case "checkout.session.async_payment_failed": {
|
|
42
|
+
let e = c.data.object;
|
|
43
|
+
console.warn(`[Stripe Webhook] Delayed payment failed for session ${e.id}; order stays unpaid`);
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
default: console.log(`Unhandled event type ${c.type}`);
|
|
34
47
|
}
|
|
35
48
|
return { received: !0 };
|
|
36
49
|
};
|
|
37
50
|
//#endregion
|
|
38
|
-
export {
|
|
51
|
+
export { i as handleStripeWebhook, r as isStripeSessionSettled };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextblock-cms/ecom",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.3",
|
|
4
4
|
"license": "AGPL-3.0-or-later",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
},
|
|
13
13
|
"type": "module",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@nextblock-cms/db": "^0.22.
|
|
16
|
-
"@nextblock-cms/ui": "^0.22.
|
|
17
|
-
"@nextblock-cms/utils": "^0.22.
|
|
15
|
+
"@nextblock-cms/db": "^0.22.3",
|
|
16
|
+
"@nextblock-cms/ui": "^0.22.3",
|
|
17
|
+
"@nextblock-cms/utils": "^0.22.3",
|
|
18
18
|
"@freemius/checkout": "^1.5.1",
|
|
19
19
|
"@freemius/sdk": "^0.5.0",
|
|
20
20
|
"@hookform/resolvers": "^5.9.1",
|
package/server.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./lib/currency.cjs"),t=require("./lib/currency-constants.cjs"),n=require("./lib/coupon-server.cjs"),r=require("./lib/customer.cjs"),i=require("./lib/customer-addresses.cjs"),a=require("./lib/product-actions.cjs"),o=require("./lib/payment-config.cjs"),s=require("./lib/order-access-token.cjs"),c=require("./lib/providers/freemius.cjs"),l=require("./lib/pages/cms/products/actions.cjs"),u=require("./lib/invoice.cjs"),d=require("./lib/order-tax-details.cjs"),f=require("./lib/product-schema.cjs"),p=require("./lib/freemius-coupons.cjs"),m=require("./lib/pages/cms/products/server-actions.cjs"),h=require("./lib/stripe/client.cjs"),g=require("./lib/stripe/checkout.cjs"),_=require("./lib/order-inventory.cjs"),v=require("./lib/invoice-server.cjs"),y=require("./lib/stripe/order-sync.cjs"),b=require("./lib/stripe/webhooks.cjs"),x=require("./lib/freemius-license.cjs"),S=require("./lib/customer-orders.cjs"),C=require("./lib/freemius-license-claim.cjs"),w=require("./lib/freemius-trial-provision.cjs"),T=require("./lib/currency-sync.cjs"),E=require("./lib/providers/stripe.cjs"),D=require("./lib/factory.cjs"),O=require("./lib/freemius-order-sync.cjs"),k=require("./lib/pages/cms/payments/queries.cjs"),A=require("./lib/pages/cms/orders/actions.cjs"),j=require("./lib/pages/cms/orders/export-actions.cjs"),M=require("./lib/pages/cms/orders/ExportReportsDialog.cjs"),N=require("./lib/pages/cms/orders/OrdersPage.cjs"),P=require("./lib/pages/cms/orders/OrderDetailPage.cjs");require("./lib/pages/cms/orders/index.cjs");const F=require("./lib/pages/cms/products/ProductsPage.cjs"),I=require("./lib/pages/cms/products/inventory/InventoryPage.cjs"),L=require("./lib/pages/cms/products/attributes/AttributeManagementPage.cjs"),R=require("./lib/pages/cms/products/new/NewProductPage.cjs"),z=require("./lib/pages/cms/products/[id]/edit/EditProductPage.cjs"),B=require("./lib/pages/cms/products/components/CopyProductFromLanguage.cjs"),V=require("./lib/pages/cms/products/categories/CategoryManagementPage.cjs");require("./lib/pages/cms/products/index.cjs");const H=require("./lib/pages/cms/payments/actions.cjs"),U=require("./lib/pages/cms/payments/PaymentsPage.cjs");require("./lib/pages/cms/payments/index.cjs");const W=require("./lib/pages/cms/shipping/server-actions.cjs"),G=require("./lib/pages/cms/shipping/ShippingPage.cjs");require("./lib/pages/cms/shipping/index.cjs");const K=require("./lib/pages/cms/taxes/actions.cjs"),q=require("./lib/pages/cms/taxes/TaxesPage.cjs");require("./lib/pages/cms/taxes/index.cjs");const J=require("./lib/pages/cms/coupons/CouponsPage.cjs"),Y=require("./lib/pages/cms/coupons/EditCouponPage.cjs");require("./lib/pages/cms/coupons/index.cjs"),exports.AttributeManagementPage=L.AttributeManagementPage,exports.COUPON_VALIDATION_UNKNOWN_CLIENT_KEY=n.COUPON_VALIDATION_UNKNOWN_CLIENT_KEY,exports.CURRENCY_COOKIE_NAME=t.CURRENCY_COOKIE_NAME,exports.CURRENCY_ROUNDING_MODES=e.CURRENCY_ROUNDING_MODES,exports.CategoryManagementPage=V.CategoryManagementPage,exports.CopyProductFromLanguage=B.CopyProductFromLanguage,exports.CouponsPage=J.CouponsPage,exports.DEFAULT_INVOICE_SETTINGS=u.DEFAULT_INVOICE_SETTINGS,exports.EditCouponPage=Y.EditCouponPage,exports.EditProductPage=z.EditProductPage,exports.ExportReportsDialog=M.ExportReportsDialog,exports.FREEMIUS_LICENSE_CLAIM_MAX_AGE_MINUTES=C.FREEMIUS_LICENSE_CLAIM_MAX_AGE_MINUTES,exports.FREEMIUS_LICENSE_CLAIM_REFUSED_MESSAGE=C.FREEMIUS_LICENSE_CLAIM_REFUSED_MESSAGE,exports.FREEMIUS_TRIAL_ALREADY_USED_MESSAGE=w.FREEMIUS_TRIAL_ALREADY_USED_MESSAGE,exports.FREEMIUS_TRIAL_PROVISION_FAILED_MESSAGE=w.FREEMIUS_TRIAL_PROVISION_FAILED_MESSAGE,exports.FreemiusProvider=c.FreemiusProvider,exports.INVOICE_SETTINGS_KEY=u.INVOICE_SETTINGS_KEY,exports.InventoryPage=I.InventoryPage,exports.NewProductPage=R.NewProductPage,exports.OrderDetailPage=P.OrderDetailPage,exports.OrdersPage=N.OrdersPage,exports.PaymentsPage=U.PaymentsPage,exports.ProductsPage=F.ProductsPage,exports.ShippingPage=G.ShippingPage,exports.StripeNotConfiguredError=h.StripeNotConfiguredError,exports.StripeProvider=E.StripeProvider,exports.TaxesPage=q.TaxesPage,exports.addressesMatch=r.addressesMatch,exports.aggregateOrderTaxLines=d.aggregateOrderTaxLines,exports.applyCurrencyRounding=e.applyCurrencyRounding,exports.applyOrderInventoryDeduction=_.applyOrderInventoryDeduction,exports.assignInvoiceMetadata=v.assignInvoiceMetadata,exports.buildOrderTaxDetailsFromCalculation=d.buildOrderTaxDetailsFromCalculation,exports.buildOrderTaxDetailsFromStripeSession=d.buildOrderTaxDetailsFromStripeSession,exports.claimFreemiusLicenseKey=C.claimFreemiusLicenseKey,exports.clearAutoSyncedCurrencyPriceOverrides=T.clearAutoSyncedCurrencyPriceOverrides,exports.clearPaymentConfigCache=o.clearPaymentConfigCache,exports.computeTrialExpiry=w.computeTrialExpiry,exports.consumeCouponValidationToken=n.consumeCouponValidationToken,exports.convertMinorUnitAmount=e.convertMinorUnitAmount,exports.copyProductFromLanguage=a.copyProductFromLanguage,exports.createCategoryAction=m.createCategoryAction,exports.createCheckoutSession=g.createCheckoutSession,exports.createCouponValidationThrottle=n.createCouponValidationThrottle,exports.createProduct=a.createProduct,exports.createProductAction=m.createProductAction,exports.createShippingRate=W.createShippingRate,exports.createShippingZone=W.createShippingZone,exports.deleteCategoryAction=m.deleteCategoryAction,exports.deleteCouponFromFreemius=p.deleteCouponFromFreemius,exports.deleteProduct=a.deleteProduct,exports.deleteProductAction=m.deleteProductAction,exports.deleteShippingRate=W.deleteShippingRate,exports.deleteShippingZone=W.deleteShippingZone,exports.deleteTaxRateAction=K.deleteTaxRateAction,exports.describeCurrencyRoundingRule=e.describeCurrencyRoundingRule,exports.emptyCustomerAddress=r.emptyCustomerAddress,exports.evaluateFreemiusLicenseClaim=C.evaluateFreemiusLicenseClaim,exports.evaluateTrialEligibility=w.evaluateTrialEligibility,exports.extractFreemiusCheckoutMetadata=O.extractFreemiusCheckoutMetadata,exports.fetchOrderReportData=j.fetchOrderReportData,exports.fetchTranslatedProductsForCartInternal=a.fetchTranslatedProductsForCartInternal,exports.fillMissingUserProfileCheckoutDetails=i.fillMissingUserProfileCheckoutDetails,exports.formatFreemiusTimestamp=w.formatFreemiusTimestamp,exports.formatInvoiceCurrency=u.formatInvoiceCurrency,exports.formatInvoiceDate=u.formatInvoiceDate,exports.getCategoriesWithCount=l.getCategoriesWithCount,exports.getCategoryBySlug=l.getCategoryBySlug,exports.getCmsProduct=l.getProduct,exports.getCmsProducts=l.getProducts,exports.getCouponQuote=n.getCouponQuote,exports.getCurrencyLookup=e.getCurrencyLookup,exports.getCurrentCustomerOrder=S.getCurrentCustomerOrder,exports.getCurrentCustomerOrderInvoice=S.getCurrentCustomerOrderInvoice,exports.getCurrentCustomerOrders=S.getCurrentCustomerOrders,exports.getDefaultCurrency=e.getDefaultCurrency,exports.getDefaultUserAddresses=i.getDefaultUserAddresses,exports.getEnabledPaymentProviders=k.getEnabledPaymentProviders,exports.getExchangeRateForCurrency=e.getExchangeRateForCurrency,exports.getFreemiusOrderLicense=x.getFreemiusOrderLicense,exports.getFreemiusWebhookSecretCandidates=O.getFreemiusWebhookSecretCandidates,exports.getGlobalProductAttributes=l.getGlobalProductAttributes,exports.getInvoiceAddressLines=u.getInvoiceAddressLines,exports.getInvoiceBrandingData=v.getInvoiceBrandingData,exports.getInvoiceOrder=v.getInvoiceOrder,exports.getInvoicePresentationData=v.getInvoicePresentationData,exports.getOrderDetails=A.getOrderDetails,exports.getOrderTaxRateJurisdiction=d.getOrderTaxRateJurisdiction,exports.getOrderTaxRateLabel=d.getOrderTaxRateLabel,exports.getOrderTaxRatePercentage=d.getOrderTaxRatePercentage,exports.getOrders=A.getOrders,exports.getPaymentConfigStatus=o.getPaymentConfigStatus,exports.getPaymentCredentialsView=o.getPaymentCredentialsView,exports.getPaymentProvider=D.getPaymentProvider,exports.getPaymentSettings=k.getPaymentSettings,exports.getProduct=a.getProduct,exports.getProductBySlug=a.getProductBySlug,exports.getProductCategories=l.getProductCategories,exports.getProductTranslations=l.getProductTranslations,exports.getProducts=a.getProducts,exports.getProviderReadiness=k.getProviderReadiness,exports.getQuoteLineDiscountMap=n.getQuoteLineDiscountMap,exports.getReadinessForProductType=k.getReadinessForProductType,exports.getStoreConfigStatus=k.getStoreConfigStatus,exports.getStoreReadiness=k.getStoreReadiness,exports.getStripeClient=h.getStripeClient,exports.handleStripeWebhook=b.handleStripeWebhook,exports.hydrateFreemiusEnvFromDb=o.hydrateFreemiusEnvFromDb,exports.inferCurrencyCodeFromLocale=e.inferCurrencyCodeFromLocale,exports.isCustomerAddressComplete=r.isCustomerAddressComplete,exports.isSaleWindowActive=e.isSaleWindowActive,exports.isScheduledPriceDue=e.isScheduledPriceDue,exports.mintOrderAccessToken=s.mintOrderAccessToken,exports.normalizeCurrencyRecord=e.normalizeCurrencyRecord,exports.normalizeCurrencyRoundingMode=e.normalizeCurrencyRoundingMode,exports.normalizeCustomerAddress=r.normalizeCustomerAddress,exports.normalizeInvoiceSettings=u.normalizeInvoiceSettings,exports.normalizeOrderCustomerDetails=r.normalizeOrderCustomerDetails,exports.normalizeOrderTaxDetails=d.normalizeOrderTaxDetails,exports.normalizePriceMap=e.normalizePriceMap,exports.normalizeSalePriceMap=e.normalizeSalePriceMap,exports.parseFreemiusCheckoutCredentialsMap=c.parseFreemiusCheckoutCredentialsMap,exports.parseFreemiusTimestamp=C.parseFreemiusTimestamp,exports.pickTrialPricing=w.pickTrialPricing,exports.productSchema=f.productSchema,exports.provisionFreemiusTrialLicense=w.provisionFreemiusTrialLicense,exports.publishProductAction=m.publishProductAction,exports.readFreemiusEnvValue=c.readFreemiusEnvValue,exports.rebaseStoreCurrencyExchangeRates=T.rebaseStoreCurrencyExchangeRates,exports.recordCouponRedemption=n.recordCouponRedemption,exports.resolveCouponValidationThrottleKey=n.resolveCouponValidationThrottleKey,exports.resolveEffectivePriceForCurrency=e.resolveEffectivePriceForCurrency,exports.resolveFreemiusCheckoutCredentials=c.resolveFreemiusCheckoutCredentials,exports.resolveFreemiusStatusFromCheckoutResponse=O.resolveFreemiusStatusFromCheckoutResponse,exports.resolveFreemiusStatusFromWebhookEvent=O.resolveFreemiusStatusFromWebhookEvent,exports.resolvePriceForCurrency=e.resolvePriceForCurrency,exports.resolvePriceRangeForCurrency=e.resolvePriceRangeForCurrency,exports.resolveStripePublishableKey=o.resolveStripePublishableKey,exports.resolveStripeSecretKey=o.resolveStripeSecretKey,exports.resolveStripeWebhookSecret=o.resolveStripeWebhookSecret,exports.savePaymentCredentials=o.savePaymentCredentials,exports.savePaymentProviderCredentials=H.savePaymentProviderCredentials,exports.saveTaxRateAction=K.saveTaxRateAction,exports.serializeInvoiceSettings=u.serializeInvoiceSettings,exports.sortCurrencies=e.sortCurrencies,exports.syncCategoriesForTranslationGroup=a.syncCategoriesForTranslationGroup,exports.syncCouponToFreemius=p.syncCouponToFreemius,exports.syncFreemiusCheckoutOrder=O.syncFreemiusCheckoutOrder,exports.syncFreemiusOrderFromWebhookEvent=O.syncFreemiusOrderFromWebhookEvent,exports.syncFreemiusProductsToSupabase=c.syncFreemiusProductsToSupabase,exports.syncProductCategoriesAction=m.syncProductCategoriesAction,exports.syncProductSaleCouponToFreemius=p.syncProductSaleCouponToFreemius,exports.syncSingleFreemiusProduct=c.syncSingleFreemiusProduct,exports.syncStoreCurrencyRates=T.syncStoreCurrencyRates,exports.syncStripeOrderFromSession=y.syncStripeOrderFromSession,exports.updateCategoryAction=m.updateCategoryAction,exports.updateInventoryTrackingAction=W.updateInventoryTrackingAction,exports.updatePaymentSettings=H.updatePaymentSettings,exports.updateProduct=a.updateProduct,exports.updateProductAction=m.updateProductAction,exports.updateShippingRate=W.updateShippingRate,exports.updateShippingZone=W.updateShippingZone,exports.updateTaxSettingsAction=K.updateTaxSettingsAction,exports.upsertDefaultUserAddresses=i.upsertDefaultUserAddresses,exports.verifyFreemiusWebhookSignature=O.verifyFreemiusWebhookSignature,exports.verifyOrderAccessToken=s.verifyOrderAccessToken;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./lib/currency.cjs"),t=require("./lib/currency-constants.cjs"),n=require("./lib/coupon-server.cjs"),r=require("./lib/customer.cjs"),i=require("./lib/customer-addresses.cjs"),a=require("./lib/product-actions.cjs"),o=require("./lib/payment-config.cjs"),s=require("./lib/order-access-token.cjs"),c=require("./lib/providers/freemius.cjs"),l=require("./lib/pages/cms/products/actions.cjs"),u=require("./lib/invoice.cjs"),d=require("./lib/order-tax-details.cjs"),f=require("./lib/product-schema.cjs"),p=require("./lib/freemius-coupons.cjs"),m=require("./lib/pages/cms/products/server-actions.cjs"),h=require("./lib/stripe/client.cjs"),g=require("./lib/stripe/checkout.cjs"),_=require("./lib/order-inventory.cjs"),v=require("./lib/invoice-server.cjs"),y=require("./lib/stripe/order-sync.cjs"),b=require("./lib/stripe/webhooks.cjs"),x=require("./lib/freemius-license-claim.cjs"),S=require("./lib/freemius-license.cjs"),C=require("./lib/customer-orders.cjs"),w=require("./lib/freemius-trial-provision.cjs"),T=require("./lib/currency-sync.cjs"),E=require("./lib/providers/stripe.cjs"),D=require("./lib/factory.cjs"),O=require("./lib/freemius-order-sync.cjs"),k=require("./lib/pages/cms/payments/queries.cjs"),A=require("./lib/pages/cms/orders/actions.cjs"),j=require("./lib/pages/cms/orders/export-actions.cjs"),M=require("./lib/pages/cms/orders/ExportReportsDialog.cjs"),N=require("./lib/pages/cms/orders/OrdersPage.cjs"),P=require("./lib/pages/cms/orders/OrderDetailPage.cjs");require("./lib/pages/cms/orders/index.cjs");const F=require("./lib/pages/cms/products/ProductsPage.cjs"),I=require("./lib/pages/cms/products/inventory/InventoryPage.cjs"),L=require("./lib/pages/cms/products/attributes/AttributeManagementPage.cjs"),R=require("./lib/pages/cms/products/new/NewProductPage.cjs"),z=require("./lib/pages/cms/products/[id]/edit/EditProductPage.cjs"),B=require("./lib/pages/cms/products/components/CopyProductFromLanguage.cjs"),V=require("./lib/pages/cms/products/categories/CategoryManagementPage.cjs");require("./lib/pages/cms/products/index.cjs");const H=require("./lib/pages/cms/payments/actions.cjs"),U=require("./lib/pages/cms/payments/PaymentsPage.cjs");require("./lib/pages/cms/payments/index.cjs");const W=require("./lib/pages/cms/shipping/server-actions.cjs"),G=require("./lib/pages/cms/shipping/ShippingPage.cjs");require("./lib/pages/cms/shipping/index.cjs");const K=require("./lib/pages/cms/taxes/actions.cjs"),q=require("./lib/pages/cms/taxes/TaxesPage.cjs");require("./lib/pages/cms/taxes/index.cjs");const J=require("./lib/pages/cms/coupons/CouponsPage.cjs"),Y=require("./lib/pages/cms/coupons/EditCouponPage.cjs");require("./lib/pages/cms/coupons/index.cjs"),exports.AttributeManagementPage=L.AttributeManagementPage,exports.COUPON_VALIDATION_UNKNOWN_CLIENT_KEY=n.COUPON_VALIDATION_UNKNOWN_CLIENT_KEY,exports.CURRENCY_COOKIE_NAME=t.CURRENCY_COOKIE_NAME,exports.CURRENCY_ROUNDING_MODES=e.CURRENCY_ROUNDING_MODES,exports.CategoryManagementPage=V.CategoryManagementPage,exports.CopyProductFromLanguage=B.CopyProductFromLanguage,exports.CouponsPage=J.CouponsPage,exports.DEFAULT_INVOICE_SETTINGS=u.DEFAULT_INVOICE_SETTINGS,exports.EditCouponPage=Y.EditCouponPage,exports.EditProductPage=z.EditProductPage,exports.ExportReportsDialog=M.ExportReportsDialog,exports.FREEMIUS_CHECKOUT_SYNC_REFUSED_MESSAGE=O.FREEMIUS_CHECKOUT_SYNC_REFUSED_MESSAGE,exports.FREEMIUS_LICENSE_CLAIM_MAX_AGE_MINUTES=x.FREEMIUS_LICENSE_CLAIM_MAX_AGE_MINUTES,exports.FREEMIUS_LICENSE_CLAIM_REFUSED_MESSAGE=x.FREEMIUS_LICENSE_CLAIM_REFUSED_MESSAGE,exports.FREEMIUS_TRIAL_ALREADY_USED_MESSAGE=w.FREEMIUS_TRIAL_ALREADY_USED_MESSAGE,exports.FREEMIUS_TRIAL_PROVISION_FAILED_MESSAGE=w.FREEMIUS_TRIAL_PROVISION_FAILED_MESSAGE,exports.FreemiusProvider=c.FreemiusProvider,exports.INVOICE_SETTINGS_KEY=u.INVOICE_SETTINGS_KEY,exports.InventoryPage=I.InventoryPage,exports.NewProductPage=R.NewProductPage,exports.OrderDetailPage=P.OrderDetailPage,exports.OrdersPage=N.OrdersPage,exports.PaymentsPage=U.PaymentsPage,exports.ProductsPage=F.ProductsPage,exports.ShippingPage=G.ShippingPage,exports.StripeNotConfiguredError=h.StripeNotConfiguredError,exports.StripeProvider=E.StripeProvider,exports.TaxesPage=q.TaxesPage,exports.addressesMatch=r.addressesMatch,exports.aggregateOrderTaxLines=d.aggregateOrderTaxLines,exports.applyCurrencyRounding=e.applyCurrencyRounding,exports.applyOrderInventoryDeduction=_.applyOrderInventoryDeduction,exports.assignInvoiceMetadata=v.assignInvoiceMetadata,exports.buildOrderTaxDetailsFromCalculation=d.buildOrderTaxDetailsFromCalculation,exports.buildOrderTaxDetailsFromStripeSession=d.buildOrderTaxDetailsFromStripeSession,exports.claimFreemiusLicenseKey=x.claimFreemiusLicenseKey,exports.clearAutoSyncedCurrencyPriceOverrides=T.clearAutoSyncedCurrencyPriceOverrides,exports.clearPaymentConfigCache=o.clearPaymentConfigCache,exports.computeTrialExpiry=w.computeTrialExpiry,exports.consumeCouponValidationToken=n.consumeCouponValidationToken,exports.convertMinorUnitAmount=e.convertMinorUnitAmount,exports.copyProductFromLanguage=a.copyProductFromLanguage,exports.createCategoryAction=m.createCategoryAction,exports.createCheckoutSession=g.createCheckoutSession,exports.createCouponValidationThrottle=n.createCouponValidationThrottle,exports.createProduct=a.createProduct,exports.createProductAction=m.createProductAction,exports.createShippingRate=W.createShippingRate,exports.createShippingZone=W.createShippingZone,exports.deleteCategoryAction=m.deleteCategoryAction,exports.deleteCouponFromFreemius=p.deleteCouponFromFreemius,exports.deleteProduct=a.deleteProduct,exports.deleteProductAction=m.deleteProductAction,exports.deleteShippingRate=W.deleteShippingRate,exports.deleteShippingZone=W.deleteShippingZone,exports.deleteTaxRateAction=K.deleteTaxRateAction,exports.describeCurrencyRoundingRule=e.describeCurrencyRoundingRule,exports.emptyCustomerAddress=r.emptyCustomerAddress,exports.evaluateFreemiusCheckoutLicense=O.evaluateFreemiusCheckoutLicense,exports.evaluateFreemiusLicenseClaim=x.evaluateFreemiusLicenseClaim,exports.evaluateTrialEligibility=w.evaluateTrialEligibility,exports.extractFreemiusCheckoutMetadata=O.extractFreemiusCheckoutMetadata,exports.fetchOrderReportData=j.fetchOrderReportData,exports.fetchTranslatedProductsForCartInternal=a.fetchTranslatedProductsForCartInternal,exports.fillMissingUserProfileCheckoutDetails=i.fillMissingUserProfileCheckoutDetails,exports.formatFreemiusTimestamp=w.formatFreemiusTimestamp,exports.formatInvoiceCurrency=u.formatInvoiceCurrency,exports.formatInvoiceDate=u.formatInvoiceDate,exports.getCategoriesWithCount=l.getCategoriesWithCount,exports.getCategoryBySlug=l.getCategoryBySlug,exports.getCmsProduct=l.getProduct,exports.getCmsProducts=l.getProducts,exports.getCouponQuote=n.getCouponQuote,exports.getCurrencyLookup=e.getCurrencyLookup,exports.getCurrentCustomerOrder=C.getCurrentCustomerOrder,exports.getCurrentCustomerOrderInvoice=C.getCurrentCustomerOrderInvoice,exports.getCurrentCustomerOrders=C.getCurrentCustomerOrders,exports.getDefaultCurrency=e.getDefaultCurrency,exports.getDefaultUserAddresses=i.getDefaultUserAddresses,exports.getEnabledPaymentProviders=k.getEnabledPaymentProviders,exports.getExchangeRateForCurrency=e.getExchangeRateForCurrency,exports.getFreemiusOrderLicense=S.getFreemiusOrderLicense,exports.getFreemiusWebhookSecretCandidates=O.getFreemiusWebhookSecretCandidates,exports.getGlobalProductAttributes=l.getGlobalProductAttributes,exports.getInvoiceAddressLines=u.getInvoiceAddressLines,exports.getInvoiceBrandingData=v.getInvoiceBrandingData,exports.getInvoiceOrder=v.getInvoiceOrder,exports.getInvoicePresentationData=v.getInvoicePresentationData,exports.getOrderDetails=A.getOrderDetails,exports.getOrderTaxRateJurisdiction=d.getOrderTaxRateJurisdiction,exports.getOrderTaxRateLabel=d.getOrderTaxRateLabel,exports.getOrderTaxRatePercentage=d.getOrderTaxRatePercentage,exports.getOrders=A.getOrders,exports.getPaymentConfigStatus=o.getPaymentConfigStatus,exports.getPaymentCredentialsView=o.getPaymentCredentialsView,exports.getPaymentProvider=D.getPaymentProvider,exports.getPaymentSettings=k.getPaymentSettings,exports.getProduct=a.getProduct,exports.getProductBySlug=a.getProductBySlug,exports.getProductCategories=l.getProductCategories,exports.getProductTranslations=l.getProductTranslations,exports.getProducts=a.getProducts,exports.getProviderReadiness=k.getProviderReadiness,exports.getQuoteLineDiscountMap=n.getQuoteLineDiscountMap,exports.getReadinessForProductType=k.getReadinessForProductType,exports.getStoreConfigStatus=k.getStoreConfigStatus,exports.getStoreReadiness=k.getStoreReadiness,exports.getStripeClient=h.getStripeClient,exports.handleStripeWebhook=b.handleStripeWebhook,exports.hydrateFreemiusEnvFromDb=o.hydrateFreemiusEnvFromDb,exports.inferCurrencyCodeFromLocale=e.inferCurrencyCodeFromLocale,exports.isCustomerAddressComplete=r.isCustomerAddressComplete,exports.isSaleWindowActive=e.isSaleWindowActive,exports.isScheduledPriceDue=e.isScheduledPriceDue,exports.isStripeSessionSettled=b.isStripeSessionSettled,exports.mintOrderAccessToken=s.mintOrderAccessToken,exports.normalizeCurrencyRecord=e.normalizeCurrencyRecord,exports.normalizeCurrencyRoundingMode=e.normalizeCurrencyRoundingMode,exports.normalizeCustomerAddress=r.normalizeCustomerAddress,exports.normalizeInvoiceSettings=u.normalizeInvoiceSettings,exports.normalizeOrderCustomerDetails=r.normalizeOrderCustomerDetails,exports.normalizeOrderTaxDetails=d.normalizeOrderTaxDetails,exports.normalizePriceMap=e.normalizePriceMap,exports.normalizeSalePriceMap=e.normalizeSalePriceMap,exports.parseFreemiusCheckoutCredentialsMap=c.parseFreemiusCheckoutCredentialsMap,exports.parseFreemiusTimestamp=x.parseFreemiusTimestamp,exports.pickTrialPricing=w.pickTrialPricing,exports.productSchema=f.productSchema,exports.provisionFreemiusTrialLicense=w.provisionFreemiusTrialLicense,exports.publishProductAction=m.publishProductAction,exports.readFreemiusEnvValue=c.readFreemiusEnvValue,exports.rebaseStoreCurrencyExchangeRates=T.rebaseStoreCurrencyExchangeRates,exports.recordCouponRedemption=n.recordCouponRedemption,exports.resolveCouponValidationThrottleKey=n.resolveCouponValidationThrottleKey,exports.resolveEffectivePriceForCurrency=e.resolveEffectivePriceForCurrency,exports.resolveFreemiusCheckoutCredentials=c.resolveFreemiusCheckoutCredentials,exports.resolveFreemiusStatusFromCheckoutResponse=O.resolveFreemiusStatusFromCheckoutResponse,exports.resolveFreemiusStatusFromWebhookEvent=O.resolveFreemiusStatusFromWebhookEvent,exports.resolvePriceForCurrency=e.resolvePriceForCurrency,exports.resolvePriceRangeForCurrency=e.resolvePriceRangeForCurrency,exports.resolveStripePublishableKey=o.resolveStripePublishableKey,exports.resolveStripeSecretKey=o.resolveStripeSecretKey,exports.resolveStripeWebhookSecret=o.resolveStripeWebhookSecret,exports.retrieveFreemiusLicenseRecords=x.retrieveFreemiusLicenseRecords,exports.savePaymentCredentials=o.savePaymentCredentials,exports.savePaymentProviderCredentials=H.savePaymentProviderCredentials,exports.saveTaxRateAction=K.saveTaxRateAction,exports.serializeInvoiceSettings=u.serializeInvoiceSettings,exports.sortCurrencies=e.sortCurrencies,exports.syncCategoriesForTranslationGroup=a.syncCategoriesForTranslationGroup,exports.syncCouponToFreemius=p.syncCouponToFreemius,exports.syncFreemiusCheckoutOrder=O.syncFreemiusCheckoutOrder,exports.syncFreemiusOrderFromWebhookEvent=O.syncFreemiusOrderFromWebhookEvent,exports.syncFreemiusProductsToSupabase=c.syncFreemiusProductsToSupabase,exports.syncProductCategoriesAction=m.syncProductCategoriesAction,exports.syncProductSaleCouponToFreemius=p.syncProductSaleCouponToFreemius,exports.syncSingleFreemiusProduct=c.syncSingleFreemiusProduct,exports.syncStoreCurrencyRates=T.syncStoreCurrencyRates,exports.syncStripeOrderFromSession=y.syncStripeOrderFromSession,exports.updateCategoryAction=m.updateCategoryAction,exports.updateInventoryTrackingAction=W.updateInventoryTrackingAction,exports.updatePaymentSettings=H.updatePaymentSettings,exports.updateProduct=a.updateProduct,exports.updateProductAction=m.updateProductAction,exports.updateShippingRate=W.updateShippingRate,exports.updateShippingZone=W.updateShippingZone,exports.updateTaxSettingsAction=K.updateTaxSettingsAction,exports.upsertDefaultUserAddresses=i.upsertDefaultUserAddresses,exports.verifyFreemiusWebhookSignature=O.verifyFreemiusWebhookSignature,exports.verifyOrderAccessToken=s.verifyOrderAccessToken;
|
package/server.es.js
CHANGED
|
@@ -18,40 +18,40 @@ import { createCheckoutSession as Be } from "./lib/stripe/checkout.es.js";
|
|
|
18
18
|
import { applyOrderInventoryDeduction as Ve } from "./lib/order-inventory.es.js";
|
|
19
19
|
import { assignInvoiceMetadata as He, getInvoiceBrandingData as Ue, getInvoiceOrder as We, getInvoicePresentationData as Ge } from "./lib/invoice-server.es.js";
|
|
20
20
|
import { syncStripeOrderFromSession as Ke } from "./lib/stripe/order-sync.es.js";
|
|
21
|
-
import { handleStripeWebhook as qe } from "./lib/stripe/webhooks.es.js";
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import { FREEMIUS_TRIAL_ALREADY_USED_MESSAGE as
|
|
26
|
-
import { clearAutoSyncedCurrencyPriceOverrides as
|
|
27
|
-
import { StripeProvider as
|
|
28
|
-
import { getPaymentProvider as
|
|
29
|
-
import { extractFreemiusCheckoutMetadata as
|
|
30
|
-
import { getEnabledPaymentProviders as
|
|
31
|
-
import { getOrderDetails as
|
|
32
|
-
import { fetchOrderReportData as
|
|
33
|
-
import { ExportReportsDialog as
|
|
34
|
-
import { OrdersPage as
|
|
35
|
-
import { OrderDetailPage as
|
|
21
|
+
import { handleStripeWebhook as qe, isStripeSessionSettled as Je } from "./lib/stripe/webhooks.es.js";
|
|
22
|
+
import { FREEMIUS_LICENSE_CLAIM_MAX_AGE_MINUTES as Ye, FREEMIUS_LICENSE_CLAIM_REFUSED_MESSAGE as Xe, claimFreemiusLicenseKey as Ze, evaluateFreemiusLicenseClaim as Qe, parseFreemiusTimestamp as $e, retrieveFreemiusLicenseRecords as et } from "./lib/freemius-license-claim.es.js";
|
|
23
|
+
import { getFreemiusOrderLicense as tt } from "./lib/freemius-license.es.js";
|
|
24
|
+
import { getCurrentCustomerOrder as nt, getCurrentCustomerOrderInvoice as rt, getCurrentCustomerOrders as it } from "./lib/customer-orders.es.js";
|
|
25
|
+
import { FREEMIUS_TRIAL_ALREADY_USED_MESSAGE as at, FREEMIUS_TRIAL_PROVISION_FAILED_MESSAGE as ot, computeTrialExpiry as st, evaluateTrialEligibility as ct, formatFreemiusTimestamp as lt, pickTrialPricing as ut, provisionFreemiusTrialLicense as dt } from "./lib/freemius-trial-provision.es.js";
|
|
26
|
+
import { clearAutoSyncedCurrencyPriceOverrides as ft, rebaseStoreCurrencyExchangeRates as pt, syncStoreCurrencyRates as mt } from "./lib/currency-sync.es.js";
|
|
27
|
+
import { StripeProvider as ht } from "./lib/providers/stripe.es.js";
|
|
28
|
+
import { getPaymentProvider as gt } from "./lib/factory.es.js";
|
|
29
|
+
import { FREEMIUS_CHECKOUT_SYNC_REFUSED_MESSAGE as _t, evaluateFreemiusCheckoutLicense as vt, extractFreemiusCheckoutMetadata as yt, getFreemiusWebhookSecretCandidates as bt, resolveFreemiusStatusFromCheckoutResponse as xt, resolveFreemiusStatusFromWebhookEvent as St, syncFreemiusCheckoutOrder as Ct, syncFreemiusOrderFromWebhookEvent as wt, verifyFreemiusWebhookSignature as Tt } from "./lib/freemius-order-sync.es.js";
|
|
30
|
+
import { getEnabledPaymentProviders as Et, getPaymentSettings as Dt, getProviderReadiness as Ot, getReadinessForProductType as kt, getStoreConfigStatus as At, getStoreReadiness as jt } from "./lib/pages/cms/payments/queries.es.js";
|
|
31
|
+
import { getOrderDetails as Mt, getOrders as Nt } from "./lib/pages/cms/orders/actions.es.js";
|
|
32
|
+
import { fetchOrderReportData as Pt } from "./lib/pages/cms/orders/export-actions.es.js";
|
|
33
|
+
import { ExportReportsDialog as Ft } from "./lib/pages/cms/orders/ExportReportsDialog.es.js";
|
|
34
|
+
import { OrdersPage as It } from "./lib/pages/cms/orders/OrdersPage.es.js";
|
|
35
|
+
import { OrderDetailPage as Lt } from "./lib/pages/cms/orders/OrderDetailPage.es.js";
|
|
36
36
|
import "./lib/pages/cms/orders/index.es.js";
|
|
37
|
-
import { ProductsPage as
|
|
38
|
-
import { InventoryPage as
|
|
39
|
-
import { AttributeManagementPage as
|
|
40
|
-
import { NewProductPage as
|
|
41
|
-
import { EditProductPage as
|
|
42
|
-
import { CopyProductFromLanguage as
|
|
43
|
-
import { CategoryManagementPage as
|
|
37
|
+
import { ProductsPage as Rt } from "./lib/pages/cms/products/ProductsPage.es.js";
|
|
38
|
+
import { InventoryPage as zt } from "./lib/pages/cms/products/inventory/InventoryPage.es.js";
|
|
39
|
+
import { AttributeManagementPage as Bt } from "./lib/pages/cms/products/attributes/AttributeManagementPage.es.js";
|
|
40
|
+
import { NewProductPage as Vt } from "./lib/pages/cms/products/new/NewProductPage.es.js";
|
|
41
|
+
import { EditProductPage as Ht } from "./lib/pages/cms/products/[id]/edit/EditProductPage.es.js";
|
|
42
|
+
import { CopyProductFromLanguage as Ut } from "./lib/pages/cms/products/components/CopyProductFromLanguage.es.js";
|
|
43
|
+
import { CategoryManagementPage as Wt } from "./lib/pages/cms/products/categories/CategoryManagementPage.es.js";
|
|
44
44
|
import "./lib/pages/cms/products/index.es.js";
|
|
45
|
-
import { savePaymentProviderCredentials as
|
|
46
|
-
import { PaymentsPage as
|
|
45
|
+
import { savePaymentProviderCredentials as Gt, updatePaymentSettings as Kt } from "./lib/pages/cms/payments/actions.es.js";
|
|
46
|
+
import { PaymentsPage as qt } from "./lib/pages/cms/payments/PaymentsPage.es.js";
|
|
47
47
|
import "./lib/pages/cms/payments/index.es.js";
|
|
48
|
-
import { createShippingRate as
|
|
49
|
-
import { ShippingPage as
|
|
48
|
+
import { createShippingRate as Jt, createShippingZone as Yt, deleteShippingRate as Xt, deleteShippingZone as Zt, updateInventoryTrackingAction as Qt, updateShippingRate as $t, updateShippingZone as en } from "./lib/pages/cms/shipping/server-actions.es.js";
|
|
49
|
+
import { ShippingPage as tn } from "./lib/pages/cms/shipping/ShippingPage.es.js";
|
|
50
50
|
import "./lib/pages/cms/shipping/index.es.js";
|
|
51
|
-
import { deleteTaxRateAction as
|
|
52
|
-
import { TaxesPage as
|
|
51
|
+
import { deleteTaxRateAction as nn, saveTaxRateAction as rn, updateTaxSettingsAction as an } from "./lib/pages/cms/taxes/actions.es.js";
|
|
52
|
+
import { TaxesPage as on } from "./lib/pages/cms/taxes/TaxesPage.es.js";
|
|
53
53
|
import "./lib/pages/cms/taxes/index.es.js";
|
|
54
|
-
import { CouponsPage as
|
|
55
|
-
import { EditCouponPage as
|
|
54
|
+
import { CouponsPage as sn } from "./lib/pages/cms/coupons/CouponsPage.es.js";
|
|
55
|
+
import { EditCouponPage as cn } from "./lib/pages/cms/coupons/EditCouponPage.es.js";
|
|
56
56
|
import "./lib/pages/cms/coupons/index.es.js";
|
|
57
|
-
export {
|
|
57
|
+
export { Bt as AttributeManagementPage, y as COUPON_VALIDATION_UNKNOWN_CLIENT_KEY, v as CURRENCY_COOKIE_NAME, e as CURRENCY_ROUNDING_MODES, Wt as CategoryManagementPage, Ut as CopyProductFromLanguage, sn as CouponsPage, fe as DEFAULT_INVOICE_SETTINGS, cn as EditCouponPage, Ht as EditProductPage, Ft as ExportReportsDialog, _t as FREEMIUS_CHECKOUT_SYNC_REFUSED_MESSAGE, Ye as FREEMIUS_LICENSE_CLAIM_MAX_AGE_MINUTES, Xe as FREEMIUS_LICENSE_CLAIM_REFUSED_MESSAGE, at as FREEMIUS_TRIAL_ALREADY_USED_MESSAGE, ot as FREEMIUS_TRIAL_PROVISION_FAILED_MESSAGE, $ as FreemiusProvider, pe as INVOICE_SETTINGS_KEY, zt as InventoryPage, Vt as NewProductPage, Lt as OrderDetailPage, It as OrdersPage, qt as PaymentsPage, Rt as ProductsPage, tn as ShippingPage, Re as StripeNotConfiguredError, ht as StripeProvider, on as TaxesPage, E as addressesMatch, ye as aggregateOrderTaxLines, t as applyCurrencyRounding, Ve as applyOrderInventoryDeduction, He as assignInvoiceMetadata, be as buildOrderTaxDetailsFromCalculation, xe as buildOrderTaxDetailsFromStripeSession, Ze as claimFreemiusLicenseKey, ft as clearAutoSyncedCurrencyPriceOverrides, U as clearPaymentConfigCache, st as computeTrialExpiry, b as consumeCouponValidationToken, n as convertMinorUnitAmount, P as copyProductFromLanguage, Ae as createCategoryAction, Be as createCheckoutSession, x as createCouponValidationThrottle, F as createProduct, je as createProductAction, Jt as createShippingRate, Yt as createShippingZone, Me as deleteCategoryAction, De as deleteCouponFromFreemius, I as deleteProduct, Ne as deleteProductAction, Xt as deleteShippingRate, Zt as deleteShippingZone, nn as deleteTaxRateAction, r as describeCurrencyRoundingRule, D as emptyCustomerAddress, vt as evaluateFreemiusCheckoutLicense, Qe as evaluateFreemiusLicenseClaim, ct as evaluateTrialEligibility, yt as extractFreemiusCheckoutMetadata, Pt as fetchOrderReportData, L as fetchTranslatedProductsForCartInternal, j as fillMissingUserProfileCheckoutDetails, lt as formatFreemiusTimestamp, me as formatInvoiceCurrency, he as formatInvoiceDate, ae as getCategoriesWithCount, oe as getCategoryBySlug, ce as getCmsProduct, de as getCmsProducts, S as getCouponQuote, i as getCurrencyLookup, nt as getCurrentCustomerOrder, rt as getCurrentCustomerOrderInvoice, it as getCurrentCustomerOrders, a as getDefaultCurrency, M as getDefaultUserAddresses, Et as getEnabledPaymentProviders, o as getExchangeRateForCurrency, tt as getFreemiusOrderLicense, bt as getFreemiusWebhookSecretCandidates, se as getGlobalProductAttributes, ge as getInvoiceAddressLines, Ue as getInvoiceBrandingData, We as getInvoiceOrder, Ge as getInvoicePresentationData, Mt as getOrderDetails, Se as getOrderTaxRateJurisdiction, Ce as getOrderTaxRateLabel, we as getOrderTaxRatePercentage, Nt as getOrders, W as getPaymentConfigStatus, G as getPaymentCredentialsView, gt as getPaymentProvider, Dt as getPaymentSettings, R as getProduct, z as getProductBySlug, le as getProductCategories, ue as getProductTranslations, B as getProducts, Ot as getProviderReadiness, C as getQuoteLineDiscountMap, kt as getReadinessForProductType, At as getStoreConfigStatus, jt as getStoreReadiness, ze as getStripeClient, qe as handleStripeWebhook, K as hydrateFreemiusEnvFromDb, s as inferCurrencyCodeFromLocale, O as isCustomerAddressComplete, c as isSaleWindowActive, l as isScheduledPriceDue, Je as isStripeSessionSettled, Z as mintOrderAccessToken, u as normalizeCurrencyRecord, d as normalizeCurrencyRoundingMode, k as normalizeCustomerAddress, _e as normalizeInvoiceSettings, A as normalizeOrderCustomerDetails, Te as normalizeOrderTaxDetails, f as normalizePriceMap, p as normalizeSalePriceMap, ee as parseFreemiusCheckoutCredentialsMap, $e as parseFreemiusTimestamp, ut as pickTrialPricing, Ee as productSchema, dt as provisionFreemiusTrialLicense, Pe as publishProductAction, te as readFreemiusEnvValue, pt as rebaseStoreCurrencyExchangeRates, w as recordCouponRedemption, T as resolveCouponValidationThrottleKey, m as resolveEffectivePriceForCurrency, ne as resolveFreemiusCheckoutCredentials, xt as resolveFreemiusStatusFromCheckoutResponse, St as resolveFreemiusStatusFromWebhookEvent, h as resolvePriceForCurrency, g as resolvePriceRangeForCurrency, q as resolveStripePublishableKey, J as resolveStripeSecretKey, Y as resolveStripeWebhookSecret, et as retrieveFreemiusLicenseRecords, X as savePaymentCredentials, Gt as savePaymentProviderCredentials, rn as saveTaxRateAction, ve as serializeInvoiceSettings, _ as sortCurrencies, V as syncCategoriesForTranslationGroup, Oe as syncCouponToFreemius, Ct as syncFreemiusCheckoutOrder, wt as syncFreemiusOrderFromWebhookEvent, re as syncFreemiusProductsToSupabase, Fe as syncProductCategoriesAction, ke as syncProductSaleCouponToFreemius, ie as syncSingleFreemiusProduct, mt as syncStoreCurrencyRates, Ke as syncStripeOrderFromSession, Ie as updateCategoryAction, Qt as updateInventoryTrackingAction, Kt as updatePaymentSettings, H as updateProduct, Le as updateProductAction, $t as updateShippingRate, en as updateShippingZone, an as updateTaxSettingsAction, N as upsertDefaultUserAddresses, Tt as verifyFreemiusWebhookSignature, Q as verifyOrderAccessToken };
|