@weareseeed/medusa-athos-plugin 0.0.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.
- package/.medusa/server/src/admin/index.js +259 -0
- package/.medusa/server/src/admin/index.mjs +258 -0
- package/.medusa/server/src/api/admin/athos/config/route.d.ts +4 -0
- package/.medusa/server/src/api/admin/athos/config/route.js +21 -0
- package/.medusa/server/src/api/admin/athos/middlewares.d.ts +11 -0
- package/.medusa/server/src/api/admin/athos/middlewares.js +20 -0
- package/.medusa/server/src/api/admin/plugin/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/plugin/route.js +7 -0
- package/.medusa/server/src/api/athos/feed/route.d.ts +2 -0
- package/.medusa/server/src/api/athos/feed/route.js +249 -0
- package/.medusa/server/src/api/athos/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/athos/middlewares.js +26 -0
- package/.medusa/server/src/api/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/middlewares.js +9 -0
- package/.medusa/server/src/api/store/plugin/route.d.ts +2 -0
- package/.medusa/server/src/api/store/plugin/route.js +7 -0
- package/.medusa/server/src/modules/athosConfig/index.d.ts +21 -0
- package/.medusa/server/src/modules/athosConfig/index.js +13 -0
- package/.medusa/server/src/modules/athosConfig/migrations/Migration20260518000000.d.ts +5 -0
- package/.medusa/server/src/modules/athosConfig/migrations/Migration20260518000000.js +26 -0
- package/.medusa/server/src/modules/athosConfig/migrations/Migration20260518000001.d.ts +5 -0
- package/.medusa/server/src/modules/athosConfig/migrations/Migration20260518000001.js +14 -0
- package/.medusa/server/src/modules/athosConfig/models/athos-config.d.ts +9 -0
- package/.medusa/server/src/modules/athosConfig/models/athos-config.js +13 -0
- package/.medusa/server/src/modules/athosConfig/service.d.ts +17 -0
- package/.medusa/server/src/modules/athosConfig/service.js +32 -0
- package/.medusa/server/src/modules/athosConfig/types.d.ts +15 -0
- package/.medusa/server/src/modules/athosConfig/types.js +3 -0
- package/.medusa/server/src/workflows/steps/upsert-athos-config-step.d.ts +9 -0
- package/.medusa/server/src/workflows/steps/upsert-athos-config-step.js +31 -0
- package/.medusa/server/src/workflows/upsert-athos-config.d.ts +9 -0
- package/.medusa/server/src/workflows/upsert-athos-config.js +10 -0
- package/README.md +198 -0
- package/package.json +73 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const athosConfig_1 = require("../../../modules/athosConfig");
|
|
5
|
+
const BATCH_SIZE = 100;
|
|
6
|
+
const DEFAULT_SWATCH_TITLES = ["color", "colour"];
|
|
7
|
+
const PRODUCT_FIELDS = [
|
|
8
|
+
"id",
|
|
9
|
+
"title",
|
|
10
|
+
"handle",
|
|
11
|
+
"description",
|
|
12
|
+
"thumbnail",
|
|
13
|
+
"status",
|
|
14
|
+
"variants.id",
|
|
15
|
+
"variants.title",
|
|
16
|
+
"variants.sku",
|
|
17
|
+
"variants.compare_at_price",
|
|
18
|
+
"variants.manage_inventory",
|
|
19
|
+
"variants.allow_backorder",
|
|
20
|
+
"variants.prices.amount",
|
|
21
|
+
"variants.prices.currency_code",
|
|
22
|
+
"variants.options.value",
|
|
23
|
+
"variants.options.option.title",
|
|
24
|
+
"variants.inventory_items.inventory.location_levels.stocked_quantity",
|
|
25
|
+
"variants.inventory_items.inventory.location_levels.reserved_quantity",
|
|
26
|
+
"categories.id",
|
|
27
|
+
"categories.name",
|
|
28
|
+
"categories.parent_category.id",
|
|
29
|
+
"categories.parent_category.name",
|
|
30
|
+
"categories.parent_category.parent_category.name",
|
|
31
|
+
"tags.value",
|
|
32
|
+
"options.title",
|
|
33
|
+
"options.position",
|
|
34
|
+
"options.values.value",
|
|
35
|
+
"sales_channels.id",
|
|
36
|
+
];
|
|
37
|
+
async function GET(req, res) {
|
|
38
|
+
const athosConfigService = req.scope.resolve(athosConfig_1.ATHOS_CONFIG_MODULE);
|
|
39
|
+
const query = req.scope.resolve("query");
|
|
40
|
+
const feedOptions = athosConfigService.getFeedOptions();
|
|
41
|
+
const allProductFields = [
|
|
42
|
+
...PRODUCT_FIELDS,
|
|
43
|
+
...(feedOptions?.extraProductFields ?? []),
|
|
44
|
+
];
|
|
45
|
+
const [configs] = await athosConfigService.listAndCountAthosConfigs();
|
|
46
|
+
const config = configs[0];
|
|
47
|
+
const storefrontUrl = config?.storefront_url ?? "";
|
|
48
|
+
const regionId = config?.region_id;
|
|
49
|
+
const salesChannelIds = config?.sales_channel_ids;
|
|
50
|
+
const rawSwatchTitles = config?.swatch_option_titles;
|
|
51
|
+
const swatchTitles = (rawSwatchTitles?.length ? rawSwatchTitles : DEFAULT_SWATCH_TITLES).map((t) => t.toLowerCase());
|
|
52
|
+
res.setHeader("Content-Type", "application/x-ndjson");
|
|
53
|
+
res.setHeader("Content-Disposition", 'attachment; filename="feed.ndjson"');
|
|
54
|
+
res.setHeader("Transfer-Encoding", "chunked");
|
|
55
|
+
let regionCurrencies = null;
|
|
56
|
+
if (regionId) {
|
|
57
|
+
const { data: regions } = await query.graph({
|
|
58
|
+
entity: "region",
|
|
59
|
+
fields: ["id", "currency_code"],
|
|
60
|
+
filters: { id: regionId },
|
|
61
|
+
});
|
|
62
|
+
if (regions.length > 0) {
|
|
63
|
+
regionCurrencies = [regions[0].currency_code];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
let offset = 0;
|
|
67
|
+
let hasMore = true;
|
|
68
|
+
try {
|
|
69
|
+
while (hasMore) {
|
|
70
|
+
const { data: products } = await query.graph({
|
|
71
|
+
entity: "product",
|
|
72
|
+
fields: allProductFields,
|
|
73
|
+
filters: { status: "published" },
|
|
74
|
+
pagination: { take: BATCH_SIZE, skip: offset },
|
|
75
|
+
});
|
|
76
|
+
if (!products || products.length === 0) {
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
for (const product of products) {
|
|
80
|
+
if (salesChannelIds && salesChannelIds.length > 0) {
|
|
81
|
+
const productChannelIds = (product.sales_channels ?? []).map((sc) => sc.id);
|
|
82
|
+
if (!salesChannelIds.some((id) => productChannelIds.includes(id))) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const variants = product.variants ?? [];
|
|
87
|
+
const totalVariants = variants.length;
|
|
88
|
+
const variantStockMap = new Map();
|
|
89
|
+
for (const variant of variants) {
|
|
90
|
+
variantStockMap.set(variant.id, computeInStock(variant));
|
|
91
|
+
}
|
|
92
|
+
const inStockCount = [...variantStockMap.values()].filter(Boolean).length;
|
|
93
|
+
const inStockPct = totalVariants > 0 ? (inStockCount / totalVariants) * 100 : 0;
|
|
94
|
+
// __standard_options: all options, original casing, product-level
|
|
95
|
+
const standardOptions = {};
|
|
96
|
+
for (const opt of product.options ?? []) {
|
|
97
|
+
const title = String(opt.title);
|
|
98
|
+
standardOptions[title] = {
|
|
99
|
+
position: opt.position ?? 0,
|
|
100
|
+
values: (opt.values ?? []).map((v) => v.value),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// __swatch_options: configured swatch options only, keyed by value, product-level
|
|
104
|
+
const swatchOptions = {};
|
|
105
|
+
for (const opt of product.options ?? []) {
|
|
106
|
+
if (swatchTitles.includes(String(opt.title).toLowerCase())) {
|
|
107
|
+
for (const v of opt.values ?? []) {
|
|
108
|
+
swatchOptions[v.value] = { value: v.value };
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const categories = product.categories ?? [];
|
|
113
|
+
const categoryPaths = categories.map((cat) => buildCategoryPath(cat));
|
|
114
|
+
const categoryIds = categories.map((cat) => String(cat.id));
|
|
115
|
+
const tags = (product.tags ?? []).map((t) => t.value);
|
|
116
|
+
const searchKeywords = tags.length > 0 ? tags.join(", ") : undefined;
|
|
117
|
+
const productUrl = `${storefrontUrl}/products/${product.handle}`;
|
|
118
|
+
// Product-level min price and retail price
|
|
119
|
+
const allPriceAmounts = variants.flatMap((v) => {
|
|
120
|
+
const prices = v.prices ?? [];
|
|
121
|
+
const filtered = regionCurrencies
|
|
122
|
+
? prices.filter((p) => regionCurrencies.includes(p.currency_code))
|
|
123
|
+
: prices;
|
|
124
|
+
return filtered.map((p) => p.amount);
|
|
125
|
+
});
|
|
126
|
+
const productMinPrice = allPriceAmounts.length > 0 ? Math.min(...allPriceAmounts) : undefined;
|
|
127
|
+
const allRetailAmounts = variants
|
|
128
|
+
.map((v) => v.compare_at_price)
|
|
129
|
+
.filter((a) => a != null);
|
|
130
|
+
const productRetailPrice = allRetailAmounts.length > 0
|
|
131
|
+
? Math.min(...allRetailAmounts)
|
|
132
|
+
: undefined;
|
|
133
|
+
// Variant records
|
|
134
|
+
for (let variantIndex = 0; variantIndex < variants.length; variantIndex++) {
|
|
135
|
+
const variant = variants[variantIndex];
|
|
136
|
+
const prices = variant.prices ?? [];
|
|
137
|
+
const filteredPrices = regionCurrencies
|
|
138
|
+
? prices.filter((p) => regionCurrencies.includes(p.currency_code))
|
|
139
|
+
: prices;
|
|
140
|
+
const amounts = filteredPrices.map((p) => p.amount);
|
|
141
|
+
const minPrice = amounts.length > 0 ? Math.min(...amounts) : undefined;
|
|
142
|
+
// __selected_options: this variant's chosen values, original casing
|
|
143
|
+
const selectedOptions = {};
|
|
144
|
+
for (const optVal of variant.options ?? []) {
|
|
145
|
+
const title = String(optVal.option?.title ?? "");
|
|
146
|
+
if (title) {
|
|
147
|
+
selectedOptions[title] = { value: optVal.value };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const line = {
|
|
151
|
+
"Product ID": variant.id,
|
|
152
|
+
SKU: variant.sku,
|
|
153
|
+
Name: variant.title,
|
|
154
|
+
"Product URL": productUrl,
|
|
155
|
+
Price: minPrice,
|
|
156
|
+
"Retail Price": variant.compare_at_price ?? undefined,
|
|
157
|
+
"Thumbnail URL": product.thumbnail,
|
|
158
|
+
Description: product.description,
|
|
159
|
+
...(categoryPaths.length > 0 ? { Category: categoryPaths } : {}),
|
|
160
|
+
...(categoryIds.length > 0 ? { "Category ID": categoryIds } : {}),
|
|
161
|
+
...(searchKeywords ? { "Search Keywords": searchKeywords } : {}),
|
|
162
|
+
__parent_id: product.id,
|
|
163
|
+
__parent_title: product.title,
|
|
164
|
+
__parent_image: product.thumbnail,
|
|
165
|
+
__variant_position: variantIndex + 1,
|
|
166
|
+
__in_stock: variantStockMap.get(variant.id) ?? false,
|
|
167
|
+
__in_stock_pct: Math.round(inStockPct * 100) / 100,
|
|
168
|
+
...(Object.keys(standardOptions).length > 0
|
|
169
|
+
? { __standard_options: standardOptions }
|
|
170
|
+
: {}),
|
|
171
|
+
...(Object.keys(selectedOptions).length > 0
|
|
172
|
+
? { __selected_options: selectedOptions }
|
|
173
|
+
: {}),
|
|
174
|
+
...(Object.keys(swatchOptions).length > 0
|
|
175
|
+
? { __swatch_options: swatchOptions }
|
|
176
|
+
: {}),
|
|
177
|
+
};
|
|
178
|
+
stripUndefined(line);
|
|
179
|
+
const finalLine = feedOptions?.transformLine
|
|
180
|
+
? await feedOptions.transformLine(line, {
|
|
181
|
+
type: "variant",
|
|
182
|
+
product,
|
|
183
|
+
variant,
|
|
184
|
+
variantIndex,
|
|
185
|
+
})
|
|
186
|
+
: line;
|
|
187
|
+
res.write(JSON.stringify(finalLine) + "\n");
|
|
188
|
+
}
|
|
189
|
+
// Product record
|
|
190
|
+
const productLine = {
|
|
191
|
+
"Product ID": product.id,
|
|
192
|
+
Name: product.title,
|
|
193
|
+
"Product URL": productUrl,
|
|
194
|
+
Price: productMinPrice,
|
|
195
|
+
"Retail Price": productRetailPrice,
|
|
196
|
+
"Thumbnail URL": product.thumbnail,
|
|
197
|
+
Description: product.description,
|
|
198
|
+
...(categoryPaths.length > 0 ? { Category: categoryPaths } : {}),
|
|
199
|
+
...(categoryIds.length > 0 ? { "Category ID": categoryIds } : {}),
|
|
200
|
+
...(searchKeywords ? { "Search Keywords": searchKeywords } : {}),
|
|
201
|
+
};
|
|
202
|
+
stripUndefined(productLine);
|
|
203
|
+
const finalProductLine = feedOptions?.transformLine
|
|
204
|
+
? await feedOptions.transformLine(productLine, {
|
|
205
|
+
type: "product",
|
|
206
|
+
product,
|
|
207
|
+
})
|
|
208
|
+
: productLine;
|
|
209
|
+
res.write(JSON.stringify(finalProductLine) + "\n");
|
|
210
|
+
}
|
|
211
|
+
if (products.length < BATCH_SIZE) {
|
|
212
|
+
hasMore = false;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
offset += BATCH_SIZE;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
finally {
|
|
220
|
+
res.end();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
function stripUndefined(obj) {
|
|
224
|
+
for (const key of Object.keys(obj)) {
|
|
225
|
+
if (obj[key] === undefined)
|
|
226
|
+
delete obj[key];
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
function buildCategoryPath(category) {
|
|
230
|
+
if (category.parent_category) {
|
|
231
|
+
return buildCategoryPath(category.parent_category) + ">" + category.name;
|
|
232
|
+
}
|
|
233
|
+
return category.name;
|
|
234
|
+
}
|
|
235
|
+
function computeInStock(variant) {
|
|
236
|
+
if (!variant.manage_inventory)
|
|
237
|
+
return true;
|
|
238
|
+
if (variant.allow_backorder)
|
|
239
|
+
return true;
|
|
240
|
+
for (const item of variant.inventory_items ?? []) {
|
|
241
|
+
for (const level of item.inventory?.location_levels ?? []) {
|
|
242
|
+
const available = (level.stocked_quantity ?? 0) - (level.reserved_quantity ?? 0);
|
|
243
|
+
if (available > 0)
|
|
244
|
+
return true;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2F0aG9zL2ZlZWQvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFzQ0Esa0JBNE9DO0FBalJELDhEQUFtRTtBQUduRSxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFDdkIsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUVsRCxNQUFNLGNBQWMsR0FBRztJQUNyQixJQUFJO0lBQ0osT0FBTztJQUNQLFFBQVE7SUFDUixhQUFhO0lBQ2IsV0FBVztJQUNYLFFBQVE7SUFDUixhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQix3QkFBd0I7SUFDeEIsK0JBQStCO0lBQy9CLHdCQUF3QjtJQUN4QiwrQkFBK0I7SUFDL0IscUVBQXFFO0lBQ3JFLHNFQUFzRTtJQUN0RSxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLCtCQUErQjtJQUMvQixpQ0FBaUM7SUFDakMsaURBQWlEO0lBQ2pELFlBQVk7SUFDWixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLHNCQUFzQjtJQUN0QixtQkFBbUI7Q0FDcEIsQ0FBQztBQUVLLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUMvRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUMxQyxpQ0FBbUIsQ0FDUSxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hELE1BQU0sZ0JBQWdCLEdBQUc7UUFDdkIsR0FBRyxjQUFjO1FBQ2pCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsa0JB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
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.athosMiddlewares = void 0;
|
|
4
|
+
const athosConfig_1 = require("../../modules/athosConfig");
|
|
5
|
+
async function validateFeedToken(req, res, next) {
|
|
6
|
+
const token = req.query.token;
|
|
7
|
+
if (!token) {
|
|
8
|
+
res.status(401).json({ message: "Unauthorized" });
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const athosConfigService = req.scope.resolve(athosConfig_1.ATHOS_CONFIG_MODULE);
|
|
12
|
+
const [configs] = await athosConfigService.listAndCountAthosConfigs();
|
|
13
|
+
if (!configs.length || configs[0].feed_token !== token) {
|
|
14
|
+
res.status(401).json({ message: "Unauthorized" });
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
next();
|
|
18
|
+
}
|
|
19
|
+
exports.athosMiddlewares = [
|
|
20
|
+
{
|
|
21
|
+
matcher: "/athos/feed",
|
|
22
|
+
method: "GET",
|
|
23
|
+
middlewares: [validateFeedToken],
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2F0aG9zL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLDJEQUFnRTtBQUdoRSxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ25CLElBQWM7SUFFZCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQTJCLENBQUM7SUFFcEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUNsRCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQzFDLGlDQUFtQixDQUNRLENBQUM7SUFDOUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUV0RSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ3ZELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDbEQsT0FBTztJQUNULENBQUM7SUFFRCxJQUFJLEVBQUUsQ0FBQztBQUNULENBQUM7QUFFWSxRQUFBLGdCQUFnQixHQUFzQjtJQUNqRDtRQUNFLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQUM7S0FDakM7Q0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const http_1 = require("@medusajs/framework/http");
|
|
4
|
+
const middlewares_1 = require("./admin/athos/middlewares");
|
|
5
|
+
const middlewares_2 = require("./athos/middlewares");
|
|
6
|
+
exports.default = (0, http_1.defineMiddlewares)({
|
|
7
|
+
routes: [...middlewares_1.adminAthosMiddlewares, ...middlewares_2.athosMiddlewares],
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQTREO0FBQzVELDJEQUFpRTtBQUNqRSxxREFBc0Q7QUFFdEQsa0JBQWUsSUFBQSx3QkFBaUIsRUFBQztJQUMvQixNQUFNLEVBQUUsQ0FBQyxHQUFHLG1DQUFxQixFQUFFLEdBQUcsOEJBQWdCLENBQUM7Q0FDeEQsQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
async function GET(req, res) {
|
|
5
|
+
res.sendStatus(200);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BsdWdpbi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUtDO0FBTE0sS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QixDQUFDIn0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import AthosConfigModuleService from "./service";
|
|
2
|
+
export declare const ATHOS_CONFIG_MODULE = "athosConfig";
|
|
3
|
+
declare const _default: import("@medusajs/types").ModuleExports<typeof AthosConfigModuleService> & {
|
|
4
|
+
linkable: {
|
|
5
|
+
readonly athosConfig: {
|
|
6
|
+
id: {
|
|
7
|
+
serviceName: "athosConfig";
|
|
8
|
+
field: "athosConfig";
|
|
9
|
+
linkable: "athos_config_id";
|
|
10
|
+
primaryKey: "id";
|
|
11
|
+
};
|
|
12
|
+
toJSON: () => {
|
|
13
|
+
serviceName: "athosConfig";
|
|
14
|
+
field: "athosConfig";
|
|
15
|
+
linkable: "athos_config_id";
|
|
16
|
+
primaryKey: "id";
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ATHOS_CONFIG_MODULE = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const service_1 = __importDefault(require("./service"));
|
|
9
|
+
exports.ATHOS_CONFIG_MODULE = "athosConfig";
|
|
10
|
+
exports.default = (0, utils_1.Module)(exports.ATHOS_CONFIG_MODULE, {
|
|
11
|
+
service: service_1.default,
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdGhvc0NvbmZpZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBa0Q7QUFDbEQsd0RBQWdEO0FBRW5DLFFBQUEsbUJBQW1CLEdBQUcsYUFBYSxDQUFBO0FBRWhELGtCQUFlLElBQUEsY0FBTSxFQUFDLDJCQUFtQixFQUFFO0lBQ3pDLE9BQU8sRUFBRSxpQkFBd0I7Q0FDbEMsQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20260518000000 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20260518000000 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "athos_config" (` +
|
|
8
|
+
`"id" text not null, ` +
|
|
9
|
+
`"storefront_url" text not null, ` +
|
|
10
|
+
`"feed_token" text not null, ` +
|
|
11
|
+
`"region_id" text null, ` +
|
|
12
|
+
`"sales_channel_ids" jsonb null, ` +
|
|
13
|
+
`"swatch_option_titles" jsonb null, ` +
|
|
14
|
+
`"created_at" timestamptz not null default now(), ` +
|
|
15
|
+
`"updated_at" timestamptz not null default now(), ` +
|
|
16
|
+
`"deleted_at" timestamptz null, ` +
|
|
17
|
+
`constraint "athos_config_pkey" primary key ("id")` +
|
|
18
|
+
`);`);
|
|
19
|
+
this.addSql(`create index if not exists "IDX_athos_config_deleted_at" on "athos_config" ("deleted_at");`);
|
|
20
|
+
}
|
|
21
|
+
async down() {
|
|
22
|
+
this.addSql(`drop table if exists "athos_config";`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.Migration20260518000000 = Migration20260518000000;
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA1MTgwMDAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdGhvc0NvbmZpZy9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYwNTE4MDAwMDAwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRTtBQUVwRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FDVCw2Q0FBNkM7WUFDM0Msc0JBQXNCO1lBQ3RCLGtDQUFrQztZQUNsQyw4QkFBOEI7WUFDOUIseUJBQXlCO1lBQ3pCLGtDQUFrQztZQUNsQyxxQ0FBcUM7WUFDckMsbURBQW1EO1lBQ25ELG1EQUFtRDtZQUNuRCxpQ0FBaUM7WUFDakMsbURBQW1EO1lBQ25ELElBQUksQ0FDUCxDQUFBO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FDVCw0RkFBNEYsQ0FDN0YsQ0FBQTtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0NBQ0Y7QUF4QkQsMERBd0JDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20260518000001 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20260518000001 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table "athos_config" add column if not exists "swatch_option_titles" jsonb null;`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table "athos_config" drop column if exists "swatch_option_titles";`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20260518000001 = Migration20260518000001;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA1MTgwMDAwMDEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdGhvc0NvbmZpZy9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYwNTE4MDAwMDAxLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRTtBQUVwRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FDVCx3RkFBd0YsQ0FDekYsQ0FBQTtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQ1QsMEVBQTBFLENBQzNFLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFaRCwwREFZQyJ9
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const AthosConfig: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
2
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
3
|
+
storefront_url: import("@medusajs/framework/utils").TextProperty;
|
|
4
|
+
feed_token: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
region_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
6
|
+
sales_channel_ids: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
7
|
+
swatch_option_titles: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
8
|
+
}>, "athos_config">;
|
|
9
|
+
export default AthosConfig;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
|
+
const AthosConfig = utils_1.model.define("athos_config", {
|
|
5
|
+
id: utils_1.model.id().primaryKey(),
|
|
6
|
+
storefront_url: utils_1.model.text(),
|
|
7
|
+
feed_token: utils_1.model.text(),
|
|
8
|
+
region_id: utils_1.model.text().nullable(),
|
|
9
|
+
sales_channel_ids: utils_1.model.json().nullable(),
|
|
10
|
+
swatch_option_titles: utils_1.model.json().nullable(),
|
|
11
|
+
});
|
|
12
|
+
exports.default = AthosConfig;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRob3MtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvYXRob3NDb25maWcvbW9kZWxzL2F0aG9zLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFpRDtBQUVqRCxNQUFNLFdBQVcsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRTtJQUMvQyxFQUFFLEVBQUUsYUFBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRTtJQUMzQixjQUFjLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUM1QixVQUFVLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUN4QixTQUFTLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxpQkFBaUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzFDLG9CQUFvQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDOUMsQ0FBQyxDQUFBO0FBRUYsa0JBQWUsV0FBVyxDQUFBIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AthosPluginOptions } from "./types";
|
|
2
|
+
declare const AthosConfigModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
3
|
+
readonly AthosConfig: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
4
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
5
|
+
storefront_url: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
+
feed_token: import("@medusajs/framework/utils").TextProperty;
|
|
7
|
+
region_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
8
|
+
sales_channel_ids: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
9
|
+
swatch_option_titles: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
10
|
+
}>, "athos_config">;
|
|
11
|
+
}>>;
|
|
12
|
+
declare class AthosConfigModuleService extends AthosConfigModuleService_base {
|
|
13
|
+
private feedOptions_;
|
|
14
|
+
constructor(container: Record<string, unknown>, options?: AthosPluginOptions);
|
|
15
|
+
getFeedOptions(): AthosPluginOptions["feed"];
|
|
16
|
+
}
|
|
17
|
+
export default AthosConfigModuleService;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const athos_config_1 = __importDefault(require("./models/athos-config"));
|
|
8
|
+
class AthosConfigModuleService extends (0, utils_1.MedusaService)({
|
|
9
|
+
AthosConfig: athos_config_1.default,
|
|
10
|
+
}) {
|
|
11
|
+
constructor(container, options) {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.feedOptions_ = options?.feed;
|
|
14
|
+
const logger = (container.logger ?? console);
|
|
15
|
+
if (this.feedOptions_) {
|
|
16
|
+
logger.info("[AthosPlugin] ✅ Feed options loaded: transformLine=" +
|
|
17
|
+
(typeof this.feedOptions_.transformLine === "function"
|
|
18
|
+
? "yes"
|
|
19
|
+
: "no") +
|
|
20
|
+
", extraProductFields=" +
|
|
21
|
+
(this.feedOptions_.extraProductFields?.length ?? 0));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
logger.warn("[AthosPlugin] No feed options provided, using defaults");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
getFeedOptions() {
|
|
28
|
+
return this.feedOptions_;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.default = AthosConfigModuleService;
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2F0aG9zQ29uZmlnL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBMEQ7QUFDMUQseUVBQWdEO0FBR2hELE1BQU0sd0JBQXlCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ25ELFdBQVcsRUFBWCxzQkFBVztDQUNaLENBQUM7SUFHQSxZQUNFLFNBQWtDLEVBQ2xDLE9BQTRCO1FBRTVCLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQztRQUNsQyxNQUFNLE1BQU0sR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFRLENBQUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLElBQUksQ0FDVCxxREFBcUQ7Z0JBQ25ELENBQUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsS0FBSyxVQUFVO29CQUNwRCxDQUFDLENBQUMsS0FBSztvQkFDUCxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNULHVCQUF1QjtnQkFDdkIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FDdEQsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFFRCxrQkFBZSx3QkFBd0IsQ0FBQyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type FeedLineContext = {
|
|
2
|
+
type: "variant";
|
|
3
|
+
product: Record<string, unknown>;
|
|
4
|
+
variant: Record<string, unknown>;
|
|
5
|
+
variantIndex: number;
|
|
6
|
+
} | {
|
|
7
|
+
type: "product";
|
|
8
|
+
product: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
export type AthosPluginOptions = {
|
|
11
|
+
feed?: {
|
|
12
|
+
extraProductFields?: string[];
|
|
13
|
+
transformLine?: (line: Record<string, unknown>, ctx: FeedLineContext) => Record<string, unknown> | Promise<Record<string, unknown>>;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdGhvc0NvbmZpZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type Input = {
|
|
2
|
+
storefront_url: string;
|
|
3
|
+
feed_token: string;
|
|
4
|
+
region_id?: string | null;
|
|
5
|
+
sales_channel_ids?: string[] | null;
|
|
6
|
+
swatch_option_titles?: string[] | null;
|
|
7
|
+
};
|
|
8
|
+
export declare const upsertAthosConfigStep: import("@medusajs/framework/workflows-sdk").StepFunction<Input, any>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.upsertAthosConfigStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const athosConfig_1 = require("../../modules/athosConfig");
|
|
6
|
+
exports.upsertAthosConfigStep = (0, workflows_sdk_1.createStep)("upsert-athos-config-step", async (input, { container }) => {
|
|
7
|
+
const athosConfigService = container.resolve(athosConfig_1.ATHOS_CONFIG_MODULE);
|
|
8
|
+
const [configs] = await athosConfigService.listAndCountAthosConfigs();
|
|
9
|
+
// sales_channel_ids is string[] but model.json() types it as Record<string, unknown>
|
|
10
|
+
const data = {
|
|
11
|
+
storefront_url: input.storefront_url,
|
|
12
|
+
feed_token: input.feed_token,
|
|
13
|
+
region_id: input.region_id,
|
|
14
|
+
sales_channel_ids: input.sales_channel_ids,
|
|
15
|
+
swatch_option_titles: input.swatch_option_titles,
|
|
16
|
+
};
|
|
17
|
+
let config;
|
|
18
|
+
if (configs.length > 0) {
|
|
19
|
+
const updated = await athosConfigService.updateAthosConfigs({
|
|
20
|
+
id: configs[0].id,
|
|
21
|
+
...data,
|
|
22
|
+
});
|
|
23
|
+
config = Array.isArray(updated) ? updated[0] : updated;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const created = await athosConfigService.createAthosConfigs(data);
|
|
27
|
+
config = Array.isArray(created) ? created[0] : created;
|
|
28
|
+
}
|
|
29
|
+
return new workflows_sdk_1.StepResponse(config);
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWF0aG9zLWNvbmZpZy1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy91cHNlcnQtYXRob3MtY29uZmlnLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBQzVFLDJEQUErRDtBQVdsRCxRQUFBLHFCQUFxQixHQUFHLElBQUEsMEJBQVUsRUFDN0MsMEJBQTBCLEVBQzFCLEtBQUssRUFBRSxLQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3BDLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDMUMsaUNBQW1CLENBQ1EsQ0FBQTtJQUU3QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO0lBRXJFLHFGQUFxRjtJQUNyRixNQUFNLElBQUksR0FBRztRQUNYLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztRQUNwQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7UUFDNUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFHakI7UUFDUixvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBR3BCO0tBQ1QsQ0FBQTtJQUVELElBQUksTUFBTSxDQUFBO0lBQ1YsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsa0JBQWtCLENBQUM7WUFDMUQsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQTtRQUNGLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtJQUN4RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDakUsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFBO0lBQ3hELENBQUM7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNqQyxDQUFDLENBQ0YsQ0FBQSJ9
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type Input = {
|
|
2
|
+
storefront_url: string;
|
|
3
|
+
feed_token: string;
|
|
4
|
+
region_id?: string | null;
|
|
5
|
+
sales_channel_ids?: string[] | null;
|
|
6
|
+
swatch_option_titles?: string[] | null;
|
|
7
|
+
};
|
|
8
|
+
declare const upsertAthosConfigWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<Input, any, []>;
|
|
9
|
+
export default upsertAthosConfigWorkflow;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
4
|
+
const upsert_athos_config_step_1 = require("./steps/upsert-athos-config-step");
|
|
5
|
+
const upsertAthosConfigWorkflow = (0, workflows_sdk_1.createWorkflow)("upsert-athos-config", function (input) {
|
|
6
|
+
const config = (0, upsert_athos_config_step_1.upsertAthosConfigStep)(input);
|
|
7
|
+
return new workflows_sdk_1.WorkflowResponse(config);
|
|
8
|
+
});
|
|
9
|
+
exports.default = upsertAthosConfigWorkflow;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWF0aG9zLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvdXBzZXJ0LWF0aG9zLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUFvRjtBQUNwRiwrRUFBd0U7QUFVeEUsTUFBTSx5QkFBeUIsR0FBRyxJQUFBLDhCQUFjLEVBQzlDLHFCQUFxQixFQUNyQixVQUFVLEtBQVk7SUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBQSxnREFBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQyxPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUNGLENBQUE7QUFFRCxrQkFBZSx5QkFBeUIsQ0FBQSJ9
|