medusa-product-helper 0.0.10 → 0.0.13
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/.medusa/server/src/helpers/base-client.js +36 -0
- package/.medusa/server/src/helpers/index.js +16 -0
- package/.medusa/server/src/helpers/wishlist.js +113 -0
- package/README.md +68 -31
- package/package.json +2 -2
- package/.medusa/server/src/shared/wishlist/helper.js +0 -98
- package/.medusa/server/src/shared/wishlist/index.js +0 -12
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getClientRequest = exports.buildHeaders = exports.normalizeBaseUrl = void 0;
|
|
4
|
+
const normalizeBaseUrl = (baseUrl) => {
|
|
5
|
+
if (!baseUrl) {
|
|
6
|
+
return "";
|
|
7
|
+
}
|
|
8
|
+
return baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
|
|
9
|
+
};
|
|
10
|
+
exports.normalizeBaseUrl = normalizeBaseUrl;
|
|
11
|
+
const buildHeaders = (options) => {
|
|
12
|
+
const headers = {
|
|
13
|
+
"Content-Type": "application/json",
|
|
14
|
+
...(options.headers ?? {}),
|
|
15
|
+
};
|
|
16
|
+
const hasPublishableHeader = Object.keys(headers).some((key) => key.toLowerCase() === "x-publishable-api-key");
|
|
17
|
+
if (options.publishableApiKey && !hasPublishableHeader) {
|
|
18
|
+
headers["x-publishable-api-key"] = options.publishableApiKey;
|
|
19
|
+
}
|
|
20
|
+
return headers;
|
|
21
|
+
};
|
|
22
|
+
exports.buildHeaders = buildHeaders;
|
|
23
|
+
const getClientRequest = (client) => {
|
|
24
|
+
if (!client) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
if ("request" in client && typeof client.request === "function") {
|
|
28
|
+
return client.request.bind(client);
|
|
29
|
+
}
|
|
30
|
+
if ("client" in client && typeof client.client?.request === "function") {
|
|
31
|
+
return client.client.request.bind(client.client);
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
};
|
|
35
|
+
exports.getClientRequest = getClientRequest;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9iYXNlLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ08sTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtJQUNuRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMvRCxDQUFDLENBQUE7QUFMWSxRQUFBLGdCQUFnQixvQkFLNUI7QUFFTSxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQStCLEVBQUUsRUFBRTtJQUM5RCxNQUFNLE9BQU8sR0FBMkI7UUFDdEMsY0FBYyxFQUFFLGtCQUFrQjtRQUNsQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7S0FDM0IsQ0FBQTtJQUVELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssdUJBQXVCLENBQ3ZELENBQUE7SUFFRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFBO0lBQzlELENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFmWSxRQUFBLFlBQVksZ0JBZXhCO0FBRU0sTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQXlCLEVBQUUsRUFBRTtJQUM1RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDO0lBRUQsSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFFBQVEsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUN2RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUMsQ0FBQTtBQWRZLFFBQUEsZ0JBQWdCLG9CQWM1QiJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeBaseUrl = exports.getClientRequest = exports.buildHeaders = exports.removeFromWishlist = exports.getWishlist = exports.createWishlistHelpers = exports.createRemoveFromWishlist = exports.createGetWishlist = exports.createAddToWishlist = exports.addToWishlist = void 0;
|
|
4
|
+
var wishlist_1 = require("./wishlist");
|
|
5
|
+
Object.defineProperty(exports, "addToWishlist", { enumerable: true, get: function () { return wishlist_1.addToWishlist; } });
|
|
6
|
+
Object.defineProperty(exports, "createAddToWishlist", { enumerable: true, get: function () { return wishlist_1.createAddToWishlist; } });
|
|
7
|
+
Object.defineProperty(exports, "createGetWishlist", { enumerable: true, get: function () { return wishlist_1.createGetWishlist; } });
|
|
8
|
+
Object.defineProperty(exports, "createRemoveFromWishlist", { enumerable: true, get: function () { return wishlist_1.createRemoveFromWishlist; } });
|
|
9
|
+
Object.defineProperty(exports, "createWishlistHelpers", { enumerable: true, get: function () { return wishlist_1.createWishlistHelpers; } });
|
|
10
|
+
Object.defineProperty(exports, "getWishlist", { enumerable: true, get: function () { return wishlist_1.getWishlist; } });
|
|
11
|
+
Object.defineProperty(exports, "removeFromWishlist", { enumerable: true, get: function () { return wishlist_1.removeFromWishlist; } });
|
|
12
|
+
var base_client_1 = require("./base-client");
|
|
13
|
+
Object.defineProperty(exports, "buildHeaders", { enumerable: true, get: function () { return base_client_1.buildHeaders; } });
|
|
14
|
+
Object.defineProperty(exports, "getClientRequest", { enumerable: true, get: function () { return base_client_1.getClientRequest; } });
|
|
15
|
+
Object.defineProperty(exports, "normalizeBaseUrl", { enumerable: true, get: function () { return base_client_1.normalizeBaseUrl; } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FRbUI7QUFQakIseUdBQUEsYUFBYSxPQUFBO0FBQ2IsK0dBQUEsbUJBQW1CLE9BQUE7QUFDbkIsNkdBQUEsaUJBQWlCLE9BQUE7QUFDakIsb0hBQUEsd0JBQXdCLE9BQUE7QUFDeEIsaUhBQUEscUJBQXFCLE9BQUE7QUFDckIsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsOEdBQUEsa0JBQWtCLE9BQUE7QUFrQnBCLDZDQUFnRjtBQUF2RSwyR0FBQSxZQUFZLE9BQUE7QUFBRSwrR0FBQSxnQkFBZ0IsT0FBQTtBQUFFLCtHQUFBLGdCQUFnQixPQUFBIn0=
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createWishlistHelpers = exports.createRemoveFromWishlist = exports.createAddToWishlist = exports.createGetWishlist = exports.removeFromWishlist = exports.addToWishlist = exports.getWishlist = void 0;
|
|
4
|
+
const base_client_1 = require("./base-client");
|
|
5
|
+
const WISHLIST_ENDPOINT = "/store/wishlist";
|
|
6
|
+
// Endpoint resolution helper (recommended pattern)
|
|
7
|
+
const resolveEndpoint = (endpoint) => endpoint?.startsWith("/") ? endpoint : WISHLIST_ENDPOINT;
|
|
8
|
+
const execute = async (path, init, options) => {
|
|
9
|
+
const baseHeaders = (0, base_client_1.buildHeaders)(options);
|
|
10
|
+
// Only include Content-Type if there's a body (POST, PUT, PATCH)
|
|
11
|
+
// GET requests don't need Content-Type header
|
|
12
|
+
const hasBody = init.body !== undefined;
|
|
13
|
+
const headers = { ...baseHeaders };
|
|
14
|
+
// Remove Content-Type for GET requests (no body)
|
|
15
|
+
if (!hasBody && headers["Content-Type"]) {
|
|
16
|
+
delete headers["Content-Type"];
|
|
17
|
+
}
|
|
18
|
+
// Merge any additional headers from init (takes precedence)
|
|
19
|
+
const mergedHeaders = {
|
|
20
|
+
...headers,
|
|
21
|
+
...(init.headers ?? {}),
|
|
22
|
+
};
|
|
23
|
+
const normalizedInit = {
|
|
24
|
+
...init,
|
|
25
|
+
headers: mergedHeaders,
|
|
26
|
+
};
|
|
27
|
+
const clientRequest = (0, base_client_1.getClientRequest)(options.client);
|
|
28
|
+
if (clientRequest) {
|
|
29
|
+
const raw = await clientRequest(path, normalizedInit);
|
|
30
|
+
return raw;
|
|
31
|
+
}
|
|
32
|
+
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
33
|
+
if (!fetchImpl) {
|
|
34
|
+
throw new Error("No fetch implementation available. Provide `fetchImpl` or a Medusa client.");
|
|
35
|
+
}
|
|
36
|
+
const url = `${(0, base_client_1.normalizeBaseUrl)(options.baseUrl)}${path}`;
|
|
37
|
+
const response = await fetchImpl(url || path, normalizedInit);
|
|
38
|
+
if (!response.ok) {
|
|
39
|
+
const body = await response.text();
|
|
40
|
+
throw new Error(body || `Request failed with status ${response.status}`);
|
|
41
|
+
}
|
|
42
|
+
return (await response.json());
|
|
43
|
+
};
|
|
44
|
+
const getWishlist = async (input = {}, options = {}) => {
|
|
45
|
+
const endpoint = resolveEndpoint(input.endpoint);
|
|
46
|
+
const params = new URLSearchParams();
|
|
47
|
+
if (input.includeDetails) {
|
|
48
|
+
params.set("include_details", "true");
|
|
49
|
+
}
|
|
50
|
+
const path = params.toString() ? `${endpoint}?${params.toString()}` : endpoint;
|
|
51
|
+
const raw = await execute(path, {
|
|
52
|
+
method: "GET",
|
|
53
|
+
}, options);
|
|
54
|
+
// Validate response structure
|
|
55
|
+
if (!raw || typeof raw !== "object" || !("wishlist" in raw)) {
|
|
56
|
+
throw new Error("Invalid response from wishlist endpoint");
|
|
57
|
+
}
|
|
58
|
+
if (!Array.isArray(raw.wishlist)) {
|
|
59
|
+
throw new Error("Invalid response format: wishlist must be an array");
|
|
60
|
+
}
|
|
61
|
+
return raw;
|
|
62
|
+
};
|
|
63
|
+
exports.getWishlist = getWishlist;
|
|
64
|
+
const addToWishlist = async (input, options = {}) => {
|
|
65
|
+
if (!input.product_id) {
|
|
66
|
+
throw new Error("product_id is required");
|
|
67
|
+
}
|
|
68
|
+
const endpoint = resolveEndpoint(input.endpoint);
|
|
69
|
+
const payload = {
|
|
70
|
+
product_id: input.product_id,
|
|
71
|
+
};
|
|
72
|
+
const raw = await execute(endpoint, {
|
|
73
|
+
method: "POST",
|
|
74
|
+
body: JSON.stringify(payload),
|
|
75
|
+
}, options);
|
|
76
|
+
// Validate response structure
|
|
77
|
+
if (!raw || typeof raw !== "object" || !("wishlist_item" in raw)) {
|
|
78
|
+
throw new Error("Invalid response from add to wishlist endpoint");
|
|
79
|
+
}
|
|
80
|
+
return raw;
|
|
81
|
+
};
|
|
82
|
+
exports.addToWishlist = addToWishlist;
|
|
83
|
+
const removeFromWishlist = async (input, options = {}) => {
|
|
84
|
+
if (!input.product_id) {
|
|
85
|
+
throw new Error("product_id is required");
|
|
86
|
+
}
|
|
87
|
+
const baseEndpoint = resolveEndpoint(input.endpoint);
|
|
88
|
+
const endpoint = input.endpoint
|
|
89
|
+
? baseEndpoint
|
|
90
|
+
: `${baseEndpoint}/${encodeURIComponent(input.product_id)}`;
|
|
91
|
+
const raw = await execute(endpoint, {
|
|
92
|
+
method: "DELETE",
|
|
93
|
+
}, options);
|
|
94
|
+
// Validate response structure
|
|
95
|
+
if (!raw || typeof raw !== "object" || !("success" in raw)) {
|
|
96
|
+
throw new Error("Invalid response from remove from wishlist endpoint");
|
|
97
|
+
}
|
|
98
|
+
return raw;
|
|
99
|
+
};
|
|
100
|
+
exports.removeFromWishlist = removeFromWishlist;
|
|
101
|
+
const createGetWishlist = (options = {}) => (input) => (0, exports.getWishlist)(input, options);
|
|
102
|
+
exports.createGetWishlist = createGetWishlist;
|
|
103
|
+
const createAddToWishlist = (options = {}) => (input) => (0, exports.addToWishlist)(input, options);
|
|
104
|
+
exports.createAddToWishlist = createAddToWishlist;
|
|
105
|
+
const createRemoveFromWishlist = (options = {}) => (input) => (0, exports.removeFromWishlist)(input, options);
|
|
106
|
+
exports.createRemoveFromWishlist = createRemoveFromWishlist;
|
|
107
|
+
const createWishlistHelpers = (options = {}) => ({
|
|
108
|
+
getWishlist: (0, exports.createGetWishlist)(options),
|
|
109
|
+
addToWishlist: (0, exports.createAddToWishlist)(options),
|
|
110
|
+
removeFromWishlist: (0, exports.createRemoveFromWishlist)(options),
|
|
111
|
+
});
|
|
112
|
+
exports.createWishlistHelpers = createWishlistHelpers;
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy93aXNobGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FLc0I7QUFFdEIsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQTtBQUUzQyxtREFBbUQ7QUFDbkQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFpQixFQUFFLEVBQUUsQ0FDNUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTtBQStDMUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUNuQixJQUFZLEVBQ1osSUFBcUIsRUFDckIsT0FBK0IsRUFDbkIsRUFBRTtJQUNkLE1BQU0sV0FBVyxHQUFHLElBQUEsMEJBQVksRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUV6QyxpRUFBaUU7SUFDakUsOENBQThDO0lBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFBO0lBQ3ZDLE1BQU0sT0FBTyxHQUEyQixFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUE7SUFFMUQsaURBQWlEO0lBQ2pELElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDaEMsQ0FBQztJQUVELDREQUE0RDtJQUM1RCxNQUFNLGFBQWEsR0FBRztRQUNwQixHQUFHLE9BQU87UUFDVixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7S0FDeEIsQ0FBQTtJQUVELE1BQU0sY0FBYyxHQUFnQjtRQUNsQyxHQUFHLElBQUk7UUFDUCxPQUFPLEVBQUUsYUFBYTtLQUN2QixDQUFBO0lBRUQsTUFBTSxhQUFhLEdBQUcsSUFBQSw4QkFBZ0IsRUFBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdEQsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQixNQUFNLEdBQUcsR0FBRyxNQUFNLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFDckQsT0FBTyxHQUFRLENBQUE7SUFDakIsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQTtJQUN2RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUNiLDRFQUE0RSxDQUM3RSxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBQSw4QkFBZ0IsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUE7SUFDekQsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUU3RCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQ2IsSUFBSSxJQUFJLDhCQUE4QixRQUFRLENBQUMsTUFBTSxFQUFFLENBQ3hELENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFNLENBQUE7QUFDckMsQ0FBQyxDQUFBO0FBRU0sTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUM5QixRQUEwQixFQUFFLEVBQzVCLFVBQThCLEVBQUUsRUFDRixFQUFFO0lBQ2hDLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtJQUNwQyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixNQUFNLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7SUFFOUUsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFPLENBQ3ZCLElBQUksRUFDSjtRQUNFLE1BQU0sRUFBRSxLQUFLO0tBQ2QsRUFDRCxPQUFPLENBQ1IsQ0FBQTtJQUVELDhCQUE4QjtJQUM5QixJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUE7SUFDdkUsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQyxDQUFBO0FBOUJZLFFBQUEsV0FBVyxlQThCdkI7QUFFTSxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQ2hDLEtBQXlCLEVBQ3pCLFVBQWdDLEVBQUUsRUFDRixFQUFFO0lBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hELE1BQU0sT0FBTyxHQUFHO1FBQ2QsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO0tBQzdCLENBQUE7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLE9BQU8sQ0FDdkIsUUFBUSxFQUNSO1FBQ0UsTUFBTSxFQUFFLE1BQU07UUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7S0FDOUIsRUFDRCxPQUFPLENBQ1IsQ0FBQTtJQUVELDhCQUE4QjtJQUM5QixJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsZUFBZSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsQ0FBQTtBQTVCWSxRQUFBLGFBQWEsaUJBNEJ6QjtBQUVNLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxFQUNyQyxLQUE4QixFQUM5QixVQUFxQyxFQUFFLEVBQ0YsRUFBRTtJQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNwRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUTtRQUM3QixDQUFDLENBQUMsWUFBWTtRQUNkLENBQUMsQ0FBQyxHQUFHLFlBQVksSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQTtJQUU3RCxNQUFNLEdBQUcsR0FBRyxNQUFNLE9BQU8sQ0FDdkIsUUFBUSxFQUNSO1FBQ0UsTUFBTSxFQUFFLFFBQVE7S0FDakIsRUFDRCxPQUFPLENBQ1IsQ0FBQTtJQUVELDhCQUE4QjtJQUM5QixJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFBO0lBQ3hFLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsQ0FBQTtBQTNCWSxRQUFBLGtCQUFrQixzQkEyQjlCO0FBRU0sTUFBTSxpQkFBaUIsR0FDNUIsQ0FBQyxVQUE4QixFQUFFLEVBQUUsRUFBRSxDQUNyQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUMzQixJQUFBLG1CQUFXLEVBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBSGxCLFFBQUEsaUJBQWlCLHFCQUdDO0FBRXhCLE1BQU0sbUJBQW1CLEdBQzlCLENBQUMsVUFBZ0MsRUFBRSxFQUFFLEVBQUUsQ0FDdkMsQ0FBQyxLQUF5QixFQUFFLEVBQUUsQ0FDNUIsSUFBQSxxQkFBYSxFQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUhwQixRQUFBLG1CQUFtQix1QkFHQztBQUUxQixNQUFNLHdCQUF3QixHQUNuQyxDQUFDLFVBQXFDLEVBQUUsRUFBRSxFQUFFLENBQzVDLENBQUMsS0FBOEIsRUFBRSxFQUFFLENBQ2pDLElBQUEsMEJBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBSHpCLFFBQUEsd0JBQXdCLDRCQUdDO0FBRS9CLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsVUFBa0MsRUFBRSxFQUNwQyxFQUFFLENBQUMsQ0FBQztJQUNKLFdBQVcsRUFBRSxJQUFBLHlCQUFpQixFQUFDLE9BQU8sQ0FBQztJQUN2QyxhQUFhLEVBQUUsSUFBQSwyQkFBbUIsRUFBQyxPQUFPLENBQUM7SUFDM0Msa0JBQWtCLEVBQUUsSUFBQSxnQ0FBd0IsRUFBQyxPQUFPLENBQUM7Q0FDdEQsQ0FBQyxDQUFBO0FBTlcsUUFBQSxxQkFBcUIseUJBTWhDIn0=
|
package/README.md
CHANGED
|
@@ -440,61 +440,71 @@ import {
|
|
|
440
440
|
getWishlist,
|
|
441
441
|
removeFromWishlist,
|
|
442
442
|
createWishlistHelpers,
|
|
443
|
-
|
|
443
|
+
type HelperTransportOptions,
|
|
444
|
+
type WishlistItem,
|
|
445
|
+
} from "medusa-product-helper/helpers"
|
|
444
446
|
```
|
|
445
447
|
|
|
446
448
|
#### Example Usage
|
|
447
449
|
|
|
448
450
|
```typescript
|
|
451
|
+
// Recommended: Using Bearer token for authentication
|
|
452
|
+
const options: HelperTransportOptions = {
|
|
453
|
+
baseUrl: "https://store.example.com",
|
|
454
|
+
publishableApiKey: "pk_your_publishable_api_key",
|
|
455
|
+
headers: {
|
|
456
|
+
Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", // Customer JWT token
|
|
457
|
+
},
|
|
458
|
+
}
|
|
459
|
+
|
|
449
460
|
// Add a product
|
|
450
|
-
await addToWishlist(
|
|
451
|
-
{ product_id: "prod_123" },
|
|
452
|
-
{
|
|
453
|
-
baseUrl: "https://store.example.com",
|
|
454
|
-
headers: {
|
|
455
|
-
Cookie: "connect.sid=...", // or Authorization header
|
|
456
|
-
},
|
|
457
|
-
}
|
|
458
|
-
)
|
|
461
|
+
await addToWishlist({ product_id: "prod_123" }, options)
|
|
459
462
|
|
|
460
463
|
// Read wishlist with details
|
|
461
|
-
const { wishlist } = await getWishlist(
|
|
462
|
-
{ includeDetails: true },
|
|
463
|
-
{
|
|
464
|
-
baseUrl: "https://store.example.com",
|
|
465
|
-
headers: {
|
|
466
|
-
Cookie: "connect.sid=...",
|
|
467
|
-
},
|
|
468
|
-
}
|
|
469
|
-
)
|
|
464
|
+
const { wishlist } = await getWishlist({ includeDetails: true }, options)
|
|
470
465
|
|
|
471
466
|
// Remove a product
|
|
472
|
-
await removeFromWishlist(
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
467
|
+
await removeFromWishlist({ product_id: "prod_123" }, options)
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
**Alternative: Using session cookie**
|
|
471
|
+
```typescript
|
|
472
|
+
const options: HelperTransportOptions = {
|
|
473
|
+
baseUrl: "https://store.example.com",
|
|
474
|
+
publishableApiKey: "pk_your_publishable_api_key",
|
|
475
|
+
headers: {
|
|
476
|
+
Cookie: "connect.sid=...", // Session cookie (browser-based)
|
|
477
|
+
},
|
|
478
|
+
}
|
|
481
479
|
```
|
|
482
480
|
|
|
483
481
|
#### Configuration Options
|
|
484
482
|
|
|
485
483
|
All helper calls accept the following options:
|
|
486
484
|
|
|
487
|
-
- `
|
|
485
|
+
- `publishableApiKey`: Required for public storefront calls when not passing a Medusa JS client. Add it from **Settings → API Keys** in the Medusa dashboard.
|
|
486
|
+
- `client`: Medusa JS/SDK client instance. When provided, network requests are delegated to `client.request` and the client's publishable key is reused.
|
|
488
487
|
- `baseUrl`: Base URL for the Store API (e.g., `https://store.example.com`). Required when a client is not provided.
|
|
489
488
|
- `fetchImpl`: Custom `fetch` implementation for SSR or React Native environments. Defaults to `globalThis.fetch`.
|
|
490
|
-
- `headers`: Additional headers appended to every request
|
|
489
|
+
- `headers`: Additional headers appended to every request. **Required for authenticated endpoints** - include `Authorization: Bearer <token>` for customer authentication:
|
|
490
|
+
```ts
|
|
491
|
+
headers: {
|
|
492
|
+
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
|
|
493
|
+
}
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
**Note:** All wishlist endpoints require customer authentication. Pass the Bearer token via the `headers` option.
|
|
491
497
|
|
|
492
498
|
You can also generate pre-configured helpers:
|
|
493
499
|
|
|
494
500
|
```typescript
|
|
501
|
+
// Recommended: Using Bearer token
|
|
495
502
|
const wishlist = createWishlistHelpers({
|
|
496
503
|
baseUrl: "https://store.example.com",
|
|
497
|
-
|
|
504
|
+
publishableApiKey: "pk_your_publishable_api_key",
|
|
505
|
+
headers: {
|
|
506
|
+
Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
|
507
|
+
},
|
|
498
508
|
})
|
|
499
509
|
|
|
500
510
|
await wishlist.addToWishlist({ product_id: "prod_123" })
|
|
@@ -502,6 +512,33 @@ const { wishlist: items } = await wishlist.getWishlist({ includeDetails: true })
|
|
|
502
512
|
await wishlist.removeFromWishlist({ product_id: "prod_123" })
|
|
503
513
|
```
|
|
504
514
|
|
|
515
|
+
**Getting the Bearer Token:**
|
|
516
|
+
```typescript
|
|
517
|
+
// Login to get JWT token
|
|
518
|
+
const loginResponse = await fetch("https://store.example.com/store/auth/customer/emailpass", {
|
|
519
|
+
method: "POST",
|
|
520
|
+
headers: {
|
|
521
|
+
"Content-Type": "application/json",
|
|
522
|
+
"x-publishable-api-key": "pk_your_publishable_api_key",
|
|
523
|
+
},
|
|
524
|
+
body: JSON.stringify({
|
|
525
|
+
email: "customer@example.com",
|
|
526
|
+
password: "password123",
|
|
527
|
+
}),
|
|
528
|
+
})
|
|
529
|
+
|
|
530
|
+
const { token } = await loginResponse.json()
|
|
531
|
+
|
|
532
|
+
// Use token in wishlist helpers
|
|
533
|
+
const wishlist = createWishlistHelpers({
|
|
534
|
+
baseUrl: "https://store.example.com",
|
|
535
|
+
publishableApiKey: "pk_your_publishable_api_key",
|
|
536
|
+
headers: {
|
|
537
|
+
Authorization: `Bearer ${token}`,
|
|
538
|
+
},
|
|
539
|
+
})
|
|
540
|
+
```
|
|
541
|
+
|
|
505
542
|
### Using Workflows Directly
|
|
506
543
|
|
|
507
544
|
You can also use the workflows directly in your custom code:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "medusa-product-helper",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"description": "A starter for Medusa plugins.",
|
|
5
5
|
"author": "Medusa (https://medusajs.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
"exports": {
|
|
11
11
|
"./package.json": "./package.json",
|
|
12
12
|
"./workflows": "./.medusa/server/src/workflows/index.js",
|
|
13
|
+
"./helpers": "./.medusa/server/src/helpers/index.js",
|
|
13
14
|
"./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
14
15
|
"./modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
15
16
|
"./providers/*": "./.medusa/server/src/providers/*/index.js",
|
|
16
|
-
"./wishlist-helper": "./.medusa/server/src/shared/wishlist/index.js",
|
|
17
17
|
"./*": "./.medusa/server/src/*.js",
|
|
18
18
|
"./admin": {
|
|
19
19
|
"import": "./.medusa/server/src/admin/index.mjs",
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createWishlistHelpers = exports.createRemoveFromWishlist = exports.createAddToWishlist = exports.createGetWishlist = exports.removeFromWishlist = exports.addToWishlist = exports.getWishlist = void 0;
|
|
4
|
-
const WISHLIST_ENDPOINT = "/store/wishlist";
|
|
5
|
-
const normalizeBaseUrl = (baseUrl) => {
|
|
6
|
-
if (!baseUrl) {
|
|
7
|
-
return "";
|
|
8
|
-
}
|
|
9
|
-
return baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
|
|
10
|
-
};
|
|
11
|
-
const getClientRequest = (client) => {
|
|
12
|
-
if (!client) {
|
|
13
|
-
return undefined;
|
|
14
|
-
}
|
|
15
|
-
if ("request" in client && typeof client.request === "function") {
|
|
16
|
-
return client.request.bind(client);
|
|
17
|
-
}
|
|
18
|
-
if ("client" in client && typeof client.client?.request === "function") {
|
|
19
|
-
return client.client.request.bind(client.client);
|
|
20
|
-
}
|
|
21
|
-
return undefined;
|
|
22
|
-
};
|
|
23
|
-
const execute = async (path, init, options) => {
|
|
24
|
-
const headers = {
|
|
25
|
-
...(init.headers ?? {}),
|
|
26
|
-
...(options.headers ?? {}),
|
|
27
|
-
};
|
|
28
|
-
const normalizedInit = {
|
|
29
|
-
...init,
|
|
30
|
-
headers,
|
|
31
|
-
};
|
|
32
|
-
const clientRequest = getClientRequest(options.client);
|
|
33
|
-
if (clientRequest) {
|
|
34
|
-
return (await clientRequest(path, normalizedInit));
|
|
35
|
-
}
|
|
36
|
-
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
37
|
-
if (!fetchImpl) {
|
|
38
|
-
throw new Error("No fetch implementation available. Provide `fetchImpl` or a Medusa client.");
|
|
39
|
-
}
|
|
40
|
-
const url = `${normalizeBaseUrl(options.baseUrl)}${path}`;
|
|
41
|
-
const response = await fetchImpl(url || path, normalizedInit);
|
|
42
|
-
if (!response.ok) {
|
|
43
|
-
const body = await response.text();
|
|
44
|
-
throw new Error(body || `Request failed with status ${response.status}`);
|
|
45
|
-
}
|
|
46
|
-
return (await response.json());
|
|
47
|
-
};
|
|
48
|
-
const getWishlist = async (input = {}, options = {}) => {
|
|
49
|
-
const params = new URLSearchParams();
|
|
50
|
-
if (input.includeDetails) {
|
|
51
|
-
params.set("include_details", "true");
|
|
52
|
-
}
|
|
53
|
-
const endpoint = params.toString()
|
|
54
|
-
? `${WISHLIST_ENDPOINT}?${params.toString()}`
|
|
55
|
-
: WISHLIST_ENDPOINT;
|
|
56
|
-
return execute(endpoint, {
|
|
57
|
-
method: "GET",
|
|
58
|
-
}, options);
|
|
59
|
-
};
|
|
60
|
-
exports.getWishlist = getWishlist;
|
|
61
|
-
const addToWishlist = async (input, options = {}) => {
|
|
62
|
-
if (!input.product_id) {
|
|
63
|
-
throw new Error("product_id is required");
|
|
64
|
-
}
|
|
65
|
-
return execute(WISHLIST_ENDPOINT, {
|
|
66
|
-
method: "POST",
|
|
67
|
-
headers: {
|
|
68
|
-
"Content-Type": "application/json",
|
|
69
|
-
},
|
|
70
|
-
body: JSON.stringify({
|
|
71
|
-
product_id: input.product_id,
|
|
72
|
-
}),
|
|
73
|
-
}, options);
|
|
74
|
-
};
|
|
75
|
-
exports.addToWishlist = addToWishlist;
|
|
76
|
-
const removeFromWishlist = async (input, options = {}) => {
|
|
77
|
-
if (!input.product_id) {
|
|
78
|
-
throw new Error("product_id is required");
|
|
79
|
-
}
|
|
80
|
-
const endpoint = `${WISHLIST_ENDPOINT}/${encodeURIComponent(input.product_id)}`;
|
|
81
|
-
return execute(endpoint, {
|
|
82
|
-
method: "DELETE",
|
|
83
|
-
}, options);
|
|
84
|
-
};
|
|
85
|
-
exports.removeFromWishlist = removeFromWishlist;
|
|
86
|
-
const createGetWishlist = (options = {}) => (input) => (0, exports.getWishlist)(input, options);
|
|
87
|
-
exports.createGetWishlist = createGetWishlist;
|
|
88
|
-
const createAddToWishlist = (options = {}) => (input) => (0, exports.addToWishlist)(input, options);
|
|
89
|
-
exports.createAddToWishlist = createAddToWishlist;
|
|
90
|
-
const createRemoveFromWishlist = (options = {}) => (input) => (0, exports.removeFromWishlist)(input, options);
|
|
91
|
-
exports.createRemoveFromWishlist = createRemoveFromWishlist;
|
|
92
|
-
const createWishlistHelpers = (options = {}) => ({
|
|
93
|
-
getWishlist: (0, exports.createGetWishlist)(options),
|
|
94
|
-
addToWishlist: (0, exports.createAddToWishlist)(options),
|
|
95
|
-
removeFromWishlist: (0, exports.createRemoveFromWishlist)(options),
|
|
96
|
-
});
|
|
97
|
-
exports.createWishlistHelpers = createWishlistHelpers;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC93aXNobGlzdC9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQTtBQXFFM0MsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtJQUM1QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMvRCxDQUFDLENBQUE7QUFFRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBeUIsRUFBRSxFQUFFO0lBQ3JELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVELElBQUksUUFBUSxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUNuQixJQUFZLEVBQ1os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
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeFromWishlist = exports.getWishlist = exports.createWishlistHelpers = exports.createRemoveFromWishlist = exports.createGetWishlist = exports.createAddToWishlist = exports.addToWishlist = void 0;
|
|
4
|
-
var helper_1 = require("./helper");
|
|
5
|
-
Object.defineProperty(exports, "addToWishlist", { enumerable: true, get: function () { return helper_1.addToWishlist; } });
|
|
6
|
-
Object.defineProperty(exports, "createAddToWishlist", { enumerable: true, get: function () { return helper_1.createAddToWishlist; } });
|
|
7
|
-
Object.defineProperty(exports, "createGetWishlist", { enumerable: true, get: function () { return helper_1.createGetWishlist; } });
|
|
8
|
-
Object.defineProperty(exports, "createRemoveFromWishlist", { enumerable: true, get: function () { return helper_1.createRemoveFromWishlist; } });
|
|
9
|
-
Object.defineProperty(exports, "createWishlistHelpers", { enumerable: true, get: function () { return helper_1.createWishlistHelpers; } });
|
|
10
|
-
Object.defineProperty(exports, "getWishlist", { enumerable: true, get: function () { return helper_1.getWishlist; } });
|
|
11
|
-
Object.defineProperty(exports, "removeFromWishlist", { enumerable: true, get: function () { return helper_1.removeFromWishlist; } });
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL3dpc2hsaXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQVFpQjtBQVBmLHVHQUFBLGFBQWEsT0FBQTtBQUNiLDZHQUFBLG1CQUFtQixPQUFBO0FBQ25CLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLGtIQUFBLHdCQUF3QixPQUFBO0FBQ3hCLCtHQUFBLHFCQUFxQixPQUFBO0FBQ3JCLHFHQUFBLFdBQVcsT0FBQTtBQUNYLDRHQUFBLGtCQUFrQixPQUFBIn0=
|