cloudcommerce 2.1.0 → 2.2.1

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 (158) hide show
  1. package/.github/workflows/test-apps.yml +2 -2
  2. package/.husky/commit-msg +0 -3
  3. package/.husky/pre-commit +0 -3
  4. package/CHANGELOG.md +24 -0
  5. package/README.md +3 -7
  6. package/action.yml +40 -16
  7. package/ecomplus-stores/barra-doce/.github/workflows/build-and-deploy.yml +3 -2
  8. package/ecomplus-stores/barra-doce/.husky/pre-commit +0 -3
  9. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  10. package/ecomplus-stores/barra-doce/functions/ssr/content/pages/brands.json +2 -1
  11. package/ecomplus-stores/barra-doce/functions/ssr/content/pages/categories.json +2 -1
  12. package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
  13. package/ecomplus-stores/barra-doce/functions/ssr/src/assets/style.css +2 -2
  14. package/ecomplus-stores/barra-doce/functions/ssr/src/components/PageTitle.vue +26 -17
  15. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductCard.vue +4 -5
  16. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductDetails.vue +1 -1
  17. package/ecomplus-stores/barra-doce/functions/ssr/src/components/SearchShowcase.vue +2 -1
  18. package/ecomplus-stores/barra-doce/functions/ssr/src/pages/[...slug].astro +3 -3
  19. package/ecomplus-stores/barra-doce/functions/ssr/src/pages/blog/[page].astro +6 -5
  20. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  21. package/ecomplus-stores/barra-doce/package.json +4 -6
  22. package/ecomplus-stores/tia-sonia/.github/workflows/build-and-deploy.yml +4 -2
  23. package/ecomplus-stores/tia-sonia/package.json +0 -2
  24. package/package.json +10 -10
  25. package/packages/api/package.json +1 -1
  26. package/packages/apps/affiliate-program/package.json +1 -1
  27. package/packages/apps/correios/package.json +2 -2
  28. package/packages/apps/custom-payment/package.json +1 -1
  29. package/packages/apps/custom-shipping/package.json +1 -1
  30. package/packages/apps/datafrete/package.json +2 -2
  31. package/packages/apps/discounts/package.json +1 -1
  32. package/packages/apps/emails/package.json +1 -1
  33. package/packages/apps/fb-conversions/package.json +1 -1
  34. package/packages/apps/flash-courier/package.json +2 -2
  35. package/packages/apps/frenet/package.json +2 -2
  36. package/packages/apps/galaxpay/package.json +2 -2
  37. package/packages/apps/google-analytics/package.json +2 -2
  38. package/packages/apps/jadlog/package.json +2 -2
  39. package/packages/apps/loyalty-points/package.json +1 -1
  40. package/packages/apps/mandae/package.json +2 -2
  41. package/packages/apps/melhor-envio/package.json +2 -2
  42. package/packages/apps/mercadopago/package.json +2 -2
  43. package/packages/apps/pagarme/package.json +2 -2
  44. package/packages/apps/pagarme-v5/package.json +2 -2
  45. package/packages/apps/paghiper/package.json +2 -2
  46. package/packages/apps/pix/package.json +2 -2
  47. package/packages/apps/tiny-erp/package.json +2 -2
  48. package/packages/apps/webhooks/package.json +2 -2
  49. package/packages/cli/ci/bunny-config-base.sh +68 -12
  50. package/packages/cli/ci/bunny-prepare-ab.sh +35 -26
  51. package/packages/cli/ci/bunny-remove-ab.sh +54 -0
  52. package/packages/cli/ci/bunny-setup.sh +103 -0
  53. package/packages/cli/config/firebase.json +0 -13
  54. package/packages/cli/lib/cli.js +4 -12
  55. package/packages/cli/package.json +2 -2
  56. package/packages/cli/src/cli.ts +8 -12
  57. package/packages/config/package.json +1 -1
  58. package/packages/emails/package.json +2 -2
  59. package/packages/eslint/package.json +2 -2
  60. package/packages/events/package.json +1 -1
  61. package/packages/feeds/package.json +1 -1
  62. package/packages/firebase/package.json +2 -2
  63. package/packages/i18n/package.json +1 -1
  64. package/packages/modules/package.json +2 -2
  65. package/packages/passport/package.json +1 -1
  66. package/packages/ssr/lib/lib/cron-ssr-save-views.js +76 -4
  67. package/packages/ssr/lib/lib/cron-ssr-save-views.js.map +1 -1
  68. package/packages/ssr/package.json +4 -4
  69. package/packages/ssr/src/lib/cron-ssr-save-views.ts +78 -4
  70. package/packages/storefront/client.d.ts +2 -0
  71. package/packages/storefront/dist/client/_astro/{AccountPage.9BlGHXT3.js → AccountPage.89hLh9p2.js} +1 -1
  72. package/packages/storefront/dist/client/_astro/{CartSidebar.55UgTcV0.js → CartSidebar.G25ZUnKP.js} +1 -1
  73. package/packages/storefront/dist/client/_astro/{ProductDetails.ENLKdSz_.js → ProductDetails.ntFWLjla.js} +1 -1
  74. package/packages/storefront/dist/client/_astro/{ProductShelf.lCBJky3e.js → ProductShelf.PPitdYxI.js} +1 -1
  75. package/packages/storefront/dist/client/_astro/{ProductShelf.CNf5JDrU.js → ProductShelf.xSxmHkTe.js} +1 -1
  76. package/packages/storefront/dist/client/_astro/{SearchModal.4osqtafp.js → SearchModal.R55jFaBZ.js} +1 -1
  77. package/packages/storefront/dist/client/_astro/{SearchShowcase.hg6TWrz3.js → SearchShowcase.I1PPFu_n.js} +1 -1
  78. package/packages/storefront/dist/client/_astro/{ShopHeader.xLMeJpqV.js → ShopHeader.OLf0l4Ot.js} +2 -2
  79. package/packages/storefront/dist/client/_astro/{_slug_.r344YGqG.css → _slug_.Hc-dqhcW.css} +1 -1
  80. package/packages/storefront/dist/client/_astro/customer-session.AcETMuhI.js +7 -0
  81. package/packages/storefront/dist/client/_astro/ecom-icon_12falx.png +0 -0
  82. package/packages/storefront/dist/client/_astro/ecom-icon_15pqnO.png +0 -0
  83. package/packages/storefront/dist/client/_astro/ecom-icon_t3guw.png +0 -0
  84. package/packages/storefront/dist/client/_astro/{firebase-app.cPMfoOsn.js → firebase-app.VduCDgof.js} +1 -1
  85. package/packages/storefront/dist/client/_astro/headphone_T2Jjc.avif +0 -0
  86. package/packages/storefront/dist/client/_astro/headphone_Z1CG18r.webp +0 -0
  87. package/packages/storefront/dist/client/_astro/{hoisted.J15ErMtK.js → hoisted.PxLuJZKI.js} +1 -1
  88. package/packages/storefront/dist/client/_astro/{hoisted.KYhwGfsv.js → hoisted.WBjTfX6e.js} +1 -1
  89. package/packages/storefront/dist/client/_astro/{hoisted.HGTzAuTI.js → hoisted.Wi6YpdWJ.js} +1 -1
  90. package/packages/storefront/dist/client/_astro/{index-dd468b12.D5s8VdAL.js → index-dd468b12.fl8bpn8l.js} +3 -3
  91. package/packages/storefront/dist/client/_astro/logo_1UBsBq.webp +0 -0
  92. package/packages/storefront/dist/client/_astro/logo_Z1K5PE9.png +0 -0
  93. package/packages/storefront/dist/client/_astro/logo_Z1KIIl1.avif +0 -0
  94. package/packages/storefront/dist/client/_astro/passion_LHbe9.webp +0 -0
  95. package/packages/storefront/dist/client/_astro/passion_Z23MeUb.avif +0 -0
  96. package/packages/storefront/dist/client/_astro/rect8589_1TtOHY.png +0 -0
  97. package/packages/storefront/dist/client/_astro/rect8589_1f5opX.webp +0 -0
  98. package/packages/storefront/dist/client/_astro/rect8589_IUskt.webp +0 -0
  99. package/packages/storefront/dist/client/_astro/rect8589_Uxfdf.png +0 -0
  100. package/packages/storefront/dist/client/_astro/rect8589_Z15uApA.png +0 -0
  101. package/packages/storefront/dist/client/_astro/rect8589_Z1Ap1Im.avif +0 -0
  102. package/packages/storefront/dist/client/_astro/rect8589_Z1JT1HB.webp +0 -0
  103. package/packages/storefront/dist/client/_astro/rect8589_ZY9mtN.avif +0 -0
  104. package/packages/storefront/dist/client/_astro/rect8589_tMFW0.avif +0 -0
  105. package/packages/storefront/dist/client/_astro/rect859_1TgQXS.avif +0 -0
  106. package/packages/storefront/dist/client/_astro/rect859_2Nm1z.avif +0 -0
  107. package/packages/storefront/dist/client/_astro/rect859_DIqwR.png +0 -0
  108. package/packages/storefront/dist/client/_astro/rect859_Z1IKDb2.png +0 -0
  109. package/packages/storefront/dist/client/_astro/rect859_Z29FI4V.webp +0 -0
  110. package/packages/storefront/dist/client/_astro/rect859_Z2kFHGk.avif +0 -0
  111. package/packages/storefront/dist/client/_astro/rect859_ZkpPFI.webp +0 -0
  112. package/packages/storefront/dist/client/_astro/rect859_jXzBi.png +0 -0
  113. package/packages/storefront/dist/client/_astro/rect859_x1l16.webp +0 -0
  114. package/packages/storefront/dist/client/_astro/rect89_1TSfW7.avif +0 -0
  115. package/packages/storefront/dist/client/_astro/rect89_Z1re32x.webp +0 -0
  116. package/packages/storefront/dist/client/_astro/{shopping-cart.ZdSCrjS6.js → shopping-cart.dJsZkyuD.js} +1 -1
  117. package/packages/storefront/dist/client/_astro/use-analytics.uqK_2k_k.js +1 -0
  118. package/packages/storefront/dist/client/_astro/{use-product-card.-9TsgDDW.js → use-product-card.WRVLjenR.js} +1 -1
  119. package/packages/storefront/dist/client/~fallback.html +98 -0
  120. package/packages/storefront/dist/client/~index.html +128 -0
  121. package/packages/storefront/dist/server/chunks/{CartSidebar_7UWmGIF6.mjs → CartSidebar_yYIzwp_R.mjs} +1 -1
  122. package/packages/storefront/dist/server/chunks/{SearchModal_MNdcYMws.mjs → SearchModal_GvRUZ6ce.mjs} +1 -1
  123. package/packages/storefront/dist/server/chunks/{_.._h5R83hoK.mjs → _.._Lq3r7hpv.mjs} +1 -1
  124. package/packages/storefront/dist/server/chunks/{_page__lWVlZyRe.mjs → _page__LqbeNfr1.mjs} +1 -1
  125. package/packages/storefront/dist/server/chunks/{account_jmelxnlw.mjs → account_4n4rpirV.mjs} +1 -1
  126. package/packages/storefront/dist/server/chunks/astro/{assets-service_xNulQtBO.mjs → assets-service_yXRChsFH.mjs} +11 -66
  127. package/packages/storefront/dist/server/chunks/{astro_tggR3S_9.mjs → astro_F4pl3toV.mjs} +1 -7
  128. package/packages/storefront/dist/server/chunks/{index_e3ytAL8v.mjs → index_SwXtE1IM.mjs} +1 -1
  129. package/packages/storefront/dist/server/chunks/{node_kUJIRL0c.mjs → node_Nzz44v5l.mjs} +1 -1
  130. package/packages/storefront/dist/server/chunks/pages/{__wihn0dYD.mjs → __z8Igc_-f.mjs} +102 -298
  131. package/packages/storefront/dist/server/chunks/pages/{_page__Sb1eYhpz.mjs → _page__-V1Q-Ymk.mjs} +3 -17
  132. package/packages/storefront/dist/server/chunks/pages/account_frSUn7gD.mjs +22 -0
  133. package/packages/storefront/dist/server/chunks/pages/{index_mQXYNYRg.mjs → index_QqJiJpFy.mjs} +4 -15
  134. package/packages/storefront/dist/server/chunks/pages/node_FoDIj_f7.mjs +257 -0
  135. package/packages/storefront/dist/server/chunks/pages/~fallback_t0lNhRm9.mjs +33 -0
  136. package/packages/storefront/dist/server/chunks/~fallback_EWqi0UyU.mjs +6 -0
  137. package/packages/storefront/dist/server/entry.mjs +8 -8
  138. package/packages/storefront/dist/server/images.dist.csv +30 -0
  139. package/packages/storefront/dist/server/images.src.csv +11 -0
  140. package/packages/storefront/dist/server/manifest_ZHJUD8_m.mjs +196 -0
  141. package/packages/storefront/dist/server/renderers.mjs +1 -1
  142. package/packages/storefront/dist/server/static-builds.csv +71 -0
  143. package/packages/storefront/package.json +7 -7
  144. package/packages/storefront/src/lib/composables/use-search-showcase.ts +34 -8
  145. package/packages/storefront/src/lib/layouts/BaseHead.astro +1 -0
  146. package/packages/storefront/src/lib/state/search-engine.ts +7 -2
  147. package/packages/storefront/src/lib/state/use-analytics.ts +24 -6
  148. package/packages/test-base/package.json +1 -1
  149. package/packages/types/package.json +1 -1
  150. package/ecomplus-stores/barra-doce/LICENSE.md +0 -230
  151. package/ecomplus-stores/tia-sonia/LICENSE.md +0 -230
  152. package/packages/storefront/dist/client/_astro/customer-session.hXdZh5Ii.js +0 -7
  153. package/packages/storefront/dist/client/_astro/use-analytics.tCrQbW8O.js +0 -1
  154. package/packages/storefront/dist/server/chunks/pages/account_-mULVQUB.mjs +0 -32
  155. package/packages/storefront/dist/server/chunks/pages/node_-qe5LuQh.mjs +0 -112
  156. package/packages/storefront/dist/server/chunks/pages/~fallback_ad_xyGHU.mjs +0 -58
  157. package/packages/storefront/dist/server/chunks/~fallback_EZqiEAFE.mjs +0 -6
  158. package/packages/storefront/dist/server/manifest_RrmXPEuL.mjs +0 -196
