medusa-import-product-plugin 0.0.1 → 0.0.2
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.
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
|
-
const react = require("react");
|
|
4
|
-
const reactRouterDom = require("react-router-dom");
|
|
5
|
-
const ui = require("@medusajs/ui");
|
|
6
3
|
const adminSdk = require("@medusajs/admin-sdk");
|
|
7
4
|
const icons = require("@medusajs/icons");
|
|
5
|
+
const ui = require("@medusajs/ui");
|
|
6
|
+
const react = require("react");
|
|
7
|
+
const reactRouterDom = require("react-router-dom");
|
|
8
|
+
const Medusa = require("@medusajs/js-sdk");
|
|
9
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
10
|
+
const Medusa__default = /* @__PURE__ */ _interopDefault(Medusa);
|
|
11
|
+
const sdk = new Medusa__default.default({
|
|
12
|
+
baseUrl: __BACKEND_URL__ ?? "/",
|
|
13
|
+
auth: {
|
|
14
|
+
type: "jwt"
|
|
15
|
+
}
|
|
16
|
+
});
|
|
8
17
|
const STATUS_COLOR$1 = {
|
|
9
18
|
processing: "blue",
|
|
10
19
|
paused: "orange",
|
|
@@ -38,9 +47,9 @@ function ImportPage() {
|
|
|
38
47
|
const intervalRef = react.useRef(null);
|
|
39
48
|
const fetchJobs = async (p) => {
|
|
40
49
|
try {
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
50
|
+
const data = await sdk.client.fetch(`/admin/import`, {
|
|
51
|
+
query: { page: p, limit: PAGE_SIZE$1 }
|
|
52
|
+
});
|
|
44
53
|
setJobs(data.jobs ?? []);
|
|
45
54
|
setTotalPages(data.totalPages ?? 1);
|
|
46
55
|
setTotal(data.total ?? 0);
|
|
@@ -70,13 +79,16 @@ function ImportPage() {
|
|
|
70
79
|
try {
|
|
71
80
|
const form = new FormData();
|
|
72
81
|
form.append("file", file);
|
|
73
|
-
const res = await fetch("/admin/import", {
|
|
74
|
-
|
|
82
|
+
const res = await fetch("/admin/import", {
|
|
83
|
+
method: "POST",
|
|
84
|
+
body: form,
|
|
85
|
+
credentials: "include"
|
|
86
|
+
});
|
|
75
87
|
if (!res.ok) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return;
|
|
88
|
+
const err = await res.json().catch(() => ({ error: "Upload failed" }));
|
|
89
|
+
throw new Error(err.error || `Upload failed (${res.status})`);
|
|
79
90
|
}
|
|
91
|
+
const data = await res.json();
|
|
80
92
|
setFile(null);
|
|
81
93
|
navigate(`/import/${data.job_id}`);
|
|
82
94
|
} catch (err) {
|
|
@@ -95,10 +107,8 @@ function ImportPage() {
|
|
|
95
107
|
if (!window.confirm("Delete this import job and all its data?")) return;
|
|
96
108
|
setDeleting(jobId);
|
|
97
109
|
try {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
await fetchJobs(page);
|
|
101
|
-
}
|
|
110
|
+
await sdk.client.fetch(`/admin/import/${jobId}`, { method: "DELETE" });
|
|
111
|
+
await fetchJobs(page);
|
|
102
112
|
} finally {
|
|
103
113
|
setDeleting(null);
|
|
104
114
|
}
|
|
@@ -398,9 +408,9 @@ function ImportReportPage() {
|
|
|
398
408
|
let cancelled = false;
|
|
399
409
|
const tick = async () => {
|
|
400
410
|
try {
|
|
401
|
-
const
|
|
402
|
-
|
|
403
|
-
|
|
411
|
+
const data = await sdk.client.fetch(
|
|
412
|
+
`/admin/import/${id}`
|
|
413
|
+
);
|
|
404
414
|
if (!cancelled) {
|
|
405
415
|
setJob(data);
|
|
406
416
|
if (data.status === "done" || data.status === "failed") {
|
|
@@ -424,14 +434,14 @@ function ImportReportPage() {
|
|
|
424
434
|
};
|
|
425
435
|
}, [id]);
|
|
426
436
|
const pause = async () => {
|
|
427
|
-
await fetch(`/admin/import/${id}/pause`, { method: "POST" });
|
|
437
|
+
await sdk.client.fetch(`/admin/import/${id}/pause`, { method: "POST" });
|
|
428
438
|
};
|
|
429
439
|
const resume = async () => {
|
|
430
|
-
await fetch(`/admin/import/${id}/resume`, { method: "POST" });
|
|
440
|
+
await sdk.client.fetch(`/admin/import/${id}/resume`, { method: "POST" });
|
|
431
441
|
};
|
|
432
442
|
const del = async () => {
|
|
433
443
|
if (!window.confirm("Delete this import job and all its data?")) return;
|
|
434
|
-
await fetch(`/admin/import/${id}`, { method: "DELETE" });
|
|
444
|
+
await sdk.client.fetch(`/admin/import/${id}`, { method: "DELETE" });
|
|
435
445
|
navigate("/import");
|
|
436
446
|
};
|
|
437
447
|
const formatError = (err) => {
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useState, useRef, useEffect, useMemo } from "react";
|
|
3
|
-
import { useNavigate, useParams } from "react-router-dom";
|
|
4
|
-
import { Container, Heading, Badge, Button, Text, Table, StatusBadge } from "@medusajs/ui";
|
|
5
2
|
import { defineRouteConfig } from "@medusajs/admin-sdk";
|
|
6
3
|
import { ArrowUpTray, Trash, Clock, XCircle, CheckCircle, Loader, ArrowLeft, ArrowPath, Pause } from "@medusajs/icons";
|
|
4
|
+
import { Container, Heading, Badge, Button, Text, Table, StatusBadge } from "@medusajs/ui";
|
|
5
|
+
import { useState, useRef, useEffect, useMemo } from "react";
|
|
6
|
+
import { useNavigate, useParams } from "react-router-dom";
|
|
7
|
+
import Medusa from "@medusajs/js-sdk";
|
|
8
|
+
const sdk = new Medusa({
|
|
9
|
+
baseUrl: __BACKEND_URL__ ?? "/",
|
|
10
|
+
auth: {
|
|
11
|
+
type: "jwt"
|
|
12
|
+
}
|
|
13
|
+
});
|
|
7
14
|
const STATUS_COLOR$1 = {
|
|
8
15
|
processing: "blue",
|
|
9
16
|
paused: "orange",
|
|
@@ -37,9 +44,9 @@ function ImportPage() {
|
|
|
37
44
|
const intervalRef = useRef(null);
|
|
38
45
|
const fetchJobs = async (p) => {
|
|
39
46
|
try {
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
const data = await sdk.client.fetch(`/admin/import`, {
|
|
48
|
+
query: { page: p, limit: PAGE_SIZE$1 }
|
|
49
|
+
});
|
|
43
50
|
setJobs(data.jobs ?? []);
|
|
44
51
|
setTotalPages(data.totalPages ?? 1);
|
|
45
52
|
setTotal(data.total ?? 0);
|
|
@@ -69,13 +76,16 @@ function ImportPage() {
|
|
|
69
76
|
try {
|
|
70
77
|
const form = new FormData();
|
|
71
78
|
form.append("file", file);
|
|
72
|
-
const res = await fetch("/admin/import", {
|
|
73
|
-
|
|
79
|
+
const res = await fetch("/admin/import", {
|
|
80
|
+
method: "POST",
|
|
81
|
+
body: form,
|
|
82
|
+
credentials: "include"
|
|
83
|
+
});
|
|
74
84
|
if (!res.ok) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return;
|
|
85
|
+
const err = await res.json().catch(() => ({ error: "Upload failed" }));
|
|
86
|
+
throw new Error(err.error || `Upload failed (${res.status})`);
|
|
78
87
|
}
|
|
88
|
+
const data = await res.json();
|
|
79
89
|
setFile(null);
|
|
80
90
|
navigate(`/import/${data.job_id}`);
|
|
81
91
|
} catch (err) {
|
|
@@ -94,10 +104,8 @@ function ImportPage() {
|
|
|
94
104
|
if (!window.confirm("Delete this import job and all its data?")) return;
|
|
95
105
|
setDeleting(jobId);
|
|
96
106
|
try {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
await fetchJobs(page);
|
|
100
|
-
}
|
|
107
|
+
await sdk.client.fetch(`/admin/import/${jobId}`, { method: "DELETE" });
|
|
108
|
+
await fetchJobs(page);
|
|
101
109
|
} finally {
|
|
102
110
|
setDeleting(null);
|
|
103
111
|
}
|
|
@@ -397,9 +405,9 @@ function ImportReportPage() {
|
|
|
397
405
|
let cancelled = false;
|
|
398
406
|
const tick = async () => {
|
|
399
407
|
try {
|
|
400
|
-
const
|
|
401
|
-
|
|
402
|
-
|
|
408
|
+
const data = await sdk.client.fetch(
|
|
409
|
+
`/admin/import/${id}`
|
|
410
|
+
);
|
|
403
411
|
if (!cancelled) {
|
|
404
412
|
setJob(data);
|
|
405
413
|
if (data.status === "done" || data.status === "failed") {
|
|
@@ -423,14 +431,14 @@ function ImportReportPage() {
|
|
|
423
431
|
};
|
|
424
432
|
}, [id]);
|
|
425
433
|
const pause = async () => {
|
|
426
|
-
await fetch(`/admin/import/${id}/pause`, { method: "POST" });
|
|
434
|
+
await sdk.client.fetch(`/admin/import/${id}/pause`, { method: "POST" });
|
|
427
435
|
};
|
|
428
436
|
const resume = async () => {
|
|
429
|
-
await fetch(`/admin/import/${id}/resume`, { method: "POST" });
|
|
437
|
+
await sdk.client.fetch(`/admin/import/${id}/resume`, { method: "POST" });
|
|
430
438
|
};
|
|
431
439
|
const del = async () => {
|
|
432
440
|
if (!window.confirm("Delete this import job and all its data?")) return;
|
|
433
|
-
await fetch(`/admin/import/${id}`, { method: "DELETE" });
|
|
441
|
+
await sdk.client.fetch(`/admin/import/${id}`, { method: "DELETE" });
|
|
434
442
|
navigate("/import");
|
|
435
443
|
};
|
|
436
444
|
const formatError = (err) => {
|
|
@@ -7,19 +7,16 @@ function toMedusaProductInput(p, handle, categoryIds, imageMapping) {
|
|
|
7
7
|
}
|
|
8
8
|
const variants = p.variants ?? [];
|
|
9
9
|
const optionDefs = [];
|
|
10
|
-
|
|
10
|
+
for (const opt of p.options ?? []) {
|
|
11
|
+
if (!opt.name)
|
|
12
|
+
continue;
|
|
11
13
|
const values = [
|
|
12
|
-
...new Set(variants
|
|
14
|
+
...new Set(variants
|
|
15
|
+
.map((v) => v.option_values?.[opt.name])
|
|
16
|
+
.filter((v) => !!v)),
|
|
13
17
|
];
|
|
14
|
-
optionDefs.push({ title:
|
|
18
|
+
optionDefs.push({ title: opt.name, values });
|
|
15
19
|
}
|
|
16
|
-
if (p.option2_name) {
|
|
17
|
-
const values = [
|
|
18
|
-
...new Set(variants.map((v) => v.option2_value).filter((v) => !!v)),
|
|
19
|
-
];
|
|
20
|
-
optionDefs.push({ title: p.option2_name, values });
|
|
21
|
-
}
|
|
22
|
-
const optionValue = (optTitle, v) => optTitle === p.option1_name ? v.option1_value : v.option2_value;
|
|
23
20
|
const status = "published";
|
|
24
21
|
const mappedImages = p.images?.length
|
|
25
22
|
? p.images
|
|
@@ -54,7 +51,7 @@ function toMedusaProductInput(p, handle, categoryIds, imageMapping) {
|
|
|
54
51
|
? {
|
|
55
52
|
options: Object.fromEntries(optionDefs
|
|
56
53
|
.map((opt) => {
|
|
57
|
-
const val =
|
|
54
|
+
const val = v.option_values?.[opt.title];
|
|
58
55
|
return val ? [opt.title, val] : null;
|
|
59
56
|
})
|
|
60
57
|
.filter((e) => !!e)),
|
|
@@ -66,4 +63,4 @@ function toMedusaProductInput(p, handle, categoryIds, imageMapping) {
|
|
|
66
63
|
};
|
|
67
64
|
return input;
|
|
68
65
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbXBvcnQvdHlwZXMvd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQ0Esb0RBMkVDO0FBM0VELFNBQWdCLG9CQUFvQixDQUNsQyxDQUFvQyxFQUNwQyxNQUFjLEVBQ2QsV0FBc0IsRUFDdEIsWUFBcUM7SUFFckMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1AsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO0lBRWxDLE1BQU0sVUFBVSxHQUEwQyxFQUFFLENBQUM7SUFDN0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUFFLFNBQVM7UUFDeEIsTUFBTSxNQUFNLEdBQUc7WUFDYixHQUFHLElBQUksR0FBRyxDQUNSLFFBQVE7aUJBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUssQ0FBQyxDQUFDO2lCQUN4QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbkM7U0FDRixDQUFDO1FBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUErQixXQUFXLENBQUM7SUFFdkQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNO1FBQ25DLENBQUMsQ0FB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
|
|
@@ -23,12 +23,8 @@ const FIELDS = {
|
|
|
23
23
|
.map((s) => s.trim())
|
|
24
24
|
.filter(Boolean),
|
|
25
25
|
},
|
|
26
|
-
option1_name: { target: "product" },
|
|
27
|
-
option2_name: { target: "product" },
|
|
28
26
|
variant_title: { target: "variant", prop: "title" },
|
|
29
27
|
variant_sku: { target: "variant", prop: "sku" },
|
|
30
|
-
option1_value: { target: "variant" },
|
|
31
|
-
option2_value: { target: "variant" },
|
|
32
28
|
price: { target: "variant", parse: (v) => parseFloat(v) },
|
|
33
29
|
dealer_price: { target: "variant", parse: (v) => parseFloat(v) },
|
|
34
30
|
inventory_quantity: {
|
|
@@ -108,6 +104,35 @@ function extractAttributes(row) {
|
|
|
108
104
|
}
|
|
109
105
|
return attrs;
|
|
110
106
|
}
|
|
107
|
+
function extractOptions(row) {
|
|
108
|
+
const opts = [];
|
|
109
|
+
for (const key of Object.keys(row)) {
|
|
110
|
+
const match = key.match(/^option_(\d+)_name$/);
|
|
111
|
+
if (!match)
|
|
112
|
+
continue;
|
|
113
|
+
const idx = match[1];
|
|
114
|
+
const name = row[key]?.trim();
|
|
115
|
+
const value = row[`option_${idx}_value`]?.trim();
|
|
116
|
+
if (name && value) {
|
|
117
|
+
opts.push({ name, value });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return opts;
|
|
121
|
+
}
|
|
122
|
+
function extractOptionNames(row) {
|
|
123
|
+
const opts = [];
|
|
124
|
+
for (const key of Object.keys(row)) {
|
|
125
|
+
const match = key.match(/^option_(\d+)_name$/);
|
|
126
|
+
if (!match)
|
|
127
|
+
continue;
|
|
128
|
+
const idx = match[1];
|
|
129
|
+
const name = row[key]?.trim();
|
|
130
|
+
if (name) {
|
|
131
|
+
opts.push({ name, values: [] });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return opts;
|
|
135
|
+
}
|
|
111
136
|
function toProducts(rows) {
|
|
112
137
|
const map = new Map();
|
|
113
138
|
for (const r of rows) {
|
|
@@ -116,6 +141,7 @@ function toProducts(rows) {
|
|
|
116
141
|
continue;
|
|
117
142
|
if (!map.has(title)) {
|
|
118
143
|
const attrs = extractAttributes(r);
|
|
144
|
+
const opts = extractOptionNames(r);
|
|
119
145
|
const imagesRaw = resolve(r, "images");
|
|
120
146
|
const images = Array.isArray(imagesRaw) ? imagesRaw.filter((v) => typeof v === "string") : undefined;
|
|
121
147
|
map.set(title, {
|
|
@@ -124,19 +150,22 @@ function toProducts(rows) {
|
|
|
124
150
|
subtitle: resolveString(r, "subtitle"),
|
|
125
151
|
categories: resolveStringArray(r, "category"),
|
|
126
152
|
brand_tag: resolveString(r, "brand_tag"),
|
|
127
|
-
option1_name: resolveString(r, "option1_name"),
|
|
128
|
-
option2_name: resolveString(r, "option2_name"),
|
|
129
153
|
images,
|
|
154
|
+
options: opts.length ? opts.map((o) => ({ name: o.name, value: "" })) : undefined,
|
|
130
155
|
attributes: attrs.length ? attrs : undefined,
|
|
131
156
|
variants: [],
|
|
132
157
|
});
|
|
133
158
|
}
|
|
134
159
|
const product = map.get(title);
|
|
160
|
+
const optionPairs = extractOptions(r);
|
|
161
|
+
const option_values = {};
|
|
162
|
+
for (const pair of optionPairs) {
|
|
163
|
+
option_values[pair.name] = pair.value;
|
|
164
|
+
}
|
|
135
165
|
product.variants.push({
|
|
136
166
|
sku: resolveString(r, "variant_sku") ?? "",
|
|
137
167
|
title: resolveString(r, "variant_title"),
|
|
138
|
-
|
|
139
|
-
option2_value: resolveString(r, "option2_value"),
|
|
168
|
+
option_values: Object.keys(option_values).length ? option_values : undefined,
|
|
140
169
|
price: resolveNumber(r, "price", 0),
|
|
141
170
|
dealer_price: resolveNumber(r, "dealer_price", 0) || undefined,
|
|
142
171
|
inventory_quantity: resolveNumber(r, "inventory_quantity", 0),
|
|
@@ -157,4 +186,4 @@ exports.parseCSVStep = (0, workflows_sdk_1.createStep)("parse-csv-step", async (
|
|
|
157
186
|
throw new Error(errors.join(" | "));
|
|
158
187
|
return new workflows_sdk_1.StepResponse(toProducts(rows));
|
|
159
188
|
});
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtY3N2LnN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL3BhcnNlLWNzdi5zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXlEQSxvQ0FZQztBQXJFRCwyREFBbUU7QUFFbkUseUNBQXVDO0FBQ3ZDLHlDQUFpRDtBQUNqRCxxQ0FBMkM7QUFDM0MsNENBQW9CO0FBVXBCLE1BQU0sTUFBTSxHQUFnQztJQUMxQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7SUFDNUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtJQUNsQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO0lBQy9CLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7SUFDL0IsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtJQUNoQyxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsU0FBUztRQUNqQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNYLENBQUM7YUFDRSxLQUFLLENBQUMsUUFBUSxDQUFDO2FBQ2YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQztLQUNyQjtJQUNELGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtJQUNuRCxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7SUFDL0MsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "medusa-import-product-plugin",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "A starter for Medusa plugins.",
|
|
5
5
|
"author": "Medusa (https://medusajs.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -70,8 +70,9 @@
|
|
|
70
70
|
},
|
|
71
71
|
"packageManager": "npm@10.12.1",
|
|
72
72
|
"dependencies": {
|
|
73
|
+
"@medusajs/js-sdk": "^2.14.2",
|
|
73
74
|
"@types/multer": "^2.1.0",
|
|
74
75
|
"csv-parse": "^6.2.1",
|
|
75
76
|
"multer": "^2.1.1"
|
|
76
77
|
}
|
|
77
|
-
}
|
|
78
|
+
}
|