cloudcommerce 0.23.1 → 0.23.2
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/CHANGELOG.md +12 -0
- package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
- package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
- package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
- package/ecomplus-stores/barra-doce/package.json +2 -2
- package/ecomplus-stores/iluminim/functions/many/package.json +3 -3
- package/ecomplus-stores/iluminim/functions/ssr/package.json +6 -6
- package/ecomplus-stores/iluminim/functions/with-apps/package.json +3 -3
- package/ecomplus-stores/iluminim/package.json +2 -2
- package/package.json +2 -2
- package/packages/api/package.json +1 -1
- package/packages/apps/affilate-program/package.json +1 -1
- 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 +1 -1
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/fb-conversions/package.json +1 -1
- package/packages/apps/flash-courier/package.json +1 -1
- package/packages/apps/frenet/package.json +1 -1
- package/packages/apps/galaxpay/package.json +1 -1
- package/packages/apps/google-analytics/package.json +1 -1
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/melhor-envio/package.json +1 -1
- package/packages/apps/mercadopago/package.json +1 -1
- package/packages/apps/pagarme/package.json +1 -1
- package/packages/apps/paghiper/package.json +1 -1
- package/packages/apps/pix/package.json +1 -1
- package/packages/apps/tiny-erp/package.json +1 -1
- package/packages/apps/webhooks/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +1 -1
- package/packages/eslint/package.json +1 -1
- package/packages/events/package.json +1 -1
- package/packages/feeds/package.json +1 -1
- package/packages/firebase/package.json +1 -1
- package/packages/i18n/package.json +1 -1
- package/packages/modules/package.json +1 -1
- package/packages/passport/package.json +1 -1
- package/packages/ssr/cloudflare/swr-worker.js +16 -8
- package/packages/ssr/lib/firebase/serve-storefront.js +13 -0
- package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
- package/packages/ssr/package.json +1 -1
- package/packages/ssr/src/cloudflare/swr-worker.ts +18 -10
- package/packages/ssr/src/cloudflare/tsconfig.json +2 -1
- package/packages/ssr/src/firebase/serve-storefront.ts +14 -0
- package/packages/storefront/dist/client/_astro/ShopHeader.2400b065.js +4 -0
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/chunks/{_...d3f15170.mjs → _...c5a36021.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{account@_@astro.38a725e7.mjs → account@_@astro.3e90f29a.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/{endpoint@_@js.a92a4584.mjs → endpoint@_@js.b79eed3b.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{fallback@_@astro.4e98328e.mjs → fallback@_@astro.9f73db0f.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{index@_@astro.2dda826c.mjs → index@_@astro.0221a7bd.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{index@_@astro.db07fb09.mjs → index@_@astro.66b84ac2.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/pages/{_...slug_.astro.88866aae.mjs → _...slug_.astro.501582b9.mjs} +5 -4
- package/packages/storefront/dist/server/chunks/pages/{endpoint.js.a11da4ad.mjs → endpoint.js.4c130895.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/pages/{fallback.astro.c1fd06ab.mjs → fallback.astro.8d1c6076.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/pages/{index.astro.c45cc893.mjs → index.astro.f1104ab2.mjs} +1 -1
- package/packages/storefront/dist/server/entry.mjs +8 -8
- package/packages/storefront/dist/server/renderers.mjs +1 -1
- package/packages/storefront/package.json +1 -1
- package/packages/storefront/src/lib/composables/use-sticky-header.ts +7 -3
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.7ecb7597.js +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.23.2](https://github.com/ecomplus/cloud-commerce/compare/v0.23.1...v0.23.2) (2023-08-08)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **ssr:** Add new `X-Style-Link` header for custom CDN layer early hints ([390d54a](https://github.com/ecomplus/cloud-commerce/commit/390d54aed024838fb36633d5c2a4429b4633b6f6))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **ssr:** Prevent erro with undefined `cacheControl` on SWR worker ([b926936](https://github.com/ecomplus/cloud-commerce/commit/b926936908a9628a62d13603660d8a87fc7e8ddf))
|
|
16
|
+
|
|
5
17
|
### [0.23.1](https://github.com/ecomplus/cloud-commerce/compare/v0.23.0...v0.23.1) (2023-08-08)
|
|
6
18
|
|
|
7
19
|
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"main": "index.js",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@cloudcommerce/feeds": "^0.23.
|
|
19
|
-
"@cloudcommerce/firebase": "^0.23.
|
|
20
|
-
"@cloudcommerce/passport": "^0.23.
|
|
18
|
+
"@cloudcommerce/feeds": "^0.23.1",
|
|
19
|
+
"@cloudcommerce/firebase": "^0.23.1",
|
|
20
|
+
"@cloudcommerce/passport": "^0.23.1"
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
},
|
|
18
18
|
"main": "index.js",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@cloudcommerce/api": "^0.23.
|
|
21
|
-
"@cloudcommerce/firebase": "^0.23.
|
|
22
|
-
"@cloudcommerce/ssr": "^0.23.
|
|
20
|
+
"@cloudcommerce/api": "^0.23.1",
|
|
21
|
+
"@cloudcommerce/firebase": "^0.23.1",
|
|
22
|
+
"@cloudcommerce/ssr": "^0.23.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@cloudcommerce/i18n": "^0.23.
|
|
26
|
-
"@cloudcommerce/storefront": "^0.23.
|
|
27
|
-
"@cloudcommerce/types": "^0.23.
|
|
25
|
+
"@cloudcommerce/i18n": "^0.23.1",
|
|
26
|
+
"@cloudcommerce/storefront": "^0.23.1",
|
|
27
|
+
"@cloudcommerce/types": "^0.23.1",
|
|
28
28
|
"@fontsource/croissant-one": "^5.0.5",
|
|
29
29
|
"@iconify-json/mingcute": "^1.1.7"
|
|
30
30
|
}
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"main": "index.js",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@cloudcommerce/events": "^0.23.
|
|
19
|
-
"@cloudcommerce/firebase": "^0.23.
|
|
20
|
-
"@cloudcommerce/modules": "^0.23.
|
|
18
|
+
"@cloudcommerce/events": "^0.23.1",
|
|
19
|
+
"@cloudcommerce/firebase": "^0.23.1",
|
|
20
|
+
"@cloudcommerce/modules": "^0.23.1"
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"url": "https://github.com/ecomplus/cloud-commerce/issues"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@cloudcommerce/cli": "^0.23.
|
|
26
|
+
"@cloudcommerce/cli": "^0.23.1"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@cloudcommerce/eslint": "^0.
|
|
29
|
+
"@cloudcommerce/eslint": "^0.23.1"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"main": "index.js",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@cloudcommerce/feeds": "^0.23.
|
|
19
|
-
"@cloudcommerce/firebase": "^0.23.
|
|
20
|
-
"@cloudcommerce/passport": "^0.23.
|
|
18
|
+
"@cloudcommerce/feeds": "^0.23.1",
|
|
19
|
+
"@cloudcommerce/firebase": "^0.23.1",
|
|
20
|
+
"@cloudcommerce/passport": "^0.23.1"
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
},
|
|
18
18
|
"main": "index.js",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@cloudcommerce/api": "^0.23.
|
|
21
|
-
"@cloudcommerce/firebase": "^0.23.
|
|
22
|
-
"@cloudcommerce/ssr": "^0.23.
|
|
20
|
+
"@cloudcommerce/api": "^0.23.1",
|
|
21
|
+
"@cloudcommerce/firebase": "^0.23.1",
|
|
22
|
+
"@cloudcommerce/ssr": "^0.23.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@cloudcommerce/i18n": "^0.23.
|
|
26
|
-
"@cloudcommerce/storefront": "^0.23.
|
|
27
|
-
"@cloudcommerce/types": "^0.23.
|
|
25
|
+
"@cloudcommerce/i18n": "^0.23.1",
|
|
26
|
+
"@cloudcommerce/storefront": "^0.23.1",
|
|
27
|
+
"@cloudcommerce/types": "^0.23.1",
|
|
28
28
|
"@fontsource-variable/heebo": "^5.0.5",
|
|
29
29
|
"@iconify-json/carbon": "^1.1.18"
|
|
30
30
|
}
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"main": "index.js",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@cloudcommerce/events": "^0.23.
|
|
19
|
-
"@cloudcommerce/firebase": "^0.23.
|
|
20
|
-
"@cloudcommerce/modules": "^0.23.
|
|
18
|
+
"@cloudcommerce/events": "^0.23.1",
|
|
19
|
+
"@cloudcommerce/firebase": "^0.23.1",
|
|
20
|
+
"@cloudcommerce/modules": "^0.23.1"
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"url": "https://github.com/ecomplus/cloud-commerce/issues"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@cloudcommerce/cli": "^0.23.
|
|
26
|
+
"@cloudcommerce/cli": "^0.23.1"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@cloudcommerce/eslint": "^0.
|
|
29
|
+
"@cloudcommerce/eslint": "^0.23.1"
|
|
30
30
|
}
|
|
31
31
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloudcommerce",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.23.
|
|
4
|
+
"version": "0.23.2",
|
|
5
5
|
"description": "Open fair-code headless commerce platform: API-first, microservices based, event driven and cloud native",
|
|
6
6
|
"main": "packages/api/lib/index.js",
|
|
7
7
|
"author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"vite": "^4.4.9",
|
|
31
31
|
"vitest": "^0.33.0",
|
|
32
32
|
"zx": "^7.2.3",
|
|
33
|
-
"@cloudcommerce/eslint": "0.23.
|
|
33
|
+
"@cloudcommerce/eslint": "0.23.2"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"fix-install": "bash scripts/pre-install.sh && pnpm i",
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
const HEADER_CACHE_CONTROL = 'Cache-Control';
|
|
4
4
|
const HEADER_SSR_TOOK = 'X-Load-Took';
|
|
5
5
|
const HEADER_STALE_AT = 'X-Edge-Stale-At';
|
|
6
|
+
const HEADER_STYLE_LINK = 'X-Style-Link';
|
|
6
7
|
const resolveCacheControl = (response) => {
|
|
7
8
|
const cacheControl = response.headers.get(HEADER_CACHE_CONTROL);
|
|
8
|
-
if (!response.headers.get(HEADER_SSR_TOOK)) {
|
|
9
|
+
if (!cacheControl || !response.headers.get(HEADER_SSR_TOOK)) {
|
|
9
10
|
return { cacheControl };
|
|
10
11
|
}
|
|
11
12
|
const parts = cacheControl.replace(/ +/g, '').split(',');
|
|
@@ -14,11 +15,11 @@ const resolveCacheControl = (response) => {
|
|
|
14
15
|
result[key] = Number(value) || 0;
|
|
15
16
|
return result;
|
|
16
17
|
}, {});
|
|
17
|
-
const
|
|
18
|
-
if (!
|
|
18
|
+
const cdnMaxAge = typeof sMaxAge === 'number' ? sMaxAge : maxAge;
|
|
19
|
+
if (!cdnMaxAge || cdnMaxAge <= 1 || !staleMaxAge || staleMaxAge <= cdnMaxAge) {
|
|
19
20
|
return { cacheControl };
|
|
20
21
|
}
|
|
21
|
-
const staleAt = Date.now() + (
|
|
22
|
+
const staleAt = Date.now() + (cdnMaxAge * 1000);
|
|
22
23
|
return {
|
|
23
24
|
cacheControl: `public, max-age=${maxAge}, must-revalidate`
|
|
24
25
|
+ `, s-maxage=${staleMaxAge}`,
|
|
@@ -40,7 +41,7 @@ const addHeaders = (response, headers) => {
|
|
|
40
41
|
return res;
|
|
41
42
|
};
|
|
42
43
|
const toCacheRes = (response, cacheControl, staleAt) => {
|
|
43
|
-
if (
|
|
44
|
+
if (cacheControl === undefined) {
|
|
44
45
|
const parsedCacheControl = resolveCacheControl(response);
|
|
45
46
|
cacheControl = parsedCacheControl.cacheControl;
|
|
46
47
|
staleAt = parsedCacheControl.staleAt;
|
|
@@ -66,7 +67,7 @@ const swr = async (event) => {
|
|
|
66
67
|
}
|
|
67
68
|
const [uri] = event.request.url.split('?', 2);
|
|
68
69
|
const request = new Request(`${uri}?t=${Date.now()}`, event.request);
|
|
69
|
-
const cacheKey = new Request(`${uri}?v=
|
|
70
|
+
const cacheKey = new Request(`${uri}?v=29`, {
|
|
70
71
|
method: event.request.method,
|
|
71
72
|
});
|
|
72
73
|
const cachedRes = await caches.default.match(cacheKey);
|
|
@@ -91,10 +92,17 @@ const swr = async (event) => {
|
|
|
91
92
|
const newCacheRes = toCacheRes(response, cacheControl, staleAt);
|
|
92
93
|
event.waitUntil(caches.default.put(cacheKey, newCacheRes));
|
|
93
94
|
}
|
|
94
|
-
|
|
95
|
+
const headers = {
|
|
95
96
|
[HEADER_CACHE_CONTROL]: cacheControl,
|
|
96
97
|
'x-edge-state': edgeState,
|
|
97
|
-
}
|
|
98
|
+
};
|
|
99
|
+
const styleLink = response.headers.get(HEADER_STYLE_LINK);
|
|
100
|
+
if (styleLink) {
|
|
101
|
+
// https://developers.cloudflare.com/workers/examples/103-early-hints/
|
|
102
|
+
headers.link = `</${styleLink}>; rel=preload; as=style`;
|
|
103
|
+
headers[HEADER_STYLE_LINK] = null;
|
|
104
|
+
}
|
|
105
|
+
return addHeaders(response, headers);
|
|
98
106
|
};
|
|
99
107
|
// eslint-disable-next-line no-restricted-globals
|
|
100
108
|
addEventListener('fetch', (event) => {
|
|
@@ -176,6 +176,19 @@ export default async (req, res) => {
|
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
178
|
})();
|
|
179
|
+
/*
|
|
180
|
+
Check Response methods used by Astro Node.js integration:
|
|
181
|
+
https://github.com/withastro/astro/blob/main/packages/integrations/node/src/nodeMiddleware.ts
|
|
182
|
+
*/
|
|
183
|
+
const _writeHead = res.writeHead;
|
|
184
|
+
/* eslint-disable prefer-rest-params */
|
|
185
|
+
// @ts-ignore
|
|
186
|
+
res.writeHead = function writeHead(status, headers) {
|
|
187
|
+
if (status === 200 && headers && cssFilename) {
|
|
188
|
+
headers['X-Style-Link'] = cssFilename;
|
|
189
|
+
}
|
|
190
|
+
_writeHead.apply(res, [status, headers]);
|
|
191
|
+
};
|
|
179
192
|
/*
|
|
180
193
|
https://github.com/withastro/astro/blob/main/examples/ssr/server/server.mjs
|
|
181
194
|
import { handler as renderStorefront } from '../dist/server/entry.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-storefront.js","sourceRoot":"","sources":["../../src/firebase/serve-storefront.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serve-storefront.js","sourceRoot":"","sources":["../../src/firebase/serve-storefront.ts"],"names":[],"mappings":"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"}
|