cloudcommerce 2.6.5 → 2.7.4

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 (112) hide show
  1. package/.github/workflows/create-release.yml +1 -2
  2. package/CHANGELOG.md +30 -0
  3. package/{commitlint.config.cjs → commitlint.config.mjs} +2 -2
  4. package/ecomplus-stores/barradoce/functions/many/package.json +3 -3
  5. package/ecomplus-stores/barradoce/functions/ssr/content/pages/home.json +103 -8
  6. package/ecomplus-stores/barradoce/functions/ssr/package.json +6 -6
  7. package/ecomplus-stores/barradoce/functions/ssr/src/components/ProductShelf.vue +8 -7
  8. package/ecomplus-stores/barradoce/functions/with-apps/package.json +3 -3
  9. package/ecomplus-stores/barradoce/package.json +2 -2
  10. package/package.json +5 -5
  11. package/packages/api/package.json +1 -1
  12. package/packages/apps/affiliate-program/package.json +1 -1
  13. package/packages/apps/correios/package.json +1 -1
  14. package/packages/apps/custom-payment/package.json +1 -1
  15. package/packages/apps/custom-shipping/package.json +1 -1
  16. package/packages/apps/datafrete/package.json +1 -1
  17. package/packages/apps/discounts/package.json +1 -1
  18. package/packages/apps/emails/package.json +1 -1
  19. package/packages/apps/fb-conversions/package.json +1 -1
  20. package/packages/apps/flash-courier/package.json +1 -1
  21. package/packages/apps/frenet/package.json +1 -1
  22. package/packages/apps/galaxpay/package.json +1 -1
  23. package/packages/apps/google-analytics/package.json +1 -1
  24. package/packages/apps/jadlog/package.json +1 -1
  25. package/packages/apps/loyalty-points/package.json +1 -1
  26. package/packages/apps/mandae/package.json +1 -1
  27. package/packages/apps/melhor-envio/package.json +1 -1
  28. package/packages/apps/mercadopago/package.json +1 -1
  29. package/packages/apps/pagarme/package.json +1 -1
  30. package/packages/apps/pagarme-v5/package.json +1 -1
  31. package/packages/apps/paghiper/package.json +1 -1
  32. package/packages/apps/pix/package.json +1 -1
  33. package/packages/apps/tiny-erp/package.json +1 -1
  34. package/packages/apps/webhooks/package.json +1 -1
  35. package/packages/cli/ci/bunny-config-base.sh +21 -0
  36. package/packages/cli/package.json +1 -1
  37. package/packages/config/package.json +1 -1
  38. package/packages/emails/package.json +2 -2
  39. package/packages/eslint/package.json +1 -1
  40. package/packages/events/package.json +1 -1
  41. package/packages/feeds/package.json +1 -1
  42. package/packages/firebase/package.json +1 -1
  43. package/packages/i18n/package.json +1 -1
  44. package/packages/modules/package.json +1 -1
  45. package/packages/passport/package.json +1 -1
  46. package/packages/ssr/lib/lib/cron-ssr-save-views.js +150 -46
  47. package/packages/ssr/lib/lib/cron-ssr-save-views.js.map +1 -1
  48. package/packages/ssr/package.json +4 -4
  49. package/packages/ssr/src/lib/cron-ssr-save-views.ts +162 -46
  50. package/packages/storefront/dist/client/_astro/{AccountPage.B4WZaOzX.js → AccountPage.Cq0jrJE5.js} +1 -1
  51. package/packages/storefront/dist/client/_astro/{CartSidebar.DAGdpIcU.js → CartSidebar.DkX2BE1w.js} +1 -1
  52. package/packages/storefront/dist/client/_astro/{HeroSlider.Dq_9kcdU.js → HeroSlider.CZujn8cU.js} +1 -1
  53. package/packages/storefront/dist/client/_astro/{PitchBar.BwLlIs6F.js → PitchBar.DhcSEQPV.js} +1 -1
  54. package/packages/storefront/dist/client/_astro/{Prices.BgHTq5id.js → Prices.D1uItqV5.js} +1 -1
  55. package/packages/storefront/dist/client/_astro/{ProductDetails.CnYNdPl5.js → ProductDetails.DDNMc2oj.js} +1 -1
  56. package/packages/storefront/dist/client/_astro/ProductShelf.BwRDTU-V.js +1 -0
  57. package/packages/storefront/dist/client/_astro/{SearchModal.DcmvABes.js → SearchModal.DgrtGsIu.js} +1 -1
  58. package/packages/storefront/dist/client/_astro/{SearchShowcase.C9GWwOnF.js → SearchShowcase.DggdcmcI.js} +1 -1
  59. package/packages/storefront/dist/client/_astro/{ShippingCalculator.DE01D7dt.js → ShippingCalculator.B5JIh5xw.js} +1 -1
  60. package/packages/storefront/dist/client/_astro/{ShopHeader.Cf4t6O6z.js → ShopHeader.CIsQLhMR.js} +2 -2
  61. package/packages/storefront/dist/client/_astro/{_plugin-vue_export-helper.CBemkWnU.js → _plugin-vue_export-helper.3R8ooc_r.js} +3 -3
  62. package/packages/storefront/dist/client/_astro/{_slug_.DX_OkMX7.css → _slug_.CnXAH2gj.css} +1 -1
  63. package/packages/storefront/dist/client/_astro/client.mwowSQrH.js +1 -0
  64. package/packages/storefront/dist/client/_astro/{customer-session.CNe1heRH.js → customer-session.BAjMMoBA.js} +1 -1
  65. package/packages/storefront/dist/client/_astro/{format-money.DINpWB0x.js → format-money.vLicYTv9.js} +1 -1
  66. package/packages/storefront/dist/client/_astro/{grid-title.D4m7-g3h.js → grid-title.CxNZApGL.js} +1 -1
  67. package/packages/storefront/dist/client/_astro/{hoisted.EBqhuD5o.js → hoisted.B8Lw6O9a.js} +1 -1
  68. package/packages/storefront/dist/client/_astro/{hoisted.B2rH1xwX.js → hoisted.D4m7OTKi.js} +1 -1
  69. package/packages/storefront/dist/client/_astro/{hoisted.ut_nNM_H.js → hoisted.DSAg3dYh.js} +1 -1
  70. package/packages/storefront/dist/client/_astro/hoisted.D_dlmSy5.js +1 -0
  71. package/packages/storefront/dist/client/_astro/{i18n.B3skIOFg.js → i18n.BE5r_SIU.js} +1 -1
  72. package/packages/storefront/dist/client/_astro/{img.D5a6GzeE.js → img.CB-F9VLo.js} +1 -1
  73. package/packages/storefront/dist/client/_astro/{index.DBfgCyd-.js → index.BAyyMfaO.js} +1 -1
  74. package/packages/storefront/dist/client/_astro/{index.CFw6O-Kt.js → index.CTTHpJlV.js} +1 -1
  75. package/packages/storefront/dist/client/_astro/{modules-info.BHKiT6oA.js → modules-info.C6KJuGeB.js} +1 -1
  76. package/packages/storefront/dist/client/_astro/name.CIPngEFN.js +1 -0
  77. package/packages/storefront/dist/client/_astro/sf-utils.xmJHVMAX.js +13 -0
  78. package/packages/storefront/dist/client/_astro/{shopping-cart.D-w8Z-4p.js → shopping-cart.DGvCZWRZ.js} +1 -1
  79. package/packages/storefront/dist/client/_astro/{use-analytics.CQDdNgwF.js → use-analytics.BWhF_fCv.js} +1 -1
  80. package/packages/storefront/dist/client/_astro/{use-cms-preview.4Hq7LCmA.js → use-cms-preview.CPGTKut8.js} +1 -1
  81. package/packages/storefront/dist/client/_astro/{use-product-card.CQRlRsNX.js → use-product-card.C-RbCwna.js} +1 -1
  82. package/packages/storefront/dist/client/_astro/{use-text-value.UjCYLWjm.js → use-text-value.D4Rw7N4D.js} +1 -1
  83. package/packages/storefront/dist/server/chunks/{CartSidebar_BmwcZuxv.mjs → CartSidebar_lUckG0fs.mjs} +1 -1
  84. package/packages/storefront/dist/server/chunks/{SearchModal_BvEnUvAx.mjs → SearchModal_B2f22Mff.mjs} +1 -1
  85. package/packages/storefront/dist/server/chunks/{_.._DORZHe_Z.mjs → _.._CvgSOb3Z.mjs} +1 -1
  86. package/packages/storefront/dist/server/chunks/{_page__DU3kNewy.mjs → _page__Ex4FhYrc.mjs} +1 -1
  87. package/packages/storefront/dist/server/chunks/{account_CaTloREf.mjs → account_B7sLjsXD.mjs} +1 -1
  88. package/packages/storefront/dist/server/chunks/astro/{assets-service_B77Hm2ue.mjs → assets-service_BOyOfKDQ.mjs} +1 -1
  89. package/packages/storefront/dist/server/chunks/{astro_ISB6VLqs.mjs → astro_B5LBy7PI.mjs} +8 -4
  90. package/packages/storefront/dist/server/chunks/{index_BTDpenpc.mjs → index_BOh755yP.mjs} +1 -1
  91. package/packages/storefront/dist/server/chunks/{index_D0q4ab_n.mjs → index_C2hkTn-w.mjs} +1 -1
  92. package/packages/storefront/dist/server/chunks/{node_C7sdLKL4.mjs → node_DavlI8UF.mjs} +1 -1
  93. package/packages/storefront/dist/server/chunks/pages/{__B4CsSrck.mjs → __RXg_hYeF.mjs} +57 -18
  94. package/packages/storefront/dist/server/chunks/pages/{_page__sb5Idhgp.mjs → _page__Dyte93f2.mjs} +2 -2
  95. package/packages/storefront/dist/server/chunks/pages/{account_iWjHfkwu.mjs → account_C66y6_Y9.mjs} +2 -2
  96. package/packages/storefront/dist/server/chunks/pages/{index_BZlpKBRL.mjs → index_EO1hhrt8.mjs} +2 -2
  97. package/packages/storefront/dist/server/chunks/pages/{node_GFu-CQ19.mjs → node_hc25rqYt.mjs} +3 -3
  98. package/packages/storefront/dist/server/chunks/pages/{~fallback_C07rzeay.mjs → ~fallback_-K3esUV3.mjs} +2 -2
  99. package/packages/storefront/dist/server/chunks/{~fallback_YpJa9BIL.mjs → ~fallback_DQ6yB81s.mjs} +1 -1
  100. package/packages/storefront/dist/server/entry.mjs +625 -601
  101. package/packages/storefront/dist/server/{manifest_KFjAaJaC.mjs → manifest_bZVxjk3o.mjs} +3 -3
  102. package/packages/storefront/dist/server/renderers.mjs +1 -1
  103. package/packages/storefront/package.json +4 -4
  104. package/packages/storefront/src/lib/composables/use-product-shelf.ts +23 -4
  105. package/packages/storefront/src/lib/layouts/use-page-main.ts +6 -7
  106. package/packages/test-base/package.json +1 -1
  107. package/packages/types/package.json +1 -1
  108. package/packages/storefront/dist/client/_astro/ProductShelf.kfADQTUO.js +0 -1
  109. package/packages/storefront/dist/client/_astro/client.CdXC84C5.js +0 -1
  110. package/packages/storefront/dist/client/_astro/hoisted.DBPXHTEb.js +0 -1
  111. package/packages/storefront/dist/client/_astro/name.BZA9xqh-.js +0 -1
  112. package/packages/storefront/dist/client/_astro/sf-utils.Cigv01cN.js +0 -13
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/eslint",
3
3
  "type": "module",