@@ -0,0 +1,196 @@
1
+ import '@astrojs/internal-helpers/path';
2
+ import 'cookie';
3
+ import { bold, red, yellow, dim, blue } from 'kleur/colors';
4
+ import 'string-width';
5
+ import './chunks/astro_F4pl3toV.mjs';
6
+ import 'clsx';
7
+ import { compile } from 'path-to-regexp';
8
+
9
+ const dateTimeFormat = new Intl.DateTimeFormat([], {
10
+ hour: "2-digit",
11
+ minute: "2-digit",
12
+ second: "2-digit",
13
+ hour12: false
14
+ });
15
+ const levels = {
16
+ debug: 20,
17
+ info: 30,
18
+ warn: 40,
19
+ error: 50,
20
+ silent: 90
21
+ };
22
+ function log(opts, level, label, message, newLine = true) {
23
+ const logLevel = opts.level;
24
+ const dest = opts.dest;
25
+ const event = {
26
+ label,
27
+ level,
28
+ message,
29
+ newLine
30
+ };
31
+ if (!isLogLevelEnabled(logLevel, level)) {
32
+ return;
33
+ }
34
+ dest.write(event);
35
+ }
36
+ function isLogLevelEnabled(configuredLogLevel, level) {
37
+ return levels[configuredLogLevel] <= levels[level];
38
+ }
39
+ function info(opts, label, message, newLine = true) {
40
+ return log(opts, "info", label, message, newLine);
41
+ }
42
+ function warn(opts, label, message, newLine = true) {
43
+ return log(opts, "warn", label, message, newLine);
44
+ }
45
+ function error(opts, label, message, newLine = true) {
46
+ return log(opts, "error", label, message, newLine);
47
+ }
48
+ function debug(...args) {
49
+ if ("_astroGlobalDebug" in globalThis) {
50
+ globalThis._astroGlobalDebug(...args);
51
+ }
52
+ }
53
+ function getEventPrefix({ level, label }) {
54
+ const timestamp = `${dateTimeFormat.format(/* @__PURE__ */ new Date())}`;
55
+ const prefix = [];
56
+ if (level === "error" || level === "warn") {
57
+ prefix.push(bold(timestamp));
58
+ prefix.push(`[${level.toUpperCase()}]`);
59
+ } else {
60
+ prefix.push(timestamp);
61
+ }
62
+ if (label) {
63
+ prefix.push(`[${label}]`);
64
+ }
65
+ if (level === "error") {
66
+ return red(prefix.join(" "));
67
+ }
68
+ if (level === "warn") {
69
+ return yellow(prefix.join(" "));
70
+ }
71
+ if (prefix.length === 1) {
72
+ return dim(prefix[0]);
73
+ }
74
+ return dim(prefix[0]) + " " + blue(prefix.splice(1).join(" "));
75
+ }
76
+ if (typeof process !== "undefined") {
77
+ let proc = process;
78
+ if ("argv" in proc && Array.isArray(proc.argv)) {
79
+ if (proc.argv.includes("--verbose")) ; else if (proc.argv.includes("--silent")) ; else ;
80
+ }
81
+ }
82
+ class Logger {
83
+ options;
84
+ constructor(options) {
85
+ this.options = options;
86
+ }
87
+ info(label, message, newLine = true) {
88
+ info(this.options, label, message, newLine);
89
+ }
90
+ warn(label, message, newLine = true) {
91
+ warn(this.options, label, message, newLine);
92
+ }
93
+ error(label, message, newLine = true) {
94
+ error(this.options, label, message, newLine);
95
+ }
96
+ debug(label, ...messages) {
97
+ debug(label, ...messages);
98
+ }
99
+ level() {
100
+ return this.options.level;
101
+ }
102
+ forkIntegrationLogger(label) {
103
+ return new AstroIntegrationLogger(this.options, label);
104
+ }
105
+ }
106
+ class AstroIntegrationLogger {
107
+ options;
108
+ label;
109
+ constructor(logging, label) {
110
+ this.options = logging;
111
+ this.label = label;
112
+ }
113
+ /**
114
+ * Creates a new logger instance with a new label, but the same log options.
115
+ */
116
+ fork(label) {
117
+ return new AstroIntegrationLogger(this.options, label);
118
+ }
119
+ info(message) {
120
+ info(this.options, this.label, message);
121
+ }
122
+ warn(message) {
123
+ warn(this.options, this.label, message);
124
+ }
125
+ error(message) {
126
+ error(this.options, this.label, message);
127
+ }
128
+ debug(message) {
129
+ debug(this.label, message);
130
+ }
131
+ }
132
+
133
+ function getRouteGenerator(segments, addTrailingSlash) {
134
+ const template = segments.map((segment) => {
135
+ return "/" + segment.map((part) => {
136
+ if (part.spread) {
137
+ return `:${part.content.slice(3)}(.*)?`;
138
+ } else if (part.dynamic) {
139
+ return `:${part.content}`;
140
+ } else {
141
+ return part.content.normalize().replace(/\?/g, "%3F").replace(/#/g, "%23").replace(/%5B/g, "[").replace(/%5D/g, "]").replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
142
+ }
143
+ }).join("");
144
+ }).join("");
145
+ let trailing = "";
146
+ if (addTrailingSlash === "always" && segments.length) {
147
+ trailing = "/";
148
+ }
149
+ const toPath = compile(template + trailing);
150
+ return toPath;
151
+ }
152
+
153
+ function deserializeRouteData(rawRouteData) {
154
+ return {
155
+ route: rawRouteData.route,
156
+ type: rawRouteData.type,
157
+ pattern: new RegExp(rawRouteData.pattern),
158
+ params: rawRouteData.params,
159
+ component: rawRouteData.component,
160
+ generate: getRouteGenerator(rawRouteData.segments, rawRouteData._meta.trailingSlash),
161
+ pathname: rawRouteData.pathname || void 0,
162
+ segments: rawRouteData.segments,
163
+ prerender: rawRouteData.prerender,
164
+ redirect: rawRouteData.redirect,
165
+ redirectRoute: rawRouteData.redirectRoute ? deserializeRouteData(rawRouteData.redirectRoute) : void 0,
166
+ fallbackRoutes: rawRouteData.fallbackRoutes.map((fallback) => {
167
+ return deserializeRouteData(fallback);
168
+ })
169
+ };
170
+ }
171
+
172
+ function deserializeManifest(serializedManifest) {
173
+ const routes = [];
174
+ for (const serializedRoute of serializedManifest.routes) {
175
+ routes.push({
176
+ ...serializedRoute,
177
+ routeData: deserializeRouteData(serializedRoute.routeData)
178
+ });
179
+ const route = serializedRoute;
180
+ route.routeData = deserializeRouteData(serializedRoute.routeData);
181
+ }
182
+ const assets = new Set(serializedManifest.assets);
183
+ const componentMetadata = new Map(serializedManifest.componentMetadata);
184
+ const clientDirectives = new Map(serializedManifest.clientDirectives);
185
+ return {
186
+ ...serializedManifest,
187
+ assets,
188
+ componentMetadata,
189
+ clientDirectives,
190
+ routes
191
+ };
192
+ }
193
+
194
+ const manifest = deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"type":"endpoint","isIndex":false,"route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/astro@4.2.1_@types+node@18.19.8_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node.js","pathname":"/_image","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.PxLuJZKI.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.Hc-dqhcW.css"}],"routeData":{"route":"/app","isIndex":true,"type":"page","pattern":"^\\/app\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/index.astro","pathname":"/app","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.Wi6YpdWJ.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.Hc-dqhcW.css"}],"routeData":{"route":"/app/account","isIndex":false,"type":"page","pattern":"^\\/app\\/account\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}],[{"content":"account","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/account.astro","pathname":"/app/account","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.Wi6YpdWJ.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.Hc-dqhcW.css"}],"routeData":{"route":"/blog/[page]","isIndex":false,"type":"page","pattern":"^\\/blog\\/([^/]+?)\\/?$","segments":[[{"content":"blog","dynamic":false,"spread":false}],[{"content":"page","dynamic":true,"spread":false}]],"params":["page"],"component":"src/pages/blog/[page].astro","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.WBjTfX6e.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.Hc-dqhcW.css"}],"routeData":{"route":"/~fallback","isIndex":false,"type":"page","pattern":"^\\/~fallback\\/?$","segments":[[{"content":"~fallback","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/~fallback.astro","pathname":"/~fallback","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.Wi6YpdWJ.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.Hc-dqhcW.css"}],"routeData":{"route":"/[...slug]","isIndex":false,"type":"page","pattern":"^(?:\\/(.*?))?\\/?$","segments":[[{"content":"...slug","dynamic":true,"spread":true}]],"params":["...slug"],"component":"src/pages/[...slug].astro","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}}],"site":"https://demo.ecomplus.app","base":"/","trailingSlash":"ignore","compressHTML":true,"componentMetadata":[["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseHead.astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/[...slug].astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/[...slug]@_@astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astrojs-ssr-virtual-entry",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/account.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/app/account@_@astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/index.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/app/index@_@astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/blog/[page].astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/blog/[page]@_@astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/~fallback.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/~fallback@_@astro",{"propagation":"in-tree","containsHead":false}]],"renderers":[],"clientDirectives":[["idle","(()=>{var i=t=>{let e=async()=>{await(await t())()};\"requestIdleCallback\"in window?window.requestIdleCallback(e):setTimeout(e,200)};(self.Astro||(self.Astro={})).idle=i;window.dispatchEvent(new Event(\"astro:idle\"));})();"],["load","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event(\"astro:load\"));})();"],["media","(()=>{var s=(i,t)=>{let a=async()=>{await(await i())()};if(t.value){let e=matchMedia(t.value);e.matches?a():e.addEventListener(\"change\",a,{once:!0})}};(self.Astro||(self.Astro={})).media=s;window.dispatchEvent(new Event(\"astro:media\"));})();"],["only","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event(\"astro:only\"));})();"],["visible","(()=>{var l=(s,i,o)=>{let r=async()=>{await(await s())()},t=typeof i.value==\"object\"?i.value:void 0,c={rootMargin:t==null?void 0:t.rootMargin},n=new IntersectionObserver(e=>{for(let a of e)if(a.isIntersecting){n.disconnect(),r();break}},c);for(let e of o.children)n.observe(e)};(self.Astro||(self.Astro={})).visible=l;window.dispatchEvent(new Event(\"astro:visible\"));})();"],["context","(()=>{var a=(s,o)=>{let n=async()=>{await(await s())()},r=()=>{let t=Array.isArray(o.value)?o.value:[o.value];for(let e=0;e<t.length;e++)if(typeof t[e]==\"string\"&&t[e].startsWith(\"data:\")){let d=t[e].substring(5);if(!window.$storefront?.data?.[d]){window.addEventListener(`storefront:data:${d}`,r,{once:!0});return}}if(t.includes(\"idle\")){if(typeof window.requestIdleCallback==\"function\"){setTimeout(()=>window.requestIdleCallback(n),9);return}setTimeout(n,200);return}n()},i=window.$storefront?.apiContext?.doc._id||null;if(window._firstLoadContextId===i&&window._emitedContextId===i){console.log(\"[ctx] first load\"),r(),document.addEventListener(\"astro:beforeload\",()=>{delete window._firstLoadContextId},{once:!0});return}window.addEventListener(\"storefront:apiContext\",r,{once:!0})};(self.Astro||(self.Astro={})).context=a;window.dispatchEvent(new Event(\"astro:context\"));})();\n"]],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"entry.mjs","\u0000@astro-renderers":"renderers.mjs","\u0000empty-middleware":"_empty-middleware.mjs","/src/pages/blog/[page].astro":"chunks/pages/_page__-V1Q-Ymk.mjs","/src/pages/app/account.astro":"chunks/pages/account_frSUn7gD.mjs","/src/pages/app/index.astro":"chunks/pages/index_QqJiJpFy.mjs","/../../node_modules/.pnpm/astro@4.2.1_@types+node@18.19.8_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node.js":"chunks/pages/node_FoDIj_f7.mjs","/src/pages/~fallback.astro":"chunks/pages/~fallback_t0lNhRm9.mjs","\u0000@astrojs-manifest":"manifest_ZHJUD8_m.mjs","\u0000@astro-page:../../node_modules/.pnpm/astro@4.2.1_@types+node@18.19.8_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node@_@js":"chunks/node_Nzz44v5l.mjs","\u0000@astro-page:src/pages/app/index@_@astro":"chunks/index_SwXtE1IM.mjs","\u0000@astro-page:src/pages/app/account@_@astro":"chunks/account_4n4rpirV.mjs","\u0000@astro-page:src/pages/blog/[page]@_@astro":"chunks/_page__LqbeNfr1.mjs","\u0000@astro-page:src/pages/~fallback@_@astro":"chunks/~fallback_EWqi0UyU.mjs","\u0000@astro-page:src/pages/[...slug]@_@astro":"chunks/_.._Lq3r7hpv.mjs","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/components/SearchModal.vue":"_astro/SearchModal.R55jFaBZ.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/components/CartSidebar.vue":"_astro/CartSidebar.G25ZUnKP.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/photoswipe/dist/photoswipe.css?inline":"_astro/photoswipe.0V7m2jWu.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/photoswipe/dist/photoswipe-lightbox.esm.js":"_astro/photoswipe-lightbox.esm.dZBqKD9u.js","/astro/hoisted.js?q=1":"_astro/hoisted.WBjTfX6e.js","~/components/AccountPage.vue":"_astro/AccountPage.89hLh9p2.js","~/components/HeroSlider.vue":"_astro/HeroSlider.XZb2xsyV.js","/astro/hoisted.js?q=0":"_astro/hoisted.PxLuJZKI.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/scripts/firebase-app.ts":"_astro/firebase-app.VduCDgof.js","~/components/PitchBar.vue":"_astro/PitchBar.Nr7T3S3T.js","~/components/SearchShowcase.vue":"_astro/SearchShowcase.I1PPFu_n.js","~/components/ShopHeader.vue":"_astro/ShopHeader.OLf0l4Ot.js","~/components/ProductShelf.vue":"_astro/ProductShelf.xSxmHkTe.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/photoswipe/dist/photoswipe.esm.js":"_astro/photoswipe.esm.Ylh9TGkz.js","/astro/hoisted.js?q=2":"_astro/hoisted.Wi6YpdWJ.js","~/components/ProductDetails.vue":"_astro/ProductDetails.ntFWLjla.js","@astrojs/vue/client.js":"_astro/client.ZhEmw4hZ.js","astro:scripts/before-hydration.js":""},"assets":["/_astro/_slug_.Hc-dqhcW.css","/robots.txt","/_astro/AccountPage.89hLh9p2.js","/_astro/CartSidebar.G25ZUnKP.js","/_astro/HeroSlider.XZb2xsyV.js","/_astro/PitchBar.Nr7T3S3T.js","/_astro/Prices.Ye-m2HTo.js","/_astro/ProductDetails.ntFWLjla.js","/_astro/ProductShelf.PPitdYxI.js","/_astro/ProductShelf.xSxmHkTe.js","/_astro/QuantitySelector.tumfWDjC.js","/_astro/SearchModal.R55jFaBZ.js","/_astro/SearchShowcase.I1PPFu_n.js","/_astro/ShopHeader.OLf0l4Ot.js","/_astro/_plugin-vue_export-helper.SO-0jCqa.js","/_astro/afetch.5c8VmT0-.js","/_astro/client.ZhEmw4hZ.js","/_astro/customer-session.AcETMuhI.js","/_astro/firebase-app.VduCDgof.js","/_astro/format-money.iK5LGydz.js","/_astro/grid-title.vGKBy72g.js","/_astro/hoisted.PxLuJZKI.js","/_astro/hoisted.WBjTfX6e.js","/_astro/hoisted.Wi6YpdWJ.js","/_astro/i18n.Lxnz1oF-.js","/_astro/img-sizes.gxAI9JNh.js","/_astro/img.WnsidxCx.js","/_astro/index-dd468b12.fl8bpn8l.js","/_astro/index.R7A-Pg5V.js","/_astro/index.q6KIyKlJ.js","/_astro/modules-info.tVRhvxNm.js","/_astro/name.urFqJ5yn.js","/_astro/photoswipe-lightbox.esm.dZBqKD9u.js","/_astro/photoswipe.0V7m2jWu.js","/_astro/photoswipe.esm.Ylh9TGkz.js","/_astro/price.Easct8WC.js","/_astro/runtime-core.esm-bundler.XTSAdOlw.js","/_astro/sf-utils.Z4H-dRBJ.js","/_astro/shopping-cart.dJsZkyuD.js","/_astro/use-analytics.uqK_2k_k.js","/_astro/use-product-card.WRVLjenR.js","/_astro/use-text-value.XE_A2nDM.js","/img/icon.png","/img/large-icon.png","/img/uploads/banner2.webp","/img/uploads/ecom-icon.png","/img/uploads/headphone.webp","/img/uploads/logo.png","/img/uploads/og-image.png","/img/uploads/passion.webp","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.webp"]});
195
+
196
+ export { AstroIntegrationLogger as A, Logger as L, getEventPrefix as g, levels as l, manifest };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, h, createSSRApp } from 'vue';
2
2
  import { renderToString } from 'vue/server-renderer';
