medusa-storefront-data 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server/customer.d.ts +1 -1
- package/dist/server/customer.d.ts.map +1 -1
- package/dist/server/customer.js +1 -0
- package/dist/server/dynamic-config.d.ts.map +1 -1
- package/dist/server/dynamic-config.js +37 -14
- package/dist/server/fulfillment.d.ts +1 -1
- package/dist/server/fulfillment.d.ts.map +1 -1
- package/dist/server/swaps.d.ts +6 -5
- package/dist/server/swaps.d.ts.map +1 -1
- package/dist/server/swaps.js +1 -1
- package/dist/server/wishlist.js +1 -1
- package/package.json +2 -2
- package/src/server/customer.ts +6 -1
- package/src/server/dynamic-config.ts +37 -15
- package/src/server/swaps.ts +8 -6
- package/src/server/wishlist.ts +1 -1
|
@@ -2,7 +2,7 @@ import { HttpTypes } from "@medusajs/types";
|
|
|
2
2
|
export declare const retrieveCustomer: () => Promise<HttpTypes.StoreCustomer | null>;
|
|
3
3
|
export declare const updateCustomer: (body: HttpTypes.StoreUpdateCustomer) => Promise<HttpTypes.StoreCustomer>;
|
|
4
4
|
export declare function signup(_currentState: unknown, formData: FormData): Promise<any>;
|
|
5
|
-
export declare function login(_currentState:
|
|
5
|
+
export declare function login(_currentState: string | null, formData: FormData): Promise<string | null>;
|
|
6
6
|
export declare function signout(countryCode: string): Promise<void>;
|
|
7
7
|
export declare function transferCart(token?: string): Promise<void>;
|
|
8
8
|
export declare const addCustomerAddress: (currentState: Record<string, unknown>, formData: FormData) => Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customer.d.ts","sourceRoot":"","sources":["../../src/server/customer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AA4C3C,eAAO,MAAM,gBAAgB,QACjB,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAkBjD,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,MAAM,SAAS,CAAC,mBAAmB,qCAYvE,CAAA;AAED,wBAAsB,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,gBAqCtE;AAED,wBAAsB,KAAK,
|
|
1
|
+
{"version":3,"file":"customer.d.ts","sourceRoot":"","sources":["../../src/server/customer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AA4C3C,eAAO,MAAM,gBAAgB,QACjB,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAkBjD,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,MAAM,SAAS,CAAC,mBAAmB,qCAYvE,CAAA;AAED,wBAAsB,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,gBAqCtE;AAED,wBAAsB,KAAK,CACzB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsExB;AAED,wBAAsB,OAAO,CAAC,WAAW,EAAE,MAAM,iBAqBhD;AAED,wBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,iBAwChD;AAED,eAAO,MAAM,kBAAkB,GAC7B,cAAc,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,UAAU,QAAQ,KACjB,OAAO,CAAC,GAAG,CAgCb,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAWd,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,cAAc,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,UAAU,QAAQ,KACjB,OAAO,CAAC,GAAG,CAuCb,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,WAAW,MAAM;;;;;;EAWxD,CAAA;AAED,wBAAsB,kBAAkB;;;;;;GA8CvC;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;GAsC5E;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;;GAmChH;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;GAyC1D"}
|
package/dist/server/customer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-config.d.ts","sourceRoot":"","sources":["../../src/server/dynamic-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dynamic-config.d.ts","sourceRoot":"","sources":["../../src/server/dynamic-config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,iBAAiB,CAAC,EAAE;QAClB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,uBAAuB,CAAC,EAAE,KAAK,CAAC;YAC9B,iBAAiB,CAAC,EAAE;gBAClB,uBAAuB,CAAC,EAAE,MAAM,CAAA;gBAChC,uBAAuB,CAAC,EAAE,MAAM,CAAA;gBAChC,0BAA0B,CAAC,EAAE,MAAM,CAAA;gBACnC,6BAA6B,CAAC,EAAE,MAAM,CAAA;gBACtC,6BAA6B,CAAC,EAAE,MAAM,CAAA;gBACtC,6BAA6B,CAAC,EAAE,MAAM,CAAA;aACvC,CAAA;SACF,CAAC,CAAA;QACF,kBAAkB,CAAC,EAAE,KAAK,CAAC;YACzB,YAAY,CAAC,EAAE;gBACb,kBAAkB,CAAC,EAAE,MAAM,CAAA;gBAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;gBAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;gBAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAA;gBACjC,wBAAwB,CAAC,EAAE,MAAM,CAAA;gBACjC,wBAAwB,CAAC,EAAE,MAAM,CAAA;gBACjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;aAC3B,CAAA;SACF,CAAC,CAAA;QACF,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,wBAAwB,CAAC,EAAE,KAAK,CAAC;YAC/B,OAAO,CAAC,EAAE;gBACR,cAAc,CAAC,EAAE,MAAM,CAAA;gBACvB,cAAc,CAAC,EAAE,MAAM,CAAA;aACxB,CAAA;YAED,cAAc,CAAC,EAAE,MAAM,CAAA;YACvB,cAAc,CAAC,EAAE,MAAM,CAAA;SACxB,CAAC,CAAA;QACF,YAAY,CAAC,EAAE;YACb,eAAe,CAAC,EAAE,MAAM,CAAA;YACxB,eAAe,CAAC,EAAE,MAAM,CAAA;YACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAC3B,CAAA;QACD,cAAc,CAAC,EAAE,KAAK,CAAC;YACrB,aAAa,CAAC,EAAE;gBACd,sBAAsB,CAAC,EAAE,MAAM,CAAA;gBAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;gBAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAA;aAC/B,CAAA;YAED,sBAAsB,CAAC,EAAE,MAAM,CAAA;YAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;YAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAA;SAC/B,CAAC,CAAA;QACF,WAAW,CAAC,EAAE;YACZ,YAAY,CAAC,EAAE,MAAM,CAAA;YACrB,YAAY,CAAC,EAAE,MAAM,CAAA;YACrB,aAAa,CAAC,EAAE,MAAM,CAAA;YACtB,cAAc,CAAC,EAAE,OAAO,CAAA;SACzB,CAAA;QAED,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;CACF;AAED,eAAO,MAAM,gBAAgB,QAAmB,OAAO,CAAC,aAAa,GAAG,IAAI,CA+C1E,CAAA;AAEF,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,GAAG,IAAI,CAU/D,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC,MAAM,GAAG,IAAI,CAkBtE,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAmBvG,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC,KAAK,CAAC;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,GAAG,IAAI,CAuBR,CAAA;AAED,eAAO,MAAM,uBAAuB,QAAa,OAAO,CAAC,KAAK,CAAC;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,GAAG,IAAI,CAuBR,CAAA;AAGD,eAAO,MAAM,8BAA8B,QAAa,OAAO,CAAC,MAAM,GAAG,IAAI,CAG5E,CAAA;AAED,eAAO,MAAM,+BAA+B,QAAa,OAAO,CAAC,MAAM,GAAG,IAAI,CAY7E,CAAA;AAED,eAAO,MAAM,qBAAqB,QAAa,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAwB/H,CAAA;AA4BD,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqBpH,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CA4BpL,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAoBnH,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,GAAG,IAAI,CA+B5H,CAAA;AACD,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAcrI,CAAA"}
|
|
@@ -84,10 +84,10 @@ export const getHomeBannersFromConfig = async () => {
|
|
|
84
84
|
const banner = item["homepage-banner"];
|
|
85
85
|
return {
|
|
86
86
|
image: banner?.["homepage-banner-image"],
|
|
87
|
-
title: banner?.["homepage-banner-title"],
|
|
88
|
-
subtitle: banner?.["homepage-banner-subtitle"],
|
|
89
|
-
description: banner?.["homepage-banner-description"],
|
|
90
|
-
buttonName: banner?.["homepage-banner-button-name"],
|
|
87
|
+
title: normalizeCmsText(banner?.["homepage-banner-title"]),
|
|
88
|
+
subtitle: normalizeCmsText(banner?.["homepage-banner-subtitle"]),
|
|
89
|
+
description: normalizeCmsText(banner?.["homepage-banner-description"]),
|
|
90
|
+
buttonName: normalizeBannerButtonName(banner?.["homepage-banner-button-name"]),
|
|
91
91
|
buttonLink: banner?.["homepage-banner-button-link"],
|
|
92
92
|
};
|
|
93
93
|
});
|
|
@@ -107,10 +107,10 @@ export const getAppBannersFromConfig = async () => {
|
|
|
107
107
|
const banner = item["app-banner"];
|
|
108
108
|
return {
|
|
109
109
|
image: banner?.["app-banner-image"],
|
|
110
|
-
title: banner?.["app-banner-title"],
|
|
111
|
-
subtitle: banner?.["app-banner-subtitle"],
|
|
112
|
-
description: banner?.["app-banner-description"],
|
|
113
|
-
buttonName: banner?.["app-banner-button-name"],
|
|
110
|
+
title: normalizeCmsText(banner?.["app-banner-title"]),
|
|
111
|
+
subtitle: normalizeCmsText(banner?.["app-banner-subtitle"]),
|
|
112
|
+
description: normalizeCmsText(banner?.["app-banner-description"]),
|
|
113
|
+
buttonName: normalizeBannerButtonName(banner?.["app-banner-button-name"]),
|
|
114
114
|
buttonLink: banner?.["app-banner-button-link"],
|
|
115
115
|
};
|
|
116
116
|
});
|
|
@@ -158,6 +158,32 @@ export const getFeaturesFromConfig = async () => {
|
|
|
158
158
|
return null;
|
|
159
159
|
}
|
|
160
160
|
};
|
|
161
|
+
const EMAIL_PATTERN = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
|
|
162
|
+
/** Fix common UTF-8 mojibake from CMS copy-paste (e.g. em dash, apostrophe). */
|
|
163
|
+
function normalizeCmsText(value) {
|
|
164
|
+
if (typeof value !== "string" || !value.trim())
|
|
165
|
+
return undefined;
|
|
166
|
+
return value
|
|
167
|
+
.trim()
|
|
168
|
+
.replace(/ΓÇö/g, "—")
|
|
169
|
+
.replace(/ΓÇÖ/g, "'")
|
|
170
|
+
.replace(/ΓÇ£|ΓÇ¥/g, '"')
|
|
171
|
+
.replace(/≡ƒÿÄ≡ƒæòΓ£¿/g, " 👕✨");
|
|
172
|
+
}
|
|
173
|
+
function normalizeBannerButtonName(value) {
|
|
174
|
+
const text = normalizeCmsText(value);
|
|
175
|
+
if (!text)
|
|
176
|
+
return undefined;
|
|
177
|
+
if (/^shop\s+now\s*1$/i.test(text))
|
|
178
|
+
return "Shop Now";
|
|
179
|
+
return text;
|
|
180
|
+
}
|
|
181
|
+
function normalizeConfigEmail(value) {
|
|
182
|
+
if (typeof value !== "string")
|
|
183
|
+
return undefined;
|
|
184
|
+
const trimmed = value.trim();
|
|
185
|
+
return EMAIL_PATTERN.test(trimmed) ? trimmed : undefined;
|
|
186
|
+
}
|
|
161
187
|
export const getContactInfoFromConfig = async () => {
|
|
162
188
|
try {
|
|
163
189
|
const config = await getDynamicConfig();
|
|
@@ -167,10 +193,7 @@ export const getContactInfoFromConfig = async () => {
|
|
|
167
193
|
}
|
|
168
194
|
return {
|
|
169
195
|
phone: contactConfig["contact-phone"],
|
|
170
|
-
email:
|
|
171
|
-
/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(contactConfig["contact-email"].trim())
|
|
172
|
-
? contactConfig["contact-email"].trim()
|
|
173
|
-
: undefined,
|
|
196
|
+
email: normalizeConfigEmail(contactConfig["contact-email"]),
|
|
174
197
|
address: contactConfig["contact-address"],
|
|
175
198
|
};
|
|
176
199
|
}
|
|
@@ -254,10 +277,10 @@ export const getPromoBarConfig = async () => {
|
|
|
254
277
|
const config = await getDynamicConfig();
|
|
255
278
|
const promoConfig = config?.["homepage-config"]?.["promo-bar"];
|
|
256
279
|
return {
|
|
257
|
-
text: promoConfig?.["promo-text"] || null,
|
|
280
|
+
text: normalizeCmsText(promoConfig?.["promo-text"]) || null,
|
|
258
281
|
code: promoConfig?.["promo-code"] || null,
|
|
259
282
|
value: promoConfig?.["promo-value"] || null,
|
|
260
|
-
active: promoConfig?.["promo-active"] ?? false
|
|
283
|
+
active: promoConfig?.["promo-active"] ?? false,
|
|
261
284
|
};
|
|
262
285
|
}
|
|
263
286
|
catch (error) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpTypes } from "@medusajs/types";
|
|
2
2
|
export declare const listCartShippingMethods: (cartId: string) => Promise<HttpTypes.StoreCartShippingOptionWithServiceZone[] | null>;
|
|
3
3
|
export declare const calculatePriceForShippingOption: (optionId: string, cartId: string, data?: Record<string, unknown>) => Promise<HttpTypes.StoreCartShippingOption | null>;
|
|
4
|
-
export declare const getShiprocketServiceability: (pincode: string, variant_id: string, cod?: number) => Promise<
|
|
4
|
+
export declare const getShiprocketServiceability: (pincode: string, variant_id: string, cod?: number) => Promise<import("medusa-services/fulfillment").ShiprocketServiceabilityResult | null>;
|
|
5
5
|
//# sourceMappingURL=fulfillment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fulfillment.d.ts","sourceRoot":"","sources":["../../src/server/fulfillment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3C,eAAO,MAAM,uBAAuB,GAAU,QAAQ,MAAM,uEA0B3D,CAAA;AAED,eAAO,MAAM,+BAA+B,GAC1C,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sDAc/B,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAU,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,MAAK,MAAU,
|
|
1
|
+
{"version":3,"file":"fulfillment.d.ts","sourceRoot":"","sources":["../../src/server/fulfillment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3C,eAAO,MAAM,uBAAuB,GAAU,QAAQ,MAAM,uEA0B3D,CAAA;AAED,eAAO,MAAM,+BAA+B,GAC1C,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sDAc/B,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAU,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,MAAK,MAAU,yFAWrG,CAAA"}
|
package/dist/server/swaps.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
export type SwapActionState = {
|
|
2
|
+
success: boolean;
|
|
3
|
+
error: string | null;
|
|
4
|
+
swap: Record<string, unknown> | null;
|
|
5
|
+
};
|
|
1
6
|
/**
|
|
2
7
|
* Create an exchange (swap) request.
|
|
3
8
|
* Supports both authenticated customers and guest users.
|
|
4
9
|
*/
|
|
5
|
-
export declare const createSwapRequest: (
|
|
6
|
-
success: boolean;
|
|
7
|
-
error: string | null;
|
|
8
|
-
swap: Record<string, unknown> | null;
|
|
9
|
-
}>;
|
|
10
|
+
export declare const createSwapRequest: (_prevState: SwapActionState, formData: FormData) => Promise<SwapActionState>;
|
|
10
11
|
/**
|
|
11
12
|
* List swaps for an order or customer
|
|
12
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swaps.d.ts","sourceRoot":"","sources":["../../src/server/swaps.ts"],"names":[],"mappings":"AAYA
|
|
1
|
+
{"version":3,"file":"swaps.d.ts","sourceRoot":"","sources":["../../src/server/swaps.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CACrC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,eAAe,EAC3B,UAAU,QAAQ,KACjB,OAAO,CAAC,eAAe,CAsEzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,GAAU,UAAU,MAAM,mEAoB/C,CAAA"}
|
package/dist/server/swaps.js
CHANGED
|
@@ -7,7 +7,7 @@ import { getStoreClientOptions, getStoreClientOptionsWithToken } from "../util/s
|
|
|
7
7
|
* Create an exchange (swap) request.
|
|
8
8
|
* Supports both authenticated customers and guest users.
|
|
9
9
|
*/
|
|
10
|
-
export const createSwapRequest = async (
|
|
10
|
+
export const createSwapRequest = async (_prevState, formData) => {
|
|
11
11
|
const orderId = formData.get("order_id");
|
|
12
12
|
const returnItemsJson = formData.get("return_items");
|
|
13
13
|
const newItemsJson = formData.get("new_items");
|
package/dist/server/wishlist.js
CHANGED
|
@@ -31,7 +31,7 @@ export async function getWishlist(includeDetails = true, countryCode) {
|
|
|
31
31
|
id: productIds,
|
|
32
32
|
fields: "*thumbnail,*images,*variants,*variants.options,*options,*options.values,*variants.calculated_price,*variants.inventory_quantity,*variants.manage_inventory,*variants.allow_backorder",
|
|
33
33
|
...(regionId ? { region_id: regionId } : {}),
|
|
34
|
-
}, {
|
|
34
|
+
}, {});
|
|
35
35
|
const fullProducts = productsResponse.products;
|
|
36
36
|
wishlistItems = wishlistItems.map((item) => {
|
|
37
37
|
const itemId = (item.product_id ?? item.id);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "medusa-storefront-data",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Medusa storefront server data layer extracted from Next.js storefront",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@medusajs/types": ">=2",
|
|
23
23
|
"medusa-reviews-logic": "*",
|
|
24
24
|
"medusa-wishlist-logic": "*",
|
|
25
|
-
"medusa-services": "^1.
|
|
25
|
+
"medusa-services": "^1.0.0"
|
|
26
26
|
},
|
|
27
27
|
"peerDependenciesMeta": {
|
|
28
28
|
"medusa-reviews-logic": {
|
package/src/server/customer.ts
CHANGED
|
@@ -119,7 +119,10 @@ export async function signup(_currentState: unknown, formData: FormData) {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
export async function login(
|
|
122
|
+
export async function login(
|
|
123
|
+
_currentState: string | null,
|
|
124
|
+
formData: FormData
|
|
125
|
+
): Promise<string | null> {
|
|
123
126
|
let email = formData.get("email_or_phone") as string
|
|
124
127
|
const password = formData.get("password") as string
|
|
125
128
|
|
|
@@ -187,6 +190,8 @@ export async function login(_currentState: unknown, formData: FormData) {
|
|
|
187
190
|
redirect(`/${countryCode}`)
|
|
188
191
|
}
|
|
189
192
|
}
|
|
193
|
+
|
|
194
|
+
return null
|
|
190
195
|
}
|
|
191
196
|
|
|
192
197
|
export async function signout(countryCode: string) {
|
|
@@ -186,10 +186,10 @@ export const getHomeBannersFromConfig = async (): Promise<Array<{
|
|
|
186
186
|
const banner = item["homepage-banner"]
|
|
187
187
|
return {
|
|
188
188
|
image: banner?.["homepage-banner-image"],
|
|
189
|
-
title: banner?.["homepage-banner-title"],
|
|
190
|
-
subtitle: banner?.["homepage-banner-subtitle"],
|
|
191
|
-
description: banner?.["homepage-banner-description"],
|
|
192
|
-
buttonName: banner?.["homepage-banner-button-name"],
|
|
189
|
+
title: normalizeCmsText(banner?.["homepage-banner-title"]),
|
|
190
|
+
subtitle: normalizeCmsText(banner?.["homepage-banner-subtitle"]),
|
|
191
|
+
description: normalizeCmsText(banner?.["homepage-banner-description"]),
|
|
192
|
+
buttonName: normalizeBannerButtonName(banner?.["homepage-banner-button-name"]),
|
|
193
193
|
buttonLink: banner?.["homepage-banner-button-link"],
|
|
194
194
|
}
|
|
195
195
|
})
|
|
@@ -218,10 +218,10 @@ export const getAppBannersFromConfig = async (): Promise<Array<{
|
|
|
218
218
|
const banner = item["app-banner"]
|
|
219
219
|
return {
|
|
220
220
|
image: banner?.["app-banner-image"],
|
|
221
|
-
title: banner?.["app-banner-title"],
|
|
222
|
-
subtitle: banner?.["app-banner-subtitle"],
|
|
223
|
-
description: banner?.["app-banner-description"],
|
|
224
|
-
buttonName: banner?.["app-banner-button-name"],
|
|
221
|
+
title: normalizeCmsText(banner?.["app-banner-title"]),
|
|
222
|
+
subtitle: normalizeCmsText(banner?.["app-banner-subtitle"]),
|
|
223
|
+
description: normalizeCmsText(banner?.["app-banner-description"]),
|
|
224
|
+
buttonName: normalizeBannerButtonName(banner?.["app-banner-button-name"]),
|
|
225
225
|
buttonLink: banner?.["app-banner-button-link"],
|
|
226
226
|
}
|
|
227
227
|
})
|
|
@@ -279,6 +279,32 @@ export const getFeaturesFromConfig = async (): Promise<{ title: string; features
|
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
|
|
282
|
+
const EMAIL_PATTERN = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
|
|
283
|
+
|
|
284
|
+
/** Fix common UTF-8 mojibake from CMS copy-paste (e.g. em dash, apostrophe). */
|
|
285
|
+
function normalizeCmsText(value: unknown): string | undefined {
|
|
286
|
+
if (typeof value !== "string" || !value.trim()) return undefined
|
|
287
|
+
return value
|
|
288
|
+
.trim()
|
|
289
|
+
.replace(/ΓÇö/g, "—")
|
|
290
|
+
.replace(/ΓÇÖ/g, "'")
|
|
291
|
+
.replace(/ΓÇ£|ΓÇ¥/g, '"')
|
|
292
|
+
.replace(/≡ƒÿÄ≡ƒæòΓ£¿/g, " 👕✨")
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
function normalizeBannerButtonName(value: unknown): string | undefined {
|
|
296
|
+
const text = normalizeCmsText(value)
|
|
297
|
+
if (!text) return undefined
|
|
298
|
+
if (/^shop\s+now\s*1$/i.test(text)) return "Shop Now"
|
|
299
|
+
return text
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
function normalizeConfigEmail(value: unknown): string | undefined {
|
|
303
|
+
if (typeof value !== "string") return undefined
|
|
304
|
+
const trimmed = value.trim()
|
|
305
|
+
return EMAIL_PATTERN.test(trimmed) ? trimmed : undefined
|
|
306
|
+
}
|
|
307
|
+
|
|
282
308
|
export const getContactInfoFromConfig = async (): Promise<{ phone?: string; email?: string; address?: string } | null> => {
|
|
283
309
|
try {
|
|
284
310
|
const config = await getDynamicConfig()
|
|
@@ -293,11 +319,7 @@ export const getContactInfoFromConfig = async (): Promise<{ phone?: string; emai
|
|
|
293
319
|
|
|
294
320
|
return {
|
|
295
321
|
phone: contactConfig["contact-phone"],
|
|
296
|
-
email:
|
|
297
|
-
typeof contactConfig["contact-email"] === "string" &&
|
|
298
|
-
/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(contactConfig["contact-email"].trim())
|
|
299
|
-
? contactConfig["contact-email"].trim()
|
|
300
|
-
: undefined,
|
|
322
|
+
email: normalizeConfigEmail(contactConfig["contact-email"]),
|
|
301
323
|
address: contactConfig["contact-address"],
|
|
302
324
|
}
|
|
303
325
|
} catch (error) {
|
|
@@ -396,10 +418,10 @@ export const getPromoBarConfig = async (): Promise<{ text: string | null; code:
|
|
|
396
418
|
const promoConfig = config?.["homepage-config"]?.["promo-bar"]
|
|
397
419
|
|
|
398
420
|
return {
|
|
399
|
-
text: promoConfig?.["promo-text"] || null,
|
|
421
|
+
text: normalizeCmsText(promoConfig?.["promo-text"]) || null,
|
|
400
422
|
code: promoConfig?.["promo-code"] || null,
|
|
401
423
|
value: promoConfig?.["promo-value"] || null,
|
|
402
|
-
active: promoConfig?.["promo-active"] ?? false
|
|
424
|
+
active: promoConfig?.["promo-active"] ?? false,
|
|
403
425
|
}
|
|
404
426
|
} catch (error) {
|
|
405
427
|
return { text: null, code: null, value: null, active: false }
|
package/src/server/swaps.ts
CHANGED
|
@@ -10,18 +10,20 @@ import { cookies } from "next/headers"
|
|
|
10
10
|
import { revalidateTag } from "next/cache"
|
|
11
11
|
import { getStoreClientOptions, getStoreClientOptionsWithToken } from "../util/store-client"
|
|
12
12
|
|
|
13
|
+
export type SwapActionState = {
|
|
14
|
+
success: boolean
|
|
15
|
+
error: string | null
|
|
16
|
+
swap: Record<string, unknown> | null
|
|
17
|
+
}
|
|
18
|
+
|
|
13
19
|
/**
|
|
14
20
|
* Create an exchange (swap) request.
|
|
15
21
|
* Supports both authenticated customers and guest users.
|
|
16
22
|
*/
|
|
17
23
|
export const createSwapRequest = async (
|
|
18
|
-
|
|
24
|
+
_prevState: SwapActionState,
|
|
19
25
|
formData: FormData
|
|
20
|
-
): Promise<{
|
|
21
|
-
success: boolean
|
|
22
|
-
error: string | null
|
|
23
|
-
swap: Record<string, unknown> | null
|
|
24
|
-
}> => {
|
|
26
|
+
): Promise<SwapActionState> => {
|
|
25
27
|
const orderId = formData.get("order_id") as string
|
|
26
28
|
const returnItemsJson = formData.get("return_items") as string
|
|
27
29
|
const newItemsJson = formData.get("new_items") as string
|
package/src/server/wishlist.ts
CHANGED
|
@@ -43,7 +43,7 @@ export async function getWishlist(includeDetails = true, countryCode?: string) {
|
|
|
43
43
|
"*thumbnail,*images,*variants,*variants.options,*options,*options.values,*variants.calculated_price,*variants.inventory_quantity,*variants.manage_inventory,*variants.allow_backorder",
|
|
44
44
|
...(regionId ? { region_id: regionId } : {}),
|
|
45
45
|
},
|
|
46
|
-
{
|
|
46
|
+
{}
|
|
47
47
|
);
|
|
48
48
|
|
|
49
49
|
const fullProducts = productsResponse.products as HttpTypes.StoreProduct[];
|