4
- "version": "2.6.5",
4
+ "version": "2.7.4",
5
5
  "description": "E-Com Plus Cloud Commerce ESLint config",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/events",
3
3
  "type": "module",
4
- "version": "2.6.5",
4
+ "version": "2.7.4",
5
5
  "description": "E-Com Plus Cloud Commerce app events",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/feeds",
3
3
  "type": "module",
4
- "version": "2.6.5",
4
+ "version": "2.7.4",
5
5
  "description": "E-Com Plus Cloud Commerce catalog feeds",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/firebase",
3
3
  "type": "module",
4
- "version": "2.6.5",
4
+ "version": "2.7.4",
5
5
  "description": "E-Com Plus Cloud Commerce on Firebase",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/i18n",
3
3
  "type": "module",
4
- "version": "2.6.5",
4
+ "version": "2.7.4",
5
5
  "description": "E-Com Plus Cloud Commerce i18n",
6
6
  "main": "lib/all.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/modules",
3
3
  "type": "module",
4
- "version": "2.6.5",
4
+ "version": "2.7.4",
5
5
  "description": "E-Com Plus Cloud Commerce modules API",
6
6
  "main": "lib/index.cjs",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/passport",
3
3
  "type": "module",
4
- "version": "2.6.5",
4
+ "version": "2.7.4",
5
5
  "description": "E-Com Plus Cloud Commerce customers authentication (passport) API",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,12 +1,81 @@
