cloudcommerce 0.22.4 → 0.23.1

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 (136) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/ecomplus-stores/barra-doce/.eslintrc.cjs +1 -1
  3. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  4. package/ecomplus-stores/barra-doce/functions/ssr/.eslintrc.cjs +1 -1
  5. package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
  6. package/ecomplus-stores/barra-doce/functions/ssr/src/components/AccountMenu.vue +1 -1
  7. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductCard.vue +1 -4
  8. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopSidenav.vue +1 -1
  9. package/ecomplus-stores/barra-doce/functions/ssr/src/main/Home.astro +18 -10
  10. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  11. package/ecomplus-stores/barra-doce/package.json +4 -1
  12. package/ecomplus-stores/iluminim/.ecomplus.cd.json +3 -3
  13. package/ecomplus-stores/iluminim/.eslintrc.cjs +1 -1
  14. package/ecomplus-stores/iluminim/functions/many/package.json +3 -3
  15. package/ecomplus-stores/iluminim/functions/ssr/.eslintrc.cjs +1 -1
  16. package/ecomplus-stores/iluminim/functions/ssr/package.json +6 -6
  17. package/ecomplus-stores/iluminim/functions/ssr/src/components/AccountMenu.vue +1 -1
  18. package/ecomplus-stores/iluminim/functions/ssr/src/components/ProductCard.vue +5 -5
  19. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopSidenav.vue +1 -1
  20. package/ecomplus-stores/iluminim/functions/with-apps/package.json +3 -3
  21. package/ecomplus-stores/iluminim/package.json +4 -1
  22. package/package.json +4 -4
  23. package/packages/api/package.json +1 -1
  24. package/packages/api/types/carts.d.ts +8 -0
  25. package/packages/api/types/orders.d.ts +8 -0
  26. package/packages/apps/affilate-program/package.json +1 -1
  27. package/packages/apps/correios/package.json +1 -1
  28. package/packages/apps/custom-payment/package.json +1 -1
  29. package/packages/apps/custom-shipping/package.json +1 -1
  30. package/packages/apps/datafrete/package.json +1 -1
  31. package/packages/apps/discounts/package.json +1 -1
  32. package/packages/apps/emails/package.json +1 -1
  33. package/packages/apps/fb-conversions/package.json +1 -1
  34. package/packages/apps/flash-courier/package.json +1 -1
  35. package/packages/apps/frenet/package.json +1 -1
  36. package/packages/apps/galaxpay/package.json +1 -1
  37. package/packages/apps/google-analytics/package.json +1 -1
  38. package/packages/apps/jadlog/package.json +1 -1
  39. package/packages/apps/loyalty-points/package.json +1 -1
  40. package/packages/apps/melhor-envio/package.json +1 -1
  41. package/packages/apps/mercadopago/package.json +1 -1
  42. package/packages/apps/pagarme/package.json +1 -1
  43. package/packages/apps/paghiper/package.json +1 -1
  44. package/packages/apps/pix/package.json +1 -1
  45. package/packages/apps/tiny-erp/package.json +1 -1
  46. package/packages/apps/webhooks/package.json +1 -1
  47. package/packages/cli/lib/build.js +1 -1
  48. package/packages/cli/package.json +1 -1
  49. package/packages/cli/src/build.ts +1 -1
  50. package/packages/config/package.json +1 -1
  51. package/packages/emails/package.json +1 -1
  52. package/packages/eslint/package.json +3 -3
  53. package/packages/events/package.json +1 -1
  54. package/packages/feeds/package.json +1 -1
  55. package/packages/firebase/package.json +1 -1
  56. package/packages/i18n/lib/en_us/i19minus.txt +1 -0
  57. package/packages/i18n/lib/en_us/i19plus.txt +1 -0
  58. package/packages/i18n/lib/en_us.d.ts +2 -0
  59. package/packages/i18n/lib/en_us.js +2 -0
  60. package/packages/i18n/lib/en_us.js.map +1 -1
  61. package/packages/i18n/lib/pt_br/i19minus.txt +1 -0
  62. package/packages/i18n/lib/pt_br/i19plus.txt +1 -0
  63. package/packages/i18n/lib/pt_br.d.ts +2 -0
  64. package/packages/i18n/lib/pt_br.js +2 -0
  65. package/packages/i18n/lib/pt_br.js.map +1 -1
  66. package/packages/i18n/package.json +1 -1
  67. package/packages/i18n/src/en_us.ts +2 -0
  68. package/packages/i18n/src/pt_br.ts +2 -0
  69. package/packages/modules/package.json +1 -1
  70. package/packages/passport/package.json +1 -1
  71. package/packages/ssr/cloudflare/README.md +3 -0
  72. package/packages/ssr/cloudflare/swr-worker.js +102 -0
  73. package/packages/ssr/lib/firebase/serve-storefront.js +0 -1
  74. package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
  75. package/packages/ssr/package.json +6 -4
  76. package/packages/ssr/src/cloudflare/swr-worker.ts +120 -0
  77. package/packages/ssr/src/cloudflare/tsconfig.json +8 -0
  78. package/packages/ssr/src/firebase/serve-storefront.ts +0 -1
  79. package/packages/ssr/tsconfig.json +2 -1
  80. package/packages/storefront/config/storefront.cms.js +1 -1
  81. package/packages/storefront/config/storefront.tailwind.cjs +1 -0
  82. package/packages/storefront/dist/client/_astro/Carousel.63d511ab.js +1 -0
  83. package/packages/storefront/dist/client/_astro/{HeroSlider.8a040a33.js → HeroSlider.8d2ea532.js} +1 -1
  84. package/packages/storefront/dist/client/_astro/{PitchBar.ab0c501e.js → PitchBar.c2a2ad79.js} +1 -1
  85. package/packages/storefront/dist/client/_astro/Prices.8572765c.js +1 -0
  86. package/packages/storefront/dist/client/_astro/ProductShelf.4a105932.js +1 -0
  87. package/packages/storefront/dist/client/_astro/ShopHeader.7ecb7597.js +4 -0
  88. package/packages/storefront/dist/client/_astro/{_...slug_.c13e0486.css → _...slug_.07c1fa58.css} +1 -1
  89. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.48e557ba.js +1 -0
  90. package/packages/storefront/dist/client/_astro/client.9dbf6b61.js +1 -0
  91. package/packages/storefront/dist/client/_astro/{img.abbe849f.js → img.7def76a1.js} +1 -1
  92. package/packages/storefront/dist/client/_astro/index.c0c35ead.js +1 -0
  93. package/packages/storefront/dist/client/sw.js +1 -1
  94. package/packages/storefront/dist/server/chunks/{_...1b951f6c.mjs → _...d3f15170.mjs} +3 -3
  95. package/packages/storefront/dist/server/chunks/{account@_@astro.f6aec583.mjs → account@_@astro.38a725e7.mjs} +3 -3
  96. package/packages/storefront/dist/server/chunks/{astro.b875de26.mjs → astro.6adaff02.mjs} +296 -1146
  97. package/packages/storefront/dist/server/chunks/{endpoint@_@js.5834ad4e.mjs → endpoint@_@js.a92a4584.mjs} +3 -3
  98. package/packages/storefront/dist/server/chunks/{fallback@_@astro.069ddb54.mjs → fallback@_@astro.4e98328e.mjs} +3 -3
  99. package/packages/storefront/dist/server/chunks/{index@_@astro.37e61ebe.mjs → index@_@astro.2dda826c.mjs} +3 -3
  100. package/packages/storefront/dist/server/chunks/{index@_@astro.485287a1.mjs → index@_@astro.db07fb09.mjs} +3 -3
  101. package/packages/storefront/dist/server/chunks/pages/{_...slug_.astro.95bf4c3b.mjs → _...slug_.astro.88866aae.mjs} +812 -150
  102. package/packages/storefront/dist/server/chunks/pages/{account.astro.4b8c2471.mjs → account.astro.53400a42.mjs} +1 -1
  103. package/packages/storefront/dist/server/chunks/pages/{endpoint.js.bd1232b7.mjs → endpoint.js.a11da4ad.mjs} +1 -1
  104. package/packages/storefront/dist/server/chunks/pages/{fallback.astro.b52164bc.mjs → fallback.astro.c1fd06ab.mjs} +2 -2
  105. package/packages/storefront/dist/server/chunks/pages/{index.astro.98167846.mjs → index.astro.c45cc893.mjs} +18 -344
  106. package/packages/storefront/dist/server/entry.mjs +31 -23
  107. package/packages/storefront/dist/server/renderers.mjs +2 -2
  108. package/packages/storefront/package.json +10 -10
  109. package/packages/storefront/src/helpers/sf-utils.ts +12 -0
  110. package/packages/storefront/src/lib/components/Carousel.vue +17 -8
  111. package/packages/storefront/src/lib/components/CarouselControl.vue +1 -1
  112. package/packages/storefront/src/lib/components/CheckoutLink.vue +23 -0
  113. package/packages/storefront/src/lib/components/Drawer.vue +1 -1
  114. package/packages/storefront/src/lib/components/QuantitySelector.vue +107 -0
  115. package/packages/storefront/src/lib/components/QuantitySelectorControl.vue +35 -0
  116. package/packages/storefront/src/lib/components/SocialNetworkIcon.vue +1 -1
  117. package/packages/storefront/src/lib/components/SocialNetworkLink.vue +1 -3
  118. package/packages/storefront/src/lib/composables/use-cart-item.ts +52 -0
  119. package/packages/storefront/src/lib/composables/use-sticky-header.ts +14 -2
  120. package/packages/storefront/src/lib/sf-lib.ts +7 -0
  121. package/packages/storefront/src/lib/state/customer-session.ts +2 -2
  122. package/packages/storefront/src/lib/state/modules-info.ts +1 -1
  123. package/packages/storefront/src/lib/state/shopping-cart/parse-product.ts +23 -21
  124. package/packages/storefront/src/lib/state/shopping-cart.ts +13 -4
  125. package/packages/types/package.json +1 -1
  126. package/packages/storefront/dist/client/_astro/Carousel.8af656b5.js +0 -1
  127. package/packages/storefront/dist/client/_astro/ProductShelf.6351b57b.js +0 -1
  128. package/packages/storefront/dist/client/_astro/ShopHeader.cfab20c7.js +0 -4
  129. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.4cb7dd76.js +0 -1
  130. package/packages/storefront/dist/client/_astro/api.4984c5be.js +0 -1
  131. package/packages/storefront/dist/client/_astro/client.0fb6b44e.js +0 -1
  132. package/packages/storefront/dist/client/_astro/index.7eac5494.js +0 -1
  133. package/packages/storefront/src/helpers/idle-callback.ts +0 -9
  134. package/packages/storefront/src/lib/components/_injection-keys.ts +0 -11
  135. /package/packages/storefront/src/{lib → helpers}/browser-env.ts +0 -0
  136. /package/packages/storefront/src/{lib → helpers}/server-data.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { c as createAstro, a as createComponent, r as renderTemplate } from '../astro.b875de26.mjs';
