@plasmicpkgs/commerce-saleor 0.0.125 → 0.0.128

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.
@@ -402,7 +402,6 @@ var getSortVariables = function getSortVariables(sort, isCategory) {
402
402
  return output;
403
403
  };
404
404
 
405
- var _getAsyncError, _ref;
406
405
  function getError(errors, status) {
407
406
  var _errors;
408
407
  errors = (_errors = errors) != null ? _errors : [{
@@ -414,58 +413,65 @@ function getError(errors, status) {
414
413
  });
415
414
  }
416
415
  function getAsyncError(_x) {
417
- return (_getAsyncError = _getAsyncError || _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(res) {
416
+ return _getAsyncError.apply(this, arguments);
417
+ }
418
+ function _getAsyncError() {
419
+ _getAsyncError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(res) {
418
420
  var data;
419
- return _regeneratorRuntime().wrap(function _callee$(_context) {
420
- while (1) switch (_context.prev = _context.next) {
421
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
422
+ while (1) switch (_context2.prev = _context2.next) {
421
423
  case 0:
422
- _context.next = 2;
424
+ _context2.next = 2;
423
425
  return res.json();
424
426
  case 2:
425
- data = _context.sent;
426
- return _context.abrupt("return", getError(data.errors, res.status));
427
+ data = _context2.sent;
428
+ return _context2.abrupt("return", getError(data.errors, res.status));
427
429
  case 4:
428
430
  case "end":
429
- return _context.stop();
431
+ return _context2.stop();
430
432
  }
431
- }, _callee);
432
- }))).apply(this, arguments);
433
+ }, _callee2);
434
+ }));
435
+ return _getAsyncError.apply(this, arguments);
433
436
  }
434
- var handleFetchResponse = function handleFetchResponse(_x2) {
435
- return (_ref = _ref || _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(res) {
437
+ var handleFetchResponse = /*#__PURE__*/function () {
438
+ var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(res) {
436
439
  var _yield$res$json, data, errors;
437
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
438
- while (1) switch (_context2.prev = _context2.next) {
440
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
441
+ while (1) switch (_context.prev = _context.next) {
439
442
  case 0:
440
443
  if (!res.ok) {
441
- _context2.next = 9;
444
+ _context.next = 9;
442
445
  break;
443
446
  }
444
- _context2.next = 3;
447
+ _context.next = 3;
445
448
  return res.json();
446
449
  case 3:
447
- _yield$res$json = _context2.sent;
450
+ _yield$res$json = _context.sent;
448
451
  data = _yield$res$json.data;
449
452
  errors = _yield$res$json.errors;
450
453
  if (!(errors && errors.length)) {
451
- _context2.next = 8;
454
+ _context.next = 8;
452
455
  break;
453
456
  }
454
457
  throw getError(errors, res.status);
455
458
  case 8:
456
- return _context2.abrupt("return", data);
459
+ return _context.abrupt("return", data);
457
460
  case 9:
458
- _context2.next = 11;
461
+ _context.next = 11;
459
462
  return getAsyncError(res);
460
463
  case 11:
461
- throw _context2.sent;
464
+ throw _context.sent;
462
465
  case 12:
463
466
  case "end":
464
- return _context2.stop();
467
+ return _context.stop();
465
468
  }
466
- }, _callee2);
467
- }))).apply(this, arguments);
468
- };
469
+ }, _callee);
470
+ }));
471
+ return function handleFetchResponse(_x2) {
472
+ return _ref.apply(this, arguments);
473
+ };
474
+ }();
469
475
 
470
476
  var getSearchVariables = function getSearchVariables(_ref) {
471
477
  var search = _ref.search,
@@ -537,9 +543,8 @@ var CheckoutLineUpdate = /* GraphQL */"\n mutation CheckoutLineUpdate($checkout
537
543
  */
538
544
  var CheckoutLineDelete = /* GraphQL */"\n mutation CheckoutLineDelete($checkoutId: ID!, $lineId: ID!) {\n checkoutLineDelete(checkoutId: $checkoutId, lineId: $lineId) {\n errors {\n code\n field\n message\n }\n checkout {\n ...CheckoutDetails\n }\n }\n }\n " + CheckoutDetails + "\n";
539
545
 
540
- var _ref$1;
541
- var checkoutCreate = function checkoutCreate(_x) {
542
- return (_ref$1 = _ref$1 || _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fetch) {
546
+ var checkoutCreate = /*#__PURE__*/function () {
547
+ var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fetch) {
543
548
  var _data$checkoutCreate;
544
549
  var data, checkout, checkoutId, checkoutToken, value, options;
545
550
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -569,8 +574,11 @@ var checkoutCreate = function checkoutCreate(_x) {
569
574
  return _context.stop();
570
575
  }
571
576
  }, _callee);
572
- }))).apply(this, arguments);
573
- };
577
+ }));
578
+ return function checkoutCreate(_x) {
579
+ return _ref.apply(this, arguments);
580
+ };
581
+ }();
574
582
 
575
583
  var _excluded = ["id", "name", "media", "variants", "description", "slug", "pricing"];
576
584
  /* eslint-disable */
@@ -928,11 +936,10 @@ var handler$1 = {
928
936
  useHook: function useHook(_ref2) {
929
937
  var fetch = _ref2.fetch;
930
938
  return function () {
931
- var _addItem;
932
939
  var _useCart = useCart(),
933
940
  mutate = _useCart.mutate;
934
- return useCallback(function addItem(_x) {
935
- return (_addItem = _addItem || _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(input) {
941
+ return useCallback( /*#__PURE__*/function () {
942
+ var _addItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(input) {
936
943
  var data;
937
944
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
938
945
  while (1) switch (_context2.prev = _context2.next) {
@@ -962,8 +969,12 @@ var handler$1 = {
962
969
  return _context2.stop();
963
970
  }
964
971
  }, _callee2);
965
- }))).apply(this, arguments);
966
- }, [fetch, mutate]);
972
+ }));
973
+ function addItem(_x) {
974
+ return _addItem.apply(this, arguments);
975
+ }
976
+ return addItem;
977
+ }(), [fetch, mutate]);
967
978
  };
968
979
  }
969
980
  };
@@ -999,11 +1010,10 @@ var handler$2 = {
999
1010
  useHook: function useHook(_ref2) {
1000
1011
  var fetch = _ref2.fetch;
1001
1012
  return function () {
1002
- var _removeItem;
1003
1013
  var _useCart = useCart(),
1004
1014
  mutate = _useCart.mutate;
1005
- return useCallback(function removeItem(_x) {
1006
- return (_removeItem = _removeItem || _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(input) {
1015
+ return useCallback( /*#__PURE__*/function () {
1016
+ var _removeItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(input) {
1007
1017
  var data;
1008
1018
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1009
1019
  while (1) switch (_context2.prev = _context2.next) {
@@ -1025,8 +1035,12 @@ var handler$2 = {
1025
1035
  return _context2.stop();
1026
1036
  }
1027
1037
  }, _callee2);
1028
- }))).apply(this, arguments);
1029
- }, [fetch, mutate]);
1038
+ }));
1039
+ function removeItem(_x) {
1040
+ return _removeItem.apply(this, arguments);
1041
+ }
1042
+ return removeItem;
1043
+ }(), [fetch, mutate]);
1030
1044
  };
1031
1045
  }
1032
1046
  };
@@ -1094,7 +1108,7 @@ var handler$3 = {
1094
1108
  useHook: function useHook(_ref2) {
1095
1109
  var fetch = _ref2.fetch;
1096
1110
  return function (ctx) {
1097
- var _ref3, _ctx$wait;
1111
+ var _ctx$wait;
1098
1112
  if (ctx === void 0) {
1099
1113
  ctx = {};
1100
1114
  }
@@ -1102,8 +1116,8 @@ var handler$3 = {
1102
1116
  item = _ctx.item;
1103
1117
  var _useCart = useCart(),
1104
1118
  mutate = _useCart.mutate;
1105
- return useCallback(debounce(function (_x) {
1106
- return (_ref3 = _ref3 || _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(input) {
1119
+ return useCallback(debounce( /*#__PURE__*/function () {
1120
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(input) {
1107
1121
  var _input$id;
1108
1122
  var itemId, data;
1109
1123
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
@@ -1138,8 +1152,11 @@ var handler$3 = {
1138
1152
  return _context2.stop();
1139
1153
  }
1140
1154
  }, _callee2);
1141
- }))).apply(this, arguments);
1142
- }, (_ctx$wait = ctx.wait) != null ? _ctx$wait : 500), [fetch, mutate]);
1155
+ }));
1156
+ return function (_x) {
1157
+ return _ref3.apply(this, arguments);
1158
+ };
1159
+ }(), (_ctx$wait = ctx.wait) != null ? _ctx$wait : 500), [fetch, mutate]);
1143
1160
  };
1144
1161
  }
1145
1162
  };
@@ -1387,9 +1404,8 @@ var handler$7 = {
1387
1404
 
1388
1405
  var _excluded$1 = ["locale"];
1389
1406
  var getFetcher = function getFetcher(saleorApiUrl) {
1390
- var _ref2;
1391
- return function (_x) {
1392
- return (_ref2 = _ref2 || _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
1407
+ return /*#__PURE__*/function () {
1408
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
1393
1409
  var _ref$url, url, _ref$method, method, query, variables, _ref3, vars, token;
1394
1410
  return _regeneratorRuntime().wrap(function _callee$(_context) {
1395
1411
  while (1) switch (_context.prev = _context.next) {
@@ -1418,8 +1434,11 @@ var getFetcher = function getFetcher(saleorApiUrl) {
1418
1434
  return _context.stop();
1419
1435
  }
1420
1436
  }, _callee);
1421
- }))).apply(this, arguments);
1422
- };
1437
+ }));
1438
+ return function (_x) {
1439
+ return _ref2.apply(this, arguments);
1440
+ };
1441
+ }();
1423
1442
  };
1424
1443
 
