@lodashventure/medusa-quotation 1.5.5 → 1.5.6
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.
|
@@ -1941,15 +1941,51 @@ pdfMake__default.default.fonts = {
|
|
|
1941
1941
|
const cmToPt = (cm) => {
|
|
1942
1942
|
return cm * 28.35;
|
|
1943
1943
|
};
|
|
1944
|
-
const
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1944
|
+
const fetchImageAsDataUrl = async (url) => {
|
|
1945
|
+
const response = await fetch(url);
|
|
1946
|
+
if (!response.ok) {
|
|
1947
|
+
throw new Error(`Failed to fetch image (${response.status})`);
|
|
1948
|
+
}
|
|
1949
|
+
const blob = await response.blob();
|
|
1950
|
+
return await new Promise((resolve, reject) => {
|
|
1951
|
+
const reader = new FileReader();
|
|
1952
|
+
reader.onloadend = () => resolve(reader.result);
|
|
1953
|
+
reader.onerror = reject;
|
|
1954
|
+
reader.readAsDataURL(blob);
|
|
1955
|
+
});
|
|
1956
|
+
};
|
|
1957
|
+
const fetchImageViaProxy = async (url) => {
|
|
1958
|
+
try {
|
|
1959
|
+
const response = await sdk.client.fetch(
|
|
1960
|
+
`/admin/quote-store/logo-proxy`,
|
|
1961
|
+
{
|
|
1962
|
+
query: {
|
|
1963
|
+
url
|
|
1964
|
+
}
|
|
1965
|
+
}
|
|
1966
|
+
);
|
|
1967
|
+
return response.dataUrl;
|
|
1968
|
+
} catch (error) {
|
|
1969
|
+
console.error("Unable to fetch logo through proxy", error);
|
|
1970
|
+
return void 0;
|
|
1971
|
+
}
|
|
1972
|
+
};
|
|
1973
|
+
const imageUrlToBase64 = async (url) => {
|
|
1974
|
+
if (!url) {
|
|
1975
|
+
return "";
|
|
1976
|
+
}
|
|
1977
|
+
if (url.startsWith("data:")) {
|
|
1978
|
+
return url;
|
|
1979
|
+
}
|
|
1980
|
+
try {
|
|
1981
|
+
return await fetchImageAsDataUrl(url);
|
|
1982
|
+
} catch (error) {
|
|
1983
|
+
const proxied = await fetchImageViaProxy(url);
|
|
1984
|
+
if (proxied) {
|
|
1985
|
+
return proxied;
|
|
1986
|
+
}
|
|
1987
|
+
throw error;
|
|
1988
|
+
}
|
|
1953
1989
|
};
|
|
1954
1990
|
const colors = {
|
|
1955
1991
|
primary: "#4169e1",
|
|
@@ -1961,6 +1997,14 @@ const useQuotePdf = () => {
|
|
|
1961
1997
|
const [pdfUrl, setPdfUrl] = react.useState(void 0);
|
|
1962
1998
|
const generatePdf = async (data) => {
|
|
1963
1999
|
const { companyInfo, clientInfo, quotation, items, totals, note } = data;
|
|
2000
|
+
let logoDataUrl = "";
|
|
2001
|
+
if (companyInfo.logoUrl) {
|
|
2002
|
+
try {
|
|
2003
|
+
logoDataUrl = await imageUrlToBase64(companyInfo.logoUrl);
|
|
2004
|
+
} catch (error) {
|
|
2005
|
+
console.warn("Unable to load logo for quote PDF", error);
|
|
2006
|
+
}
|
|
2007
|
+
}
|
|
1964
2008
|
const formatAddress = (info) => [
|
|
1965
2009
|
{ text: info.name, bold: true },
|
|
1966
2010
|
info.address1,
|
|
@@ -1971,15 +2015,22 @@ const useQuotePdf = () => {
|
|
|
1971
2015
|
info.website ? `Website: ${info.website}` : "",
|
|
1972
2016
|
info.taxId ? `Tax ID: ${info.taxId}` : ""
|
|
1973
2017
|
].filter(Boolean);
|
|
2018
|
+
const horizontalMargin = cmToPt(3.1);
|
|
2019
|
+
const verticalMargin = 40;
|
|
1974
2020
|
const docDefinition = {
|
|
1975
2021
|
pageSize: "A4",
|
|
1976
|
-
pageMargins: [
|
|
2022
|
+
pageMargins: [
|
|
2023
|
+
horizontalMargin,
|
|
2024
|
+
verticalMargin,
|
|
2025
|
+
horizontalMargin,
|
|
2026
|
+
verticalMargin
|
|
2027
|
+
],
|
|
1977
2028
|
defaultStyle: {
|
|
1978
2029
|
font: "Sarabun",
|
|
1979
2030
|
fontSize: 10
|
|
1980
2031
|
},
|
|
1981
2032
|
images: {
|
|
1982
|
-
logoUrl:
|
|
2033
|
+
logoUrl: logoDataUrl
|
|
1983
2034
|
},
|
|
1984
2035
|
content: [
|
|
1985
2036
|
// Issue Company Info and Logo
|
|
@@ -1997,6 +2048,13 @@ const useQuotePdf = () => {
|
|
|
1997
2048
|
]
|
|
1998
2049
|
},
|
|
1999
2050
|
{ text: "\n" },
|
|
2051
|
+
{
|
|
2052
|
+
text: "Quotation / ใบเสนอราคา",
|
|
2053
|
+
alignment: "center",
|
|
2054
|
+
fontSize: 16,
|
|
2055
|
+
bold: true
|
|
2056
|
+
},
|
|
2057
|
+
{ text: "\n" },
|
|
2000
2058
|
// Quotation To
|
|
2001
2059
|
{
|
|
2002
2060
|
table: {
|
|
@@ -2252,13 +2310,21 @@ const useQuotePdf = () => {
|
|
|
2252
2310
|
};
|
|
2253
2311
|
const imagePromises = [];
|
|
2254
2312
|
Object.entries(docDefinition.images ?? {}).forEach(([key, value]) => {
|
|
2255
|
-
if (typeof value === "string") {
|
|
2313
|
+
if (typeof value === "string" && value) {
|
|
2256
2314
|
imagePromises.push(
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2315
|
+
(async () => {
|
|
2316
|
+
try {
|
|
2317
|
+
const data2 = await imageUrlToBase64(value);
|
|
2318
|
+
if (docDefinition.images) {
|
|
2319
|
+
docDefinition.images[key] = data2;
|
|
2320
|
+
}
|
|
2321
|
+
} catch (error) {
|
|
2322
|
+
console.warn(`Failed to load image for ${key}`, error);
|
|
2323
|
+
if (docDefinition.images) {
|
|
2324
|
+
delete docDefinition.images[key];
|
|
2325
|
+
}
|
|
2260
2326
|
}
|
|
2261
|
-
})
|
|
2327
|
+
})()
|
|
2262
2328
|
);
|
|
2263
2329
|
}
|
|
2264
2330
|
});
|
|
@@ -1937,15 +1937,51 @@ pdfMake.fonts = {
|
|
|
1937
1937
|
const cmToPt = (cm) => {
|
|
1938
1938
|
return cm * 28.35;
|
|
1939
1939
|
};
|
|
1940
|
-
const
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1940
|
+
const fetchImageAsDataUrl = async (url) => {
|
|
1941
|
+
const response = await fetch(url);
|
|
1942
|
+
if (!response.ok) {
|
|
1943
|
+
throw new Error(`Failed to fetch image (${response.status})`);
|
|
1944
|
+
}
|
|
1945
|
+
const blob = await response.blob();
|
|
1946
|
+
return await new Promise((resolve, reject) => {
|
|
1947
|
+
const reader = new FileReader();
|
|
1948
|
+
reader.onloadend = () => resolve(reader.result);
|
|
1949
|
+
reader.onerror = reject;
|
|
1950
|
+
reader.readAsDataURL(blob);
|
|
1951
|
+
});
|
|
1952
|
+
};
|
|
1953
|
+
const fetchImageViaProxy = async (url) => {
|
|
1954
|
+
try {
|
|
1955
|
+
const response = await sdk.client.fetch(
|
|
1956
|
+
`/admin/quote-store/logo-proxy`,
|
|
1957
|
+
{
|
|
1958
|
+
query: {
|
|
1959
|
+
url
|
|
1960
|
+
}
|
|
1961
|
+
}
|
|
1962
|
+
);
|
|
1963
|
+
return response.dataUrl;
|
|
1964
|
+
} catch (error) {
|
|
1965
|
+
console.error("Unable to fetch logo through proxy", error);
|
|
1966
|
+
return void 0;
|
|
1967
|
+
}
|
|
1968
|
+
};
|
|
1969
|
+
const imageUrlToBase64 = async (url) => {
|
|
1970
|
+
if (!url) {
|
|
1971
|
+
return "";
|
|
1972
|
+
}
|
|
1973
|
+
if (url.startsWith("data:")) {
|
|
1974
|
+
return url;
|
|
1975
|
+
}
|
|
1976
|
+
try {
|
|
1977
|
+
return await fetchImageAsDataUrl(url);
|
|
1978
|
+
} catch (error) {
|
|
1979
|
+
const proxied = await fetchImageViaProxy(url);
|
|
1980
|
+
if (proxied) {
|
|
1981
|
+
return proxied;
|
|
1982
|
+
}
|
|
1983
|
+
throw error;
|
|
1984
|
+
}
|
|
1949
1985
|
};
|
|
1950
1986
|
const colors = {
|
|
1951
1987
|
primary: "#4169e1",
|
|
@@ -1957,6 +1993,14 @@ const useQuotePdf = () => {
|
|
|
1957
1993
|
const [pdfUrl, setPdfUrl] = useState(void 0);
|
|
1958
1994
|
const generatePdf = async (data) => {
|
|
1959
1995
|
const { companyInfo, clientInfo, quotation, items, totals, note } = data;
|
|
1996
|
+
let logoDataUrl = "";
|
|
1997
|
+
if (companyInfo.logoUrl) {
|
|
1998
|
+
try {
|
|
1999
|
+
logoDataUrl = await imageUrlToBase64(companyInfo.logoUrl);
|
|
2000
|
+
} catch (error) {
|
|
2001
|
+
console.warn("Unable to load logo for quote PDF", error);
|
|
2002
|
+
}
|
|
2003
|
+
}
|
|
1960
2004
|
const formatAddress = (info) => [
|
|
1961
2005
|
{ text: info.name, bold: true },
|
|
1962
2006
|
info.address1,
|
|
@@ -1967,15 +2011,22 @@ const useQuotePdf = () => {
|
|
|
1967
2011
|
info.website ? `Website: ${info.website}` : "",
|
|
1968
2012
|
info.taxId ? `Tax ID: ${info.taxId}` : ""
|
|
1969
2013
|
].filter(Boolean);
|
|
2014
|
+
const horizontalMargin = cmToPt(3.1);
|
|
2015
|
+
const verticalMargin = 40;
|
|
1970
2016
|
const docDefinition = {
|
|
1971
2017
|
pageSize: "A4",
|
|
1972
|
-
pageMargins: [
|
|
2018
|
+
pageMargins: [
|
|
2019
|
+
horizontalMargin,
|
|
2020
|
+
verticalMargin,
|
|
2021
|
+
horizontalMargin,
|
|
2022
|
+
verticalMargin
|
|
2023
|
+
],
|
|
1973
2024
|
defaultStyle: {
|
|
1974
2025
|
font: "Sarabun",
|
|
1975
2026
|
fontSize: 10
|
|
1976
2027
|
},
|
|
1977
2028
|
images: {
|
|
1978
|
-
logoUrl:
|
|
2029
|
+
logoUrl: logoDataUrl
|
|
1979
2030
|
},
|
|
1980
2031
|
content: [
|
|
1981
2032
|
// Issue Company Info and Logo
|
|
@@ -1993,6 +2044,13 @@ const useQuotePdf = () => {
|
|
|
1993
2044
|
]
|
|
1994
2045
|
},
|
|
1995
2046
|
{ text: "\n" },
|
|
2047
|
+
{
|
|
2048
|
+
text: "Quotation / ใบเสนอราคา",
|
|
2049
|
+
alignment: "center",
|
|
2050
|
+
fontSize: 16,
|
|
2051
|
+
bold: true
|
|
2052
|
+
},
|
|
2053
|
+
{ text: "\n" },
|
|
1996
2054
|
// Quotation To
|
|
1997
2055
|
{
|
|
1998
2056
|
table: {
|
|
@@ -2248,13 +2306,21 @@ const useQuotePdf = () => {
|
|
|
2248
2306
|
};
|
|
2249
2307
|
const imagePromises = [];
|
|
2250
2308
|
Object.entries(docDefinition.images ?? {}).forEach(([key, value]) => {
|
|
2251
|
-
if (typeof value === "string") {
|
|
2309
|
+
if (typeof value === "string" && value) {
|
|
2252
2310
|
imagePromises.push(
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2311
|
+
(async () => {
|
|
2312
|
+
try {
|
|
2313
|
+
const data2 = await imageUrlToBase64(value);
|
|
2314
|
+
if (docDefinition.images) {
|
|
2315
|
+
docDefinition.images[key] = data2;
|
|
2316
|
+
}
|
|
2317
|
+
} catch (error) {
|
|
2318
|
+
console.warn(`Failed to load image for ${key}`, error);
|
|
2319
|
+
if (docDefinition.images) {
|
|
2320
|
+
delete docDefinition.images[key];
|
|
2321
|
+
}
|
|
2256
2322
|
}
|
|
2257
|
-
})
|
|
2323
|
+
})()
|
|
2258
2324
|
);
|
|
2259
2325
|
}
|
|
2260
2326
|
});
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const quote_1 = require("../../../../modules/quote");
|
|
6
|
+
const normalizeUrl = (url) => {
|
|
7
|
+
return new URL(url).toString();
|
|
8
|
+
};
|
|
9
|
+
const getQueryValue = (value) => {
|
|
10
|
+
if (!value) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
return Array.isArray(value) ? value[0] : value;
|
|
14
|
+
};
|
|
15
|
+
const GET = async (req, res) => {
|
|
16
|
+
try {
|
|
17
|
+
const { url } = (req.query ?? {});
|
|
18
|
+
const requestedUrl = getQueryValue(url);
|
|
19
|
+
if (!requestedUrl) {
|
|
20
|
+
return res.status(400).json({
|
|
21
|
+
error: "The 'url' query parameter is required.",
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
let normalizedRequestedUrl;
|
|
25
|
+
try {
|
|
26
|
+
normalizedRequestedUrl = normalizeUrl(requestedUrl);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return res.status(400).json({
|
|
30
|
+
error: "Invalid logo URL.",
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const parsed = new URL(normalizedRequestedUrl);
|
|
34
|
+
if (!["http:", "https:"].includes(parsed.protocol)) {
|
|
35
|
+
return res.status(400).json({
|
|
36
|
+
error: "Only http/https schemes are supported for the logo URL.",
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
40
|
+
const stores = await storeService.listStores();
|
|
41
|
+
if (!stores.length) {
|
|
42
|
+
return res.status(404).json({
|
|
43
|
+
error: "No store configured.",
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const storeId = stores[0].id;
|
|
47
|
+
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
48
|
+
const [storeDetails] = await quoteModuleService.listQuoteStoreDetails({
|
|
49
|
+
store_id: storeId,
|
|
50
|
+
});
|
|
51
|
+
if (!storeDetails?.logoUrl) {
|
|
52
|
+
return res.status(404).json({
|
|
53
|
+
error: "Store logo URL is not configured.",
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
let normalizedConfiguredUrl;
|
|
57
|
+
try {
|
|
58
|
+
normalizedConfiguredUrl = normalizeUrl(storeDetails.logoUrl.trim());
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return res.status(400).json({
|
|
62
|
+
error: "Configured store logo URL is invalid.",
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (normalizedConfiguredUrl !== normalizedRequestedUrl) {
|
|
66
|
+
return res.status(403).json({
|
|
67
|
+
error: "Requested URL does not match the configured store logo.",
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const response = await fetch(normalizedRequestedUrl);
|
|
71
|
+
if (!response.ok) {
|
|
72
|
+
return res.status(response.status).json({
|
|
73
|
+
error: `Unable to fetch logo (${response.status} ${response.statusText}).`,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const contentType = response.headers.get("content-type") || "application/octet-stream";
|
|
77
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
78
|
+
const dataUrl = `data:${contentType};base64,${buffer.toString("base64")}`;
|
|
79
|
+
return res.status(200).json({
|
|
80
|
+
dataUrl,
|
|
81
|
+
contentType,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
return res.status(500).json({
|
|
86
|
+
error: error instanceof Error
|
|
87
|
+
? error.message
|
|
88
|
+
: "Unexpected error fetching logo.",
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
exports.GET = GET;
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3F1b3RlLXN0b3JlL2xvZ28tcHJveHkvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQW9EO0FBQ3BELHFEQUF5RDtBQU96RCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQ25DLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFvQyxFQUFFLEVBQUU7SUFDN0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDakQsQ0FBQyxDQUFDO0FBRUssTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFnQixDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDMUIsS0FBSyxFQUFFLHdDQUF3QzthQUNoRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxzQkFBOEIsQ0FBQztRQUNuQyxJQUFJLENBQUM7WUFDSCxzQkFBc0IsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLEtBQUssRUFBRSxtQkFBbUI7YUFDM0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUMxQixLQUFLLEVBQUUseURBQXlEO2FBQ2pFLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUMxQixLQUFLLEVBQUUsc0JBQXNCO2FBQzlCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTdCLE1BQU0sa0JBQWtCLEdBQ3RCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztZQUNwRSxRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLEtBQUssRUFBRSxtQ0FBbUM7YUFDM0MsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksdUJBQStCLENBQUM7UUFDcEMsSUFBSSxDQUFDO1lBQ0gsdUJBQXVCLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDMUIsS0FBSyxFQUFFLHVDQUF1QzthQUMvQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSx1QkFBdUIsS0FBSyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3ZELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLEtBQUssRUFBRSx5REFBeUQ7YUFDakUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDdEMsS0FBSyxFQUFFLHlCQUF5QixRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLElBQUk7YUFDM0UsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUNmLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLDBCQUEwQixDQUFDO1FBQ3JFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxRQUFRLFdBQVcsV0FBVyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFFMUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixPQUFPO1lBQ1AsV0FBVztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixLQUFLLEVBQ0gsS0FBSyxZQUFZLEtBQUs7Z0JBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTztnQkFDZixDQUFDLENBQUMsaUNBQWlDO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQUM7QUExRlcsUUFBQSxHQUFHLE9BMEZkIn0=
|
|
@@ -26,5 +26,9 @@ exports.merchantSendQuoteWorkflow = (0, workflows_sdk_1.createWorkflow)("merchan
|
|
|
26
26
|
status: quote_status_enum_1.QuoteStatus.PENDING_CUSTOMER,
|
|
27
27
|
},
|
|
28
28
|
]);
|
|
29
|
+
(0, core_flows_1.emitEventStep)({
|
|
30
|
+
eventName: "quote.sent",
|
|
31
|
+
data: { id: input.quote_id },
|
|
32
|
+
});
|
|
29
33
|
});
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyY2hhbnQtc2VuZC1xdW90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbWVyY2hhbnQtc2VuZC1xdW90ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0REFBK0U7QUFDL0UscUVBQW1FO0FBQ25FLHlEQUF5RDtBQUN6RCxxRkFBK0U7QUFDL0UsZ0ZBQXVFO0FBTTFELFFBQUEseUJBQXlCLEdBQUcsSUFBQSw4QkFBYyxFQUNyRCw4QkFBOEIsRUFDOUIsQ0FBQyxLQUFvQixFQUFFLEVBQUU7SUFDdkIsYUFBYTtJQUNiLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN6QyxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7UUFDeEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUU7UUFDL0IsT0FBTyxFQUFFO1lBQ1Asa0JBQWtCLEVBQUUsSUFBSTtTQUN6QjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUEsc0RBQXdCLEVBQUM7UUFDdkIsYUFBYTtRQUNiLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ2pCLENBQUMsQ0FBQztJQUVILElBQUEsZ0NBQWdCLEVBQUM7UUFDZjtZQUNFLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUNsQixNQUFNLEVBQUUsK0JBQVcsQ0FBQyxnQkFBZ0I7U0FDckM7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFBLDBCQUFhLEVBQUM7UUFDWixTQUFTLEVBQUUsWUFBWTtRQUN2QixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRTtLQUM3QixDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodashventure/medusa-quotation",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.6",
|
|
4
4
|
"description": "A starter for Medusa plugins.",
|
|
5
5
|
"author": "Medusa (https://medusajs.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,27 +29,27 @@
|
|
|
29
29
|
"prepublishOnly": "medusa plugin:build"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@medusajs/admin-sdk": "2.11.
|
|
33
|
-
"@medusajs/admin-shared": "2.11.
|
|
34
|
-
"@medusajs/cli": "^2.11.
|
|
35
|
-
"@medusajs/framework": "2.11.
|
|
36
|
-
"@medusajs/icons": "^2.11.
|
|
37
|
-
"@medusajs/medusa": "2.11.
|
|
38
|
-
"@medusajs/test-utils": "2.11.
|
|
39
|
-
"@medusajs/ui": "4.0.
|
|
40
|
-
"@swc/core": "1.
|
|
41
|
-
"@types/lodash": "^4",
|
|
42
|
-
"@types/node": "^
|
|
43
|
-
"@types/pdfmake": "^0",
|
|
44
|
-
"@types/react": "^
|
|
45
|
-
"@types/react-dom": "^
|
|
32
|
+
"@medusajs/admin-sdk": "2.11.3",
|
|
33
|
+
"@medusajs/admin-shared": "2.11.3",
|
|
34
|
+
"@medusajs/cli": "^2.11.3",
|
|
35
|
+
"@medusajs/framework": "2.11.3",
|
|
36
|
+
"@medusajs/icons": "^2.11.3",
|
|
37
|
+
"@medusajs/medusa": "2.11.3",
|
|
38
|
+
"@medusajs/test-utils": "2.11.3",
|
|
39
|
+
"@medusajs/ui": "4.0.27",
|
|
40
|
+
"@swc/core": "1.15.0",
|
|
41
|
+
"@types/lodash": "^4.17.20",
|
|
42
|
+
"@types/node": "^24.10.0",
|
|
43
|
+
"@types/pdfmake": "^0.2.12",
|
|
44
|
+
"@types/react": "^19.2.2",
|
|
45
|
+
"@types/react-dom": "^19.2.2",
|
|
46
46
|
"prop-types": "^15.8.1",
|
|
47
|
-
"react": "^
|
|
48
|
-
"react-dom": "^
|
|
47
|
+
"react": "^19.2.0",
|
|
48
|
+
"react-dom": "^19.2.0",
|
|
49
49
|
"ts-node": "^10.9.2",
|
|
50
|
-
"typescript": "^5.
|
|
51
|
-
"vite": "^
|
|
52
|
-
"yalc": "
|
|
50
|
+
"typescript": "^5.9.3",
|
|
51
|
+
"vite": "^7.2.2",
|
|
52
|
+
"yalc": "1.0.0-pre.53"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"@hookform/resolvers": "*",
|
|
@@ -73,6 +73,6 @@
|
|
|
73
73
|
"node": ">=20"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"pdfmake": "^0.2.
|
|
76
|
+
"pdfmake": "^0.2.20"
|
|
77
77
|
}
|
|
78
78
|
}
|