1
+ import { c as createAstro, a as createComponent, r as renderTemplate } from '../astro.6adaff02.mjs';
2
2
  import 'path-to-regexp';
3
3
  import 'cookie';
4
4
  import '@astrojs/internal-helpers/path';
@@ -1,6 +1,6 @@
1
1
  import mime from 'mime';
2
2
  import sharp$1 from 'sharp';
3
- import { B as BaseSSRService, i as isOutputFormatSupportsAlpha } from './_...slug_.astro.95bf4c3b.mjs';
3
+ import { B as BaseSSRService, i as isOutputFormatSupportsAlpha } from './_...slug_.astro.88866aae.mjs';
4
4
 
5
5
  class SharpService extends BaseSSRService {
6
6
  async transform(inputBuffer, transform) {
@@ -1,5 +1,5 @@
1
- import { c as createAstro, a as createComponent, r as renderTemplate, m as maybeRenderHead, d as addAttribute, b as renderComponent } from '../astro.b875de26.mjs';
2
- import { l as loadRouteContext, $ as $$BaseHead, a as $$PageHeader, b as $$Base } from './_...slug_.astro.95bf4c3b.mjs';
1
+ import { c as createAstro, a as createComponent, r as renderTemplate, m as maybeRenderHead, d as addAttribute, b as renderComponent } from '../astro.6adaff02.mjs';
2
+ import { l as loadRouteContext, $ as $$BaseHead, a as $$PageHeader, b as $$Base } from './_...slug_.astro.88866aae.mjs';
3
3
  import 'path-to-regexp';
4
4
  import 'cookie';
5
5
  import '@astrojs/internal-helpers/path';
@@ -1,9 +1,9 @@
1
- import { c as createAstro, a as createComponent, r as renderTemplate, b as renderComponent, m as maybeRenderHead, d as addAttribute, u as unescapeHTML, F as Fragment$1 } from '../astro.b875de26.mjs';
2
- import { c as $$Picture, p as parseShippingPhrase, _ as _export_sfc, C as Carousel, d as CarouselControl, e as availableExtraDiscount, f as installmentsOption, g as discountOption, h as loyaltyPointsPrograms, j as addProductToCart, l as loadRouteContext, $ as $$BaseHead, a as $$PageHeader, b as $$Base } from './_...slug_.astro.95bf4c3b.mjs';
1
+ import { c as createAstro, a as createComponent, r as renderTemplate, b as renderComponent, m as maybeRenderHead, d as addAttribute, u as unescapeHTML, F as Fragment$1 } from '../astro.6adaff02.mjs';
2
+ import { c as $$Picture, p as parseShippingPhrase, _ as _export_sfc, C as Carousel, d as CarouselControl, e as addProductToCart, P as Prices, l as loadRouteContext, $ as $$BaseHead, a as $$PageHeader, b as $$Base } from './_...slug_.astro.88866aae.mjs';
3
3
  import { ref, shallowReactive, computed, useSSRContext, defineComponent, mergeProps, createVNode, resolveDynamicComponent, withCtx, renderSlot, createTextVNode, toDisplayString, withDirectives, vShow, openBlock, createBlock, Fragment, renderList, resolveComponent, createCommentVNode, withModifiers, withAsyncContext } from 'vue';
4
4
  import api from '@cloudcommerce/api';
5
5
  import { inStock, price, name, img, onPromotion } from '@ecomplus/utils';
6
- import { ssrRenderAttrs, ssrRenderVNode, ssrRenderSlot, ssrInterpolate, ssrRenderComponent, ssrRenderStyle, ssrRenderList, ssrRenderClass, ssrRenderAttr } from 'vue/server-renderer';
6
+ import { ssrRenderAttrs, ssrRenderVNode, ssrRenderSlot, ssrInterpolate, ssrRenderComponent, ssrRenderStyle, ssrRenderList } from 'vue/server-renderer';
7
7
  import { useElementHover, watchOnce } from '@vueuse/core';
8
8
 
9
9
  const useProductShelf = (props) => {
@@ -259,7 +259,7 @@ const useBanner = (props) => {
259
259
  };
260
260
  };
261
261
 
262
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
262
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
263
263
  __name: "Banner",
264
264
  props: {
265
265
  img: {},
@@ -286,7 +286,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
286
286
  return __returned__;
287
287
  }
288
288
  });
