@lodashventure/medusa-quotation 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 +7853 -0
- package/.medusa/server/src/admin/index.mjs +7850 -0
- package/.medusa/server/src/api/admin/quote-config/route.js +151 -0
- package/.medusa/server/src/api/admin/quote-seq/[id]/route.js +133 -0
- package/.medusa/server/src/api/admin/quote-seq/route.js +77 -0
- package/.medusa/server/src/api/admin/quote-store/route.js +94 -0
- package/.medusa/server/src/api/admin/quotes/[id]/reject/route.js +22 -0
- package/.medusa/server/src/api/admin/quotes/[id]/route.js +16 -0
- package/.medusa/server/src/api/admin/quotes/[id]/send/route.js +22 -0
- package/.medusa/server/src/api/admin/quotes/query-config.js +56 -0
- package/.medusa/server/src/api/admin/quotes/route.js +19 -0
- package/.medusa/server/src/api/admin/quotes/validators.js +10 -0
- package/.medusa/server/src/api/middlewares.js +31 -0
- package/.medusa/server/src/api/store/customers/me/quotes/[id]/accept/route.js +23 -0
- package/.medusa/server/src/api/store/customers/me/quotes/[id]/preview/route.js +23 -0
- package/.medusa/server/src/api/store/customers/me/quotes/[id]/reject/route.js +23 -0
- package/.medusa/server/src/api/store/customers/me/quotes/query-config.js +55 -0
- package/.medusa/server/src/api/store/customers/me/quotes/route.js +22 -0
- package/.medusa/server/src/api/store/validators.js +15 -0
- package/.medusa/server/src/fonts/vfs_fonts.js +20 -0
- package/.medusa/server/src/links/quote-cart.js +19 -0
- package/.medusa/server/src/links/quote-config-store.js +19 -0
- package/.medusa/server/src/links/quote-customer.js +19 -0
- package/.medusa/server/src/links/quote-order-change.js +19 -0
- package/.medusa/server/src/links/quote-order.js +22 -0
- package/.medusa/server/src/links/quote-seq-store.js +19 -0
- package/.medusa/server/src/modules/quote/index.js +13 -0
- package/.medusa/server/src/modules/quote/migrations/Migration20250303093636.js +21 -0
- package/.medusa/server/src/modules/quote/migrations/Migration20250304145603.js +17 -0
- package/.medusa/server/src/modules/quote/migrations/Migration20250608102414.js +25 -0
- package/.medusa/server/src/modules/quote/migrations/Migration20250622111411.js +23 -0
- package/.medusa/server/src/modules/quote/migrations/Migration20250622153414.js +17 -0
- package/.medusa/server/src/modules/quote/migrations/Migration20250622153513.js +14 -0
- package/.medusa/server/src/modules/quote/models/quote-config.js +20 -0
- package/.medusa/server/src/modules/quote/models/quote-seq.js +13 -0
- package/.medusa/server/src/modules/quote/models/quote-store-detail.js +25 -0
- package/.medusa/server/src/modules/quote/models/quote.js +17 -0
- package/.medusa/server/src/modules/quote/service.js +130 -0
- package/.medusa/server/src/modules/quote/types/quote-status.enum.js +18 -0
- package/.medusa/server/src/modules/quote/types/seq-type.enum.js +9 -0
- package/.medusa/server/src/workflows/create-request-for-quote.js +88 -0
- package/.medusa/server/src/workflows/customer-accept-quote.js +43 -0
- package/.medusa/server/src/workflows/customer-reject-quote.js +30 -0
- package/.medusa/server/src/workflows/merchant-reject-quote.js +30 -0
- package/.medusa/server/src/workflows/merchant-send-quote.js +30 -0
- package/.medusa/server/src/workflows/steps/create-quotes.js +17 -0
- package/.medusa/server/src/workflows/steps/update-quotes.js +20 -0
- package/.medusa/server/src/workflows/steps/validate-quote-can-accept.js +12 -0
- package/.medusa/server/src/workflows/steps/validate-quote-not-accepted.js +12 -0
- package/README.md +54 -0
- package/package.json +86 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRequestForQuoteWorkflow = void 0;
|
|
4
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
7
|
+
const create_quotes_1 = require("./steps/create-quotes");
|
|
8
|
+
exports.createRequestForQuoteWorkflow = (0, workflows_sdk_1.createWorkflow)("create-request-for-quote", (input) => {
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
const { data: carts } = (0, core_flows_1.useQueryGraphStep)({
|
|
11
|
+
entity: "cart",
|
|
12
|
+
fields: [
|
|
13
|
+
"id",
|
|
14
|
+
"sales_channel_id",
|
|
15
|
+
"currency_code",
|
|
16
|
+
"region_id",
|
|
17
|
+
"customer.id",
|
|
18
|
+
"customer.email",
|
|
19
|
+
"shipping_address.*",
|
|
20
|
+
"billing_address.*",
|
|
21
|
+
"items.*",
|
|
22
|
+
"shipping_methods.*",
|
|
23
|
+
"promotions.code",
|
|
24
|
+
],
|
|
25
|
+
filters: { id: input.cart_id },
|
|
26
|
+
options: {
|
|
27
|
+
throwIfKeyNotFound: true,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
const { data: customers } = (0, core_flows_1.useQueryGraphStep)({
|
|
31
|
+
entity: "customer",
|
|
32
|
+
fields: ["id", "customer"],
|
|
33
|
+
filters: { id: input.customer_id },
|
|
34
|
+
options: {
|
|
35
|
+
throwIfKeyNotFound: true,
|
|
36
|
+
},
|
|
37
|
+
}).config({ name: "customer-query" });
|
|
38
|
+
const orderInput = (0, workflows_sdk_1.transform)({ carts, customers }, ({ carts, customers }) => {
|
|
39
|
+
return {
|
|
40
|
+
is_draft_order: true,
|
|
41
|
+
status: utils_1.OrderStatus.DRAFT,
|
|
42
|
+
sales_channel_id: carts[0].sales_channel_id || undefined,
|
|
43
|
+
email: customers[0].email || undefined,
|
|
44
|
+
customer_id: customers[0].id || undefined,
|
|
45
|
+
billing_address: carts[0].billing_address,
|
|
46
|
+
shipping_address: carts[0].shipping_address,
|
|
47
|
+
items: carts[0].items || [],
|
|
48
|
+
region_id: carts[0].region_id || undefined,
|
|
49
|
+
promo_codes: carts[0].promotions?.map((promo) => promo?.code),
|
|
50
|
+
currency_code: carts[0].currency_code,
|
|
51
|
+
shipping_methods: carts[0].shipping_methods || [],
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
const draftOrder = core_flows_1.createOrderWorkflow.runAsStep({
|
|
55
|
+
input: orderInput,
|
|
56
|
+
});
|
|
57
|
+
const orderEditInput = (0, workflows_sdk_1.transform)({ draftOrder }, ({ draftOrder }) => {
|
|
58
|
+
return {
|
|
59
|
+
order_id: draftOrder.id,
|
|
60
|
+
description: "",
|
|
61
|
+
internal_note: "",
|
|
62
|
+
metadata: {},
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
const changeOrder = core_flows_1.beginOrderEditOrderWorkflow.runAsStep({
|
|
66
|
+
input: orderEditInput,
|
|
67
|
+
});
|
|
68
|
+
const quoteData = (0, workflows_sdk_1.transform)({
|
|
69
|
+
draftOrder,
|
|
70
|
+
carts,
|
|
71
|
+
customers,
|
|
72
|
+
changeOrder,
|
|
73
|
+
}, ({ draftOrder, carts, customers, changeOrder }) => {
|
|
74
|
+
return {
|
|
75
|
+
draft_order_id: draftOrder.id,
|
|
76
|
+
cart_id: carts[0].id,
|
|
77
|
+
customer_id: customers[0].id,
|
|
78
|
+
order_change_id: changeOrder.id,
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
const quotes = (0, create_quotes_1.createQuotesStep)([quoteData]);
|
|
82
|
+
(0, core_flows_1.emitEventStep)({
|
|
83
|
+
eventName: "quote.requested",
|
|
84
|
+
data: { id: quotes[0].id },
|
|
85
|
+
});
|
|
86
|
+
return new workflows_sdk_1.WorkflowResponse({ quote: quotes[0] });
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlcXVlc3QtZm9yLXF1b3RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jcmVhdGUtcmVxdWVzdC1mb3ItcXVvdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNERBTXFDO0FBQ3JDLHFEQUF3RDtBQUN4RCwyREFJaUM7QUFFakMseURBQXlEO0FBTzVDLFFBQUEsNkJBQTZCLEdBQUcsSUFBQSw4QkFBYyxFQUN6RCwwQkFBMEIsRUFDMUIsQ0FBQyxLQUFvQixFQUFFLEVBQUU7SUFDdkIsYUFBYTtJQUNiLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN4QyxNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU0sRUFBRTtZQUNOLElBQUk7WUFDSixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLFdBQVc7WUFDWCxhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsU0FBUztZQUNULG9CQUFvQjtZQUNwQixpQkFBaUI7U0FDbEI7UUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUM5QixPQUFPLEVBQUU7WUFDUCxrQkFBa0IsRUFBRSxJQUFJO1NBQ3pCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQzVDLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUM7UUFDMUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUU7UUFDbEMsT0FBTyxFQUFFO1lBQ1Asa0JBQWtCLEVBQUUsSUFBSTtTQUN6QjtLQUNGLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FB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
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.customerAcceptQuoteWorkflow = void 0;
|
|
4
|
+
const core_flows_1 = require("@medusajs/core-flows");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
7
|
+
const validate_quote_can_accept_1 = require("./steps/validate-quote-can-accept");
|
|
8
|
+
const update_quotes_1 = require("./steps/update-quotes");
|
|
9
|
+
const quote_status_enum_1 = require("../modules/quote/types/quote-status.enum");
|
|
10
|
+
exports.customerAcceptQuoteWorkflow = (0, workflows_sdk_1.createWorkflow)("customer-accept-quote-workflow", (input) => {
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
const { data: quotes } = (0, core_flows_1.useQueryGraphStep)({
|
|
13
|
+
entity: "quote",
|
|
14
|
+
fields: ["id", "draft_order_id", "status"],
|
|
15
|
+
filters: { id: input.quote_id, customer_id: input.customer_id },
|
|
16
|
+
options: {
|
|
17
|
+
throwIfKeyNotFound: true,
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
(0, validate_quote_can_accept_1.validateQuoteCanAcceptStep)({
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
quote: quotes[0]
|
|
23
|
+
});
|
|
24
|
+
(0, update_quotes_1.updateQuotesStep)([{
|
|
25
|
+
id: input.quote_id,
|
|
26
|
+
status: quote_status_enum_1.QuoteStatus.ACCEPTED
|
|
27
|
+
}]);
|
|
28
|
+
core_flows_1.confirmOrderEditRequestWorkflow.runAsStep({
|
|
29
|
+
input: {
|
|
30
|
+
order_id: quotes[0].draft_order_id,
|
|
31
|
+
confirmed_by: input.customer_id,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
core_flows_1.updateOrderWorkflow.runAsStep({
|
|
35
|
+
input: {
|
|
36
|
+
id: quotes[0].draft_order_id,
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
status: utils_1.OrderStatus.PENDING,
|
|
39
|
+
is_draft_order: false
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItYWNjZXB0LXF1b3RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jdXN0b21lci1hY2NlcHQtcXVvdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBSThCO0FBQzlCLHFEQUF3RDtBQUN4RCwyREFBeUQ7QUFDekQsaUZBQStFO0FBQy9FLHlEQUF5RDtBQUN6RCxnRkFBdUU7QUFPMUQsUUFBQSwyQkFBMkIsR0FBRyxJQUFBLDhCQUFjLEVBQ3ZELGdDQUFnQyxFQUNoQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtJQUN2QixhQUFhO0lBQ2IsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ3pDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsQ0FBQztRQUMxQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRTtRQUMvRCxPQUFPLEVBQUU7WUFDUCxrQkFBa0IsRUFBRSxJQUFJO1NBQ3pCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsSUFBQSxzREFBMEIsRUFBQztRQUN6QixhQUFhO1FBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7S0FDakIsQ0FBQyxDQUFDO0lBRUgsSUFBQSxnQ0FBZ0IsRUFBQyxDQUFDO1lBQ2hCLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUNsQixNQUFNLEVBQUUsK0JBQVcsQ0FBQyxRQUFRO1NBQzdCLENBQUMsQ0FBQyxDQUFDO0lBRUosNENBQStCLENBQUMsU0FBUyxDQUFDO1FBQ3hDLEtBQUssRUFBRTtZQUNMLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYztZQUNsQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDaEM7S0FDRixDQUFDLENBQUM7SUFFSCxnQ0FBbUIsQ0FBQyxTQUFTLENBQUM7UUFDNUIsS0FBSyxFQUFDO1lBQ0osRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjO1lBQzVCLGFBQWE7WUFDYixNQUFNLEVBQUUsbUJBQVcsQ0FBQyxPQUFPO1lBQzNCLGNBQWMsRUFBRSxLQUFLO1NBQ3RCO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.customerRejectQuoteWorkflow = void 0;
|
|
4
|
+
const core_flows_1 = require("@medusajs/core-flows");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
6
|
+
const update_quotes_1 = require("./steps/update-quotes");
|
|
7
|
+
const validate_quote_not_accepted_1 = require("./steps/validate-quote-not-accepted");
|
|
8
|
+
const quote_status_enum_1 = require("../modules/quote/types/quote-status.enum");
|
|
9
|
+
exports.customerRejectQuoteWorkflow = (0, workflows_sdk_1.createWorkflow)("customer-reject-quote-workflow", (input) => {
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
const { data: quotes } = (0, core_flows_1.useQueryGraphStep)({
|
|
12
|
+
entity: "quote",
|
|
13
|
+
fields: ["id", "status"],
|
|
14
|
+
filters: { id: input.quote_id, customer_id: input.customer_id },
|
|
15
|
+
options: {
|
|
16
|
+
throwIfKeyNotFound: true,
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
(0, validate_quote_not_accepted_1.validateQuoteNotAccepted)({
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
quote: quotes[0]
|
|
22
|
+
});
|
|
23
|
+
(0, update_quotes_1.updateQuotesStep)([
|
|
24
|
+
{
|
|
25
|
+
id: input.quote_id,
|
|
26
|
+
status: quote_status_enum_1.QuoteStatus.CUSTOMER_REJECTED,
|
|
27
|
+
},
|
|
28
|
+
]);
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItcmVqZWN0LXF1b3RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jdXN0b21lci1yZWplY3QtcXVvdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXlEO0FBQ3pELDJEQUF5RDtBQUN6RCx5REFBeUQ7QUFDekQscUZBQStFO0FBQy9FLGdGQUF1RTtBQU8xRCxRQUFBLDJCQUEyQixHQUFHLElBQUEsOEJBQWMsRUFDdkQsZ0NBQWdDLEVBQ2hDLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ3ZCLGFBQWE7SUFDYixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDekMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO1FBQ3hCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFO1FBQy9ELE9BQU8sRUFBRTtZQUNQLGtCQUFrQixFQUFFLElBQUk7U0FDekI7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFBLHNEQUF3QixFQUFDO1FBQ3ZCLGFBQWE7UUFDYixLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUNqQixDQUFDLENBQUM7SUFFSCxJQUFBLGdDQUFnQixFQUFDO1FBQ2Y7WUFDRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDbEIsTUFBTSxFQUFFLCtCQUFXLENBQUMsaUJBQWlCO1NBQ3RDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.merchantRejectQuoteWorkflow = void 0;
|
|
4
|
+
const core_flows_1 = require("@medusajs/core-flows");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
6
|
+
const validate_quote_not_accepted_1 = require("./steps/validate-quote-not-accepted");
|
|
7
|
+
const update_quotes_1 = require("./steps/update-quotes");
|
|
8
|
+
const quote_status_enum_1 = require("../modules/quote/types/quote-status.enum");
|
|
9
|
+
exports.merchantRejectQuoteWorkflow = (0, workflows_sdk_1.createWorkflow)("merchant-reject-quote-workflow", (input) => {
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
const { data: quotes } = (0, core_flows_1.useQueryGraphStep)({
|
|
12
|
+
entity: "quote",
|
|
13
|
+
fields: ["id", "status"],
|
|
14
|
+
filters: { id: input.quote_id },
|
|
15
|
+
options: {
|
|
16
|
+
throwIfKeyNotFound: true,
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
(0, validate_quote_not_accepted_1.validateQuoteNotAccepted)({
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
quote: quotes[0]
|
|
22
|
+
});
|
|
23
|
+
(0, update_quotes_1.updateQuotesStep)([
|
|
24
|
+
{
|
|
25
|
+
id: input.quote_id,
|
|
26
|
+
status: quote_status_enum_1.QuoteStatus.MERCHANT_REJECTED,
|
|
27
|
+
},
|
|
28
|
+
]);
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyY2hhbnQtcmVqZWN0LXF1b3RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tZXJjaGFudC1yZWplY3QtcXVvdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXlEO0FBQ3pELDJEQUF5RDtBQUN6RCxxRkFBK0U7QUFDL0UseURBQXlEO0FBQ3pELGdGQUF1RTtBQU0xRCxRQUFBLDJCQUEyQixHQUFHLElBQUEsOEJBQWMsRUFDdkQsZ0NBQWdDLEVBQ2hDLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ3ZCLGFBQWE7SUFDYixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDekMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO1FBQ3hCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQy9CLE9BQU8sRUFBRTtZQUNQLGtCQUFrQixFQUFFLElBQUk7U0FDekI7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFBLHNEQUF3QixFQUFDO1FBQ3ZCLGFBQWE7UUFDYixLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUNqQixDQUFDLENBQUM7SUFFSCxJQUFBLGdDQUFnQixFQUFDO1FBQ2Y7WUFDRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDbEIsTUFBTSxFQUFFLCtCQUFXLENBQUMsaUJBQWlCO1NBQ3RDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.merchantSendQuoteWorkflow = void 0;
|
|
4
|
+
const core_flows_1 = require("@medusajs/core-flows");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
6
|
+
const update_quotes_1 = require("./steps/update-quotes");
|
|
7
|
+
const validate_quote_not_accepted_1 = require("./steps/validate-quote-not-accepted");
|
|
8
|
+
const quote_status_enum_1 = require("../modules/quote/types/quote-status.enum");
|
|
9
|
+
exports.merchantSendQuoteWorkflow = (0, workflows_sdk_1.createWorkflow)("merchant-send-quote-workflow", (input) => {
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
const { data: quotes } = (0, core_flows_1.useQueryGraphStep)({
|
|
12
|
+
entity: "quote",
|
|
13
|
+
fields: ["id", "status"],
|
|
14
|
+
filters: { id: input.quote_id },
|
|
15
|
+
options: {
|
|
16
|
+
throwIfKeyNotFound: true
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
(0, validate_quote_not_accepted_1.validateQuoteNotAccepted)({
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
quote: quotes[0]
|
|
22
|
+
});
|
|
23
|
+
(0, update_quotes_1.updateQuotesStep)([
|
|
24
|
+
{
|
|
25
|
+
id: input.quote_id,
|
|
26
|
+
status: quote_status_enum_1.QuoteStatus.PENDING_CUSTOMER,
|
|
27
|
+
},
|
|
28
|
+
]);
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyY2hhbnQtc2VuZC1xdW90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbWVyY2hhbnQtc2VuZC1xdW90ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBeUQ7QUFDekQsMkRBQXlEO0FBQ3pELHlEQUF5RDtBQUN6RCxxRkFBK0U7QUFDL0UsZ0ZBQXVFO0FBTTFELFFBQUEseUJBQXlCLEdBQUcsSUFBQSw4QkFBYyxFQUNyRCw4QkFBOEIsRUFDOUIsQ0FBQyxLQUFvQixFQUFFLEVBQUU7SUFDdkIsYUFBYTtJQUNiLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN6QyxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7UUFDeEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUU7UUFDL0IsT0FBTyxFQUFFO1lBQ1Asa0JBQWtCLEVBQUUsSUFBSTtTQUN6QjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUEsc0RBQXdCLEVBQUM7UUFDdkIsYUFBYTtRQUNiLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ2pCLENBQUMsQ0FBQTtJQUVGLElBQUEsZ0NBQWdCLEVBQUM7UUFDZjtZQUNFLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUNsQixNQUFNLEVBQUUsK0JBQVcsQ0FBQyxnQkFBZ0I7U0FDckM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createQuotesStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const quote_1 = require("../../modules/quote");
|
|
6
|
+
exports.createQuotesStep = (0, workflows_sdk_1.createStep)("create-quotes", async (input, { container }) => {
|
|
7
|
+
const quoteModuleService = container.resolve(quote_1.QUOTE_MODULE);
|
|
8
|
+
const quotes = await quoteModuleService.createQuotes(input);
|
|
9
|
+
return new workflows_sdk_1.StepResponse(quotes, quotes.map((quote) => quote.id));
|
|
10
|
+
}, async (quoteIds, { container }) => {
|
|
11
|
+
if (!quoteIds) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const quoteModuleService = container.resolve(quote_1.QUOTE_MODULE);
|
|
15
|
+
await quoteModuleService.deleteQuotes(quoteIds);
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXF1b3Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvY3JlYXRlLXF1b3Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkU7QUFDN0UsK0NBQW1EO0FBVXRDLFFBQUEsZ0JBQWdCLEdBQUcsSUFBQSwwQkFBVSxFQUN4QyxlQUFlLEVBQ2YsS0FBSyxFQUFFLEtBQWdCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sa0JBQWtCLEdBQXVCLFNBQVMsQ0FBQyxPQUFPLENBQzlELG9CQUFZLENBQ2IsQ0FBQztJQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTVELE9BQU8sSUFBSSw0QkFBWSxDQUNyQixNQUFNLEVBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0FBQ0osQ0FBQyxFQUNELEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ2hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxrQkFBa0IsR0FBdUIsU0FBUyxDQUFDLE9BQU8sQ0FDOUQsb0JBQVksQ0FDYixDQUFDO0lBRUYsTUFBTSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateQuotesStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const quote_1 = require("../../modules/quote");
|
|
6
|
+
exports.updateQuotesStep = (0, workflows_sdk_1.createStep)("update-quotes", async (data, { container }) => {
|
|
7
|
+
const quoteModuleService = container.resolve(quote_1.QUOTE_MODULE);
|
|
8
|
+
const dataBeforeUpdate = await quoteModuleService.listQuotes({ id: data.map((d) => d.id) });
|
|
9
|
+
const updatedQuotes = await quoteModuleService.updateQuotes(data);
|
|
10
|
+
return new workflows_sdk_1.StepResponse(updatedQuotes, {
|
|
11
|
+
dataBeforeUpdate,
|
|
12
|
+
});
|
|
13
|
+
}, async (revertInput, { container }) => {
|
|
14
|
+
if (!revertInput) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const quoteModuleService = container.resolve(quote_1.QUOTE_MODULE);
|
|
18
|
+
await quoteModuleService.updateQuotes(revertInput.dataBeforeUpdate);
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXF1b3Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvdXBkYXRlLXF1b3Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkU7QUFDN0UsK0NBQW1EO0FBU3RDLFFBQUEsZ0JBQWdCLEdBQUcsSUFBQSwwQkFBVSxFQUN4QyxlQUFlLEVBQ2YsS0FBSyxFQUFFLElBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdkMsTUFBTSxrQkFBa0IsR0FBdUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBWSxDQUFDLENBQUM7SUFFL0UsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFVBQVUsQ0FDMUQsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQzlCLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVsRSxPQUFPLElBQUksNEJBQVksQ0FBQyxhQUFhLEVBQUU7UUFDckMsZ0JBQWdCO0tBQ2pCLENBQUMsQ0FBQztBQUNMLENBQUMsRUFDRCxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNuQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLGtCQUFrQixHQUF1QixTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsQ0FBQztJQUUvRSxNQUFNLGtCQUFrQixDQUFDLFlBQVksQ0FDbkMsV0FBVyxDQUFDLGdCQUFnQixDQUM3QixDQUFDO0FBQ0osQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateQuoteCanAcceptStep = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const quote_status_enum_1 = require("../../modules/quote/types/quote-status.enum");
|
|
7
|
+
exports.validateQuoteCanAcceptStep = (0, workflows_sdk_1.createStep)("validate-quote-can-accept", async function ({ quote }) {
|
|
8
|
+
if (quote.status !== quote_status_enum_1.QuoteStatus.PENDING_CUSTOMER) {
|
|
9
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Cannot accept quote when quote status is ${quote.status}`);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcXVvdGUtY2FuLWFjY2VwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvdmFsaWRhdGUtcXVvdGUtY2FuLWFjY2VwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBd0Q7QUFDeEQscUVBQStEO0FBRy9ELG1GQUEwRTtBQU03RCxRQUFBLDBCQUEwQixHQUFHLElBQUEsMEJBQVUsRUFDbEQsMkJBQTJCLEVBQzNCLEtBQUssV0FBVyxFQUFFLEtBQUssRUFBYTtJQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssK0JBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDRDQUE0QyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQzNELENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateQuoteNotAccepted = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const quote_status_enum_1 = require("../../modules/quote/types/quote-status.enum");
|
|
7
|
+
exports.validateQuoteNotAccepted = (0, workflows_sdk_1.createStep)("validate-quote-not-accepted", async function ({ quote }) {
|
|
8
|
+
if (quote.status === quote_status_enum_1.QuoteStatus.ACCEPTED) {
|
|
9
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Quote is already accepted by customer`);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcXVvdGUtbm90LWFjY2VwdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy92YWxpZGF0ZS1xdW90ZS1ub3QtYWNjZXB0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXdEO0FBQ3hELHFFQUErRDtBQUcvRCxtRkFBMEU7QUFNN0QsUUFBQSx3QkFBd0IsR0FBRyxJQUFBLDBCQUFVLEVBQ2hELDZCQUE2QixFQUM3QixLQUFLLFdBQVcsRUFBRSxLQUFLLEVBQWE7SUFDbEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLCtCQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsdUNBQXVDLENBQ3hDLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUMifQ==
|
package/README.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Medusa v2 Example: Quote Management
|
|
2
|
+
|
|
3
|
+
This directory holds the code for the [Quote Management Guide](https://docs.medusajs.com/resources/examples/guides/quote-management).
|
|
4
|
+
|
|
5
|
+
You can either:
|
|
6
|
+
|
|
7
|
+
- [install and use it as a Medusa application](#installation);
|
|
8
|
+
- or [copy its source files into an existing Medusa application](#copy-into-existing-medusa-application).
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
- [Node.js v20+](https://nodejs.org/en/download)
|
|
13
|
+
- [Git CLI](https://git-scm.com/downloads)
|
|
14
|
+
- [PostgreSQL](https://www.postgresql.org/download/)
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
### Copy into Existing Medusa Application
|
|
18
|
+
|
|
19
|
+
If you have an existing Medusa application, copy the following directories and files into your project:
|
|
20
|
+
|
|
21
|
+
- `src/admin`
|
|
22
|
+
- `src/api`
|
|
23
|
+
- `src/links`
|
|
24
|
+
- `src/modules/quotes`
|
|
25
|
+
- `src/workflows`
|
|
26
|
+
|
|
27
|
+
Then, add the Quote Module to `medusa-config.ts`:
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
module.exports = defineConfig({
|
|
31
|
+
// ...
|
|
32
|
+
modules: [
|
|
33
|
+
{
|
|
34
|
+
resolve: "./src/modules/quote",
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
})
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
install dependencies
|
|
41
|
+
```bash
|
|
42
|
+
yarn add lucide-react
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Finally, run migrations:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx medusa db:migrate
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## More Resources
|
|
52
|
+
|
|
53
|
+
- [Medusa Documentatin](https://docs.medusajs.com)
|
|
54
|
+
- [OpenAPI Spec file](https://res.cloudinary.com/dza7lstvk/raw/upload/v1741171875/OpenApi/quote-management_tbk552.yml): Can be imported into tools like Postman to view and send requests to this project's API routes.
|
package/package.json
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lodashventure/medusa-quotation",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "A starter for Medusa plugins.",
|
|
5
|
+
"author": "Medusa (https://medusajs.com)",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"files": [
|
|
8
|
+
".medusa/server"
|
|
9
|
+
],
|
|
10
|
+
"exports": {
|
|
11
|
+
"./package.json": "./package.json",
|
|
12
|
+
"./workflows": "./.medusa/server/src/workflows/index.js",
|
|
13
|
+
"./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
14
|
+
"./modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
15
|
+
"./providers/*": "./.medusa/server/src/providers/*/index.js",
|
|
16
|
+
"./admin": "./.medusa/server/src/admin/index.mjs",
|
|
17
|
+
"./*": "./.medusa/server/src/*.js"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"medusa",
|
|
21
|
+
"plugin",
|
|
22
|
+
"medusa-plugin-other",
|
|
23
|
+
"medusa-plugin",
|
|
24
|
+
"medusa-v2"
|
|
25
|
+
],
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "medusa plugin:build",
|
|
28
|
+
"dev": "medusa plugin:develop",
|
|
29
|
+
"prepublishOnly": "medusa plugin:build"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@medusajs/admin-sdk": "2.10.0",
|
|
33
|
+
"@medusajs/cli": "2.10.0",
|
|
34
|
+
"@medusajs/framework": "2.10.0",
|
|
35
|
+
"@medusajs/icons": "^2.10.0",
|
|
36
|
+
"@medusajs/medusa": "2.10.0",
|
|
37
|
+
"@medusajs/test-utils": "2.10.0",
|
|
38
|
+
"@medusajs/ui": "4.0.4",
|
|
39
|
+
"@mikro-orm/cli": "6.4.3",
|
|
40
|
+
"@mikro-orm/core": "6.4.3",
|
|
41
|
+
"@mikro-orm/knex": "6.4.3",
|
|
42
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
43
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
44
|
+
"@swc/core": "1.5.7",
|
|
45
|
+
"@types/lodash": "^4",
|
|
46
|
+
"@types/node": "^20.0.0",
|
|
47
|
+
"@types/pdfmake": "^0",
|
|
48
|
+
"@types/react": "^18.3.2",
|
|
49
|
+
"@types/react-dom": "^18.2.25",
|
|
50
|
+
"awilix": "^8.0.1",
|
|
51
|
+
"pg": "^8.13.0",
|
|
52
|
+
"prop-types": "^15.8.1",
|
|
53
|
+
"react": "^18.2.0",
|
|
54
|
+
"react-dom": "^18.2.0",
|
|
55
|
+
"ts-node": "^10.9.2",
|
|
56
|
+
"typescript": "^5.6.2",
|
|
57
|
+
"vite": "^5.2.11",
|
|
58
|
+
"yalc": "^1.0.0-pre.53"
|
|
59
|
+
},
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"@medusajs/admin-sdk": "2.10.0",
|
|
62
|
+
"@medusajs/cli": "2.10.0",
|
|
63
|
+
"@medusajs/framework": "2.10.0",
|
|
64
|
+
"@medusajs/icons": "^2.10.0",
|
|
65
|
+
"@medusajs/medusa": "2.10.0",
|
|
66
|
+
"@medusajs/test-utils": "2.10.0",
|
|
67
|
+
"@medusajs/ui": "4.0.3",
|
|
68
|
+
"@medusajs/js-sdk": "*",
|
|
69
|
+
"@tanstack/react-query": "*",
|
|
70
|
+
"@mikro-orm/cli": "6.4.3",
|
|
71
|
+
"@mikro-orm/core": "6.4.3",
|
|
72
|
+
"@mikro-orm/knex": "6.4.3",
|
|
73
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
74
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
75
|
+
"awilix": "^8.0.1",
|
|
76
|
+
"pg": "^8.13.0"
|
|
77
|
+
},
|
|
78
|
+
"engines": {
|
|
79
|
+
"node": ">=20"
|
|
80
|
+
},
|
|
81
|
+
"dependencies": {
|
|
82
|
+
"lodash": "^4.17.21",
|
|
83
|
+
"lucide-react": "^0.487.0",
|
|
84
|
+
"pdfmake": "^0.2.18"
|
|
85
|
+
}
|
|
86
|
+
}
|