1425
1444
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"commerce-saleor.esm.js","sources":["../src/const.ts","../src/utils/get-sort-variables.ts","../src/utils/handle-fetch-response.ts","../src/utils/get-search-variables.ts","../src/utils/get-checkout-id.ts","../src/utils/fragments/product.ts","../src/utils/fragments/checkout-details.ts","../src/utils/mutations/checkout-create.ts","../src/utils/mutations/checkout-line-add.ts","../src/utils/mutations/checkout-line-update.ts","../src/utils/mutations/checkout-line-remove.ts","../src/utils/checkout-create.ts","../src/utils/normalize.ts","../src/utils/throw-user-errors.ts","../src/utils/checkout-to-cart.ts","../src/utils/customer-token.ts","../src/utils/queries/collection-many.ts","../src/utils/queries/product-one-by-slug.ts","../src/utils/queries/product-many.ts","../src/utils/queries/collection-one.ts","../src/utils/queries/checkout-one.ts","../src/utils/queries/get-all-product-vendors-query.ts","../src/cart/use-cart.tsx","../src/cart/use-add-item.tsx","../src/cart/use-remove-item.tsx","../src/cart/use-update-item.tsx","../src/site/use-categories.tsx","../src/site/use-brands.tsx","../src/product/use-search.tsx","../src/utils/queries/product-one-by-id.ts","../src/product/use-product.tsx","../src/fetcher.ts","../src/provider.ts","../src/saleor.tsx","../src/registerCommerceProvider.tsx","../src/index.tsx"],"sourcesContent":["/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: Removed api_url \n*/\n\nexport const API_CHANNEL = 'default-channel'\nexport const CHECKOUT_ID_COOKIE = 'saleor.CheckoutID'\nexport const SALEOR_TOKEN = 'saleor.Token'\nexport const SALEOR_CRSF_TOKEN = 'saleor.CSRFToken'\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const getSortVariables = (sort?: string, isCategory: boolean = false) => {\n let output = {}\n switch (sort) {\n case 'price-asc':\n output = {\n field: 'PRICE',\n direction: 'ASC',\n }\n break\n case 'price-desc':\n output = {\n field: 'PRICE',\n direction: 'DESC',\n }\n break\n case 'trending-desc': //default\n output = {} \n break\n case 'latest-desc':\n output = {\n field: 'DATE',\n direction: 'DESC',\n }\n break\n }\n return output\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport { FetcherError } from '@plasmicpkgs/commerce';\n\nexport function getError(errors: any[], status: number) {\n errors = errors ?? [{ message: 'Failed to fetch Saleor API' }]\n return new FetcherError({ errors, status })\n}\n\nexport async function getAsyncError(res: Response) {\n const data = await res.json()\n return getError(data.errors, res.status)\n}\n\nconst handleFetchResponse = async (res: Response) => {\n if (res.ok) {\n const { data, errors } = await res.json()\n\n if (errors && errors.length) {\n throw getError(errors, res.status)\n }\n\n return data\n }\n\n throw await getAsyncError(res)\n}\n\nexport default handleFetchResponse\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport { getSortVariables } from './get-sort-variables'\nimport type { SearchProductsInput } from '../product/use-search'\n\nexport const getSearchVariables = ({ brandId, search, categoryId, sort, count }: SearchProductsInput) => {\n const sortBy = {\n field: 'NAME',\n direction: 'ASC',\n ...getSortVariables(sort, !!categoryId),\n channel: 'default-channel',\n }\n return {\n categoryId,\n filter: { search },\n sortBy,\n first: count\n }\n}\n\nexport default getSearchVariables\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport Cookies from 'js-cookie'\nimport { CHECKOUT_ID_COOKIE } from '../const'\n\nconst getCheckoutId = (id?: string) => {\n const r = Cookies.get(CHECKOUT_ID_COOKIE)?.split(':') || []\n return { checkoutId: r[0], checkoutToken: r[1] }\n}\n\nexport default getCheckoutId\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const ProductConnection = /* GraphQL */ `\n fragment ProductConnection on ProductCountableConnection {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n name\n description\n slug\n pricing {\n priceRange {\n start {\n net {\n amount\n }\n }\n }\n }\n media {\n url\n alt\n }\n variants {\n id\n name\n attributes {\n attribute {\n name\n }\n values {\n name\n }\n }\n pricing {\n price {\n net {\n amount\n currency\n }\n }\n }\n }\n }\n }\n }\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None\n*/\n\nexport const CheckoutDetails = /* GraphQL */ `\n fragment CheckoutDetails on Checkout {\n id\n token\n created\n totalPrice {\n currency\n gross {\n amount\n }\n }\n subtotalPrice {\n currency\n gross {\n amount\n }\n }\n\n lines {\n id\n variant {\n id\n name\n sku\n product {\n name\n slug\n id\n }\n media {\n url\n }\n pricing {\n price {\n gross {\n amount\n }\n }\n }\n }\n quantity\n totalPrice {\n currency\n gross {\n amount\n }\n }\n }\n }\n`;\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutCreate = /* GraphQL */ `\n mutation CheckoutCreate {\n checkoutCreate(input: { email: \"customer@example.com\", lines: [], channel: \"default-channel\" }) {\n errors {\n code\n field\n message\n }\n checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutLineAdd = /* GraphQL */ `\n mutation CheckoutLineAdd($checkoutId: ID!, $lineItems: [CheckoutLineInput!]!) {\n checkoutLinesAdd(checkoutId: $checkoutId, lines: $lineItems) {\n errors {\n code\n field\n message\n }\n checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutLineUpdate = /* GraphQL */ `\n mutation CheckoutLineUpdate($checkoutId: ID!, $lineItems: [CheckoutLineInput!]!) {\n checkoutLinesUpdate(checkoutId: $checkoutId, lines: $lineItems) {\n errors {\n code\n field\n message\n }\n checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutLineDelete = /* GraphQL */ `\n mutation CheckoutLineDelete($checkoutId: ID!, $lineId: ID!) {\n checkoutLineDelete(checkoutId: $checkoutId, lineId: $lineId) {\n errors {\n code\n field\n message\n }\n checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","import Cookies from 'js-cookie'\n\nimport * as mutation from './mutations'\nimport { CheckoutCreate } from '../schema'\nimport { CHECKOUT_ID_COOKIE } from '../const'\n\nexport const checkoutCreate = async (fetch: any): Promise<CheckoutCreate> => {\n const data = await fetch({ query: mutation.CheckoutCreate })\n const checkout = data.checkoutCreate?.checkout\n const checkoutId = checkout?.id\n const checkoutToken = checkout?.token\n\n const value = `${checkoutId}:${checkoutToken}`\n\n if (checkoutId) {\n const options: Cookies.CookieAttributes = {\n expires: 60 * 60 * 24 * 30,\n sameSite: \"none\",\n secure: true,\n }\n Cookies.set(CHECKOUT_ID_COOKIE, value, options)\n }\n\n return checkout\n}\n\nexport default checkoutCreate","/* eslint-disable */\n/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None\n*/\n\nimport { Product } from \"@plasmicpkgs/commerce\";\n\nimport {\n Product as SaleorProduct,\n Checkout,\n CheckoutLine,\n Money,\n ProductVariant,\n Collection,\n} from \"../schema\";\nimport { Category } from \"../types/site\";\nimport type { Cart, LineItem } from \"../types\";\n\n// TODO: Check nextjs-commerce bug if no images are added for a product\nconst placeholderImg = \"/product-img-placeholder.svg\";\n\nconst money = ({ amount, currency }: Money) => {\n return {\n value: +amount,\n currencyCode: currency || \"USD\",\n };\n};\n\nconst normalizeProductOptions = (options: ProductVariant[]) => {\n return options\n ?.map((option) => option?.attributes)\n .flat(1)\n .reduce<any>((acc, x) => {\n if (\n acc.find(({ displayName }: any) => displayName === x.attribute.name)\n ) {\n return acc.map((opt: any) => {\n return opt.displayName === x.attribute.name\n ? {\n ...opt,\n values: [\n ...opt.values,\n ...x.values.map((value: any) => ({\n label: value?.name,\n })),\n ],\n }\n : opt;\n });\n }\n\n return acc.concat({\n __typename: \"MultipleChoiceOption\",\n displayName: x.attribute.name,\n variant: \"size\",\n values: x.values.map((value: any) => ({\n label: value?.name,\n })),\n });\n }, []);\n};\n\nconst normalizeProductVariants = (variants: ProductVariant[]) => {\n return variants?.map((variant) => {\n const { id, sku, name, pricing } = variant;\n const price = pricing?.price?.net && money(pricing.price.net)?.value;\n\n return {\n id,\n name,\n sku: sku ?? id,\n price,\n listPrice: price,\n requiresShipping: true,\n options: normalizeProductOptions([variant]),\n };\n });\n};\n\nexport function normalizeProduct(productNode: SaleorProduct): Product {\n const {\n id,\n name,\n media = [],\n variants,\n description,\n slug,\n pricing,\n ...rest\n } = productNode;\n\n const product = {\n id,\n name,\n vendor: \"\",\n description: description\n ? JSON.parse(description)?.blocks[0]?.data.text\n : \"\",\n path: `/${slug}`,\n slug: slug?.replace(/^\\/+|\\/+$/g, \"\"),\n price: (pricing?.priceRange?.start?.net &&\n money(pricing.priceRange.start.net)) || {\n value: 0,\n currencyCode: \"USD\",\n },\n // TODO: Check nextjs-commerce bug if no images are added for a product\n images: media?.length ? media : [{ url: placeholderImg }],\n variants:\n variants && variants.length > 0\n ? normalizeProductVariants(variants as ProductVariant[])\n : [],\n options:\n variants && variants.length > 0\n ? normalizeProductOptions(variants as ProductVariant[])\n : [],\n ...rest,\n };\n\n return product as Product;\n}\n\nexport function normalizeCart(checkout: Checkout): Cart {\n const lines = checkout.lines as CheckoutLine[];\n const lineItems: LineItem[] =\n lines.length > 0 ? lines?.map<LineItem>(normalizeLineItem) : [];\n\n return {\n id: checkout.id,\n customerId: \"\",\n email: \"\",\n createdAt: checkout.created,\n currency: {\n code: checkout.totalPrice?.currency!,\n },\n taxesIncluded: false,\n lineItems,\n lineItemsSubtotalPrice: checkout.subtotalPrice?.gross?.amount!,\n subtotalPrice: checkout.subtotalPrice?.gross?.amount!,\n totalPrice: checkout.totalPrice?.gross.amount!,\n discounts: [],\n };\n}\n\nfunction normalizeLineItem({ id, variant, quantity }: CheckoutLine): LineItem {\n return {\n id,\n variantId: String(variant?.id),\n productId: String(variant?.product?.id),\n name: `${variant.product.name}`,\n quantity,\n variant: {\n id: String(variant?.id),\n sku: variant?.sku ?? \"\",\n name: variant?.name!,\n image: {\n url: variant?.media![0] ? variant?.media![0].url : placeholderImg,\n },\n requiresShipping: false,\n price: variant?.pricing?.price?.gross.amount!,\n listPrice: 0,\n },\n path: String(variant?.product?.slug),\n discounts: [],\n options: [],\n };\n}\nexport const normalizeCategory = ({\n name,\n slug,\n id,\n}: Collection): Category => ({\n id,\n name,\n slug,\n path: `/${slug}`,\n});\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport { ValidationError } from '@plasmicpkgs/commerce';\nimport { CheckoutError, CheckoutErrorCode, AppError, AccountError, AccountErrorCode } from '../schema'\n\nexport type UserErrors = Array<CheckoutError | AccountError | AppError>\n\nexport type UserErrorCode = CheckoutErrorCode | AccountErrorCode | null | undefined\n\nexport const throwUserErrors = (errors?: UserErrors) => {\n if (errors && errors.length) {\n throw new ValidationError({\n errors: errors.map(({ code, message }) => ({\n code: code ?? 'validation_error',\n message: message || '',\n })),\n })\n }\n}\n\nexport default throwUserErrors\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport { Cart } from '../types'\nimport { CommerceError } from '@plasmicpkgs/commerce'\n\nimport {\n CheckoutLinesAdd,\n CheckoutLinesUpdate,\n CheckoutCreate,\n CheckoutError,\n Checkout,\n Maybe,\n CheckoutLineDelete,\n} from '../schema'\n\nimport { normalizeCart } from './normalize'\nimport throwUserErrors from './throw-user-errors'\n\nexport type CheckoutQuery = {\n checkout: Checkout\n errors?: Array<CheckoutError>\n}\n\nexport type CheckoutPayload =\n | CheckoutLinesAdd\n | CheckoutLinesUpdate\n | CheckoutCreate\n | CheckoutQuery\n | CheckoutLineDelete\n\nconst checkoutToCart = (checkoutPayload?: Maybe<CheckoutPayload>): Cart | undefined => {\n if (!checkoutPayload) {\n throw new CommerceError({\n message: 'Missing checkout payload from response',\n })\n }\n\n const checkout = checkoutPayload?.checkout\n if (checkoutPayload?.errors?.length === 1 && checkoutPayload.errors[0].code === \"PRODUCT_UNAVAILABLE_FOR_PURCHASE\") {\n console.error(checkoutPayload.errors[0]);\n return undefined;\n }\n\n if (checkoutPayload?.errors) {\n throwUserErrors(checkoutPayload?.errors)\n }\n\n if (!checkout) {\n throw new CommerceError({\n message: 'Missing checkout object from response',\n })\n }\n\n return normalizeCart(checkout)\n}\n\nexport default checkoutToCart\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport Cookies, { CookieAttributes } from 'js-cookie'\nimport * as Const from '../const'\n\nexport const getToken = () => Cookies.get(Const.SALEOR_TOKEN)\nexport const setToken = (token?: string, options?: CookieAttributes) => {\n setCookie(Const.SALEOR_TOKEN, token, options)\n}\n\nexport const getCSRFToken = () => Cookies.get(Const.SALEOR_CRSF_TOKEN)\nexport const setCSRFToken = (token?: string, options?: CookieAttributes) => {\n setCookie(Const.SALEOR_CRSF_TOKEN, token, options)\n}\n\nexport const getCheckoutToken = () => Cookies.get(Const.CHECKOUT_ID_COOKIE)\nexport const setCheckoutToken = (token?: string, options?: CookieAttributes) => {\n setCookie(Const.CHECKOUT_ID_COOKIE, token, options)\n}\n\nconst setCookie = (name: string, token?: string, options?: CookieAttributes) => {\n if (!token) {\n Cookies.remove(name)\n } else {\n Cookies.set(name, token, options ?? { expires: 60 * 60 * 24 * 30 })\n }\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const CollectionMany = /* GraphQL */ `\n query CollectionMany( $channel: String = \"default-channel\") {\n collections(first:100, channel: $channel) {\n edges {\n node {\n id\n name\n slug\n }\n }\n }\n }\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const ProductOneBySlug = /* GraphQL */ `\n query ProductOneBySlug($slug: String!, $channel: String = \"default-channel\") {\n product(slug: $slug, channel: $channel) {\n id\n slug\n name\n description\n pricing {\n priceRange {\n start {\n net {\n amount\n }\n }\n }\n }\n variants {\n id\n name\n attributes {\n attribute {\n name\n }\n values {\n name\n }\n }\n pricing {\n price {\n net {\n amount\n currency\n }\n }\n }\n }\n media {\n url\n alt\n }\n }\n }\n`\n\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const ProductMany = /* GraphQL */ `\n query ProductMany(\n $first: Int = 100\n $filter: ProductFilterInput\n $sortBy: ProductOrder\n $channel: String = \"default-channel\"\n ) {\n products(first: $first, channel: $channel, filter: $filter, sortBy: $sortBy) {\n ...ProductConnection\n }\n }\n ${fragment.ProductConnection}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CollectionOne = /* GraphQL */ `\n query getProductsFromCollection($categoryId: ID!, $first: Int = 100, $channel: String = \"default-channel\") {\n collection(id: $categoryId, channel: $channel) {\n id\n name\n slug\n products(first: $first) {\n ...ProductConnection\n }\n }\n }\n ${fragment.ProductConnection}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\n\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutOne = /* GraphQL */ `\n query CheckoutOne($checkoutId: UUID!) {\n checkout(token: $checkoutId) {\n ... on Checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const getAllProductVendors = /* GraphQL */ `\n query getAllProductVendors($cursor: String, $channel: String = \"default-channel\") {\n products(first:100,channel: $channel, after: $cursor) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n slug\n }\n cursor\n }\n }\n }\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes:None\n*/\n\nimport { useMemo } from \"react\";\nimport { useCart as useCommerceCart, UseCart } from \"@plasmicpkgs/commerce\";\n\nimport { SWRHook } from \"@plasmicpkgs/commerce\";\nimport { checkoutCreate, checkoutToCart, getCheckoutId } from \"../utils\";\nimport * as query from \"../utils/queries\";\nimport { GetCartHook } from \"../types/cart\";\n\nexport default useCommerceCart as UseCart<typeof handler>;\n\nexport const handler: SWRHook<GetCartHook> = {\n fetchOptions: {\n query: query.CheckoutOne,\n },\n async fetcher({ input: { cartId: checkoutId }, options, fetch }) {\n let checkout;\n\n if (checkoutId) {\n const checkoutId = getCheckoutId().checkoutToken;\n const data = await fetch({\n ...options,\n variables: { checkoutId },\n });\n\n checkout = data;\n }\n\n if (checkout?.completedAt || !checkoutId) {\n checkout = await checkoutCreate(fetch);\n }\n\n return checkoutToCart(checkout);\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.lineItems.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes:None\n*/\nimport { useCallback } from \"react\";\nimport type { MutationHook } from \"@plasmicpkgs/commerce\";\nimport { CommerceError } from \"@plasmicpkgs/commerce\";\nimport { useAddItem, UseAddItem } from \"@plasmicpkgs/commerce\";\nimport useCart from \"./use-cart\";\n\nimport * as mutation from \"../utils/mutations\";\n\nimport { getCheckoutId, checkoutToCart } from \"../utils\";\n\nimport { Mutation, MutationCheckoutLinesAddArgs } from \"../schema\";\nimport { AddItemHook } from \"../types/cart\";\n\nexport default useAddItem as UseAddItem<typeof handler>;\n\nexport const handler: MutationHook<AddItemHook> = {\n fetchOptions: { query: mutation.CheckoutLineAdd },\n async fetcher({ input: item, options, fetch }) {\n if (\n item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)\n ) {\n throw new CommerceError({\n message: \"The item quantity has to be a valid integer greater than 0\",\n });\n }\n\n const { checkoutLinesAdd } = await fetch<\n Mutation,\n MutationCheckoutLinesAddArgs\n >({\n ...options,\n variables: {\n checkoutId: getCheckoutId().checkoutId,\n lineItems: [\n {\n variantId: item.variantId,\n quantity: item.quantity ?? 1,\n },\n ],\n },\n });\n\n return checkoutToCart(checkoutLinesAdd);\n },\n useHook:\n ({ fetch }) =>\n () => {\n const { mutate } = useCart();\n\n return useCallback(\n async function addItem(input) {\n const data = await fetch({ input });\n if (data) {\n await mutate(data, false);\n } else {\n await mutate();\n }\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None\n*/\n\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport { useRemoveItem, UseRemoveItem } from \"@plasmicpkgs/commerce\";\nimport { useCallback } from \"react\";\nimport { Mutation, MutationCheckoutLineDeleteArgs } from \"../schema\";\nimport { LineItem, RemoveItemHook } from \"../types/cart\";\nimport { checkoutToCart, getCheckoutId } from \"../utils\";\nimport * as mutation from \"../utils/mutations\";\nimport useCart from \"./use-cart\";\n\nexport default useRemoveItem as UseRemoveItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: { query: mutation.CheckoutLineDelete },\n async fetcher({\n input: { itemId },\n options,\n fetch,\n }: HookFetcherContext<RemoveItemHook>) {\n const data = await fetch<Mutation, MutationCheckoutLineDeleteArgs>({\n ...options,\n variables: {\n checkoutId: getCheckoutId().checkoutId,\n lineId: itemId,\n },\n });\n return checkoutToCart(data.checkoutLineDelete);\n },\n useHook: ({ fetch }: MutationHookContext<RemoveItemHook>) => <\n T extends LineItem | undefined = undefined\n >() => {\n const { mutate } = useCart();\n\n return useCallback(\n async function removeItem(input: { id: string }) {\n const data = await fetch({ input: { itemId: input.id } });\n await mutate(data, false);\n\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None\n*/\n\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport {\n useUpdateItem,\n UseUpdateItem,\n ValidationError,\n} from \"@plasmicpkgs/commerce\";\nimport debounce from \"debounce\";\nimport { useCallback } from \"react\";\n\nimport { Mutation, MutationCheckoutLinesUpdateArgs } from \"../schema\";\nimport type { LineItem } from \"../types/cart\";\nimport { checkoutToCart, getCheckoutId } from \"../utils\";\nimport useCart from \"./use-cart\";\nimport { handler as removeItemHandler } from \"./use-remove-item\";\n\nimport * as mutation from \"../utils/mutations\";\n\nimport type { UpdateItemHook } from \"../types/cart\";\n\nexport type UpdateItemActionInput<T = any> = T extends LineItem\n ? Partial<UpdateItemHook[\"actionInput\"]>\n : UpdateItemHook[\"actionInput\"];\n\nexport default useUpdateItem as UseUpdateItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: { query: mutation.CheckoutLineUpdate },\n async fetcher({\n input: { itemId, item },\n options,\n fetch,\n }: HookFetcherContext<UpdateItemHook>) {\n if (Number.isInteger(item.quantity)) {\n // Also allow the update hook to remove an item if the quantity is lower than 1\n if (item.quantity! < 1) {\n return removeItemHandler.fetcher({\n options: removeItemHandler.fetchOptions,\n input: { itemId },\n fetch,\n });\n }\n } else if (item.quantity) {\n throw new ValidationError({\n message: \"The item quantity has to be a valid integer\",\n });\n }\n\n const checkoutId = getCheckoutId().checkoutId;\n const { checkoutLinesUpdate } = await fetch<\n Mutation,\n MutationCheckoutLinesUpdateArgs\n >({\n ...options,\n variables: {\n checkoutId,\n lineItems: [\n {\n itemId,\n quantity: item.quantity,\n },\n ],\n },\n });\n\n return checkoutToCart(checkoutLinesUpdate);\n },\n useHook:\n ({ fetch }: MutationHookContext<UpdateItemHook>) =>\n <T extends LineItem | undefined = undefined>(\n ctx: {\n item?: T;\n wait?: number;\n } = {}\n ) => {\n const { item } = ctx;\n const { mutate } = useCart() as any;\n\n return useCallback(\n debounce(async (input: UpdateItemActionInput<T>) => {\n const itemId = input.id ?? item?.id;\n if (!itemId) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({\n input: {\n item: {\n quantity: input.quantity,\n },\n itemId,\n },\n });\n await mutate(data, false);\n return data;\n }, ctx.wait ?? 500),\n [fetch, mutate]\n );\n },\n};\n","import { SWRHook } from \"@plasmicpkgs/commerce\";\nimport { UseCategories, useCategories } from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { CollectionCountableEdge } from \"../schema\";\nimport { GetCategoriesHook } from \"../types/site\";\nimport { CollectionMany, CollectionOne, normalizeCategory } from \"../utils\";\n\nexport default useCategories as UseCategories<typeof handler>;\n\nexport const handler: SWRHook<GetCategoriesHook> = {\n fetchOptions: {\n query: CollectionMany,\n },\n async fetcher({ input, options, fetch }) {\n const { categoryId } = input;\n if (!categoryId) {\n const data = await fetch({\n query: CollectionMany,\n variables: {\n first: 250,\n },\n })\n\n return (\n data.collections?.edges?.map(({ node }: CollectionCountableEdge) =>\n normalizeCategory(node)\n ) ?? []\n );\n } else {\n const data = await fetch({\n query: CollectionOne,\n variables: { categoryId },\n });\n return !!data?.collection ? [normalizeCategory(data?.collection)] : [];\n }\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n input: [[\"categoryId\", input?.categoryId]],\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};","import { SWRHook } from \"@plasmicpkgs/commerce\";\nimport { UseBrands, useBrands } from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport {\n GetAllProductPathsQuery,\n GetAllProductPathsQueryVariables,\n} from \"../schema\";\nimport { GetBrandsHook } from \"../types/site\";\nimport { getAllProductVendors } from \"../utils\";\n\nexport default useBrands as UseBrands<typeof handler>;\n\nexport const handler: SWRHook<GetBrandsHook> = {\n fetchOptions: {\n query: getAllProductVendors,\n },\n async fetcher({ input, options, fetch }) {\n return []; // brands it's not available on saleor\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes:None\n*/\n\nimport { Product, SWRHook, useSearch, UseSearch } from \"@plasmicpkgs/commerce\";\n\nimport { ProductCountableEdge } from \"../schema\";\nimport { getSearchVariables, normalizeProduct } from \"../utils\";\n\nimport { SearchProductsHook } from \"@plasmicpkgs/commerce\";\nimport * as query from \"../utils/queries\";\n\nconst useSearchTyped: UseSearch<typeof handler> = useSearch;\nexport default useSearchTyped;\n\nexport type SearchProductsInput = {\n search?: string;\n categoryId?: string | number;\n brandId?: string | number;\n sort?: string;\n count?: number;\n};\n\nexport type SearchProductsData = {\n products: Product[];\n found: boolean;\n};\n\nexport const handler: SWRHook<SearchProductsHook> = {\n fetchOptions: {\n query: query.ProductMany,\n },\n async fetcher({ input, options, fetch }) {\n const { categoryId, brandId } = input;\n\n const data = await fetch({\n query: categoryId ? query.CollectionOne : options.query,\n method: options?.method,\n variables: getSearchVariables(input),\n });\n\n let edges;\n\n if (categoryId) {\n edges = data.collection?.products?.edges ?? [];\n // FIXME @zaiste, no `vendor` in Saleor\n // if (brandId) {\n // edges = edges.filter(\n // ({ node: { vendor } }: ProductCountableEdge) =>\n // vendor.replace(/\\s+/g, '-').toLowerCase() === brandId\n // )\n // }\n } else {\n edges = data.products?.edges ?? [];\n }\n\n return {\n products: edges.map(({ node }: ProductCountableEdge) =>\n normalizeProduct(node)\n ),\n found: !!edges.length,\n };\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n [\"search\", input.search],\n [\"categoryId\", input.categoryId],\n [\"brandId\", input.brandId],\n [\"sort\", input.sort],\n [\"count\", input.count],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","export const ProductOneById = /* GraphQL */ `\n query ProductOneById($id: ID!, $channel: String = \"default-channel\") {\n product(id: $id, channel: $channel) {\n\n slug\n name\n description\n pricing {\n priceRange {\n start {\n net {\n amount\n }\n }\n }\n }\n variants {\n id\n name\n attributes {\n attribute {\n name\n }\n values {\n name\n }\n }\n pricing {\n price {\n net {\n amount\n currency\n }\n }\n }\n }\n media {\n url\n alt\n }\n }\n }`","import { SWRHook } from \"@plasmicpkgs/commerce\";\nimport { useProduct, UseProduct } from \"@plasmicpkgs/commerce\";\n\nimport { normalizeProduct } from \"../utils\";\nimport type { GetProductHook } from \"@plasmicpkgs/commerce\";\n\nimport { ProductOneById } from \"../utils/queries/product-one-by-id\";\nimport { ProductOneBySlug } from '../utils/queries/product-one-by-slug';\n\nexport type GetProductInput = {\n id?: string;\n slug?: string\n};\n\nexport default useProduct as UseProduct<typeof handler>;\n\nexport const handler: SWRHook<GetProductHook> = {\n fetchOptions: {\n query: ProductOneById,\n },\n async fetcher({ input, options, fetch }) {\n const { id } = input;\n if (!id) {\n return null;\n }\n const data = await fetch({\n query: ProductOneById,\n variables: { id },\n });\n if (!data.product) {\n const response = await fetch({\n query: ProductOneBySlug,\n variables: { slug: id }\n })\n return response.product ? normalizeProduct(response.product) : null;\n }\n return data.product ? normalizeProduct(data.product) : null;\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [[\"id\", input.id]],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","\n/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: \n - Before: The saleor_api_url was defined at build time. \n So this file just implemented a fetcher with these parameters defined.\n - Now: The saleor_api_url is defined at runtime. \n So we have to get the fetcher using these parameters.\n*/\n\n\nimport { Fetcher } from '@plasmicpkgs/commerce'\nimport { getToken, handleFetchResponse } from './utils'\n\nexport const getFetcher:\n (saleorApiUrl: string) => Fetcher =\n (saleorApiUrl) => {\n return async ({\n url = saleorApiUrl,\n method = 'POST',\n query,\n variables,\n }) => {\n const { locale, ...vars } = variables ?? {}\n const token = getToken()\n return handleFetchResponse(\n await fetch(url, {\n method,\n body: JSON.stringify({ query, variables: vars }),\n headers: {\n Authorization: `JWT ${token}`,\n 'Content-Type': 'application/json',\n },\n })\n )\n }\n }\n\n\n\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes:\n - Removed customer and auth hooks.\n - Added saleor_api_url parameters.\n*/\n\nimport { CHECKOUT_ID_COOKIE } from './const'\nimport { handler as useCart } from './cart/use-cart'\nimport { handler as useAddItem } from './cart/use-add-item'\nimport { handler as useUpdateItem } from './cart/use-update-item'\nimport { handler as useRemoveItem } from './cart/use-remove-item'\nimport { handler as useCategories } from './site/use-categories'\nimport { handler as useBrands } from './site/use-brands'\nimport { handler as useSearch } from './product/use-search'\nimport { handler as useProduct } from './product/use-product'\nimport { Fetcher } from '@plasmicpkgs/commerce'\nimport { getFetcher } from './fetcher'\n\nexport const getSaleorProvider = (saleorApiUrl: string,) => ({\n locale: 'en-us',\n cartCookie: CHECKOUT_ID_COOKIE,\n fetcher: getFetcher(saleorApiUrl),\n cart: { useCart, useAddItem, useUpdateItem, useRemoveItem },\n products: { useSearch, useProduct },\n site: { useCategories, useBrands }\n})\n\n\n\n\n\nexport type SaleorProvider = {\n locale: string;\n cartCookie: string;\n fetcher: Fetcher;\n cart: {\n useCart: typeof useCart;\n useAddItem: typeof useAddItem;\n useUpdateItem: typeof useUpdateItem;\n useRemoveItem: typeof useRemoveItem\n };\n products: {\n useSearch: typeof useSearch\n useProduct: typeof useProduct\n };\n site: {\n useCategories: typeof useCategories\n useBrands: typeof useBrands\n }\n}","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: \n - Added saleor_api_url parameter.\n*/\nimport {\n getCommerceProvider as getCoreCommerceProvider,\n useCommerce as useCoreCommerce,\n} from \"@plasmicpkgs/commerce\";\nimport { getSaleorProvider, SaleorProvider } from \"./provider\";\n\nexport type { SaleorProvider };\n\nexport const useCommerce = () => useCoreCommerce<SaleorProvider>();\nexport const getCommerceProvider = (saleorApiUrl: string) =>\n getCoreCommerceProvider(getSaleorProvider(saleorApiUrl));\n","import { GlobalContextMeta } from \"@plasmicapp/host\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport React from \"react\";\nimport { Registerable } from \"./registerable\";\nimport { getCommerceProvider } from \"./saleor\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@plasmicpkgs/commerce\";\n\ninterface CommerceProviderProps {\n children?: React.ReactNode;\n saleorApiUrl: string;\n}\n\nconst globalContextName = \"plasmic-commerce-saleor-provider\";\n\nexport const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps> = {\n name: globalContextName,\n displayName: \"Saleor Provider\",\n props: {\n saleorApiUrl: {\n type: \"string\",\n defaultValue: \"https://vercel.saleor.cloud/graphql/\",\n },\n },\n unstable__globalActions: globalActionsRegistrations as any,\n importPath: \"@plasmicpkgs/commerce-saleor\",\n importName: \"CommerceProviderComponent\",\n};\n\nexport function CommerceProviderComponent(props: CommerceProviderProps) {\n const { saleorApiUrl, children } = props;\n\n const CommerceProvider = React.useMemo(\n () => getCommerceProvider(saleorApiUrl),\n [saleorApiUrl]\n );\n\n return (\n <CommerceProvider>\n <CartActionsProvider globalContextName={globalContextName}>\n {children}\n </CartActionsProvider>\n </CommerceProvider>\n );\n}\n\nexport function registerCommerceProvider(\n loader?: Registerable,\n customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>\n) {\n const doRegisterComponent: typeof registerGlobalContext = (...args) =>\n loader\n ? loader.registerGlobalContext(...args)\n : registerGlobalContext(...args);\n doRegisterComponent(\n CommerceProviderComponent,\n customCommerceProviderMeta ?? commerceProviderMeta\n );\n}\n","import { Registerable } from \"./registerable\";\nimport {\n registerCommerceProvider,\n CommerceProviderComponent,\n} from \"./registerCommerceProvider\";\nexport * from \"./registerable\";\n\nexport * from \"./saleor\";\n\nexport function registerAll(loader?: Registerable) {\n registerCommerceProvider(loader);\n}\n\nexport { registerCommerceProvider, CommerceProviderComponent };\n"],"names":["CHECKOUT_ID_COOKIE","SALEOR_TOKEN","getSortVariables","sort","isCategory","output","field","direction","getError","errors","status","_errors","message","FetcherError","getAsyncError","_x","_getAsyncError","_asyncToGenerator","_regeneratorRuntime","mark","_callee","res","data","wrap","_callee$","_context","prev","next","json","sent","abrupt","stop","apply","arguments","handleFetchResponse","_x2","_ref","_callee2","_yield$res$json","_callee2$","_context2","ok","length","getSearchVariables","search","categoryId","count","sortBy","_extends","channel","filter","first","getCheckoutId","id","r","_Cookies$get","Cookies","get","split","checkoutId","checkoutToken","ProductConnection","CheckoutDetails","CheckoutCreate","fragment","CheckoutLineAdd","CheckoutLineUpdate","CheckoutLineDelete","checkoutCreate","fetch","_data$checkoutCreate","checkout","value","options","query","mutation","token","expires","sameSite","secure","set","placeholderImg","money","amount","currency","currencyCode","normalizeProductOptions","map","option","attributes","flat","reduce","acc","x","find","_ref2","displayName","attribute","name","opt","values","concat","label","__typename","variant","normalizeProductVariants","variants","sku","pricing","price","_pricing$price","net","_money","listPrice","requiresShipping","normalizeProduct","productNode","_productNode$media","media","description","slug","rest","_objectWithoutPropertiesLoose","_excluded","product","vendor","_JSON$parse","JSON","parse","blocks","text","path","replace","_pricing$priceRange","priceRange","start","images","url","normalizeCart","lines","lineItems","normalizeLineItem","customerId","email","createdAt","created","code","_checkout$totalPrice","totalPrice","taxesIncluded","lineItemsSubtotalPrice","_checkout$subtotalPri","subtotalPrice","gross","_checkout$subtotalPri2","_checkout$totalPrice2","discounts","_ref3","quantity","variantId","String","productId","_variant$product","_variant$sku","image","_variant$pricing","_variant$product2","normalizeCategory","_ref4","throwUserErrors","ValidationError","checkoutToCart","checkoutPayload","CommerceError","_checkoutPayload$erro","console","error","undefined","getToken","Const","CollectionMany","ProductOneBySlug","ProductMany","CollectionOne","CheckoutOne","getAllProductVendors","handler","fetchOptions","fetcher","input","cartId","variables","_checkout","completedAt","useHook","useData","response","swrOptions","revalidateOnFocus","useMemo","Object","create","isEmpty","_response$data$lineIt","_response$data","enumerable","item","Number","isInteger","_item$quantity","_yield$fetch","checkoutLinesAdd","_useCart","useCart","mutate","useCallback","addItem","_addItem","itemId","lineId","checkoutLineDelete","removeItem","_removeItem","_ref$input","removeItemHandler","checkoutLinesUpdate","ctx","_ctx","debounce","_input$id","_ctx$wait","wait","_data$collections$edg","_data$collections","collections","edges","node","collection","_response$data$length","brandId","method","_data$collection$prod","_data$collection","products","_data$products$edges","_data$products","found","ProductOneById","getFetcher","saleorApiUrl","_ref$url","_ref$method","locale","vars","t0","body","stringify","headers","Authorization","t1","getSaleorProvider","cartCookie","cart","useAddItem","useUpdateItem","useRemoveItem","useSearch","useProduct","site","useCategories","useBrands","useCommerce","useCoreCommerce","getCommerceProvider","getCoreCommerceProvider","globalContextName","commerceProviderMeta","props","type","defaultValue","unstable__globalActions","globalActionsRegistrations","importPath","importName","CommerceProviderComponent","children","CommerceProvider","React","CartActionsProvider","registerCommerceProvider","loader","customCommerceProviderMeta","doRegisterComponent","registerGlobalContext","registerAll"],"mappings":"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"}
1
+ {"version":3,"file":"commerce-saleor.esm.js","sources":["../src/const.ts","../src/utils/get-sort-variables.ts","../src/utils/handle-fetch-response.ts","../src/utils/get-search-variables.ts","../src/utils/get-checkout-id.ts","../src/utils/fragments/product.ts","../src/utils/fragments/checkout-details.ts","../src/utils/mutations/checkout-create.ts","../src/utils/mutations/checkout-line-add.ts","../src/utils/mutations/checkout-line-update.ts","../src/utils/mutations/checkout-line-remove.ts","../src/utils/checkout-create.ts","../src/utils/normalize.ts","../src/utils/throw-user-errors.ts","../src/utils/checkout-to-cart.ts","../src/utils/customer-token.ts","../src/utils/queries/collection-many.ts","../src/utils/queries/product-one-by-slug.ts","../src/utils/queries/product-many.ts","../src/utils/queries/collection-one.ts","../src/utils/queries/checkout-one.ts","../src/utils/queries/get-all-product-vendors-query.ts","../src/cart/use-cart.tsx","../src/cart/use-add-item.tsx","../src/cart/use-remove-item.tsx","../src/cart/use-update-item.tsx","../src/site/use-categories.tsx","../src/site/use-brands.tsx","../src/product/use-search.tsx","../src/utils/queries/product-one-by-id.ts","../src/product/use-product.tsx","../src/fetcher.ts","../src/provider.ts","../src/saleor.tsx","../src/registerCommerceProvider.tsx","../src/index.tsx"],"sourcesContent":["/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: Removed api_url \n*/\n\nexport const API_CHANNEL = 'default-channel'\nexport const CHECKOUT_ID_COOKIE = 'saleor.CheckoutID'\nexport const SALEOR_TOKEN = 'saleor.Token'\nexport const SALEOR_CRSF_TOKEN = 'saleor.CSRFToken'\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const getSortVariables = (sort?: string, isCategory: boolean = false) => {\n let output = {}\n switch (sort) {\n case 'price-asc':\n output = {\n field: 'PRICE',\n direction: 'ASC',\n }\n break\n case 'price-desc':\n output = {\n field: 'PRICE',\n direction: 'DESC',\n }\n break\n case 'trending-desc': //default\n output = {} \n break\n case 'latest-desc':\n output = {\n field: 'DATE',\n direction: 'DESC',\n }\n break\n }\n return output\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport { FetcherError } from '@plasmicpkgs/commerce';\n\nexport function getError(errors: any[], status: number) {\n errors = errors ?? [{ message: 'Failed to fetch Saleor API' }]\n return new FetcherError({ errors, status })\n}\n\nexport async function getAsyncError(res: Response) {\n const data = await res.json()\n return getError(data.errors, res.status)\n}\n\nconst handleFetchResponse = async (res: Response) => {\n if (res.ok) {\n const { data, errors } = await res.json()\n\n if (errors && errors.length) {\n throw getError(errors, res.status)\n }\n\n return data\n }\n\n throw await getAsyncError(res)\n}\n\nexport default handleFetchResponse\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport { getSortVariables } from './get-sort-variables'\nimport type { SearchProductsInput } from '../product/use-search'\n\nexport const getSearchVariables = ({ brandId, search, categoryId, sort, count }: SearchProductsInput) => {\n const sortBy = {\n field: 'NAME',\n direction: 'ASC',\n ...getSortVariables(sort, !!categoryId),\n channel: 'default-channel',\n }\n return {\n categoryId,\n filter: { search },\n sortBy,\n first: count\n }\n}\n\nexport default getSearchVariables\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport Cookies from 'js-cookie'\nimport { CHECKOUT_ID_COOKIE } from '../const'\n\nconst getCheckoutId = (id?: string) => {\n const r = Cookies.get(CHECKOUT_ID_COOKIE)?.split(':') || []\n return { checkoutId: r[0], checkoutToken: r[1] }\n}\n\nexport default getCheckoutId\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const ProductConnection = /* GraphQL */ `\n fragment ProductConnection on ProductCountableConnection {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n name\n description\n slug\n pricing {\n priceRange {\n start {\n net {\n amount\n }\n }\n }\n }\n media {\n url\n alt\n }\n variants {\n id\n name\n attributes {\n attribute {\n name\n }\n values {\n name\n }\n }\n pricing {\n price {\n net {\n amount\n currency\n }\n }\n }\n }\n }\n }\n }\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None\n*/\n\nexport const CheckoutDetails = /* GraphQL */ `\n fragment CheckoutDetails on Checkout {\n id\n token\n created\n totalPrice {\n currency\n gross {\n amount\n }\n }\n subtotalPrice {\n currency\n gross {\n amount\n }\n }\n\n lines {\n id\n variant {\n id\n name\n sku\n product {\n name\n slug\n id\n }\n media {\n url\n }\n pricing {\n price {\n gross {\n amount\n }\n }\n }\n }\n quantity\n totalPrice {\n currency\n gross {\n amount\n }\n }\n }\n }\n`;\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutCreate = /* GraphQL */ `\n mutation CheckoutCreate {\n checkoutCreate(input: { email: \"customer@example.com\", lines: [], channel: \"default-channel\" }) {\n errors {\n code\n field\n message\n }\n checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutLineAdd = /* GraphQL */ `\n mutation CheckoutLineAdd($checkoutId: ID!, $lineItems: [CheckoutLineInput!]!) {\n checkoutLinesAdd(checkoutId: $checkoutId, lines: $lineItems) {\n errors {\n code\n field\n message\n }\n checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutLineUpdate = /* GraphQL */ `\n mutation CheckoutLineUpdate($checkoutId: ID!, $lineItems: [CheckoutLineInput!]!) {\n checkoutLinesUpdate(checkoutId: $checkoutId, lines: $lineItems) {\n errors {\n code\n field\n message\n }\n checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutLineDelete = /* GraphQL */ `\n mutation CheckoutLineDelete($checkoutId: ID!, $lineId: ID!) {\n checkoutLineDelete(checkoutId: $checkoutId, lineId: $lineId) {\n errors {\n code\n field\n message\n }\n checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","import Cookies from 'js-cookie'\n\nimport * as mutation from './mutations'\nimport { CheckoutCreate } from '../schema'\nimport { CHECKOUT_ID_COOKIE } from '../const'\n\nexport const checkoutCreate = async (fetch: any): Promise<CheckoutCreate> => {\n const data = await fetch({ query: mutation.CheckoutCreate })\n const checkout = data.checkoutCreate?.checkout\n const checkoutId = checkout?.id\n const checkoutToken = checkout?.token\n\n const value = `${checkoutId}:${checkoutToken}`\n\n if (checkoutId) {\n const options: Cookies.CookieAttributes = {\n expires: 60 * 60 * 24 * 30,\n sameSite: \"none\",\n secure: true,\n }\n Cookies.set(CHECKOUT_ID_COOKIE, value, options)\n }\n\n return checkout\n}\n\nexport default checkoutCreate","/* eslint-disable */\n/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None\n*/\n\nimport { Product } from \"@plasmicpkgs/commerce\";\n\nimport {\n Product as SaleorProduct,\n Checkout,\n CheckoutLine,\n Money,\n ProductVariant,\n Collection,\n} from \"../schema\";\nimport { Category } from \"../types/site\";\nimport type { Cart, LineItem } from \"../types\";\n\n// TODO: Check nextjs-commerce bug if no images are added for a product\nconst placeholderImg = \"/product-img-placeholder.svg\";\n\nconst money = ({ amount, currency }: Money) => {\n return {\n value: +amount,\n currencyCode: currency || \"USD\",\n };\n};\n\nconst normalizeProductOptions = (options: ProductVariant[]) => {\n return options\n ?.map((option) => option?.attributes)\n .flat(1)\n .reduce<any>((acc, x) => {\n if (\n acc.find(({ displayName }: any) => displayName === x.attribute.name)\n ) {\n return acc.map((opt: any) => {\n return opt.displayName === x.attribute.name\n ? {\n ...opt,\n values: [\n ...opt.values,\n ...x.values.map((value: any) => ({\n label: value?.name,\n })),\n ],\n }\n : opt;\n });\n }\n\n return acc.concat({\n __typename: \"MultipleChoiceOption\",\n displayName: x.attribute.name,\n variant: \"size\",\n values: x.values.map((value: any) => ({\n label: value?.name,\n })),\n });\n }, []);\n};\n\nconst normalizeProductVariants = (variants: ProductVariant[]) => {\n return variants?.map((variant) => {\n const { id, sku, name, pricing } = variant;\n const price = pricing?.price?.net && money(pricing.price.net)?.value;\n\n return {\n id,\n name,\n sku: sku ?? id,\n price,\n listPrice: price,\n requiresShipping: true,\n options: normalizeProductOptions([variant]),\n };\n });\n};\n\nexport function normalizeProduct(productNode: SaleorProduct): Product {\n const {\n id,\n name,\n media = [],\n variants,\n description,\n slug,\n pricing,\n ...rest\n } = productNode;\n\n const product = {\n id,\n name,\n vendor: \"\",\n description: description\n ? JSON.parse(description)?.blocks[0]?.data.text\n : \"\",\n path: `/${slug}`,\n slug: slug?.replace(/^\\/+|\\/+$/g, \"\"),\n price: (pricing?.priceRange?.start?.net &&\n money(pricing.priceRange.start.net)) || {\n value: 0,\n currencyCode: \"USD\",\n },\n // TODO: Check nextjs-commerce bug if no images are added for a product\n images: media?.length ? media : [{ url: placeholderImg }],\n variants:\n variants && variants.length > 0\n ? normalizeProductVariants(variants as ProductVariant[])\n : [],\n options:\n variants && variants.length > 0\n ? normalizeProductOptions(variants as ProductVariant[])\n : [],\n ...rest,\n };\n\n return product as Product;\n}\n\nexport function normalizeCart(checkout: Checkout): Cart {\n const lines = checkout.lines as CheckoutLine[];\n const lineItems: LineItem[] =\n lines.length > 0 ? lines?.map<LineItem>(normalizeLineItem) : [];\n\n return {\n id: checkout.id,\n customerId: \"\",\n email: \"\",\n createdAt: checkout.created,\n currency: {\n code: checkout.totalPrice?.currency!,\n },\n taxesIncluded: false,\n lineItems,\n lineItemsSubtotalPrice: checkout.subtotalPrice?.gross?.amount!,\n subtotalPrice: checkout.subtotalPrice?.gross?.amount!,\n totalPrice: checkout.totalPrice?.gross.amount!,\n discounts: [],\n };\n}\n\nfunction normalizeLineItem({ id, variant, quantity }: CheckoutLine): LineItem {\n return {\n id,\n variantId: String(variant?.id),\n productId: String(variant?.product?.id),\n name: `${variant.product.name}`,\n quantity,\n variant: {\n id: String(variant?.id),\n sku: variant?.sku ?? \"\",\n name: variant?.name!,\n image: {\n url: variant?.media![0] ? variant?.media![0].url : placeholderImg,\n },\n requiresShipping: false,\n price: variant?.pricing?.price?.gross.amount!,\n listPrice: 0,\n },\n path: String(variant?.product?.slug),\n discounts: [],\n options: [],\n };\n}\nexport const normalizeCategory = ({\n name,\n slug,\n id,\n}: Collection): Category => ({\n id,\n name,\n slug,\n path: `/${slug}`,\n});\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport { ValidationError } from '@plasmicpkgs/commerce';\nimport { CheckoutError, CheckoutErrorCode, AppError, AccountError, AccountErrorCode } from '../schema'\n\nexport type UserErrors = Array<CheckoutError | AccountError | AppError>\n\nexport type UserErrorCode = CheckoutErrorCode | AccountErrorCode | null | undefined\n\nexport const throwUserErrors = (errors?: UserErrors) => {\n if (errors && errors.length) {\n throw new ValidationError({\n errors: errors.map(({ code, message }) => ({\n code: code ?? 'validation_error',\n message: message || '',\n })),\n })\n }\n}\n\nexport default throwUserErrors\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport { Cart } from '../types'\nimport { CommerceError } from '@plasmicpkgs/commerce'\n\nimport {\n CheckoutLinesAdd,\n CheckoutLinesUpdate,\n CheckoutCreate,\n CheckoutError,\n Checkout,\n Maybe,\n CheckoutLineDelete,\n} from '../schema'\n\nimport { normalizeCart } from './normalize'\nimport throwUserErrors from './throw-user-errors'\n\nexport type CheckoutQuery = {\n checkout: Checkout\n errors?: Array<CheckoutError>\n}\n\nexport type CheckoutPayload =\n | CheckoutLinesAdd\n | CheckoutLinesUpdate\n | CheckoutCreate\n | CheckoutQuery\n | CheckoutLineDelete\n\nconst checkoutToCart = (checkoutPayload?: Maybe<CheckoutPayload>): Cart | undefined => {\n if (!checkoutPayload) {\n throw new CommerceError({\n message: 'Missing checkout payload from response',\n })\n }\n\n const checkout = checkoutPayload?.checkout\n if (checkoutPayload?.errors?.length === 1 && checkoutPayload.errors[0].code === \"PRODUCT_UNAVAILABLE_FOR_PURCHASE\") {\n console.error(checkoutPayload.errors[0]);\n return undefined;\n }\n\n if (checkoutPayload?.errors) {\n throwUserErrors(checkoutPayload?.errors)\n }\n\n if (!checkout) {\n throw new CommerceError({\n message: 'Missing checkout object from response',\n })\n }\n\n return normalizeCart(checkout)\n}\n\nexport default checkoutToCart\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport Cookies, { CookieAttributes } from 'js-cookie'\nimport * as Const from '../const'\n\nexport const getToken = () => Cookies.get(Const.SALEOR_TOKEN)\nexport const setToken = (token?: string, options?: CookieAttributes) => {\n setCookie(Const.SALEOR_TOKEN, token, options)\n}\n\nexport const getCSRFToken = () => Cookies.get(Const.SALEOR_CRSF_TOKEN)\nexport const setCSRFToken = (token?: string, options?: CookieAttributes) => {\n setCookie(Const.SALEOR_CRSF_TOKEN, token, options)\n}\n\nexport const getCheckoutToken = () => Cookies.get(Const.CHECKOUT_ID_COOKIE)\nexport const setCheckoutToken = (token?: string, options?: CookieAttributes) => {\n setCookie(Const.CHECKOUT_ID_COOKIE, token, options)\n}\n\nconst setCookie = (name: string, token?: string, options?: CookieAttributes) => {\n if (!token) {\n Cookies.remove(name)\n } else {\n Cookies.set(name, token, options ?? { expires: 60 * 60 * 24 * 30 })\n }\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const CollectionMany = /* GraphQL */ `\n query CollectionMany( $channel: String = \"default-channel\") {\n collections(first:100, channel: $channel) {\n edges {\n node {\n id\n name\n slug\n }\n }\n }\n }\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const ProductOneBySlug = /* GraphQL */ `\n query ProductOneBySlug($slug: String!, $channel: String = \"default-channel\") {\n product(slug: $slug, channel: $channel) {\n id\n slug\n name\n description\n pricing {\n priceRange {\n start {\n net {\n amount\n }\n }\n }\n }\n variants {\n id\n name\n attributes {\n attribute {\n name\n }\n values {\n name\n }\n }\n pricing {\n price {\n net {\n amount\n currency\n }\n }\n }\n }\n media {\n url\n alt\n }\n }\n }\n`\n\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const ProductMany = /* GraphQL */ `\n query ProductMany(\n $first: Int = 100\n $filter: ProductFilterInput\n $sortBy: ProductOrder\n $channel: String = \"default-channel\"\n ) {\n products(first: $first, channel: $channel, filter: $filter, sortBy: $sortBy) {\n ...ProductConnection\n }\n }\n ${fragment.ProductConnection}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nimport * as fragment from '../fragments'\n\nexport const CollectionOne = /* GraphQL */ `\n query getProductsFromCollection($categoryId: ID!, $first: Int = 100, $channel: String = \"default-channel\") {\n collection(id: $categoryId, channel: $channel) {\n id\n name\n slug\n products(first: $first) {\n ...ProductConnection\n }\n }\n }\n ${fragment.ProductConnection}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\n\n\nimport * as fragment from '../fragments'\n\nexport const CheckoutOne = /* GraphQL */ `\n query CheckoutOne($checkoutId: UUID!) {\n checkout(token: $checkoutId) {\n ... on Checkout {\n ...CheckoutDetails\n }\n }\n }\n ${fragment.CheckoutDetails}\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None \n*/\n\nexport const getAllProductVendors = /* GraphQL */ `\n query getAllProductVendors($cursor: String, $channel: String = \"default-channel\") {\n products(first:100,channel: $channel, after: $cursor) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n slug\n }\n cursor\n }\n }\n }\n`\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes:None\n*/\n\nimport { useMemo } from \"react\";\nimport { useCart as useCommerceCart, UseCart } from \"@plasmicpkgs/commerce\";\n\nimport { SWRHook } from \"@plasmicpkgs/commerce\";\nimport { checkoutCreate, checkoutToCart, getCheckoutId } from \"../utils\";\nimport * as query from \"../utils/queries\";\nimport { GetCartHook } from \"../types/cart\";\n\nexport default useCommerceCart as UseCart<typeof handler>;\n\nexport const handler: SWRHook<GetCartHook> = {\n fetchOptions: {\n query: query.CheckoutOne,\n },\n async fetcher({ input: { cartId: checkoutId }, options, fetch }) {\n let checkout;\n\n if (checkoutId) {\n const checkoutId = getCheckoutId().checkoutToken;\n const data = await fetch({\n ...options,\n variables: { checkoutId },\n });\n\n checkout = data;\n }\n\n if (checkout?.completedAt || !checkoutId) {\n checkout = await checkoutCreate(fetch);\n }\n\n return checkoutToCart(checkout);\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.lineItems.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes:None\n*/\nimport { useCallback } from \"react\";\nimport type { MutationHook } from \"@plasmicpkgs/commerce\";\nimport { CommerceError } from \"@plasmicpkgs/commerce\";\nimport { useAddItem, UseAddItem } from \"@plasmicpkgs/commerce\";\nimport useCart from \"./use-cart\";\n\nimport * as mutation from \"../utils/mutations\";\n\nimport { getCheckoutId, checkoutToCart } from \"../utils\";\n\nimport { Mutation, MutationCheckoutLinesAddArgs } from \"../schema\";\nimport { AddItemHook } from \"../types/cart\";\n\nexport default useAddItem as UseAddItem<typeof handler>;\n\nexport const handler: MutationHook<AddItemHook> = {\n fetchOptions: { query: mutation.CheckoutLineAdd },\n async fetcher({ input: item, options, fetch }) {\n if (\n item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)\n ) {\n throw new CommerceError({\n message: \"The item quantity has to be a valid integer greater than 0\",\n });\n }\n\n const { checkoutLinesAdd } = await fetch<\n Mutation,\n MutationCheckoutLinesAddArgs\n >({\n ...options,\n variables: {\n checkoutId: getCheckoutId().checkoutId,\n lineItems: [\n {\n variantId: item.variantId,\n quantity: item.quantity ?? 1,\n },\n ],\n },\n });\n\n return checkoutToCart(checkoutLinesAdd);\n },\n useHook:\n ({ fetch }) =>\n () => {\n const { mutate } = useCart();\n\n return useCallback(\n async function addItem(input) {\n const data = await fetch({ input });\n if (data) {\n await mutate(data, false);\n } else {\n await mutate();\n }\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None\n*/\n\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport { useRemoveItem, UseRemoveItem } from \"@plasmicpkgs/commerce\";\nimport { useCallback } from \"react\";\nimport { Mutation, MutationCheckoutLineDeleteArgs } from \"../schema\";\nimport { LineItem, RemoveItemHook } from \"../types/cart\";\nimport { checkoutToCart, getCheckoutId } from \"../utils\";\nimport * as mutation from \"../utils/mutations\";\nimport useCart from \"./use-cart\";\n\nexport default useRemoveItem as UseRemoveItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: { query: mutation.CheckoutLineDelete },\n async fetcher({\n input: { itemId },\n options,\n fetch,\n }: HookFetcherContext<RemoveItemHook>) {\n const data = await fetch<Mutation, MutationCheckoutLineDeleteArgs>({\n ...options,\n variables: {\n checkoutId: getCheckoutId().checkoutId,\n lineId: itemId,\n },\n });\n return checkoutToCart(data.checkoutLineDelete);\n },\n useHook: ({ fetch }: MutationHookContext<RemoveItemHook>) => <\n T extends LineItem | undefined = undefined\n >() => {\n const { mutate } = useCart();\n\n return useCallback(\n async function removeItem(input: { id: string }) {\n const data = await fetch({ input: { itemId: input.id } });\n await mutate(data, false);\n\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: None\n*/\n\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport {\n useUpdateItem,\n UseUpdateItem,\n ValidationError,\n} from \"@plasmicpkgs/commerce\";\nimport debounce from \"debounce\";\nimport { useCallback } from \"react\";\n\nimport { Mutation, MutationCheckoutLinesUpdateArgs } from \"../schema\";\nimport type { LineItem } from \"../types/cart\";\nimport { checkoutToCart, getCheckoutId } from \"../utils\";\nimport useCart from \"./use-cart\";\nimport { handler as removeItemHandler } from \"./use-remove-item\";\n\nimport * as mutation from \"../utils/mutations\";\n\nimport type { UpdateItemHook } from \"../types/cart\";\n\nexport type UpdateItemActionInput<T = any> = T extends LineItem\n ? Partial<UpdateItemHook[\"actionInput\"]>\n : UpdateItemHook[\"actionInput\"];\n\nexport default useUpdateItem as UseUpdateItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: { query: mutation.CheckoutLineUpdate },\n async fetcher({\n input: { itemId, item },\n options,\n fetch,\n }: HookFetcherContext<UpdateItemHook>) {\n if (Number.isInteger(item.quantity)) {\n // Also allow the update hook to remove an item if the quantity is lower than 1\n if (item.quantity! < 1) {\n return removeItemHandler.fetcher({\n options: removeItemHandler.fetchOptions,\n input: { itemId },\n fetch,\n });\n }\n } else if (item.quantity) {\n throw new ValidationError({\n message: \"The item quantity has to be a valid integer\",\n });\n }\n\n const checkoutId = getCheckoutId().checkoutId;\n const { checkoutLinesUpdate } = await fetch<\n Mutation,\n MutationCheckoutLinesUpdateArgs\n >({\n ...options,\n variables: {\n checkoutId,\n lineItems: [\n {\n itemId,\n quantity: item.quantity,\n },\n ],\n },\n });\n\n return checkoutToCart(checkoutLinesUpdate);\n },\n useHook:\n ({ fetch }: MutationHookContext<UpdateItemHook>) =>\n <T extends LineItem | undefined = undefined>(\n ctx: {\n item?: T;\n wait?: number;\n } = {}\n ) => {\n const { item } = ctx;\n const { mutate } = useCart() as any;\n\n return useCallback(\n debounce(async (input: UpdateItemActionInput<T>) => {\n const itemId = input.id ?? item?.id;\n if (!itemId) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({\n input: {\n item: {\n quantity: input.quantity,\n },\n itemId,\n },\n });\n await mutate(data, false);\n return data;\n }, ctx.wait ?? 500),\n [fetch, mutate]\n );\n },\n};\n","import { SWRHook } from \"@plasmicpkgs/commerce\";\nimport { UseCategories, useCategories } from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { CollectionCountableEdge } from \"../schema\";\nimport { GetCategoriesHook } from \"../types/site\";\nimport { CollectionMany, CollectionOne, normalizeCategory } from \"../utils\";\n\nexport default useCategories as UseCategories<typeof handler>;\n\nexport const handler: SWRHook<GetCategoriesHook> = {\n fetchOptions: {\n query: CollectionMany,\n },\n async fetcher({ input, options, fetch }) {\n const { categoryId } = input;\n if (!categoryId) {\n const data = await fetch({\n query: CollectionMany,\n variables: {\n first: 250,\n },\n })\n\n return (\n data.collections?.edges?.map(({ node }: CollectionCountableEdge) =>\n normalizeCategory(node)\n ) ?? []\n );\n } else {\n const data = await fetch({\n query: CollectionOne,\n variables: { categoryId },\n });\n return !!data?.collection ? [normalizeCategory(data?.collection)] : [];\n }\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n input: [[\"categoryId\", input?.categoryId]],\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};","import { SWRHook } from \"@plasmicpkgs/commerce\";\nimport { UseBrands, useBrands } from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport {\n GetAllProductPathsQuery,\n GetAllProductPathsQueryVariables,\n} from \"../schema\";\nimport { GetBrandsHook } from \"../types/site\";\nimport { getAllProductVendors } from \"../utils\";\n\nexport default useBrands as UseBrands<typeof handler>;\n\nexport const handler: SWRHook<GetBrandsHook> = {\n fetchOptions: {\n query: getAllProductVendors,\n },\n async fetcher({ input, options, fetch }) {\n return []; // brands it's not available on saleor\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes:None\n*/\n\nimport { Product, SWRHook, useSearch, UseSearch } from \"@plasmicpkgs/commerce\";\n\nimport { ProductCountableEdge } from \"../schema\";\nimport { getSearchVariables, normalizeProduct } from \"../utils\";\n\nimport { SearchProductsHook } from \"@plasmicpkgs/commerce\";\nimport * as query from \"../utils/queries\";\n\nconst useSearchTyped: UseSearch<typeof handler> = useSearch;\nexport default useSearchTyped;\n\nexport type SearchProductsInput = {\n search?: string;\n categoryId?: string | number;\n brandId?: string | number;\n sort?: string;\n count?: number;\n};\n\nexport type SearchProductsData = {\n products: Product[];\n found: boolean;\n};\n\nexport const handler: SWRHook<SearchProductsHook> = {\n fetchOptions: {\n query: query.ProductMany,\n },\n async fetcher({ input, options, fetch }) {\n const { categoryId, brandId } = input;\n\n const data = await fetch({\n query: categoryId ? query.CollectionOne : options.query,\n method: options?.method,\n variables: getSearchVariables(input),\n });\n\n let edges;\n\n if (categoryId) {\n edges = data.collection?.products?.edges ?? [];\n // FIXME @zaiste, no `vendor` in Saleor\n // if (brandId) {\n // edges = edges.filter(\n // ({ node: { vendor } }: ProductCountableEdge) =>\n // vendor.replace(/\\s+/g, '-').toLowerCase() === brandId\n // )\n // }\n } else {\n edges = data.products?.edges ?? [];\n }\n\n return {\n products: edges.map(({ node }: ProductCountableEdge) =>\n normalizeProduct(node)\n ),\n found: !!edges.length,\n };\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n [\"search\", input.search],\n [\"categoryId\", input.categoryId],\n [\"brandId\", input.brandId],\n [\"sort\", input.sort],\n [\"count\", input.count],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","export const ProductOneById = /* GraphQL */ `\n query ProductOneById($id: ID!, $channel: String = \"default-channel\") {\n product(id: $id, channel: $channel) {\n\n slug\n name\n description\n pricing {\n priceRange {\n start {\n net {\n amount\n }\n }\n }\n }\n variants {\n id\n name\n attributes {\n attribute {\n name\n }\n values {\n name\n }\n }\n pricing {\n price {\n net {\n amount\n currency\n }\n }\n }\n }\n media {\n url\n alt\n }\n }\n }`","import { SWRHook } from \"@plasmicpkgs/commerce\";\nimport { useProduct, UseProduct } from \"@plasmicpkgs/commerce\";\n\nimport { normalizeProduct } from \"../utils\";\nimport type { GetProductHook } from \"@plasmicpkgs/commerce\";\n\nimport { ProductOneById } from \"../utils/queries/product-one-by-id\";\nimport { ProductOneBySlug } from '../utils/queries/product-one-by-slug';\n\nexport type GetProductInput = {\n id?: string;\n slug?: string\n};\n\nexport default useProduct as UseProduct<typeof handler>;\n\nexport const handler: SWRHook<GetProductHook> = {\n fetchOptions: {\n query: ProductOneById,\n },\n async fetcher({ input, options, fetch }) {\n const { id } = input;\n if (!id) {\n return null;\n }\n const data = await fetch({\n query: ProductOneById,\n variables: { id },\n });\n if (!data.product) {\n const response = await fetch({\n query: ProductOneBySlug,\n variables: { slug: id }\n })\n return response.product ? normalizeProduct(response.product) : null;\n }\n return data.product ? normalizeProduct(data.product) : null;\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [[\"id\", input.id]],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","\n/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: \n - Before: The saleor_api_url was defined at build time. \n So this file just implemented a fetcher with these parameters defined.\n - Now: The saleor_api_url is defined at runtime. \n So we have to get the fetcher using these parameters.\n*/\n\n\nimport { Fetcher } from '@plasmicpkgs/commerce'\nimport { getToken, handleFetchResponse } from './utils'\n\nexport const getFetcher:\n (saleorApiUrl: string) => Fetcher =\n (saleorApiUrl) => {\n return async ({\n url = saleorApiUrl,\n method = 'POST',\n query,\n variables,\n }) => {\n const { locale, ...vars } = variables ?? {}\n const token = getToken()\n return handleFetchResponse(\n await fetch(url, {\n method,\n body: JSON.stringify({ query, variables: vars }),\n headers: {\n Authorization: `JWT ${token}`,\n 'Content-Type': 'application/json',\n },\n })\n )\n }\n }\n\n\n\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes:\n - Removed customer and auth hooks.\n - Added saleor_api_url parameters.\n*/\n\nimport { CHECKOUT_ID_COOKIE } from './const'\nimport { handler as useCart } from './cart/use-cart'\nimport { handler as useAddItem } from './cart/use-add-item'\nimport { handler as useUpdateItem } from './cart/use-update-item'\nimport { handler as useRemoveItem } from './cart/use-remove-item'\nimport { handler as useCategories } from './site/use-categories'\nimport { handler as useBrands } from './site/use-brands'\nimport { handler as useSearch } from './product/use-search'\nimport { handler as useProduct } from './product/use-product'\nimport { Fetcher } from '@plasmicpkgs/commerce'\nimport { getFetcher } from './fetcher'\n\nexport const getSaleorProvider = (saleorApiUrl: string,) => ({\n locale: 'en-us',\n cartCookie: CHECKOUT_ID_COOKIE,\n fetcher: getFetcher(saleorApiUrl),\n cart: { useCart, useAddItem, useUpdateItem, useRemoveItem },\n products: { useSearch, useProduct },\n site: { useCategories, useBrands }\n})\n\n\n\n\n\nexport type SaleorProvider = {\n locale: string;\n cartCookie: string;\n fetcher: Fetcher;\n cart: {\n useCart: typeof useCart;\n useAddItem: typeof useAddItem;\n useUpdateItem: typeof useUpdateItem;\n useRemoveItem: typeof useRemoveItem\n };\n products: {\n useSearch: typeof useSearch\n useProduct: typeof useProduct\n };\n site: {\n useCategories: typeof useCategories\n useBrands: typeof useBrands\n }\n}","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/saleor/src\n Changes: \n - Added saleor_api_url parameter.\n*/\nimport {\n getCommerceProvider as getCoreCommerceProvider,\n useCommerce as useCoreCommerce,\n} from \"@plasmicpkgs/commerce\";\nimport { getSaleorProvider, SaleorProvider } from \"./provider\";\n\nexport type { SaleorProvider };\n\nexport const useCommerce = () => useCoreCommerce<SaleorProvider>();\nexport const getCommerceProvider = (saleorApiUrl: string) =>\n getCoreCommerceProvider(getSaleorProvider(saleorApiUrl));\n","import { GlobalContextMeta } from \"@plasmicapp/host\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport React from \"react\";\nimport { Registerable } from \"./registerable\";\nimport { getCommerceProvider } from \"./saleor\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@plasmicpkgs/commerce\";\n\ninterface CommerceProviderProps {\n children?: React.ReactNode;\n saleorApiUrl: string;\n}\n\nconst globalContextName = \"plasmic-commerce-saleor-provider\";\n\nexport const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps> = {\n name: globalContextName,\n displayName: \"Saleor Provider\",\n props: {\n saleorApiUrl: {\n type: \"string\",\n defaultValue: \"https://vercel.saleor.cloud/graphql/\",\n },\n },\n unstable__globalActions: globalActionsRegistrations as any,\n importPath: \"@plasmicpkgs/commerce-saleor\",\n importName: \"CommerceProviderComponent\",\n};\n\nexport function CommerceProviderComponent(props: CommerceProviderProps) {\n const { saleorApiUrl, children } = props;\n\n const CommerceProvider = React.useMemo(\n () => getCommerceProvider(saleorApiUrl),\n [saleorApiUrl]\n );\n\n return (\n <CommerceProvider>\n <CartActionsProvider globalContextName={globalContextName}>\n {children}\n </CartActionsProvider>\n </CommerceProvider>\n );\n}\n\nexport function registerCommerceProvider(\n loader?: Registerable,\n customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>\n) {\n const doRegisterComponent: typeof registerGlobalContext = (...args) =>\n loader\n ? loader.registerGlobalContext(...args)\n : registerGlobalContext(...args);\n doRegisterComponent(\n CommerceProviderComponent,\n customCommerceProviderMeta ?? commerceProviderMeta\n );\n}\n","import { Registerable } from \"./registerable\";\nimport {\n registerCommerceProvider,\n CommerceProviderComponent,\n} from \"./registerCommerceProvider\";\nexport * from \"./registerable\";\n\nexport * from \"./saleor\";\n\nexport function registerAll(loader?: Registerable) {\n registerCommerceProvider(loader);\n}\n\nexport { registerCommerceProvider, CommerceProviderComponent };\n"],"names":["CHECKOUT_ID_COOKIE","SALEOR_TOKEN","getSortVariables","sort","isCategory","output","field","direction","getError","errors","status","_errors","message","FetcherError","getAsyncError","_x","_getAsyncError","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","res","data","wrap","_callee2$","_context2","prev","next","json","sent","abrupt","stop","handleFetchResponse","_ref","_callee","_yield$res$json","_callee$","_context","ok","length","_x2","getSearchVariables","search","categoryId","count","sortBy","_extends","channel","filter","first","getCheckoutId","id","r","_Cookies$get","Cookies","get","split","checkoutId","checkoutToken","ProductConnection","CheckoutDetails","CheckoutCreate","fragment","CheckoutLineAdd","CheckoutLineUpdate","CheckoutLineDelete","checkoutCreate","fetch","_data$checkoutCreate","checkout","value","options","query","mutation","token","expires","sameSite","secure","set","placeholderImg","money","amount","currency","currencyCode","normalizeProductOptions","map","option","attributes","flat","reduce","acc","x","find","_ref2","displayName","attribute","name","opt","values","concat","label","__typename","variant","normalizeProductVariants","variants","sku","pricing","price","_pricing$price","net","_money","listPrice","requiresShipping","normalizeProduct","productNode","_productNode$media","media","description","slug","rest","_objectWithoutPropertiesLoose","_excluded","product","vendor","_JSON$parse","JSON","parse","blocks","text","path","replace","_pricing$priceRange","priceRange","start","images","url","normalizeCart","lines","lineItems","normalizeLineItem","customerId","email","createdAt","created","code","_checkout$totalPrice","totalPrice","taxesIncluded","lineItemsSubtotalPrice","_checkout$subtotalPri","subtotalPrice","gross","_checkout$subtotalPri2","_checkout$totalPrice2","discounts","_ref3","quantity","variantId","String","productId","_variant$product","_variant$sku","image","_variant$pricing","_variant$product2","normalizeCategory","_ref4","throwUserErrors","ValidationError","checkoutToCart","checkoutPayload","CommerceError","_checkoutPayload$erro","console","error","undefined","getToken","Const","CollectionMany","ProductOneBySlug","ProductMany","CollectionOne","CheckoutOne","getAllProductVendors","handler","fetchOptions","fetcher","input","cartId","variables","_checkout","completedAt","useHook","useData","response","swrOptions","revalidateOnFocus","useMemo","Object","create","isEmpty","_response$data$lineIt","_response$data","enumerable","item","Number","isInteger","_item$quantity","_yield$fetch","checkoutLinesAdd","_useCart","useCart","mutate","useCallback","_addItem","addItem","itemId","lineId","checkoutLineDelete","_removeItem","removeItem","_ref$input","removeItemHandler","checkoutLinesUpdate","ctx","_ctx","debounce","_input$id","_ctx$wait","wait","_data$collections$edg","_data$collections","collections","edges","node","collection","_response$data$length","brandId","method","_data$collection$prod","_data$collection","products","_data$products$edges","_data$products","found","ProductOneById","getFetcher","saleorApiUrl","_ref$url","_ref$method","locale","vars","t0","body","stringify","headers","Authorization","t1","getSaleorProvider","cartCookie","cart","useAddItem","useUpdateItem","useRemoveItem","useSearch","useProduct","site","useCategories","useBrands","useCommerce","useCoreCommerce","getCommerceProvider","getCoreCommerceProvider","globalContextName","commerceProviderMeta","props","type","defaultValue","unstable__globalActions","globalActionsRegistrations","importPath","importName","CommerceProviderComponent","children","CommerceProvider","React","CartActionsProvider","registerCommerceProvider","loader","customCommerceProviderMeta","doRegisterComponent","registerGlobalContext","registerAll"],"mappings":"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"}