@nextblock-cms/ecom 0.22.0 → 0.22.2
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 +1 -1
- package/index.es.js +31 -31
- package/lib/components/Checkout.cjs +1 -1
- package/lib/components/Checkout.es.js +2 -1
- package/lib/coupon-server.cjs +1 -1
- package/lib/coupon-server.d.ts +65 -1
- package/lib/coupon-server.es.js +151 -91
- package/lib/coupons.cjs +1 -1
- package/lib/coupons.d.ts +13 -0
- package/lib/coupons.es.js +5 -4
- package/lib/order-access-token.cjs +1 -0
- package/lib/order-access-token.d.ts +2 -0
- package/lib/order-access-token.es.js +18 -0
- package/lib/pages/cms/orders/actions.cjs +3 -3
- package/lib/pages/cms/orders/actions.es.js +48 -26
- package/lib/pages/cms/orders/export-actions.cjs +1 -1
- package/lib/pages/cms/orders/export-actions.d.ts +42 -1
- package/lib/pages/cms/orders/export-actions.es.js +18 -16
- package/lib/pages/cms/orders/server-actions.cjs +1 -1
- package/lib/pages/cms/orders/server-actions.es.js +25 -15
- package/lib/pages/cms/products/actions.cjs +4 -4
- package/lib/pages/cms/products/actions.es.js +44 -41
- package/lib/pages/cms/products/inventory/actions.cjs +2 -2
- package/lib/pages/cms/products/inventory/actions.es.js +23 -23
- package/lib/pages/cms/products/server-actions.cjs +1 -1
- package/lib/pages/cms/products/server-actions.es.js +109 -108
- package/lib/pages/cms/shipping/server-actions.cjs +1 -1
- package/lib/pages/cms/shipping/server-actions.es.js +27 -26
- package/lib/payment-config.cjs +1 -1
- package/lib/payment-config.d.ts +4 -2
- package/lib/payment-config.es.js +73 -72
- package/lib/product-actions.cjs +1 -1
- package/lib/product-actions.es.js +6 -6
- package/lib/providers/checkout-items.cjs +1 -0
- package/lib/providers/checkout-items.d.ts +30 -0
- package/lib/providers/checkout-items.es.js +43 -0
- package/lib/providers/freemius.cjs +1 -1
- package/lib/providers/freemius.d.ts +1 -1
- package/lib/providers/freemius.es.js +166 -144
- package/lib/providers/stripe.cjs +1 -1
- package/lib/providers/stripe.d.ts +1 -1
- package/lib/providers/stripe.es.js +191 -146
- package/lib/server-actions/coupon-actions.cjs +1 -1
- package/lib/server-actions/coupon-actions.d.ts +11 -12
- package/lib/server-actions/coupon-actions.es.js +19 -11
- package/lib/server-actions/require-ecom-role.cjs +1 -0
- package/lib/server-actions/require-ecom-role.d.ts +5825 -0
- package/lib/server-actions/require-ecom-role.es.js +24 -0
- package/lib/server-actions/shipping-actions.cjs +1 -1
- package/lib/server-actions/shipping-actions.es.js +4 -4
- package/lib/server-actions/tax-actions.cjs +1 -1
- package/lib/server-actions/tax-actions.es.js +22 -18
- package/lib/shipping/checkout-shipping-method.cjs +7 -0
- package/lib/shipping/checkout-shipping-method.d.ts +115 -0
- package/lib/shipping/checkout-shipping-method.es.js +167 -0
- package/lib/shipping/resolver.cjs +1 -7
- package/lib/shipping/resolver.d.ts +7 -12
- package/lib/shipping/resolver.es.js +13 -38
- package/package.json +4 -4
- package/server.cjs +1 -1
- package/server.d.ts +1 -0
- package/server.es.js +49 -48
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createClient as e, getServiceRoleSupabaseClient as t } from "@nextblock-cms/db/server";
|
|
2
|
+
import "server-only";
|
|
3
|
+
//#region src/lib/server-actions/require-ecom-role.ts
|
|
4
|
+
async function n() {
|
|
5
|
+
return r();
|
|
6
|
+
}
|
|
7
|
+
async function r() {
|
|
8
|
+
let t = e(), { data: { user: n } } = await t.auth.getUser();
|
|
9
|
+
if (!n) return null;
|
|
10
|
+
let { data: r } = await t.from("profiles").select("role").eq("id", n.id).single(), i = r?.role;
|
|
11
|
+
return i === "ADMIN" || i === "WRITER" ? i : null;
|
|
12
|
+
}
|
|
13
|
+
async function i() {
|
|
14
|
+
let e = await r();
|
|
15
|
+
if (!e) throw Error("Unauthorized");
|
|
16
|
+
if (e !== "ADMIN") throw Error("Forbidden");
|
|
17
|
+
return t();
|
|
18
|
+
}
|
|
19
|
+
async function a() {
|
|
20
|
+
if (!await r()) throw Error("Unauthorized");
|
|
21
|
+
return t();
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { n as getEcomActorRole, i as requireEcomAdmin, a as requireEcomStaff };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use server";const e=require("../countries.cjs"),t=require("../
|
|
1
|
+
"use server";const e=require("../countries.cjs"),t=require("../states.cjs"),n=require("../shipping/resolver.cjs");async function r(r,i,a,o){try{let s=e.normalizeCountryCode(i.country);return s?{success:!0,methods:await n.resolveShippingOptions(r,{...i,country:s,state:t.normalizeSubdivisionCode(s,i.state)||void 0},a,o)}:{success:!1,error:`Country is required for shipping calculation`,errorKey:`ecommerce.shipping_country_required`}}catch(e){return console.error(`Failed to resolve shipping options:`,e),{success:!1,error:e.message||`Failed to calculate shipping`,errorKey:`ecommerce.shipping_calculation_failed`}}}exports.getShippingEstimates=r;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use server";
|
|
2
2
|
import { normalizeCountryCode as e } from "../countries.es.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { normalizeSubdivisionCode as t } from "../states.es.js";
|
|
4
|
+
import { resolveShippingOptions as n } from "../shipping/resolver.es.js";
|
|
5
5
|
//#region src/lib/server-actions/shipping-actions.ts
|
|
6
6
|
async function r(r, i, a, o) {
|
|
7
7
|
try {
|
|
8
8
|
let s = e(i.country);
|
|
9
9
|
return s ? {
|
|
10
10
|
success: !0,
|
|
11
|
-
methods: await
|
|
11
|
+
methods: await n(r, {
|
|
12
12
|
...i,
|
|
13
13
|
country: s,
|
|
14
|
-
state:
|
|
14
|
+
state: t(s, i.state) || void 0
|
|
15
15
|
}, a, o)
|
|
16
16
|
} : {
|
|
17
17
|
success: !1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use server";const e=require("../coupon-server.cjs"),t=require("../tax-calculation.cjs");let n=require("@nextblock-cms/db/server");async function
|
|
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,26 +1,30 @@
|
|
|
1
1
|
"use server";
|
|
2
|
-
import {
|
|
3
|
-
import { buildCheckoutTaxableItemsFromCart as
|
|
4
|
-
import {
|
|
2
|
+
import { consumeCouponValidationToken as e, getCouponQuote as t, getQuoteLineDiscountMap as n, resolveCouponValidationThrottleKey as r } from "../coupon-server.es.js";
|
|
3
|
+
import { buildCheckoutTaxableItemsFromCart as i, calculateCheckoutTaxes as a } from "../tax-calculation.es.js";
|
|
4
|
+
import { headers as o } from "next/headers";
|
|
5
|
+
import { createClient as s, getServiceRoleSupabaseClient as c } from "@nextblock-cms/db/server";
|
|
5
6
|
//#region src/lib/server-actions/tax-actions.ts
|
|
6
|
-
async function
|
|
7
|
+
async function l(l, u, d = "USD", f, p) {
|
|
7
8
|
try {
|
|
8
|
-
let
|
|
9
|
-
if (
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
let m = s(), h = c(), { data: g } = await m.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 ?? [], v;
|
|
10
|
+
if (f) {
|
|
11
|
+
let i = r(await o());
|
|
12
|
+
if (e(i)) {
|
|
13
|
+
let e = await t({
|
|
14
|
+
client: h,
|
|
15
|
+
code: f,
|
|
16
|
+
items: p && p.length > 0 ? p : l,
|
|
17
|
+
currencyCode: d
|
|
18
|
+
});
|
|
19
|
+
e.success && (v = n(e.quote));
|
|
20
|
+
}
|
|
17
21
|
}
|
|
18
|
-
let
|
|
22
|
+
let y = await i(m, l, d, _, v);
|
|
19
23
|
return {
|
|
20
24
|
success: !0,
|
|
21
|
-
tax: await
|
|
22
|
-
items:
|
|
23
|
-
destination:
|
|
25
|
+
tax: await a(m, {
|
|
26
|
+
items: y,
|
|
27
|
+
destination: u
|
|
24
28
|
})
|
|
25
29
|
};
|
|
26
30
|
} catch (e) {
|
|
@@ -31,4 +35,4 @@ async function o(o, s, c = "USD", l, u) {
|
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
37
|
//#endregion
|
|
34
|
-
export {
|
|
38
|
+
export { l as getTaxEstimate };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const e=require("../currency.cjs"),t=require("../countries.cjs"),n=require("../shipping-rate-currency.cjs"),r=require("../states.cjs"),i=require("../variation-utils.cjs");var a=`id, zone_id, method_type, cost_amount, cost_amounts, cost_currency, currency_pricing_mode, min_order_amount, min_order_amounts, name, name_translations`,o=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function s(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(0,e):0}function c(e){let n=t.normalizeCountryCode(e?.country);return n?{country:n,state:r.normalizeSubdivisionCode(n,e?.state)||void 0,postal_code:e?.postal_code?.trim()||void 0}:null}async function l(e,t){let{data:n,error:r}=await e.from(`shipping_zone_locations`).select(`
|
|
2
|
+
zone_id,
|
|
3
|
+
country_code,
|
|
4
|
+
state_code,
|
|
5
|
+
postal_code,
|
|
6
|
+
shipping_zones!inner(priority_order)
|
|
7
|
+
`).eq(`country_code`,t.country).order(`shipping_zones(priority_order)`,{ascending:!0});if(r)return{zoneId:null,error:r};if(!n||n.length===0)return{zoneId:null,error:null};let i=null;if(t.state){let e=n.find(e=>e.state_code===t.state);e&&(i=e.zone_id)}if(!i){let e=n.find(e=>!e.state_code&&!e.postal_code);e&&(i=e.zone_id)}return i||=n[0].zone_id,{zoneId:i,error:null}}function u(t){return t.currencyCode||e.getDefaultCurrency(t.currencies).code}function d(t,r){return n.resolveShippingRateAmountForCurrency({amountMap:t.min_order_amounts||{},fallbackAmount:t.min_order_amount||0,sourceCurrencyCode:t.cost_currency||e.getDefaultCurrency(r.currencies).code,mode:t.currency_pricing_mode,currencyCode:u(r),currencies:r.currencies})}function f(t,r){return n.resolveShippingRateAmountForCurrency({amountMap:t.cost_amounts||{},fallbackAmount:t.cost_amount||0,sourceCurrencyCode:t.cost_currency||e.getDefaultCurrency(r.currencies).code,mode:t.currency_pricing_mode,currencyCode:u(r),currencies:r.currencies})}function p(e,t,n){return s(t)>=d(e,n)}function m(e,t,n){return{id:e.id,name:i.resolveTranslatedText(e.name,e.name_translations||null,n),amount:f(e,t),currency:u(t),type:e.method_type}}async function h(e,t){let{zoneId:n,error:r}=await l(e,t.destination);if(r)return{ok:!1,error:r};if(!n)return{ok:!0,zoneId:null,methods:[]};let{data:i,error:o}=await e.from(`shipping_zone_methods`).select(a).eq(`zone_id`,n);if(o)return{ok:!1,error:o};let s={currencies:t.currencies,currencyCode:t.currencyCode};return{ok:!0,zoneId:n,methods:(i||[]).filter(e=>p(e,t.cartTotal,s))}}async function g(e,t){let n=typeof t.methodId==`string`?t.methodId.trim():``;if(!o.test(n))return{ok:!1,reason:`not_found`};let{data:r,error:i}=await e.from(`shipping_zone_methods`).select(a).eq(`id`,n).maybeSingle();if(i)return{ok:!1,reason:`load_failed`,error:i};if(!r)return{ok:!1,reason:`not_found`};let s=r,{zoneId:c,error:u}=await l(e,t.destination);if(u)return{ok:!1,reason:`load_failed`,error:u};if(!c||c!==s.zone_id)return{ok:!1,reason:`zone_mismatch`};let d={currencies:t.currencies,currencyCode:t.currencyCode};return p(s,t.cartTotal,d)?{ok:!0,method:{...m(s,d,t.languageCode),zoneId:c}}:{ok:!1,reason:`threshold_not_met`}}function _(){return{error:`A shipping address is required for this order.`,errorKey:`ecommerce.checkout_shipping_address_required`,errorStatus:400}}function v(){return{error:`Please select a shipping method before continuing.`,errorKey:`ecommerce.shipping_method_required`,errorStatus:400}}function y(){return{error:`The selected shipping method is not available for this order.`,errorKey:`ecommerce.checkout_invalid_shipping_method`,errorStatus:400}}exports.SHIPPING_ZONE_METHOD_COLUMNS=a,exports.createInvalidShippingMethodError=y,exports.createShippingAddressRequiredError=_,exports.createShippingMethodRequiredError=v,exports.isShippingMethodEligibleForCart=p,exports.listEligibleShippingMethods=h,exports.normalizeShippingDestination=c,exports.resolveCheckoutShippingMethod=g,exports.resolveShippingMethodAmount=f,exports.resolveShippingMethodThreshold=d,exports.resolveShippingZoneIdForDestination=l,exports.toResolvedShippingMethod=m;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { SupabaseClient } from '@supabase/supabase-js';
|
|
2
|
+
import { CurrencyRecord } from '../currency';
|
|
3
|
+
import { CheckoutErrorPayload } from '../inventory-settings';
|
|
4
|
+
/**
|
|
5
|
+
* Shipping-method resolution shared by the storefront estimate (`resolveShippingOptions`)
|
|
6
|
+
* and the Stripe checkout. Both MUST price a method the same way: the estimate is what the
|
|
7
|
+
* shopper is shown, the checkout is what they are charged, and every `shipping_zone_methods`
|
|
8
|
+
* row (id, cost, free-shipping threshold, zone) is publicly readable, so a checkout that
|
|
9
|
+
* trusted the submitted id alone could be handed the $0 free-shipping id on a $20 cart, or a
|
|
10
|
+
* domestic rate on an international address.
|
|
11
|
+
*
|
|
12
|
+
* Every helper takes the Supabase client as a parameter: the estimate runs with the public
|
|
13
|
+
* client, the checkout with the service-role one.
|
|
14
|
+
*/
|
|
15
|
+
export interface ShippingDestination {
|
|
16
|
+
country: string;
|
|
17
|
+
state?: string;
|
|
18
|
+
postal_code?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ResolvedShippingMethod {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
amount: number;
|
|
24
|
+
currency: string;
|
|
25
|
+
type: 'flat_rate' | 'free_shipping';
|
|
26
|
+
}
|
|
27
|
+
export type ShippingQueryClient = SupabaseClient<any>;
|
|
28
|
+
export declare const SHIPPING_ZONE_METHOD_COLUMNS = "id, zone_id, method_type, cost_amount, cost_amounts, cost_currency, currency_pricing_mode, min_order_amount, min_order_amounts, name, name_translations";
|
|
29
|
+
export interface ShippingZoneMethodRow {
|
|
30
|
+
id: string;
|
|
31
|
+
zone_id: string;
|
|
32
|
+
method_type: string | null;
|
|
33
|
+
cost_amount: number | null;
|
|
34
|
+
cost_amounts: unknown;
|
|
35
|
+
cost_currency: string | null;
|
|
36
|
+
currency_pricing_mode: string | null;
|
|
37
|
+
min_order_amount: number | null;
|
|
38
|
+
min_order_amounts: unknown;
|
|
39
|
+
name: string;
|
|
40
|
+
name_translations: unknown;
|
|
41
|
+
}
|
|
42
|
+
export interface ShippingRateContext {
|
|
43
|
+
currencies: CurrencyRecord[];
|
|
44
|
+
/** Shopper currency; falls back to the store default. */
|
|
45
|
+
currencyCode?: string | null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Normalizes a destination the way the storefront estimate does (country alias → ISO code,
|
|
49
|
+
* state name → subdivision code). Returns null when there is no usable country.
|
|
50
|
+
*/
|
|
51
|
+
export declare function normalizeShippingDestination(destination: {
|
|
52
|
+
country?: string | null;
|
|
53
|
+
state?: string | null;
|
|
54
|
+
postal_code?: string | null;
|
|
55
|
+
} | null | undefined): ShippingDestination | null;
|
|
56
|
+
/**
|
|
57
|
+
* Picks the shipping zone for a destination.
|
|
58
|
+
* Priority: a state match, then a country-wide location, then the first zone by
|
|
59
|
+
* `priority_order`. `postal_code` exists in the schema but is not matched yet (docs/02).
|
|
60
|
+
*/
|
|
61
|
+
export declare function resolveShippingZoneIdForDestination(client: ShippingQueryClient, destination: ShippingDestination): Promise<{
|
|
62
|
+
zoneId: string | null;
|
|
63
|
+
error: unknown | null;
|
|
64
|
+
}>;
|
|
65
|
+
/** The method's minimum order amount, in the shopper currency (minor units). */
|
|
66
|
+
export declare function resolveShippingMethodThreshold(method: ShippingZoneMethodRow, context: ShippingRateContext): number;
|
|
67
|
+
/** The method's cost, in the shopper currency (minor units). */
|
|
68
|
+
export declare function resolveShippingMethodAmount(method: ShippingZoneMethodRow, context: ShippingRateContext): number;
|
|
69
|
+
/** `cartTotal` is the discounted merchandise subtotal in the shopper currency. */
|
|
70
|
+
export declare function isShippingMethodEligibleForCart(method: ShippingZoneMethodRow, cartTotal: number, context: ShippingRateContext): boolean;
|
|
71
|
+
export declare function toResolvedShippingMethod(method: ShippingZoneMethodRow, context: ShippingRateContext, languageCode?: string | null): ResolvedShippingMethod;
|
|
72
|
+
export type EligibleShippingMethodsResult = {
|
|
73
|
+
ok: true;
|
|
74
|
+
zoneId: string | null;
|
|
75
|
+
methods: ShippingZoneMethodRow[];
|
|
76
|
+
} | {
|
|
77
|
+
ok: false;
|
|
78
|
+
error: unknown;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Every method of the destination's zone whose minimum order amount the cart meets.
|
|
82
|
+
* Unsorted; the storefront estimate keeps only the cheapest.
|
|
83
|
+
*/
|
|
84
|
+
export declare function listEligibleShippingMethods(client: ShippingQueryClient, params: {
|
|
85
|
+
destination: ShippingDestination;
|
|
86
|
+
cartTotal: number;
|
|
87
|
+
} & ShippingRateContext): Promise<EligibleShippingMethodsResult>;
|
|
88
|
+
export type CheckoutShippingMethodRejection = 'not_found' | 'zone_mismatch' | 'threshold_not_met';
|
|
89
|
+
export type CheckoutShippingMethodResolution = {
|
|
90
|
+
ok: true;
|
|
91
|
+
method: ResolvedShippingMethod & {
|
|
92
|
+
zoneId: string;
|
|
93
|
+
};
|
|
94
|
+
} | {
|
|
95
|
+
ok: false;
|
|
96
|
+
reason: CheckoutShippingMethodRejection;
|
|
97
|
+
} | {
|
|
98
|
+
ok: false;
|
|
99
|
+
reason: 'load_failed';
|
|
100
|
+
error: unknown;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Re-validates the shipping method a checkout submitted: the id must exist, belong to the
|
|
104
|
+
* zone resolved from the shipping address, and its minimum order amount must be met by the
|
|
105
|
+
* cart. The amount comes from the DB row, never from the request.
|
|
106
|
+
*/
|
|
107
|
+
export declare function resolveCheckoutShippingMethod(client: ShippingQueryClient, params: {
|
|
108
|
+
methodId: unknown;
|
|
109
|
+
destination: ShippingDestination;
|
|
110
|
+
cartTotal: number;
|
|
111
|
+
languageCode?: string | null;
|
|
112
|
+
} & ShippingRateContext): Promise<CheckoutShippingMethodResolution>;
|
|
113
|
+
export declare function createShippingAddressRequiredError(): CheckoutErrorPayload;
|
|
114
|
+
export declare function createShippingMethodRequiredError(): CheckoutErrorPayload;
|
|
115
|
+
export declare function createInvalidShippingMethodError(): CheckoutErrorPayload;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { getDefaultCurrency as e } from "../currency.es.js";
|
|
2
|
+
import { normalizeCountryCode as t } from "../countries.es.js";
|
|
3
|
+
import { resolveShippingRateAmountForCurrency as n } from "../shipping-rate-currency.es.js";
|
|
4
|
+
import { normalizeSubdivisionCode as r } from "../states.es.js";
|
|
5
|
+
import { resolveTranslatedText as i } from "../variation-utils.es.js";
|
|
6
|
+
//#region src/lib/shipping/checkout-shipping-method.ts
|
|
7
|
+
var a = "id, zone_id, method_type, cost_amount, cost_amounts, cost_currency, currency_pricing_mode, min_order_amount, min_order_amounts, name, name_translations", o = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
8
|
+
function s(e) {
|
|
9
|
+
return typeof e == "number" && Number.isFinite(e) ? Math.max(0, e) : 0;
|
|
10
|
+
}
|
|
11
|
+
function c(e) {
|
|
12
|
+
let n = t(e?.country);
|
|
13
|
+
return n ? {
|
|
14
|
+
country: n,
|
|
15
|
+
state: r(n, e?.state) || void 0,
|
|
16
|
+
postal_code: e?.postal_code?.trim() || void 0
|
|
17
|
+
} : null;
|
|
18
|
+
}
|
|
19
|
+
async function l(e, t) {
|
|
20
|
+
let { data: n, error: r } = await e.from("shipping_zone_locations").select("\n zone_id,\n country_code,\n state_code,\n postal_code,\n shipping_zones!inner(priority_order)\n ").eq("country_code", t.country).order("shipping_zones(priority_order)", { ascending: !0 });
|
|
21
|
+
if (r) return {
|
|
22
|
+
zoneId: null,
|
|
23
|
+
error: r
|
|
24
|
+
};
|
|
25
|
+
if (!n || n.length === 0) return {
|
|
26
|
+
zoneId: null,
|
|
27
|
+
error: null
|
|
28
|
+
};
|
|
29
|
+
let i = null;
|
|
30
|
+
if (t.state) {
|
|
31
|
+
let e = n.find((e) => e.state_code === t.state);
|
|
32
|
+
e && (i = e.zone_id);
|
|
33
|
+
}
|
|
34
|
+
if (!i) {
|
|
35
|
+
let e = n.find((e) => !e.state_code && !e.postal_code);
|
|
36
|
+
e && (i = e.zone_id);
|
|
37
|
+
}
|
|
38
|
+
return i ||= n[0].zone_id, {
|
|
39
|
+
zoneId: i,
|
|
40
|
+
error: null
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function u(t) {
|
|
44
|
+
return t.currencyCode || e(t.currencies).code;
|
|
45
|
+
}
|
|
46
|
+
function d(t, r) {
|
|
47
|
+
return n({
|
|
48
|
+
amountMap: t.min_order_amounts || {},
|
|
49
|
+
fallbackAmount: t.min_order_amount || 0,
|
|
50
|
+
sourceCurrencyCode: t.cost_currency || e(r.currencies).code,
|
|
51
|
+
mode: t.currency_pricing_mode,
|
|
52
|
+
currencyCode: u(r),
|
|
53
|
+
currencies: r.currencies
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function f(t, r) {
|
|
57
|
+
return n({
|
|
58
|
+
amountMap: t.cost_amounts || {},
|
|
59
|
+
fallbackAmount: t.cost_amount || 0,
|
|
60
|
+
sourceCurrencyCode: t.cost_currency || e(r.currencies).code,
|
|
61
|
+
mode: t.currency_pricing_mode,
|
|
62
|
+
currencyCode: u(r),
|
|
63
|
+
currencies: r.currencies
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function p(e, t, n) {
|
|
67
|
+
return s(t) >= d(e, n);
|
|
68
|
+
}
|
|
69
|
+
function m(e, t, n) {
|
|
70
|
+
return {
|
|
71
|
+
id: e.id,
|
|
72
|
+
name: i(e.name, e.name_translations || null, n),
|
|
73
|
+
amount: f(e, t),
|
|
74
|
+
currency: u(t),
|
|
75
|
+
type: e.method_type
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
async function h(e, t) {
|
|
79
|
+
let { zoneId: n, error: r } = await l(e, t.destination);
|
|
80
|
+
if (r) return {
|
|
81
|
+
ok: !1,
|
|
82
|
+
error: r
|
|
83
|
+
};
|
|
84
|
+
if (!n) return {
|
|
85
|
+
ok: !0,
|
|
86
|
+
zoneId: null,
|
|
87
|
+
methods: []
|
|
88
|
+
};
|
|
89
|
+
let { data: i, error: o } = await e.from("shipping_zone_methods").select(a).eq("zone_id", n);
|
|
90
|
+
if (o) return {
|
|
91
|
+
ok: !1,
|
|
92
|
+
error: o
|
|
93
|
+
};
|
|
94
|
+
let s = {
|
|
95
|
+
currencies: t.currencies,
|
|
96
|
+
currencyCode: t.currencyCode
|
|
97
|
+
};
|
|
98
|
+
return {
|
|
99
|
+
ok: !0,
|
|
100
|
+
zoneId: n,
|
|
101
|
+
methods: (i || []).filter((e) => p(e, t.cartTotal, s))
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
async function g(e, t) {
|
|
105
|
+
let n = typeof t.methodId == "string" ? t.methodId.trim() : "";
|
|
106
|
+
if (!o.test(n)) return {
|
|
107
|
+
ok: !1,
|
|
108
|
+
reason: "not_found"
|
|
109
|
+
};
|
|
110
|
+
let { data: r, error: i } = await e.from("shipping_zone_methods").select(a).eq("id", n).maybeSingle();
|
|
111
|
+
if (i) return {
|
|
112
|
+
ok: !1,
|
|
113
|
+
reason: "load_failed",
|
|
114
|
+
error: i
|
|
115
|
+
};
|
|
116
|
+
if (!r) return {
|
|
117
|
+
ok: !1,
|
|
118
|
+
reason: "not_found"
|
|
119
|
+
};
|
|
120
|
+
let s = r, { zoneId: c, error: u } = await l(e, t.destination);
|
|
121
|
+
if (u) return {
|
|
122
|
+
ok: !1,
|
|
123
|
+
reason: "load_failed",
|
|
124
|
+
error: u
|
|
125
|
+
};
|
|
126
|
+
if (!c || c !== s.zone_id) return {
|
|
127
|
+
ok: !1,
|
|
128
|
+
reason: "zone_mismatch"
|
|
129
|
+
};
|
|
130
|
+
let d = {
|
|
131
|
+
currencies: t.currencies,
|
|
132
|
+
currencyCode: t.currencyCode
|
|
133
|
+
};
|
|
134
|
+
return p(s, t.cartTotal, d) ? {
|
|
135
|
+
ok: !0,
|
|
136
|
+
method: {
|
|
137
|
+
...m(s, d, t.languageCode),
|
|
138
|
+
zoneId: c
|
|
139
|
+
}
|
|
140
|
+
} : {
|
|
141
|
+
ok: !1,
|
|
142
|
+
reason: "threshold_not_met"
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function _() {
|
|
146
|
+
return {
|
|
147
|
+
error: "A shipping address is required for this order.",
|
|
148
|
+
errorKey: "ecommerce.checkout_shipping_address_required",
|
|
149
|
+
errorStatus: 400
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function v() {
|
|
153
|
+
return {
|
|
154
|
+
error: "Please select a shipping method before continuing.",
|
|
155
|
+
errorKey: "ecommerce.shipping_method_required",
|
|
156
|
+
errorStatus: 400
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
function y() {
|
|
160
|
+
return {
|
|
161
|
+
error: "The selected shipping method is not available for this order.",
|
|
162
|
+
errorKey: "ecommerce.checkout_invalid_shipping_method",
|
|
163
|
+
errorStatus: 400
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
//#endregion
|
|
167
|
+
export { a as SHIPPING_ZONE_METHOD_COLUMNS, y as createInvalidShippingMethodError, _ as createShippingAddressRequiredError, v as createShippingMethodRequiredError, p as isShippingMethodEligibleForCart, h as listEligibleShippingMethods, c as normalizeShippingDestination, g as resolveCheckoutShippingMethod, f as resolveShippingMethodAmount, d as resolveShippingMethodThreshold, l as resolveShippingZoneIdForDestination, m as toResolvedShippingMethod };
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
const e=require("../currency.cjs"),t=require("
|
|
2
|
-
zone_id,
|
|
3
|
-
country_code,
|
|
4
|
-
state_code,
|
|
5
|
-
postal_code,
|
|
6
|
-
shipping_zones!inner(priority_order)
|
|
7
|
-
`).eq(`country_code`,a.country).order(`shipping_zones(priority_order)`,{ascending:!0});if(m||!p||p.length===0)return[];let h=null;if(a.state){let e=p.find(e=>e.state_code===a.state);e&&(h=e.zone_id)}if(!h){let e=p.find(e=>!e.state_code&&!e.postal_code);e&&(h=e.zone_id)}h||=p[0].zone_id;let{data:g,error:_}=await c.from(`shipping_zone_methods`).select(`id, zone_id, method_type, cost_amount, cost_amounts, cost_currency, currency_pricing_mode, min_order_amount, min_order_amounts, name, name_translations`).eq(`zone_id`,h);if(_||!g)return[];let v=g.filter(e=>i>=t.resolveShippingRateAmountForCurrency({amountMap:e.min_order_amounts||{},fallbackAmount:e.min_order_amount||0,sourceCurrencyCode:e.cost_currency||d.code,mode:e.currency_pricing_mode,currencyCode:f,currencies:u})).map(e=>({id:e.id,name:n.resolveTranslatedText(e.name,e.name_translations||null,o),amount:t.resolveShippingRateAmountForCurrency({amountMap:e.cost_amounts||{},fallbackAmount:e.cost_amount||0,sourceCurrencyCode:e.cost_currency||d.code,mode:e.currency_pricing_mode,currencyCode:f,currencies:u}),currency:f,type:e.method_type})).sort((e,t)=>e.amount-t.amount)[0];return v?[v]:[]}exports.resolveShippingOptions=i;
|
|
1
|
+
const e=require("../currency.cjs"),t=require("./checkout-shipping-method.cjs");let n=require("@nextblock-cms/db/server");async function r(r,i,a,o){let s=(0,n.getSsgSupabaseClient)(),{data:c}=await s.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}),l=c??[],u=e.getDefaultCurrency(l),d=o||u.code,f=await t.listEligibleShippingMethods(s,{destination:i,cartTotal:r,currencies:l,currencyCode:d});if(!f.ok)return[];let p=f.methods.map(e=>t.toResolvedShippingMethod(e,{currencies:l,currencyCode:d},a)).sort((e,t)=>e.amount-t.amount)[0];return p?[p]:[]}exports.resolveShippingOptions=r;
|
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
state?: string;
|
|
4
|
-
postal_code?: string;
|
|
5
|
-
}
|
|
6
|
-
export interface ResolvedShippingMethod {
|
|
7
|
-
id: string;
|
|
8
|
-
name: string;
|
|
9
|
-
amount: number;
|
|
10
|
-
currency: string;
|
|
11
|
-
type: 'flat_rate' | 'free_shipping';
|
|
12
|
-
}
|
|
1
|
+
import { ResolvedShippingMethod, ShippingDestination } from './checkout-shipping-method';
|
|
2
|
+
export type { ResolvedShippingMethod, ShippingDestination };
|
|
13
3
|
/**
|
|
14
4
|
* Resolves available shipping methods based on destination and cart value.
|
|
5
|
+
*
|
|
6
|
+
* This is the storefront estimate. The zone match, threshold check and currency conversion
|
|
7
|
+
* live in `./checkout-shipping-method` and are the same code the Stripe checkout runs when
|
|
8
|
+
* it re-validates the submitted method id, so what the shopper is shown here is what they
|
|
9
|
+
* are charged there.
|
|
15
10
|
*/
|
|
16
11
|
export declare function resolveShippingOptions(cartTotal: number, destination: ShippingDestination, languageCode?: string | null, currencyCode?: string | null): Promise<ResolvedShippingMethod[]>;
|
|
@@ -1,45 +1,20 @@
|
|
|
1
1
|
import { getDefaultCurrency as e } from "../currency.es.js";
|
|
2
|
-
import {
|
|
3
|
-
import { resolveTranslatedText as n } from "../variation-utils.es.js";
|
|
2
|
+
import { listEligibleShippingMethods as t, toResolvedShippingMethod as n } from "./checkout-shipping-method.es.js";
|
|
4
3
|
import { getSsgSupabaseClient as r } from "@nextblock-cms/db/server";
|
|
5
4
|
//#region src/lib/shipping/resolver.ts
|
|
6
5
|
async function i(i, a, o, s) {
|
|
7
|
-
let c = r(), { data: l } = await c.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 }), u = l ?? [], d = e(u), f = s || d.code,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
let { data: g, error: _ } = await c.from("shipping_zone_methods").select("id, zone_id, method_type, cost_amount, cost_amounts, cost_currency, currency_pricing_mode, min_order_amount, min_order_amounts, name, name_translations").eq("zone_id", h);
|
|
20
|
-
if (_ || !g) return [];
|
|
21
|
-
let v = g.filter((e) => i >= t({
|
|
22
|
-
amountMap: e.min_order_amounts || {},
|
|
23
|
-
fallbackAmount: e.min_order_amount || 0,
|
|
24
|
-
sourceCurrencyCode: e.cost_currency || d.code,
|
|
25
|
-
mode: e.currency_pricing_mode,
|
|
26
|
-
currencyCode: f,
|
|
27
|
-
currencies: u
|
|
28
|
-
})).map((e) => ({
|
|
29
|
-
id: e.id,
|
|
30
|
-
name: n(e.name, e.name_translations || null, o),
|
|
31
|
-
amount: t({
|
|
32
|
-
amountMap: e.cost_amounts || {},
|
|
33
|
-
fallbackAmount: e.cost_amount || 0,
|
|
34
|
-
sourceCurrencyCode: e.cost_currency || d.code,
|
|
35
|
-
mode: e.currency_pricing_mode,
|
|
36
|
-
currencyCode: f,
|
|
37
|
-
currencies: u
|
|
38
|
-
}),
|
|
39
|
-
currency: f,
|
|
40
|
-
type: e.method_type
|
|
41
|
-
})).sort((e, t) => e.amount - t.amount)[0];
|
|
42
|
-
return v ? [v] : [];
|
|
6
|
+
let c = r(), { data: l } = await c.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 }), u = l ?? [], d = e(u), f = s || d.code, p = await t(c, {
|
|
7
|
+
destination: a,
|
|
8
|
+
cartTotal: i,
|
|
9
|
+
currencies: u,
|
|
10
|
+
currencyCode: f
|
|
11
|
+
});
|
|
12
|
+
if (!p.ok) return [];
|
|
13
|
+
let m = p.methods.map((e) => n(e, {
|
|
14
|
+
currencies: u,
|
|
15
|
+
currencyCode: f
|
|
16
|
+
}, o)).sort((e, t) => e.amount - t.amount)[0];
|
|
17
|
+
return m ? [m] : [];
|
|
43
18
|
}
|
|
44
19
|
//#endregion
|
|
45
20
|
export { i as resolveShippingOptions };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextblock-cms/ecom",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.2",
|
|
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.2",
|
|
16
|
+
"@nextblock-cms/ui": "^0.22.2",
|
|
17
|
+
"@nextblock-cms/utils": "^0.22.2",
|
|
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/providers/freemius.cjs"),c=require("./lib/pages/cms/products/actions.cjs"),l=require("./lib/invoice.cjs"),u=require("./lib/order-tax-details.cjs"),d=require("./lib/product-schema.cjs"),f=require("./lib/freemius-coupons.cjs"),p=require("./lib/pages/cms/products/server-actions.cjs"),m=require("./lib/stripe/client.cjs"),h=require("./lib/stripe/checkout.cjs"),g=require("./lib/order-inventory.cjs"),_=require("./lib/invoice-server.cjs"),v=require("./lib/stripe/order-sync.cjs"),y=require("./lib/stripe/webhooks.cjs"),b=require("./lib/freemius-license.cjs"),x=require("./lib/customer-orders.cjs"),S=require("./lib/freemius-license-claim.cjs"),C=require("./lib/freemius-trial-provision.cjs"),w=require("./lib/currency-sync.cjs"),T=require("./lib/providers/stripe.cjs"),E=require("./lib/factory.cjs"),D=require("./lib/freemius-order-sync.cjs"),O=require("./lib/pages/cms/payments/queries.cjs"),k=require("./lib/pages/cms/orders/actions.cjs"),A=require("./lib/pages/cms/orders/export-actions.cjs"),j=require("./lib/pages/cms/orders/ExportReportsDialog.cjs"),M=require("./lib/pages/cms/orders/OrdersPage.cjs"),N=require("./lib/pages/cms/orders/OrderDetailPage.cjs");require("./lib/pages/cms/orders/index.cjs");const P=require("./lib/pages/cms/products/ProductsPage.cjs"),F=require("./lib/pages/cms/products/inventory/InventoryPage.cjs"),I=require("./lib/pages/cms/products/attributes/AttributeManagementPage.cjs"),L=require("./lib/pages/cms/products/new/NewProductPage.cjs"),R=require("./lib/pages/cms/products/[id]/edit/EditProductPage.cjs"),z=require("./lib/pages/cms/products/components/CopyProductFromLanguage.cjs"),B=require("./lib/pages/cms/products/categories/CategoryManagementPage.cjs");require("./lib/pages/cms/products/index.cjs");const V=require("./lib/pages/cms/payments/actions.cjs"),H=require("./lib/pages/cms/payments/PaymentsPage.cjs");require("./lib/pages/cms/payments/index.cjs");const U=require("./lib/pages/cms/shipping/server-actions.cjs"),W=require("./lib/pages/cms/shipping/ShippingPage.cjs");require("./lib/pages/cms/shipping/index.cjs");const G=require("./lib/pages/cms/taxes/actions.cjs"),K=require("./lib/pages/cms/taxes/TaxesPage.cjs");require("./lib/pages/cms/taxes/index.cjs");const q=require("./lib/pages/cms/coupons/CouponsPage.cjs"),J=require("./lib/pages/cms/coupons/EditCouponPage.cjs");require("./lib/pages/cms/coupons/index.cjs"),exports.AttributeManagementPage=I.AttributeManagementPage,exports.CURRENCY_COOKIE_NAME=t.CURRENCY_COOKIE_NAME,exports.CURRENCY_ROUNDING_MODES=e.CURRENCY_ROUNDING_MODES,exports.CategoryManagementPage=B.CategoryManagementPage,exports.CopyProductFromLanguage=z.CopyProductFromLanguage,exports.CouponsPage=q.CouponsPage,exports.DEFAULT_INVOICE_SETTINGS=l.DEFAULT_INVOICE_SETTINGS,exports.EditCouponPage=J.EditCouponPage,exports.EditProductPage=R.EditProductPage,exports.ExportReportsDialog=j.ExportReportsDialog,exports.FREEMIUS_LICENSE_CLAIM_MAX_AGE_MINUTES=S.FREEMIUS_LICENSE_CLAIM_MAX_AGE_MINUTES,exports.FREEMIUS_LICENSE_CLAIM_REFUSED_MESSAGE=S.FREEMIUS_LICENSE_CLAIM_REFUSED_MESSAGE,exports.FREEMIUS_TRIAL_ALREADY_USED_MESSAGE=C.FREEMIUS_TRIAL_ALREADY_USED_MESSAGE,exports.FREEMIUS_TRIAL_PROVISION_FAILED_MESSAGE=C.FREEMIUS_TRIAL_PROVISION_FAILED_MESSAGE,exports.FreemiusProvider=s.FreemiusProvider,exports.INVOICE_SETTINGS_KEY=l.INVOICE_SETTINGS_KEY,exports.InventoryPage=F.InventoryPage,exports.NewProductPage=L.NewProductPage,exports.OrderDetailPage=N.OrderDetailPage,exports.OrdersPage=M.OrdersPage,exports.PaymentsPage=H.PaymentsPage,exports.ProductsPage=P.ProductsPage,exports.ShippingPage=W.ShippingPage,exports.StripeNotConfiguredError=m.StripeNotConfiguredError,exports.StripeProvider=T.StripeProvider,exports.TaxesPage=K.TaxesPage,exports.addressesMatch=r.addressesMatch,exports.aggregateOrderTaxLines=u.aggregateOrderTaxLines,exports.applyCurrencyRounding=e.applyCurrencyRounding,exports.applyOrderInventoryDeduction=g.applyOrderInventoryDeduction,exports.assignInvoiceMetadata=_.assignInvoiceMetadata,exports.buildOrderTaxDetailsFromCalculation=u.buildOrderTaxDetailsFromCalculation,exports.buildOrderTaxDetailsFromStripeSession=u.buildOrderTaxDetailsFromStripeSession,exports.claimFreemiusLicenseKey=S.claimFreemiusLicenseKey,exports.clearAutoSyncedCurrencyPriceOverrides=w.clearAutoSyncedCurrencyPriceOverrides,exports.clearPaymentConfigCache=o.clearPaymentConfigCache,exports.computeTrialExpiry=C.computeTrialExpiry,exports.convertMinorUnitAmount=e.convertMinorUnitAmount,exports.copyProductFromLanguage=a.copyProductFromLanguage,exports.createCategoryAction=p.createCategoryAction,exports.createCheckoutSession=h.createCheckoutSession,exports.createProduct=a.createProduct,exports.createProductAction=p.createProductAction,exports.createShippingRate=U.createShippingRate,exports.createShippingZone=U.createShippingZone,exports.deleteCategoryAction=p.deleteCategoryAction,exports.deleteCouponFromFreemius=f.deleteCouponFromFreemius,exports.deleteProduct=a.deleteProduct,exports.deleteProductAction=p.deleteProductAction,exports.deleteShippingRate=U.deleteShippingRate,exports.deleteShippingZone=U.deleteShippingZone,exports.deleteTaxRateAction=G.deleteTaxRateAction,exports.describeCurrencyRoundingRule=e.describeCurrencyRoundingRule,exports.emptyCustomerAddress=r.emptyCustomerAddress,exports.evaluateFreemiusLicenseClaim=S.evaluateFreemiusLicenseClaim,exports.evaluateTrialEligibility=C.evaluateTrialEligibility,exports.extractFreemiusCheckoutMetadata=D.extractFreemiusCheckoutMetadata,exports.fetchOrderReportData=A.fetchOrderReportData,exports.fetchTranslatedProductsForCartInternal=a.fetchTranslatedProductsForCartInternal,exports.fillMissingUserProfileCheckoutDetails=i.fillMissingUserProfileCheckoutDetails,exports.formatFreemiusTimestamp=C.formatFreemiusTimestamp,exports.formatInvoiceCurrency=l.formatInvoiceCurrency,exports.formatInvoiceDate=l.formatInvoiceDate,exports.getCategoriesWithCount=c.getCategoriesWithCount,exports.getCategoryBySlug=c.getCategoryBySlug,exports.getCmsProduct=c.getProduct,exports.getCmsProducts=c.getProducts,exports.getCouponQuote=n.getCouponQuote,exports.getCurrencyLookup=e.getCurrencyLookup,exports.getCurrentCustomerOrder=x.getCurrentCustomerOrder,exports.getCurrentCustomerOrderInvoice=x.getCurrentCustomerOrderInvoice,exports.getCurrentCustomerOrders=x.getCurrentCustomerOrders,exports.getDefaultCurrency=e.getDefaultCurrency,exports.getDefaultUserAddresses=i.getDefaultUserAddresses,exports.getEnabledPaymentProviders=O.getEnabledPaymentProviders,exports.getExchangeRateForCurrency=e.getExchangeRateForCurrency,exports.getFreemiusOrderLicense=b.getFreemiusOrderLicense,exports.getFreemiusWebhookSecretCandidates=D.getFreemiusWebhookSecretCandidates,exports.getGlobalProductAttributes=c.getGlobalProductAttributes,exports.getInvoiceAddressLines=l.getInvoiceAddressLines,exports.getInvoiceBrandingData=_.getInvoiceBrandingData,exports.getInvoiceOrder=_.getInvoiceOrder,exports.getInvoicePresentationData=_.getInvoicePresentationData,exports.getOrderDetails=k.getOrderDetails,exports.getOrderTaxRateJurisdiction=u.getOrderTaxRateJurisdiction,exports.getOrderTaxRateLabel=u.getOrderTaxRateLabel,exports.getOrderTaxRatePercentage=u.getOrderTaxRatePercentage,exports.getOrders=k.getOrders,exports.getPaymentConfigStatus=o.getPaymentConfigStatus,exports.getPaymentCredentialsView=o.getPaymentCredentialsView,exports.getPaymentProvider=E.getPaymentProvider,exports.getPaymentSettings=O.getPaymentSettings,exports.getProduct=a.getProduct,exports.getProductBySlug=a.getProductBySlug,exports.getProductCategories=c.getProductCategories,exports.getProductTranslations=c.getProductTranslations,exports.getProducts=a.getProducts,exports.getProviderReadiness=O.getProviderReadiness,exports.getQuoteLineDiscountMap=n.getQuoteLineDiscountMap,exports.getReadinessForProductType=O.getReadinessForProductType,exports.getStoreConfigStatus=O.getStoreConfigStatus,exports.getStoreReadiness=O.getStoreReadiness,exports.getStripeClient=m.getStripeClient,exports.handleStripeWebhook=y.handleStripeWebhook,exports.hydrateFreemiusEnvFromDb=o.hydrateFreemiusEnvFromDb,exports.inferCurrencyCodeFromLocale=e.inferCurrencyCodeFromLocale,exports.isCustomerAddressComplete=r.isCustomerAddressComplete,exports.isSaleWindowActive=e.isSaleWindowActive,exports.isScheduledPriceDue=e.isScheduledPriceDue,exports.normalizeCurrencyRecord=e.normalizeCurrencyRecord,exports.normalizeCurrencyRoundingMode=e.normalizeCurrencyRoundingMode,exports.normalizeCustomerAddress=r.normalizeCustomerAddress,exports.normalizeInvoiceSettings=l.normalizeInvoiceSettings,exports.normalizeOrderCustomerDetails=r.normalizeOrderCustomerDetails,exports.normalizeOrderTaxDetails=u.normalizeOrderTaxDetails,exports.normalizePriceMap=e.normalizePriceMap,exports.normalizeSalePriceMap=e.normalizeSalePriceMap,exports.parseFreemiusCheckoutCredentialsMap=s.parseFreemiusCheckoutCredentialsMap,exports.parseFreemiusTimestamp=S.parseFreemiusTimestamp,exports.pickTrialPricing=C.pickTrialPricing,exports.productSchema=d.productSchema,exports.provisionFreemiusTrialLicense=C.provisionFreemiusTrialLicense,exports.publishProductAction=p.publishProductAction,exports.readFreemiusEnvValue=s.readFreemiusEnvValue,exports.rebaseStoreCurrencyExchangeRates=w.rebaseStoreCurrencyExchangeRates,exports.recordCouponRedemption=n.recordCouponRedemption,exports.resolveEffectivePriceForCurrency=e.resolveEffectivePriceForCurrency,exports.resolveFreemiusCheckoutCredentials=s.resolveFreemiusCheckoutCredentials,exports.resolveFreemiusStatusFromCheckoutResponse=D.resolveFreemiusStatusFromCheckoutResponse,exports.resolveFreemiusStatusFromWebhookEvent=D.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=V.savePaymentProviderCredentials,exports.saveTaxRateAction=G.saveTaxRateAction,exports.serializeInvoiceSettings=l.serializeInvoiceSettings,exports.sortCurrencies=e.sortCurrencies,exports.syncCategoriesForTranslationGroup=a.syncCategoriesForTranslationGroup,exports.syncCouponToFreemius=f.syncCouponToFreemius,exports.syncFreemiusCheckoutOrder=D.syncFreemiusCheckoutOrder,exports.syncFreemiusOrderFromWebhookEvent=D.syncFreemiusOrderFromWebhookEvent,exports.syncFreemiusProductsToSupabase=s.syncFreemiusProductsToSupabase,exports.syncProductCategoriesAction=p.syncProductCategoriesAction,exports.syncProductSaleCouponToFreemius=f.syncProductSaleCouponToFreemius,exports.syncSingleFreemiusProduct=s.syncSingleFreemiusProduct,exports.syncStoreCurrencyRates=w.syncStoreCurrencyRates,exports.syncStripeOrderFromSession=v.syncStripeOrderFromSession,exports.updateCategoryAction=p.updateCategoryAction,exports.updateInventoryTrackingAction=U.updateInventoryTrackingAction,exports.updatePaymentSettings=V.updatePaymentSettings,exports.updateProduct=a.updateProduct,exports.updateProductAction=p.updateProductAction,exports.updateShippingRate=U.updateShippingRate,exports.updateShippingZone=U.updateShippingZone,exports.updateTaxSettingsAction=G.updateTaxSettingsAction,exports.upsertDefaultUserAddresses=i.upsertDefaultUserAddresses,exports.verifyFreemiusWebhookSignature=D.verifyFreemiusWebhookSignature;
|
|
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;
|
package/server.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './lib/order-inventory';
|
|
|
7
7
|
export * from './lib/order-tax-details';
|
|
8
8
|
export * from './lib/invoice';
|
|
9
9
|
export * from './lib/invoice-server';
|
|
10
|
+
export * from './lib/order-access-token';
|
|
10
11
|
export * from './lib/customer-orders';
|
|
11
12
|
export * from './lib/coupon-server';
|
|
12
13
|
export * from './lib/freemius-coupons';
|