289
- function _sfc_ssrRender$4(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
289
+ function _sfc_ssrRender$3(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
290
290
  _push(`<div${ssrRenderAttrs(mergeProps({
291
291
  class: ["mx-auto overflow-x-hidden", $setup.hasHeader ? "grid grid-cols-1 sm:grid-cols-2 items-center" : null]
292
292
  }, _attrs))}>`);
@@ -353,15 +353,15 @@ function _sfc_ssrRender$4(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
353
353
  }
354
354
  _push(`</div>`);
355
355
  }
356
- const _sfc_setup$4 = _sfc_main$4.setup;
357
- _sfc_main$4.setup = (props, ctx) => {
356
+ const _sfc_setup$3 = _sfc_main$3.setup;
357
+ _sfc_main$3.setup = (props, ctx) => {
358
358
  const ssrContext = useSSRContext();
359
359
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/Banner.vue");
360
- return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
360
+ return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
361
361
  };
362
- const Banner = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["ssrRender", _sfc_ssrRender$4]]);
362
+ const Banner = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["ssrRender", _sfc_ssrRender$3]]);
363
363
 
364
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
364
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
365
365
  __name: "HeroSlider",
366
366
  props: {
367
367
  autoplay: {},
@@ -374,7 +374,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
374
374
  return __returned__;
375
375
  }
376
376
  });
377
- function _sfc_ssrRender$3(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
377
+ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
378
378
  _push(`<section${ssrRenderAttrs(mergeProps({ class: "relative mx-auto" }, _attrs))}>`);
379
379
  _push(ssrRenderComponent($setup["Carousel"], {
380
380
  autoplay: $props.autoplay,
@@ -479,13 +479,13 @@ function _sfc_ssrRender$3(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
479
479
  }, _parent));
480
480
  _push(`</section>`);
481
481
  }
482
- const _sfc_setup$3 = _sfc_main$3.setup;
483
- _sfc_main$3.setup = (props, ctx) => {
482
+ const _sfc_setup$2 = _sfc_main$2.setup;
483
+ _sfc_main$2.setup = (props, ctx) => {
484
484
  const ssrContext = useSSRContext();
485
485
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/HeroSlider.vue");
486
- return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
486
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
487
487
  };
488
- const HeroSlider = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["ssrRender", _sfc_ssrRender$3]]);
488
+ const HeroSlider = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["ssrRender", _sfc_ssrRender$2]]);
489
489
 
490
490
  const $$Astro$4 = createAstro("https://ecom2-demo.web.app");
