cloudcommerce 0.6.11 → 0.6.13

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 (63) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/ecomplus-stores/monocard/functions/core/package.json +1 -1
  3. package/ecomplus-stores/monocard/functions/events/package.json +2 -2
  4. package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
  5. package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
  6. package/ecomplus-stores/monocard/functions/ssr/package.json +6 -6
  7. package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/devices.jpg +0 -0
  8. package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/edit-suit.jpg +0 -0
  9. package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeaderMenu.vue +1 -1
  10. package/ecomplus-stores/monocard/functions/ssr/src/components/UsageSteps.astro +21 -0
  11. package/ecomplus-stores/monocard/functions/ssr/src/components/UsageSteps.vue +155 -0
  12. package/ecomplus-stores/monocard/functions/ssr/src/layouts/Pages.astro +3 -3
  13. package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +19 -3
  14. package/ecomplus-stores/monocard/package.json +1 -1
  15. package/package.json +1 -1
  16. package/packages/api/package.json +1 -1
  17. package/packages/apps/correios/package.json +1 -1
  18. package/packages/apps/custom-payment/package.json +1 -1
  19. package/packages/apps/custom-shipping/package.json +1 -1
  20. package/packages/apps/datafrete/package.json +1 -1
  21. package/packages/apps/discounts/package.json +1 -1
  22. package/packages/apps/emails/package.json +1 -1
  23. package/packages/apps/fb-conversions/package.json +1 -1
  24. package/packages/apps/frenet/package.json +1 -1
  25. package/packages/apps/galaxpay/package.json +1 -1
  26. package/packages/apps/google-analytics/package.json +1 -1
  27. package/packages/apps/infinitepay/package.json +1 -1
  28. package/packages/apps/jadlog/package.json +1 -1
  29. package/packages/apps/loyalty-points/package.json +1 -1
  30. package/packages/apps/melhor-envio/package.json +1 -1
  31. package/packages/apps/mercadopago/package.json +1 -1
  32. package/packages/apps/pagarme/package.json +1 -1
  33. package/packages/apps/paghiper/package.json +1 -1
  34. package/packages/apps/pix/package.json +1 -1
  35. package/packages/apps/tiny-erp/package.json +1 -1
  36. package/packages/apps/webhooks/package.json +1 -1
  37. package/packages/cli/package.json +1 -1
  38. package/packages/config/package.json +1 -1
  39. package/packages/emails/package.json +1 -1
  40. package/packages/events/package.json +1 -1
  41. package/packages/firebase/package.json +1 -1
  42. package/packages/i18n/package.json +1 -1
  43. package/packages/modules/package.json +1 -1
  44. package/packages/passport/package.json +1 -1
  45. package/packages/ssr/package.json +1 -2
  46. package/packages/storefront/astro.config.mjs +2 -4
  47. package/packages/storefront/dist/client/sw.js +1 -1
  48. package/packages/storefront/dist/server/chunks/avif/avif_node_dec.wasm +0 -0
  49. package/packages/storefront/dist/server/chunks/avif/avif_node_enc.wasm +0 -0
  50. package/packages/storefront/dist/server/chunks/image-pool.78b6d784.mjs +10645 -0
  51. package/packages/storefront/dist/server/chunks/mozjpeg/mozjpeg_node_dec.wasm +0 -0
  52. package/packages/storefront/dist/server/chunks/mozjpeg/mozjpeg_node_enc.wasm +0 -0
  53. package/packages/storefront/dist/server/chunks/pages/{all.726ca7f4.mjs → all.f49a350f.mjs} +172 -58
  54. package/packages/storefront/dist/server/chunks/png/squoosh_oxipng_bg.wasm +0 -0
  55. package/packages/storefront/dist/server/chunks/png/squoosh_png_bg.wasm +0 -0
  56. package/packages/storefront/dist/server/chunks/resize/squoosh_resize_bg.wasm +0 -0
  57. package/packages/storefront/dist/server/chunks/rotate/rotate.wasm +0 -0
  58. package/packages/storefront/dist/server/chunks/webp/webp_node_dec.wasm +0 -0
  59. package/packages/storefront/dist/server/chunks/webp/webp_node_enc.wasm +0 -0
  60. package/packages/storefront/dist/server/entry.mjs +5 -6
  61. package/packages/storefront/package.json +1 -2
  62. package/packages/types/package.json +1 -1
  63. package/ecomplus-stores/monocard/functions/ssr/src/components/MotionFade.vue +0 -17