3
- import { o as mod, p as createApp } from './chunks/pages/__wihn0dYD.mjs';
3
+ import { m as mod, n as createApp } from './chunks/pages/__z8Igc_-f.mjs';
4
4
 
5
5
  const setup = async (app) => {
6
6
  if ('default' in mod) {
@@ -0,0 +1,71 @@
1
+ /_astro/AccountPage.89hLh9p2.js
2
+ /_astro/afetch.5c8VmT0-.js
3
+ /_astro/CartSidebar.G25ZUnKP.js
4
+ /_astro/client.ZhEmw4hZ.js
5
+ /_astro/customer-session.AcETMuhI.js
6
+ /_astro/ecom-icon_12falx.png
7
+ /_astro/ecom-icon_15pqnO.png
8
+ /_astro/ecom-icon_t3guw.png
9
+ /_astro/firebase-app.VduCDgof.js
10
+ /_astro/format-money.iK5LGydz.js
11
+ /_astro/grid-title.vGKBy72g.js
12
+ /_astro/headphone_T2Jjc.avif
13
+ /_astro/headphone_Z1CG18r.webp
14
+ /_astro/HeroSlider.XZb2xsyV.js
15
+ /_astro/hoisted.PxLuJZKI.js
16
+ /_astro/hoisted.WBjTfX6e.js
17
+ /_astro/hoisted.Wi6YpdWJ.js
18
+ /_astro/i18n.Lxnz1oF-.js
19
+ /_astro/img-sizes.gxAI9JNh.js
20
+ /_astro/img.WnsidxCx.js
21
+ /_astro/index-dd468b12.fl8bpn8l.js
22
+ /_astro/index.q6KIyKlJ.js
23
+ /_astro/index.R7A-Pg5V.js
24
+ /_astro/logo_1UBsBq.webp
25
+ /_astro/logo_Z1K5PE9.png
26
+ /_astro/logo_Z1KIIl1.avif
27
+ /_astro/modules-info.tVRhvxNm.js
28
+ /_astro/name.urFqJ5yn.js
29
+ /_astro/passion_LHbe9.webp
30
+ /_astro/passion_Z23MeUb.avif
31
+ /_astro/photoswipe.0V7m2jWu.js
32
+ /_astro/photoswipe.esm.Ylh9TGkz.js
33
+ /_astro/photoswipe-lightbox.esm.dZBqKD9u.js
34
+ /_astro/PitchBar.Nr7T3S3T.js
35
+ /_astro/_plugin-vue_export-helper.SO-0jCqa.js
36
+ /_astro/price.Easct8WC.js
37
+ /_astro/Prices.Ye-m2HTo.js
38
+ /_astro/ProductDetails.ntFWLjla.js
39
+ /_astro/ProductShelf.PPitdYxI.js
40
+ /_astro/ProductShelf.xSxmHkTe.js
41
+ /_astro/QuantitySelector.tumfWDjC.js
42
+ /_astro/rect8589_1f5opX.webp
43
+ /_astro/rect8589_1TtOHY.png
44
+ /_astro/rect8589_IUskt.webp
45
+ /_astro/rect8589_tMFW0.avif
46
+ /_astro/rect8589_Uxfdf.png
47
+ /_astro/rect8589_Z15uApA.png
48
+ /_astro/rect8589_Z1Ap1Im.avif
49
+ /_astro/rect8589_Z1JT1HB.webp
50
+ /_astro/rect8589_ZY9mtN.avif
51
+ /_astro/rect859_1TgQXS.avif
52
+ /_astro/rect859_2Nm1z.avif
53
+ /_astro/rect859_DIqwR.png
54
+ /_astro/rect859_jXzBi.png
55
+ /_astro/rect859_x1l16.webp
56
+ /_astro/rect859_Z1IKDb2.png
57
+ /_astro/rect859_Z29FI4V.webp
58
+ /_astro/rect859_Z2kFHGk.avif
59
+ /_astro/rect859_ZkpPFI.webp
60
+ /_astro/rect89_1TSfW7.avif
61
+ /_astro/rect89_Z1re32x.webp
62
+ /_astro/runtime-core.esm-bundler.XTSAdOlw.js
63
+ /_astro/SearchModal.R55jFaBZ.js
64
+ /_astro/SearchShowcase.I1PPFu_n.js
65
+ /_astro/sf-utils.Z4H-dRBJ.js
66
+ /_astro/ShopHeader.OLf0l4Ot.js
67
+ /_astro/shopping-cart.dJsZkyuD.js
68
+ /_astro/_slug_.Hc-dqhcW.css
69
+ /_astro/use-analytics.uqK_2k_k.js
70
+ /_astro/use-product-card.WRVLjenR.js
71
+ /_astro/use-text-value.XE_A2nDM.js
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/storefront",
3
3
  "type": "module",
4
- "version": "2.1.0",
4
+ "version": "2.2.1",
5
5
  "description": "E-Com Plus Cloud Commerce storefront with Astro",
6
6
  "bin": {
7
7
  "storefront": "./scripts/build-prod.sh"
@@ -30,7 +30,7 @@
30
30
  "lint:fix": "eslint -c ../eslint/storefront.staged.eslintrc.cjs src/lib/**/*.{ts,vue,astro} --fix"
31
31
  },
32
32
  "dependencies": {
33
- "@astrojs/node": "8.0.0",
33
+ "@astrojs/node": "8.1.0",
34
34
  "@astrojs/vue": "4.0.8",
35
35
  "@cloudcommerce/api": "workspace:*",
36
36
  "@cloudcommerce/config": "workspace:*",
@@ -43,10 +43,10 @@
43
43
  "@types/gtag.js": "^0.0.18",
44
44
  "@vite-pwa/astro": "^0.2.0",
45
45
  "@vueuse/core": "10.7.2",
46
- "astro": "4.2.1",
46
+ "astro": "4.2.6",
47
47
  "astro-capo": "^0.0.1",
48
48
  "chroma-js": "^2.4.2",
49
- "dotenv": "^16.3.2",
49
+ "dotenv": "^16.4.1",
50
50
  "firebase": "^10.7.2",
51
51
  "image-size": "^1.1.1",
52
52
  "mime": "^3.0.0",
@@ -54,10 +54,10 @@
54
54
  "semver": "^7.5.4",
55
55
  "sharp": "^0.32.6",
56
56
  "tailwindcss": "^3.4.1",
57
- "unocss": "^0.58.3",
58
- "unplugin-auto-import": "^0.17.3",
57
+ "unocss": "^0.58.4",
58
+ "unplugin-auto-import": "^0.17.5",
59
59
  "vite": "^5.0.11",
60
- "vite-plugin-pwa": "^0.17.4",
60
+ "vite-plugin-pwa": "^0.17.5",
61
61
  "vue": "^3.4.15",
62
62
  "wade": "0.3.3",
63
63
  "yaml": "^2.3.4"
@@ -23,6 +23,7 @@ import { useSearchActiveFilters } from '@@sf/composables/use-search-filters';
23
23
 
24
24
  export interface Props {
25
25
  term?: string | null;
26
+ pageSize?: number;
26
27
  fixedParams?: SearchEngineInstance['params'];
27
28
  products?: SearchItem<null>[];
28
29
  resultMeta?: SearchEngineInstance['meta'];
@@ -49,32 +50,57 @@ const useSearchShowcase = (props: Props) => {
49
50
  if (term !== undefined) {
50
51
  searchEngine.term.value = term;
51
52
  }
53
+ if (props.pageSize) {
54
+ searchEngine.pageSize.value = props.pageSize;
55
+ }
52
56
  Object.assign(searchEngine.params, props.fixedParams);
57
+ let hasChangedInitParams = false;
53
58
  if (urlParams) {
54
59
  Object.keys(urlParams).forEach((param) => {
60
+ if (!urlParams[param]) return;
61
+ if (param.startsWith('f\\')) {
62
+ const field = param.substring(2);
63
+ searchEngine.params[field] = urlParams[param];
64
+ if (props.fixedParams?.[field] !== urlParams[param]) {
65
+ hasChangedInitParams = true;
66
+ }
67
+ return;
68
+ }
55
69
  if (param === 'sort') {
56
70
  searchEngine.params.sort = urlParams.sort;
71
+ if (
72
+ typeof urlParams.sort === 'string'
73
+ && props.resultMeta?.sort?.length === 1
74
+ ) {
75
+ const { field, order } = props.resultMeta.sort[0];
76
+ const fetchedSort = order ? field : `-${field}`;
77
+ if (fetchedSort === urlParams.sort) return;
78
+ }
79
+ hasChangedInitParams = true;
57
80
  return;
58
81
  }
59
82
  if (param === 'p') {
60
83
  const pageNumber = parseInt(String(urlParams.p), 10);
61
- if (pageNumber >= 1) searchEngine.pageNumber.value = pageNumber;
62
- return;
63
- }
64
- if (param.startsWith('f\\')) {
65
- const field = param.substring(2);
66
- searchEngine.params[field] = urlParams[param];
84
+ if (pageNumber >= 1) {
85
+ searchEngine.pageNumber.value = pageNumber;
86
+ if (props.resultMeta?.limit) {
87
+ const { offset, limit } = props.resultMeta;
88
+ const fetchedPage = offset ? Math.ceil(offset / limit) : 1;
89
+ if (fetchedPage === pageNumber) return;
90
+ }
91
+ hasChangedInitParams = true;
92
+ }
67
93
  }
68
94
  });
69
95
  }
70
96
  if (!searchEngine.wasFetched.value) {
71
- if (props.products || props.resultMeta) {
97
+ if ((props.products || props.resultMeta) && !hasChangedInitParams) {
72
98
  searchEngine.setResult({
73
99
  result: props.products,
74
100
  meta: props.resultMeta,
75
101
  });
76
102
  }
77
- if (!props.products) {
103
+ if (!props.products || hasChangedInitParams) {
78
104
  searchEngine.fetch().catch(console.error);
79
105
  }
80
106
  }
@@ -97,6 +97,7 @@ window.ECOM_LANG = '${lang}';
97
97
  window.ECOM_CURRENCY = '${currency}';
98
98
  window.ECOM_CURRENCY_SYMBOL = '${currencySymbol}';
99
99
  window.ECOM_COUNTRY_CODE = '${countryCode}';
100
+ window.GIT_BRANCH = '${import.meta.env.GIT_BRANCH || ''}';
100
101
  window.$storefront = ${JSON.stringify({ settings, data: {} })};`;
101
102
  if (apiContext.error) {
102
103
  const { message, statusCode } = apiContext.error;
@@ -107,7 +107,10 @@ export class SearchEngine {
107
107
  return search(opts);
108
108
  }, debounce);
109
109
  watch([this.term, this.params, this.pageSize], () => {
110
- this.pageNumber.value = 1;
110
+ if (this.wasFetched.value) {
111
+ this.pageNumber.value = 1;
112
+ this.#wasFetched.value = false;
113
+ }
111
114
  });
112
115
  watch(this.pageNumber, () => {
113
116
  this.#wasFetched.value = false;
@@ -168,7 +171,9 @@ export class SearchEngine {
168
171
  data.result.forEach((item) => this.products.push(item));
169
172
  }
170
173
  if (data.meta && data.result) {
171
- this.#wasFetched.value = true;
174
+ /* nextTick */ setTimeout(() => {
175
+ this.#wasFetched.value = true;
176
+ }, 9);
172
177
  }
173
178
  }
174
179
  }
@@ -217,7 +217,11 @@ export const getGtagItem = (product: Partial<Products> | SearchItem | CartItem)
217
217
  return item;
218
218
  };
219
219
 
220
- export const useAnalytics = () => {
220
+ export const useAnalytics = ({
221
+ experimentId = window.AB_EXPERIMENT_ID,
222
+ }: {
223
+ experimentId?: string,
224
+ } = {}) => {
221
225
  document.addEventListener('astro:beforeload', resetPageViewPromise);
222
226
  const {
223
227
  gtag,
@@ -225,12 +229,26 @@ export const useAnalytics = () => {
225
229
  GA_TRACKING_ID,
226
230
  } = window as { [k:string]: any, gtag?: Gtag.Gtag };
227
231
  const tagId = GTAG_TAG_ID || GA_TRACKING_ID;
228
- if (tagId && typeof gtag === 'function') {
229
- ['client_id', 'session_id', 'gclid'].forEach((key) => {
230
- gtag('get', tagId, key, (id) => {
231
- trackingIds[key === 'gclid' ? key : `g_${key}`] = id;
232
+ if (typeof gtag === 'function') {
233
+ if (tagId) {
234
+ ['client_id', 'session_id', 'gclid'].forEach((key) => {
235
+ gtag('get', tagId, key, (id) => {
236
+ trackingIds[key === 'gclid' ? key : `g_${key}`] = id;
237
+ });
232
238
  });
233
- });
239
+ }
240
+ const { GIT_BRANCH } = window;
241
+ if (GIT_BRANCH) {
242
+ // https://developers.google.com/analytics/devguides/collection/ga4/integration
243
+ const expVariantString = experimentId
244
+ ? `${experimentId}-${window.GIT_BRANCH}`
245
+ : GIT_BRANCH.startsWith('main-') && GIT_BRANCH;
246
+ if (expVariantString) {
247
+ gtag('event', 'experience_impression', {
248
+ exp_variant_string: expVariantString,
249
+ });
250
+ }
251
+ }
234
252
  }
235
253
  const url = new URL(window.location.toString());
236
254
  ['gclid', 'fbclid', 'ttclid'].forEach((key) => {
@@ -2,7 +2,7 @@
2
2
  "name": "@cloudcommerce/test-base",
3
3
  "private": true,
4
4
  "type": "module",
5
- "version": "2.1.0",
5
+ "version": "2.2.1",
6
6
  "description": "E-Com Plus Cloud Commerce basic setup for testing",
7
7
  "main": "lib/index.js",
8
8
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "2.1.0",
4
+ "version": "2.2.1",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {