@gfed-medusa/sf-lib-common 2.3.0 → 2.4.0

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.
Files changed (79) hide show
  1. package/dist/components/breadcrumbs/index.d.ts +2 -2
  2. package/dist/components/breadcrumbs/index.d.ts.map +1 -1
  3. package/dist/components/cart-mismatch-banner/index.d.ts +2 -2
  4. package/dist/components/delete-button/index.d.ts +2 -2
  5. package/dist/components/delete-button/index.d.ts.map +1 -1
  6. package/dist/components/delete-button/index.js +2 -2
  7. package/dist/components/delete-button/index.js.map +1 -1
  8. package/dist/components/error-message/index.d.ts +2 -2
  9. package/dist/components/free-shipping-price-nudge/index.d.ts +2 -2
  10. package/dist/components/free-shipping-price-nudge/index.d.ts.map +1 -1
  11. package/dist/components/interactive-link/index.d.ts +2 -2
  12. package/dist/components/line-item-options/index.d.ts +2 -2
  13. package/dist/components/line-item-price/index.d.ts +2 -2
  14. package/dist/components/localized-client-link/index.d.ts +2 -2
  15. package/dist/components/modal/index.d.ts +2 -2
  16. package/dist/components/preview-price/index.d.ts +2 -2
  17. package/dist/components/product-card/index.d.ts +2 -2
  18. package/dist/components/product-preview/index.d.ts +2 -2
  19. package/dist/components/product-preview/index.d.ts.map +1 -1
  20. package/dist/components/submit-button/index.d.ts +2 -2
  21. package/dist/components/submit-button/index.d.ts.map +1 -1
  22. package/dist/lib/context/apollo-context.d.ts +2 -2
  23. package/dist/lib/context/modal-context.d.ts +2 -2
  24. package/dist/lib/data/cart.d.ts.map +1 -1
  25. package/dist/lib/data/cart.js +20 -13
  26. package/dist/lib/data/cart.js.map +1 -1
  27. package/dist/lib/data/client-actions.d.ts +1 -1
  28. package/dist/lib/data/client-actions.d.ts.map +1 -1
  29. package/dist/lib/data/client-actions.js +11 -3
  30. package/dist/lib/data/client-actions.js.map +1 -1
  31. package/dist/lib/data/context.d.ts +7 -8
  32. package/dist/lib/data/context.d.ts.map +1 -1
  33. package/dist/lib/data/context.js +19 -2
  34. package/dist/lib/data/context.js.map +1 -1
  35. package/dist/lib/data/cookies-actions.d.ts +8 -0
  36. package/dist/lib/data/cookies-actions.d.ts.map +1 -0
  37. package/dist/lib/data/{cookies.js → cookies-actions.js} +3 -22
  38. package/dist/lib/data/cookies-actions.js.map +1 -0
  39. package/dist/lib/data/cookies-utils.d.ts +11 -0
  40. package/dist/lib/data/cookies-utils.d.ts.map +1 -0
  41. package/dist/lib/data/cookies-utils.js +19 -0
  42. package/dist/lib/data/cookies-utils.js.map +1 -0
  43. package/dist/lib/data/customer.d.ts.map +1 -1
  44. package/dist/lib/data/customer.js +6 -6
  45. package/dist/lib/data/customer.js.map +1 -1
  46. package/dist/lib/data/next-context.d.ts +1 -2
  47. package/dist/lib/data/next-context.d.ts.map +1 -1
  48. package/dist/lib/data/next-context.js +1 -20
  49. package/dist/lib/data/next-context.js.map +1 -1
  50. package/dist/lib/data/orders.js +1 -3
  51. package/dist/lib/data/orders.js.map +1 -1
  52. package/dist/lib/data/regions.js +1 -1
  53. package/dist/lib/data/regions.js.map +1 -1
  54. package/dist/lib/globals/expose-globals.js +2 -2
  55. package/dist/lib/gql/apollo-client.d.ts.map +1 -1
  56. package/dist/lib/gql/apollo-client.js +4 -4
  57. package/dist/lib/gql/apollo-client.js.map +1 -1
  58. package/dist/lib/gql/fragments/cart.d.ts +9 -9
  59. package/dist/lib/gql/fragments/cart.d.ts.map +1 -1
  60. package/dist/lib/gql/fragments/customer.d.ts +3 -3
  61. package/dist/lib/gql/fragments/product.d.ts +8 -8
  62. package/dist/lib/gql/fragments/product.d.ts.map +1 -1
  63. package/dist/lib/gql/mutations/cart.d.ts +4 -4
  64. package/dist/lib/gql/queries/cart.d.ts +2 -2
  65. package/dist/lib/gql/queries/cart.d.ts.map +1 -1
  66. package/dist/lib/gql/queries/collections.d.ts +2 -2
  67. package/dist/lib/gql/queries/collections.d.ts.map +1 -1
  68. package/dist/lib/gql/queries/customer.d.ts +2 -2
  69. package/dist/lib/gql/queries/footer.d.ts +2 -2
  70. package/dist/lib/gql/queries/product.d.ts +3 -3
  71. package/dist/lib/gql/queries/product.d.ts.map +1 -1
  72. package/dist/lib/hooks/use-cart.d.ts +1 -2
  73. package/dist/lib/hooks/use-cart.d.ts.map +1 -1
  74. package/dist/lib/hooks/use-cart.js +9 -5
  75. package/dist/lib/hooks/use-cart.js.map +1 -1
  76. package/package.json +3 -3
  77. package/dist/lib/data/cookies.d.ts +0 -18
  78. package/dist/lib/data/cookies.d.ts.map +0 -1
  79. package/dist/lib/data/cookies.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime14 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/breadcrumbs/index.d.ts
4
4
  declare const SEPARATOR_ICONS: Record<string, React.ComponentType<{
@@ -14,7 +14,7 @@ declare function Breadcrumbs({
14
14
  iconClassName,
15
15
  iconSize,
16
16
  separatorIcon
17
- }: BreadcrumbsProps): react_jsx_runtime14.JSX.Element;
17
+ }: BreadcrumbsProps): react_jsx_runtime0.JSX.Element;
18
18
  //#endregion
19
19
  export { Breadcrumbs };
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/breadcrumbs/index.tsx"],"sourcesContent":[],"mappings":";;;cAiBM,iBAAiB,eAErB,KAAA,CAAM;;;AAyCW,CAAA,CAAA,CAAA;AA3CU,UAQnB,gBAAA,CAAgB;EA+BjB,aAAA,CAAW,EAAA,MAAA,OA9BW,eA8BX;EAClB,QAAA,CAAA,EAAA,MAAA;EACA,aAAA,CAAA,EAAA,MAAA;;iBAFO,WAAA,CAIN;EAAA,aAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAAA,gBAAA,CAAA,EAAgB,mBAAA,CAAA,GAAA,CAAA,OAAhB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/breadcrumbs/index.tsx"],"sourcesContent":[],"mappings":";;;cAiBM,iBAAiB,eAErB,KAAA,CAAM;;;AAyCW,CAAA,CAAA,CAAA;AA3CU,UAQnB,gBAAA,CAAgB;EA+BjB,aAAA,CAAW,EAAA,MAAA,OA9BW,eA8BX;EAClB,QAAA,CAAA,EAAA,MAAA;EACA,aAAA,CAAA,EAAA,MAAA;;iBAFO,WAAA,CAIN;EAAA,aAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAAA,gBAAA,CAAA,EAAgB,kBAAA,CAAA,GAAA,CAAA,OAAhB"}
@@ -1,11 +1,11 @@
1
1
  import { Cart, Customer } from "../../types/graphql.js";
2
- import * as react_jsx_runtime15 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime14 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/cart-mismatch-banner/index.d.ts
5
5
  declare function CartMismatchBanner(props: {
6
6
  customer: Customer;
7
7
  cart: Cart;
8
- }): react_jsx_runtime15.JSX.Element | undefined;
8
+ }): react_jsx_runtime14.JSX.Element | undefined;
9
9
  //#endregion