@@ -1,12 +1,11 @@
1
1
  import mime from 'mime';
2
- import sharp$1 from 'sharp';
3
- import 'kleur/colors';
4
- import 'node:fs/promises';
2
+ import { dim, bold, red, yellow, cyan, green } from 'kleur/colors';
3
+ import sizeOf from 'image-size';
4
+ import fs from 'node:fs/promises';
5
+ import { fileURLToPath } from 'node:url';
5
6
  import { resolve, join } from 'node:path';
6
- import 'node:url';
7
7
  import 'http-cache-semantics';
8
8
  import 'node:os';
9
- import sizeOf from 'image-size';
10
9
  import 'magic-string';
11
10
  import 'node:stream';
12
11
  import { c as createAstro, a as createComponent, r as renderTemplate, b as addAttribute, d as renderComponent, u as unescapeHTML, F as Fragment, m as maybeRenderHead, e as renderSlot, f as renderHead, s as spreadAttributes } from '../astro.2e59789d.mjs';
@@ -15,7 +14,7 @@ import { reactive, computed, defineComponent, inject, useSSRContext, mergeProps,
15
14
  import { img, price, formatMoney, nickname, onPromotion } from '@ecomplus/utils';
16
15
  import { ssrRenderAttrs, ssrRenderSlot, ssrRenderClass, ssrRenderVNode, ssrRenderComponent, ssrRenderStyle, ssrRenderList, ssrIncludeBooleanAttr, ssrRenderAttr, ssrRenderTeleport, ssrInterpolate } from 'vue/server-renderer';
17
16
  /* empty css */import { EventEmitter } from 'node:events';
18
- import fs, { readFileSync } from 'node:fs';
17
+ import fs$1, { readFileSync } from 'node:fs';
19
18
  import config from '@cloudcommerce/config';
20
19
  import { resolve as resolve$1 } from 'path';
21
20
  /* empty css */import { useScroll, useElementHover, useDebounceFn, useTimeout, promiseTimeout } from '@vueuse/core';
@@ -29,12 +28,85 @@ const _export_sfc = (sfc, props) => {
29
28
  return target;
30
29
  };
31
30
 
31
+ const PREFIX = "@astrojs/image";
32
+ const dateTimeFormat = new Intl.DateTimeFormat([], {
33
+ hour: "2-digit",
34
+ minute: "2-digit",
35
+ second: "2-digit"
36
+ });
37
+ const levels = {
38
+ debug: 20,
39
+ info: 30,
40
+ warn: 40,
41
+ error: 50,
42
+ silent: 90
43
+ };
44
+ function getPrefix(level, timestamp) {
45
+ let prefix = "";
46
+ if (timestamp) {
47
+ prefix += dim(dateTimeFormat.format(new Date()) + " ");
48
+ }
49
+ switch (level) {
50
+ case "debug":
51
+ prefix += bold(green(`[${PREFIX}] `));
52
+ break;
53
+ case "info":
54
+ prefix += bold(cyan(`[${PREFIX}] `));
55
+ break;
56
+ case "warn":
57
+ prefix += bold(yellow(`[${PREFIX}] `));
58
+ break;
59
+ case "error":
60
+ prefix += bold(red(`[${PREFIX}] `));
61
+ break;
62
+ }
63
+ return prefix;
64
+ }
65
+ const log = (_level, dest) => ({ message, level, prefix = true, timestamp = true }) => {
66
+ if (levels[_level] >= levels[level]) {
67
+ dest(`${prefix ? getPrefix(level, timestamp) : ""}${message}`);
68
+ }
69
+ };
70
+ const error = log("error", console.error);
71
+
72
+ async function metadata(src, data) {
73
+ const file = data || await fs.readFile(src);
74
+ const { width, height, type, orientation } = await sizeOf(file);
75
+ const isPortrait = (orientation || 0) >= 5;
76
+ if (!width || !height || !type) {
77
+ return void 0;
78
+ }
79
+ return {
80
+ src: fileURLToPath(src),
81
+ width: isPortrait ? height : width,
82
+ height: isPortrait ? width : height,
83
+ format: type,
84
+ orientation
85
+ };
86
+ }
87
+
88
+ function isRemoteImage$1(src) {
89
+ return /^(https?:)?\/\//.test(src);
90
+ }
91
+ function removeQueryString(src) {
92
+ const index = src.lastIndexOf("?");
93
+ return index > 0 ? src.substring(0, index) : src;
94
+ }
95
+ function extname(src) {
96
+ const base = basename(src);
97
+ const index = base.lastIndexOf(".");
98
+ if (index <= 0) {
99
+ return "";
100
+ }
101
+ return base.substring(index);
102
+ }
103
+ function basename(src) {
104
+ return removeQueryString(src.replace(/^.*[\\\/]/, ""));
105
+ }
106
+
32
107
  function isOutputFormat(value) {
33
108
  return ["avif", "jpeg", "jpg", "png", "webp", "svg"].includes(value);
34
109
  }
35
- function isOutputFormatSupportsAlpha(value) {
36
- return ["avif", "png", "webp"].includes(value);
37
- }
38
110
  function isAspectRatioString(value) {
39
111
  return /^\d*:\d*$/.test(value);
40
112
  }
@@ -131,7 +203,60 @@ class BaseSSRService {
131
203
  }
132
204
  }
