medusa-product-helper 0.0.20 → 0.0.21

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.
@@ -103,7 +103,9 @@ function coerceMetadataValue(descriptor, value) {
103
103
  const num = typeof value === "number" ? value : Number(String(value).trim());
104
104
  return isNaN(num) ? void 0 : num;
105
105
  }
106
- return String(value).trim();
106
+ const trimmed = String(value).trim();
107
+ if (!trimmed) return void 0;
108
+ return trimmed;
107
109
  }
108
110
  function normalizeKey(value) {
109
111
  return typeof value === "string" ? value.trim() || void 0 : void 0;
@@ -597,23 +599,61 @@ adminSdk.defineWidgetConfig({
597
599
  const CONFIG_DOCS_URL$1 = "https://docs.medusajs.com/admin/extension-points/widgets#order-details";
598
600
  const OrderMetadataTableWidget = ({ data }) => {
599
601
  const { data: descriptors = [], isPending, isError } = useOrderMetadataConfig();
600
- const metadata = (data == null ? void 0 : data.metadata) ?? {};
601
- const [baselineMetadata, setBaselineMetadata] = react.useState(metadata);
602
+ const orderId = (data == null ? void 0 : data.id) ?? void 0;
603
+ const [baselineMetadata, setBaselineMetadata] = react.useState(
604
+ (data == null ? void 0 : data.metadata) ?? {}
605
+ );
602
606
  const queryClient = reactQuery.useQueryClient();
607
+ const previousOrderIdRef = react.useRef(orderId);
608
+ const isInitializedRef = react.useRef(false);
609
+ const dataRef = react.useRef(data);
610
+ const descriptorsRef = react.useRef(descriptors);
603
611
  react.useEffect(() => {
604
- setBaselineMetadata(metadata);
605
- }, [metadata]);
612
+ dataRef.current = data;
613
+ descriptorsRef.current = descriptors;
614
+ }, [data, descriptors]);
615
+ react.useEffect(() => {
616
+ var _a;
617
+ if (previousOrderIdRef.current === orderId && isInitializedRef.current) {
618
+ return;
619
+ }
620
+ const orderIdChanged = previousOrderIdRef.current !== orderId;
621
+ if (orderIdChanged || !isInitializedRef.current) {
622
+ const currentMetadata = (data == null ? void 0 : data.metadata) ?? ((_a = dataRef.current) == null ? void 0 : _a.metadata) ?? {};
623
+ const currentDescriptors = descriptorsRef.current.length > 0 ? descriptorsRef.current : descriptors;
624
+ if (currentDescriptors.length === 0) {
625
+ return;
626
+ }
627
+ previousOrderIdRef.current = orderId;
628
+ setBaselineMetadata(currentMetadata);
629
+ const newInitialState = buildInitialFormState(currentDescriptors, currentMetadata);
630
+ setValues(newInitialState);
631
+ isInitializedRef.current = true;
632
+ }
633
+ }, [orderId]);
634
+ const metadataStringRef = react.useRef("");
635
+ react.useEffect(() => {
636
+ const hasMetadata = (data == null ? void 0 : data.metadata) && Object.keys(data.metadata).length > 0;
637
+ const descriptorsLoaded = descriptors.length > 0;
638
+ const sameOrder = previousOrderIdRef.current === orderId;
639
+ const notInitialized = !isInitializedRef.current;
640
+ const currentMetadataString = hasMetadata ? JSON.stringify(data.metadata) : "";
641
+ const metadataChanged = currentMetadataString !== metadataStringRef.current;
642
+ if (hasMetadata && descriptorsLoaded && sameOrder && (notInitialized || metadataChanged)) {
643
+ const currentMetadata = data.metadata ?? {};
644
+ const newInitialState = buildInitialFormState(descriptors, currentMetadata);
645
+ setBaselineMetadata(currentMetadata);
646
+ setValues(newInitialState);
647
+ metadataStringRef.current = currentMetadataString;
648
+ isInitializedRef.current = true;
649
+ }
650
+ }, [data, descriptors.length, orderId]);
606
651
  const initialState = react.useMemo(
607
652
  () => buildInitialFormState(descriptors, baselineMetadata),
608
653
  [descriptors, baselineMetadata]
609
654
  );
610
- const [values, setValues] = react.useState(
611
- initialState
612
- );
655
+ const [values, setValues] = react.useState({});
613
656
  const [isSaving, setIsSaving] = react.useState(false);
614
- react.useEffect(() => {
615
- setValues(initialState);
616
- }, [initialState]);
617
657
  const errors = react.useMemo(() => {
618
658
  return descriptors.reduce((acc, descriptor) => {
619
659
  const error = validateValueForDescriptor(descriptor, values[descriptor.key]);
@@ -679,6 +719,15 @@ const OrderMetadataTableWidget = ({ data }) => {
679
719
  await queryClient.invalidateQueries({
680
720
  queryKey: ["orders"]
681
721
  });
722
+ await queryClient.invalidateQueries({
723
+ queryKey: ["order", data.id]
724
+ });
725
+ if (data.id) {
726
+ queryClient.refetchQueries({
727
+ queryKey: ["order", data.id]
728
+ }).catch(() => {
729
+ });
730
+ }
682
731
  } catch (error) {
683
732
  ui.toast.error(error instanceof Error ? error.message : "Save failed");
684
733
  } finally {
@@ -693,7 +742,7 @@ const OrderMetadataTableWidget = ({ data }) => {
693
742
  ] }),
694
743
  /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { className: "text-ui-fg-subtle", children: "Structured metadata mapped to the keys you configured in the plugin options." })
695
744
  ] }),
696
- isPending ? /* @__PURE__ */ jsxRuntime.jsx(ui.Skeleton, { className: "h-[160px] w-full" }) : isError ? /* @__PURE__ */ jsxRuntime.jsxs(ui.InlineTip, { variant: "error", label: "Configuration unavailable", children: [
745
+ isPending || !isInitializedRef.current || Object.keys(values).length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(ui.Skeleton, { className: "h-[160px] w-full" }) : isError ? /* @__PURE__ */ jsxRuntime.jsxs(ui.InlineTip, { variant: "error", label: "Configuration unavailable", children: [
697
746
  "Unable to load metadata configuration for this plugin. Confirm that the plugin is registered with options in ",
698
747
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: "medusa-config.ts" }),
699
748
  "."
@@ -934,23 +983,61 @@ adminSdk.defineWidgetConfig({
934
983
  const CONFIG_DOCS_URL = "https://docs.medusajs.com/admin/extension-points/widgets#product-details";
935
984
  const ProductMetadataTableWidget = ({ data }) => {
936
985
  const { data: descriptors = [], isPending, isError } = useProductMetadataConfig();
937
- const metadata = (data == null ? void 0 : data.metadata) ?? {};
938
- const [baselineMetadata, setBaselineMetadata] = react.useState(metadata);
986
+ const productId = (data == null ? void 0 : data.id) ?? void 0;
987
+ const [baselineMetadata, setBaselineMetadata] = react.useState(
988
+ (data == null ? void 0 : data.metadata) ?? {}
989
+ );
939
990
  const queryClient = reactQuery.useQueryClient();
991
+ const previousProductIdRef = react.useRef(productId);
992
+ const isInitializedRef = react.useRef(false);
993
+ const dataRef = react.useRef(data);
994
+ const descriptorsRef = react.useRef(descriptors);
940
995
  react.useEffect(() => {
941
- setBaselineMetadata(metadata);
942
- }, [metadata]);
996
+ dataRef.current = data;
997
+ descriptorsRef.current = descriptors;
998
+ }, [data, descriptors]);
999
+ react.useEffect(() => {
1000
+ var _a;
1001
+ if (previousProductIdRef.current === productId && isInitializedRef.current) {
1002
+ return;
1003
+ }
1004
+ const productIdChanged = previousProductIdRef.current !== productId;
1005
+ if (productIdChanged || !isInitializedRef.current) {
1006
+ const currentMetadata = (data == null ? void 0 : data.metadata) ?? ((_a = dataRef.current) == null ? void 0 : _a.metadata) ?? {};
1007
+ const currentDescriptors = descriptorsRef.current.length > 0 ? descriptorsRef.current : descriptors;
1008
+ if (currentDescriptors.length === 0) {
1009
+ return;
1010
+ }
1011
+ previousProductIdRef.current = productId;
1012
+ setBaselineMetadata(currentMetadata);
1013
+ const newInitialState = buildInitialFormState(currentDescriptors, currentMetadata);
1014
+ setValues(newInitialState);
1015
+ isInitializedRef.current = true;
1016
+ }
1017
+ }, [productId]);
1018
+ const metadataStringRef = react.useRef("");
1019
+ react.useEffect(() => {
1020
+ const hasMetadata = (data == null ? void 0 : data.metadata) && Object.keys(data.metadata).length > 0;
1021
+ const descriptorsLoaded = descriptors.length > 0;
1022
+ const sameProduct = previousProductIdRef.current === productId;
1023
+ const notInitialized = !isInitializedRef.current;
1024
+ const currentMetadataString = hasMetadata ? JSON.stringify(data.metadata) : "";
1025
+ const metadataChanged = currentMetadataString !== metadataStringRef.current;
1026
+ if (hasMetadata && descriptorsLoaded && sameProduct && (notInitialized || metadataChanged)) {
1027
+ const currentMetadata = data.metadata ?? {};
1028
+ const newInitialState = buildInitialFormState(descriptors, currentMetadata);
1029
+ setBaselineMetadata(currentMetadata);
1030
+ setValues(newInitialState);
1031
+ metadataStringRef.current = currentMetadataString;
1032
+ isInitializedRef.current = true;
1033
+ }
1034
+ }, [data, descriptors.length, productId]);
943
1035
  const initialState = react.useMemo(
944
1036
  () => buildInitialFormState(descriptors, baselineMetadata),
945
1037
  [descriptors, baselineMetadata]
946
1038
  );
947
- const [values, setValues] = react.useState(
948
- initialState
949
- );
1039
+ const [values, setValues] = react.useState({});
950
1040
  const [isSaving, setIsSaving] = react.useState(false);
951
- react.useEffect(() => {
952
- setValues(initialState);
953
- }, [initialState]);
954
1041
  const errors = react.useMemo(() => {
955
1042
  return descriptors.reduce((acc, descriptor) => {
956
1043
  const error = validateValueForDescriptor(descriptor, values[descriptor.key]);
@@ -1016,6 +1103,15 @@ const ProductMetadataTableWidget = ({ data }) => {
1016
1103
  await queryClient.invalidateQueries({
1017
1104
  queryKey: ["products"]
1018
1105
  });
1106
+ await queryClient.invalidateQueries({
1107
+ queryKey: ["product", data.id]
1108
+ });
1109
+ if (data.id) {
1110
+ queryClient.refetchQueries({
1111
+ queryKey: ["product", data.id]
1112
+ }).catch(() => {
1113
+ });
1114
+ }
1019
1115
  } catch (error) {
1020
1116
  ui.toast.error(error instanceof Error ? error.message : "Save failed");
1021
1117
  } finally {
@@ -1030,7 +1126,7 @@ const ProductMetadataTableWidget = ({ data }) => {
1030
1126
  ] }),
1031
1127
  /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { className: "text-ui-fg-subtle", children: "Structured metadata mapped to the keys you configured in the plugin options." })
1032
1128
  ] }),
1033
- isPending ? /* @__PURE__ */ jsxRuntime.jsx(ui.Skeleton, { className: "h-[160px] w-full" }) : isError ? /* @__PURE__ */ jsxRuntime.jsxs(ui.InlineTip, { variant: "error", label: "Configuration unavailable", children: [
1129
+ isPending || !isInitializedRef.current || Object.keys(values).length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(ui.Skeleton, { className: "h-[160px] w-full" }) : isError ? /* @__PURE__ */ jsxRuntime.jsxs(ui.InlineTip, { variant: "error", label: "Configuration unavailable", children: [
1034
1130
  "Unable to load metadata configuration for this plugin. Confirm that the plugin is registered with options in ",
1035
1131
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: "medusa-config.ts" }),
1036
1132
  "."
@@ -102,7 +102,9 @@ function coerceMetadataValue(descriptor, value) {
102
102
  const num = typeof value === "number" ? value : Number(String(value).trim());
103
103
  return isNaN(num) ? void 0 : num;
104
104
  }
105
- return String(value).trim();
105
+ const trimmed = String(value).trim();
106
+ if (!trimmed) return void 0;
107
+ return trimmed;
106
108
  }
107
109
  function normalizeKey(value) {
108
110
  return typeof value === "string" ? value.trim() || void 0 : void 0;
@@ -596,23 +598,61 @@ defineWidgetConfig({
596
598
  const CONFIG_DOCS_URL$1 = "https://docs.medusajs.com/admin/extension-points/widgets#order-details";
597
599
  const OrderMetadataTableWidget = ({ data }) => {
598
600
  const { data: descriptors = [], isPending, isError } = useOrderMetadataConfig();
599
- const metadata = (data == null ? void 0 : data.metadata) ?? {};
600
- const [baselineMetadata, setBaselineMetadata] = useState(metadata);
601
+ const orderId = (data == null ? void 0 : data.id) ?? void 0;
602
+ const [baselineMetadata, setBaselineMetadata] = useState(
603
+ (data == null ? void 0 : data.metadata) ?? {}
604
+ );
601
605
  const queryClient = useQueryClient();
606
+ const previousOrderIdRef = useRef(orderId);
607
+ const isInitializedRef = useRef(false);
608
+ const dataRef = useRef(data);
609
+ const descriptorsRef = useRef(descriptors);
602
610
  useEffect(() => {
603
- setBaselineMetadata(metadata);
604
- }, [metadata]);
611
+ dataRef.current = data;
612
+ descriptorsRef.current = descriptors;
613
+ }, [data, descriptors]);
614
+ useEffect(() => {
615
+ var _a;
616
+ if (previousOrderIdRef.current === orderId && isInitializedRef.current) {
617
+ return;
618
+ }
619
+ const orderIdChanged = previousOrderIdRef.current !== orderId;
620
+ if (orderIdChanged || !isInitializedRef.current) {
621
+ const currentMetadata = (data == null ? void 0 : data.metadata) ?? ((_a = dataRef.current) == null ? void 0 : _a.metadata) ?? {};
622
+ const currentDescriptors = descriptorsRef.current.length > 0 ? descriptorsRef.current : descriptors;
623
+ if (currentDescriptors.length === 0) {
624
+ return;
625
+ }
626
+ previousOrderIdRef.current = orderId;
627
+ setBaselineMetadata(currentMetadata);
628
+ const newInitialState = buildInitialFormState(currentDescriptors, currentMetadata);
629
+ setValues(newInitialState);
630
+ isInitializedRef.current = true;
631
+ }
632
+ }, [orderId]);
633
+ const metadataStringRef = useRef("");
634
+ useEffect(() => {
635
+ const hasMetadata = (data == null ? void 0 : data.metadata) && Object.keys(data.metadata).length > 0;
636
+ const descriptorsLoaded = descriptors.length > 0;
637
+ const sameOrder = previousOrderIdRef.current === orderId;
638
+ const notInitialized = !isInitializedRef.current;
639
+ const currentMetadataString = hasMetadata ? JSON.stringify(data.metadata) : "";
640
+ const metadataChanged = currentMetadataString !== metadataStringRef.current;
641
+ if (hasMetadata && descriptorsLoaded && sameOrder && (notInitialized || metadataChanged)) {
642
+ const currentMetadata = data.metadata ?? {};
643
+ const newInitialState = buildInitialFormState(descriptors, currentMetadata);
644
+ setBaselineMetadata(currentMetadata);
645
+ setValues(newInitialState);
646
+ metadataStringRef.current = currentMetadataString;
647
+ isInitializedRef.current = true;
648
+ }
649
+ }, [data, descriptors.length, orderId]);
605
650
  const initialState = useMemo(
606
651
  () => buildInitialFormState(descriptors, baselineMetadata),
607
652
  [descriptors, baselineMetadata]
608
653
  );
609
- const [values, setValues] = useState(
610
- initialState
611
- );
654
+ const [values, setValues] = useState({});
612
655
  const [isSaving, setIsSaving] = useState(false);
613
- useEffect(() => {
614
- setValues(initialState);
615
- }, [initialState]);
616
656
  const errors = useMemo(() => {
617
657
  return descriptors.reduce((acc, descriptor) => {
618
658
  const error = validateValueForDescriptor(descriptor, values[descriptor.key]);
@@ -678,6 +718,15 @@ const OrderMetadataTableWidget = ({ data }) => {
678
718
  await queryClient.invalidateQueries({
679
719
  queryKey: ["orders"]
680
720
  });
721
+ await queryClient.invalidateQueries({
722
+ queryKey: ["order", data.id]
723
+ });
724
+ if (data.id) {
725
+ queryClient.refetchQueries({
726
+ queryKey: ["order", data.id]
727
+ }).catch(() => {
728
+ });
729
+ }
681
730
  } catch (error) {
682
731
  toast.error(error instanceof Error ? error.message : "Save failed");
683
732
  } finally {
@@ -692,7 +741,7 @@ const OrderMetadataTableWidget = ({ data }) => {
692
741
  ] }),
693
742
  /* @__PURE__ */ jsx(Text, { className: "text-ui-fg-subtle", children: "Structured metadata mapped to the keys you configured in the plugin options." })
694
743
  ] }),
695
- isPending ? /* @__PURE__ */ jsx(Skeleton, { className: "h-[160px] w-full" }) : isError ? /* @__PURE__ */ jsxs(InlineTip, { variant: "error", label: "Configuration unavailable", children: [
744
+ isPending || !isInitializedRef.current || Object.keys(values).length === 0 ? /* @__PURE__ */ jsx(Skeleton, { className: "h-[160px] w-full" }) : isError ? /* @__PURE__ */ jsxs(InlineTip, { variant: "error", label: "Configuration unavailable", children: [
696
745
  "Unable to load metadata configuration for this plugin. Confirm that the plugin is registered with options in ",
697
746
  /* @__PURE__ */ jsx("code", { children: "medusa-config.ts" }),
698
747
  "."
@@ -933,23 +982,61 @@ defineWidgetConfig({
933
982
  const CONFIG_DOCS_URL = "https://docs.medusajs.com/admin/extension-points/widgets#product-details";
934
983
  const ProductMetadataTableWidget = ({ data }) => {
935
984
  const { data: descriptors = [], isPending, isError } = useProductMetadataConfig();
936
- const metadata = (data == null ? void 0 : data.metadata) ?? {};
937
- const [baselineMetadata, setBaselineMetadata] = useState(metadata);
985
+ const productId = (data == null ? void 0 : data.id) ?? void 0;
986
+ const [baselineMetadata, setBaselineMetadata] = useState(
987
+ (data == null ? void 0 : data.metadata) ?? {}
988
+ );
938
989
  const queryClient = useQueryClient();
990
+ const previousProductIdRef = useRef(productId);
991
+ const isInitializedRef = useRef(false);
992
+ const dataRef = useRef(data);
993
+ const descriptorsRef = useRef(descriptors);
939
994
  useEffect(() => {
940
- setBaselineMetadata(metadata);
941
- }, [metadata]);
995
+ dataRef.current = data;
996
+ descriptorsRef.current = descriptors;
997
+ }, [data, descriptors]);
998
+ useEffect(() => {
999
+ var _a;
1000
+ if (previousProductIdRef.current === productId && isInitializedRef.current) {
1001
+ return;
1002
+ }
1003
+ const productIdChanged = previousProductIdRef.current !== productId;
1004
+ if (productIdChanged || !isInitializedRef.current) {
1005
+ const currentMetadata = (data == null ? void 0 : data.metadata) ?? ((_a = dataRef.current) == null ? void 0 : _a.metadata) ?? {};
1006
+ const currentDescriptors = descriptorsRef.current.length > 0 ? descriptorsRef.current : descriptors;
1007
+ if (currentDescriptors.length === 0) {
1008
+ return;
1009
+ }
1010
+ previousProductIdRef.current = productId;
1011
+ setBaselineMetadata(currentMetadata);
1012
+ const newInitialState = buildInitialFormState(currentDescriptors, currentMetadata);
1013
+ setValues(newInitialState);
1014
+ isInitializedRef.current = true;
1015
+ }
1016
+ }, [productId]);
1017
+ const metadataStringRef = useRef("");
1018
+ useEffect(() => {
1019
+ const hasMetadata = (data == null ? void 0 : data.metadata) && Object.keys(data.metadata).length > 0;
1020
+ const descriptorsLoaded = descriptors.length > 0;
1021
+ const sameProduct = previousProductIdRef.current === productId;
1022
+ const notInitialized = !isInitializedRef.current;
1023
+ const currentMetadataString = hasMetadata ? JSON.stringify(data.metadata) : "";
1024
+ const metadataChanged = currentMetadataString !== metadataStringRef.current;
1025
+ if (hasMetadata && descriptorsLoaded && sameProduct && (notInitialized || metadataChanged)) {
1026
+ const currentMetadata = data.metadata ?? {};
1027
+ const newInitialState = buildInitialFormState(descriptors, currentMetadata);
1028
+ setBaselineMetadata(currentMetadata);
1029
+ setValues(newInitialState);
1030
+ metadataStringRef.current = currentMetadataString;
1031
+ isInitializedRef.current = true;
1032
+ }
1033
+ }, [data, descriptors.length, productId]);
942
1034
  const initialState = useMemo(
943
1035
  () => buildInitialFormState(descriptors, baselineMetadata),
944
1036
  [descriptors, baselineMetadata]
945
1037
  );
946
- const [values, setValues] = useState(
947
- initialState
948
- );
1038
+ const [values, setValues] = useState({});
949
1039
  const [isSaving, setIsSaving] = useState(false);
950
- useEffect(() => {
951
- setValues(initialState);
952
- }, [initialState]);
953
1040
  const errors = useMemo(() => {
954
1041
  return descriptors.reduce((acc, descriptor) => {
955
1042
  const error = validateValueForDescriptor(descriptor, values[descriptor.key]);
@@ -1015,6 +1102,15 @@ const ProductMetadataTableWidget = ({ data }) => {
1015
1102
  await queryClient.invalidateQueries({
1016
1103
  queryKey: ["products"]
1017
1104
  });
1105
+ await queryClient.invalidateQueries({
1106
+ queryKey: ["product", data.id]
1107
+ });
1108
+ if (data.id) {
1109
+ queryClient.refetchQueries({
1110
+ queryKey: ["product", data.id]
1111
+ }).catch(() => {
1112
+ });
1113
+ }
1018
1114
  } catch (error) {
1019
1115
  toast.error(error instanceof Error ? error.message : "Save failed");
1020
1116
  } finally {
@@ -1029,7 +1125,7 @@ const ProductMetadataTableWidget = ({ data }) => {
1029
1125
  ] }),
1030
1126
  /* @__PURE__ */ jsx(Text, { className: "text-ui-fg-subtle", children: "Structured metadata mapped to the keys you configured in the plugin options." })
1031
1127
  ] }),
1032
- isPending ? /* @__PURE__ */ jsx(Skeleton, { className: "h-[160px] w-full" }) : isError ? /* @__PURE__ */ jsxs(InlineTip, { variant: "error", label: "Configuration unavailable", children: [
1128
+ isPending || !isInitializedRef.current || Object.keys(values).length === 0 ? /* @__PURE__ */ jsx(Skeleton, { className: "h-[160px] w-full" }) : isError ? /* @__PURE__ */ jsxs(InlineTip, { variant: "error", label: "Configuration unavailable", children: [
1033
1129
  "Unable to load metadata configuration for this plugin. Confirm that the plugin is registered with options in ",
1034
1130
  /* @__PURE__ */ jsx("code", { children: "medusa-config.ts" }),
1035
1131
  "."
@@ -121,7 +121,11 @@ function coerceMetadataValue(descriptor, value) {
121
121
  const num = typeof value === "number" ? value : Number(String(value).trim());
122
122
  return isNaN(num) ? undefined : num;
123
123
  }
124
- return String(value).trim();
124
+ // For text and file types, trim and check if empty
125
+ const trimmed = String(value).trim();
126
+ if (!trimmed)
127
+ return undefined;
128
+ return trimmed;
125
129
  }
126
130
  function normalizeKey(value) {
127
131
  return typeof value === "string" ? value.trim() || undefined : undefined;
@@ -146,4 +150,4 @@ function isDeepEqual(a, b) {
146
150
  return false;
147
151
  return aKeys.every(key => isDeepEqual(a[key], b[key]));
148
152
  }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL3Byb2R1Y3QtbWV0YWRhdGEvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFjQSxvRUF5QkM7QUFFRCw0Q0FLQztBQUVELHNEQVVDO0FBRUQsb0RBd0JDO0FBRUQsZ0RBZUM7QUFFRCxnRUF1QkM7QUE5SEQsbUNBS2dCO0FBS2hCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQW9CLDRCQUFvQixDQUFDLENBQUE7QUFDMUUsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUM5RCxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBRWhFLFNBQWdCLDRCQUE0QixDQUFDLEtBQWM7SUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFFcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUNsQyxPQUFPLEtBQUs7U0FDVCxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQW1DLEVBQUUsQ0FDaEQsSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FDakM7U0FDQSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDVixNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUUsSUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzNDLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBRSxJQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFFLElBQVksQ0FBQyxLQUFLLENBQUMs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
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL3Byb2R1Y3QtbWV0YWRhdGEvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFjQSxvRUF5QkM7QUFFRCw0Q0FLQztBQUVELHNEQVVDO0FBRUQsb0RBd0JDO0FBRUQsZ0RBZUM7QUFFRCxnRUF1QkM7QUE5SEQsbUNBS2dCO0FBS2hCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQW9CLDRCQUFvQixDQUFDLENBQUE7QUFDMUUsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUM5RCxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBRWhFLFNBQWdCLDRCQUE0QixDQUFDLEtBQWM7SUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFFcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUNsQyxPQUFPLEtBQUs7U0FDVCxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQW1DLEVBQUUsQ0FDaEQsSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FDakM7U0FDQSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDVixNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUUsSUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzNDLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBRSxJQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFFLElBQVksQ0FBQyxLQUFLLENBQUMs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "medusa-product-helper",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "A starter for Medusa plugins.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",