10
10
  export { CartMismatchBanner };
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime13 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/delete-button/index.d.ts
4
4
  declare const DeleteButton: ({
@@ -9,7 +9,7 @@ declare const DeleteButton: ({
9
9
  id: string;
10
10
  children?: React.ReactNode;
11
11
  className?: string;
12
- }) => react_jsx_runtime0.JSX.Element;
12
+ }) => react_jsx_runtime13.JSX.Element;
13
13
  //#endregion
14
14
  export { DeleteButton };
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/delete-button/index.tsx"],"sourcesContent":[],"mappings":";;;cASM;;;;;;aAMO,KAAA,CAAM;EANb,SAAA,CAAA,EAAA,MAuCL;CAvCqB,EAAA,GAQrB,kBAAA,CAAA,GAAA,CAAA,OARqB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/delete-button/index.tsx"],"sourcesContent":[],"mappings":";;;cASM;;;;;;aAMO,KAAA,CAAM;EANb,SAAA,CAAA,EAAA,MAuCL;CAvCqB,EAAA,GAQrB,mBAAA,CAAA,GAAA,CAAA,OARqB"}
@@ -1,6 +1,6 @@
1
+ import { mutateCart } from "../../lib/hooks/use-cart.js";
1
2
  import { deleteLineItem } from "../../lib/data/cart.js";
2
3
  import { useStorefrontContext } from "../../lib/data/context.js";
3
- import { mutateCart } from "../../lib/hooks/use-cart.js";
4
4
  import { useState } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { Spinner, Trash } from "@medusajs/icons";
@@ -14,7 +14,7 @@ const DeleteButton = ({ id, children, className }) => {
14
14
  setIsDeleting(true);
15
15
  await deleteLineItem(id$1, ctx).then(() => {
16
16
  mutateCart();
17
- }).catch((err) => {
17
+ }).finally(() => {
18
18
  setIsDeleting(false);
19
19
  });
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["id"],"sources":["../../../src/components/delete-button/index.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Spinner, Trash } from '@medusajs/icons';\nimport { clx } from '@medusajs/ui';\n\nimport { deleteLineItem } from '@/lib/data/cart';\nimport { useStorefrontContext } from '@/lib/data/context';\nimport { mutateCart } from '@/lib/hooks/use-cart';\n\nconst DeleteButton = ({\n id,\n children,\n className,\n}: {\n id: string;\n children?: React.ReactNode;\n className?: string;\n}) => {\n const ctx = useStorefrontContext();\n const [isDeleting, setIsDeleting] = useState(false);\n\n const handleDelete = async (id: string) => {\n setIsDeleting(true);\n await deleteLineItem(id, ctx)\n .then(() => {\n mutateCart();\n })\n .catch((err) => {\n setIsDeleting(false);\n });\n };\n\n return (\n <div\n className={clx(\n 'text-small-regular flex items-center justify-between',\n className\n )}\n >\n <button\n className=\"text-ui-fg-subtle hover:text-ui-fg-base flex cursor-pointer gap-x-1\"\n onClick={() => handleDelete(id)}\n >\n {isDeleting ? <Spinner className=\"animate-spin\" /> : <Trash />}\n <span>{children}</span>\n </button>\n </div>\n );\n};\n\nexport { DeleteButton };\n"],"mappings":";;;;;;;;;AASA,MAAM,gBAAgB,EACpB,IACA,UACA,gBAKI;CACJ,MAAM,MAAM,sBAAsB;CAClC,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CAEnD,MAAM,eAAe,OAAO,SAAe;AACzC,gBAAc,KAAK;AACnB,QAAM,eAAeA,MAAI,IAAI,CAC1B,WAAW;AACV,eAAY;IACZ,CACD,OAAO,QAAQ;AACd,iBAAc,MAAM;IACpB;;AAGN,QACE,oBAAC;EACC,WAAW,IACT,wDACA,UACD;YAED,qBAAC;GACC,WAAU;GACV,eAAe,aAAa,GAAG;cAE9B,aAAa,oBAAC,WAAQ,WAAU,iBAAiB,GAAG,oBAAC,UAAQ,EAC9D,oBAAC,UAAM,WAAgB;IAChB;GACL"}
1
+ {"version":3,"file":"index.js","names":["id"],"sources":["../../../src/components/delete-button/index.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Spinner, Trash } from '@medusajs/icons';\nimport { clx } from '@medusajs/ui';\n\nimport { deleteLineItem } from '@/lib/data/cart';\nimport { useStorefrontContext } from '@/lib/data/context';\nimport { mutateCart } from '@/lib/hooks/use-cart';\n\nconst DeleteButton = ({\n id,\n children,\n className,\n}: {\n id: string;\n children?: React.ReactNode;\n className?: string;\n}) => {\n const ctx = useStorefrontContext();\n const [isDeleting, setIsDeleting] = useState(false);\n\n const handleDelete = async (id: string) => {\n setIsDeleting(true);\n await deleteLineItem(id, ctx)\n .then(() => {\n mutateCart();\n })\n .finally(() => {\n setIsDeleting(false);\n });\n };\n\n return (\n <div\n className={clx(\n 'text-small-regular flex items-center justify-between',\n className\n )}\n >\n <button\n className=\"text-ui-fg-subtle hover:text-ui-fg-base flex cursor-pointer gap-x-1\"\n onClick={() => handleDelete(id)}\n >\n {isDeleting ? <Spinner className=\"animate-spin\" /> : <Trash />}\n <span>{children}</span>\n </button>\n </div>\n );\n};\n\nexport { DeleteButton };\n"],"mappings":";;;;;;;;;AASA,MAAM,gBAAgB,EACpB,IACA,UACA,gBAKI;CACJ,MAAM,MAAM,sBAAsB;CAClC,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CAEnD,MAAM,eAAe,OAAO,SAAe;AACzC,gBAAc,KAAK;AACnB,QAAM,eAAeA,MAAI,IAAI,CAC1B,WAAW;AACV,eAAY;IACZ,CACD,cAAc;AACb,iBAAc,MAAM;IACpB;;AAGN,QACE,oBAAC;EACC,WAAW,IACT,wDACA,UACD;YAED,qBAAC;GACC,WAAU;GACV,eAAe,aAAa,GAAG;cAE9B,aAAa,oBAAC,WAAQ,WAAU,iBAAiB,GAAG,oBAAC,UAAQ,EAC9D,oBAAC,UAAM,WAAgB;IAChB;GACL"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime5 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/error-message/index.d.ts
4
4
  declare const ErrorMessage: ({
@@ -7,7 +7,7 @@ declare const ErrorMessage: ({
7
7
  }: {
8
8
  error?: string | null;
9
9
  "data-testid"?: string;
10
- }) => react_jsx_runtime5.JSX.Element | null;
10
+ }) => react_jsx_runtime1.JSX.Element | null;
11
11
  //#endregion
12
12
  export { ErrorMessage };
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { Cart } from "../../types/graphql.js";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime12 from "react/jsx-runtime";
3
3
  import { StoreCartShippingOption } from "@medusajs/types";
4
4
 
5
5
  //#region src/components/free-shipping-price-nudge/index.d.ts
@@ -11,7 +11,7 @@ declare function ShippingPriceNudge({
11
11
  variant?: 'popup' | 'inline';
12
12
  cart: Cart;
13
13
  shippingOptions: StoreCartShippingOption[];
14
- }): react_jsx_runtime0.JSX.Element | undefined;
14
+ }): react_jsx_runtime12.JSX.Element | undefined;
15
15
  //#endregion