133
205
 
134
- class SharpService extends BaseSSRService {
206
+ const imagePoolModulePromise = import('../image-pool.78b6d784.mjs');
207
+ class SquooshService extends BaseSSRService {
208
+ async processAvif(image, transform) {
209
+ const encodeOptions = transform.quality ? { avif: { quality: transform.quality } } : { avif: {} };
210
+ await image.encode(encodeOptions);
211
+ const data = await image.encodedWith.avif;
212
+ return {
213
+ data: data.binary,
214
+ format: "avif"
215
+ };
216
+ }
217
+ async processJpeg(image, transform) {
218
+ const encodeOptions = transform.quality ? { mozjpeg: { quality: transform.quality } } : { mozjpeg: {} };
219
+ await image.encode(encodeOptions);
220
+ const data = await image.encodedWith.mozjpeg;
221
+ return {
222
+ data: data.binary,
223
+ format: "jpeg"
224
+ };
225
+ }
226
+ async processPng(image, transform) {
227
+ await image.encode({ oxipng: {} });
228
+ const data = await image.encodedWith.oxipng;
229
+ return {
230
+ data: data.binary,
231
+ format: "png"
232
+ };
233
+ }
234
+ async processWebp(image, transform) {
235
+ const encodeOptions = transform.quality ? { webp: { quality: transform.quality } } : { webp: {} };
236
+ await image.encode(encodeOptions);
237
+ const data = await image.encodedWith.webp;
238
+ return {
239
+ data: data.binary,
240
+ format: "webp"
241
+ };
242
+ }
243
+ async autorotate(transform, inputBuffer) {
244
+ try {
245
+ const meta = await metadata(transform.src, inputBuffer);
246
+ switch (meta == null ? void 0 : meta.orientation) {
247
+ case 3:
248
+ case 4:
249
+ return { type: "rotate", numRotations: 2 };
250
+ case 5:
251
+ case 6:
252
+ return { type: "rotate", numRotations: 1 };
253
+ case 7:
254
+ case 8:
255
+ return { type: "rotate", numRotations: 3 };
256
+ }
257
+ } catch {
258
+ }
259
+ }
135
260
  async transform(inputBuffer, transform) {
136
261
  if (transform.format === "svg") {
137
262
  return {
@@ -139,38 +264,46 @@ class SharpService extends BaseSSRService {
139
264
  format: transform.format
140
265
  };
141
266
  }
142
- const sharpImage = sharp$1(inputBuffer, { failOnError: false, pages: -1 });
143
- sharpImage.rotate();
267
+ const operations = [];
268
+ if (!isRemoteImage$1(transform.src)) {
269
+ const autorotate = await this.autorotate(transform, inputBuffer);
270
+ if (autorotate) {
271
+ operations.push(autorotate);
272
+ }
273
+ } else if (transform.src.startsWith("//")) {
274
+ transform.src = `https:${transform.src}`;
275
+ }
144
276
  if (transform.width || transform.height) {
145
277
  const width = transform.width && Math.round(transform.width);
146
278
  const height = transform.height && Math.round(transform.height);
147
- sharpImage.resize({
279
+ operations.push({
280
+ type: "resize",
148
281
  width,
149
- height,
150
- fit: transform.fit,
151
- position: transform.position,
152
- background: transform.background
282
+ height
153
283
  });
154
284
  }
155
- if (transform.format) {
156
- sharpImage.toFormat(transform.format, { quality: transform.quality });
157
- if (transform.background && !isOutputFormatSupportsAlpha(transform.format)) {
158
- sharpImage.flatten({ background: transform.background });
159
- }
285
+ if (!transform.format) {
286
+ error({
287
+ level: "info",
288
+ prefix: false,
289
+ message: red(`Unknown image output: "${transform.format}" used for ${transform.src}`)
290
+ });
291
+ throw new Error(`Unknown image output: "${transform.format}" used for ${transform.src}`);
160
292
  }
161
- const { data, info } = await sharpImage.toBuffer({ resolveWithObject: true });
293
+ const { processBuffer } = await imagePoolModulePromise;
294
+ const data = await processBuffer(inputBuffer, operations, transform.format, transform.quality);
162
295
  return {
163
- data,
164
- format: info.format
296
+ data: Buffer.from(data),
297
+ format: transform.format
165
298
  };
166
299
  }
167
300
  }
168
- const service = new SharpService();
169
- var sharp_default = service;
301
+ const service = new SquooshService();
302
+ var squoosh_default = service;
170
303
 
171
- const sharp = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
304
+ const squoosh = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
172
305
  __proto__: null,
173
- default: sharp_default
306
+ default: squoosh_default
174
307
  }, Symbol.toStringTag, { value: 'Module' }));
175
308
 
176
309
  const fnv1a52 = (str) => {
@@ -198,7 +331,7 @@ const etag = (payload, weak = false) => {
198
331
  return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '"';
199
332
  };
200
333
 
201
- function isRemoteImage$1(src) {
334
+ function isRemoteImage(src) {
202
335
  return /^(https?:)?\/\//.test(src);
203
336
  }
204
337
 
@@ -217,14 +350,14 @@ async function loadRemoteImage(src) {
217
350
  const get = async ({ request }) => {
218
351
  try {
219
352
  const url = new URL(request.url);
220
- const transform = sharp_default.parseTransform(url.searchParams);
353
+ const transform = squoosh_default.parseTransform(url.searchParams);
221
354
  let inputBuffer = void 0;
222
- const sourceUrl = isRemoteImage$1(transform.src) ? new URL(transform.src) : new URL(transform.src, url.origin);
355
+ const sourceUrl = isRemoteImage(transform.src) ? new URL(transform.src) : new URL(transform.src, url.origin);
223
356
  inputBuffer = await loadRemoteImage(sourceUrl);
224
357
  if (!inputBuffer) {
225
358
  return new Response("Not Found", { status: 404 });
226
359
  }
227
- const { data, format } = await sharp_default.transform(inputBuffer, transform);
360
+ const { data, format } = await squoosh_default.transform(inputBuffer, transform);
228
361
  return new Response(data, {
229
362
  status: 200,
230
363
  headers: {
@@ -263,15 +396,15 @@ const getCMS = () => {
263
396
  if (filename.endsWith('/')) {
264
397
  const dirColl = resolve(dirContent, filename);
265
398
  return new Promise((resolve) => {
266
- const slugs = fs.existsSync(dirColl)
267
- ? fs.readdirSync(dirColl).map((file) => file.replace('.json', ''))
399
+ const slugs = fs$1.existsSync(dirColl)
400
+ ? fs$1.readdirSync(dirColl).map((file) => file.replace('.json', ''))
268
401
  : [];
269
402
  resolve(slugs);
270
403
  });
271
404
  }
272
405
  const filepath = resolve(dirContent, `${filename}.json`);
273
- const content = fs.existsSync(filepath)
274
- ? JSON.parse(fs.readFileSync(filepath, 'utf8'))
406
+ const content = fs$1.existsSync(filepath)
407
+ ? JSON.parse(fs$1.readFileSync(filepath, 'utf8'))
275
408
  : null;
276
409
  return filename === 'settings'
277
410
  ? content
@@ -472,25 +605,6 @@ const loadPageContext = async (Astro, {
472
605
 
473
606
  const pwaInfo = {"pwaInDevEnvironment":false,"webManifest":{"href":"/manifest.webmanifest","useCredentials":false,"linkTag":"<link rel=\"manifest\" href=\"/manifest.webmanifest\">"}};
474
607
 
475
- function isRemoteImage(src) {
476
- return /^(https?:)?\/\//.test(src);
477
- }
478
- function removeQueryString(src) {
479
- const index = src.lastIndexOf("?");
480
- return index > 0 ? src.substring(0, index) : src;
481
- }
482
- function extname(src) {
483
- const base = basename(src);
484
- const index = base.lastIndexOf(".");
485
- if (index <= 0) {
486
- return "";
487
- }
488
- return base.substring(index);
489
- }
490
- function basename(src) {
491
- return removeQueryString(src.replace(/^.*[\\\/]/, ""));
492
- }
493
-
494
608
  function resolveSize(transform) {
495
609
  if (transform.width && transform.height) {
496
610
  return transform;
@@ -558,7 +672,7 @@ async function getImage$1(transform) {
558
672
  }
559
673
  let loader = (_a = globalThis.astroImage) == null ? void 0 : _a.loader;
560
674
  if (!loader) {
561
- const { default: mod } = await Promise.resolve().then(() => sharp).catch(() => {
675
+ const { default: mod } = await Promise.resolve().then(() => squoosh).catch(() => {
562
676
  throw new Error(
563
677
  "[@astrojs/image] Builtin image loader not found. (Did you remember to add the integration to your Astro config?)"
564
678
  );
@@ -570,7 +684,7 @@ async function getImage$1(transform) {
570
684
  const resolved = await resolveTransform(transform);
571
685
  const attributes = await loader.getImageAttributes(resolved);
572
686
  const isDev = (_b = (Object.assign({"BASE_URL":"/","MODE":"production","DEV":false,"PROD":true,"SSR":true,"SITE":"\"https://ecom2-002.web.app\""},{SSR:true,}))) == null ? void 0 : _b.DEV;
573
- const isLocalImage = !isRemoteImage(resolved.src);
687
+ const isLocalImage = !isRemoteImage$1(resolved.src);
574
688
  const _loader = isDev && isLocalImage ? globalThis.astroImage.defaultLoader : loader;
575
689
  if (!_loader) {
576
690
  throw new Error("@astrojs/image: loader not found!");
@@ -14,7 +14,7 @@ import enableDestroy from 'server-destroy';
14
14
  import { defineComponent, computed, useSSRContext, mergeProps, h as h$2, createSSRApp } from 'vue';
15
15
  import { ssrRenderSlotInner, ssrRenderAttrs, ssrRenderSlot, renderToString } from 'vue/server-renderer';
16
16
  import { img, imgSizes, i18n, formatMoney } from '@ecomplus/utils';
17
- /* empty css */import { _ as _export_sfc, a as _page0, b as _page1, c as _page2, d as _page3, e as _page4, f as _page5 } from './chunks/pages/all.726ca7f4.mjs';
17
+ /* empty css */import { _ as _export_sfc, a as _page0, b as _page1, c as _page2, d as _page3, e as _page4, f as _page5 } from './chunks/pages/all.f49a350f.mjs';
18
18
  import 'path-to-regexp';
19
19
  import 'tls';
20
20
  import 'mime';
@@ -23,13 +23,12 @@ import 'kleur/colors';
23
23
  import 'string-width';
24
24
  import 'slash';
25
25
  import 'html-escaper';
26
- import 'sharp';
26
+ import 'image-size';
27
27
  import 'node:fs/promises';
28
- import 'node:path';
29
28
  import 'node:url';
29
+ import 'node:path';
30
30
  import 'http-cache-semantics';
31
31
  import 'node:os';
32
- import 'image-size';
33
32
  import 'magic-string';
34
33
  import 'node:stream';
35
34
  import '@cloudcommerce/api';
@@ -3406,10 +3405,10 @@ const _renderer1 = {
3406
3405
  renderToStaticMarkup,
3407
3406
  };
3408
3407
 
3409
- const pageMap = new Map([["../../node_modules/.pnpm/@astrojs+image@0.15.1_astro@2.0.16+sharp@0.31.3/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],]);
3408
+ const pageMap = new Map([["../../node_modules/.pnpm/@astrojs+image@0.15.1_astro@2.0.16/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],]);
3410
3409
  const renderers = [Object.assign({"name":"astro:jsx","serverEntrypoint":"astro/jsx/server.js","jsxImportSource":"astro"}, { ssr: server_default }),Object.assign({"name":"@astrojs/vue","clientEntrypoint":"@astrojs/vue/client.js","serverEntrypoint":"@astrojs/vue/server.js"}, { ssr: _renderer1 }),];
3411
3410
 
3412
- const _manifest = Object.assign(deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/@astrojs+image@0.15.1_astro@2.0.16+sharp@0.31.3/node_modules/@astrojs/image/dist/endpoint.js","pathname":"/_image","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.0607a6ef.css","_astro/index.0c833781.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.0607a6ef.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"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":[],"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":[],"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":["_astro/_...slug_.0607a6ef.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"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-002.web.app","base":"/","markdown":{"drafts":false,"syntaxHighlight":"shiki","shikiConfig":{"langs":[],"theme":"github-dark","wrap":false},"remarkPlugins":[],"rehypePlugins":[],"remarkRehype":{},"gfm":true,"smartypants":true,"contentDir":"file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/content/"},"pageMap":null,"propagation":[],"renderers":[],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"_@astrojs-ssr-virtual-entry.mjs","@@sf/components/ProductCard.vue":"_astro/ProductCard.7e891c08.js","~/components/Prices.vue":"_astro/Prices.55399c72.js","@astrojs/vue/client.js":"_astro/client.0de2f274.js","~/components/PitchBar.vue":"_astro/PitchBar.db7cd775.js","/astro/hoisted.js?q=0":"_astro/hoisted.721ad75d.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/workbox-window/build/workbox-window.prod.es5.mjs":"_astro/workbox-window.prod.es5.295a6886.js","~/components/ShopHeader.vue":"_astro/ShopHeader.301e109b.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/scripts/firebase-app.ts":"_astro/firebase-app.7ce2ebb1.js","astro:scripts/before-hydration.js":""},"assets":["/_astro/index.0c833781.css","/_astro/server.1bc2fa51.css","/_astro/_...slug_.0607a6ef.css","/manifest.webmanifest","/robots.txt","/sw.js","/workbox-e0d788d4.js","/_astro/PitchBar.db7cd775.js","/_astro/Prices.55399c72.js","/_astro/ProductCard.7e891c08.js","/_astro/ShopHeader.301e109b.js","/_astro/_plugin-vue_export-helper.77ed7c18.js","/_astro/client.0de2f274.js","/_astro/firebase-app.7ce2ebb1.js","/_astro/format-money.ab6b71eb.js","/_astro/hoisted.721ad75d.js","/_astro/idle-callback.889bf0ea.js","/_astro/index.16f33784.js","/_astro/modules-info.06ac0727.js","/_astro/preload-helper.101896b7.js","/_astro/runtime-dom.esm-bundler.d2f39f33.js","/_astro/session-utm.72684b84.js","/_astro/workbox-window.prod.es5.295a6886.js","/admin/config.json","/assets/cms-preview.css","/assets/cms.css","/assets/cvv.png","/assets/img-placeholder.png","/assets/payments.png","/assets/ssl-safe.png","/img/icon.png","/img/large-icon.png","/img/uploads/banner1.png","/img/uploads/banner2.png","/img/uploads/banner2.webp","/img/uploads/favicon.png","/img/uploads/headless.png","/img/uploads/headphone.png","/img/uploads/headphone.webp","/img/uploads/icon.png","/img/uploads/large-icon.png","/img/uploads/logo.png","/img/uploads/logo.webp","/img/uploads/og-image.png","/img/uploads/passion.png","/img/uploads/passion.webp","/img/uploads/pwa-reliable.png","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.png","/img/uploads/rect89.webp","/img/uploads/ssl-safe.png"]}), {
3411
+ const _manifest = Object.assign(deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/@astrojs+image@0.15.1_astro@2.0.16/node_modules/@astrojs/image/dist/endpoint.js","pathname":"/_image","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.0607a6ef.css","_astro/index.0c833781.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","prerender":false,"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.0607a6ef.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"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":[],"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":[],"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":["_astro/_...slug_.0607a6ef.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"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-002.web.app","base":"/","markdown":{"drafts":false,"syntaxHighlight":"shiki","shikiConfig":{"langs":[],"theme":"github-dark","wrap":false},"remarkPlugins":[],"rehypePlugins":[],"remarkRehype":{},"gfm":true,"smartypants":true,"contentDir":"file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/content/"},"pageMap":null,"propagation":[],"renderers":[],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"_@astrojs-ssr-virtual-entry.mjs","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/node_modules/@astrojs/image/dist/vendor/squoosh/image-pool.js":"chunks/image-pool.78b6d784.mjs","@@sf/components/ProductCard.vue":"_astro/ProductCard.7e891c08.js","~/components/Prices.vue":"_astro/Prices.55399c72.js","~/components/PitchBar.vue":"_astro/PitchBar.db7cd775.js","@astrojs/vue/client.js":"_astro/client.0de2f274.js","/astro/hoisted.js?q=0":"_astro/hoisted.721ad75d.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/workbox-window/build/workbox-window.prod.es5.mjs":"_astro/workbox-window.prod.es5.295a6886.js","~/components/ShopHeader.vue":"_astro/ShopHeader.301e109b.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/scripts/firebase-app.ts":"_astro/firebase-app.7ce2ebb1.js","astro:scripts/before-hydration.js":""},"assets":["/_astro/index.0c833781.css","/_astro/server.1bc2fa51.css","/_astro/_...slug_.0607a6ef.css","/manifest.webmanifest","/robots.txt","/sw.js","/workbox-e0d788d4.js","/_astro/PitchBar.db7cd775.js","/_astro/Prices.55399c72.js","/_astro/ProductCard.7e891c08.js","/_astro/ShopHeader.301e109b.js","/_astro/_plugin-vue_export-helper.77ed7c18.js","/_astro/client.0de2f274.js","/_astro/firebase-app.7ce2ebb1.js","/_astro/format-money.ab6b71eb.js","/_astro/hoisted.721ad75d.js","/_astro/idle-callback.889bf0ea.js","/_astro/index.16f33784.js","/_astro/modules-info.06ac0727.js","/_astro/preload-helper.101896b7.js","/_astro/runtime-dom.esm-bundler.d2f39f33.js","/_astro/session-utm.72684b84.js","/_astro/workbox-window.prod.es5.295a6886.js","/admin/config.json","/assets/cms-preview.css","/assets/cms.css","/assets/cvv.png","/assets/img-placeholder.png","/assets/payments.png","/assets/ssl-safe.png","/img/icon.png","/img/large-icon.png","/img/uploads/banner1.png","/img/uploads/banner2.png","/img/uploads/banner2.webp","/img/uploads/favicon.png","/img/uploads/headless.png","/img/uploads/headphone.png","/img/uploads/headphone.webp","/img/uploads/icon.png","/img/uploads/large-icon.png","/img/uploads/logo.png","/img/uploads/logo.webp","/img/uploads/og-image.png","/img/uploads/passion.png","/img/uploads/passion.webp","/img/uploads/pwa-reliable.png","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.png","/img/uploads/rect89.webp","/img/uploads/ssl-safe.png"]}), {
3413
3412
  pageMap: pageMap,
3414
3413
  renderers: renderers
3415
3414
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/storefront",
3
3
  "type": "module",
4
- "version": "0.6.11",
4
+ "version": "0.6.13",
5
5
  "description": "E-Com Plus Cloud Commerce storefront with Astro",
6
6
  "main": "src/index.js",
7
7
  "repository": {
@@ -47,7 +47,6 @@
47
47
  "firebase": "^9.17.1",
48
48
  "image-size": "^1.0.2",
49
49
  "semver": "^7.3.8",
50
- "sharp": "^0.31.3",
51
50
  "tailwindcss": "^3.2.7",
52
51
  "unocss": "^0.50.3",
53
52
  "vite": "^4.1.4",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.6.11",
4
+ "version": "0.6.13",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {
@@ -1,17 +0,0 @@
1
- <template>
2
- <component :is="as" v-if="!isOnce" v-motion-fade-visible>
3
- <slot />
4
- </component>
5
- <component :is="as" v-else v-motion-fade-visible-once>
6
- <slot />
7
- </component>
8
- </template>
9
-
10
- <script setup lang="ts">
11
- export interface Props {
12
- as?: string;
13
- isOnce?: boolean;
14
- }
15
-
16
- withDefaults(defineProps<Props>(), { as: 'div' });
17
- </script>