cloudcommerce 0.18.2 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/renovate.json +1 -2
- package/CHANGELOG.md +48 -0
- package/package.json +6 -6
- package/packages/api/package.json +1 -1
- package/packages/apps/affilate-program/package.json +2 -2
- package/packages/apps/correios/package.json +1 -1
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +2 -2
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +2 -2
- package/packages/apps/fb-conversions/package.json +2 -2
- package/packages/apps/flash-courier/package.json +1 -1
- package/packages/apps/frenet/package.json +2 -2
- package/packages/apps/galaxpay/package.json +2 -2
- package/packages/apps/google-analytics/package.json +2 -2
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/melhor-envio/package.json +2 -2
- package/packages/apps/mercadopago/package.json +2 -2
- package/packages/apps/pagarme/package.json +2 -2
- package/packages/apps/paghiper/package.json +2 -2
- package/packages/apps/pix/package.json +2 -2
- package/packages/apps/tiny-erp/package.json +2 -2
- package/packages/apps/webhooks/package.json +2 -2
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +1 -1
- package/packages/events/package.json +2 -2
- package/packages/feeds/package.json +1 -1
- package/packages/firebase/package.json +2 -2
- package/packages/i18n/package.json +1 -1
- package/packages/modules/package.json +2 -2
- package/packages/passport/package.json +2 -2
- package/packages/ssr/lib/firebase/serve-storefront.js +75 -72
- package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
- package/packages/ssr/package.json +3 -3
- package/packages/ssr/src/firebase/serve-storefront.ts +83 -84
- package/packages/storefront/.eslintrc.cjs +1 -1
- package/packages/storefront/config/storefront.tailwind.cjs +5 -8
- package/packages/storefront/dist/client/_astro/Carousel.62c97a79.js +1 -0
- package/packages/storefront/dist/client/_astro/HeroSlider.eb156f18.js +1 -0
- package/packages/storefront/dist/client/_astro/PitchBar.ed85833a.js +1 -0
- package/packages/storefront/dist/client/_astro/ProductShelf.9e290480.js +1 -0
- package/packages/storefront/dist/client/_astro/ShopHeader.0c884bbe.js +4 -0
- package/packages/storefront/dist/client/_astro/_...slug_.c2da43fb.css +1 -0
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.4cb7dd76.js +1 -0
- package/packages/storefront/dist/client/_astro/api.4984c5be.js +1 -0
- package/packages/storefront/dist/client/_astro/client.8035a95a.js +1 -0
- package/packages/storefront/dist/client/_astro/img.abbe849f.js +1 -0
- package/packages/storefront/dist/client/_astro/index.b93f3d06.js +1 -0
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/chunks/{_...4cff750f.mjs → _...9e22b578.mjs} +3 -3
- package/packages/storefront/dist/server/chunks/{account@_@astro.9bc80fb8.mjs → account@_@astro.89e4cf60.mjs} +3 -3
- package/packages/storefront/dist/server/chunks/{astro.2df8d1c5.mjs → astro.45d3047f.mjs} +10 -3
- package/packages/storefront/dist/server/chunks/{endpoint@_@js.36a1cfa7.mjs → endpoint@_@js.f880a152.mjs} +3 -3
- package/packages/storefront/dist/server/chunks/{fallback@_@astro.6af59549.mjs → fallback@_@astro.89538855.mjs} +3 -3
- package/packages/storefront/dist/server/chunks/{index@_@astro.846e70bb.mjs → index@_@astro.548cf7ad.mjs} +3 -3
- package/packages/storefront/dist/server/chunks/{index@_@astro.1ea814dc.mjs → index@_@astro.56fdd6da.mjs} +3 -3
- package/packages/storefront/dist/server/chunks/pages/{_...slug_.astro.906634b2.mjs → _...slug_.astro.bde9380b.mjs} +125 -36
- package/packages/storefront/dist/server/chunks/pages/{account.astro.f630663e.mjs → account.astro.f07cf19e.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/pages/{endpoint.js.ffec1d05.mjs → endpoint.js.d4e37801.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/pages/{fallback.astro.0a073a86.mjs → fallback.astro.e2e8a0e4.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/pages/{index.astro.fb8fe537.mjs → index.astro.3760ebe3.mjs} +443 -321
- package/packages/storefront/dist/server/entry.mjs +9 -9
- package/packages/storefront/dist/server/renderers.mjs +2 -2
- package/packages/storefront/package.json +5 -5
- package/packages/storefront/src/images/get-built-picture.ts +1 -0
- package/packages/storefront/src/images/use-ssr-picture.ts +11 -6
- package/packages/storefront/src/lib/components/{HeroPicture.astro → BannerPictures.astro} +19 -13
- package/packages/storefront/src/lib/composables/use-banner.ts +38 -0
- package/packages/storefront/src/lib/composables/use-hero-slider.ts +4 -18
- package/packages/storefront/src/lib/composables/use-product-card.ts +10 -11
- package/packages/storefront/src/lib/layouts/{main/use-page-sections.ts → use-page-main.ts} +59 -12
- package/packages/storefront/src/lib/ssr-context.ts +1 -1
- package/packages/storefront/src/lib/state/shopping-cart/parse-product.ts +6 -3
- package/packages/storefront/src/lib/state/shopping-cart.ts +3 -3
- package/packages/storefront/src/lib/state/use-cms-preview.ts +1 -1
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/_astro/Carousel.533b4b19.js +0 -1
- package/packages/storefront/dist/client/_astro/HeroSlider.359c76cc.js +0 -1
- package/packages/storefront/dist/client/_astro/PitchBar.75d2999f.js +0 -1
- package/packages/storefront/dist/client/_astro/Prices.bd0d3474.js +0 -1
- package/packages/storefront/dist/client/_astro/ProductShelf.83c66e3e.js +0 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.a06de422.js +0 -4
- package/packages/storefront/dist/client/_astro/_...slug_.b19aabfc.css +0 -1
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.4e6dc3af.js +0 -1
- package/packages/storefront/dist/client/_astro/api.7f62c1ff.js +0 -1
- package/packages/storefront/dist/client/_astro/client.24201f93.js +0 -1
- package/packages/storefront/dist/client/_astro/img.22ad29ec.js +0 -1
- package/packages/storefront/dist/client/_astro/index.ddc27a3a.js +0 -1
- package/packages/storefront/dist/client/_astro/modules-info.d6bd555b.js +0 -1
- package/packages/storefront/dist/client/_astro/runtime-dom.esm-bundler.578d6e91.js +0 -1
- package/packages/storefront/dist/client/img/uploads/banner1.png +0 -0
- package/packages/storefront/dist/client/img/uploads/banner2.png +0 -0
- package/packages/storefront/dist/client/img/uploads/favicon.png +0 -0
- package/packages/storefront/dist/client/img/uploads/headless.png +0 -0
- package/packages/storefront/dist/client/img/uploads/headphone.png +0 -0
- package/packages/storefront/dist/client/img/uploads/passion.png +0 -0
- package/packages/storefront/dist/client/img/uploads/pwa-reliable.png +0 -0
- package/packages/storefront/dist/client/img/uploads/rect89.png +0 -0
- package/packages/storefront/dist/client/img/uploads/ssl-safe.png +0 -0
- package/packages/storefront/src/lib/layouts/main/use-page-hero.ts +0 -47
|
@@ -1,64 +1,20 @@
|
|
|
1
|
-
import { memoryUsage } from 'node:process';
|
|
2
1
|
import { join as joinPath } from 'node:path';
|
|
3
2
|
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { getFirestore, Timestamp } from 'firebase-admin/firestore';
|
|
4
4
|
import logger from 'firebase-functions/logger';
|
|
5
5
|
|
|
6
6
|
const {
|
|
7
|
-
STOREFRONT_BASE_DIR, SSR_CACHE_MAXAGE,
|
|
7
|
+
DEPLOY_RAND, STOREFRONT_BASE_DIR, SSR_CACHE_MAXAGE, SSR_CACHE_SWR, SSR_PROXY_DEBUG, SSR_PROXY_TIMEOUT,
|
|
8
8
|
} = process.env;
|
|
9
9
|
const cacheMaxAge = SSR_CACHE_MAXAGE ? Number(SSR_CACHE_MAXAGE) : 1000 * 60 * 2;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
: 536870912; /* 512MiB */
|
|
10
|
+
const isCacheSWR = SSR_CACHE_SWR ? String(SSR_CACHE_SWR).toLowerCase() === 'true' : true;
|
|
11
|
+
const lockedCacheKeys = [];
|
|
13
12
|
const baseDir = STOREFRONT_BASE_DIR || process.cwd();
|
|
14
13
|
const clientRoot = new URL(joinPath(baseDir, 'dist/client/'), import.meta.url);
|
|
15
14
|
let imagesManifest;
|
|
16
15
|
const builtImages = [];
|
|
17
16
|
const isProxyDebug = SSR_PROXY_DEBUG ? String(SSR_PROXY_DEBUG).toLowerCase() === 'true' : false;
|
|
18
17
|
const proxyTimeout = SSR_PROXY_TIMEOUT ? Number(SSR_PROXY_TIMEOUT) : 3000;
|
|
19
|
-
const memCache = {
|
|
20
|
-
timers: {},
|
|
21
|
-
storage: [],
|
|
22
|
-
set(key, data) {
|
|
23
|
-
if (cacheMaxAge > 0) {
|
|
24
|
-
this.storage.push({ key, data });
|
|
25
|
-
if (this.timers[key]) {
|
|
26
|
-
clearTimeout(this.timers[key]);
|
|
27
|
-
}
|
|
28
|
-
this.timers[key] = setTimeout(() => {
|
|
29
|
-
this.pull(key);
|
|
30
|
-
}, cacheMaxAge);
|
|
31
|
-
const { heapTotal, heapUsed } = memoryUsage();
|
|
32
|
-
if (heapTotal - heapUsed < cacheMinHeapFree) {
|
|
33
|
-
this.pull();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
get(key) {
|
|
38
|
-
for (let i = this.storage.length - 1; i >= 0; i--) {
|
|
39
|
-
if (this.storage[i].key === key) {
|
|
40
|
-
return this.storage[i];
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return undefined;
|
|
44
|
-
},
|
|
45
|
-
pull(key) {
|
|
46
|
-
if (key) {
|
|
47
|
-
for (let i = this.storage.length - 1; i >= 0; i--) {
|
|
48
|
-
if (this.storage[i].key === key) {
|
|
49
|
-
this.storage.splice(i, 1);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
} else {
|
|
53
|
-
for (let i = 0; i < this.storage.length; i++) {
|
|
54
|
-
if (this.storage[i].key !== '__home') {
|
|
55
|
-
this.storage.splice(i, 1);
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
18
|
const proxy = async (req, res) => {
|
|
63
19
|
let proxyURL;
|
|
64
20
|
try {
|
|
@@ -202,22 +158,12 @@ export default async (req, res) => {
|
|
|
202
158
|
res.sendStatus(400);
|
|
203
159
|
return;
|
|
204
160
|
}
|
|
161
|
+
const startedAt = Date.now();
|
|
162
|
+
let ssrStartedAt;
|
|
205
163
|
const cacheKey = (!req.path || req.path === '/')
|
|
206
164
|
? '__home'
|
|
207
165
|
: req.path.slice(1).replace(/\//g, '_');
|
|
208
|
-
|
|
209
|
-
const cached = memCache.get(cacheKey)?.data;
|
|
210
|
-
if (cached) {
|
|
211
|
-
const { headers: cachedHeaders, status: cachedStatus = 200, chunks: cachedChunks } = cached;
|
|
212
|
-
res.writeHead(cachedStatus, cachedHeaders);
|
|
213
|
-
cachedChunks.forEach((chunk) => {
|
|
214
|
-
res.write(chunk);
|
|
215
|
-
});
|
|
216
|
-
res.end();
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
const startedAt = Date.now();
|
|
166
|
+
let cacheRef;
|
|
221
167
|
let status;
|
|
222
168
|
let headers = {};
|
|
223
169
|
const chunks = [];
|
|
@@ -229,40 +175,97 @@ export default async (req, res) => {
|
|
|
229
175
|
/* eslint-disable prefer-rest-params */
|
|
230
176
|
// @ts-ignore
|
|
231
177
|
res.writeHead = function writeHead(_status, _headers) {
|
|
232
|
-
if (!res.headersSent) {
|
|
233
|
-
// @ts-ignore
|
|
234
|
-
_writeHead.apply(res, arguments);
|
|
235
|
-
}
|
|
236
178
|
status = _status;
|
|
237
179
|
if (_headers) {
|
|
180
|
+
if (status === 200) {
|
|
181
|
+
const now = Date.now();
|
|
182
|
+
_headers['X-Function-Took'] = String(now - startedAt);
|
|
183
|
+
if (ssrStartedAt) {
|
|
184
|
+
_headers['X-SSR-Took'] = String(now - ssrStartedAt);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
238
187
|
headers = _headers;
|
|
239
|
-
headers['X-SSR-Took'] = String(Date.now() - startedAt);
|
|
240
188
|
}
|
|
241
189
|
};
|
|
242
190
|
const _write = res.write;
|
|
243
191
|
// @ts-ignore
|
|
244
192
|
res.write = function write(chunk) {
|
|
245
|
-
// @ts-ignore
|
|
246
|
-
_write.apply(res, arguments);
|
|
247
193
|
chunks.push(chunk);
|
|
248
194
|
};
|
|
249
195
|
const _end = res.end;
|
|
250
196
|
// @ts-ignore
|
|
251
197
|
res.end = function end() {
|
|
252
|
-
|
|
253
|
-
|
|
198
|
+
if (!res.headersSent) {
|
|
199
|
+
_writeHead.apply(res, [status, headers]);
|
|
200
|
+
chunks.forEach((chunk) => {
|
|
201
|
+
_write.apply(res, [chunk, 'utf8']);
|
|
202
|
+
});
|
|
203
|
+
// @ts-ignore
|
|
204
|
+
_end.apply(res, arguments);
|
|
205
|
+
}
|
|
254
206
|
if (!status) {
|
|
255
207
|
status = res.statusCode;
|
|
256
208
|
}
|
|
257
|
-
if (status === 200) {
|
|
258
|
-
|
|
209
|
+
if (cacheRef && status === 200) {
|
|
210
|
+
cacheRef.set({
|
|
211
|
+
headers,
|
|
212
|
+
status,
|
|
213
|
+
body: Buffer.concat(chunks).toString('utf8'),
|
|
214
|
+
__deploy: DEPLOY_RAND,
|
|
215
|
+
__timestamp: Timestamp.now(),
|
|
216
|
+
}).catch(logger.warn);
|
|
217
|
+
}
|
|
218
|
+
for (let i = lockedCacheKeys.length - 1; i >= 0; i--) {
|
|
219
|
+
if (lockedCacheKeys[i] === cacheKey) {
|
|
220
|
+
lockedCacheKeys.splice(i, 1);
|
|
221
|
+
}
|
|
259
222
|
}
|
|
260
223
|
};
|
|
224
|
+
const isSWRLocked = lockedCacheKeys.includes(cacheKey);
|
|
225
|
+
let gettingCacheDoc;
|
|
226
|
+
if (req.query.__noCache === undefined && req.path.charAt(1) !== '~' && cacheMaxAge > 0) {
|
|
227
|
+
gettingCacheDoc = (async () => {
|
|
228
|
+
try {
|
|
229
|
+
const firestore = getFirestore();
|
|
230
|
+
cacheRef = firestore.doc(`ssrCache/${cacheKey}`);
|
|
231
|
+
const cacheDoc = await cacheRef.get();
|
|
232
|
+
if (!res.headersSent && cacheDoc.exists) {
|
|
233
|
+
const {
|
|
234
|
+
headers: cachedHeaders, status: cachedStatus = 200, body: cachedBody, __deploy, __timestamp,
|
|
235
|
+
} = cacheDoc.data();
|
|
236
|
+
const isFresh = (Timestamp.now().toMillis() - __timestamp.toMillis()) <= cacheMaxAge;
|
|
237
|
+
if (__deploy !== DEPLOY_RAND) return;
|
|
238
|
+
if (isFresh || isCacheSWR) {
|
|
239
|
+
cachedHeaders['X-SWR-Date'] = (isFresh ? 'fresh ' : '')
|
|
240
|
+
+ __timestamp.toDate().toISOString();
|
|
241
|
+
cachedHeaders['X-Function-Took'] = String(Date.now() - startedAt);
|
|
242
|
+
Object.keys(cachedHeaders).forEach((headerName) => {
|
|
243
|
+
res.set(headerName, cachedHeaders[headerName]);
|
|
244
|
+
});
|
|
245
|
+
_writeHead.apply(res, [cachedStatus, cachedHeaders]);
|
|
246
|
+
_write.apply(res, [cachedBody, 'utf8']);
|
|
247
|
+
_end.apply(res);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
} catch (err) {
|
|
251
|
+
cacheRef = null;
|
|
252
|
+
logger.warn(err);
|
|
253
|
+
}
|
|
254
|
+
})();
|
|
255
|
+
}
|
|
256
|
+
if (gettingCacheDoc && (!isCacheSWR || isSWRLocked)) {
|
|
257
|
+
await gettingCacheDoc;
|
|
258
|
+
if (res.headersSent) return;
|
|
259
|
+
}
|
|
260
|
+
if (isCacheSWR) {
|
|
261
|
+
lockedCacheKeys.push(cacheKey);
|
|
262
|
+
}
|
|
261
263
|
/*
|
|
262
264
|
https://github.com/withastro/astro/blob/main/examples/ssr/server/server.mjs
|
|
263
265
|
import { handler as renderStorefront } from '../dist/server/entry.mjs';
|
|
264
266
|
global.$renderStorefront = renderStorefront;
|
|
265
267
|
*/
|
|
268
|
+
ssrStartedAt = Date.now();
|
|
266
269
|
global.$renderStorefront(req, res, async (err) => {
|
|
267
270
|
if (err) {
|
|
268
271
|
if (res.headersSent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-storefront.js","sourceRoot":"","sources":["../../src/firebase/serve-storefront.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serve-storefront.js","sourceRoot":"","sources":["../../src/firebase/serve-storefront.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/ssr",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.20.0",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce storefront SSR",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"@ecomplus/utils": "1.5.0-rc.5",
|
|
31
31
|
"@headlessui/vue": "^1.7.14",
|
|
32
32
|
"@vueuse/core": "10.2.1",
|
|
33
|
-
"astro": "2.8.
|
|
34
|
-
"firebase-admin": "^11.
|
|
33
|
+
"astro": "2.8.3",
|
|
34
|
+
"firebase-admin": "^11.10.1",
|
|
35
35
|
"firebase-functions": "^4.4.1",
|
|
36
36
|
"semver": "^7.5.4",
|
|
37
37
|
"vue": "^3.3.4"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { OutgoingHttpHeaders } from 'node:http';
|
|
2
|
-
import type { Readable } from 'node:stream';
|
|
3
2
|
import type { Request, Response } from 'firebase-functions';
|
|
4
|
-
import {
|
|
3
|
+
import type { DocumentReference } from 'firebase-admin/firestore';
|
|
5
4
|
import { join as joinPath } from 'node:path';
|
|
6
5
|
import { readFile } from 'node:fs/promises';
|
|
6
|
+
import { getFirestore, Timestamp } from 'firebase-admin/firestore';
|
|
7
7
|
import logger from 'firebase-functions/logger';
|
|
8
8
|
|
|
9
9
|
declare global {
|
|
@@ -16,17 +16,17 @@ declare global {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
const {
|
|
19
|
+
DEPLOY_RAND,
|
|
19
20
|
STOREFRONT_BASE_DIR,
|
|
20
21
|
SSR_CACHE_MAXAGE,
|
|
21
|
-
|
|
22
|
+
SSR_CACHE_SWR,
|
|
22
23
|
SSR_PROXY_DEBUG,
|
|
23
24
|
SSR_PROXY_TIMEOUT,
|
|
24
25
|
} = process.env;
|
|
25
26
|
|
|
26
27
|
const cacheMaxAge = SSR_CACHE_MAXAGE ? Number(SSR_CACHE_MAXAGE) : 1000 * 60 * 2;
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
: 536870912; /* 512MiB */
|
|
28
|
+
const isCacheSWR = SSR_CACHE_SWR ? String(SSR_CACHE_SWR).toLowerCase() === 'true' : true;
|
|
29
|
+
const lockedCacheKeys: string[] = [];
|
|
30
30
|
|
|
31
31
|
const baseDir = STOREFRONT_BASE_DIR || process.cwd();
|
|
32
32
|
const clientRoot = new URL(joinPath(baseDir, 'dist/client/'), import.meta.url);
|
|
@@ -37,55 +37,6 @@ const builtImages: BuiltImage[] = [];
|
|
|
37
37
|
const isProxyDebug = SSR_PROXY_DEBUG ? String(SSR_PROXY_DEBUG).toLowerCase() === 'true' : false;
|
|
38
38
|
const proxyTimeout = SSR_PROXY_TIMEOUT ? Number(SSR_PROXY_TIMEOUT) : 3000;
|
|
39
39
|
|
|
40
|
-
type CacheData = {
|
|
41
|
-
headers: OutgoingHttpHeaders,
|
|
42
|
-
status: number,
|
|
43
|
-
chunks: Readable[],
|
|
44
|
-
};
|
|
45
|
-
const memCache = {
|
|
46
|
-
timers: {} as Record<string, NodeJS.Timeout>,
|
|
47
|
-
storage: [] as Array<{ key: string, data: CacheData | null }>,
|
|
48
|
-
set(key: string, data: CacheData) {
|
|
49
|
-
if (cacheMaxAge > 0) {
|
|
50
|
-
this.storage.push({ key, data });
|
|
51
|
-
if (this.timers[key]) {
|
|
52
|
-
clearTimeout(this.timers[key]);
|
|
53
|
-
}
|
|
54
|
-
this.timers[key] = setTimeout(() => {
|
|
55
|
-
this.pull(key);
|
|
56
|
-
}, cacheMaxAge);
|
|
57
|
-
const { heapTotal, heapUsed } = memoryUsage();
|
|
58
|
-
if (heapTotal - heapUsed < cacheMinHeapFree) {
|
|
59
|
-
this.pull();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
get(key: string) {
|
|
64
|
-
for (let i = this.storage.length - 1; i >= 0; i--) {
|
|
65
|
-
if (this.storage[i].key === key) {
|
|
66
|
-
return this.storage[i];
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return undefined;
|
|
70
|
-
},
|
|
71
|
-
pull(key?: string) {
|
|
72
|
-
if (key) {
|
|
73
|
-
for (let i = this.storage.length - 1; i >= 0; i--) {
|
|
74
|
-
if (this.storage[i].key === key) {
|
|
75
|
-
this.storage.splice(i, 1);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
} else {
|
|
79
|
-
for (let i = 0; i < this.storage.length; i++) {
|
|
80
|
-
if (this.storage[i].key !== '__home') {
|
|
81
|
-
this.storage.splice(i, 1);
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
};
|
|
88
|
-
|
|
89
40
|
const proxy = async (req: Request, res: Response) => {
|
|
90
41
|
let proxyURL: URL | undefined;
|
|
91
42
|
try {
|
|
@@ -235,30 +186,16 @@ export default async (req: Request, res: Response) => {
|
|
|
235
186
|
return;
|
|
236
187
|
}
|
|
237
188
|
|
|
189
|
+
const startedAt = Date.now();
|
|
190
|
+
let ssrStartedAt: number | undefined;
|
|
238
191
|
const cacheKey = (!req.path || req.path === '/')
|
|
239
192
|
? '__home'
|
|
240
193
|
: req.path.slice(1).replace(/\//g, '_');
|
|
241
|
-
|
|
242
|
-
const cached = memCache.get(cacheKey)?.data;
|
|
243
|
-
if (cached) {
|
|
244
|
-
const {
|
|
245
|
-
headers: cachedHeaders,
|
|
246
|
-
status: cachedStatus = 200,
|
|
247
|
-
chunks: cachedChunks,
|
|
248
|
-
} = cached;
|
|
249
|
-
res.writeHead(cachedStatus, cachedHeaders);
|
|
250
|
-
cachedChunks.forEach((chunk) => {
|
|
251
|
-
res.write(chunk);
|
|
252
|
-
});
|
|
253
|
-
res.end();
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
const startedAt = Date.now();
|
|
194
|
+
let cacheRef: DocumentReference<any> | undefined | null;
|
|
259
195
|
let status: number;
|
|
260
196
|
let headers: OutgoingHttpHeaders = {};
|
|
261
197
|
const chunks: any[] = [];
|
|
198
|
+
|
|
262
199
|
/*
|
|
263
200
|
Check Response methods used by Astro Node.js integration:
|
|
264
201
|
https://github.com/withastro/astro/blob/main/packages/integrations/node/src/nodeMiddleware.ts
|
|
@@ -267,41 +204,103 @@ export default async (req: Request, res: Response) => {
|
|
|
267
204
|
/* eslint-disable prefer-rest-params */
|
|
268
205
|
// @ts-ignore
|
|
269
206
|
res.writeHead = function writeHead(_status: number, _headers: OutgoingHttpHeaders) {
|
|
270
|
-
if (!res.headersSent) {
|
|
271
|
-
// @ts-ignore
|
|
272
|
-
_writeHead.apply(res, arguments);
|
|
273
|
-
}
|
|
274
207
|
status = _status;
|
|
275
208
|
if (_headers) {
|
|
209
|
+
if (status === 200) {
|
|
210
|
+
const now = Date.now();
|
|
211
|
+
_headers['X-Function-Took'] = String(now - startedAt);
|
|
212
|
+
if (ssrStartedAt) {
|
|
213
|
+
_headers['X-SSR-Took'] = String(now - ssrStartedAt);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
276
216
|
headers = _headers;
|
|
277
|
-
headers['X-SSR-Took'] = String(Date.now() - startedAt);
|
|
278
217
|
}
|
|
279
218
|
};
|
|
280
219
|
const _write = res.write;
|
|
281
220
|
// @ts-ignore
|
|
282
221
|
res.write = function write(chunk: any) {
|
|
283
|
-
// @ts-ignore
|
|
284
|
-
_write.apply(res, arguments);
|
|
285
222
|
chunks.push(chunk);
|
|
286
223
|
};
|
|
287
224
|
const _end = res.end;
|
|
288
225
|
// @ts-ignore
|
|
289
226
|
res.end = function end() {
|
|
290
|
-
|
|
291
|
-
|
|
227
|
+
if (!res.headersSent) {
|
|
228
|
+
_writeHead.apply(res, [status, headers]);
|
|
229
|
+
chunks.forEach((chunk) => {
|
|
230
|
+
_write.apply(res, [chunk, 'utf8']);
|
|
231
|
+
});
|
|
232
|
+
// @ts-ignore
|
|
233
|
+
_end.apply(res, arguments);
|
|
234
|
+
}
|
|
292
235
|
if (!status) {
|
|
293
236
|
status = res.statusCode;
|
|
294
237
|
}
|
|
295
|
-
if (status === 200) {
|
|
296
|
-
|
|
238
|
+
if (cacheRef && status === 200) {
|
|
239
|
+
cacheRef.set({
|
|
240
|
+
headers,
|
|
241
|
+
status,
|
|
242
|
+
body: Buffer.concat(chunks).toString('utf8'),
|
|
243
|
+
__deploy: DEPLOY_RAND,
|
|
244
|
+
__timestamp: Timestamp.now(),
|
|
245
|
+
}).catch(logger.warn);
|
|
246
|
+
}
|
|
247
|
+
for (let i = lockedCacheKeys.length - 1; i >= 0; i--) {
|
|
248
|
+
if (lockedCacheKeys[i] === cacheKey) {
|
|
249
|
+
lockedCacheKeys.splice(i, 1);
|
|
250
|
+
}
|
|
297
251
|
}
|
|
298
252
|
};
|
|
299
253
|
|
|
254
|
+
const isSWRLocked = lockedCacheKeys.includes(cacheKey);
|
|
255
|
+
let gettingCacheDoc: Promise<void> | undefined;
|
|
256
|
+
if (req.query.__noCache === undefined && req.path.charAt(1) !== '~' && cacheMaxAge > 0) {
|
|
257
|
+
gettingCacheDoc = (async () => {
|
|
258
|
+
try {
|
|
259
|
+
const firestore = getFirestore();
|
|
260
|
+
cacheRef = firestore.doc(`ssrCache/${cacheKey}`);
|
|
261
|
+
const cacheDoc = await cacheRef.get();
|
|
262
|
+
if (!res.headersSent && cacheDoc.exists) {
|
|
263
|
+
const {
|
|
264
|
+
headers: cachedHeaders,
|
|
265
|
+
status: cachedStatus = 200,
|
|
266
|
+
body: cachedBody,
|
|
267
|
+
__deploy,
|
|
268
|
+
__timestamp,
|
|
269
|
+
} = cacheDoc.data();
|
|
270
|
+
const isFresh = (Timestamp.now().toMillis() - __timestamp.toMillis()) <= cacheMaxAge;
|
|
271
|
+
if (__deploy !== DEPLOY_RAND) return;
|
|
272
|
+
if (isFresh || isCacheSWR) {
|
|
273
|
+
cachedHeaders['X-SWR-Date'] = (isFresh ? 'fresh ' : '')
|
|
274
|
+
+ __timestamp.toDate().toISOString();
|
|
275
|
+
cachedHeaders['X-Function-Took'] = String(Date.now() - startedAt);
|
|
276
|
+
Object.keys(cachedHeaders).forEach((headerName) => {
|
|
277
|
+
res.set(headerName, cachedHeaders[headerName]);
|
|
278
|
+
});
|
|
279
|
+
_writeHead.apply(res, [cachedStatus, cachedHeaders]);
|
|
280
|
+
_write.apply(res, [cachedBody, 'utf8']);
|
|
281
|
+
_end.apply(res);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
} catch (err) {
|
|
285
|
+
cacheRef = null;
|
|
286
|
+
logger.warn(err);
|
|
287
|
+
}
|
|
288
|
+
})();
|
|
289
|
+
}
|
|
290
|
+
if (gettingCacheDoc && (!isCacheSWR || isSWRLocked)) {
|
|
291
|
+
await gettingCacheDoc;
|
|
292
|
+
if (res.headersSent) return;
|
|
293
|
+
}
|
|
294
|
+
if (isCacheSWR) {
|
|
295
|
+
lockedCacheKeys.push(cacheKey);
|
|
296
|
+
}
|
|
297
|
+
|
|
300
298
|
/*
|
|
301
299
|
https://github.com/withastro/astro/blob/main/examples/ssr/server/server.mjs
|
|
302
300
|
import { handler as renderStorefront } from '../dist/server/entry.mjs';
|
|
303
301
|
global.$renderStorefront = renderStorefront;
|
|
304
302
|
*/
|
|
303
|
+
ssrStartedAt = Date.now();
|
|
305
304
|
global.$renderStorefront(req, res, async (err: any) => {
|
|
306
305
|
if (err) {
|
|
307
306
|
if (res.headersSent) {
|
|
@@ -15,7 +15,7 @@ module.exports = {
|
|
|
15
15
|
'import/prefer-default-export': 'warn',
|
|
16
16
|
'import/extensions': 'off',
|
|
17
17
|
'vue/multi-word-component-names': ['error', {
|
|
18
|
-
ignores: ['Fade', 'Carousel', 'Drawer', 'Prices'],
|
|
18
|
+
ignores: ['Fade', 'Carousel', 'Drawer', 'Prices', 'Banner'],
|
|
19
19
|
}],
|
|
20
20
|
},
|
|
21
21
|
};
|
|
@@ -40,14 +40,9 @@ let defaultThemeOptions = {
|
|
|
40
40
|
],
|
|
41
41
|
generalIcons: 'heroicons',
|
|
42
42
|
iconAliases: {
|
|
43
|
-
'shopping-cart': 'shopping-bag',
|
|
44
|
-
cashback: 'arrow-uturn-left',
|
|
45
|
-
menu: 'bars-3-bottom-left',
|
|
46
|
-
search: 'magnifying-glass',
|
|
47
|
-
account: 'user-circle',
|
|
48
43
|
close: 'x-mark',
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
'chevron-right': 'chevron-right',
|
|
45
|
+
'chevron-left': 'chevron-left',
|
|
51
46
|
},
|
|
52
47
|
};
|
|
53
48
|
if (globalThis.$storefrontThemeOptions) {
|
|
@@ -179,7 +174,9 @@ const genTailwindConfig = (themeOptions = {}) => {
|
|
|
179
174
|
const { icons } = require(`@iconify-json/${iconset}`);
|
|
180
175
|
shortcuts = Object.keys(icons.icons);
|
|
181
176
|
Object.keys(iconAliases).forEach((alias) => {
|
|
182
|
-
|
|
177
|
+
if (alias !== iconAliases[alias]) {
|
|
178
|
+
shortcuts.push([alias, iconAliases[alias]]);
|
|
179
|
+
}
|
|
183
180
|
});
|
|
184
181
|
}
|
|
185
182
|
shortcuts.forEach((shortcut) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as q,h as G,c as J}from"./index.b93f3d06.js";import{_ as M,d as K,B as X,o as B,a as Q,u as v,b as Y,n as H,j as c,k as h,t as $,c as D,l as Z,E as ee,Q as te,C as ae,g as oe,w as P,h as le,e as F,H as se,I as re}from"./_plugin-vue_export-helper.4cb7dd76.js";const U=Symbol("carousel"),ne=K({__name:"CarouselControl",props:{isPrev:{type:Boolean,default:!1}},setup(r,{expose:u}){u();const{changeSlide:l}=X(U),t={changeSlide:l};return Object.defineProperty(t,"__isScriptSetup",{enumerable:!1,value:!0}),t}}),ue=["aria-label","data-carousel-control"];function ie(r,u,l,t,n,o){return B(),Q("button",{type:"button","aria-label":l.isPrev?"Anterior":"Próximo",onClick:u[0]||(u[0]=m=>t.changeSlide(l.isPrev?-1:1)),class:H(["group absolute top-0 z-1",l.isPrev?"left-0":"right-0"]),"data-carousel-control":l.isPrev?"previous":"next"},[v(r.$slots,"default",{},()=>[Y("i",{class:H(["m-0",l.isPrev?"i-chevron-left group-active:-translate-x-1":"i-chevron-right group-active:translate-x-1"])},null,2)])],10,ue)}const ce=M(ne,[["render",ie]]),de=K({__name:"Carousel",props:{as:{default:"ul"},modelValue:{default:1},autoplay:{}},emits:["update:modelValue"],setup(r,{expose:u,emit:l}){u();const t=r,n=c(t.modelValue-1);h($(t,"modelValue"),e=>{n.value=e-1}),h(n,(e,a)=>{e!==a&&l("update:modelValue",e+1)});const o=c(null),{x:m,isScrolling:L,arrivedState:_}=q(o),T=D(()=>_.left),W=D(()=>_.right),s=c([]),g=c(0),p=c(0),I=c(0),k=()=>{o.value&&(g.value=o.value.scrollWidth,p.value=o.value.offsetWidth)},V=()=>{if(!o.value)return;let e=[...o.value.children];e.length===1&&e[0].tagName.endsWith("SLOT")&&(e=[...e[0].children]),s.value=e.map(a=>({offsetLeft:a.offsetLeft,width:a.offsetWidth}))},z=e=>{let a=n.value+e;if(a>=s.value.length)return 0;a<0&&(a=s.value.length+a);const{offsetLeft:b,width:d}=s.value[a]||{};return d?b:0},x=()=>{const e=s.value.findIndex(a=>Math.abs(a.offsetLeft-m.value)<=5);e>-1&&(n.value=e||0)},E=()=>{const e=g.value-p.value;I.value=s.value.findIndex(({offsetLeft:a})=>a>=e-5)};let i;const f=()=>{t.autoplay&&(clearTimeout(i),i=setTimeout(()=>{C(1)},t.autoplay))},C=(e,a=!0)=>{if(s.value.length<2)return;if(a&&(e===1||e===-1)){let d=0,j=0;for(let S=n.value;S<s.value.length;S++){const{width:A}=s.value[S]||{};if(A&&(d+=1,j+=A,j>=p.value))break}d&&(e=e>0?d:-d)}t.autoplay||console.log({direction:e},n.value,s.value.length);const b=z(e);o.value?.scrollTo({left:b,behavior:"smooth"}),f()};h(L,e=>{e?clearTimeout(i):(x(),f())});const O=c(null),R=G(O);h(R,e=>{e?clearTimeout(i):f()});const w=()=>{o.value&&(k(),V(),x(),E())},y=J(()=>{o.value&&(o.value.scrollLeft=0,w())},400);Z(()=>{w(),ee(()=>{o.value&&[...o.value.children].forEach(e=>{e.setAttribute("tabindex","0")})}),f(),window.addEventListener("resize",y)}),te(()=>{window.removeEventListener("resize",y),clearTimeout(i)}),ae(U,{autoplay:$(t,"autoplay"),changeSlide:C,isBoundLeft:T,isBoundRight:W});const N={props:t,emit:l,currentIndex:n,wrapper:o,currentPos:m,isScrolling:L,arrivedState:_,isBoundLeft:T,isBoundRight:W,slidesWidth:s,wrapperScrollWidth:g,wrapperVisibleWidth:p,indexCount:I,calcWrapperWidth:k,calcSlidesWidth:V,calcNextOffsetLeft:z,calcCurrentIndex:x,calcIndexCount:E,get autoplayTimer(){return i},set autoplayTimer(e){i=e},restartAutoplay:f,changeSlide:C,carousel:O,isHovered:R,calcOnInit:w,onResize:y,CarouselControl:ce};return Object.defineProperty(N,"__isScriptSetup",{enumerable:!1,value:!0}),N}}),fe={ref:"carousel",class:"relative","data-carousel":""};function ve(r,u,l,t,n,o){return B(),Q("div",fe,[(B(),oe(le(l.as),{ref:"wrapper",class:"flex overflow-x-scroll overflow-y-hidden list-none m-0 p-0 snap-x snap-mandatory scroll-smooth [&>*]:snap-start [&>*]:outline-none",style:{"scrollbar-width":"none","-webkit-overflow-scrolling":"touch","-ms-overflow-style":"none"},"data-carousel-wrapper":""},{default:P(()=>[v(r.$slots,"default")]),_:3},512)),v(r.$slots,"controls",se(re({changeSlide:t.changeSlide,isBoundLeft:t.isBoundLeft,isBoundRight:t.isBoundRight,currentPage:t.currentIndex+1,pageCount:t.indexCount+1})),()=>[F(t.CarouselControl,{"is-prev":""},{default:P(()=>[v(r.$slots,"previous")]),_:3}),F(t.CarouselControl,null,{default:P(()=>[v(r.$slots,"next")]),_:3})])],512)}const me=M(de,[["render",ve]]);export{me as C,ce as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as d,_ as S,d as w,o as a,a as i,g as p,w as l,u as y,n as g,h as f,y as v,x as b,i as c,e as u,f as T,v as C,b as m,F as B,r as H,K as L}from"./_plugin-vue_export-helper.4cb7dd76.js";import{p as x}from"./index.b93f3d06.js";import{C as N,a as P}from"./Carousel.62c97a79.js";import"./session-utm.744b0db3.js";const k=s=>{const r=d(()=>s.title?x(s.title).value:""),t=d(()=>s.subtitle?x(s.subtitle).value:""),e=d(()=>s.buttonText?x(s.buttonText).value:""),n=d(()=>!!(r.value||t.value||e.value));return{parsedTitle:r,parsedSubtitle:t,parsedButtonText:e,hasHeader:n}},V=s=>({parsedSlides:d(()=>s.slides.map(t=>({...t,...k(t)})))}),j=w({__name:"Banner",props:{img:{},alt:{},mobileImg:{},href:{},title:{},subtitle:{},buttonLink:{},buttonText:{},headingTag:{default:"h3"}},setup(s,{expose:r}){r();const t=s,{hasHeader:e,parsedTitle:n,parsedSubtitle:_,parsedButtonText:h}=k(t),o={props:t,hasHeader:e,parsedTitle:n,parsedSubtitle:_,parsedButtonText:h};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),D={key:0,class:"basis-1/2 grow-0 p-12 xl:ps-32 mb-3 md:mb-0"},z={key:1,class:"text-lg mt-4 md:mt-6"};function F(s,r,t,e,n,_){return a(),i("div",{class:g(["mx-auto overflow-x-hidden",e.hasHeader?"grid grid-cols-1 md:grid-cols-2 items-center":null])},[(a(),p(f(t.href?"a-link":"span"),{href:t.href,class:g(e.hasHeader?"basis-1/2 grow-0 md:order-last":null)},{default:l(()=>[y(s.$slots,"picture")]),_:3},8,["href","class"])),e.hasHeader?(a(),i("div",D,[e.parsedTitle?(a(),p(f(t.headingTag),{key:0,class:"ui-title mt-1"},{default:l(()=>[v(b(e.parsedTitle),1)]),_:1})):c("",!0),e.parsedSubtitle?(a(),i("p",z,b(e.parsedSubtitle),1)):c("",!0),e.parsedButtonText?(a(),p(f(t.buttonLink?"a-link":"span"),{key:2,href:t.buttonLink,class:"ui-btn-lg ui-btn-contrast min-w-[150px] mt-7 md:mt-10"},{default:l(()=>[v(b(e.parsedButtonText),1)]),_:1},8,["href"])):c("",!0)])):c("",!0)],2)}const O=S(j,[["render",F]]),E=w({__name:"HeroSlider",props:{autoplay:{},slides:{}},setup(s,{expose:r}){r();const t=s,{parsedSlides:e}=V(t),n={props:t,parsedSlides:e,Carousel:N,CarouselControl:P,Banner:O};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),I={class:"relative mx-auto"},K={class:"absolute z-10 bottom-5 flex justify-end items-center w-screen right-5 xl:right-auto xl:max-w-screen-xl xl:left-1/2 xl:-ms-[640px]"},q={class:"relative w-20 h-10 rounded-full bg-white/50 text-primary shadow-sm ring-1 ring-black/5"},A=m("i",{class:"i-arrow-left"},null,-1),G=m("i",{class:"i-arrow-right"},null,-1);function J(s,r,t,e,n,_){return a(),i("section",I,[u(e.Carousel,{autoplay:t.autoplay,class:"secondary [&>*]:items-center"},{controls:l(()=>[T(m("div",K,[m("div",q,[u(e.CarouselControl,{class:"w-10 h-10 rounded-full hover:bg-primary/10","is-prev":""},{default:l(()=>[A]),_:1}),u(e.CarouselControl,{class:"w-10 h-10 rounded-full hover:bg-primary/10"},{default:l(()=>[G]),_:1})])],512),[[C,e.parsedSlides.length>1]])]),default:l(()=>[(a(!0),i(B,null,H(e.parsedSlides,(h,o)=>(a(),i("li",{key:o,class:"shrink-0 basis-full"},[u(e.Banner,L({...h,headingTag:o===0?"h2":"h3"},{class:"w-screen max-w-screen-2xl"}),{picture:l(()=>[y(s.$slots,`picture-${o}`)]),_:2},1040)]))),128))]),_:3},8,["autoplay"])])}const W=S(E,[["render",J]]);export{W as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as _,c as u,_ as f,d as m,a as l,b as h,e as d,w as p,o,f as v,v as C,F as g,r as b,g as w,h as x,n as y,i as S}from"./_plugin-vue_export-helper.4cb7dd76.js";import{p as k}from"./index.b93f3d06.js";import{C as B,a as P}from"./Carousel.62c97a79.js";import"./session-utm.744b0db3.js";function V(t,s){{const a=btoa(JSON.stringify({filename:t}));window.parent.postMessage(JSON.parse(JSON.stringify({type:"open",filename:t,id:a})),window.location.origin),window.addEventListener("message",e=>{e.data.id===a&&s(e.data.data)})}}const L=t=>{const s=_(null);return window.$isCmsPreview&&V(t,a=>{s.value=a}),{liveContent:s}},N=t=>{const s={slides:[]};return t.header?.pitch_bar&&(s.slides=t.header.pitch_bar),s},O=t=>{const{liveContent:s}=L("layout"),a=u(()=>(s.value?N(s.value).slides:t.slides).map(({html:n})=>k(n).value.replace(/<\/?p>/g,"").replace(/<(\/?d-md)>/g,"<$1>"))),e=u(()=>a.value.filter(r=>r).length);return{parsedContents:a,countValidSlides:e}},J=m({__name:"PitchBar",props:{slides:{}},setup(t,{expose:s}){s();const a=t,{parsedContents:e,countValidSlides:r}=O(a),n={props:a,parsedContents:e,countValidSlides:r,Carousel:B,CarouselControl:P};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),M={class:"bg-base-100 relative z-20"},z={class:"container md:w-2/3 mx-auto px-3 py-1"},D=["innerHTML"],E={class:"text-xl leading-none text-base-400"};function F(t,s,a,e,r,n){return o(),l("div",M,[h("div",z,[d(e.Carousel,{autoplay:e.countValidSlides>1?7e3:void 0},{controls:p(()=>[v(h("div",E,[d(e.CarouselControl,{class:"pr-2 bg-base-100 hover:text-base-700","is-prev":""}),d(e.CarouselControl,{class:"pl-2 bg-base-100 hover:text-base-700"})],512),[[C,e.countValidSlides>1]])]),default:p(()=>[(o(!0),l(g,null,b(a.slides,(i,c)=>(o(),l("li",{key:c,class:"shrink-0 basis-full h-full text-center"},[(o(),w(x(i.href?"ALink":"span"),{href:i.href,target:i.target,class:y(["inline-block px-8",i.href?"hover:underline":null])},{default:p(()=>[e.parsedContents[c]?(o(),l("span",{key:0,innerHTML:e.parsedContents[c],class:"prose text-sm text-base-800"},null,8,D)):S("",!0)]),_:2},1032,["href","target","class"]))]))),128))]),_:1},8,["autoplay"])])])}const R=f(J,[["render",F]]);export{R as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{L as R,j as O,M as q,N as A,c as d,O as F,_ as N,d as E,m as M,o as i,a as c,x as h,i as f,b as g,y as S,n as B,e as x,w as I,g as j,F as Q,h as T,q as G,f as J,v as K,r as U}from"./_plugin-vue_export-helper.4cb7dd76.js";import{a as D,b as X}from"./api.4984c5be.js";import{C as Y,a as Z}from"./Carousel.62c97a79.js";import{d as $,e as ee,g as te,l as ne,h as ae,w as re}from"./index.b93f3d06.js";import{i as se,g as oe}from"./img.abbe849f.js";import"./session-utm.744b0db3.js";const ie=(t,n=R.get("lang"))=>n&&t.i18n&&t.i18n[n]?t.i18n[n]:t.name||t.title||se(t.i18n,n)||"",le=ie,ce=t=>t&&t.min_quantity||1,ue=ce,de=t=>!t.hasOwnProperty("quantity")||t.quantity>=ue(t),W=de,me=t=>{const n=O(t.title||""),r=O(t.titleLink||""),e=O(!1);let m=null;const s=O(null),u=q(t.products||[]);return t.products||(e.value=!0,m=(async()=>{let _=t.searchQuery||"",b;if(t.collectionId){try{const{data:a}=await D.get(`collections/${t.collectionId}`);b=a}catch(a){console.error(a),s.value=a}const l=b?.products;Array.isArray(l)&&l.length&&(_+=`&_id=${l.slice(0,60).join(",")}`),!n.value&&n.value!==null&&b?.name&&(n.value=b?.name)}const v=t.limit||24;let p=`offset=${t.page?(t.page-1)*v:0}&limit=${v}`;t.sort&&(p+=`&sort=${t.sort}`),p+=_;try{const{data:l}=await D.get(`search/v1?${p}`);if(t.isShuffle){let a=l.result.filter(P=>P.available&&W(P)).length,k,C;for(;a;)C=Math.floor(Math.random()*a--),k=l.result[a],l.result[a]=l.result[C],l.result[C]=k}l.result.forEach(a=>u.push(a))}catch(l){console.error(l),s.value=l}e.value=!1})()),{title:n,titleLink:r,isFetching:e,fetching:m,fetchError:s,products:u}},he=t=>{const n=O(!1);let r=null;const e=O(null),{productId:m}=t,s=q({...t.product,_id:t.product?._id||m,price:A(t.product||{})});!t.product&&m&&(n.value=!0,r=(async()=>{try{const{data:a}=await D.get(`products/${m}`);Object.assign(s,a)}catch(a){console.error(a),e.value=a}n.value=!1})());const u=d(()=>le(s)),_=d(()=>{const{slug:a}=s;return typeof a=="string"?`/${a}`:null}),b=d(()=>{const{pictures:a}=s,k=[];return a&&a.forEach(C=>{const P=oe(C);P&&k.push(P)}),k}),v=d(()=>W(s)),w=d(()=>v.value&&s.available&&s.visible),p=d(()=>{if(F(s)){const a=s.base_price;return Math.round((a-A(s))*100/a)}return 0}),l=d(()=>s.has_variations?!0:!!s.variations?.length);return{isFetching:n,fetching:r,fetchError:e,product:s,title:u,link:_,images:b,isInStock:v,isActive:w,discountPercentage:p,hasVariations:l}},z=(t,n)=>{const{type:r,value:e}=n;let m;return e?(r==="percentage"?m=t*((100-e)/100):m=t-e,m>0?m:0):t},_e=t=>{const n=d(()=>t.product||{price:t.price||0,base_price:t.basePrice}),r=d(()=>{const{variations:o}=n.value;if(o){const y=A(n.value);for(let L=0;L<o.length;L++)if(A({...n.value,...o[L]})>y)return!0}return!1}),e=d(()=>{const o=A(n.value),y=$.value;return y&&(!y.min_amount||o>y.min_amount)?z(o,y):o}),m=d(()=>{if(F(n.value))return n.value.base_price;const o=A(n.value);return o>e.value?o:0}),s=d(()=>t.installmentsOption||ee.value||{max_number:1}),u=d(()=>{if(s.value.max_number<=1)return 1;const o=s.value.min_installment||5,y=Math.round(e.value/o);return Math.min(y,s.value.max_number)}),_=d(()=>s.value.monthly_interest||0),b=d(()=>{if(u.value>=2){if(!_.value)return e.value/u.value;const o=_.value/100;return e.value*o/(1-(1+o)**-u.value)}return 0}),v=d(()=>{const o=t.discountOption||te.value;return o&&(!o.min_amount||o.min_amount<=e.value)&&(!t.isAmountTotal||o.apply_at==="total")?o:{}}),w=d(()=>{const{label:o}=v.value;return o?o.includes(" ")?o:`via ${o}`:""}),p=d(()=>z(e.value,v.value)),l=d(()=>{if(t.loyaltyPointsProgram)return t.loyaltyPointsProgram;const o=ne.value;if(o){const y=Object.keys(o);for(let L=0;L<y.length;L++){const V=o[y[L]];if(V?.earn_percentage&&V.earn_percentage>0)return V}}return{ratio:0}}),a=d(()=>l.value.min_subtotal_to_earn||0),k=d(()=>l.value.name||""),C=d(()=>l.value.earn_percentage||0),P=d(()=>C.value*l.value.ratio),H=d(()=>P.value>=1?e.value*(P.value/100):0);return{hasVariedPrices:r,salePrice:e,comparePrice:m,installmentsObject:s,installmentsNumber:u,monthlyInterest:_,installmentValue:b,discountObject:v,discountLabel:w,priceWithDiscount:p,pointsProgramObject:l,pointsMinPrice:a,pointsProgramName:k,earnPointsPercentage:C,cashbackPercentage:P,cashbackValue:H}},fe=E({__name:"Prices",props:{isBig:{type:Boolean},isLiteral:{type:Boolean},hasCashback:{type:Boolean,default:!0},hasPriceOptions:{type:Boolean,default:!0},product:{},price:{},basePrice:{},isAmountTotal:{type:Boolean},installmentsOption:{},discountOption:{},loyaltyPointsProgram:{}},setup(t,{expose:n}){n();const r=t,{hasVariedPrices:e,salePrice:m,comparePrice:s,cashbackPercentage:u,cashbackValue:_,installmentsNumber:b,monthlyInterest:v,installmentValue:w,priceWithDiscount:p,discountLabel:l}=_e(r),a={props:r,hasVariedPrices:e,salePrice:m,comparePrice:s,cashbackPercentage:u,cashbackValue:_,installmentsNumber:b,monthlyInterest:v,installmentValue:w,priceWithDiscount:p,discountLabel:l};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),ge={key:0,class:"text-base-500 mr-1 [font-size:87%]"},ve={key:0},be={key:1},pe={key:0},ye={key:0,class:"relative z-10"},ke=["data-tooltip"],Pe=g("i",{class:"i-arrow-uturn-left mr-1"},null,-1),xe={class:"font-medium"},we=g("small",null," cashback",-1),Ce={key:0},Oe={key:0},Ie={key:1},Le={key:2},Se={key:0},Ae={key:0},Ve={key:1};function je(t,n,r,e,m,s){const u=M("Fade");return i(),c("div",{class:B(["text-base-600 [&>div]:[font-size:90%] [&_small]:lowercase [&_small]:[font-size:92%]",r.isBig?"text-lg":null]),"data-prices":""},[e.comparePrice?(i(),c("span",ge,[r.isLiteral?(i(),c("small",ve,h("De "))):f("",!0),g("s",null,h(t.$money(e.comparePrice)),1),r.isLiteral?(i(),c("small",be,h(" Por"))):f("",!0)])):f("",!0),g("strong",{class:B(["inline-block text-base-800",r.isBig?"text-5xl block":null])},[e.hasVariedPrices?(i(),c("small",pe,h("A partir de "))):f("",!0),S(" "+h(t.$money(e.salePrice)),1)],2),x(u,{slide:"down"},{default:I(()=>[e.cashbackValue&&r.hasCashback?(i(),c("div",ye,[g("span",{"data-tooltip":"Receba $1 de volta".replace("$1",t.$percentage(e.cashbackPercentage))},[Pe,g("span",xe,h(t.$money(e.cashbackValue)),1),we],8,ke)])):f("",!0)]),_:1}),x(u,{slide:"down"},{default:I(()=>[e.installmentValue&&r.hasPriceOptions?(i(),c("div",Ce,[r.isLiteral?(i(),c("small",Oe,h("Até "))):f("",!0),S(" "+h(e.installmentsNumber)+"x ",1),r.isLiteral?(i(),c("small",Ie,h(" De "))):f("",!0),g("span",null,h(t.$money(e.installmentValue)),1),!e.monthlyInterest&&r.isLiteral?(i(),c("small",Le,h("Sem juros"))):f("",!0)])):f("",!0)]),_:1}),x(u,{slide:"down"},{default:I(()=>[e.priceWithDiscount<e.salePrice&&r.hasPriceOptions?(i(),c("div",Se,[e.discountLabel?f("",!0):(i(),c("small",Ae,h("A partir de "))),g("span",null,h(t.$money(e.priceWithDiscount)),1),e.discountLabel?(i(),c("small",Ve,h(` ${e.discountLabel}`),1)):f("",!0)])):f("",!0)]),_:1})],2)}const Be=N(fe,[["render",je]]),De=E({__name:"ProductCard",props:{product:{},productId:{},headingTag:{default:"h3"}},setup(t,{expose:n}){n();const r=t,{product:e,title:m,link:s,images:u,isInStock:_,isActive:b,discountPercentage:v,hasVariations:w}=he({product:r.product,productId:r.productId}),p=O(null),l=ae(p),a=O(!1);re(l,()=>{a.value=!0});const k={props:r,product:e,title:m,link:s,images:u,isInStock:_,isActive:b,discountPercentage:v,hasVariations:w,card:p,isHovered:l,wasHoveredOnce:a,get addProductToCart(){return X},Prices:Be};return Object.defineProperty(k,"__isScriptSetup",{enumerable:!1,value:!0}),k}}),Ne=["data-sku"],Ee={class:"aspect-square p-2 motion-safe:group-hover:scale-110 transition-transform"},Me={class:"relative w-full h-full bg-white rounded overflow-hidden group-hover:rounded-none"},Te={key:1,class:"w-full h-full bg-gradient-to-br from-base-50/20 to-base-100"},ze={key:0,class:"uno-bm03rg"},qe={class:"relative flex flex-col grow justify-between p-4 group-hover:backdrop-blur-md bg-white/40 z-10"},Fe={class:"pt-2"},Qe={key:0},We={key:1,class:"ui-badge bg-warning-100 text-warning-700"},He=g("i",{class:"i-plus-20-solid mr-0.5"},null,-1);function Re(t,n,r,e,m,s){const u=M("AImg");return i(),c("article",{ref:"card","data-sku":e.product.sku,class:"relative h-full max-w-[350px] mx-auto py-3 group"},[(i(),j(T(e.link?"ALink":"span"),{href:e.link,class:"flex flex-col h-full rounded overflow-hidden group-hover:shadow group-hover:ring-1 ring-black/5"},{default:I(()=>[g("div",Ee,[g("div",Me,[e.images?.length?(i(),c(Q,{key:0},[x(u,{picture:e.images[0],alt:e.title,class:"absolute top-0 left-0 block w-full h-full object-cover"},null,8,["picture","alt"]),e.images[1]&&e.wasHoveredOnce?(i(),j(u,{key:0,picture:e.images[1],alt:e.title,class:"absolute top-0 left-0 block w-full h-full object-cover opacity-0 group-hover:opacity-100 transition-opacity motion-safe:duration-300 text-transparent z-10"},null,8,["picture","alt"])):f("",!0)],64)):(i(),c("div",Te))])]),e.discountPercentage?(i(),c("span",ze,[S(" -"),g("strong",null,h(e.discountPercentage),1),S("% ")])):f("",!0),g("div",qe,[(i(),j(T(r.headingTag),{class:B(["ui-link no-underline line-clamp-2",[e.isActive?"text-base-700":"text-base-500",e.link?"group-hover:underline group-hover:text-primary":null]])},{default:I(()=>[S(h(e.title),1)]),_:1},8,["class"])),g("div",Fe,[e.isActive?(i(),c("div",Qe,[x(e.Prices,{product:e.product},null,8,["product"])])):(i(),c("span",We,h(e.isInStock?"Inativo":"Sem estoque"),1))]),e.isActive&&!e.hasVariations?(i(),c("button",{key:0,class:"uno-3suct9 ui-btn-sm ui-btn-primary",onClick:n[0]||(n[0]=G(_=>e.addProductToCart(e.product),["prevent"]))},[He,S(" "+h("Adicionar ao carrinho"))])):f("",!0)])]),_:1},8,["href"]))],8,Ne)}const Ge=N(De,[["render",Re]]),Je=E({__name:"ProductShelf",props:{collectionId:{},searchQuery:{},sort:{},title:{},titleLink:{},isShuffle:{type:Boolean},limit:{},page:{},products:{}},async setup(t,{expose:n}){n();const r=t,{title:e,titleLink:m,fetching:s,products:u}=me(r),_={props:r,title:e,titleLink:m,fetching:s,products:u,Carousel:Y,CarouselControl:Z,ProductCard:Ge};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}}),Ke={class:"ui-section"},Ue={key:0,class:"max-w-prose mx-auto text-center mb-2"},Xe={class:"ui-text-brand text-3xl"},Ye={key:1,class:"text-base-700"},Ze={class:"text-3xl lg:text-2xl leading-none text-primary lg:opacity-0 group-hover/shelf:opacity-90 transition-opacity"};function $e(t,n,r,e,m,s){const u=M("ALink");return i(),c("section",Ke,[e.title?(i(),c("div",Ue,[g("h2",Xe,[e.titleLink?(i(),j(u,{key:0,href:e.titleLink,class:"ui-link"},{default:I(()=>[S(h(e.title),1)]),_:1},8,["href"])):(i(),c("span",Ye,h(e.title),1))])])):f("",!0),x(e.Carousel,{class:"group/shelf"},{controls:I(()=>[J(g("div",Ze,[x(e.CarouselControl,{class:"!top-1/2 !-left-4 w-12 h-12 bg-transparent lg:bg-white/80 lg:hover:bg-primary-300/60 rounded-full lg:shadow-sm lg:ring-1 ring-black/5","is-prev":""}),x(e.CarouselControl,{class:"!top-1/2 !-right-4 w-12 h-12 bg-transparent lg:bg-white/80 lg:hover:bg-primary-300/60 rounded-full lg:shadow-sm lg:ring-1 ring-black/5"})],512),[[K,e.products.length>2]])]),default:I(()=>[(i(!0),c(Q,null,U(e.products,_=>(i(),c("li",{key:_._id,class:"basis-1/2 md:basis-1/3 lg:basis-1/4 shrink-0"},[x(e.ProductCard,{product:_},null,8,["product"])]))),128))]),_:1})])}const ot=N(Je,[["render",$e]]);export{ot as default};
|