@nextblock-cms/ecom 0.13.1 → 0.13.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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@nextblock-cms/db/server"),d=require("../../../product-actions.cjs.js"),g=require("../../../freemius-coupons.cjs.js"),l=require("../../../currency.cjs.js"),m=require("./product-price-sync.cjs.js"),a=require("next/cache"),_=require("next/navigation");function u(e){return e.toLowerCase().trim().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function b(e){const t=o.createClient(),{data:r}=await t.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}),s=m.sanitizeProductFormValuesForStoreManagedCurrencies(e,(r||[]).map(n=>l.normalizeCurrencyRecord(n))),c=await d.createProduct(t,s);if(s.payment_provider==="freemius"&&c?.id)try{await g.syncProductSaleCouponToFreemius({productId:c.id,client:o.getServiceRoleSupabaseClient()})}catch(n){console.error("Failed to sync Freemius sale coupon on create:",n)}a.revalidatePath("/cms/products"),_.redirect("/cms/products")}async function P(e,t){const r=o.createClient(),{data:{user:s}}=await r.auth.getUser();if(!s)throw new Error("User not authenticated.");const{data:c}=await r.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}),n=m.sanitizeProductFormValuesForStoreManagedCurrencies(t,(c||[]).map(f=>l.normalizeCurrencyRecord(f))),{error:i}=await r.from("product_drafts").upsert({product_id:e,author_id:s.id,meta:n,updated_at:new Date().toISOString()},{onConflict:"product_id"});if(i)throw new Error(`Failed to save product draft: ${i.message}`);return{success:!0}}async function v(e){const t=o.createClient();await d.deleteProduct(t,e),a.revalidatePath("/cms/products")}function p(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean)))}async function h(e){const t=p(e);if(t.length===0)return{success:!1,error:"Select at least one product."};const r=o.createClient(),{error:s}=await r.from("products").delete().in("id",t);return s?{success:!1,error:s.message}:(a.revalidatePath("/cms/products"),{success:!0,count:t.length})}async function y(e){const t=p(e);if(t.length===0)return{success:!1,error:"Select at least one product."};const r=o.createClient(),{error:s}=await r.from("products").update({status:"draft",updated_at:new Date().toISOString()}).in("id",t);return s?{success:!1,error:s.message}:(a.revalidatePath("/cms/products"),{success:!0,count:t.length})}async function A(e){const t=o.getServiceRoleSupabaseClient(),r=e.name.trim(),s=u(e.slug?.trim()||e.name);if(!r||!s)return{success:!1,error:"Attribute name is required."};const{error:c}=await t.from("product_attributes").insert({name:r,slug:s});return c?{success:!1,error:c.message}:(a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function S(e){const t=o.getServiceRoleSupabaseClient(),{error:r}=await t.from("product_attributes").delete().eq("id",e);return r?{success:!1,error:r.message}:(a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function w(e){const t=o.getServiceRoleSupabaseClient(),r=e.value.trim(),s=u(e.slug?.trim()||e.value);if(!r||!s)return{success:!1,error:"Term value is required."};const{data:c}=await t.from("product_attribute_terms").select("sort_order").eq("attribute_id",e.attributeId).order("sort_order",{ascending:!1}).limit(1),n=typeof c?.[0]?.sort_order=="number"?c[0].sort_order+1:0,{error:i}=await t.from("product_attribute_terms").insert({attribute_id:e.attributeId,value:r,slug:s,sort_order:n});return i?{success:!1,error:i.message}:(a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function C(e){const t=o.getServiceRoleSupabaseClient();for(const[r,s]of e.orderedTermIds.entries()){const{error:c}=await t.from("product_attribute_terms").update({sort_order:r,updated_at:new Date().toISOString()}).eq("id",s).eq("attribute_id",e.attributeId);if(c)return{success:!1,error:c.message}}return a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0}}async function q(e){const t=o.getServiceRoleSupabaseClient(),{error:r}=await t.from("product_attributes").update({name_translations:e.nameTranslations,updated_at:new Date().toISOString()}).eq("id",e.attributeId);if(r)return{success:!1,error:r.message};for(const s of e.termTranslations){const{error:c}=await t.from("product_attribute_terms").update({value_translations:s.valueTranslations,updated_at:new Date().toISOString()}).eq("id",s.termId).eq("attribute_id",e.attributeId);if(c)return{success:!1,error:c.message}}return a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0}}async function T(e){const t=o.getServiceRoleSupabaseClient(),{error:r}=await t.from("product_attribute_terms").delete().eq("id",e);return r?{success:!1,error:r.message}:(a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function I(e){const t=o.getServiceRoleSupabaseClient(),r=e.name.trim(),s=u(e.slug?.trim()||e.name);if(!r||!s)return{success:!1,error:"Category name is required."};const{data:c,error:n}=await t.from("categories").insert({name:r,slug:s,description:e.description?.trim()||null,name_translations:e.nameTranslations||{},description_translations:e.descriptionTranslations||{}}).select().single();return n?{success:!1,error:n.message}:(a.revalidatePath("/cms/products/categories"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0,category:c})}async function R(e,t){const r=o.getServiceRoleSupabaseClient(),s=t.name.trim(),c=u(t.slug?.trim()||t.name);if(!s||!c)return{success:!1,error:"Category name is required."};const{error:n}=await r.from("categories").update({name:s,slug:c,description:t.description?.trim()||null,name_translations:t.nameTranslations||{},description_translations:t.descriptionTranslations||{}}).eq("id",e);return n?{success:!1,error:n.message}:(a.revalidatePath("/cms/products/categories"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function x(e){const t=o.getServiceRoleSupabaseClient(),{error:r}=await t.from("categories").delete().eq("id",e);return r?{success:!1,error:r.message}:(a.revalidatePath("/cms/products/categories"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function D(e,t){const r=o.getServiceRoleSupabaseClient();try{return await d.syncCategoriesForTranslationGroup(r,e,t),a.revalidatePath("/cms/products"),a.revalidatePath(`/cms/products/${e}/edit`),{success:!0}}catch(s){return{success:!1,error:s.message}}}exports.bulkDeleteProductsAction=h;exports.bulkDraftProductsAction=y;exports.createCategoryAction=I;exports.createProductAction=b;exports.createProductAttributeAction=A;exports.createProductAttributeTermAction=w;exports.deleteCategoryAction=x;exports.deleteProductAction=v;exports.deleteProductAttributeAction=S;exports.deleteProductAttributeTermAction=T;exports.reorderProductAttributeTermsAction=C;exports.syncProductCategoriesAction=D;exports.updateCategoryAction=R;exports.updateProductAction=P;exports.updateProductAttributeTranslationsAction=q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@nextblock-cms/db/server"),d=require("../../../product-actions.cjs.js"),f=require("../../../freemius-coupons.cjs.js"),l=require("../../../currency.cjs.js"),m=require("./product-price-sync.cjs.js"),a=require("next/cache"),b=require("next/navigation");function u(e){return e.toLowerCase().trim().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function _(e){const t=o.createClient(),{data:r}=await t.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}),s=m.sanitizeProductFormValuesForStoreManagedCurrencies(e,(r||[]).map(i=>l.normalizeCurrencyRecord(i))),c=await d.createProduct(t,s);if(s.payment_provider==="freemius"&&c?.id)try{await f.syncProductSaleCouponToFreemius({productId:c.id,client:o.getServiceRoleSupabaseClient()})}catch(i){console.error("Failed to sync Freemius sale coupon on create:",i)}a.revalidatePath("/cms/products"),b.redirect("/cms/products")}async function P(e,t){const r=o.createClient(),{data:{user:s}}=await r.auth.getUser();if(!s)throw new Error("User not authenticated.");const{data:c}=await r.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}),i=m.sanitizeProductFormValuesForStoreManagedCurrencies(t,(c||[]).map(g=>l.normalizeCurrencyRecord(g))),{error:n}=await r.from("product_drafts").upsert({product_id:e,author_id:s.id,meta:i,updated_at:new Date().toISOString()},{onConflict:"product_id"});if(n)throw new Error(`Failed to save product draft: ${n.message}`);return{success:!0}}async function h(e){const t=o.createClient();await d.deleteProduct(t,e),a.revalidatePath("/cms/products")}function p(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean)))}async function v(e){const t=p(e);if(t.length===0)return{success:!1,error:"Select at least one product."};const r=o.createClient(),{error:s}=await r.from("products").delete().in("id",t);return s?{success:!1,error:s.message}:(a.revalidatePath("/cms/products"),{success:!0,count:t.length})}async function A(e){const t=p(e);if(t.length===0)return{success:!1,error:"Select at least one product."};const r=o.createClient(),{error:s}=await r.from("products").update({status:"draft",updated_at:new Date().toISOString()}).in("id",t);return s?{success:!1,error:s.message}:(a.revalidatePath("/cms/products"),{success:!0,count:t.length})}async function y(e){const t=String(e||"").trim();if(!t)return{error:"Missing product id."};const r=o.createClient(),{data:{user:s}}=await r.auth.getUser();if(!s)return{error:"You must be signed in to publish a product."};const{data:c,error:i}=await r.from("products").update({status:"active",updated_at:new Date().toISOString()}).eq("id",t).select("slug").single();return i||!c?{error:i?.message||"Could not publish the product."}:(a.revalidatePath("/cms/products"),a.revalidatePath(`/cms/products/${t}/edit`),c.slug&&a.revalidatePath(`/product/${c.slug}`),{})}async function S(e){const t=o.getServiceRoleSupabaseClient(),r=e.name.trim(),s=u(e.slug?.trim()||e.name);if(!r||!s)return{success:!1,error:"Attribute name is required."};const{error:c}=await t.from("product_attributes").insert({name:r,slug:s});return c?{success:!1,error:c.message}:(a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function w(e){const t=o.getServiceRoleSupabaseClient(),{error:r}=await t.from("product_attributes").delete().eq("id",e);return r?{success:!1,error:r.message}:(a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function C(e){const t=o.getServiceRoleSupabaseClient(),r=e.value.trim(),s=u(e.slug?.trim()||e.value);if(!r||!s)return{success:!1,error:"Term value is required."};const{data:c}=await t.from("product_attribute_terms").select("sort_order").eq("attribute_id",e.attributeId).order("sort_order",{ascending:!1}).limit(1),i=typeof c?.[0]?.sort_order=="number"?c[0].sort_order+1:0,{error:n}=await t.from("product_attribute_terms").insert({attribute_id:e.attributeId,value:r,slug:s,sort_order:i});return n?{success:!1,error:n.message}:(a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function q(e){const t=o.getServiceRoleSupabaseClient();for(const[r,s]of e.orderedTermIds.entries()){const{error:c}=await t.from("product_attribute_terms").update({sort_order:r,updated_at:new Date().toISOString()}).eq("id",s).eq("attribute_id",e.attributeId);if(c)return{success:!1,error:c.message}}return a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0}}async function T(e){const t=o.getServiceRoleSupabaseClient(),{error:r}=await t.from("product_attributes").update({name_translations:e.nameTranslations,updated_at:new Date().toISOString()}).eq("id",e.attributeId);if(r)return{success:!1,error:r.message};for(const s of e.termTranslations){const{error:c}=await t.from("product_attribute_terms").update({value_translations:s.valueTranslations,updated_at:new Date().toISOString()}).eq("id",s.termId).eq("attribute_id",e.attributeId);if(c)return{success:!1,error:c.message}}return a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0}}async function I(e){const t=o.getServiceRoleSupabaseClient(),{error:r}=await t.from("product_attribute_terms").delete().eq("id",e);return r?{success:!1,error:r.message}:(a.revalidatePath("/cms/products/attributes"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function R(e){const t=o.getServiceRoleSupabaseClient(),r=e.name.trim(),s=u(e.slug?.trim()||e.name);if(!r||!s)return{success:!1,error:"Category name is required."};const{data:c,error:i}=await t.from("categories").insert({name:r,slug:s,description:e.description?.trim()||null,name_translations:e.nameTranslations||{},description_translations:e.descriptionTranslations||{}}).select().single();return i?{success:!1,error:i.message}:(a.revalidatePath("/cms/products/categories"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0,category:c})}async function D(e,t){const r=o.getServiceRoleSupabaseClient(),s=t.name.trim(),c=u(t.slug?.trim()||t.name);if(!s||!c)return{success:!1,error:"Category name is required."};const{error:i}=await r.from("categories").update({name:s,slug:c,description:t.description?.trim()||null,name_translations:t.nameTranslations||{},description_translations:t.descriptionTranslations||{}}).eq("id",e);return i?{success:!1,error:i.message}:(a.revalidatePath("/cms/products/categories"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function x(e){const t=o.getServiceRoleSupabaseClient(),{error:r}=await t.from("categories").delete().eq("id",e);return r?{success:!1,error:r.message}:(a.revalidatePath("/cms/products/categories"),a.revalidatePath("/cms/products/new"),a.revalidatePath("/cms/products"),{success:!0})}async function F(e,t){const r=o.getServiceRoleSupabaseClient();try{return await d.syncCategoriesForTranslationGroup(r,e,t),a.revalidatePath("/cms/products"),a.revalidatePath(`/cms/products/${e}/edit`),{success:!0}}catch(s){return{success:!1,error:s.message}}}exports.bulkDeleteProductsAction=v;exports.bulkDraftProductsAction=A;exports.createCategoryAction=R;exports.createProductAction=_;exports.createProductAttributeAction=S;exports.createProductAttributeTermAction=C;exports.deleteCategoryAction=x;exports.deleteProductAction=h;exports.deleteProductAttributeAction=w;exports.deleteProductAttributeTermAction=I;exports.publishProductAction=y;exports.reorderProductAttributeTermsAction=q;exports.syncProductCategoriesAction=F;exports.updateCategoryAction=D;exports.updateProductAction=P;exports.updateProductAttributeTranslationsAction=T;
@@ -22,6 +22,16 @@ export declare function bulkDraftProductsAction(productIds: string[]): Promise<{
22
22
  count: number;
23
23
  error?: undefined;
24
24
  }>;
25
+ /**
26
+ * Publish a single product directly (status -> "active") so it becomes visible on
27
+ * the storefront. Used by the draft-aware "View Live" button when an admin chooses
28
+ * to publish a still-draft product. A plain status write (mirrors
29
+ * bulkDraftProductsAction) — it does NOT touch variants, prices, or the sale
30
+ * schedule.
31
+ */
32
+ export declare function publishProductAction(productId: string): Promise<{
33
+ error?: string;
34
+ } | void>;
25
35
  export declare function createProductAttributeAction(input: {
26
36
  name: string;
27
37
  slug?: string;
@@ -1,6 +1,6 @@
1
1
  'use server';
2
- import { getServiceRoleSupabaseClient as n, createClient as i } from "@nextblock-cms/db/server";
3
- import { createProduct as _, deleteProduct as g, syncCategoriesForTranslationGroup as b } from "../../../product-actions.es.js";
2
+ import { getServiceRoleSupabaseClient as n, createClient as u } from "@nextblock-cms/db/server";
3
+ import { createProduct as g, deleteProduct as _, syncCategoriesForTranslationGroup as b } from "../../../product-actions.es.js";
4
4
  import { syncProductSaleCouponToFreemius as w } from "../../../freemius-coupons.es.js";
5
5
  import { normalizeCurrencyRecord as m } from "../../../currency.es.js";
6
6
  import { sanitizeProductFormValuesForStoreManagedCurrencies as l } from "./product-price-sync.es.js";
@@ -10,48 +10,48 @@ function d(e) {
10
10
  return e.toLowerCase().trim().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, "").replace(/-+/g, "-").replace(/^-|-$/g, "");
11
11
  }
12
12
  async function C(e) {
13
- const r = i(), { data: t } = await r.from("currencies").select(
13
+ const r = u(), { data: t } = await r.from("currencies").select(
14
14
  "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"
15
15
  ).eq("is_active", !0).order("code", { ascending: !0 }), c = l(
16
16
  e,
17
- (t || []).map((o) => m(o))
18
- ), a = await _(r, c);
19
- if (c.payment_provider === "freemius" && a?.id)
17
+ (t || []).map((a) => m(a))
18
+ ), o = await g(r, c);
19
+ if (c.payment_provider === "freemius" && o?.id)
20
20
  try {
21
21
  await w({
22
- productId: a.id,
22
+ productId: o.id,
23
23
  client: n()
24
24
  });
25
- } catch (o) {
26
- console.error("Failed to sync Freemius sale coupon on create:", o);
25
+ } catch (a) {
26
+ console.error("Failed to sync Freemius sale coupon on create:", a);
27
27
  }
28
28
  s("/cms/products"), y("/cms/products");
29
29
  }
30
30
  async function I(e, r) {
31
- const t = i(), { data: { user: c } } = await t.auth.getUser();
31
+ const t = u(), { data: { user: c } } = await t.auth.getUser();
32
32
  if (!c)
33
33
  throw new Error("User not authenticated.");
34
- const { data: a } = await t.from("currencies").select(
34
+ const { data: o } = await t.from("currencies").select(
35
35
  "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"
36
- ).eq("is_active", !0).order("code", { ascending: !0 }), o = l(
36
+ ).eq("is_active", !0).order("code", { ascending: !0 }), a = l(
37
37
  r,
38
- (a || []).map((f) => m(f))
39
- ), { error: u } = await t.from("product_drafts").upsert(
38
+ (o || []).map((f) => m(f))
39
+ ), { error: i } = await t.from("product_drafts").upsert(
40
40
  {
41
41
  product_id: e,
42
42
  author_id: c.id,
43
- meta: o,
43
+ meta: a,
44
44
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
45
45
  },
46
46
  { onConflict: "product_id" }
47
47
  );
48
- if (u)
49
- throw new Error(`Failed to save product draft: ${u.message}`);
48
+ if (i)
49
+ throw new Error(`Failed to save product draft: ${i.message}`);
50
50
  return { success: !0 };
51
51
  }
52
52
  async function x(e) {
53
- const r = i();
54
- await g(r, e), s("/cms/products");
53
+ const r = u();
54
+ await _(r, e), s("/cms/products");
55
55
  }
56
56
  function p(e) {
57
57
  return Array.from(
@@ -64,54 +64,69 @@ async function D(e) {
64
64
  const r = p(e);
65
65
  if (r.length === 0)
66
66
  return { success: !1, error: "Select at least one product." };
67
- const t = i(), { error: c } = await t.from("products").delete().in("id", r);
67
+ const t = u(), { error: c } = await t.from("products").delete().in("id", r);
68
68
  return c ? { success: !1, error: c.message } : (s("/cms/products"), { success: !0, count: r.length });
69
69
  }
70
70
  async function F(e) {
71
71
  const r = p(e);
72
72
  if (r.length === 0)
73
73
  return { success: !1, error: "Select at least one product." };
74
- const t = i(), { error: c } = await t.from("products").update({
74
+ const t = u(), { error: c } = await t.from("products").update({
75
75
  status: "draft",
76
76
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
77
77
  }).in("id", r);
78
78
  return c ? { success: !1, error: c.message } : (s("/cms/products"), { success: !0, count: r.length });
79
79
  }
80
+ async function O(e) {
81
+ const r = String(e || "").trim();
82
+ if (!r)
83
+ return { error: "Missing product id." };
84
+ const t = u(), {
85
+ data: { user: c }
86
+ } = await t.auth.getUser();
87
+ if (!c)
88
+ return { error: "You must be signed in to publish a product." };
89
+ const { data: o, error: a } = await t.from("products").update({
90
+ status: "active",
91
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
92
+ }).eq("id", r).select("slug").single();
93
+ return a || !o ? { error: a?.message || "Could not publish the product." } : (s("/cms/products"), s(`/cms/products/${r}/edit`), o.slug && s(`/product/${o.slug}`), {});
94
+ }
80
95
  async function z(e) {
81
96
  const r = n(), t = e.name.trim(), c = d(e.slug?.trim() || e.name);
82
97
  if (!t || !c)
83
98
  return { success: !1, error: "Attribute name is required." };
84
- const { error: a } = await r.from("product_attributes").insert({
99
+ const { error: o } = await r.from("product_attributes").insert({
85
100
  name: t,
86
101
  slug: c
87
102
  });
88
- return a ? { success: !1, error: a.message } : (s("/cms/products/attributes"), s("/cms/products/new"), s("/cms/products"), { success: !0 });
103
+ return o ? { success: !1, error: o.message } : (s("/cms/products/attributes"), s("/cms/products/new"), s("/cms/products"), { success: !0 });
89
104
  }
90
- async function O(e) {
105
+ async function E(e) {
91
106
  const r = n(), { error: t } = await r.from("product_attributes").delete().eq("id", e);
92
107
  return t ? { success: !1, error: t.message } : (s("/cms/products/attributes"), s("/cms/products/new"), s("/cms/products"), { success: !0 });
93
108
  }
94
- async function E(e) {
109
+ async function $(e) {
95
110
  const r = n(), t = e.value.trim(), c = d(e.slug?.trim() || e.value);
96
111
  if (!t || !c)
97
112
  return { success: !1, error: "Term value is required." };
98
- const { data: a } = await r.from("product_attribute_terms").select("sort_order").eq("attribute_id", e.attributeId).order("sort_order", { ascending: !1 }).limit(1), o = typeof a?.[0]?.sort_order == "number" ? a[0].sort_order + 1 : 0, { error: u } = await r.from("product_attribute_terms").insert({
113
+ const { data: o } = await r.from("product_attribute_terms").select("sort_order").eq("attribute_id", e.attributeId).order("sort_order", { ascending: !1 }).limit(1), a = typeof o?.[0]?.sort_order == "number" ? o[0].sort_order + 1 : 0, { error: i } = await r.from("product_attribute_terms").insert({
99
114
  attribute_id: e.attributeId,
100
115
  value: t,
101
116
  slug: c,
102
- sort_order: o
117
+ sort_order: a
103
118
  });
104
- return u ? { success: !1, error: u.message } : (s("/cms/products/attributes"), s("/cms/products/new"), s("/cms/products"), { success: !0 });
119
+ return i ? { success: !1, error: i.message } : (s("/cms/products/attributes"), s("/cms/products/new"), s("/cms/products"), { success: !0 });
105
120
  }
106
- async function $(e) {
121
+ async function U(e) {
107
122
  const r = n();
108
123
  for (const [t, c] of e.orderedTermIds.entries()) {
109
- const { error: a } = await r.from("product_attribute_terms").update({
124
+ const { error: o } = await r.from("product_attribute_terms").update({
110
125
  sort_order: t,
111
126
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
112
127
  }).eq("id", c).eq("attribute_id", e.attributeId);
113
- if (a)
114
- return { success: !1, error: a.message };
128
+ if (o)
129
+ return { success: !1, error: o.message };
115
130
  }
116
131
  return s("/cms/products/attributes"), s("/cms/products/new"), s("/cms/products"), { success: !0 };
117
132
  }
@@ -123,44 +138,44 @@ async function k(e) {
123
138
  if (t)
124
139
  return { success: !1, error: t.message };
125
140
  for (const c of e.termTranslations) {
126
- const { error: a } = await r.from("product_attribute_terms").update({
141
+ const { error: o } = await r.from("product_attribute_terms").update({
127
142
  value_translations: c.valueTranslations,
128
143
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
129
144
  }).eq("id", c.termId).eq("attribute_id", e.attributeId);
130
- if (a)
131
- return { success: !1, error: a.message };
145
+ if (o)
146
+ return { success: !1, error: o.message };
132
147
  }
133
148
  return s("/cms/products/attributes"), s("/cms/products/new"), s("/cms/products"), { success: !0 };
134
149
  }
135
- async function R(e) {
150
+ async function M(e) {
136
151
  const r = n(), { error: t } = await r.from("product_attribute_terms").delete().eq("id", e);
137
152
  return t ? { success: !1, error: t.message } : (s("/cms/products/attributes"), s("/cms/products/new"), s("/cms/products"), { success: !0 });
138
153
  }
139
- async function U(e) {
154
+ async function R(e) {
140
155
  const r = n(), t = e.name.trim(), c = d(e.slug?.trim() || e.name);
141
156
  if (!t || !c)
142
157
  return { success: !1, error: "Category name is required." };
143
- const { data: a, error: o } = await r.from("categories").insert({
158
+ const { data: o, error: a } = await r.from("categories").insert({
144
159
  name: t,
145
160
  slug: c,
146
161
  description: e.description?.trim() || null,
147
162
  name_translations: e.nameTranslations || {},
148
163
  description_translations: e.descriptionTranslations || {}
149
164
  }).select().single();
150
- return o ? { success: !1, error: o.message } : (s("/cms/products/categories"), s("/cms/products/new"), s("/cms/products"), { success: !0, category: a });
165
+ return a ? { success: !1, error: a.message } : (s("/cms/products/categories"), s("/cms/products/new"), s("/cms/products"), { success: !0, category: o });
151
166
  }
152
167
  async function B(e, r) {
153
- const t = n(), c = r.name.trim(), a = d(r.slug?.trim() || r.name);
154
- if (!c || !a)
168
+ const t = n(), c = r.name.trim(), o = d(r.slug?.trim() || r.name);
169
+ if (!c || !o)
155
170
  return { success: !1, error: "Category name is required." };
156
- const { error: o } = await t.from("categories").update({
171
+ const { error: a } = await t.from("categories").update({
157
172
  name: c,
158
- slug: a,
173
+ slug: o,
159
174
  description: r.description?.trim() || null,
160
175
  name_translations: r.nameTranslations || {},
161
176
  description_translations: r.descriptionTranslations || {}
162
177
  }).eq("id", e);
163
- return o ? { success: !1, error: o.message } : (s("/cms/products/categories"), s("/cms/products/new"), s("/cms/products"), { success: !0 });
178
+ return a ? { success: !1, error: a.message } : (s("/cms/products/categories"), s("/cms/products/new"), s("/cms/products"), { success: !0 });
164
179
  }
165
180
  async function G(e) {
166
181
  const r = n(), { error: t } = await r.from("categories").delete().eq("id", e);
@@ -177,15 +192,16 @@ async function L(e, r) {
177
192
  export {
178
193
  D as bulkDeleteProductsAction,
179
194
  F as bulkDraftProductsAction,
180
- U as createCategoryAction,
195
+ R as createCategoryAction,
181
196
  C as createProductAction,
182
197
  z as createProductAttributeAction,
183
- E as createProductAttributeTermAction,
198
+ $ as createProductAttributeTermAction,
184
199
  G as deleteCategoryAction,
185
200
  x as deleteProductAction,
186
- O as deleteProductAttributeAction,
187
- R as deleteProductAttributeTermAction,
188
- $ as reorderProductAttributeTermsAction,
201
+ E as deleteProductAttributeAction,
202
+ M as deleteProductAttributeTermAction,
203
+ O as publishProductAction,
204
+ U as reorderProductAttributeTermsAction,
189
205
  L as syncProductCategoriesAction,
190
206
  B as updateCategoryAction,
191
207
  I as updateProductAction,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextblock-cms/ecom",
3
- "version": "0.13.1",
3
+ "version": "0.13.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -10,9 +10,9 @@
10
10
  },
11
11
  "type": "module",
12
12
  "dependencies": {
13
- "@nextblock-cms/db": "^0.13.1",
14
- "@nextblock-cms/ui": "^0.13.1",
15
- "@nextblock-cms/utils": "^0.13.1",
13
+ "@nextblock-cms/db": "^0.13.2",
14
+ "@nextblock-cms/ui": "^0.13.2",
15
+ "@nextblock-cms/utils": "^0.13.2",
16
16
  "@freemius/checkout": "^1.4.1",
17
17
  "@freemius/sdk": "^0.3.0",
18
18
  "@hookform/resolvers": "^5.2.2",
package/server.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./lib/payment-config.cjs.js"),h=require("./lib/stripe/client.cjs.js"),O=require("./lib/stripe/checkout.cjs.js"),A=require("./lib/stripe/order-sync.cjs.js"),R=require("./lib/stripe/webhooks.cjs.js"),T=require("./lib/order-inventory.cjs.js"),o=require("./lib/order-tax-details.cjs.js"),n=require("./lib/invoice.cjs.js"),g=require("./lib/invoice-server.cjs.js"),l=require("./lib/customer-orders.cjs.js"),C=require("./lib/coupon-server.cjs.js"),P=require("./lib/freemius-coupons.cjs.js"),d=require("./lib/customer.cjs.js"),m=require("./lib/customer-addresses.cjs.js"),e=require("./lib/currency.cjs.js"),q=require("./lib/currency-constants.cjs.js"),p=require("./lib/currency-sync.cjs.js"),D=require("./lib/product-schema.cjs.js"),r=require("./lib/product-actions.cjs.js"),E=require("./lib/factory.cjs.js"),I=require("./lib/providers/stripe.cjs.js"),c=require("./lib/providers/freemius.cjs.js"),i=require("./lib/freemius-order-sync.cjs.js"),b=require("./lib/freemius-license.cjs.js"),a=require("./lib/pages/cms/products/actions.cjs.js"),s=require("./lib/pages/cms/products/server-actions.cjs.js"),y=require("./lib/pages/cms/payments/queries.cjs.js"),f=require("./lib/pages/cms/orders/OrdersPage.cjs.js"),x=require("./lib/pages/cms/orders/OrderDetailPage.cjs.js"),k=require("./lib/pages/cms/orders/ExportReportsDialog.cjs.js"),M=require("./lib/pages/cms/orders/export-actions.cjs.js"),v=require("./lib/pages/cms/orders/actions.cjs.js"),L=require("./lib/pages/cms/products/ProductsPage.cjs.js"),N=require("./lib/pages/cms/products/inventory/InventoryPage.cjs.js"),z=require("./lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js"),_=require("./lib/pages/cms/products/new/NewProductPage.cjs.js"),U=require("./lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js"),W=require("./lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js"),G=require("./lib/pages/cms/products/categories/CategoryManagementPage.cjs.js"),w=require("./lib/pages/cms/payments/PaymentsPage.cjs.js"),F=require("./lib/pages/cms/payments/actions.cjs.js"),K=require("./lib/pages/cms/shipping/ShippingPage.cjs.js"),u=require("./lib/pages/cms/shipping/server-actions.cjs.js"),V=require("./lib/pages/cms/taxes/TaxesPage.cjs.js"),S=require("./lib/pages/cms/taxes/actions.cjs.js"),B=require("./lib/pages/cms/coupons/CouponsPage.cjs.js"),Y=require("./lib/pages/cms/coupons/EditCouponPage.cjs.js");exports.clearPaymentConfigCache=t.clearPaymentConfigCache;exports.getPaymentConfigStatus=t.getPaymentConfigStatus;exports.getPaymentCredentialsView=t.getPaymentCredentialsView;exports.hydrateFreemiusEnvFromDb=t.hydrateFreemiusEnvFromDb;exports.resolveStripePublishableKey=t.resolveStripePublishableKey;exports.resolveStripeSecretKey=t.resolveStripeSecretKey;exports.resolveStripeWebhookSecret=t.resolveStripeWebhookSecret;exports.savePaymentCredentials=t.savePaymentCredentials;exports.getStripeClient=h.getStripeClient;exports.createCheckoutSession=O.createCheckoutSession;exports.syncStripeOrderFromSession=A.syncStripeOrderFromSession;exports.handleStripeWebhook=R.handleStripeWebhook;exports.applyOrderInventoryDeduction=T.applyOrderInventoryDeduction;exports.aggregateOrderTaxLines=o.aggregateOrderTaxLines;exports.buildOrderTaxDetailsFromCalculation=o.buildOrderTaxDetailsFromCalculation;exports.buildOrderTaxDetailsFromStripeSession=o.buildOrderTaxDetailsFromStripeSession;exports.getOrderTaxRateJurisdiction=o.getOrderTaxRateJurisdiction;exports.getOrderTaxRateLabel=o.getOrderTaxRateLabel;exports.getOrderTaxRatePercentage=o.getOrderTaxRatePercentage;exports.normalizeOrderTaxDetails=o.normalizeOrderTaxDetails;exports.DEFAULT_INVOICE_SETTINGS=n.DEFAULT_INVOICE_SETTINGS;exports.INVOICE_SETTINGS_KEY=n.INVOICE_SETTINGS_KEY;exports.formatInvoiceCurrency=n.formatInvoiceCurrency;exports.formatInvoiceDate=n.formatInvoiceDate;exports.getInvoiceAddressLines=n.getInvoiceAddressLines;exports.normalizeInvoiceSettings=n.normalizeInvoiceSettings;exports.serializeInvoiceSettings=n.serializeInvoiceSettings;exports.assignInvoiceMetadata=g.assignInvoiceMetadata;exports.getInvoiceBrandingData=g.getInvoiceBrandingData;exports.getInvoiceOrder=g.getInvoiceOrder;exports.getInvoicePresentationData=g.getInvoicePresentationData;exports.getCurrentCustomerOrder=l.getCurrentCustomerOrder;exports.getCurrentCustomerOrderInvoice=l.getCurrentCustomerOrderInvoice;exports.getCurrentCustomerOrders=l.getCurrentCustomerOrders;exports.getCouponQuote=C.getCouponQuote;exports.getQuoteLineDiscountMap=C.getQuoteLineDiscountMap;exports.recordCouponRedemption=C.recordCouponRedemption;exports.deleteCouponFromFreemius=P.deleteCouponFromFreemius;exports.syncCouponToFreemius=P.syncCouponToFreemius;exports.syncProductSaleCouponToFreemius=P.syncProductSaleCouponToFreemius;exports.addressesMatch=d.addressesMatch;exports.emptyCustomerAddress=d.emptyCustomerAddress;exports.isCustomerAddressComplete=d.isCustomerAddressComplete;exports.normalizeCustomerAddress=d.normalizeCustomerAddress;exports.normalizeOrderCustomerDetails=d.normalizeOrderCustomerDetails;exports.fillMissingUserProfileCheckoutDetails=m.fillMissingUserProfileCheckoutDetails;exports.getDefaultUserAddresses=m.getDefaultUserAddresses;exports.upsertDefaultUserAddresses=m.upsertDefaultUserAddresses;exports.CURRENCY_ROUNDING_MODES=e.CURRENCY_ROUNDING_MODES;exports.applyCurrencyRounding=e.applyCurrencyRounding;exports.convertMinorUnitAmount=e.convertMinorUnitAmount;exports.describeCurrencyRoundingRule=e.describeCurrencyRoundingRule;exports.getCurrencyLookup=e.getCurrencyLookup;exports.getDefaultCurrency=e.getDefaultCurrency;exports.getExchangeRateForCurrency=e.getExchangeRateForCurrency;exports.inferCurrencyCodeFromLocale=e.inferCurrencyCodeFromLocale;exports.isSaleWindowActive=e.isSaleWindowActive;exports.isScheduledPriceDue=e.isScheduledPriceDue;exports.normalizeCurrencyRecord=e.normalizeCurrencyRecord;exports.normalizeCurrencyRoundingMode=e.normalizeCurrencyRoundingMode;exports.normalizePriceMap=e.normalizePriceMap;exports.normalizeSalePriceMap=e.normalizeSalePriceMap;exports.resolveEffectivePriceForCurrency=e.resolveEffectivePriceForCurrency;exports.resolvePriceForCurrency=e.resolvePriceForCurrency;exports.resolvePriceRangeForCurrency=e.resolvePriceRangeForCurrency;exports.sortCurrencies=e.sortCurrencies;exports.CURRENCY_COOKIE_NAME=q.CURRENCY_COOKIE_NAME;exports.clearAutoSyncedCurrencyPriceOverrides=p.clearAutoSyncedCurrencyPriceOverrides;exports.rebaseStoreCurrencyExchangeRates=p.rebaseStoreCurrencyExchangeRates;exports.syncStoreCurrencyRates=p.syncStoreCurrencyRates;exports.productSchema=D.productSchema;exports.copyProductFromLanguage=r.copyProductFromLanguage;exports.createProduct=r.createProduct;exports.deleteProduct=r.deleteProduct;exports.fetchTranslatedProductsForCartInternal=r.fetchTranslatedProductsForCartInternal;exports.getProduct=r.getProduct;exports.getProductBySlug=r.getProductBySlug;exports.getProducts=r.getProducts;exports.syncCategoriesForTranslationGroup=r.syncCategoriesForTranslationGroup;exports.updateProduct=r.updateProduct;exports.getPaymentProvider=E.getPaymentProvider;exports.StripeProvider=I.StripeProvider;exports.FreemiusProvider=c.FreemiusProvider;exports.parseFreemiusCheckoutCredentialsMap=c.parseFreemiusCheckoutCredentialsMap;exports.readFreemiusEnvValue=c.readFreemiusEnvValue;exports.resolveFreemiusCheckoutCredentials=c.resolveFreemiusCheckoutCredentials;exports.syncFreemiusProductsToSupabase=c.syncFreemiusProductsToSupabase;exports.syncSingleFreemiusProduct=c.syncSingleFreemiusProduct;exports.extractFreemiusCheckoutMetadata=i.extractFreemiusCheckoutMetadata;exports.getFreemiusWebhookSecretCandidates=i.getFreemiusWebhookSecretCandidates;exports.resolveFreemiusStatusFromCheckoutResponse=i.resolveFreemiusStatusFromCheckoutResponse;exports.resolveFreemiusStatusFromWebhookEvent=i.resolveFreemiusStatusFromWebhookEvent;exports.syncFreemiusCheckoutOrder=i.syncFreemiusCheckoutOrder;exports.syncFreemiusOrderFromWebhookEvent=i.syncFreemiusOrderFromWebhookEvent;exports.verifyFreemiusWebhookSignature=i.verifyFreemiusWebhookSignature;exports.getFreemiusOrderLicense=b.getFreemiusOrderLicense;exports.getCategoriesWithCount=a.getCategoriesWithCount;exports.getCategoryBySlug=a.getCategoryBySlug;exports.getCmsProduct=a.getProduct;exports.getCmsProducts=a.getProducts;exports.getGlobalProductAttributes=a.getGlobalProductAttributes;exports.getProductCategories=a.getProductCategories;exports.getProductTranslations=a.getProductTranslations;exports.createCategoryAction=s.createCategoryAction;exports.createProductAction=s.createProductAction;exports.deleteCategoryAction=s.deleteCategoryAction;exports.deleteProductAction=s.deleteProductAction;exports.syncProductCategoriesAction=s.syncProductCategoriesAction;exports.updateCategoryAction=s.updateCategoryAction;exports.updateProductAction=s.updateProductAction;exports.getEnabledPaymentProviders=y.getEnabledPaymentProviders;exports.getPaymentSettings=y.getPaymentSettings;exports.getStoreConfigStatus=y.getStoreConfigStatus;exports.OrdersPage=f.OrdersPage;exports.OrderDetailPage=x.OrderDetailPage;exports.ExportReportsDialog=k.ExportReportsDialog;exports.fetchOrderReportData=M.fetchOrderReportData;exports.getOrderDetails=v.getOrderDetails;exports.getOrders=v.getOrders;exports.ProductsPage=L.ProductsPage;exports.InventoryPage=N.InventoryPage;exports.AttributeManagementPage=z.AttributeManagementPage;exports.NewProductPage=_.NewProductPage;exports.EditProductPage=U.EditProductPage;exports.CopyProductFromLanguage=W.CopyProductFromLanguage;exports.CategoryManagementPage=G.CategoryManagementPage;exports.PaymentsPage=w.PaymentsPage;exports.savePaymentProviderCredentials=F.savePaymentProviderCredentials;exports.updatePaymentSettings=F.updatePaymentSettings;exports.ShippingPage=K.ShippingPage;exports.createShippingRate=u.createShippingRate;exports.createShippingZone=u.createShippingZone;exports.deleteShippingRate=u.deleteShippingRate;exports.deleteShippingZone=u.deleteShippingZone;exports.updateInventoryTrackingAction=u.updateInventoryTrackingAction;exports.updateShippingRate=u.updateShippingRate;exports.updateShippingZone=u.updateShippingZone;exports.TaxesPage=V.TaxesPage;exports.deleteTaxRateAction=S.deleteTaxRateAction;exports.saveTaxRateAction=S.saveTaxRateAction;exports.updateTaxSettingsAction=S.updateTaxSettingsAction;exports.CouponsPage=B.CouponsPage;exports.EditCouponPage=Y.EditCouponPage;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./lib/payment-config.cjs.js"),h=require("./lib/stripe/client.cjs.js"),O=require("./lib/stripe/checkout.cjs.js"),A=require("./lib/stripe/order-sync.cjs.js"),R=require("./lib/stripe/webhooks.cjs.js"),T=require("./lib/order-inventory.cjs.js"),n=require("./lib/order-tax-details.cjs.js"),i=require("./lib/invoice.cjs.js"),g=require("./lib/invoice-server.cjs.js"),l=require("./lib/customer-orders.cjs.js"),C=require("./lib/coupon-server.cjs.js"),P=require("./lib/freemius-coupons.cjs.js"),d=require("./lib/customer.cjs.js"),m=require("./lib/customer-addresses.cjs.js"),e=require("./lib/currency.cjs.js"),q=require("./lib/currency-constants.cjs.js"),p=require("./lib/currency-sync.cjs.js"),D=require("./lib/product-schema.cjs.js"),r=require("./lib/product-actions.cjs.js"),E=require("./lib/factory.cjs.js"),b=require("./lib/providers/stripe.cjs.js"),c=require("./lib/providers/freemius.cjs.js"),a=require("./lib/freemius-order-sync.cjs.js"),I=require("./lib/freemius-license.cjs.js"),s=require("./lib/pages/cms/products/actions.cjs.js"),o=require("./lib/pages/cms/products/server-actions.cjs.js"),y=require("./lib/pages/cms/payments/queries.cjs.js"),f=require("./lib/pages/cms/orders/OrdersPage.cjs.js"),x=require("./lib/pages/cms/orders/OrderDetailPage.cjs.js"),k=require("./lib/pages/cms/orders/ExportReportsDialog.cjs.js"),M=require("./lib/pages/cms/orders/export-actions.cjs.js"),v=require("./lib/pages/cms/orders/actions.cjs.js"),L=require("./lib/pages/cms/products/ProductsPage.cjs.js"),N=require("./lib/pages/cms/products/inventory/InventoryPage.cjs.js"),z=require("./lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js"),_=require("./lib/pages/cms/products/new/NewProductPage.cjs.js"),U=require("./lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js"),W=require("./lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js"),G=require("./lib/pages/cms/products/categories/CategoryManagementPage.cjs.js"),w=require("./lib/pages/cms/payments/PaymentsPage.cjs.js"),F=require("./lib/pages/cms/payments/actions.cjs.js"),K=require("./lib/pages/cms/shipping/ShippingPage.cjs.js"),u=require("./lib/pages/cms/shipping/server-actions.cjs.js"),V=require("./lib/pages/cms/taxes/TaxesPage.cjs.js"),S=require("./lib/pages/cms/taxes/actions.cjs.js"),B=require("./lib/pages/cms/coupons/CouponsPage.cjs.js"),Y=require("./lib/pages/cms/coupons/EditCouponPage.cjs.js");exports.clearPaymentConfigCache=t.clearPaymentConfigCache;exports.getPaymentConfigStatus=t.getPaymentConfigStatus;exports.getPaymentCredentialsView=t.getPaymentCredentialsView;exports.hydrateFreemiusEnvFromDb=t.hydrateFreemiusEnvFromDb;exports.resolveStripePublishableKey=t.resolveStripePublishableKey;exports.resolveStripeSecretKey=t.resolveStripeSecretKey;exports.resolveStripeWebhookSecret=t.resolveStripeWebhookSecret;exports.savePaymentCredentials=t.savePaymentCredentials;exports.getStripeClient=h.getStripeClient;exports.createCheckoutSession=O.createCheckoutSession;exports.syncStripeOrderFromSession=A.syncStripeOrderFromSession;exports.handleStripeWebhook=R.handleStripeWebhook;exports.applyOrderInventoryDeduction=T.applyOrderInventoryDeduction;exports.aggregateOrderTaxLines=n.aggregateOrderTaxLines;exports.buildOrderTaxDetailsFromCalculation=n.buildOrderTaxDetailsFromCalculation;exports.buildOrderTaxDetailsFromStripeSession=n.buildOrderTaxDetailsFromStripeSession;exports.getOrderTaxRateJurisdiction=n.getOrderTaxRateJurisdiction;exports.getOrderTaxRateLabel=n.getOrderTaxRateLabel;exports.getOrderTaxRatePercentage=n.getOrderTaxRatePercentage;exports.normalizeOrderTaxDetails=n.normalizeOrderTaxDetails;exports.DEFAULT_INVOICE_SETTINGS=i.DEFAULT_INVOICE_SETTINGS;exports.INVOICE_SETTINGS_KEY=i.INVOICE_SETTINGS_KEY;exports.formatInvoiceCurrency=i.formatInvoiceCurrency;exports.formatInvoiceDate=i.formatInvoiceDate;exports.getInvoiceAddressLines=i.getInvoiceAddressLines;exports.normalizeInvoiceSettings=i.normalizeInvoiceSettings;exports.serializeInvoiceSettings=i.serializeInvoiceSettings;exports.assignInvoiceMetadata=g.assignInvoiceMetadata;exports.getInvoiceBrandingData=g.getInvoiceBrandingData;exports.getInvoiceOrder=g.getInvoiceOrder;exports.getInvoicePresentationData=g.getInvoicePresentationData;exports.getCurrentCustomerOrder=l.getCurrentCustomerOrder;exports.getCurrentCustomerOrderInvoice=l.getCurrentCustomerOrderInvoice;exports.getCurrentCustomerOrders=l.getCurrentCustomerOrders;exports.getCouponQuote=C.getCouponQuote;exports.getQuoteLineDiscountMap=C.getQuoteLineDiscountMap;exports.recordCouponRedemption=C.recordCouponRedemption;exports.deleteCouponFromFreemius=P.deleteCouponFromFreemius;exports.syncCouponToFreemius=P.syncCouponToFreemius;exports.syncProductSaleCouponToFreemius=P.syncProductSaleCouponToFreemius;exports.addressesMatch=d.addressesMatch;exports.emptyCustomerAddress=d.emptyCustomerAddress;exports.isCustomerAddressComplete=d.isCustomerAddressComplete;exports.normalizeCustomerAddress=d.normalizeCustomerAddress;exports.normalizeOrderCustomerDetails=d.normalizeOrderCustomerDetails;exports.fillMissingUserProfileCheckoutDetails=m.fillMissingUserProfileCheckoutDetails;exports.getDefaultUserAddresses=m.getDefaultUserAddresses;exports.upsertDefaultUserAddresses=m.upsertDefaultUserAddresses;exports.CURRENCY_ROUNDING_MODES=e.CURRENCY_ROUNDING_MODES;exports.applyCurrencyRounding=e.applyCurrencyRounding;exports.convertMinorUnitAmount=e.convertMinorUnitAmount;exports.describeCurrencyRoundingRule=e.describeCurrencyRoundingRule;exports.getCurrencyLookup=e.getCurrencyLookup;exports.getDefaultCurrency=e.getDefaultCurrency;exports.getExchangeRateForCurrency=e.getExchangeRateForCurrency;exports.inferCurrencyCodeFromLocale=e.inferCurrencyCodeFromLocale;exports.isSaleWindowActive=e.isSaleWindowActive;exports.isScheduledPriceDue=e.isScheduledPriceDue;exports.normalizeCurrencyRecord=e.normalizeCurrencyRecord;exports.normalizeCurrencyRoundingMode=e.normalizeCurrencyRoundingMode;exports.normalizePriceMap=e.normalizePriceMap;exports.normalizeSalePriceMap=e.normalizeSalePriceMap;exports.resolveEffectivePriceForCurrency=e.resolveEffectivePriceForCurrency;exports.resolvePriceForCurrency=e.resolvePriceForCurrency;exports.resolvePriceRangeForCurrency=e.resolvePriceRangeForCurrency;exports.sortCurrencies=e.sortCurrencies;exports.CURRENCY_COOKIE_NAME=q.CURRENCY_COOKIE_NAME;exports.clearAutoSyncedCurrencyPriceOverrides=p.clearAutoSyncedCurrencyPriceOverrides;exports.rebaseStoreCurrencyExchangeRates=p.rebaseStoreCurrencyExchangeRates;exports.syncStoreCurrencyRates=p.syncStoreCurrencyRates;exports.productSchema=D.productSchema;exports.copyProductFromLanguage=r.copyProductFromLanguage;exports.createProduct=r.createProduct;exports.deleteProduct=r.deleteProduct;exports.fetchTranslatedProductsForCartInternal=r.fetchTranslatedProductsForCartInternal;exports.getProduct=r.getProduct;exports.getProductBySlug=r.getProductBySlug;exports.getProducts=r.getProducts;exports.syncCategoriesForTranslationGroup=r.syncCategoriesForTranslationGroup;exports.updateProduct=r.updateProduct;exports.getPaymentProvider=E.getPaymentProvider;exports.StripeProvider=b.StripeProvider;exports.FreemiusProvider=c.FreemiusProvider;exports.parseFreemiusCheckoutCredentialsMap=c.parseFreemiusCheckoutCredentialsMap;exports.readFreemiusEnvValue=c.readFreemiusEnvValue;exports.resolveFreemiusCheckoutCredentials=c.resolveFreemiusCheckoutCredentials;exports.syncFreemiusProductsToSupabase=c.syncFreemiusProductsToSupabase;exports.syncSingleFreemiusProduct=c.syncSingleFreemiusProduct;exports.extractFreemiusCheckoutMetadata=a.extractFreemiusCheckoutMetadata;exports.getFreemiusWebhookSecretCandidates=a.getFreemiusWebhookSecretCandidates;exports.resolveFreemiusStatusFromCheckoutResponse=a.resolveFreemiusStatusFromCheckoutResponse;exports.resolveFreemiusStatusFromWebhookEvent=a.resolveFreemiusStatusFromWebhookEvent;exports.syncFreemiusCheckoutOrder=a.syncFreemiusCheckoutOrder;exports.syncFreemiusOrderFromWebhookEvent=a.syncFreemiusOrderFromWebhookEvent;exports.verifyFreemiusWebhookSignature=a.verifyFreemiusWebhookSignature;exports.getFreemiusOrderLicense=I.getFreemiusOrderLicense;exports.getCategoriesWithCount=s.getCategoriesWithCount;exports.getCategoryBySlug=s.getCategoryBySlug;exports.getCmsProduct=s.getProduct;exports.getCmsProducts=s.getProducts;exports.getGlobalProductAttributes=s.getGlobalProductAttributes;exports.getProductCategories=s.getProductCategories;exports.getProductTranslations=s.getProductTranslations;exports.createCategoryAction=o.createCategoryAction;exports.createProductAction=o.createProductAction;exports.deleteCategoryAction=o.deleteCategoryAction;exports.deleteProductAction=o.deleteProductAction;exports.publishProductAction=o.publishProductAction;exports.syncProductCategoriesAction=o.syncProductCategoriesAction;exports.updateCategoryAction=o.updateCategoryAction;exports.updateProductAction=o.updateProductAction;exports.getEnabledPaymentProviders=y.getEnabledPaymentProviders;exports.getPaymentSettings=y.getPaymentSettings;exports.getStoreConfigStatus=y.getStoreConfigStatus;exports.OrdersPage=f.OrdersPage;exports.OrderDetailPage=x.OrderDetailPage;exports.ExportReportsDialog=k.ExportReportsDialog;exports.fetchOrderReportData=M.fetchOrderReportData;exports.getOrderDetails=v.getOrderDetails;exports.getOrders=v.getOrders;exports.ProductsPage=L.ProductsPage;exports.InventoryPage=N.InventoryPage;exports.AttributeManagementPage=z.AttributeManagementPage;exports.NewProductPage=_.NewProductPage;exports.EditProductPage=U.EditProductPage;exports.CopyProductFromLanguage=W.CopyProductFromLanguage;exports.CategoryManagementPage=G.CategoryManagementPage;exports.PaymentsPage=w.PaymentsPage;exports.savePaymentProviderCredentials=F.savePaymentProviderCredentials;exports.updatePaymentSettings=F.updatePaymentSettings;exports.ShippingPage=K.ShippingPage;exports.createShippingRate=u.createShippingRate;exports.createShippingZone=u.createShippingZone;exports.deleteShippingRate=u.deleteShippingRate;exports.deleteShippingZone=u.deleteShippingZone;exports.updateInventoryTrackingAction=u.updateInventoryTrackingAction;exports.updateShippingRate=u.updateShippingRate;exports.updateShippingZone=u.updateShippingZone;exports.TaxesPage=V.TaxesPage;exports.deleteTaxRateAction=S.deleteTaxRateAction;exports.saveTaxRateAction=S.saveTaxRateAction;exports.updateTaxSettingsAction=S.updateTaxSettingsAction;exports.CouponsPage=B.CouponsPage;exports.EditCouponPage=Y.EditCouponPage;
package/server.d.ts CHANGED
@@ -23,7 +23,7 @@ export * from './lib/providers/freemius';
23
23
  export * from './lib/freemius-order-sync';
24
24
  export * from './lib/freemius-license';
25
25
  export { getProduct as getCmsProduct, getProducts as getCmsProducts, getGlobalProductAttributes, getProductTranslations, getCategoriesWithCount, getProductCategories, getCategoryBySlug, } from './lib/pages/cms/products/actions';
26
- export { createProductAction, updateProductAction, deleteProductAction, createCategoryAction, updateCategoryAction, deleteCategoryAction, syncProductCategoriesAction, } from './lib/pages/cms/products/server-actions';
26
+ export { createProductAction, updateProductAction, publishProductAction, deleteProductAction, createCategoryAction, updateCategoryAction, deleteCategoryAction, syncProductCategoriesAction, } from './lib/pages/cms/products/server-actions';
27
27
  export { getEnabledPaymentProviders, getPaymentSettings, getStoreConfigStatus, } from './lib/pages/cms/payments/queries';
28
28
  export * from './lib/pages/cms/orders';
29
29
  export * from './lib/pages/cms/products';
package/server.es.js CHANGED
@@ -23,50 +23,50 @@ import { FreemiusProvider as He, parseFreemiusCheckoutCredentialsMap as Xe, read
23
23
  import { extractFreemiusCheckoutMetadata as ar, getFreemiusWebhookSecretCandidates as nr, resolveFreemiusStatusFromCheckoutResponse as ir, resolveFreemiusStatusFromWebhookEvent as sr, syncFreemiusCheckoutOrder as ur, syncFreemiusOrderFromWebhookEvent as cr, verifyFreemiusWebhookSignature as dr } from "./lib/freemius-order-sync.es.js";
24
24
  import { getFreemiusOrderLicense as pr } from "./lib/freemius-license.es.js";
25
25
  import { getCategoriesWithCount as lr, getCategoryBySlug as Cr, getProduct as Pr, getProducts as fr, getGlobalProductAttributes as xr, getProductCategories as yr, getProductTranslations as Sr } from "./lib/pages/cms/products/actions.es.js";
26
- import { createCategoryAction as Fr, createProductAction as hr, deleteCategoryAction as Or, deleteProductAction as Rr, syncProductCategoriesAction as Ar, updateCategoryAction as Tr, updateProductAction as Dr } from "./lib/pages/cms/products/server-actions.es.js";
27
- import { getEnabledPaymentProviders as Ir, getPaymentSettings as br, getStoreConfigStatus as kr } from "./lib/pages/cms/payments/queries.es.js";
28
- import { OrdersPage as Lr } from "./lib/pages/cms/orders/OrdersPage.es.js";
29
- import { OrderDetailPage as zr } from "./lib/pages/cms/orders/OrderDetailPage.es.js";
30
- import { ExportReportsDialog as Wr } from "./lib/pages/cms/orders/ExportReportsDialog.es.js";
31
- import { fetchOrderReportData as Gr } from "./lib/pages/cms/orders/export-actions.es.js";
32
- import { getOrderDetails as Vr, getOrders as wr } from "./lib/pages/cms/orders/actions.es.js";
33
- import { ProductsPage as Yr } from "./lib/pages/cms/products/ProductsPage.es.js";
34
- import { InventoryPage as Qr } from "./lib/pages/cms/products/inventory/InventoryPage.es.js";
35
- import { AttributeManagementPage as jr } from "./lib/pages/cms/products/attributes/AttributeManagementPage.es.js";
36
- import { NewProductPage as Hr } from "./lib/pages/cms/products/new/NewProductPage.es.js";
37
- import { EditProductPage as $r } from "./lib/pages/cms/products/_id_/edit/EditProductPage.es.js";
38
- import { CopyProductFromLanguage as rt } from "./lib/pages/cms/products/components/CopyProductFromLanguage.es.js";
39
- import { CategoryManagementPage as ot } from "./lib/pages/cms/products/categories/CategoryManagementPage.es.js";
40
- import { PaymentsPage as nt } from "./lib/pages/cms/payments/PaymentsPage.es.js";
41
- import { savePaymentProviderCredentials as st, updatePaymentSettings as ut } from "./lib/pages/cms/payments/actions.es.js";
42
- import { ShippingPage as dt } from "./lib/pages/cms/shipping/ShippingPage.es.js";
43
- import { createShippingRate as pt, createShippingZone as gt, deleteShippingRate as lt, deleteShippingZone as Ct, updateInventoryTrackingAction as Pt, updateShippingRate as ft, updateShippingZone as xt } from "./lib/pages/cms/shipping/server-actions.es.js";
44
- import { TaxesPage as St } from "./lib/pages/cms/taxes/TaxesPage.es.js";
45
- import { deleteTaxRateAction as Ft, saveTaxRateAction as ht, updateTaxSettingsAction as Ot } from "./lib/pages/cms/taxes/actions.es.js";
46
- import { CouponsPage as At } from "./lib/pages/cms/coupons/CouponsPage.es.js";
47
- import { EditCouponPage as Dt } from "./lib/pages/cms/coupons/EditCouponPage.es.js";
26
+ import { createCategoryAction as Fr, createProductAction as hr, deleteCategoryAction as Or, deleteProductAction as Rr, publishProductAction as Ar, syncProductCategoriesAction as Tr, updateCategoryAction as Dr, updateProductAction as Er } from "./lib/pages/cms/products/server-actions.es.js";
27
+ import { getEnabledPaymentProviders as br, getPaymentSettings as kr, getStoreConfigStatus as Mr } from "./lib/pages/cms/payments/queries.es.js";
28
+ import { OrdersPage as Nr } from "./lib/pages/cms/orders/OrdersPage.es.js";
29
+ import { OrderDetailPage as Ur } from "./lib/pages/cms/orders/OrderDetailPage.es.js";
30
+ import { ExportReportsDialog as _r } from "./lib/pages/cms/orders/ExportReportsDialog.es.js";
31
+ import { fetchOrderReportData as Kr } from "./lib/pages/cms/orders/export-actions.es.js";
32
+ import { getOrderDetails as wr, getOrders as Br } from "./lib/pages/cms/orders/actions.es.js";
33
+ import { ProductsPage as Zr } from "./lib/pages/cms/products/ProductsPage.es.js";
34
+ import { InventoryPage as Jr } from "./lib/pages/cms/products/inventory/InventoryPage.es.js";
35
+ import { AttributeManagementPage as qr } from "./lib/pages/cms/products/attributes/AttributeManagementPage.es.js";
36
+ import { NewProductPage as Xr } from "./lib/pages/cms/products/new/NewProductPage.es.js";
37
+ import { EditProductPage as et } from "./lib/pages/cms/products/_id_/edit/EditProductPage.es.js";
38
+ import { CopyProductFromLanguage as tt } from "./lib/pages/cms/products/components/CopyProductFromLanguage.es.js";
39
+ import { CategoryManagementPage as at } from "./lib/pages/cms/products/categories/CategoryManagementPage.es.js";
40
+ import { PaymentsPage as it } from "./lib/pages/cms/payments/PaymentsPage.es.js";
41
+ import { savePaymentProviderCredentials as ut, updatePaymentSettings as ct } from "./lib/pages/cms/payments/actions.es.js";
42
+ import { ShippingPage as mt } from "./lib/pages/cms/shipping/ShippingPage.es.js";
43
+ import { createShippingRate as gt, createShippingZone as lt, deleteShippingRate as Ct, deleteShippingZone as Pt, updateInventoryTrackingAction as ft, updateShippingRate as xt, updateShippingZone as yt } from "./lib/pages/cms/shipping/server-actions.es.js";
44
+ import { TaxesPage as vt } from "./lib/pages/cms/taxes/TaxesPage.es.js";
45
+ import { deleteTaxRateAction as ht, saveTaxRateAction as Ot, updateTaxSettingsAction as Rt } from "./lib/pages/cms/taxes/actions.es.js";
46
+ import { CouponsPage as Tt } from "./lib/pages/cms/coupons/CouponsPage.es.js";
47
+ import { EditCouponPage as Et } from "./lib/pages/cms/coupons/EditCouponPage.es.js";
48
48
  export {
49
- jr as AttributeManagementPage,
49
+ qr as AttributeManagementPage,
50
50
  Ee as CURRENCY_COOKIE_NAME,
51
51
  de as CURRENCY_ROUNDING_MODES,
52
- ot as CategoryManagementPage,
53
- rt as CopyProductFromLanguage,
54
- At as CouponsPage,
52
+ at as CategoryManagementPage,
53
+ tt as CopyProductFromLanguage,
54
+ Tt as CouponsPage,
55
55
  E as DEFAULT_INVOICE_SETTINGS,
56
- Dt as EditCouponPage,
57
- $r as EditProductPage,
58
- Wr as ExportReportsDialog,
56
+ Et as EditCouponPage,
57
+ et as EditProductPage,
58
+ _r as ExportReportsDialog,
59
59
  He as FreemiusProvider,
60
60
  I as INVOICE_SETTINGS_KEY,
61
- Qr as InventoryPage,
62
- Hr as NewProductPage,
63
- zr as OrderDetailPage,
64
- Lr as OrdersPage,
65
- nt as PaymentsPage,
66
- Yr as ProductsPage,
67
- dt as ShippingPage,
61
+ Jr as InventoryPage,
62
+ Xr as NewProductPage,
63
+ Ur as OrderDetailPage,
64
+ Nr as OrdersPage,
65
+ it as PaymentsPage,
66
+ Zr as ProductsPage,
67
+ mt as ShippingPage,
68
68
  je as StripeProvider,
69
- St as TaxesPage,
69
+ vt as TaxesPage,
70
70
  ee as addressesMatch,
71
71
  v as aggregateOrderTaxLines,
72
72
  me as applyCurrencyRounding,
@@ -82,19 +82,19 @@ export {
82
82
  g as createCheckoutSession,
83
83
  We as createProduct,
84
84
  hr as createProductAction,
85
- pt as createShippingRate,
86
- gt as createShippingZone,
85
+ gt as createShippingRate,
86
+ lt as createShippingZone,
87
87
  Or as deleteCategoryAction,
88
88
  q as deleteCouponFromFreemius,
89
89
  _e as deleteProduct,
90
90
  Rr as deleteProductAction,
91
- lt as deleteShippingRate,
92
- Ct as deleteShippingZone,
93
- Ft as deleteTaxRateAction,
91
+ Ct as deleteShippingRate,
92
+ Pt as deleteShippingZone,
93
+ ht as deleteTaxRateAction,
94
94
  ge as describeCurrencyRoundingRule,
95
95
  re as emptyCustomerAddress,
96
96
  ar as extractFreemiusCheckoutMetadata,
97
- Gr as fetchOrderReportData,
97
+ Kr as fetchOrderReportData,
98
98
  Ge as fetchTranslatedProductsForCartInternal,
99
99
  ie as fillMissingUserProfileCheckoutDetails,
100
100
  b as formatInvoiceCurrency,
@@ -110,7 +110,7 @@ export {
110
110
  B as getCurrentCustomerOrders,
111
111
  Ce as getDefaultCurrency,
112
112
  se as getDefaultUserAddresses,
113
- Ir as getEnabledPaymentProviders,
113
+ br as getEnabledPaymentProviders,
114
114
  Pe as getExchangeRateForCurrency,
115
115
  pr as getFreemiusOrderLicense,
116
116
  nr as getFreemiusWebhookSecretCandidates,
@@ -119,22 +119,22 @@ export {
119
119
  W as getInvoiceBrandingData,
120
120
  _ as getInvoiceOrder,
121
121
  G as getInvoicePresentationData,
122
- Vr as getOrderDetails,
122
+ wr as getOrderDetails,
123
123
  O as getOrderTaxRateJurisdiction,
124
124
  R as getOrderTaxRateLabel,
125
125
  A as getOrderTaxRatePercentage,
126
- wr as getOrders,
126
+ Br as getOrders,
127
127
  o as getPaymentConfigStatus,
128
128
  a as getPaymentCredentialsView,
129
129
  Qe as getPaymentProvider,
130
- br as getPaymentSettings,
130
+ kr as getPaymentSettings,
131
131
  Ke as getProduct,
132
132
  Ve as getProductBySlug,
133
133
  yr as getProductCategories,
134
134
  Sr as getProductTranslations,
135
135
  we as getProducts,
136
136
  Q as getQuoteLineDiscountMap,
137
- kr as getStoreConfigStatus,
137
+ Mr as getStoreConfigStatus,
138
138
  m as getStripeClient,
139
139
  f as handleStripeWebhook,
140
140
  n as hydrateFreemiusEnvFromDb,
@@ -152,6 +152,7 @@ export {
152
152
  he as normalizeSalePriceMap,
153
153
  Xe as parseFreemiusCheckoutCredentialsMap,
154
154
  Ne as productSchema,
155
+ Ar as publishProductAction,
155
156
  $e as readFreemiusEnvValue,
156
157
  ke as rebaseStoreCurrencyExchangeRates,
157
158
  J as recordCouponRedemption,
@@ -165,8 +166,8 @@ export {
165
166
  s as resolveStripeSecretKey,
166
167
  u as resolveStripeWebhookSecret,
167
168
  c as savePaymentCredentials,
168
- st as savePaymentProviderCredentials,
169
- ht as saveTaxRateAction,
169
+ ut as savePaymentProviderCredentials,
170
+ Ot as saveTaxRateAction,
170
171
  N as serializeInvoiceSettings,
171
172
  Te as sortCurrencies,
172
173
  Be as syncCategoriesForTranslationGroup,
@@ -174,19 +175,19 @@ export {
174
175
  ur as syncFreemiusCheckoutOrder,
175
176
  cr as syncFreemiusOrderFromWebhookEvent,
176
177
  rr as syncFreemiusProductsToSupabase,
177
- Ar as syncProductCategoriesAction,
178
+ Tr as syncProductCategoriesAction,
178
179
  X as syncProductSaleCouponToFreemius,
179
180
  tr as syncSingleFreemiusProduct,
180
181
  Me as syncStoreCurrencyRates,
181
182
  C as syncStripeOrderFromSession,
182
- Tr as updateCategoryAction,
183
- Pt as updateInventoryTrackingAction,
184
- ut as updatePaymentSettings,
183
+ Dr as updateCategoryAction,
184
+ ft as updateInventoryTrackingAction,
185
+ ct as updatePaymentSettings,
185
186
  Ye as updateProduct,
186
- Dr as updateProductAction,
187
- ft as updateShippingRate,
188
- xt as updateShippingZone,
189
- Ot as updateTaxSettingsAction,
187
+ Er as updateProductAction,
188
+ xt as updateShippingRate,
189
+ yt as updateShippingZone,
190
+ Rt as updateTaxSettingsAction,
190
191
  ue as upsertDefaultUserAddresses,
191
192
  dr as verifyFreemiusWebhookSignature
192
193
  };