491
491
  const $$BannersGrid = createComponent(async ($$result, $$props, $$slots) => {
@@ -579,329 +579,6 @@ const useProductCard = (props) => {
579
579
  };
580
580
  };
581
581
 
582
- const getPriceWithDiscount = (price, discount) => {
583
- const { type, value } = discount;
584
- let priceWithDiscount;
585
- if (value) {
586
- if (type === "percentage") {
587
- priceWithDiscount = price * ((100 - value) / 100);
588
- } else {
589
- priceWithDiscount = price - value;
590
- }
591
- return priceWithDiscount > 0 ? priceWithDiscount : 0;
592
- }
593
- return price;
594
- };
595
- const usePrices = (props) => {
596
- const _product = computed(() => {
597
- return props.product || {
598
- price: props.price || 0,
599
- base_price: props.basePrice
600
- };
601
- });
602
- const hasVariedPrices = computed(() => {
603
- const { variations } = _product.value;
604
- if (variations) {
605
- const productPrice = price(_product.value);
606
- for (let i = 0; i < variations.length; i++) {
607
- const price$1 = price({
608
- ..._product.value,
609
- ...variations[i]
610
- });
611
- if (price$1 > productPrice) {
612
- return true;
613
- }
614
- }
615
- }
616
- return false;
617
- });
618
- const salePrice = computed(() => {
619
- const price$1 = price(_product.value);
620
- const discount = availableExtraDiscount.value;
621
- if (discount && (!discount.min_amount || price$1 > discount.min_amount)) {
622
- return getPriceWithDiscount(price$1, discount);
623
- }
624
- return price$1;
625
- });
626
- const comparePrice = computed(() => {
627
- if (onPromotion(_product.value)) {
628
- return _product.value.base_price;
629
- }
630
- const price$1 = price(_product.value);
631
- if (price$1 > salePrice.value) {
632
- return price$1;
633
- }
634
- return 0;
635
- });
636
- const installmentsObject = computed(() => {
637
- return props.installmentsOption || installmentsOption.value || { max_number: 1 };
638
- });
639
- const installmentsNumber = computed(() => {
640
- if (installmentsObject.value.max_number <= 1) {
641
- return 1;
642
- }
643
- const minInstallment = installmentsObject.value.min_installment || 5;
644
- const maxInstallmentsNumber = Math.floor(salePrice.value / minInstallment);
645
- return Math.min(maxInstallmentsNumber, installmentsObject.value.max_number);
646
- });
647
- const monthlyInterest = computed(() => {
648
- return installmentsObject.value.monthly_interest || 0;
649
- });
650
- const installmentValue = computed(() => {
651
- if (installmentsNumber.value >= 2) {
652
- if (!monthlyInterest.value) {
653
- return salePrice.value / installmentsNumber.value;
654
- }
655
- const interest = monthlyInterest.value / 100;
656
- return salePrice.value * interest / (1 - (1 + interest) ** -installmentsNumber.value);
657
- }
658
- return 0;
659
- });
660
- const discountObject = computed(() => {
661
- const discount = props.discountOption || discountOption.value;
662
- if (discount && (!discount.min_amount || discount.min_amount <= salePrice.value) && (!props.isAmountTotal || discount.apply_at === "total")) {
663
- return discount;
664
- }
665
- return {};
666
- });
667
- const discountLabel = computed(() => {
668
- const { label } = discountObject.value;
669
- if (label) {
670
- if (label.includes(" ")) {
671
- return label;
672
- }
673
- return `via ${label}`;
674
- }
675
- return "";
676
- });
677
- const priceWithDiscount = computed(() => {
678
- return getPriceWithDiscount(salePrice.value, discountObject.value);
679
- });
680
- const pointsProgramObject = computed(() => {
681
- if (props.loyaltyPointsProgram) {
682
- return props.loyaltyPointsProgram;
683
- }
684
- const pointsPrograms = loyaltyPointsPrograms.value;
685
- if (pointsPrograms) {
686
- const programIds = Object.keys(pointsPrograms);
687
- for (let i = 0; i < programIds.length; i++) {
688
- const program = pointsPrograms[programIds[i]];
689
- if (program?.earn_percentage && program.earn_percentage > 0) {
690
- return program;
691
- }
692
- }
693
- }
694
- return { ratio: 0 };
695
- });
696
- const pointsMinPrice = computed(() => {
697
- return pointsProgramObject.value.min_subtotal_to_earn || 0;
698
- });
699
- const pointsProgramName = computed(() => {
700
- return pointsProgramObject.value.name || "";
701
- });
702
- const earnPointsPercentage = computed(() => {
703
- return pointsProgramObject.value.earn_percentage || 0;
704
- });
705
- const cashbackPercentage = computed(() => {
706
- return earnPointsPercentage.value * pointsProgramObject.value.ratio;
707
- });
708
- const cashbackValue = computed(() => {
709
- return cashbackPercentage.value >= 1 ? salePrice.value * (cashbackPercentage.value / 100) : 0;
710
- });
711
- return {
712
- hasVariedPrices,
713
- salePrice,
714
- comparePrice,
715
- installmentsObject,
716
- installmentsNumber,
717
- monthlyInterest,
718
- installmentValue,
719
- discountObject,
720
- discountLabel,
721
- priceWithDiscount,
722
- pointsProgramObject,
723
- pointsMinPrice,
724
- pointsProgramName,
725
- earnPointsPercentage,
726
- cashbackPercentage,
727
- cashbackValue
728
- };
729
- };
730
-
731
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
732
- __name: "Prices",
733
- props: {
734
- isBig: { type: Boolean },
735
- isLiteral: { type: Boolean },
736
- hasCashback: { type: Boolean, default: true },
737
- hasPriceOptions: { type: Boolean, default: true },
738
- product: {},
739
- price: {},
740
- basePrice: {},
741
- isAmountTotal: { type: Boolean },
742
- installmentsOption: {},
743
- discountOption: {},
744
- loyaltyPointsProgram: {}
745
- },
746
- setup(__props, { expose: __expose }) {
747
- __expose();
748
- const props = __props;
749
- const {
750
- hasVariedPrices,
751
- salePrice,
752
- comparePrice,
753
- cashbackPercentage,
754
- cashbackValue,
755
- installmentsNumber,
756
- monthlyInterest,
757
- installmentValue,
758
- priceWithDiscount,
759
- discountLabel
760
- } = usePrices(props);
761
- const __returned__ = { props, hasVariedPrices, salePrice, comparePrice, cashbackPercentage, cashbackValue, installmentsNumber, monthlyInterest, installmentValue, priceWithDiscount, discountLabel };
762
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
763
- return __returned__;
764
- }
765
- });
766
- function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
767
- const _component_Fade = resolveComponent("Fade");
768
- _push(`<div${ssrRenderAttrs(mergeProps({
769
- class: ["text-base-600 [&>div]:[font-size:90%] [&_small]:lowercase [&_small]:[font-size:92%]", $props.isBig ? "text-lg" : null],
770
- "data-prices": ""
771
- }, _attrs))}>`);
772
- if ($setup.comparePrice) {
773
- _push(`<span class="text-base-500 mr-1 [font-size:87%]">`);
774
- if ($props.isLiteral) {
775
- _push(`<small>${ssrInterpolate(`${"De"} `)}</small>`);
776
- } else {
777
- _push(`<!---->`);
778
- }
779
- _push(`<s>${ssrInterpolate(_ctx.$money($setup.comparePrice))}</s>`);
780
- if ($props.isLiteral) {
781
- _push(`<small>${ssrInterpolate(` ${"Por"}`)}</small>`);
782
- } else {
783
- _push(`<!---->`);
784
- }
785
- _push(`</span>`);
786
- } else {
787
- _push(`<!---->`);
788
- }
789
- _push(`<strong class="${ssrRenderClass([$props.isBig ? "text-5xl block" : null, "inline-block text-base-800"])}">`);
790
- if ($setup.hasVariedPrices) {
791
- _push(`<small>${ssrInterpolate(`${"A partir de"} `)}</small>`);
792
- } else {
793
- _push(`<!---->`);
794
- }
795
- _push(` ${ssrInterpolate(_ctx.$money($setup.salePrice))}</strong>`);
796
- _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
797
- default: withCtx((_, _push2, _parent2, _scopeId) => {
798
- if (_push2) {
799
- if ($setup.cashbackValue && $props.hasCashback) {
800
- _push2(`<div class="relative z-10"${_scopeId}><span${ssrRenderAttr("data-tooltip", "Receba $1 de volta".replace("$1", _ctx.$percentage($setup.cashbackPercentage)))}${_scopeId}><i class="i-arrow-uturn-left mr-1"${_scopeId}></i><span class="font-medium"${_scopeId}>${ssrInterpolate(_ctx.$money($setup.cashbackValue))}</span><small${_scopeId}> cashback</small></span></div>`);
801
- } else {
802
- _push2(`<!---->`);
803
- }
804
- } else {
805
- return [
806
- $setup.cashbackValue && $props.hasCashback ? (openBlock(), createBlock("div", {
807
- key: 0,
808
- class: "relative z-10"
809
- }, [
810
- createVNode("span", {
811
- "data-tooltip": "Receba $1 de volta".replace("$1", _ctx.$percentage($setup.cashbackPercentage))
812
- }, [
813
- createVNode("i", { class: "i-arrow-uturn-left mr-1" }),
814
- createVNode("span", { class: "font-medium" }, toDisplayString(_ctx.$money($setup.cashbackValue)), 1),
815
- createVNode("small", null, " cashback")
816
- ], 8, ["data-tooltip"])
817
- ])) : createCommentVNode("", true)
818
- ];
819
- }
820
- }),
821
- _: 1
822
- }, _parent));
823
- _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
824
- default: withCtx((_, _push2, _parent2, _scopeId) => {
825
- if (_push2) {
826
- if ($setup.installmentValue && $props.hasPriceOptions) {
827
- _push2(`<div${_scopeId}>`);
828
- if ($props.isLiteral) {
829
- _push2(`<small${_scopeId}>${ssrInterpolate(`${"At\xE9"} `)}</small>`);
830
- } else {
831
- _push2(`<!---->`);
832
- }
833
- _push2(` ${ssrInterpolate($setup.installmentsNumber)}x `);
834
- if ($props.isLiteral) {
835
- _push2(`<small${_scopeId}>${ssrInterpolate(` ${"De"} `)}</small>`);
836
- } else {
837
- _push2(`<!---->`);
838
- }
839
- _push2(`<span${_scopeId}>${ssrInterpolate(_ctx.$money($setup.installmentValue))}</span>`);
840
- if (!$setup.monthlyInterest && $props.isLiteral) {
841
- _push2(`<small${_scopeId}>${ssrInterpolate("Sem juros")}</small>`);
842
- } else {
843
- _push2(`<!---->`);
844
- }
845
- _push2(`</div>`);
846
- } else {
847
- _push2(`<!---->`);
848
- }
849
- } else {
850
- return [
851
- $setup.installmentValue && $props.hasPriceOptions ? (openBlock(), createBlock("div", { key: 0 }, [
852
- $props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"At\xE9"} `))) : createCommentVNode("", true),
853
- createTextVNode(" " + toDisplayString($setup.installmentsNumber) + "x ", 1),
854
- $props.isLiteral ? (openBlock(), createBlock("small", { key: 1 }, toDisplayString(` ${"De"} `))) : createCommentVNode("", true),
855
- createVNode("span", null, toDisplayString(_ctx.$money($setup.installmentValue)), 1),
856
- !$setup.monthlyInterest && $props.isLiteral ? (openBlock(), createBlock("small", { key: 2 }, toDisplayString("Sem juros"))) : createCommentVNode("", true)
857
- ])) : createCommentVNode("", true)
858
- ];
859
- }
860
- }),
861
- _: 1
862
- }, _parent));
863
- _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
864
- default: withCtx((_, _push2, _parent2, _scopeId) => {
865
- if (_push2) {
866
- if ($setup.priceWithDiscount < $setup.salePrice && $props.hasPriceOptions) {
867
- _push2(`<div${_scopeId}>`);
868
- if (!$setup.discountLabel) {
869
- _push2(`<small${_scopeId}>${ssrInterpolate(`${"A partir de"} `)}</small>`);
870
- } else {
871
- _push2(`<!---->`);
872
- }
873
- _push2(`<span${_scopeId}>${ssrInterpolate(_ctx.$money($setup.priceWithDiscount))}</span>`);
874
- if ($setup.discountLabel) {
875
- _push2(`<small${_scopeId}>${ssrInterpolate(` ${$setup.discountLabel}`)}</small>`);
876
- } else {
877
- _push2(`<!---->`);
878
- }
879
- _push2(`</div>`);
880
- } else {
881
- _push2(`<!---->`);
882
- }
883
- } else {
884
- return [
885
- $setup.priceWithDiscount < $setup.salePrice && $props.hasPriceOptions ? (openBlock(), createBlock("div", { key: 0 }, [
886
- !$setup.discountLabel ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"A partir de"} `))) : createCommentVNode("", true),
887
- createVNode("span", null, toDisplayString(_ctx.$money($setup.priceWithDiscount)), 1),
888
- $setup.discountLabel ? (openBlock(), createBlock("small", { key: 1 }, toDisplayString(` ${$setup.discountLabel}`), 1)) : createCommentVNode("", true)
889
- ])) : createCommentVNode("", true)
890
- ];
891
- }
892
- }),
893
- _: 1
894
- }, _parent));
895
- _push(`</div>`);
896
- }
897
- const _sfc_setup$2 = _sfc_main$2.setup;
898
- _sfc_main$2.setup = (props, ctx) => {
899
- const ssrContext = useSSRContext();
900
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/Prices.vue");
901
- return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
902
- };
903
- const Prices = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["ssrRender", _sfc_ssrRender$2]]);
904
-
905
582
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
906
583
  __name: "ProductCard",