16
16
  export { ShippingPriceNudge };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/free-shipping-price-nudge/index.tsx"],"sourcesContent":[],"mappings":";;;;;iBA0ES,kBAAA;;;;;;QAMD;EANC,eAAA,EAOU,uBAPQ,EAAA;CACzB,CAAA,EAOD,kBAAA,CAAA,GAAA,CAAA,OAAA,GAPC,SAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/free-shipping-price-nudge/index.tsx"],"sourcesContent":[],"mappings":";;;;;iBA0ES,kBAAA;;;;;;QAMD;EANC,eAAA,EAOU,uBAPQ,EAAA;CACzB,CAAA,EAOD,mBAAA,CAAA,GAAA,CAAA,OAAA,GAPC,SAAA"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime1 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime2 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/interactive-link/index.d.ts
4
4
  type InteractiveLinkProps = {
@@ -11,7 +11,7 @@ declare const InteractiveLink: ({
11
11
  children,
12
12
  onClick,
13
13
  ...props
14
- }: InteractiveLinkProps) => react_jsx_runtime1.JSX.Element;
14
+ }: InteractiveLinkProps) => react_jsx_runtime2.JSX.Element;
15
15
  //#endregion
16
16
  export { InteractiveLink };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { Maybe, ProductVariant } from "../../types/graphql.js";
2
- import * as react_jsx_runtime2 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime3 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/line-item-options/index.d.ts
5
5
  type LineItemOptionsProps = {
@@ -11,7 +11,7 @@ declare const LineItemOptions: ({
11
11
  variant,
12
12
  "data-testid": dataTestid,
13
13
  "data-value": dataValue
14
- }: LineItemOptionsProps) => react_jsx_runtime2.JSX.Element;
14
+ }: LineItemOptionsProps) => react_jsx_runtime3.JSX.Element;
15
15
  //#endregion
16
16
  export { LineItemOptions };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { LineItem } from "../../types/graphql.js";
2
- import * as react_jsx_runtime3 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/line-item-price/index.d.ts
5
5
  type LineItemPriceProps = {
@@ -11,7 +11,7 @@ declare const LineItemPrice: ({
11
11
  item,
12
12
  style,
13
13
  currencyCode
14
- }: LineItemPriceProps) => react_jsx_runtime3.JSX.Element;
14
+ }: LineItemPriceProps) => react_jsx_runtime4.JSX.Element;
15
15
  //#endregion
16
16
  export { LineItemPrice };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { AnchorHTMLAttributes, DetailedHTMLProps } from "react";
2
- import * as react_jsx_runtime4 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/localized-client-link/index.d.ts
5
5
  type LocalizedClientLinkProps = DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
@@ -11,7 +11,7 @@ declare const LocalizedClientLink: ({
11
11
  children,
12
12
  href,
13
13
  ...props
14
- }: LocalizedClientLinkProps) => react_jsx_runtime4.JSX.Element;
14
+ }: LocalizedClientLinkProps) => react_jsx_runtime5.JSX.Element;
15
15
  //#endregion
16
16
  export { LocalizedClientLink };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import * as react_jsx_runtime6 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/modal/index.d.ts
5
5
  type ModalProps = {
@@ -20,7 +20,7 @@ declare const Modal: {
20
20
  children,
21
21
  "data-testid": dataTestId,
22
22
  "aria-label": ariaLabel
23
- }: ModalProps): react_jsx_runtime6.JSX.Element;
23
+ }: ModalProps): react_jsx_runtime0.JSX.Element;
24
24
  Title: React.FC<{
25
25
  children: React.ReactNode;
26
26
  }>;
@@ -1,12 +1,12 @@
1
1
  import { VariantPrice } from "../../types/prices.js";
2
- import * as react_jsx_runtime7 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/preview-price/index.d.ts
5
5
  declare function PreviewPrice({
6
6
  price
7
7
  }: {
8
8
  price: VariantPrice;
9
- }): react_jsx_runtime7.JSX.Element | null;
9
+ }): react_jsx_runtime6.JSX.Element | null;
10
10
  //#endregion
11
11
  export { PreviewPrice };
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime9 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime7 from "react/jsx-runtime";
2
2
  import { VariantProps } from "class-variance-authority";
3
3
  import * as class_variance_authority_types0 from "class-variance-authority/types";
4
4
 
@@ -59,7 +59,7 @@ declare function ProductCard({
59
59
  variant,
60
60
  size,
61
61
  className
62
- }: ProductCardProps): react_jsx_runtime9.JSX.Element;
62
+ }: ProductCardProps): react_jsx_runtime7.JSX.Element;
63
63
  //#endregion
64
64
  export { ProductCard };
65
65
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { Product } from "../../types/graphql.js";
2
- import * as react_jsx_runtime10 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/product-preview/index.d.ts
5
5
  type ProductPreviewProps = {
@@ -9,7 +9,7 @@ type ProductPreviewProps = {
9
9
  declare function ProductPreview({
10
10
  product,
11
11
  isFeatured
12
- }: ProductPreviewProps): react_jsx_runtime10.JSX.Element;
12
+ }: ProductPreviewProps): react_jsx_runtime8.JSX.Element;
13
13
  //#endregion
14
14
  export { ProductPreview, ProductPreviewProps };
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/product-preview/index.tsx"],"sourcesContent":[],"mappings":";;;;KASY,mBAAA;WACD;;AADX,CAAA;AAGE,iBAEO,cAAA,CAAc;EAAA,OAAA;EAAA;AAAA,CAAA,EAA0B,mBAA1B,CAAA,EAA6C,mBAAA,CAAA,GAAA,CAAA,OAA7C"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/product-preview/index.tsx"],"sourcesContent":[],"mappings":";;;;KASY,mBAAA;WACD;;AADX,CAAA;AAGE,iBAEO,cAAA,CAAc;EAAA,OAAA;EAAA;AAAA,CAAA,EAA0B,mBAA1B,CAAA,EAA6C,kBAAA,CAAA,GAAA,CAAA,OAA7C"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import * as react_jsx_runtime11 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime9 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/submit-button/index.d.ts
5
5
  declare function SubmitButton({
@@ -14,7 +14,7 @@ declare function SubmitButton({
14
14
  className?: string;
15
15
  'data-testid'?: string;
16
16
  isLoading?: boolean;
17
- }): react_jsx_runtime11.JSX.Element;
17
+ }): react_jsx_runtime9.JSX.Element;
18
18
  //#endregion
19
19
  export { SubmitButton };
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/submit-button/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAQS,YAAA;;;;iBAIQ;;;YAGL,KAAA,CAAM;;EAPT,SAAA,CAAA,EAAA,MAAY;EACnB,aAAA,CAAA,EAAA,MAAA;EACA,SAAA,CAAA,EAAA,OAAA;CACA,CAAA,EASD,mBAAA,CAAA,GAAA,CAAA,OATC"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/submit-button/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAQS,YAAA;;;;iBAIQ;;;YAGL,KAAA,CAAM;;EAPT,SAAA,CAAA,EAAA,MAAY;EACnB,aAAA,CAAA,EAAA,MAAA;EACA,SAAA,CAAA,EAAA,OAAA;CACA,CAAA,EASD,kBAAA,CAAA,GAAA,CAAA,OATC"}
@@ -1,10 +1,10 @@
1
1
  import { PropsWithChildren } from "react";
2
- import * as react_jsx_runtime12 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime10 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/lib/context/apollo-context.d.ts
5
5
  declare function ApolloClientProvider({
6
6
  children
7
- }: PropsWithChildren): react_jsx_runtime12.JSX.Element;
7
+ }: PropsWithChildren): react_jsx_runtime10.JSX.Element;
8
8
  //#endregion
9
9
  export { ApolloClientProvider };
10
10
  //# sourceMappingURL=apollo-context.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import * as react_jsx_runtime13 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/lib/context/modal-context.d.ts
5
5
  interface ModalContext {
@@ -13,7 +13,7 @@ interface ModalProviderProps {
13
13
  declare const ModalProvider: ({
14
14
  children,
15
15
  close
16
- }: ModalProviderProps) => react_jsx_runtime13.JSX.Element;
16
+ }: ModalProviderProps) => react_jsx_runtime11.JSX.Element;
17
17
  declare const useModal: () => ModalContext;
18
18
  //#endregion