1
1
  import { getFirestore } from 'firebase-admin/firestore';
2
- import { info, error } from 'firebase-functions/logger';
2
+ import { 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';
6
6
  import { deleteQueryBatch } from '@cloudcommerce/firebase/lib/helpers/firestore';
7
7
 
8
+ const loadBunnyStorageKeys = async ({ projectId, bunnyAxios, bunnyStorageKeysRef }) => {
9
+ let bunnyStorageName = process.env.BUNNYNET_STORAGE_NAME;
10
+ let bunnyStoragePass = process.env.BUNNYNET_STORAGE_PASS;
11
+ const bunnyZoneName = process.env.BUNNYNET_ZONE_NAME || projectId;
12
+ let permaCacheZoneFolder = '';
13
+ if (!bunnyStorageName || !bunnyStoragePass) {
14
+ const savedKeysData = (await bunnyStorageKeysRef.get()).data();
15
+ if (savedKeysData) {
16
+ bunnyStorageName = savedKeysData.bunnyStorageName;
17
+ bunnyStoragePass = savedKeysData.bunnyStoragePass;
18
+ permaCacheZoneFolder = savedKeysData.permaCacheZoneFolder;
19
+ } else {
20
+ const { data } = await bunnyAxios.get('/storagezone');
21
+ for (let i = 0; i < data.length; i++) {
22
+ const bunnyStorage = data[i];
23
+ if (bunnyStorageName) {
24
+ if (bunnyStorage.Name === bunnyStorageName) {
25
+ bunnyStoragePass = bunnyStorage.Password;
26
+ break;
27
+ }
28
+ continue;
29
+ }
30
+ if (bunnyStorage.Name.startsWith('storefront-isr-')) {
31
+ bunnyStorageName = bunnyStorage.Name;
32
+ bunnyStoragePass = bunnyStorage.Password;
33
+ break;
34
+ }
35
+ }
36
+ }
37
+ }
38
+ if (bunnyStorageName && bunnyStoragePass && !permaCacheZoneFolder) {
39
+ const { data } = await axios({
40
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
41
+ headers: {
42
+ AccessKey: bunnyStoragePass,
43
+ },
44
+ });
45
+ for (let i = 0; i < data.length; i++) {
46
+ const { ObjectName } = data[i];
47
+ if (ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
48
+ && (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)) {
49
+ permaCacheZoneFolder = ObjectName;
50
+ }
51
+ }
52
+ if (permaCacheZoneFolder) {
53
+ bunnyStorageKeysRef.set({
54
+ bunnyStorageName,
55
+ bunnyStoragePass,
56
+ permaCacheZoneFolder,
57
+ });
58
+ }
59
+ }
60
+ const bunnyStorageAxios = axios.create({
61
+ baseURL: `https://storage.bunnycdn.com/${bunnyStorageName}/`,
62
+ headers: {
63
+ 'Content-Type': 'text/html',
64
+ Accept: 'application/json',
65
+ AccessKey: bunnyStoragePass,
66
+ },
67
+ });
68
+ return {
69
+ bunnyStorageName,
70
+ bunnyStoragePass,
71
+ bunnyStorageAxios,
72
+ bunnyZoneName,
73
+ permaCacheZoneFolder,
74
+ };
75
+ };
8
76
  const saveViews = async () => {
9
77
  const deployRand = process.env.DEPLOY_RAND || '_';
78
+ const projectId = process.env.GCLOUD_PROJECT;
10
79
  const db = getFirestore();
11
80
  const productViewsSnapshot = await db.collection('ssrProductViews')
12
81
  .limit(500).get();
@@ -31,54 +100,89 @@ const saveViews = async () => {
31
100
  }
32
101
  const { domain } = config.get().settingsContent;
33
102
  if (domain && process.env.BUNNYNET_API_KEY) {
34
- const bunnyAxios = axios.create({
35
- baseURL: 'https://api.bunny.net/',
36
- headers: {
37
- AccessKey: process.env.BUNNYNET_API_KEY,
38
- },
39
- });
40
- try {
41
- const sMaxAge = Number(process.env.SSR_CACHE_MAX_AGE) || 179;
42
- const pageViewsSnapshot = await db.collection('ssrPageViews')
43
- .where('at', '>', new Date(Date.now() - 1000 * 60 * 20))
44
- .where('at', '<', new Date(Date.now() - 1000 * sMaxAge))
45
- .get();
46
- const purgedUrls = [];
47
- const purgeReqs = [];
48
- for (let i = 0; i < pageViewsSnapshot.docs.length; i++) {
49
- const doc = pageViewsSnapshot.docs[i];
50
- const data = doc.data();
51
- if (data.isCachePurged) {
52
- continue;
103
+ const sMaxAge = Number(process.env.SSR_CACHE_MAX_AGE) || 179;
104
+ const pageViewsSnapshot = await db.collection('ssrPageViews')
105
+ .where('at', '>', new Date(Date.now() - 1000 * 60 * 20))
106
+ .where('at', '<', new Date(Date.now() - 1000 * sMaxAge))
107
+ .get();
108
+ const pageViewDocs = [];
109
+ for (let i = 0; i < pageViewsSnapshot.docs.length; i++) {
110
+ const doc = pageViewsSnapshot.docs[i];
111
+ const data = doc.data();
112
+ if (data.isCachePurged) {
113
+ continue;
114
+ }
115
+ const url = data.url.replace(/\?.*$/, '');
116
+ pageViewDocs.push({ ref: doc.ref, url });
117
+ }
118
+ if (pageViewDocs.length) {
119
+ const bunnyAxios = axios.create({
120
+ baseURL: 'https://api.bunny.net/',
121
+ headers: {
122
+ AccessKey: process.env.BUNNYNET_API_KEY,
123
+ },
124
+ });
125
+ const bunnyStorageKeysRef = db.doc('ssrBunnyNet/storageKeys');
126
+ try {
127
+ const { bunnyStorageAxios, permaCacheZoneFolder } = await loadBunnyStorageKeys({
128
+ projectId,
129
+ bunnyAxios,
130
+ bunnyStorageKeysRef,
131
+ });
132
+ const purgedUrls = [];
133
+ const purgeReqs = [];
134
+ for (let i = 0; i < pageViewDocs.length; i++) {
135
+ const { ref, url } = pageViewDocs[i];
136
+ ref.update({ isCachePurged: true });
137
+ if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
138
+ purgeReqs.push(bunnyAxios('/purge', {
139
+ method: 'POST',
140
+ params: {
141
+ async: 'false',
142
+ url,
143
+ },
144
+ }));
145
+ purgedUrls.push(url);
146
+ if (permaCacheZoneFolder) {
147
+ let pathname = url.replace(`https://${domain}`, '');
148
+ const freshHtmlUrl = `https://${projectId}.web.app${pathname}`
149
+ + `?__isrV=${deployRand}&t=${Date.now()}`;
150
+ purgeReqs.push(
151
+ // eslint-disable-next-line no-loop-func
152
+ axios.get(freshHtmlUrl).then(({ data: freshHtml }) => {
153
+ if (pathname.charAt(0) === '/') {
154
+ pathname = pathname.slice(1);
155
+ }
156
+ const paths = pathname.split('/');
157
+ const filename = paths.pop() || '';
158
+ let folderpath = paths.join('/');
159
+ if (folderpath) folderpath += '/';
160
+ // https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
161
+ const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
162
+ + `/${folderpath}___${filename}___/___file___`;
163
+ bunnyStorageAxios({
164
+ method: 'PUT',
165
+ url: `/${permaCachePath}`,
166
+ data: freshHtml,
167
+ });
168
+ }),
169
+ );
170
+ }
171
+ }
53
172
  }
54
- const url = data.url.replace(/\?.*$/, '').replace(/#.*$/, '');
55
- if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
56
- purgeReqs.push(bunnyAxios('/purge', {
57
- method: 'POST',
58
- params: {
59
- // async: 'false',
60
- url,
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}`);
67
- }));
68
- purgedUrls.push(url);
173
+ await Promise.all(purgeReqs);
174
+ } catch (err) {
175
+ bunnyStorageKeysRef.delete();
176
+ if (err.response) {
177
+ const _err = new Error('Cant purge bunny.net cache');
178
+ _err.config = err.config;
179
+ _err.statusCode = err.response.status;
180
+ _err.data = err.response.data;
181
+ error(_err);
182
+ } else {
183
+ error(err);
69
184
  }
70
185
  }
71
- await Promise.all(purgeReqs);
72
- } catch (err) {
73
- if (err.response) {
74
- const _err = new Error('Cant purge bunny.net cache');
75
- _err.config = err.config;
76
- _err.statusCode = err.response.status;
77
- _err.data = err.response.data;
78
- error(_err);
79
- } else {
80
- error(err);
81
- }
82
186
  }
83
187
  }
84
188
  const date = new Date();
@@ -1 +1 @@
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
+ {"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.5",
4
+ "version": "2.7.4",
5
5
  "description": "E-Com Plus Cloud Commerce storefront SSR",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -26,19 +26,19 @@
26
26
  "build:workers": "npx tsc -p src/cloudflare --outDir cloudflare && npx eslint --ext .js cloudflare --fix"
27
27
  },
28
28
  "dependencies": {
29
- "@astrojs/node": "8.2.1",
29
+ "@astrojs/node": "8.2.3",
30
30
  "@cloudcommerce/api": "workspace:*",
31
31
  "@cloudcommerce/firebase": "workspace:*",
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.6",
35
+ "astro": "4.4.9",
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.20",
41
+ "vue": "^3.4.21",
42
42
  "yaml": "^2.4.0"
43
43
  },
44
44
  "devDependencies": {
@@ -1,12 +1,90 @@
1
+ import type { DocumentReference } from 'firebase-admin/firestore';
2
+ import type { AxiosInstance } from 'axios';
1
3
  import { getFirestore } from 'firebase-admin/firestore';
2
- import { info, error } from 'firebase-functions/logger';
4
+ import { error } from 'firebase-functions/logger';
3
5
  import axios from 'axios';
4
6
  import api from '@cloudcommerce/api';
5
7
  import config from '@cloudcommerce/firebase/lib/config';
6
8
  import { deleteQueryBatch } from '@cloudcommerce/firebase/lib/helpers/firestore';
7
9
 
10
+ const loadBunnyStorageKeys = async ({ projectId, bunnyAxios, bunnyStorageKeysRef }: {
11
+ projectId: string,
12
+ bunnyAxios: AxiosInstance,
13
+ bunnyStorageKeysRef: DocumentReference,
14
+ }) => {
15
+ let bunnyStorageName = process.env.BUNNYNET_STORAGE_NAME;
16
+ let bunnyStoragePass = process.env.BUNNYNET_STORAGE_PASS;
17
+ const bunnyZoneName = process.env.BUNNYNET_ZONE_NAME || projectId;
18
+ let permaCacheZoneFolder = '';
19
+ if (!bunnyStorageName || !bunnyStoragePass) {
20
+ const savedKeysData = (await bunnyStorageKeysRef.get()).data();
21
+ if (savedKeysData) {
22
+ bunnyStorageName = savedKeysData.bunnyStorageName;
23
+ bunnyStoragePass = savedKeysData.bunnyStoragePass;
24
+ permaCacheZoneFolder = savedKeysData.permaCacheZoneFolder;
25
+ } else {
26
+ const { data } = await bunnyAxios.get('/storagezone');
27
+ for (let i = 0; i < data.length; i++) {
28
+ const bunnyStorage = data[i];
29
+ if (bunnyStorageName) {
30
+ if (bunnyStorage.Name === bunnyStorageName) {
31
+ bunnyStoragePass = bunnyStorage.Password;
32
+ break;
33
+ }
34
+ continue;
35
+ }
36
+ if (bunnyStorage.Name.startsWith('storefront-isr-')) {
37
+ bunnyStorageName = bunnyStorage.Name;
38
+ bunnyStoragePass = bunnyStorage.Password;
39
+ break;
40
+ }
41
+ }
42
+ }
43
+ }
44
+ if (bunnyStorageName && bunnyStoragePass && !permaCacheZoneFolder) {
45
+ const { data } = await axios({
46
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
47
+ headers: {
48
+ AccessKey: bunnyStoragePass,
49
+ },
50
+ });
51
+ for (let i = 0; i < data.length; i++) {
52
+ const { ObjectName } = data[i];
53
+ if (
54
+ ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
55
+ && (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)
56
+ ) {
57
+ permaCacheZoneFolder = ObjectName;
58
+ }
59
+ }
60
+ if (permaCacheZoneFolder) {
61
+ bunnyStorageKeysRef.set({
62
+ bunnyStorageName,
63
+ bunnyStoragePass,
64
+ permaCacheZoneFolder,
65
+ });
66
+ }
67
+ }
68
+ const bunnyStorageAxios = axios.create({
69
+ baseURL: `https://storage.bunnycdn.com/${bunnyStorageName}/`,
70
+ headers: {
71
+ 'Content-Type': 'text/html',
72
+ Accept: 'application/json',
73
+ AccessKey: bunnyStoragePass,
74
+ },
75
+ });
76
+ return {
77
+ bunnyStorageName,
78
+ bunnyStoragePass,
79
+ bunnyStorageAxios,
80
+ bunnyZoneName,
81
+ permaCacheZoneFolder,
82
+ };
83
+ };
84
+
8
85
  const saveViews = async () => {
9
86
  const deployRand = process.env.DEPLOY_RAND || '_';
87
+ const projectId = process.env.GCLOUD_PROJECT as string;
10
88
  const db = getFirestore();
11
89
  const productViewsSnapshot = await db.collection('ssrProductViews')
12
90
  .limit(500).get();
@@ -31,54 +109,92 @@ const saveViews = async () => {
31
109
  }
32
110
  const { domain } = config.get().settingsContent;
33
111
  if (domain && process.env.BUNNYNET_API_KEY) {
34
- const bunnyAxios = axios.create({
35
- baseURL: 'https://api.bunny.net/',
36
- headers: {
37
- AccessKey: process.env.BUNNYNET_API_KEY,
38
- },
39
- });
40
- try {
41
- const sMaxAge = Number(process.env.SSR_CACHE_MAX_AGE) || 179;
42
- const pageViewsSnapshot = await db.collection('ssrPageViews')
43
- .where('at', '>', new Date(Date.now() - 1000 * 60 * 20))
44
- .where('at', '<', new Date(Date.now() - 1000 * sMaxAge))
45
- .get();
46
- const purgedUrls: string[] = [];
47
- const purgeReqs: Promise<any>[] = [];
48
- for (let i = 0; i < pageViewsSnapshot.docs.length; i++) {
49
- const doc = pageViewsSnapshot.docs[i];
50
- const data = doc.data() as { url: string, isCachePurged?: true };
51
- if (data.isCachePurged) {
52
- continue;
112
+ const sMaxAge = Number(process.env.SSR_CACHE_MAX_AGE) || 179;
113
+ const pageViewsSnapshot = await db.collection('ssrPageViews')
114
+ .where('at', '>', new Date(Date.now() - 1000 * 60 * 20))
115
+ .where('at', '<', new Date(Date.now() - 1000 * sMaxAge))
116
+ .get();
117
+ const pageViewDocs: Array<{ ref: DocumentReference, url: string }> = [];
118
+ for (let i = 0; i < pageViewsSnapshot.docs.length; i++) {
119
+ const doc = pageViewsSnapshot.docs[i];
120
+ const data = doc.data() as { url: string, isCachePurged?: true };
121
+ if (data.isCachePurged) {
122
+ continue;
123
+ }
124
+ const url = data.url.replace(/\?.*$/, '');
125
+ pageViewDocs.push({ ref: doc.ref, url });
126
+ }
127
+ if (pageViewDocs.length) {
128
+ const bunnyAxios = axios.create({
129
+ baseURL: 'https://api.bunny.net/',
130
+ headers: {
131
+ AccessKey: process.env.BUNNYNET_API_KEY,
132
+ },
133
+ });
134
+ const bunnyStorageKeysRef = db.doc('ssrBunnyNet/storageKeys');
135
+ try {
136
+ const {
137
+ bunnyStorageAxios,
138
+ permaCacheZoneFolder,
139
+ } = await loadBunnyStorageKeys({
140
+ projectId,
141
+ bunnyAxios,
142
+ bunnyStorageKeysRef,
143
+ });
144
+ const purgedUrls: string[] = [];
145
+ const purgeReqs: Promise<any>[] = [];
146
+ for (let i = 0; i < pageViewDocs.length; i++) {
147
+ const { ref, url } = pageViewDocs[i];
148
+ ref.update({ isCachePurged: true });
149
+ if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
150
+ purgeReqs.push(bunnyAxios('/purge', {
151
+ method: 'POST',
152
+ params: {
153
+ async: 'false',
154
+ url,
155
+ },
156
+ }));
157
+ purgedUrls.push(url);
158
+ if (permaCacheZoneFolder) {
159
+ let pathname = url.replace(`https://${domain}`, '');
160
+ const freshHtmlUrl = `https://${projectId}.web.app${pathname}`
161
+ + `?__isrV=${deployRand}&t=${Date.now()}`;
162
+ purgeReqs.push(
163
+ // eslint-disable-next-line no-loop-func
164
+ axios.get(freshHtmlUrl).then(({ data: freshHtml }: { data: string }) => {
165
+ if (pathname.charAt(0) === '/') {
166
+ pathname = pathname.slice(1);
167
+ }
168
+ const paths = pathname.split('/');
169
+ const filename = paths.pop() || '';
170
+ let folderpath = paths.join('/');
171
+ if (folderpath) folderpath += '/';
172
+ // https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
173
+ const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
174
+ + `/${folderpath}___${filename}___/___file___`;
175
+ bunnyStorageAxios({
176
+ method: 'PUT',
177
+ url: `/${permaCachePath}`,
178
+ data: freshHtml,
179
+ });
180
+ }),
181
+ );
182
+ }
183
+ }
53
184
  }
54
- const url = data.url.replace(/\?.*$/, '').replace(/#.*$/, '');
55
- if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
56
- purgeReqs.push(bunnyAxios('/purge', {
57
- method: 'POST',
58
- params: {
59
- // async: 'false',
60
- url,
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}`);
67
- }));
68
- purgedUrls.push(url);
185
+ await Promise.all(purgeReqs);
186
+ } catch (err: any) {
187
+ bunnyStorageKeysRef.delete();
188
+ if (err.response) {
189
+ const _err: any = new Error('Cant purge bunny.net cache');
190
+ _err.config = err.config;
191
+ _err.statusCode = err.response.status;
192
+ _err.data = err.response.data;
193
+ error(_err);
194
+ } else {
195
+ error(err);
69
196
  }
70
197
  }
71
- await Promise.all(purgeReqs);
72
- } catch (err: any) {
73
- if (err.response) {
74
- const _err: any = new Error('Cant purge bunny.net cache');
75
- _err.config = err.config;
76
- _err.statusCode = err.response.status;
77
- _err.data = err.response.data;
78
- error(_err);
79
- } else {
80
- error(err);
81
- }
82
198
  }
83
199
  }
84
200
  const date = new Date();
@@ -1 +1 @@
1
- import{a as f,w as h,d as P,c as M,i as C,o as l,e as c,Z as F,f as i,a0 as b,a1 as r,l as S,j as k,n as A,g as L,h as U,a4 as T,a5 as V,F as j,k as B}from"./sf-utils.Cigv01cN.js";import{_ as N,a as I,v as R,w as x}from"./_plugin-vue_export-helper.CBemkWnU.js";import{e as q,f as _,E as D,a as O,d as E}from"./customer-session.CNe1heRH.js";import{u as z}from"./index.DBfgCyd-.js";import{g as G,b as K,c as W}from"./index-bea2a320.CHELEM8n.js";import{u as Y}from"./index.CFw6O-Kt.js";import"./server-data.CUHTES8a.js";const Z=m=>{q();const s=m?.canUseUrlParams!==!1?z("history"):{},e=s.sign_up!==void 0&&s.sign_up!=="0",a=s.password!==void 0&&s.password!=="0",u=f(e),n=f(!e&&!a);h(u,p=>{p?(n.value=!0,s.sign_up="1"):s.sign_up="0"}),h(n,p=>{s.password=p?"0":"1"});const o=f(""),d=f(!1),g=Y(async p=>{d.value=!0;const v=Date.now(),y=G();if(_.value){window.localStorage.setItem(D,_.value);try{if(n.value){const w=new URL(p||window.location.toString());w.searchParams.append("email",_.value),await K(y,_.value,{url:w.toString(),handleCodeInApp:!0})}else await W(y,_.value,o.value)}catch(w){console.warn(w.code),console.error(w)}setTimeout(()=>{d.value=!1},Math.min(2e3-(Date.now()-v),1))}},2e3);return{isLinkSignIn:n,isSignUp:u,email:_,password:o,isSubmitting:d,submitLogin:g}},$=P({__name:"LoginForm",props:{loginLinkActionUrl:{}},setup(m,{expose:t}){t();const{isLinkSignIn:s,isSignUp:e,email:a,password:u,isSubmitting:n,submitLogin:o}=Z(),d=f(!1),g=f(0),p=M(()=>g.value>9);h(n,()=>{!n.value&&s.value&&(d.value=!0,g.value+=1)}),h([a,e],()=>{d.value=!1}),h(p,()=>{s.value=!1});const v={isLinkSignIn:s,isSignUp:e,email:a,password:u,isSubmitting:n,submitLogin:o,isEmailSentMsg:d,countEmailsSent:g,isLinkSignInBlocked:p,get customerName(){return O}};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}}),H={class:"text-base-600 mb-4 text-2xl font-light"},J={key:0},Q={key:1,class:"lowercase"},X={key:0,for:"login-form-email"},ee={class:"relative"},se=["disabled"],te={key:0,class:"text-success-800 absolute left-0 top-0 mt-4 font-medium"},ne=i("i",{class:"i-check mr-1"},null,-1);function ie(m,t,s,e,a,u){const n=C("Fade");return l(),c("form",{class:"text-base-800 w-full max-w-sm bg-white p-6 text-base md:p-8",onSubmit:t[4]||(t[4]=x(()=>e.submitLogin(s.loginLinkActionUrl),["prevent"]))},[F(m.$slots,"head"),i("p",H,[b(r("Olá")+" "),e.customerName?(l(),c("span",J,r(e.customerName),1)):(l(),c("span",Q,r("Visitante")))]),e.isLinkSignIn?(l(),c("label",X,r("Enviar link de acesso por e-mail"))):S("",!0),k(i("input",{id:"login-form-email",type:"email",placeholder:"email@mail.com","onUpdate:modelValue":t[0]||(t[0]=o=>e.email=o),class:"mb-0.5 mt-2 w-full",required:""},null,512),[[I,e.email]]),e.isLinkSignIn?S("",!0):k((l(),c("input",{key:1,type:"password",placeholder:"Senha","onUpdate:modelValue":t[1]||(t[1]=o=>e.password=o),class:"mb-0.5 mt-2 w-full lowercase",required:""},null,512)),[[I,e.password]]),i("div",ee,[i("div",{class:A(["transition-opacity",e.isEmailSentMsg&&"opacity-0 invisible"])},[k(i("a",{href:"?password",class:"text-base-500 ui-link text-right text-sm lowercase",onClick:t[2]||(t[2]=x(o=>e.isLinkSignIn=!e.isLinkSignIn,["prevent"]))},r(e.isLinkSignIn?"Entrar com senha":"Esqueci minha senha"),513),[[R,!e.isSignUp&&!e.isLinkSignInBlocked]]),i("button",{type:"submit",disabled:e.isSubmitting,class:A(["ui-btn-lg ui-btn-primary mb-2 mt-5 w-full",e.isSubmitting&&"opacity-50"])},r(e.isSignUp?"Cadastrar":"Acessar minha conta"),11,se)],2),L(n,{speed:"slow"},{default:U(()=>[e.isEmailSentMsg?(l(),c("p",te,[ne,b(" "+r("Te enviamos o e-mail, verifique sua caixa de entrada e spam se necessário."),1)])):S("",!0)]),_:1}),i("a",{href:"?sign_up",class:"ui-btn-lg ui-btn-contrast block w-full text-center",onClick:t[3]||(t[3]=x(o=>e.isSignUp=!e.isSignUp,["prevent"]))},r(e.isSignUp?"Acessar minha conta":"Criar uma conta"),1)])],32)}const ae=N($,[["render",ie]]),oe=P({__name:"AccountPage",setup(m,{expose:t}){t();let s=null;{const{location:a}=window,u=new URLSearchParams(a.search).get("return_url");if(!u){const n=new URL(a.toString());n.pathname="/app/",n.hash=`#${a.pathname.replace("/app/","/")}`,s=n.toString()}h(E,()=>{E.value&&(a.href=u||s)},{immediate:!0})}const e={get loginLinkActionUrl(){return s},set loginLinkActionUrl(a){s=a},LoginForm:ae};return Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!0}),e}}),re={class:"from-secondary-700 to-secondary-950 flex min-h-screen w-full flex-col justify-center bg-gradient-to-br"},le={class:"mx-auto p-4"},ce=i("section",{class:"ui-section text-center"},[i("a",{href:"/",class:"text-base-200 hover:text-white"},[i("i",{class:"i-arrow-right mr-1 rotate-180"}),b(" "+r("Ir para a loja"))])],-1),me={class:"overflow-hidden rounded-md shadow-md ring-4 ring-black/10"},ue={class:"mb-5 text-center"},de={href:"/",class:"inline-block"},pe={key:0,class:"ui-section px-0"},ge={class:"mx-auto flex max-w-sm flex-wrap items-center justify-evenly gap-4 px-3"};function _e(m,t,s,e,a,u){const n=C("ALink");return l(),c("article",re,[i("div",le,[ce,i("section",me,[L(e.LoginForm,T(V({loginLinkActionUrl:e.loginLinkActionUrl})),{head:U(()=>[i("div",ue,[i("a",de,[F(m.$slots,"logo")])])]),_:3},16)]),m.$settings.serviceLinks?.length?(l(),c("nav",pe,[i("ul",ge,[(l(!0),c(j,null,B(m.$settings.serviceLinks,({title:o,href:d},g)=>(l(),c("li",{key:`s-${g}`},[L(n,{href:d,class:"text-base-200 ui-link hover:text-white"},{default:U(()=>[b(r(o),1)]),_:2},1032,["href"])]))),128))])])):S("",!0)])])}const xe=N(oe,[["render",_e]]);export{xe as default};
1
+ import{a as f,w as h,d as P,c as M,i as C,o as l,e as c,Z as F,f as i,a0 as b,a1 as r,l as S,j as k,n as A,g as L,h as U,a4 as T,a5 as V,F as j,k as B}from"./sf-utils.xmJHVMAX.js";import{_ as N,a as I,v as R,w as x}from"./_plugin-vue_export-helper.3R8ooc_r.js";import{e as q,f as _,E as D,a as O,d as E}from"./customer-session.BAjMMoBA.js";import{u as z}from"./index.BAyyMfaO.js";import{g as G,b as K,c as W}from"./index-bea2a320.CHELEM8n.js";import{u as Y}from"./index.CTTHpJlV.js";import"./server-data.CUHTES8a.js";const Z=m=>{q();const s=m?.canUseUrlParams!==!1?z("history"):{},e=s.sign_up!==void 0&&s.sign_up!=="0",a=s.password!==void 0&&s.password!=="0",u=f(e),n=f(!e&&!a);h(u,p=>{p?(n.value=!0,s.sign_up="1"):s.sign_up="0"}),h(n,p=>{s.password=p?"0":"1"});const o=f(""),d=f(!1),g=Y(async p=>{d.value=!0;const v=Date.now(),y=G();if(_.value){window.localStorage.setItem(D,_.value);try{if(n.value){const w=new URL(p||window.location.toString());w.searchParams.append("email",_.value),await K(y,_.value,{url:w.toString(),handleCodeInApp:!0})}else await W(y,_.value,o.value)}catch(w){console.warn(w.code),console.error(w)}setTimeout(()=>{d.value=!1},Math.min(2e3-(Date.now()-v),1))}},2e3);return{isLinkSignIn:n,isSignUp:u,email:_,password:o,isSubmitting:d,submitLogin:g}},$=P({__name:"LoginForm",props:{loginLinkActionUrl:{}},setup(m,{expose:t}){t();const{isLinkSignIn:s,isSignUp:e,email:a,password:u,isSubmitting:n,submitLogin:o}=Z(),d=f(!1),g=f(0),p=M(()=>g.value>9);h(n,()=>{!n.value&&s.value&&(d.value=!0,g.value+=1)}),h([a,e],()=>{d.value=!1}),h(p,()=>{s.value=!1});const v={isLinkSignIn:s,isSignUp:e,email:a,password:u,isSubmitting:n,submitLogin:o,isEmailSentMsg:d,countEmailsSent:g,isLinkSignInBlocked:p,get customerName(){return O}};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}}),H={class:"text-base-600 mb-4 text-2xl font-light"},J={key:0},Q={key:1,class:"lowercase"},X={key:0,for:"login-form-email"},ee={class:"relative"},se=["disabled"],te={key:0,class:"text-success-800 absolute left-0 top-0 mt-4 font-medium"},ne=i("i",{class:"i-check mr-1"},null,-1);function ie(m,t,s,e,a,u){const n=C("Fade");return l(),c("form",{class:"text-base-800 w-full max-w-sm bg-white p-6 text-base md:p-8",onSubmit:t[4]||(t[4]=x(()=>e.submitLogin(s.loginLinkActionUrl),["prevent"]))},[F(m.$slots,"head"),i("p",H,[b(r("Olá")+" "),e.customerName?(l(),c("span",J,r(e.customerName),1)):(l(),c("span",Q,r("Visitante")))]),e.isLinkSignIn?(l(),c("label",X,r("Enviar link de acesso por e-mail"))):S("",!0),k(i("input",{id:"login-form-email",type:"email",placeholder:"email@mail.com","onUpdate:modelValue":t[0]||(t[0]=o=>e.email=o),class:"mb-0.5 mt-2 w-full",required:""},null,512),[[I,e.email]]),e.isLinkSignIn?S("",!0):k((l(),c("input",{key:1,type:"password",placeholder:"Senha","onUpdate:modelValue":t[1]||(t[1]=o=>e.password=o),class:"mb-0.5 mt-2 w-full lowercase",required:""},null,512)),[[I,e.password]]),i("div",ee,[i("div",{class:A(["transition-opacity",e.isEmailSentMsg&&"opacity-0 invisible"])},[k(i("a",{href:"?password",class:"text-base-500 ui-link text-right text-sm lowercase",onClick:t[2]||(t[2]=x(o=>e.isLinkSignIn=!e.isLinkSignIn,["prevent"]))},r(e.isLinkSignIn?"Entrar com senha":"Esqueci minha senha"),513),[[R,!e.isSignUp&&!e.isLinkSignInBlocked]]),i("button",{type:"submit",disabled:e.isSubmitting,class:A(["ui-btn-lg ui-btn-primary mb-2 mt-5 w-full",e.isSubmitting&&"opacity-50"])},r(e.isSignUp?"Cadastrar":"Acessar minha conta"),11,se)],2),L(n,{speed:"slow"},{default:U(()=>[e.isEmailSentMsg?(l(),c("p",te,[ne,b(" "+r("Te enviamos o e-mail, verifique sua caixa de entrada e spam se necessário."),1)])):S("",!0)]),_:1}),i("a",{href:"?sign_up",class:"ui-btn-lg ui-btn-contrast block w-full text-center",onClick:t[3]||(t[3]=x(o=>e.isSignUp=!e.isSignUp,["prevent"]))},r(e.isSignUp?"Acessar minha conta":"Criar uma conta"),1)])],32)}const ae=N($,[["render",ie]]),oe=P({__name:"AccountPage",setup(m,{expose:t}){t();let s=null;{const{location:a}=window,u=new URLSearchParams(a.search).get("return_url");if(!u){const n=new URL(a.toString());n.pathname="/app/",n.hash=`#${a.pathname.replace("/app/","/")}`,s=n.toString()}h(E,()=>{E.value&&(a.href=u||s)},{immediate:!0})}const e={get loginLinkActionUrl(){return s},set loginLinkActionUrl(a){s=a},LoginForm:ae};return Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!0}),e}}),re={class:"from-secondary-700 to-secondary-950 flex min-h-screen w-full flex-col justify-center bg-gradient-to-br"},le={class:"mx-auto p-4"},ce=i("section",{class:"ui-section text-center"},[i("a",{href:"/",class:"text-base-200 hover:text-white"},[i("i",{class:"i-arrow-right mr-1 rotate-180"}),b(" "+r("Ir para a loja"))])],-1),me={class:"overflow-hidden rounded-md shadow-md ring-4 ring-black/10"},ue={class:"mb-5 text-center"},de={href:"/",class:"inline-block"},pe={key:0,class:"ui-section px-0"},ge={class:"mx-auto flex max-w-sm flex-wrap items-center justify-evenly gap-4 px-3"};function _e(m,t,s,e,a,u){const n=C("ALink");return l(),c("article",re,[i("div",le,[ce,i("section",me,[L(e.LoginForm,T(V({loginLinkActionUrl:e.loginLinkActionUrl})),{head:U(()=>[i("div",ue,[i("a",de,[F(m.$slots,"logo")])])]),_:3},16)]),m.$settings.serviceLinks?.length?(l(),c("nav",pe,[i("ul",ge,[(l(!0),c(j,null,B(m.$settings.serviceLinks,({title:o,href:d},g)=>(l(),c("li",{key:`s-${g}`},[L(n,{href:d,class:"text-base-200 ui-link hover:text-white"},{default:U(()=>[b(r(o),1)]),_:2},1032,["href"])]))),128))])])):S("",!0)])])}const xe=N(oe,[["render",_e]]);export{xe as default};