907
584
  props: {
@@ -921,10 +598,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
921
598
  isActive,
922
599
  discountPercentage,
923
600
  hasVariations
924
- } = useProductCard({
925
- product: props.product,
926
- productId: props.productId
927
- });
601
+ } = useProductCard(props);
928
602
  const card = ref(null);
929
603
  const isHovered = useElementHover(card);
930
604
  const wasHoveredOnce = ref(false);
@@ -1006,7 +680,7 @@ function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
1006
680
  }
1007
681
  _push2(`</div>`);
1008
682
  if ($setup.isActive && !$setup.hasVariations) {
1009
- _push2(`<button class="uno-3suct9 ui-btn-sm ui-btn-primary"${_scopeId}><i class="i-plus-20-solid mr-0.5"${_scopeId}></i> ${ssrInterpolate("Adicionar ao carrinho")}</button>`);
683
+ _push2(`<button class="uno-3suct9 ui-btn-sm ui-btn-primary"${_scopeId}><span class="inline-block h-4 w-4 leading-none text-base text-center bg-on-primary text-primary opacity-80 rounded-full mr-1"${_scopeId}> + </span> ${ssrInterpolate("Adicionar ao carrinho")}</button>`);
1010
684
  } else {
1011
685
  _push2(`<!---->`);
1012
686
  }
@@ -1066,7 +740,7 @@ function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
1066
740
  class: "uno-3suct9 ui-btn-sm ui-btn-primary",
1067
741
  onClick: withModifiers(($event) => $setup.addProductToCart($setup.product), ["prevent"])
