cloudcommerce 2.6.3 → 2.6.5
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/workflows/test-apps.yml +3 -3
- package/CHANGELOG.md +21 -0
- package/README.md +2 -0
- package/action.yml +2 -2
- package/ecomplus-stores/barradoce/.gitpod.yml +1 -1
- package/ecomplus-stores/barradoce/.idx/dev.nix +5 -4
- package/ecomplus-stores/barradoce/functions/many/package.json +3 -3
- package/ecomplus-stores/barradoce/functions/ssr/content/pages/home.json +3 -0
- package/ecomplus-stores/barradoce/functions/ssr/content/pages/products.json +3 -0
- package/ecomplus-stores/barradoce/functions/ssr/content/reviews.json +71 -0
- package/ecomplus-stores/barradoce/functions/ssr/content/types.d.ts +5 -0
- package/ecomplus-stores/barradoce/functions/ssr/package.json +6 -6
- package/ecomplus-stores/barradoce/functions/ssr/src/components/BuyerReviews.vue +83 -0
- package/ecomplus-stores/barradoce/functions/ssr/src/components/CheckoutPage.vue +6 -6
- package/ecomplus-stores/barradoce/functions/ssr/src/components/FooterStamps.vue +4 -4
- package/ecomplus-stores/barradoce/functions/ssr/src/components/ProductDetails.vue +36 -5
- package/ecomplus-stores/barradoce/functions/ssr/src/components/ShippingCalculator.vue +1 -1
- package/ecomplus-stores/barradoce/functions/ssr/src/env.d.ts +1 -0
- package/ecomplus-stores/barradoce/functions/ssr/src/main/content/Sections.astro +4 -0
- package/ecomplus-stores/barradoce/functions/with-apps/package.json +3 -3
- package/ecomplus-stores/barradoce/package.json +2 -2
- package/package.json +7 -7
- package/packages/api/package.json +1 -1
- package/packages/apps/affiliate-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/mandae/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 +2 -2
- package/packages/apps/pagarme-v5/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 +2 -2
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +2 -2
- package/packages/eslint/package.json +6 -6
- package/packages/events/package.json +1 -1
- 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 +1 -1
- package/packages/passport/package.json +1 -1
- package/packages/ssr/lib/lib/cron-ssr-save-views.js +8 -85
- package/packages/ssr/lib/lib/cron-ssr-save-views.js.map +1 -1
- package/packages/ssr/package.json +5 -5
- package/packages/ssr/src/lib/cron-ssr-save-views.ts +8 -91
- package/packages/storefront/dist/client/_astro/AccountPage.B4WZaOzX.js +1 -0
- package/packages/storefront/dist/client/_astro/CartSidebar.DAGdpIcU.js +1 -0
- package/packages/storefront/dist/client/_astro/HeroSlider.Dq_9kcdU.js +1 -0
- package/packages/storefront/dist/client/_astro/PitchBar.BwLlIs6F.js +1 -0
- package/packages/storefront/dist/client/_astro/Prices.BgHTq5id.js +1 -0
- package/packages/storefront/dist/client/_astro/ProductDetails.CnYNdPl5.js +7 -0
- package/packages/storefront/dist/client/_astro/ProductShelf.kfADQTUO.js +1 -0
- package/packages/storefront/dist/client/_astro/SearchModal.DcmvABes.js +1 -0
- package/packages/storefront/dist/client/_astro/SearchShowcase.C9GWwOnF.js +1 -0
- package/packages/storefront/dist/client/_astro/ShippingCalculator.DE01D7dt.js +1 -0
- package/packages/storefront/dist/client/_astro/ShopHeader.Cf4t6O6z.js +7 -0
- package/packages/storefront/dist/client/_astro/_commonjsHelpers.Cpj98o6Y.js +1 -0
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.CBemkWnU.js +5 -0
- package/packages/storefront/dist/client/_astro/{_slug_.4W7qhV-L.css → _slug_.DX_OkMX7.css} +1 -1
- package/packages/storefront/dist/client/_astro/{afetch.OifQZgwR.js → afetch.DPLba2tr.js} +1 -1
- package/packages/storefront/dist/client/_astro/client.CdXC84C5.js +1 -0
- package/packages/storefront/dist/client/_astro/customer-session.CNe1heRH.js +7 -0
- package/packages/storefront/dist/client/_astro/{firebase-app.iLdzDVjL.js → firebase-app.CBckq0Sj.js} +1 -1
- package/packages/storefront/dist/client/_astro/{format-money.1_HtF5S2.js → format-money.DINpWB0x.js} +1 -1
- package/packages/storefront/dist/client/_astro/grid-title.D4m7-g3h.js +1 -0
- package/packages/storefront/dist/client/_astro/hoisted.B2rH1xwX.js +8 -0
- package/packages/storefront/dist/client/_astro/hoisted.DBPXHTEb.js +1 -0
- package/packages/storefront/dist/client/_astro/hoisted.EBqhuD5o.js +1 -0
- package/packages/storefront/dist/client/_astro/{hoisted.GaT7bmE3.js → hoisted.ut_nNM_H.js} +1 -1
- package/packages/storefront/dist/client/_astro/i18n.B3skIOFg.js +1 -0
- package/packages/storefront/dist/client/_astro/img-sizes.rFK7so02.js +1 -0
- package/packages/storefront/dist/client/_astro/img.D5a6GzeE.js +1 -0
- package/packages/storefront/dist/client/_astro/index.CFw6O-Kt.js +1 -0
- package/packages/storefront/dist/client/_astro/index.DBfgCyd-.js +1 -0
- package/packages/storefront/dist/client/_astro/{modules-info.HP6478mG.js → modules-info.BHKiT6oA.js} +1 -1
- package/packages/storefront/dist/client/_astro/name.BZA9xqh-.js +1 -0
- package/packages/storefront/dist/client/_astro/photoswipe.esm.C0FT-EY-.js +4 -0
- package/packages/storefront/dist/client/_astro/price.CHiL6Z1J.js +1 -0
- package/packages/storefront/dist/client/_astro/sf-utils.Cigv01cN.js +13 -0
- package/packages/storefront/dist/client/_astro/shopping-cart.D-w8Z-4p.js +1 -0
- package/packages/storefront/dist/client/_astro/use-analytics.CQDdNgwF.js +1 -0
- package/packages/storefront/dist/client/_astro/use-cms-preview.4Hq7LCmA.js +1 -0
- package/packages/storefront/dist/client/_astro/use-product-card.CQRlRsNX.js +1 -0
- package/packages/storefront/dist/client/_astro/use-text-value.UjCYLWjm.js +4 -0
- package/packages/storefront/dist/client/img/uploads/logo.png +0 -0
- package/packages/storefront/dist/server/chunks/{CartSidebar_3_1aFp67.mjs → CartSidebar_BmwcZuxv.mjs} +36 -4
- package/packages/storefront/dist/server/chunks/{SearchModal_2azP1u7P.mjs → SearchModal_BvEnUvAx.mjs} +4 -3
- package/packages/storefront/dist/server/chunks/_.._DORZHe_Z.mjs +5 -0
- package/packages/storefront/dist/server/chunks/{_page__qqIVxbal.mjs → _page__DU3kNewy.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/{account_vK6pmJlz.mjs → account_CaTloREf.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/astro/{assets-service_631fRtTy.mjs → assets-service_B77Hm2ue.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{astro_u-oSb215.mjs → astro_ISB6VLqs.mjs} +178 -59
- package/packages/storefront/dist/server/chunks/index_BTDpenpc.mjs +5 -0
- package/packages/storefront/dist/server/chunks/index_D0q4ab_n.mjs +5 -0
- package/packages/storefront/dist/server/chunks/{node_zqXXqc-u.mjs → node_C7sdLKL4.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/pages/{__ZucPYaOo.mjs → __B4CsSrck.mjs} +1751 -344
- package/packages/storefront/dist/server/chunks/pages/{_page__0sN9U0SD.mjs → _page__sb5Idhgp.mjs} +2 -3
- package/packages/storefront/dist/server/chunks/pages/{account_OQr_6KN1.mjs → account_iWjHfkwu.mjs} +2 -3
- package/packages/storefront/dist/server/chunks/pages/{index_3IjgOEIq.mjs → index_BZlpKBRL.mjs} +41 -4
- package/packages/storefront/dist/server/chunks/pages/node_GFu-CQ19.mjs +852 -0
- package/packages/storefront/dist/server/chunks/pages/{~fallback_133FK-CP.mjs → ~fallback_C07rzeay.mjs} +2 -3
- package/packages/storefront/dist/server/chunks/{index__05fnqFh.mjs → ~fallback_YpJa9BIL.mjs} +1 -1
- package/packages/storefront/dist/server/entry.mjs +751 -912
- package/packages/storefront/dist/server/manifest_KFjAaJaC.mjs +201 -0
- package/packages/storefront/dist/server/renderers.mjs +1 -1
- package/packages/storefront/package.json +7 -7
- package/packages/storefront/src/lib/components/Carousel.vue +6 -0
- package/packages/storefront/src/lib/content.d.ts +4 -1
- package/packages/storefront/src/lib/custom-content.d.ts +9 -0
- package/packages/storefront/src/lib/ssr-context.ts +6 -4
- package/packages/test-base/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/_astro/AccountPage.0M6_FdU6.js +0 -1
- package/packages/storefront/dist/client/_astro/CartSidebar.L0Vbhsdt.js +0 -1
- package/packages/storefront/dist/client/_astro/HeroSlider.ju9TsLrJ.js +0 -1
- package/packages/storefront/dist/client/_astro/PitchBar.yqD9ycx5.js +0 -1
- package/packages/storefront/dist/client/_astro/Prices.xI1rdM1e.js +0 -1
- package/packages/storefront/dist/client/_astro/ProductDetails.FQtM5kpd.js +0 -7
- package/packages/storefront/dist/client/_astro/ProductShelf.-4fsYkPB.js +0 -1
- package/packages/storefront/dist/client/_astro/ProductShelf.GAAhKdTN.js +0 -1
- package/packages/storefront/dist/client/_astro/QuantitySelector.v7L8EYOR.js +0 -1
- package/packages/storefront/dist/client/_astro/SearchModal.rasg5jV6.js +0 -1
- package/packages/storefront/dist/client/_astro/SearchShowcase.kA6jICYo.js +0 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.v_L96Y90.js +0 -7
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.xATGHWd9.js +0 -5
- package/packages/storefront/dist/client/_astro/client.YJ00ta5M.js +0 -1
- package/packages/storefront/dist/client/_astro/customer-session.ZD6tLDQJ.js +0 -7
- package/packages/storefront/dist/client/_astro/grid-title.pK2Nn3i-.js +0 -1
- package/packages/storefront/dist/client/_astro/hoisted.ICXGWNEA.js +0 -1
- package/packages/storefront/dist/client/_astro/hoisted.XOXTrHqn.js +0 -1
- package/packages/storefront/dist/client/_astro/i18n.zhlBzJt8.js +0 -1
- package/packages/storefront/dist/client/_astro/img-sizes.gxAI9JNh.js +0 -1
- package/packages/storefront/dist/client/_astro/img.AnjeGdy_.js +0 -1
- package/packages/storefront/dist/client/_astro/index.KfrHdfOH.js +0 -1
- package/packages/storefront/dist/client/_astro/index.ShNlAyu1.js +0 -1
- package/packages/storefront/dist/client/_astro/name.VA3MEpe0.js +0 -1
- package/packages/storefront/dist/client/_astro/photoswipe.esm.Ylh9TGkz.js +0 -4
- package/packages/storefront/dist/client/_astro/price.Easct8WC.js +0 -1
- package/packages/storefront/dist/client/_astro/sf-utils.c42cbZ9W.js +0 -13
- package/packages/storefront/dist/client/_astro/shopping-cart.nSNNOrp9.js +0 -1
- package/packages/storefront/dist/client/_astro/use-analytics.wTmoP8B1.js +0 -1
- package/packages/storefront/dist/client/_astro/use-product-card.UFr8SCuD.js +0 -1
- package/packages/storefront/dist/client/_astro/use-text-value.lKqoIagH.js +0 -4
- package/packages/storefront/dist/server/chunks/_.._19fCuQdO.mjs +0 -5
- package/packages/storefront/dist/server/chunks/pages/node_OmjWRf8D.mjs +0 -112
- package/packages/storefront/dist/server/chunks/~fallback_Wahcp9Wk.mjs +0 -5
- package/packages/storefront/dist/server/manifest_9FASPYUE.mjs +0 -202
- /package/packages/storefront/dist/client/_astro/{index-bea2a320.eWykogwr.js → index-bea2a320.CHELEM8n.js} +0 -0
- /package/packages/storefront/dist/client/_astro/{photoswipe-lightbox.esm.dZBqKD9u.js → photoswipe-lightbox.esm.BbYxSZIB.js} +0 -0
- /package/packages/storefront/dist/client/_astro/{photoswipe.0V7m2jWu.js → photoswipe.CNpEZKfy.js} +0 -0
- /package/packages/storefront/dist/client/_astro/{server-data.4C60Esyt.js → server-data.CUHTES8a.js} +0 -0
- /package/packages/storefront/dist/server/chunks/{photoswipe_IcWDJiwc.mjs → photoswipe_wusPJBJF.mjs} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/app-pagarme",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.6.
|
|
4
|
+
"version": "2.6.5",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce app to integrate Pagar.me",
|
|
6
6
|
"main": "lib/pagarme.js",
|
|
7
7
|
"exports": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"axios": "^1.6.7",
|
|
29
29
|
"firebase-admin": "^12.0.0",
|
|
30
30
|
"firebase-functions": "^4.7.0",
|
|
31
|
-
"pagarme": "^4.34.
|
|
31
|
+
"pagarme": "^4.34.1",
|
|
32
32
|
"qs": "^6.11.2"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/cli",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.6.
|
|
4
|
+
"version": "2.6.5",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce CLI tools",
|
|
6
6
|
"bin": {
|
|
7
7
|
"cloudcommerce": "./bin/run.mjs"
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@cloudcommerce/api": "workspace:*",
|
|
30
30
|
"@fastify/deepmerge": "^1.3.0",
|
|
31
|
-
"dotenv": "^16.4.
|
|
31
|
+
"dotenv": "^16.4.5",
|
|
32
32
|
"libsodium-wrappers": "^0.7.13",
|
|
33
33
|
"md5": "^2.3.0",
|
|
34
34
|
"typescript": "~5.2.2",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/emails",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.6.
|
|
4
|
+
"version": "2.6.5",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce email sender",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@cloudcommerce/firebase": "workspace:*",
|
|
26
26
|
"axios": "^1.6.7",
|
|
27
27
|
"ejs": "^3.1.9",
|
|
28
|
-
"nodemailer": "^6.9.
|
|
28
|
+
"nodemailer": "^6.9.10"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@cloudcommerce/types": "workspace:*",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/eslint",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.6.
|
|
4
|
+
"version": "2.6.5",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce ESLint config",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"repository": {
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"build": "echo '@ecomplus/eslint'"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@typescript-eslint/eslint-plugin": "^7.0.
|
|
23
|
-
"@typescript-eslint/parser": "^7.0.
|
|
24
|
-
"eslint": "^8.
|
|
22
|
+
"@typescript-eslint/eslint-plugin": "^7.0.2",
|
|
23
|
+
"@typescript-eslint/parser": "^7.0.2",
|
|
24
|
+
"eslint": "^8.57.0",
|
|
25
25
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
26
26
|
"eslint-plugin-astro": "^0.31.4",
|
|
27
27
|
"eslint-plugin-import": "^2.29.1",
|
|
28
|
-
"eslint-plugin-tailwindcss": "3.14.
|
|
29
|
-
"eslint-plugin-vue": "^9.
|
|
28
|
+
"eslint-plugin-tailwindcss": "3.14.3",
|
|
29
|
+
"eslint-plugin-vue": "^9.22.0"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/firebase",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.6.
|
|
4
|
+
"version": "2.6.5",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce on Firebase",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@cloudcommerce/api": "workspace:*",
|
|
34
34
|
"@cloudcommerce/config": "workspace:*",
|
|
35
35
|
"@google-cloud/pubsub": "^4.3.2",
|
|
36
|
-
"dotenv": "^16.4.
|
|
36
|
+
"dotenv": "^16.4.5",
|
|
37
37
|
"firebase-admin": "^12.0.0",
|
|
38
38
|
"firebase-functions": "^4.7.0",
|
|
39
39
|
"source-map-support": "^0.5.21"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getFirestore } from 'firebase-admin/firestore';
|
|
2
|
-
import { error } from 'firebase-functions/logger';
|
|
2
|
+
import { info, error } from 'firebase-functions/logger';
|
|
3
3
|
import axios from 'axios';
|
|
4
4
|
import api from '@cloudcommerce/api';
|
|
5
5
|
import config from '@cloudcommerce/firebase/lib/config';
|
|
@@ -7,7 +7,6 @@ import { deleteQueryBatch } from '@cloudcommerce/firebase/lib/helpers/firestore'
|
|
|
7
7
|
|
|
8
8
|
const saveViews = async () => {
|
|
9
9
|
const deployRand = process.env.DEPLOY_RAND || '_';
|
|
10
|
-
const projectId = process.env.GCLOUD_PROJECT;
|
|
11
10
|
const db = getFirestore();
|
|
12
11
|
const productViewsSnapshot = await db.collection('ssrProductViews')
|
|
13
12
|
.limit(500).get();
|
|
@@ -32,10 +31,6 @@ const saveViews = async () => {
|
|
|
32
31
|
}
|
|
33
32
|
const { domain } = config.get().settingsContent;
|
|
34
33
|
if (domain && process.env.BUNNYNET_API_KEY) {
|
|
35
|
-
let bunnyStorageName = process.env.BUNNYNET_STORAGE_NAME;
|
|
36
|
-
let bunnyStoragePass = process.env.BUNNYNET_STORAGE_PASS;
|
|
37
|
-
let bunnyZoneName = process.env.BUNNYNET_ZONE_NAME;
|
|
38
|
-
let permaCacheZoneFolder = '';
|
|
39
34
|
const bunnyAxios = axios.create({
|
|
40
35
|
baseURL: 'https://api.bunny.net/',
|
|
41
36
|
headers: {
|
|
@@ -43,53 +38,6 @@ const saveViews = async () => {
|
|
|
43
38
|
},
|
|
44
39
|
});
|
|
45
40
|
try {
|
|
46
|
-
const storageAuthReqs = [];
|
|
47
|
-
if (!bunnyStorageName || !bunnyStoragePass) {
|
|
48
|
-
storageAuthReqs.push(bunnyAxios.get('/storagezone').then(({ data }) => {
|
|
49
|
-
for (let i = 0; i < data.length; i++) {
|
|
50
|
-
const bunnyStorage = data[i];
|
|
51
|
-
if (bunnyStorageName) {
|
|
52
|
-
if (bunnyStorage.Name === bunnyStorageName) {
|
|
53
|
-
bunnyStoragePass = bunnyStorage.Password;
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
if (bunnyStorage.Name.startsWith('storefront-isr-')) {
|
|
59
|
-
bunnyStorageName = bunnyStorage.Name;
|
|
60
|
-
bunnyStoragePass = bunnyStorage.Password;
|
|
61
|
-
break;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
if (!bunnyZoneName) {
|
|
67
|
-
storageAuthReqs.push(bunnyAxios.get('/pullzone').then(({ data }) => {
|
|
68
|
-
for (let i = 0; i < data.length; i++) {
|
|
69
|
-
const pullZone = data[i];
|
|
70
|
-
if (pullZone.Hostnames.find(({ Value }) => Value === domain)) {
|
|
71
|
-
bunnyZoneName = pullZone.Name;
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}));
|
|
76
|
-
}
|
|
77
|
-
await Promise.all(storageAuthReqs);
|
|
78
|
-
if (bunnyStorageName && bunnyStoragePass && bunnyZoneName) {
|
|
79
|
-
const { data } = await axios({
|
|
80
|
-
url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
|
|
81
|
-
headers: {
|
|
82
|
-
AccessKey: bunnyStoragePass,
|
|
83
|
-
},
|
|
84
|
-
});
|
|
85
|
-
for (let i = 0; i < data.length; i++) {
|
|
86
|
-
const { ObjectName } = data[i];
|
|
87
|
-
if (ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
|
|
88
|
-
&& (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)) {
|
|
89
|
-
permaCacheZoneFolder = ObjectName;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
41
|
const sMaxAge = Number(process.env.SSR_CACHE_MAX_AGE) || 179;
|
|
94
42
|
const pageViewsSnapshot = await db.collection('ssrPageViews')
|
|
95
43
|
.where('at', '>', new Date(Date.now() - 1000 * 60 * 20))
|
|
@@ -103,46 +51,21 @@ const saveViews = async () => {
|
|
|
103
51
|
if (data.isCachePurged) {
|
|
104
52
|
continue;
|
|
105
53
|
}
|
|
106
|
-
const url = data.url.replace(/\?.*$/, '');
|
|
107
|
-
doc.ref.update({ isCachePurged: true });
|
|
54
|
+
const url = data.url.replace(/\?.*$/, '').replace(/#.*$/, '');
|
|
108
55
|
if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
|
|
109
56
|
purgeReqs.push(bunnyAxios('/purge', {
|
|
110
57
|
method: 'POST',
|
|
111
58
|
params: {
|
|
112
|
-
async: 'false',
|
|
59
|
+
// async: 'false',
|
|
113
60
|
url,
|
|
114
61
|
},
|
|
62
|
+
}).then(async () => {
|
|
63
|
+
doc.ref.update({ isCachePurged: true });
|
|
64
|
+
const freshHtmlUrl = `${url}?__isrV=${deployRand}&t=${Date.now()}`;
|
|
65
|
+
await axios.get(freshHtmlUrl);
|
|
66
|
+
info(`Cache bump ${url}`);
|
|
115
67
|
}));
|
|
116
68
|
purgedUrls.push(url);
|
|
117
|
-
if (permaCacheZoneFolder) {
|
|
118
|
-
let pathname = url.replace(`https://${domain}`, '');
|
|
119
|
-
const freshHtmlUrl = `https://${projectId}.web.app${pathname}?__isrV=${deployRand}`;
|
|
120
|
-
purgeReqs.push(
|
|
121
|
-
// eslint-disable-next-line no-loop-func
|
|
122
|
-
axios.get(freshHtmlUrl).then(({ data: freshHtml }) => {
|
|
123
|
-
if (pathname.charAt(0) === '/') {
|
|
124
|
-
pathname = pathname.slice(1);
|
|
125
|
-
}
|
|
126
|
-
const paths = pathname.split('/');
|
|
127
|
-
const filename = paths.pop() || '';
|
|
128
|
-
let folderpath = paths.join('/');
|
|
129
|
-
if (folderpath) folderpath += '/';
|
|
130
|
-
// https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
|
|
131
|
-
const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
|
|
132
|
-
+ `/${folderpath}___${filename}___/___file___`;
|
|
133
|
-
axios({
|
|
134
|
-
method: 'PUT',
|
|
135
|
-
url: `https://storage.bunnycdn.com/${bunnyStorageName}/${permaCachePath}`,
|
|
136
|
-
headers: {
|
|
137
|
-
'Content-Type': 'application/octet-stream',
|
|
138
|
-
Accept: 'application/json',
|
|
139
|
-
AccessKey: bunnyStoragePass,
|
|
140
|
-
},
|
|
141
|
-
data: freshHtml,
|
|
142
|
-
});
|
|
143
|
-
}),
|
|
144
|
-
);
|
|
145
|
-
}
|
|
146
69
|
}
|
|
147
70
|
}
|
|
148
71
|
await Promise.all(purgeReqs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-ssr-save-views.js","sourceRoot":"","sources":["../../src/lib/cron-ssr-save-views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"cron-ssr-save-views.js","sourceRoot":"","sources":["../../src/lib/cron-ssr-save-views.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/ssr",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.6.
|
|
4
|
+
"version": "2.6.5",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce storefront SSR",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -32,18 +32,18 @@
|
|
|
32
32
|
"@cloudcommerce/i18n": "workspace:*",
|
|
33
33
|
"@ecomplus/utils": "1.5.0-rc.6",
|
|
34
34
|
"@vueuse/core": "10.8.0",
|
|
35
|
-
"astro": "4.4.
|
|
35
|
+
"astro": "4.4.6",
|
|
36
36
|
"astro-capo": "^0.0.1",
|
|
37
37
|
"axios": "^1.6.7",
|
|
38
38
|
"firebase-admin": "^12.0.0",
|
|
39
39
|
"firebase-functions": "^4.7.0",
|
|
40
40
|
"mitt": "^3.0.1",
|
|
41
|
-
"vue": "^3.4.
|
|
42
|
-
"yaml": "^2.
|
|
41
|
+
"vue": "^3.4.20",
|
|
42
|
+
"yaml": "^2.4.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@cloudcommerce/types": "workspace:*",
|
|
46
|
-
"@cloudflare/workers-types": "^4.
|
|
46
|
+
"@cloudflare/workers-types": "^4.20240222.0",
|
|
47
47
|
"@firebase/app-types": "^0.9.0",
|
|
48
48
|
"typescript": "~5.2.2"
|
|
49
49
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getFirestore } from 'firebase-admin/firestore';
|
|
2
|
-
import { error } from 'firebase-functions/logger';
|
|
2
|
+
import { info, error } from 'firebase-functions/logger';
|
|
3
3
|
import axios from 'axios';
|
|
4
4
|
import api from '@cloudcommerce/api';
|
|
5
5
|
import config from '@cloudcommerce/firebase/lib/config';
|
|
@@ -7,7 +7,6 @@ import { deleteQueryBatch } from '@cloudcommerce/firebase/lib/helpers/firestore'
|
|
|
7
7
|
|
|
8
8
|
const saveViews = async () => {
|
|
9
9
|
const deployRand = process.env.DEPLOY_RAND || '_';
|
|
10
|
-
const projectId = process.env.GCLOUD_PROJECT as string;
|
|
11
10
|
const db = getFirestore();
|
|
12
11
|
const productViewsSnapshot = await db.collection('ssrProductViews')
|
|
13
12
|
.limit(500).get();
|
|
@@ -32,10 +31,6 @@ const saveViews = async () => {
|
|
|
32
31
|
}
|
|
33
32
|
const { domain } = config.get().settingsContent;
|
|
34
33
|
if (domain && process.env.BUNNYNET_API_KEY) {
|
|
35
|
-
let bunnyStorageName = process.env.BUNNYNET_STORAGE_NAME;
|
|
36
|
-
let bunnyStoragePass = process.env.BUNNYNET_STORAGE_PASS;
|
|
37
|
-
let bunnyZoneName = process.env.BUNNYNET_ZONE_NAME;
|
|
38
|
-
let permaCacheZoneFolder = '';
|
|
39
34
|
const bunnyAxios = axios.create({
|
|
40
35
|
baseURL: 'https://api.bunny.net/',
|
|
41
36
|
headers: {
|
|
@@ -43,59 +38,6 @@ const saveViews = async () => {
|
|
|
43
38
|
},
|
|
44
39
|
});
|
|
45
40
|
try {
|
|
46
|
-
const storageAuthReqs: Promise<any>[] = [];
|
|
47
|
-
if (!bunnyStorageName || !bunnyStoragePass) {
|
|
48
|
-
storageAuthReqs.push(
|
|
49
|
-
bunnyAxios.get('/storagezone').then(({ data }) => {
|
|
50
|
-
for (let i = 0; i < data.length; i++) {
|
|
51
|
-
const bunnyStorage = data[i];
|
|
52
|
-
if (bunnyStorageName) {
|
|
53
|
-
if (bunnyStorage.Name === bunnyStorageName) {
|
|
54
|
-
bunnyStoragePass = bunnyStorage.Password;
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
if (bunnyStorage.Name.startsWith('storefront-isr-')) {
|
|
60
|
-
bunnyStorageName = bunnyStorage.Name;
|
|
61
|
-
bunnyStoragePass = bunnyStorage.Password;
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}),
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
if (!bunnyZoneName) {
|
|
69
|
-
storageAuthReqs.push(
|
|
70
|
-
bunnyAxios.get('/pullzone').then(({ data }) => {
|
|
71
|
-
for (let i = 0; i < data.length; i++) {
|
|
72
|
-
const pullZone = data[i];
|
|
73
|
-
if (pullZone.Hostnames.find(({ Value }) => Value === domain)) {
|
|
74
|
-
bunnyZoneName = pullZone.Name;
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}),
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
await Promise.all(storageAuthReqs);
|
|
82
|
-
if (bunnyStorageName && bunnyStoragePass && bunnyZoneName) {
|
|
83
|
-
const { data } = await axios({
|
|
84
|
-
url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
|
|
85
|
-
headers: {
|
|
86
|
-
AccessKey: bunnyStoragePass,
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
for (let i = 0; i < data.length; i++) {
|
|
90
|
-
const { ObjectName } = data[i];
|
|
91
|
-
if (
|
|
92
|
-
ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
|
|
93
|
-
&& (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)
|
|
94
|
-
) {
|
|
95
|
-
permaCacheZoneFolder = ObjectName;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
41
|
const sMaxAge = Number(process.env.SSR_CACHE_MAX_AGE) || 179;
|
|
100
42
|
const pageViewsSnapshot = await db.collection('ssrPageViews')
|
|
101
43
|
.where('at', '>', new Date(Date.now() - 1000 * 60 * 20))
|
|
@@ -109,46 +51,21 @@ const saveViews = async () => {
|
|
|
109
51
|
if (data.isCachePurged) {
|
|
110
52
|
continue;
|
|
111
53
|
}
|
|
112
|
-
const url = data.url.replace(/\?.*$/, '');
|
|
113
|
-
doc.ref.update({ isCachePurged: true });
|
|
54
|
+
const url = data.url.replace(/\?.*$/, '').replace(/#.*$/, '');
|
|
114
55
|
if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
|
|
115
56
|
purgeReqs.push(bunnyAxios('/purge', {
|
|
116
57
|
method: 'POST',
|
|
117
58
|
params: {
|
|
118
|
-
async: 'false',
|
|
59
|
+
// async: 'false',
|
|
119
60
|
url,
|
|
120
61
|
},
|
|
62
|
+
}).then(async () => {
|
|
63
|
+
doc.ref.update({ isCachePurged: true });
|
|
64
|
+
const freshHtmlUrl = `${url}?__isrV=${deployRand}&t=${Date.now()}`;
|
|
65
|
+
await axios.get(freshHtmlUrl);
|
|
66
|
+
info(`Cache bump ${url}`);
|
|
121
67
|
}));
|
|
122
68
|
purgedUrls.push(url);
|
|
123
|
-
if (permaCacheZoneFolder) {
|
|
124
|
-
let pathname = url.replace(`https://${domain}`, '');
|
|
125
|
-
const freshHtmlUrl = `https://${projectId}.web.app${pathname}?__isrV=${deployRand}`;
|
|
126
|
-
purgeReqs.push(
|
|
127
|
-
// eslint-disable-next-line no-loop-func
|
|
128
|
-
axios.get(freshHtmlUrl).then(({ data: freshHtml }: { data: string }) => {
|
|
129
|
-
if (pathname.charAt(0) === '/') {
|
|
130
|
-
pathname = pathname.slice(1);
|
|
131
|
-
}
|
|
132
|
-
const paths = pathname.split('/');
|
|
133
|
-
const filename = paths.pop() || '';
|
|
134
|
-
let folderpath = paths.join('/');
|
|
135
|
-
if (folderpath) folderpath += '/';
|
|
136
|
-
// https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
|
|
137
|
-
const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
|
|
138
|
-
+ `/${folderpath}___${filename}___/___file___`;
|
|
139
|
-
axios({
|
|
140
|
-
method: 'PUT',
|
|
141
|
-
url: `https://storage.bunnycdn.com/${bunnyStorageName}/${permaCachePath}`,
|
|
142
|
-
headers: {
|
|
143
|
-
'Content-Type': 'application/octet-stream',
|
|
144
|
-
Accept: 'application/json',
|
|
145
|
-
AccessKey: bunnyStoragePass,
|
|
146
|
-
},
|
|
147
|
-
data: freshHtml,
|
|
148
|
-
});
|
|
149
|
-
}),
|
|
150
|
-
);
|
|
151
|
-
}
|
|
152
69
|
}
|
|
153
70
|
}
|
|
154
71
|
await Promise.all(purgeReqs);
|