19
19
  export { ModalProvider, useModal };
@@ -1 +1 @@
1
- {"version":3,"file":"cart.d.ts","names":[],"sources":["../../../src/lib/data/cart.ts"],"sourcesContent":[],"mappings":";;;;;cA2Ba,oBACN,sBACJ,QAAQ;cAmBE,mBACL,0CACD,sBACJ,QAAQ;AAxBE,cA8DA,cA3CZ,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,GAAA,EA6CM,iBA7CN,EAAA,GA8CE,OA9CF,CA8CU,sBA9CV,CAAA,gBAAA,CAAA,GAAA,IAAA,CAAA;AAlBM,iBA6Ge,eAAA,CA7Gf,GAAA,EA6GoC,iBA7GpC,CAAA,EA6GqD,OA7GrD,CAAA;EACI,gBAAA,EAsHW,SAAA,CAAU,uBAtHrB,EAAA;CAAR,CAAA"}
1
+ {"version":3,"file":"cart.d.ts","names":[],"sources":["../../../src/lib/data/cart.ts"],"sourcesContent":[],"mappings":";;;;;cA2Ba,oBACN,sBACJ,QAAQ;cAyBE,mBACL,0CACD,sBACJ,QAAQ;AA9BE,cAyEA,cAhDZ,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,GAAA,EAkDM,iBAlDN,EAAA,GAmDE,OAnDF,CAmDU,sBAnDV,CAAA,gBAAA,CAAA,GAAA,IAAA,CAAA;AAxBM,iBAyHe,eAAA,CAzHf,GAAA,EAyHoC,iBAzHpC,CAAA,EAyHqD,OAzHrD,CAAA;EACI,gBAAA,EA+HW,SAAA,CAAU,uBA/HrB,EAAA;CAAR,CAAA"}
@@ -1,19 +1,22 @@
1
- import { getAuthHeaders, getCacheOptions, getCacheTag, getCartId } from "./cookies.js";
2
1
  import { sdk } from "../config/medusa.js";
3
- import { graphqlFetch, graphqlMutation } from "../gql/apollo-client.js";
2
+ import { createServerApolloClient, graphqlFetch, graphqlMutation } from "../gql/apollo-client.js";
4
3
  import { DELETE_LINE_ITEM_MUTATION, UPDATE_CART_MUTATION } from "../gql/mutations/cart.js";
5
4
  import { GET_CART_QUERY } from "../gql/queries/cart.js";
5
+ import { mutateCart } from "../hooks/use-cart.js";
6
6
  import { medusaError } from "../utils/medusa-error.js";
7
+ import { getCacheOptions, getCacheTag, getCartId } from "./cookies-utils.js";
7
8
 
8
9
  //#region src/lib/data/cart.ts
9
10
  const retrieveCart = async (ctx) => {
10
11
  const id = getCartId(ctx);
11
12
  if (!id) return null;
13
+ const cookieHeader = ctx.cookieHeader;
14
+ const apolloClient = createServerApolloClient(cookieHeader);
12
15
  try {
13
16
  return (await graphqlFetch({
14
17
  query: GET_CART_QUERY,
15
18
  variables: { id }
16
- }))?.cart ?? null;
19
+ }, apolloClient))?.cart ?? null;
17
20
  } catch (error) {
18
21
  console.error("Failed to fetch cart:", error);
19
22
  return null;
@@ -31,9 +34,12 @@ const updateCart = async (data, ctx) => {
31
34
  }
32
35
  }))?.updateCart ?? null;
33
36
  if (cart) {
34
- const { revalidateTag } = await import("next/cache");
35
- revalidateTag(getCacheTag("carts", ctx));
36
- revalidateTag(getCacheTag("fulfillment", ctx));
37
+ await mutateCart();
38
+ try {
39
+ const { revalidateTag } = await import("next/cache");
40
+ revalidateTag(getCacheTag("carts", ctx));
41
+ revalidateTag(getCacheTag("fulfillment", ctx));
42
+ } catch {}
37
43
  }
38
44
  return cart;
39
45
  } catch (err) {
@@ -52,11 +58,14 @@ const deleteLineItem = async (lineId, ctx) => {
52
58
  lineItemId: lineId
53
59
  }
54
60
  }))?.deleteLineItem ?? null;
55
- if (deletedLineItem) try {
56
- const { revalidateTag } = await import("next/cache");
57
- revalidateTag(getCacheTag("carts", ctx));
58
- revalidateTag(getCacheTag("fulfillment", ctx));
59
- } catch {}
61
+ if (deletedLineItem) {
62
+ await mutateCart();
63
+ try {
64
+ const { revalidateTag } = await import("next/cache");
65
+ revalidateTag(getCacheTag("carts", ctx));
66
+ revalidateTag(getCacheTag("fulfillment", ctx));
67
+ } catch {}
68
+ }
60
69
  return deletedLineItem;