1068
742
  }, [
1069
- createVNode("i", { class: "i-plus-20-solid mr-0.5" }),
743
+ createVNode("span", { class: "inline-block h-4 w-4 leading-none text-base text-center bg-on-primary text-primary opacity-80 rounded-full mr-1" }, " + "),
1070
744
  createTextVNode(" " + toDisplayString("Adicionar ao carrinho"))
1071
745
  ], 8, ["onClick"])) : createCommentVNode("", true)
1072
746
  ])
@@ -3,13 +3,13 @@ import { webcrypto } from 'node:crypto';
3
3
  import { ByteLengthQueuingStrategy, CountQueuingStrategy, ReadableByteStreamController, ReadableStream, ReadableStreamBYOBReader, ReadableStreamBYOBRequest, ReadableStreamDefaultController, ReadableStreamDefaultReader, TransformStream, WritableStream, WritableStreamDefaultController, WritableStreamDefaultWriter } from 'node:stream/web';
4
4
  import { File, FormData, Headers, Request, Response, fetch } from 'undici';
5
5
  import { setTimeout as setTimeout$1, clearTimeout as clearTimeout$1 } from 'node:timers';
6
- import { N as NodeApp, g as deserializeManifest } from './chunks/astro.b875de26.mjs';
6
+ import { N as NodeApp, g as deserializeManifest } from './chunks/astro.6adaff02.mjs';
7
7
  import { Readable } from 'stream';
8
8
  import https from 'https';
9
- import path from 'path';
10
- import { fileURLToPath } from 'url';
11
- import fs from 'fs';
12
- import http from 'http';
9
+ import path from 'node:path';
10
+ import { fileURLToPath } from 'node:url';
11
+ import fs from 'node:fs';
12
+ import http from 'node:http';
13
13
  import send from 'send';
14
14
  import enableDestroy from 'server-destroy';
15
15
  import { renderers } from './renderers.mjs';
@@ -18,18 +18,14 @@ import 'cookie';
18
18
  import 'kleur/colors';
19
19
  import '@astrojs/internal-helpers/path';
20
20
  import 'path-to-regexp';
21
- import 'node:fs';
22
- import 'node:http';
23
21
  import 'node:tls';
24
22
  import 'string-width';
25
23
  import 'html-escaper';
26
24
  import 'vue';
27
25
  import 'vue/server-renderer';
28
26
  import '@ecomplus/utils';
29
- import './chunks/pages/_...slug_.astro.95bf4c3b.mjs';
27
+ import './chunks/pages/_...slug_.astro.88866aae.mjs';
30
28
  import 'node:fs/promises';
31
- import 'node:path';
32
- import 'node:url';
33
29
  import 'http-cache-semantics';
34
30
  import 'node:os';
35
31
  import 'image-size';