61
70
  } catch (error) {
62
71
  console.error("GraphQL deleteLineItem error:", error.message);
@@ -65,12 +74,10 @@ const deleteLineItem = async (lineId, ctx) => {
65
74
  };
66
75
  async function listCartOptions(ctx) {
67
76
  const cartId = getCartId(ctx);
68
- const headers = { ...getAuthHeaders(ctx) };
69
77
  const next = { ...getCacheOptions("shippingOptions", ctx) };
70
78
  return await sdk.client.fetch("/store/shipping-options", {
71
79
  query: { cart_id: cartId },
72
80
  next,
73
- headers,
74
81
  cache: "force-cache"
75
82
  });
76
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cart.js","names":["error: any"],"sources":["../../../src/lib/data/cart.ts"],"sourcesContent":["import { HttpTypes } from '@medusajs/types';\n\nimport {\n Cart,\n DeleteLineItemMutation,\n DeleteLineItemMutationVariables,\n GetCartQuery,\n GetCartQueryVariables,\n UpdateCartMutation,\n UpdateCartMutationVariables,\n} from '../../types/graphql';\nimport { sdk } from '../config/medusa';\nimport { graphqlFetch, graphqlMutation } from '../gql/apollo-client';\nimport {\n DELETE_LINE_ITEM_MUTATION,\n UPDATE_CART_MUTATION,\n} from '../gql/mutations/cart';\nimport { GET_CART_QUERY } from '../gql/queries/cart';\nimport { medusaError } from '../utils/medusa-error';\nimport type { StorefrontContext } from './context';\nimport {\n getAuthHeaders,\n getCacheOptions,\n getCacheTag,\n getCartId,\n} from './cookies';\n\nexport const retrieveCart = async (\n ctx: StorefrontContext\n): Promise<Cart | null> => {\n const id = getCartId(ctx);\n if (!id) {\n return null;\n }\n\n try {\n const data = await graphqlFetch<GetCartQuery, GetCartQueryVariables>({\n query: GET_CART_QUERY,\n variables: { id },\n });\n\n return data?.cart ?? null;\n } catch (error) {\n console.error('Failed to fetch cart:', error);\n return null;\n }\n};\n\nexport const updateCart = async (\n data: UpdateCartMutationVariables['data'],\n ctx: StorefrontContext\n): Promise<UpdateCartMutation['updateCart'] | null> => {\n const cartId = getCartId(ctx);\n\n if (!cartId) {\n throw new Error(\n 'No existing cart found, please create one before updating'\n );\n }\n\n try {\n const result = await graphqlMutation<\n UpdateCartMutation,\n UpdateCartMutationVariables\n >({\n mutation: UPDATE_CART_MUTATION,\n variables: {\n id: cartId,\n data,\n },\n });\n\n const cart = result?.updateCart ?? null;\n\n if (cart) {\n const { revalidateTag } = await import('next/cache');\n const cartCacheTag = getCacheTag('carts', ctx);\n revalidateTag(cartCacheTag);\n\n const fulfillmentCacheTag = getCacheTag('fulfillment', ctx);\n revalidateTag(fulfillmentCacheTag);\n }\n\n return cart;\n } catch (err) {\n medusaError(err);\n }\n};\n\nexport const deleteLineItem = async (\n lineId: string,\n ctx: StorefrontContext\n): Promise<DeleteLineItemMutation['deleteLineItem'] | null> => {\n if (!lineId) {\n throw new Error('Missing lineItem ID when deleting line item');\n }\n\n const cartId = getCartId(ctx);\n\n if (!cartId) {\n throw new Error('Missing cart ID when deleting line item');\n }\n\n try {\n const result = await graphqlMutation<\n DeleteLineItemMutation,\n DeleteLineItemMutationVariables\n >({\n mutation: DELETE_LINE_ITEM_MUTATION,\n variables: {\n cartId,\n lineItemId: lineId,\n },\n });\n\n const deletedLineItem = result?.deleteLineItem ?? null;\n\n if (deletedLineItem) {\n try {\n const { revalidateTag } = await import('next/cache');\n const cartCacheTag = getCacheTag('carts', ctx);\n revalidateTag(cartCacheTag);\n\n const fulfillmentCacheTag = getCacheTag('fulfillment', ctx);\n revalidateTag(fulfillmentCacheTag);\n } catch {\n // Not in Next.js environment\n }\n }\n\n return deletedLineItem;\n } catch (error: any) {\n console.error('GraphQL deleteLineItem error:', error.message);\n throw error;\n }\n};\n\nexport async function listCartOptions(ctx: StorefrontContext) {\n const cartId = getCartId(ctx);\n const headers = {\n ...getAuthHeaders(ctx),\n };\n const next = {\n ...getCacheOptions('shippingOptions', ctx),\n };\n\n return await sdk.client.fetch<{\n shipping_options: HttpTypes.StoreCartShippingOption[];\n }>('/store/shipping-options', {\n query: { cart_id: cartId },\n next,\n headers,\n cache: 'force-cache',\n });\n}\n"],"mappings":";;;;;;;;AA2BA,MAAa,eAAe,OAC1B,QACyB;CACzB,MAAM,KAAK,UAAU,IAAI;AACzB,KAAI,CAAC,GACH,QAAO;AAGT,KAAI;AAMF,UALa,MAAM,aAAkD;GACnE,OAAO;GACP,WAAW,EAAE,IAAI;GAClB,CAAC,GAEW,QAAQ;UACd,OAAO;AACd,UAAQ,MAAM,yBAAyB,MAAM;AAC7C,SAAO;;;AAIX,MAAa,aAAa,OACxB,MACA,QACqD;CACrD,MAAM,SAAS,UAAU,IAAI;AAE7B,KAAI,CAAC,OACH,OAAM,IAAI,MACR,4DACD;AAGH,KAAI;EAYF,MAAM,QAXS,MAAM,gBAGnB;GACA,UAAU;GACV,WAAW;IACT,IAAI;IACJ;IACD;GACF,CAAC,GAEmB,cAAc;AAEnC,MAAI,MAAM;GACR,MAAM,EAAE,kBAAkB,MAAM,OAAO;AAEvC,iBADqB,YAAY,SAAS,IAAI,CACnB;AAG3B,iBAD4B,YAAY,eAAe,IAAI,CACzB;;AAGpC,SAAO;UACA,KAAK;AACZ,cAAY,IAAI;;;AAIpB,MAAa,iBAAiB,OAC5B,QACA,QAC6D;AAC7D,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,8CAA8C;CAGhE,MAAM,SAAS,UAAU,IAAI;AAE7B,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,0CAA0C;AAG5D,KAAI;EAYF,MAAM,mBAXS,MAAM,gBAGnB;GACA,UAAU;GACV,WAAW;IACT;IACA,YAAY;IACb;GACF,CAAC,GAE8B,kBAAkB;AAElD,MAAI,gBACF,KAAI;GACF,MAAM,EAAE,kBAAkB,MAAM,OAAO;AAEvC,iBADqB,YAAY,SAAS,IAAI,CACnB;AAG3B,iBAD4B,YAAY,eAAe,IAAI,CACzB;UAC5B;AAKV,SAAO;UACAA,OAAY;AACnB,UAAQ,MAAM,iCAAiC,MAAM,QAAQ;AAC7D,QAAM;;;AAIV,eAAsB,gBAAgB,KAAwB;CAC5D,MAAM,SAAS,UAAU,IAAI;CAC7B,MAAM,UAAU,EACd,GAAG,eAAe,IAAI,EACvB;CACD,MAAM,OAAO,EACX,GAAG,gBAAgB,mBAAmB,IAAI,EAC3C;AAED,QAAO,MAAM,IAAI,OAAO,MAErB,2BAA2B;EAC5B,OAAO,EAAE,SAAS,QAAQ;EAC1B;EACA;EACA,OAAO;EACR,CAAC"}
1
+ {"version":3,"file":"cart.js","names":["error: any"],"sources":["../../../src/lib/data/cart.ts"],"sourcesContent":["import { HttpTypes } from '@medusajs/types';\n\nimport {\n Cart,\n DeleteLineItemMutation,\n DeleteLineItemMutationVariables,\n GetCartQuery,\n GetCartQueryVariables,\n UpdateCartMutation,\n UpdateCartMutationVariables,\n} from '../../types/graphql';\nimport { sdk } from '../config/medusa';\nimport {\n createServerApolloClient,\n graphqlFetch,\n graphqlMutation,\n} from '../gql/apollo-client';\nimport {\n DELETE_LINE_ITEM_MUTATION,\n UPDATE_CART_MUTATION,\n} from '../gql/mutations/cart';\nimport { GET_CART_QUERY } from '../gql/queries/cart';\nimport { mutateCart } from '../hooks/use-cart';\nimport { medusaError } from '../utils/medusa-error';\nimport type { StorefrontContext } from './context';\nimport { getCacheOptions, getCacheTag, getCartId } from './cookies-utils';\n\nexport const retrieveCart = async (\n ctx: StorefrontContext\n): Promise<Cart | null> => {\n const id = getCartId(ctx);\n if (!id) {\n return null;\n }\n\n const cookieHeader = ctx.cookieHeader;\n const apolloClient = createServerApolloClient(cookieHeader);\n\n try {\n const data = await graphqlFetch<GetCartQuery, GetCartQueryVariables>(\n {\n query: GET_CART_QUERY,\n variables: { id },\n },\n apolloClient\n );\n\n return data?.cart ?? null;\n } catch (error) {\n console.error('Failed to fetch cart:', error);\n return null;\n }\n};\n\nexport const updateCart = async (\n data: UpdateCartMutationVariables['data'],\n ctx: StorefrontContext\n): Promise<UpdateCartMutation['updateCart'] | null> => {\n const cartId = getCartId(ctx);\n\n if (!cartId) {\n throw new Error(\n 'No existing cart found, please create one before updating'\n );\n }\n\n try {\n const result = await graphqlMutation<\n UpdateCartMutation,\n UpdateCartMutationVariables\n >({\n mutation: UPDATE_CART_MUTATION,\n variables: {\n id: cartId,\n data,\n },\n });\n\n const cart = result?.updateCart ?? null;\n\n if (cart) {\n await mutateCart();\n try {\n const { revalidateTag } = await import('next/cache');\n const cartCacheTag = getCacheTag('carts', ctx);\n revalidateTag(cartCacheTag);\n\n const fulfillmentCacheTag = getCacheTag('fulfillment', ctx);\n revalidateTag(fulfillmentCacheTag);\n } catch {\n // Not in Next.js environment\n }\n }\n\n return cart;\n } catch (err) {\n medusaError(err);\n }\n};\n\nexport const deleteLineItem = async (\n lineId: string,\n ctx: StorefrontContext\n): Promise<DeleteLineItemMutation['deleteLineItem'] | null> => {\n if (!lineId) {\n throw new Error('Missing lineItem ID when deleting line item');\n }\n\n const cartId = getCartId(ctx);\n\n if (!cartId) {\n throw new Error('Missing cart ID when deleting line item');\n }\n\n try {\n const result = await graphqlMutation<\n DeleteLineItemMutation,\n DeleteLineItemMutationVariables\n >({\n mutation: DELETE_LINE_ITEM_MUTATION,\n variables: {\n cartId,\n lineItemId: lineId,\n },\n });\n\n const deletedLineItem = result?.deleteLineItem ?? null;\n\n if (deletedLineItem) {\n await mutateCart();\n try {\n const { revalidateTag } = await import('next/cache');\n const cartCacheTag = getCacheTag('carts', ctx);\n revalidateTag(cartCacheTag);\n\n const fulfillmentCacheTag = getCacheTag('fulfillment', ctx);\n revalidateTag(fulfillmentCacheTag);\n } catch {\n // Not in Next.js environment\n }\n }\n\n return deletedLineItem;\n } catch (error: any) {\n console.error('GraphQL deleteLineItem error:', error.message);\n throw error;\n }\n};\n\nexport async function listCartOptions(ctx: StorefrontContext) {\n const cartId = getCartId(ctx);\n const next = {\n ...getCacheOptions('shippingOptions', ctx),\n };\n\n return await sdk.client.fetch<{\n shipping_options: HttpTypes.StoreCartShippingOption[];\n }>('/store/shipping-options', {\n query: { cart_id: cartId },\n next,\n cache: 'force-cache',\n });\n}\n"],"mappings":";;;;;;;;;AA2BA,MAAa,eAAe,OAC1B,QACyB;CACzB,MAAM,KAAK,UAAU,IAAI;AACzB,KAAI,CAAC,GACH,QAAO;CAGT,MAAM,eAAe,IAAI;CACzB,MAAM,eAAe,yBAAyB,aAAa;AAE3D,KAAI;AASF,UARa,MAAM,aACjB;GACE,OAAO;GACP,WAAW,EAAE,IAAI;GAClB,EACD,aACD,GAEY,QAAQ;UACd,OAAO;AACd,UAAQ,MAAM,yBAAyB,MAAM;AAC7C,SAAO;;;AAIX,MAAa,aAAa,OACxB,MACA,QACqD;CACrD,MAAM,SAAS,UAAU,IAAI;AAE7B,KAAI,CAAC,OACH,OAAM,IAAI,MACR,4DACD;AAGH,KAAI;EAYF,MAAM,QAXS,MAAM,gBAGnB;GACA,UAAU;GACV,WAAW;IACT,IAAI;IACJ;IACD;GACF,CAAC,GAEmB,cAAc;AAEnC,MAAI,MAAM;AACR,SAAM,YAAY;AAClB,OAAI;IACF,MAAM,EAAE,kBAAkB,MAAM,OAAO;AAEvC,kBADqB,YAAY,SAAS,IAAI,CACnB;AAG3B,kBAD4B,YAAY,eAAe,IAAI,CACzB;WAC5B;;AAKV,SAAO;UACA,KAAK;AACZ,cAAY,IAAI;;;AAIpB,MAAa,iBAAiB,OAC5B,QACA,QAC6D;AAC7D,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,8CAA8C;CAGhE,MAAM,SAAS,UAAU,IAAI;AAE7B,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,0CAA0C;AAG5D,KAAI;EAYF,MAAM,mBAXS,MAAM,gBAGnB;GACA,UAAU;GACV,WAAW;IACT;IACA,YAAY;IACb;GACF,CAAC,GAE8B,kBAAkB;AAElD,MAAI,iBAAiB;AACnB,SAAM,YAAY;AAClB,OAAI;IACF,MAAM,EAAE,kBAAkB,MAAM,OAAO;AAEvC,kBADqB,YAAY,SAAS,IAAI,CACnB;AAG3B,kBAD4B,YAAY,eAAe,IAAI,CACzB;WAC5B;;AAKV,SAAO;UACAA,OAAY;AACnB,UAAQ,MAAM,iCAAiC,MAAM,QAAQ;AAC7D,QAAM;;;AAIV,eAAsB,gBAAgB,KAAwB;CAC5D,MAAM,SAAS,UAAU,IAAI;CAC7B,MAAM,OAAO,EACX,GAAG,gBAAgB,mBAAmB,IAAI,EAC3C;AAED,QAAO,MAAM,IAAI,OAAO,MAErB,2BAA2B;EAC5B,OAAO,EAAE,SAAS,QAAQ;EAC1B;EACA,OAAO;EACR,CAAC"}
@@ -1,4 +1,4 @@
1
- import { removeAuthTokenAction, removeCartIdAction, setAuthTokenAction, setCartIdAction } from "./cookies.js";
1
+ import { removeAuthTokenAction, removeCartIdAction, setAuthTokenAction, setCartIdAction } from "./cookies-actions.js";
2
2
  import { StorefrontContext } from "./context.js";
3
3
 
4
4
  //#region src/lib/data/client-actions.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"client-actions.d.ts","names":[],"sources":["../../../src/lib/data/client-actions.tsx"],"sourcesContent":[],"mappings":";;;;cAWa,6BAA8B;;EAA9B,YAAA,EAAA,yBAYZ;EAZ0C,YAAA,EAAA,yBAAA;;8DAUlC"}
1
+ {"version":3,"file":"client-actions.d.ts","names":[],"sources":["../../../src/lib/data/client-actions.tsx"],"sourcesContent":[],"mappings":";;;;cAgCa,6BAA8B;;EAA9B,YAAA,EAAA,yBAYZ;EAZ0C,YAAA,EAAA,yBAAA;;8DAUlC"}
@@ -1,16 +1,24 @@
1
1
  'use client';
2
2
 
3
- import { removeAuthTokenAction, removeCartIdAction, setAuthTokenAction, setCartIdAction } from "./cookies.js";
4
- import { updateRegionAction } from "./next-context.js";
3
+ import { getCartId } from "./cookies-utils.js";
4
+ import { updateCart } from "./cart.js";
5
+ import { removeAuthTokenAction, removeCartIdAction, setAuthTokenAction, setCartIdAction } from "./cookies-actions.js";
6
+ import { getRegion } from "./regions.js";
5
7
 
6
8
  //#region src/lib/data/client-actions.tsx
9
+ async function updateRegion(countryCode, currentPath, ctx) {
10
+ const region = await getRegion(countryCode, ctx);
11
+ if (!region) throw new Error(`Region not found for country code: ${countryCode}`);
12
+ if (getCartId(ctx)) await updateCart({ regionId: region.id }, ctx);
13
+ window.location.href = `/${countryCode}${currentPath}`;
14
+ }
7
15
  const useStorefrontActions = (ctx) => {
8
16
  return {
9
17
  setCartId: setCartIdAction,
10
18
  removeCartId: removeCartIdAction,
11
19
  setAuthToken: setAuthTokenAction,
12
20
  removeAuthToken: removeAuthTokenAction,
13
- updateRegion: ((countryCode, currentPath) => updateRegionAction(countryCode, currentPath, ctx))
21
+ updateRegion: ((countryCode, currentPath) => updateRegion(countryCode, currentPath, ctx))
14
22
  };
15
23
  };
16
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"client-actions.js","names":[],"sources":["../../../src/lib/data/client-actions.tsx"],"sourcesContent":["'use client';\n\nimport { StorefrontContext } from './context';\nimport {\n removeAuthTokenAction,\n removeCartIdAction,\n setAuthTokenAction,\n setCartIdAction,\n} from './cookies';\nimport { updateRegionAction } from './next-context';\n\nexport const useStorefrontActions = (ctx?: StorefrontContext) => {\n return {\n setCartId: setCartIdAction,\n removeCartId: removeCartIdAction,\n setAuthToken: setAuthTokenAction,\n removeAuthToken: removeAuthTokenAction,\n updateRegion: ((countryCode: string, currentPath: string) =>\n updateRegionAction(countryCode, currentPath, ctx)) as (\n countryCode: string,\n currentPath: string\n ) => Promise<void>,\n };\n};\n"],"mappings":";;;;;;AAWA,MAAa,wBAAwB,QAA4B;AAC/D,QAAO;EACL,WAAW;EACX,cAAc;EACd,cAAc;EACd,iBAAiB;EACjB,gBAAgB,aAAqB,gBACnC,mBAAmB,aAAa,aAAa,IAAI;EAIpD"}
1
+ {"version":3,"file":"client-actions.js","names":[],"sources":["../../../src/lib/data/client-actions.tsx"],"sourcesContent":["'use client';\n\nimport { updateCart } from './cart';\nimport { StorefrontContext } from './context';\nimport {\n removeAuthTokenAction,\n removeCartIdAction,\n setAuthTokenAction,\n setCartIdAction,\n} from './cookies-actions';\nimport { getCartId } from './cookies-utils';\nimport { getRegion } from './regions';\n\nasync function updateRegion(\n countryCode: string,\n currentPath: string,\n ctx: StorefrontContext\n) {\n const region = await getRegion(countryCode, ctx);\n\n if (!region) {\n throw new Error(`Region not found for country code: ${countryCode}`);\n }\n\n const cartId = getCartId(ctx);\n if (cartId) {\n await updateCart({ regionId: region.id }, ctx);\n }\n\n window.location.href = `/${countryCode}${currentPath}`;\n}\n\nexport const useStorefrontActions = (ctx?: StorefrontContext) => {\n return {\n setCartId: setCartIdAction,\n removeCartId: removeCartIdAction,\n setAuthToken: setAuthTokenAction,\n removeAuthToken: removeAuthTokenAction,\n updateRegion: ((countryCode: string, currentPath: string) =>\n updateRegion(countryCode, currentPath, ctx!)) as (\n countryCode: string,\n currentPath: string\n ) => Promise<void>,\n };\n};\n"],"mappings":";;;;;;;;AAaA,eAAe,aACb,aACA,aACA,KACA;CACA,MAAM,SAAS,MAAM,UAAU,aAAa,IAAI;AAEhD,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,sCAAsC,cAAc;AAItE,KADe,UAAU,IAAI,CAE3B,OAAM,WAAW,EAAE,UAAU,OAAO,IAAI,EAAE,IAAI;AAGhD,QAAO,SAAS,OAAO,IAAI,cAAc;;AAG3C,MAAa,wBAAwB,QAA4B;AAC/D,QAAO;EACL,WAAW;EACX,cAAc;EACd,cAAc;EACd,iBAAiB;EACjB,gBAAgB,aAAqB,gBACnC,aAAa,aAAa,aAAa,IAAK;EAI/C"}
@@ -1,22 +1,21 @@
1
1
  import { useStorefrontActions } from "./client-actions.js";
2
2
  import { ReactNode } from "react";
3
- import * as react_jsx_runtime8 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime15 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/lib/data/context.d.ts
6
6
  interface StorefrontContext {
7
7
  cartId: string;
8
- customerToken: string;
9
8
  cacheId: string;
10
- cookieHeader: string;
11
- revalidate?: (tag: string) => void;
9
+ cookieHeader?: string;
10
+ }
11
+ interface StorefrontProviderProps {
12
+ children: ReactNode;
13
+ value?: StorefrontContext;
12
14
  }
13
15
  declare const StorefrontProvider: ({
14
16
  children,
15
17
  value
16
- }: {
17
- children: ReactNode;
18
- value: StorefrontContext;
19
- }) => react_jsx_runtime8.JSX.Element;
18
+ }: StorefrontProviderProps) => react_jsx_runtime15.JSX.Element;
20
19
  declare const useStorefrontContext: () => StorefrontContext;
21
20
  //#endregion
22
21
  export { StorefrontContext, StorefrontProvider, useStorefrontActions, useStorefrontContext };
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","names":[],"sources":["../../../src/lib/data/context.tsx"],"sourcesContent":[],"mappings":";;;;;UAIiB,iBAAA;;;;EAAA,YAAA,EAAA,MAAiB;EAYrB,UAAA,CAAA,EAAA,CAAA,GAAA,EAAA,MAYZ,EAAA,GAAA,IAAA;;AAZkC,cAAtB,kBAAsB,EAAA,CAAA;EAAA,QAAA;EAAA;CAAA,EAAA;EAIvB,QAAA,EAAA,SAAA;EACH,KAAA,EAAA,iBAAA;CACR,EAAA,GAAA,kBAAA,CAAA,GAAA,CAAA,OAAA;AAMA,cAEY,oBAFZ,EAAA,GAAA,GAEgC,iBAFhC"}
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../../../src/lib/data/context.tsx"],"sourcesContent":[],"mappings":";;;;;UAMiB,iBAAA;;;;AAAjB;AAIC,UAwBS,uBAAA,CAAuB;EAKpB,QAAA,EAJD,SAIC;EAAsB,KAAA,CAAA,EAHzB,iBAGyB;;AAGhC,cAHU,kBAGV,EAAA,CAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAAA,uBAAA,EAAA,GAAuB,mBAAA,CAAA,GAAA,CAAA,OAAvB;AAAuB,cAwBb,oBAxBa,EAAA,GAAA,GAwBO,iBAxBP"}
@@ -3,12 +3,29 @@
3
3
  import { useStorefrontActions } from "./client-actions.js";
4
4
  import { createContext, useContext } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
+ import useSWR from "swr";
6
7
 
7
8
  //#region src/lib/data/context.tsx
8
- const StorefrontReactContext = createContext({});
9
+ const StorefrontReactContext = createContext({
10
+ cartId: "",
11
+ cacheId: ""
12
+ });
13
+ const fetchContext = async () => {
14
+ const response = await fetch("/api/context", { credentials: "include" });
15
+ if (!response.ok) throw new Error("Failed to fetch context");
16
+ return response.json();
17
+ };
9
18
  const StorefrontProvider = ({ children, value }) => {
19
+ const { data: fetchedContext } = useSWR(value ? null : "storefront-context", fetchContext, {
20
+ revalidateOnFocus: true,
21
+ revalidateOnReconnect: true
22
+ });
23
+ const contextValue = value ?? {
24
+ cartId: fetchedContext?.cartId ?? "",
25
+ cacheId: fetchedContext?.cacheId ?? ""
26
+ };
10
27
  return /* @__PURE__ */ jsx(StorefrontReactContext.Provider, {
11
- value,
28
+ value: contextValue,
12
29
  children
13
30
  });
14
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../src/lib/data/context.tsx"],"sourcesContent":["'use client';\n\nimport { type ReactNode, createContext, useContext } from 'react';\n\nexport interface StorefrontContext {\n cartId: string;\n customerToken: string;\n cacheId: string;\n cookieHeader: string;\n revalidate?: (tag: string) => void;\n}\n\nconst StorefrontReactContext = createContext<StorefrontContext>(\n {} as StorefrontContext\n);\n\nexport const StorefrontProvider = ({\n children,\n value,\n}: {\n children: ReactNode;\n value: StorefrontContext;\n}) => {\n return (\n <StorefrontReactContext.Provider value={value}>\n {children}\n </StorefrontReactContext.Provider>\n );\n};\n\nexport const useStorefrontContext = () => useContext(StorefrontReactContext);\nexport { useStorefrontActions } from './client-actions';\n"],"mappings":";;;;;;;AAYA,MAAM,yBAAyB,cAC7B,EAAE,CACH;AAED,MAAa,sBAAsB,EACjC,UACA,YAII;AACJ,QACE,oBAAC,uBAAuB;EAAgB;EACrC;GAC+B;;AAItC,MAAa,6BAA6B,WAAW,uBAAuB"}
1
+ {"version":3,"file":"context.js","names":["contextValue: StorefrontContext"],"sources":["../../../src/lib/data/context.tsx"],"sourcesContent":["'use client';\n\nimport { type ReactNode, createContext, useContext } from 'react';\n\nimport useSWR from 'swr';\n\nexport interface StorefrontContext {\n cartId: string;\n cacheId: string;\n cookieHeader?: string;\n}\n\ninterface ClientContext {\n cartId: string;\n cacheId: string;\n}\n\nconst StorefrontReactContext = createContext<StorefrontContext>({\n cartId: '',\n cacheId: '',\n});\n\nconst fetchContext = async (): Promise<ClientContext> => {\n const response = await fetch('/api/context', {\n credentials: 'include',\n });\n\n if (!response.ok) {\n throw new Error('Failed to fetch context');\n }\n\n return response.json();\n};\n\ninterface StorefrontProviderProps {\n children: ReactNode;\n value?: StorefrontContext;\n}\n\nexport const StorefrontProvider = ({\n children,\n value,\n}: StorefrontProviderProps) => {\n // If value is provided (host apps), use it directly\n // If no value (horizontal components), fetch from API\n const { data: fetchedContext } = useSWR<ClientContext>(\n value ? null : 'storefront-context',\n fetchContext,\n {\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n }\n );\n\n const contextValue: StorefrontContext = value ?? {\n cartId: fetchedContext?.cartId ?? '',\n cacheId: fetchedContext?.cacheId ?? '',\n };\n\n return (\n <StorefrontReactContext.Provider value={contextValue}>\n {children}\n </StorefrontReactContext.Provider>\n );\n};\n\nexport const useStorefrontContext = () => useContext(StorefrontReactContext);\nexport { useStorefrontActions } from './client-actions';\n"],"mappings":";;;;;;;;AAiBA,MAAM,yBAAyB,cAAiC;CAC9D,QAAQ;CACR,SAAS;CACV,CAAC;AAEF,MAAM,eAAe,YAAoC;CACvD,MAAM,WAAW,MAAM,MAAM,gBAAgB,EAC3C,aAAa,WACd,CAAC;AAEF,KAAI,CAAC,SAAS,GACZ,OAAM,IAAI,MAAM,0BAA0B;AAG5C,QAAO,SAAS,MAAM;;AAQxB,MAAa,sBAAsB,EACjC,UACA,YAC6B;CAG7B,MAAM,EAAE,MAAM,mBAAmB,OAC/B,QAAQ,OAAO,sBACf,cACA;EACE,mBAAmB;EACnB,uBAAuB;EACxB,CACF;CAED,MAAMA,eAAkC,SAAS;EAC/C,QAAQ,gBAAgB,UAAU;EAClC,SAAS,gBAAgB,WAAW;EACrC;AAED,QACE,oBAAC,uBAAuB;EAAS,OAAO;EACrC;GAC+B;;AAItC,MAAa,6BAA6B,WAAW,uBAAuB"}
@@ -0,0 +1,8 @@
1
+ //#region src/lib/data/cookies-actions.d.ts
2
+ declare function setCartIdAction(id: string): Promise<void>;
3
+ declare function removeCartIdAction(): Promise<void>;
4
+ declare function setAuthTokenAction(token: string): Promise<void>;
5
+ declare function removeAuthTokenAction(): Promise<void>;
6
+ //#endregion
7
+ export { removeAuthTokenAction, removeCartIdAction, setAuthTokenAction, setCartIdAction };
8
+ //# sourceMappingURL=cookies-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies-actions.d.ts","names":[],"sources":["../../../src/lib/data/cookies-actions.ts"],"sourcesContent":[],"mappings":";iBAEsB,eAAA,cAA0B;AAA1B,iBAWA,kBAAA,CAAA,CAX0B,EAWR,OAXQ,CAAA,IAAA,CAAA;AAW1B,iBAMA,kBAAA,CANkB,KAAA,EAAA,MAAA,CAAA,EAMc,OANd,CAAA,IAAA,CAAA;AAMlB,iBAWA,qBAAA,CAAA,CAXgC,EAWX,OAXW,CAAA,IAAA,CAAA"}
@@ -1,25 +1,6 @@
1
1
  'use server';
2
2
 
3
- //#region src/lib/data/cookies.ts
4
- const getAuthHeaders = (ctx) => {
5
- const token = ctx.customerToken;
6
- if (!token) return {};
7
- return { authorization: `Bearer ${token}` };
8
- };
9
- const getCacheTag = (tag, ctx) => {
10
- const cacheId = ctx.cacheId;
11
- if (!cacheId) return "";
12
- return `${tag}-${cacheId}`;
13
- };
14
- const getCacheOptions = (tag, ctx) => {
15
- if (typeof window !== "undefined") return {};
16
- const cacheTag = getCacheTag(tag, ctx);
17
- if (!cacheTag) return {};
18
- return { tags: [`${cacheTag}`] };
19
- };
20
- const getCartId = (ctx) => {
21
- return ctx.cartId;
22
- };
3
+ //#region src/lib/data/cookies-actions.ts
23
4
  async function setCartIdAction(id) {
24
5
  const { cookies } = await import("next/headers");
25
6
  (await cookies()).set("_medusa_cart_id", id, {
@@ -48,5 +29,5 @@ async function removeAuthTokenAction() {
48
29
  }
49
30
 
50
31
  //#endregion
51
- export { getAuthHeaders, getCacheOptions, getCacheTag, getCartId, removeAuthTokenAction, removeCartIdAction, setAuthTokenAction, setCartIdAction };
52
- //# sourceMappingURL=cookies.js.map
32
+ export { removeAuthTokenAction, removeCartIdAction, setAuthTokenAction, setCartIdAction };
33
+ //# sourceMappingURL=cookies-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies-actions.js","names":[],"sources":["../../../src/lib/data/cookies-actions.ts"],"sourcesContent":["'use server';\n\nexport async function setCartIdAction(id: string) {\n const { cookies } = await import('next/headers');\n const c = await cookies();\n c.set('_medusa_cart_id', id, {\n maxAge: 60 * 60 * 24 * 7,\n httpOnly: true,\n sameSite: 'strict',\n secure: process.env.NODE_ENV === 'production',\n });\n}\n\nexport async function removeCartIdAction() {\n const { cookies } = await import('next/headers');\n const c = await cookies();\n c.set('_medusa_cart_id', '', { maxAge: -1 });\n}\n\nexport async function setAuthTokenAction(token: string) {\n const { cookies } = await import('next/headers');\n const c = await cookies();\n c.set('_medusa_jwt', token, {\n maxAge: 60 * 60 * 24 * 7,\n httpOnly: true,\n sameSite: 'strict',\n secure: process.env.NODE_ENV === 'production',\n });\n}\n\nexport async function removeAuthTokenAction() {\n const { cookies } = await import('next/headers');\n const c = await cookies();\n c.set('_medusa_jwt', '', { maxAge: -1 });\n}\n"],"mappings":";;;AAEA,eAAsB,gBAAgB,IAAY;CAChD,MAAM,EAAE,YAAY,MAAM,OAAO;AAEjC,EADU,MAAM,SAAS,EACvB,IAAI,mBAAmB,IAAI;EAC3B,QAAQ,OAAU,KAAK;EACvB,UAAU;EACV,UAAU;EACV,QAAQ;EACT,CAAC;;AAGJ,eAAsB,qBAAqB;CACzC,MAAM,EAAE,YAAY,MAAM,OAAO;AAEjC,EADU,MAAM,SAAS,EACvB,IAAI,mBAAmB,IAAI,EAAE,QAAQ,IAAI,CAAC;;AAG9C,eAAsB,mBAAmB,OAAe;CACtD,MAAM,EAAE,YAAY,MAAM,OAAO;AAEjC,EADU,MAAM,SAAS,EACvB,IAAI,eAAe,OAAO;EAC1B,QAAQ,OAAU,KAAK;EACvB,UAAU;EACV,UAAU;EACV,QAAQ;EACT,CAAC;;AAGJ,eAAsB,wBAAwB;CAC5C,MAAM,EAAE,YAAY,MAAM,OAAO;AAEjC,EADU,MAAM,SAAS,EACvB,IAAI,eAAe,IAAI,EAAE,QAAQ,IAAI,CAAC"}