@@ -2457,7 +2453,7 @@ const createOutgoingHttpHeaders = (webHeaders) => {
2457
2453
  const canUseSymbol = typeof Symbol === "function" && typeof Symbol.for === "function";
2458
2454
  const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;
2459
2455
  function isBuffer(value) {
2460
- return value != null && value.constructor != null && typeof value.constructor.isBuffer === "function" && value.constructor.isBuffer(value);
2456
+ return (value == null ? void 0 : value.constructor) != null && typeof value.constructor.isBuffer === "function" && value.constructor.isBuffer(value);
2461
2457
  }
2462
2458
  function isNodeResponse(value) {
2463
2459
  return !!value.body;
@@ -2615,10 +2611,22 @@ function responseIterator(response) {
2615
2611
  throw new Error("Unknown body type for responseIterator. Please pass a streamable response.");
2616
2612
  }
2617
2613
 
2618
- function nodeMiddleware_default(app, mode) {
2619
- return async function(req, res, next, locals) {
2614
+ function nodeMiddleware_default(app, _mode) {
2615
+ return async function(...args) {
2616
+ let error = null;
2617
+ let [req, res, next, locals] = args;
2618
+ if (args[0] instanceof Error) {
2619
+ [error, req, res, next, locals] = args;
2620
+ if (error) {
2621
+ if (next) {
2622
+ return next(error);
2623
+ } else {
2624
+ throw error;
2625
+ }
2626
+ }
2627
+ }
2620
2628
  try {
2621
- const route = mode === "standalone" ? app.match(req, { matchNotFound: true }) : app.match(req);
2629
+ const route = app.match(req);
2622
2630
  if (route) {
2623
2631
  try {
2624
2632
  const response = await app.render(req, route, locals);
@@ -2633,8 +2641,8 @@ function nodeMiddleware_default(app, mode) {
2633
2641
  } else if (next) {
2634
2642
  return next();
2635
2643
  } else {
2636
- res.writeHead(404);
2637
- res.end("Not found");
2644
+ const response = await app.render(req);
2645
+ await writeWebResponse(app, res, response);
2638
2646
  }
2639
2647
  } catch (err) {
2640
2648
  if (!res.headersSent) {
@@ -2825,13 +2833,13 @@ const adapter = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
2825
2833
  start
2826
2834
  }, Symbol.toStringTag, { value: 'Module' }));
2827
2835
 
2828
- const _page0 = () => import('./chunks/endpoint@_@js.5834ad4e.mjs');
2829
- const _page1 = () => import('./chunks/index@_@astro.485287a1.mjs');
2830
- const _page2 = () => import('./chunks/fallback@_@astro.069ddb54.mjs');
2831
- const _page3 = () => import('./chunks/index@_@astro.37e61ebe.mjs');
2832
- const _page4 = () => import('./chunks/account@_@astro.f6aec583.mjs');
2833
- const _page5 = () => import('./chunks/_...1b951f6c.mjs');const pageMap = new Map([["../../node_modules/.pnpm/@astrojs+image@0.17.2_astro@2.9.6_sharp@0.32.4/node_modules/@astrojs/image/dist/endpoint.js", _page0],["src/pages/index.astro", _page1],["src/pages/fallback.astro", _page2],["src/pages/app/index.astro", _page3],["src/pages/app/account.astro", _page4],["src/pages/[...slug].astro", _page5]]);
2834
- const _manifest = Object.assign(deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/@astrojs+image@0.17.2_astro@2.9.6_sharp@0.32.4/node_modules/@astrojs/image/dist/endpoint.js","pathname":"/_image","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.572313d6.js"}],"styles":[{"type":"external","src":"/_astro/_...slug_.c13e0486.css"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.572313d6.js"}],"styles":[{"type":"external","src":"/_astro/_...slug_.c13e0486.css"}],"routeData":{"route":"/fallback","type":"page","pattern":"^\\/fallback\\/?$","segments":[[{"content":"fallback","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/fallback.astro","pathname":"/fallback","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"route":"/app","type":"page","pattern":"^\\/app\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/index.astro","pathname":"/app","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"route":"/app/account","type":"page","pattern":"^\\/app\\/account\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}],[{"content":"account","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/account.astro","pathname":"/app/account","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.572313d6.js"}],"styles":[{"type":"external","src":"/_astro/_...slug_.c13e0486.css"}],"routeData":{"route":"/[...slug]","type":"page","pattern":"^(?:\\/(.*?))?\\/?$","segments":[[{"content":"...slug","dynamic":true,"spread":true}]],"params":["...slug"],"component":"src/pages/[...slug].astro","prerender":false,"_meta":{"trailingSlash":"ignore"}}}],"site":"https://ecom2-demo.web.app","base":"/","compressHTML":false,"markdown":{"drafts":false,"syntaxHighlight":"shiki","shikiConfig":{"langs":[],"theme":"github-dark","wrap":false},"remarkPlugins":[],"rehypePlugins":[],"remarkRehype":{},"gfm":true,"smartypants":true},"componentMetadata":[["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/[...slug].astro",{"propagation":"none","containsHead":true}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/fallback.astro",{"propagation":"none","containsHead":true}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/index.astro",{"propagation":"none","containsHead":true}]],"renderers":[],"clientDirectives":[["idle","(()=>{var i=t=>{let e=async()=>{await(await t())()};\"requestIdleCallback\"in window?window.requestIdleCallback(e):setTimeout(e,200)};(self.Astro||(self.Astro={})).idle=i;window.dispatchEvent(new Event(\"astro:idle\"));})();"],["load","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event(\"astro:load\"));})();"],["media","(()=>{var s=(i,t)=>{let a=async()=>{await(await i())()};if(t.value){let e=matchMedia(t.value);e.matches?a():e.addEventListener(\"change\",a,{once:!0})}};(self.Astro||(self.Astro={})).media=s;window.dispatchEvent(new Event(\"astro:media\"));})();"],["only","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event(\"astro:only\"));})();"],["visible","(()=>{var r=(i,c,n)=>{let s=async()=>{await(await i())()},t=new IntersectionObserver(e=>{for(let o of e)if(o.isIntersecting){t.disconnect(),s();break}});for(let e of n.children)t.observe(e)};(self.Astro||(self.Astro={})).visible=r;window.dispatchEvent(new Event(\"astro:visible\"));})();"]],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"_@astrojs-ssr-virtual-entry.mjs","\u0000@astro-renderers":"renderers.mjs","\u0000empty-middleware":"_empty-middleware.mjs","/src/pages/app/account.astro":"chunks/pages/account.astro.4b8c2471.mjs","/src/pages/fallback.astro":"chunks/pages/fallback.astro.b52164bc.mjs","\u0000@astro-page:../../node_modules/.pnpm/@astrojs+image@0.17.2_astro@2.9.6_sharp@0.32.4/node_modules/@astrojs/image/dist/endpoint@_@js":"chunks/endpoint@_@js.5834ad4e.mjs","\u0000@astro-page:src/pages/index@_@astro":"chunks/index@_@astro.485287a1.mjs","\u0000@astro-page:src/pages/fallback@_@astro":"chunks/fallback@_@astro.069ddb54.mjs","\u0000@astro-page:src/pages/app/index@_@astro":"chunks/index@_@astro.37e61ebe.mjs","\u0000@astro-page:src/pages/app/account@_@astro":"chunks/account@_@astro.f6aec583.mjs","\u0000@astro-page:src/pages/[...slug]@_@astro":"chunks/_...1b951f6c.mjs","~/components/PitchBar.vue":"_astro/PitchBar.ab0c501e.js","~/components/HeroSlider.vue":"_astro/HeroSlider.8a040a33.js","@astrojs/vue/client.js":"_astro/client.0fb6b44e.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/workbox-window/build/workbox-window.prod.es5.mjs":"_astro/workbox-window.prod.es5.a7b12eab.js","~/components/ProductShelf.vue":"_astro/ProductShelf.6351b57b.js","/astro/hoisted.js?q=0":"_astro/hoisted.572313d6.js","~/components/ShopHeader.vue":"_astro/ShopHeader.cfab20c7.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/scripts/firebase-app.ts":"_astro/firebase-app.1df8af9a.js","astro:scripts/before-hydration.js":""},"assets":["/_astro/_...slug_.c13e0486.css","/manifest.webmanifest","/robots.txt","/sw.js","/workbox-5e0bf4e4.js","/_astro/Carousel.8af656b5.js","/_astro/HeroSlider.8a040a33.js","/_astro/PitchBar.ab0c501e.js","/_astro/ProductShelf.6351b57b.js","/_astro/ShopHeader.cfab20c7.js","/_astro/_plugin-vue_export-helper.4cb7dd76.js","/_astro/api.4984c5be.js","/_astro/client.0fb6b44e.js","/_astro/firebase-app.1df8af9a.js","/_astro/hoisted.572313d6.js","/_astro/img.abbe849f.js","/_astro/index.7eac5494.js","/_astro/preload-helper.cf010ec4.js","/_astro/session-utm.744b0db3.js","/_astro/workbox-window.prod.es5.a7b12eab.js","/img/icon.png","/img/large-icon.png","/img/uploads/banner2.webp","/img/uploads/ecom-icon.png","/img/uploads/headphone.webp","/img/uploads/logo.png","/img/uploads/og-image.png","/img/uploads/passion.webp","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.webp"]}), {
2836
+ const _page0 = () => import('./chunks/endpoint@_@js.a92a4584.mjs');
2837
+ const _page1 = () => import('./chunks/index@_@astro.db07fb09.mjs');
2838
+ const _page2 = () => import('./chunks/fallback@_@astro.4e98328e.mjs');
2839
+ const _page3 = () => import('./chunks/index@_@astro.2dda826c.mjs');
2840
+ const _page4 = () => import('./chunks/account@_@astro.38a725e7.mjs');
2841
+ const _page5 = () => import('./chunks/_...d3f15170.mjs');const pageMap = new Map([["../../node_modules/.pnpm/@astrojs+image@0.17.3_astro@2.10.2_sharp@0.32.4/node_modules/@astrojs/image/dist/endpoint.js", _page0],["src/pages/index.astro", _page1],["src/pages/fallback.astro", _page2],["src/pages/app/index.astro", _page3],["src/pages/app/account.astro", _page4],["src/pages/[...slug].astro", _page5]]);
2842
+ const _manifest = Object.assign(deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/@astrojs+image@0.17.3_astro@2.10.2_sharp@0.32.4/node_modules/@astrojs/image/dist/endpoint.js","pathname":"/_image","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.572313d6.js"}],"styles":[{"type":"external","src":"/_astro/_...slug_.07c1fa58.css"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.572313d6.js"}],"styles":[{"type":"external","src":"/_astro/_...slug_.07c1fa58.css"}],"routeData":{"route":"/fallback","type":"page","pattern":"^\\/fallback\\/?$","segments":[[{"content":"fallback","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/fallback.astro","pathname":"/fallback","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"route":"/app","type":"page","pattern":"^\\/app\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/index.astro","pathname":"/app","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"route":"/app/account","type":"page","pattern":"^\\/app\\/account\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}],[{"content":"account","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/account.astro","pathname":"/app/account","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.572313d6.js"}],"styles":[{"type":"external","src":"/_astro/_...slug_.07c1fa58.css"}],"routeData":{"route":"/[...slug]","type":"page","pattern":"^(?:\\/(.*?))?\\/?$","segments":[[{"content":"...slug","dynamic":true,"spread":true}]],"params":["...slug"],"component":"src/pages/[...slug].astro","prerender":false,"_meta":{"trailingSlash":"ignore"}}}],"site":"https://ecom2-demo.web.app","base":"/","compressHTML":false,"markdown":{"drafts":false,"syntaxHighlight":"shiki","shikiConfig":{"langs":[],"theme":"github-dark","wrap":false},"remarkPlugins":[],"rehypePlugins":[],"remarkRehype":{},"gfm":true,"smartypants":true},"componentMetadata":[["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/[...slug].astro",{"propagation":"none","containsHead":true}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/fallback.astro",{"propagation":"none","containsHead":true}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/index.astro",{"propagation":"none","containsHead":true}]],"renderers":[],"clientDirectives":[["idle","(()=>{var i=t=>{let e=async()=>{await(await t())()};\"requestIdleCallback\"in window?window.requestIdleCallback(e):setTimeout(e,200)};(self.Astro||(self.Astro={})).idle=i;window.dispatchEvent(new Event(\"astro:idle\"));})();"],["load","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event(\"astro:load\"));})();"],["media","(()=>{var s=(i,t)=>{let a=async()=>{await(await i())()};if(t.value){let e=matchMedia(t.value);e.matches?a():e.addEventListener(\"change\",a,{once:!0})}};(self.Astro||(self.Astro={})).media=s;window.dispatchEvent(new Event(\"astro:media\"));})();"],["only","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event(\"astro:only\"));})();"],["visible","(()=>{var r=(i,c,n)=>{let s=async()=>{await(await i())()},t=new IntersectionObserver(e=>{for(let o of e)if(o.isIntersecting){t.disconnect(),s();break}});for(let e of n.children)t.observe(e)};(self.Astro||(self.Astro={})).visible=r;window.dispatchEvent(new Event(\"astro:visible\"));})();"]],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"_@astrojs-ssr-virtual-entry.mjs","\u0000@astro-renderers":"renderers.mjs","\u0000empty-middleware":"_empty-middleware.mjs","/src/pages/app/account.astro":"chunks/pages/account.astro.53400a42.mjs","/src/pages/fallback.astro":"chunks/pages/fallback.astro.c1fd06ab.mjs","\u0000@astro-page:../../node_modules/.pnpm/@astrojs+image@0.17.3_astro@2.10.2_sharp@0.32.4/node_modules/@astrojs/image/dist/endpoint@_@js":"chunks/endpoint@_@js.a92a4584.mjs","\u0000@astro-page:src/pages/index@_@astro":"chunks/index@_@astro.db07fb09.mjs","\u0000@astro-page:src/pages/fallback@_@astro":"chunks/fallback@_@astro.4e98328e.mjs","\u0000@astro-page:src/pages/app/index@_@astro":"chunks/index@_@astro.2dda826c.mjs","\u0000@astro-page:src/pages/app/account@_@astro":"chunks/account@_@astro.38a725e7.mjs","\u0000@astro-page:src/pages/[...slug]@_@astro":"chunks/_...d3f15170.mjs","~/components/PitchBar.vue":"_astro/PitchBar.c2a2ad79.js","@astrojs/vue/client.js":"_astro/client.9dbf6b61.js","~/components/HeroSlider.vue":"_astro/HeroSlider.8d2ea532.js","/astro/hoisted.js?q=0":"_astro/hoisted.572313d6.js","~/components/ProductShelf.vue":"_astro/ProductShelf.4a105932.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/workbox-window/build/workbox-window.prod.es5.mjs":"_astro/workbox-window.prod.es5.a7b12eab.js","~/components/ShopHeader.vue":"_astro/ShopHeader.7ecb7597.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/scripts/firebase-app.ts":"_astro/firebase-app.1df8af9a.js","astro:scripts/before-hydration.js":""},"assets":["/_astro/_...slug_.07c1fa58.css","/manifest.webmanifest","/robots.txt","/sw.js","/workbox-5e0bf4e4.js","/_astro/Carousel.63d511ab.js","/_astro/HeroSlider.8d2ea532.js","/_astro/PitchBar.c2a2ad79.js","/_astro/Prices.8572765c.js","/_astro/ProductShelf.4a105932.js","/_astro/ShopHeader.7ecb7597.js","/_astro/_plugin-vue_export-helper.48e557ba.js","/_astro/client.9dbf6b61.js","/_astro/firebase-app.1df8af9a.js","/_astro/hoisted.572313d6.js","/_astro/img.7def76a1.js","/_astro/index.c0c35ead.js","/_astro/preload-helper.cf010ec4.js","/_astro/session-utm.744b0db3.js","/_astro/workbox-window.prod.es5.a7b12eab.js","/img/icon.png","/img/large-icon.png","/img/uploads/banner2.webp","/img/uploads/ecom-icon.png","/img/uploads/headphone.webp","/img/uploads/logo.png","/img/uploads/og-image.png","/img/uploads/passion.webp","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.webp"]}), {
2835
2843
  pageMap,
2836
2844
  renderers,
2837
2845
  });
@@ -1,8 +1,8 @@
1
- import { h as server_default } from './chunks/astro.b875de26.mjs';
1
+ import { h as server_default } from './chunks/astro.6adaff02.mjs';
2
2
  import { useSSRContext, defineComponent, computed, mergeProps, h, createSSRApp } from 'vue';
3
3
  import { ssrRenderSlotInner, ssrRenderAttrs, ssrRenderSlot, renderToString } from 'vue/server-renderer';
4
4
  import { img, imgSizes, i18n, formatMoney } from '@ecomplus/utils';
5
- import { _ as _export_sfc } from './chunks/pages/_...slug_.astro.95bf4c3b.mjs';
5
+ import { _ as _export_sfc } from './chunks/pages/_...slug_.astro.88866aae.mjs';
6
6
  import 'path-to-regexp';
7
7
  import 'cookie';
8
8
  import '@astrojs/internal-helpers/path';