@medusajs/core-flows 2.8.4-snapshot-20250523144829 → 2.8.4
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/dist/cart/steps/update-carts.d.ts.map +1 -1
- package/dist/cart/steps/update-carts.js +12 -1
- package/dist/cart/steps/update-carts.js.map +1 -1
- package/dist/cart/workflows/complete-cart.d.ts +2 -10
- package/dist/cart/workflows/complete-cart.d.ts.map +1 -1
- package/dist/cart/workflows/complete-cart.js +29 -16
- package/dist/cart/workflows/complete-cart.js.map +1 -1
- package/dist/draft-order/steps/delete-draft-order.d.ts +15 -0
- package/dist/draft-order/steps/delete-draft-order.d.ts.map +1 -0
- package/dist/draft-order/steps/delete-draft-order.js +14 -0
- package/dist/draft-order/steps/delete-draft-order.js.map +1 -0
- package/dist/draft-order/steps/index.d.ts +1 -0
- package/dist/draft-order/steps/index.d.ts.map +1 -1
- package/dist/draft-order/steps/index.js +1 -0
- package/dist/draft-order/steps/index.js.map +1 -1
- package/dist/draft-order/workflows/confirm-draft-order-edit.d.ts.map +1 -1
- package/dist/draft-order/workflows/confirm-draft-order-edit.js +13 -16
- package/dist/draft-order/workflows/confirm-draft-order-edit.js.map +1 -1
- package/dist/draft-order/workflows/delete-draft-order.d.ts +31 -0
- package/dist/draft-order/workflows/delete-draft-order.d.ts.map +1 -0
- package/dist/draft-order/workflows/delete-draft-order.js +53 -0
- package/dist/draft-order/workflows/delete-draft-order.js.map +1 -0
- package/dist/draft-order/workflows/index.d.ts +1 -0
- package/dist/draft-order/workflows/index.d.ts.map +1 -1
- package/dist/draft-order/workflows/index.js +1 -0
- package/dist/draft-order/workflows/index.js.map +1 -1
- package/dist/file/steps/upload-files.d.ts +2 -2
- package/dist/file/steps/upload-files.js +1 -1
- package/dist/file/workflows/upload-files.d.ts +2 -2
- package/dist/file/workflows/upload-files.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/locking/acquire-lock.d.ts +23 -0
- package/dist/locking/acquire-lock.d.ts.map +1 -0
- package/dist/locking/acquire-lock.js +61 -0
- package/dist/locking/acquire-lock.js.map +1 -0
- package/dist/locking/index.d.ts +3 -0
- package/dist/locking/index.d.ts.map +1 -0
- package/dist/locking/index.js +19 -0
- package/dist/locking/index.js.map +1 -0
- package/dist/locking/release-lock.d.ts +19 -0
- package/dist/locking/release-lock.d.ts.map +1 -0
- package/dist/locking/release-lock.js +31 -0
- package/dist/locking/release-lock.js.map +1 -0
- package/dist/order/workflows/order-edit/confirm-order-edit-request.d.ts.map +1 -1
- package/dist/order/workflows/order-edit/confirm-order-edit-request.js +13 -13
- package/dist/order/workflows/order-edit/confirm-order-edit-request.js.map +1 -1
- package/dist/payment/steps/complete-cart-after-payment.d.ts +15 -0
- package/dist/payment/steps/complete-cart-after-payment.d.ts.map +1 -0
- package/dist/payment/steps/complete-cart-after-payment.js +20 -0
- package/dist/payment/steps/complete-cart-after-payment.js.map +1 -0
- package/dist/payment/workflows/process-payment.d.ts.map +1 -1
- package/dist/payment/workflows/process-payment.js +4 -6
- package/dist/payment/workflows/process-payment.js.map +1 -1
- package/dist/product/steps/normalize-products-to-chunks.d.ts +5 -1
- package/dist/product/steps/normalize-products-to-chunks.d.ts.map +1 -1
- package/dist/product/steps/normalize-products-to-chunks.js +130 -19
- package/dist/product/steps/normalize-products-to-chunks.js.map +1 -1
- package/dist/product/steps/normalize-products.js +1 -1
- package/dist/product/steps/normalize-products.js.map +1 -1
- package/dist/product/steps/process-import-chunks.d.ts +3 -1
- package/dist/product/steps/process-import-chunks.d.ts.map +1 -1
- package/dist/product/steps/process-import-chunks.js +15 -5
- package/dist/product/steps/process-import-chunks.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
@@ -0,0 +1,61 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.acquireLockStep = exports.acquireLockStepId = void 0;
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
6
|
+
const promises_1 = require("timers/promises");
|
7
|
+
exports.acquireLockStepId = "acquire-lock-step";
|
8
|
+
/**
|
9
|
+
* This step acquires a lock for a given key.
|
10
|
+
*
|
11
|
+
* @example
|
12
|
+
* const data = acquireLockStep({
|
13
|
+
* "key": "my-lock-key",
|
14
|
+
* "ttl": 60
|
15
|
+
* })
|
16
|
+
*/
|
17
|
+
exports.acquireLockStep = (0, workflows_sdk_1.createStep)(exports.acquireLockStepId, async (data, { container }) => {
|
18
|
+
const keys = Array.isArray(data.key)
|
19
|
+
? data.key
|
20
|
+
: (0, utils_1.isDefined)(data.key)
|
21
|
+
? [data.key]
|
22
|
+
: [];
|
23
|
+
if (!keys.length) {
|
24
|
+
return new workflows_sdk_1.StepResponse(void 0);
|
25
|
+
}
|
26
|
+
const locking = container.resolve(utils_1.Modules.LOCKING);
|
27
|
+
const retryInterval = data.retryInterval ?? 0.3;
|
28
|
+
const tryUntil = Date.now() + (data.timeout ?? 0) * 1000;
|
29
|
+
while (true) {
|
30
|
+
try {
|
31
|
+
await locking.acquire(data.key, {
|
32
|
+
expire: data.ttl,
|
33
|
+
ownerId: data.ownerId,
|
34
|
+
provider: data.provider,
|
35
|
+
});
|
36
|
+
break;
|
37
|
+
}
|
38
|
+
catch (e) {
|
39
|
+
if (Date.now() >= tryUntil) {
|
40
|
+
throw e;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
await (0, promises_1.setTimeout)(retryInterval * 1000);
|
44
|
+
}
|
45
|
+
return new workflows_sdk_1.StepResponse(void 0, {
|
46
|
+
keys,
|
47
|
+
ownerId: data.ownerId,
|
48
|
+
provider: data.provider,
|
49
|
+
});
|
50
|
+
}, async (data, { container }) => {
|
51
|
+
if (!data?.keys?.length) {
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
const locking = container.resolve(utils_1.Modules.LOCKING);
|
55
|
+
await locking.release(data.keys, {
|
56
|
+
ownerId: data.ownerId,
|
57
|
+
provider: data.provider,
|
58
|
+
});
|
59
|
+
return new workflows_sdk_1.StepResponse();
|
60
|
+
});
|
61
|
+
//# sourceMappingURL=acquire-lock.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"acquire-lock.js","sourceRoot":"","sources":["../../src/locking/acquire-lock.ts"],"names":[],"mappings":";;;AAAA,qDAA8D;AAC9D,qEAA4E;AAC5E,8CAA4C;AAc/B,QAAA,iBAAiB,GAAG,mBAAmB,CAAA;AACpD;;;;;;;;GAQG;AACU,QAAA,eAAe,GAAG,IAAA,0BAAU,EACvC,yBAAiB,EACjB,KAAK,EAAE,IAA0B,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,GAAG;QACV,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAI,CAAC,GAAG,CAAC;YACrB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACZ,CAAC,CAAC,EAAE,CAAA;IAEN,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,IAAI,4BAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,eAAO,CAAC,OAAO,CAAC,CAAA;IAElD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,GAAG,CAAA;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;IAExD,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC9B,MAAM,EAAE,IAAI,CAAC,GAAG;gBAChB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAA;YACF,MAAK;QACP,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC;QAED,MAAM,IAAA,qBAAU,EAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,IAAI,4BAAY,CAAC,KAAK,CAAC,EAAE;QAC9B,IAAI;QACJ,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAA;AACJ,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAC5B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACxB,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,eAAO,CAAC,OAAO,CAAC,CAAA;IAElD,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;QAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAA;IAEF,OAAO,IAAI,4BAAY,EAAE,CAAA;AAC3B,CAAC,CACF,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locking/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./acquire-lock"), exports);
|
18
|
+
__exportStar(require("./release-lock"), exports);
|
19
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locking/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,iDAA8B"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/**
|
2
|
+
* The locked keys to be released
|
3
|
+
*/
|
4
|
+
export interface ReleaseLockStepInput {
|
5
|
+
key: string | string[];
|
6
|
+
ownerId?: string;
|
7
|
+
provider?: string;
|
8
|
+
}
|
9
|
+
export declare const releaseLockStepId = "release-lock-step";
|
10
|
+
/**
|
11
|
+
* This step releases a lock for a given key.
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* const data = releaseLockStep({
|
15
|
+
* "key": "my-lock-key"
|
16
|
+
* })
|
17
|
+
*/
|
18
|
+
export declare const releaseLockStep: import("@medusajs/framework/workflows-sdk").StepFunction<ReleaseLockStepInput, boolean>;
|
19
|
+
//# sourceMappingURL=release-lock.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"release-lock.d.ts","sourceRoot":"","sources":["../../src/locking/release-lock.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AACpD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,yFAqB3B,CAAA"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.releaseLockStep = exports.releaseLockStepId = void 0;
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
6
|
+
exports.releaseLockStepId = "release-lock-step";
|
7
|
+
/**
|
8
|
+
* This step releases a lock for a given key.
|
9
|
+
*
|
10
|
+
* @example
|
11
|
+
* const data = releaseLockStep({
|
12
|
+
* "key": "my-lock-key"
|
13
|
+
* })
|
14
|
+
*/
|
15
|
+
exports.releaseLockStep = (0, workflows_sdk_1.createStep)(exports.releaseLockStepId, async (data, { container }) => {
|
16
|
+
const keys = Array.isArray(data.key)
|
17
|
+
? data.key
|
18
|
+
: (0, utils_1.isDefined)(data.key)
|
19
|
+
? [data.key]
|
20
|
+
: [];
|
21
|
+
if (!keys.length) {
|
22
|
+
return new workflows_sdk_1.StepResponse(true);
|
23
|
+
}
|
24
|
+
const locking = container.resolve(utils_1.Modules.LOCKING);
|
25
|
+
const released = await locking.release(keys, {
|
26
|
+
ownerId: data.ownerId,
|
27
|
+
provider: data.provider,
|
28
|
+
});
|
29
|
+
return new workflows_sdk_1.StepResponse(released);
|
30
|
+
});
|
31
|
+
//# sourceMappingURL=release-lock.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"release-lock.js","sourceRoot":"","sources":["../../src/locking/release-lock.ts"],"names":[],"mappings":";;;AAAA,qDAA8D;AAC9D,qEAA4E;AAW/D,QAAA,iBAAiB,GAAG,mBAAmB,CAAA;AACpD;;;;;;;GAOG;AACU,QAAA,eAAe,GAAG,IAAA,0BAAU,EACvC,yBAAiB,EACjB,KAAK,EAAE,IAA0B,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,GAAG;QACV,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAI,CAAC,GAAG,CAAC;YACrB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACZ,CAAC,CAAC,EAAE,CAAA;IAEN,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,IAAI,4BAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,eAAO,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;QAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAA;IAEF,OAAO,IAAI,4BAAY,CAAC,QAAQ,CAAC,CAAA;AACnC,CAAC,CACF,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"confirm-order-edit-request.d.ts","sourceRoot":"","sources":["../../../../src/order/workflows/order-edit/confirm-order-edit-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,QAAQ,EACR,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAyBlC;;GAEG;AACH,MAAM,MAAM,0CAA0C,GAAG;IACvD;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,cAAc,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,qCAAqC,+GASjD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oCAAoC,GAAG;IACjD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,iCAAiC,+BAA+B,CAAA;AAC7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,+BAA+B,
|
1
|
+
{"version":3,"file":"confirm-order-edit-request.d.ts","sourceRoot":"","sources":["../../../../src/order/workflows/order-edit/confirm-order-edit-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,QAAQ,EACR,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAyBlC;;GAEG;AACH,MAAM,MAAM,0CAA0C,GAAG;IACvD;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,cAAc,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,qCAAqC,+GASjD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oCAAoC,GAAG;IACjD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,iCAAiC,+BAA+B,CAAA;AAC7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,+BAA+B,uHAgM3C,CAAA"}
|
@@ -129,15 +129,13 @@ exports.confirmOrderEditRequestWorkflow = (0, workflows_sdk_1.createWorkflow)(ex
|
|
129
129
|
list: false,
|
130
130
|
throw_if_key_not_found: true,
|
131
131
|
}).config({ name: "order-items-query" });
|
132
|
-
const
|
133
|
-
const previousItemIds = (data.previousOrderItems || []).map(({ id }) => id); // items that have been removed with the change
|
134
|
-
const newItemIds = data.orderItems.items.map(({ id }) => id);
|
135
|
-
return [...new Set([...previousItemIds, ...newItemIds])];
|
136
|
-
});
|
137
|
-
(0, reservation_1.deleteReservationsByLineItemsStep)(lineItemIds);
|
138
|
-
const { variants, items } = (0, workflows_sdk_1.transform)({ orderItems, orderPreview }, ({ orderItems, orderPreview }) => {
|
132
|
+
const { variants, items, toRemoveReservationLineItemIds } = (0, workflows_sdk_1.transform)({ orderItems, previousOrderItems: order.items, orderPreview }, ({ orderItems, previousOrderItems, orderPreview }) => {
|
139
133
|
const allItems = [];
|
140
134
|
const allVariants = [];
|
135
|
+
const previousItemIds = (previousOrderItems || []).map(({ id }) => id);
|
136
|
+
const currentItemIds = orderItems.items.map(({ id }) => id);
|
137
|
+
const removedItemIds = previousItemIds.filter((id) => !currentItemIds.includes(id));
|
138
|
+
const updatedItemIds = [];
|
141
139
|
orderItems.items.forEach((ordItem) => {
|
142
140
|
const itemAction = orderPreview.items?.find((item) => item.id === ordItem.id &&
|
143
141
|
item.actions?.find((a) => a.action === utils_1.ChangeActionType.ITEM_ADD ||
|
@@ -149,13 +147,10 @@ exports.confirmOrderEditRequestWorkflow = (0, workflows_sdk_1.createWorkflow)(ex
|
|
149
147
|
const compareAtUnitPrice = itemAction.raw_compare_at_unit_price ??
|
150
148
|
itemAction.compare_at_unit_price;
|
151
149
|
const updateAction = itemAction.actions.find((a) => a.action === utils_1.ChangeActionType.ITEM_UPDATE);
|
152
|
-
|
153
|
-
|
154
|
-
? utils_1.MathBN.sub(quantity, ordItem.raw_quantity)
|
155
|
-
: quantity;
|
156
|
-
if (utils_1.MathBN.lte(newQuantity, 0)) {
|
157
|
-
return;
|
150
|
+
if (updateAction) {
|
151
|
+
updatedItemIds.push(ordItem.id);
|
158
152
|
}
|
153
|
+
const newQuantity = itemAction.raw_quantity ?? itemAction.quantity;
|
159
154
|
const reservationQuantity = utils_1.MathBN.sub(newQuantity, ordItem.raw_fulfilled_quantity);
|
160
155
|
allItems.push({
|
161
156
|
id: ordItem.id,
|
@@ -169,6 +164,10 @@ exports.confirmOrderEditRequestWorkflow = (0, workflows_sdk_1.createWorkflow)(ex
|
|
169
164
|
return {
|
170
165
|
variants: allVariants,
|
171
166
|
items: allItems,
|
167
|
+
toRemoveReservationLineItemIds: [
|
168
|
+
...removedItemIds,
|
169
|
+
...updatedItemIds,
|
170
|
+
],
|
172
171
|
};
|
173
172
|
});
|
174
173
|
const formatedInventoryItems = (0, workflows_sdk_1.transform)({
|
@@ -178,6 +177,7 @@ exports.confirmOrderEditRequestWorkflow = (0, workflows_sdk_1.createWorkflow)(ex
|
|
178
177
|
items,
|
179
178
|
},
|
180
179
|
}, prepare_confirm_inventory_input_1.prepareConfirmInventoryInput);
|
180
|
+
(0, reservation_1.deleteReservationsByLineItemsStep)(toRemoveReservationLineItemIds);
|
181
181
|
(0, reserve_inventory_1.reserveInventoryStep)(formatedInventoryItems);
|
182
182
|
create_or_update_order_payment_collection_1.createOrUpdateOrderPaymentCollectionWorkflow.runAsStep({
|
183
183
|
input: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"confirm-order-edit-request.js","sourceRoot":"","sources":["../../../../src/order/workflows/order-edit/confirm-order-edit-request.ts"],"names":[],"mappings":";;;AAMA,qDAKkC;AAClC,qEAK0C;AAC1C,6EAA4E;AAC5E,yGAAkG;AAClG,4CAAmE;AACnE,sDAAwE;AACxE,uCAAoD;AACpD,6EAAuE;AACvE,mEAGqC;AACrC,4GAA2G;AAgB3G;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACU,QAAA,qCAAqC,GAAG,IAAA,0BAAU,EAC7D,qCAAqC,EACrC,KAAK,WAAW,EACd,KAAK,EACL,WAAW,GACgC;IAC3C,IAAA,qCAAkB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAClC,IAAA,gDAA6B,EAAC,EAAE,WAAW,EAAE,CAAC,CAAA;AAChD,CAAC,CACF,CAAA;AAgBY,QAAA,iCAAiC,GAAG,4BAA4B,CAAA;AAC7E;;;;;;;;;;;;;;;;;;GAkBG;AACU,QAAA,+BAA+B,GAAG,IAAA,8BAAc,EAC3D,yCAAiC,EACjC,UACE,KAA2C;IAE3C,MAAM,KAAK,GAAa,IAAA,2BAAkB,EAAC;QACzC,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE;YACN,IAAI;YACJ,SAAS;YACT,aAAa;YACb,UAAU;YACV,aAAa;YACb,qBAAqB;YACrB,mBAAmB;YACnB,uBAAuB;YACvB,oBAAoB;SACrB;QACD,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE;QACjC,IAAI,EAAE,KAAK;QACX,sBAAsB,EAAE,IAAI;KAC7B,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;IAElC,MAAM,WAAW,GAAmB,IAAA,2BAAkB,EAAC;QACrD,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE;YACN,IAAI;YACJ,QAAQ;YACR,YAAY;YACZ,kBAAkB;YAClB,mBAAmB;YACnB,gBAAgB;YAChB,iBAAiB;YACjB,mBAAmB;YACnB,sBAAsB;YACtB,uBAAuB;SACxB;QACD,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,CAAC,yBAAiB,CAAC,OAAO,EAAE,yBAAiB,CAAC,SAAS,CAAC;aACjE;SACF;QACD,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAA;IAEzC,IAAA,6CAAqC,EAAC;QACpC,KAAK;QACL,WAAW;KACZ,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,IAAA,8BAAsB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAErD,IAAA,2CAAmB,EAAC;QAClB,OAAO,EAAE,CAAC,WAAW,CAAC;QACtB,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,IAAA,2BAAkB,EAAC;QACpC,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE;YACN,IAAI;YACJ,SAAS;YACT,aAAa;YACb,kBAAkB;YAClB,SAAS;YACT,gCAAgC;YAChC,+BAA+B;YAC/B,iDAAiD;YACjD,iDAAiD;YACjD,4EAA4E;YAC5E,8EAA8E;YAC9E,2FAA2F;YAC3F,6FAA6F;SAC9F;QACD,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE;QACjC,IAAI,EAAE,KAAK;QACX,sBAAsB,EAAE,IAAI;KAC7B,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAExC,MAAM,
|
1
|
+
{"version":3,"file":"confirm-order-edit-request.js","sourceRoot":"","sources":["../../../../src/order/workflows/order-edit/confirm-order-edit-request.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/**
|
2
|
+
* The data to complete a cart after a payment is captured.
|
3
|
+
*/
|
4
|
+
export type CompleteCartAfterPaymentStepInput = {
|
5
|
+
/**
|
6
|
+
* The ID of the cart to complete.
|
7
|
+
*/
|
8
|
+
cart_id: string;
|
9
|
+
};
|
10
|
+
export declare const completeCartAfterPaymentStepId = "complete-cart-after-payment-step";
|
11
|
+
/**
|
12
|
+
* This step completes a cart after a payment is captured.
|
13
|
+
*/
|
14
|
+
export declare const completeCartAfterPaymentStep: import("@medusajs/framework/workflows-sdk").StepFunction<CompleteCartAfterPaymentStepInput, unknown>;
|
15
|
+
//# sourceMappingURL=complete-cart-after-payment.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"complete-cart-after-payment.d.ts","sourceRoot":"","sources":["../../../src/payment/steps/complete-cart-after-payment.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,iCAAiC,GAAG;IAC9C;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,8BAA8B,qCAAqC,CAAA;AAChF;;GAEG;AACH,eAAO,MAAM,4BAA4B,sGAYxC,CAAA"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.completeCartAfterPaymentStep = exports.completeCartAfterPaymentStepId = void 0;
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
6
|
+
const complete_cart_1 = require("../../cart/workflows/complete-cart");
|
7
|
+
exports.completeCartAfterPaymentStepId = "complete-cart-after-payment-step";
|
8
|
+
/**
|
9
|
+
* This step completes a cart after a payment is captured.
|
10
|
+
*/
|
11
|
+
exports.completeCartAfterPaymentStep = (0, workflows_sdk_1.createStep)(exports.completeCartAfterPaymentStepId, async (input, { container }) => {
|
12
|
+
const workflowEngine = container.resolve(utils_1.Modules.WORKFLOW_ENGINE);
|
13
|
+
await workflowEngine.run(complete_cart_1.completeCartWorkflowId, {
|
14
|
+
input: {
|
15
|
+
id: input.cart_id,
|
16
|
+
},
|
17
|
+
transactionId: input.cart_id,
|
18
|
+
});
|
19
|
+
});
|
20
|
+
//# sourceMappingURL=complete-cart-after-payment.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"complete-cart-after-payment.js","sourceRoot":"","sources":["../../../src/payment/steps/complete-cart-after-payment.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AACnD,qEAA8D;AAC9D,sEAA2E;AAY9D,QAAA,8BAA8B,GAAG,kCAAkC,CAAA;AAChF;;GAEG;AACU,QAAA,4BAA4B,GAAG,IAAA,0BAAU,EACpD,sCAA8B,EAC9B,KAAK,EAAE,KAAwC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAChE,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,eAAO,CAAC,eAAe,CAAC,CAAA;IAEjE,MAAM,cAAc,CAAC,GAAG,CAAC,sCAAsB,EAAE;QAC/C,KAAK,EAAE;YACL,EAAE,EAAE,KAAK,CAAC,OAAO;SAClB;QACD,aAAa,EAAE,KAAK,CAAC,OAAO;KAC7B,CAAC,CAAA;AACJ,CAAC,CACF,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"process-payment.d.ts","sourceRoot":"","sources":["../../../src/payment/workflows/process-payment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAQrD;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;CAAG;AAE3E,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,sBAAsB,+
|
1
|
+
{"version":3,"file":"process-payment.d.ts","sourceRoot":"","sources":["../../../src/payment/workflows/process-payment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAQrD;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;CAAG;AAE3E,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,sBAAsB,+FAsGlC,CAAA"}
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.processPaymentWorkflow = exports.processPaymentWorkflowId = void 0;
|
4
4
|
const utils_1 = require("@medusajs/utils");
|
5
5
|
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
6
|
-
const complete_cart_1 = require("../../cart/workflows/complete-cart");
|
7
6
|
const common_1 = require("../../common");
|
8
7
|
const steps_1 = require("../steps");
|
8
|
+
const complete_cart_after_payment_1 = require("../steps/complete-cart-after-payment");
|
9
9
|
const capture_payment_1 = require("./capture-payment");
|
10
10
|
exports.processPaymentWorkflowId = "process-payment-workflow";
|
11
11
|
/**
|
@@ -108,11 +108,9 @@ exports.processPaymentWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.pro
|
|
108
108
|
(0, workflows_sdk_1.when)({ cartPaymentCollection }, ({ cartPaymentCollection }) => {
|
109
109
|
return !!cartPaymentCollection.data.length;
|
110
110
|
}).then(() => {
|
111
|
-
|
112
|
-
.
|
113
|
-
|
114
|
-
})
|
115
|
-
.config({
|
111
|
+
(0, complete_cart_after_payment_1.completeCartAfterPaymentStep)({
|
112
|
+
cart_id: cartPaymentCollection.data[0].cart_id,
|
113
|
+
}).config({
|
116
114
|
continueOnPermanentFailure: true, // Continue payment processing even if cart completion fails
|
117
115
|
});
|
118
116
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"process-payment.js","sourceRoot":"","sources":["../../../src/payment/workflows/process-payment.ts"],"names":[],"mappings":";;;AACA,2CAAgD;AAChD,2DAA8D;AAC9D,
|
1
|
+
{"version":3,"file":"process-payment.js","sourceRoot":"","sources":["../../../src/payment/workflows/process-payment.ts"],"names":[],"mappings":"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"}
|
@@ -11,7 +11,11 @@ export declare const normalizeCsvToChunksStepId = "normalize-product-csv-to-chun
|
|
11
11
|
* const data = normalizeCsvToChunksStep("products.csv")
|
12
12
|
*/
|
13
13
|
export declare const normalizeCsvToChunksStep: import("@medusajs/framework/workflows-sdk").StepFunction<string, {
|
14
|
-
chunks:
|
14
|
+
chunks: {
|
15
|
+
id: string;
|
16
|
+
toCreate: number;
|
17
|
+
toUpdate: number;
|
18
|
+
}[];
|
15
19
|
summary: {
|
16
20
|
toCreate: number;
|
17
21
|
toUpdate: number;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"normalize-products-to-chunks.d.ts","sourceRoot":"","sources":["../../../src/product/steps/normalize-products-to-chunks.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAA;AAEnD,eAAO,MAAM,0BAA0B,oCAAoC,CAAA;
|
1
|
+
{"version":3,"file":"normalize-products-to-chunks.d.ts","sourceRoot":"","sources":["../../../src/product/steps/normalize-products-to-chunks.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAA;AAEnD,eAAO,MAAM,0BAA0B,oCAAoC,CAAA;AA0K3E;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;YA5Ff,MAAM;kBAAY,MAAM;kBAAY,MAAM;;;kBA4GlB,MAAM;kBAAY,MAAM;;EAmBrE,CAAA"}
|
@@ -1,42 +1,153 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.normalizeCsvToChunksStep = exports.normalizeCsvToChunksStepId = void 0;
|
4
|
+
const csv_parse_1 = require("csv-parse");
|
4
5
|
const utils_1 = require("@medusajs/framework/utils");
|
5
6
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
6
|
-
const utils_2 = require("../utils");
|
7
7
|
exports.normalizeCsvToChunksStepId = "normalize-product-csv-to-chunks";
|
8
8
|
/**
|
9
|
-
*
|
10
|
-
*
|
11
|
-
*
|
12
|
-
* @example
|
13
|
-
* const data = normalizeCsvToChunksStep("products.csv")
|
9
|
+
* Processes a chunk of products by writing them to a file. Later the
|
10
|
+
* file will be processed after the import has been confirmed.
|
14
11
|
*/
|
15
|
-
|
16
|
-
const
|
17
|
-
const
|
18
|
-
|
19
|
-
const normalizer = new utils_1.CSVNormalizer(csvProducts);
|
20
|
-
const products = normalizer.proccess();
|
21
|
-
const create = Object.keys(products.toCreate).reduce((result, toCreateHandle) => {
|
12
|
+
async function processChunk(file, fileKey, csvRows, currentRowNumber) {
|
13
|
+
const normalizer = new utils_1.CSVNormalizer(csvRows);
|
14
|
+
const products = normalizer.proccess(currentRowNumber);
|
15
|
+
let create = Object.keys(products.toCreate).reduce((result, toCreateHandle) => {
|
22
16
|
result.push(utils_1.productValidators.CreateProduct.parse(products.toCreate[toCreateHandle]));
|
23
17
|
return result;
|
24
18
|
}, []);
|
25
|
-
|
19
|
+
let update = Object.keys(products.toUpdate).reduce((result, toUpdateId) => {
|
26
20
|
result.push(utils_1.productValidators.UpdateProduct.parse(products.toUpdate[toUpdateId]));
|
27
21
|
return result;
|
28
22
|
}, []);
|
23
|
+
const toCreate = create.length;
|
24
|
+
const toUpdate = update.length;
|
29
25
|
const { id } = await file.createFiles({
|
30
26
|
filename: `${fileKey}.json`,
|
31
27
|
content: JSON.stringify({ create, update }),
|
32
28
|
mimeType: "application/json",
|
33
29
|
});
|
30
|
+
/**
|
31
|
+
* Release products from the memory
|
32
|
+
*/
|
33
|
+
create = [];
|
34
|
+
update = [];
|
35
|
+
return {
|
36
|
+
id,
|
37
|
+
toCreate,
|
38
|
+
toUpdate,
|
39
|
+
};
|
40
|
+
}
|
41
|
+
/**
|
42
|
+
* Creates chunks by reading CSV rows from the stream
|
43
|
+
*/
|
44
|
+
async function createChunks(file, fileKey, stream) {
|
45
|
+
/**
|
46
|
+
* The row under process
|
47
|
+
*/
|
48
|
+
let currentCSVRow = 0;
|
49
|
+
/**
|
50
|
+
* Number of rows to process in a chunk. The rows count might go a little
|
51
|
+
* up if there are more rows for the same product.
|
52
|
+
*/
|
53
|
+
const rowsToRead = 1000;
|
54
|
+
/**
|
55
|
+
* Current count of processed rows for a given chunk.
|
56
|
+
*/
|
57
|
+
let rowsReadSoFar = 0;
|
58
|
+
/**
|
59
|
+
* Validated chunks that have been written with the file
|
60
|
+
* provider
|
61
|
+
*/
|
62
|
+
const chunks = [];
|
63
|
+
/**
|
64
|
+
* Currently collected rows to be processed as one chunk
|
65
|
+
*/
|
66
|
+
let rows = [];
|
67
|
+
/**
|
68
|
+
* The unique value for the current row. We need this value to scan
|
69
|
+
* more rows after rowsToRead threshold has reached, but the upcoming
|
70
|
+
* rows are part of the same product.
|
71
|
+
*/
|
72
|
+
let currentRowUniqueValue;
|
73
|
+
try {
|
74
|
+
for await (const row of stream) {
|
75
|
+
rowsReadSoFar++;
|
76
|
+
currentCSVRow++;
|
77
|
+
const normalizedRow = utils_1.CSVNormalizer.preProcess(row, currentCSVRow);
|
78
|
+
const rowValueValue = normalizedRow["product id"] || normalizedRow["product handle"];
|
79
|
+
/**
|
80
|
+
* Reached rows threshold
|
81
|
+
*/
|
82
|
+
if (rowsReadSoFar > rowsToRead) {
|
83
|
+
/**
|
84
|
+
* The current row unique value is not same as the previous row's
|
85
|
+
* unique value. Hence we can break the chunk here and process
|
86
|
+
* it.
|
87
|
+
*/
|
88
|
+
if (rowValueValue !== currentRowUniqueValue) {
|
89
|
+
chunks.push(await processChunk(file, `${fileKey}-${chunks.length + 1}`, rows, currentCSVRow));
|
90
|
+
/**
|
91
|
+
* Reset for new row
|
92
|
+
*/
|
93
|
+
rows = [normalizedRow];
|
94
|
+
rowsReadSoFar = 0;
|
95
|
+
}
|
96
|
+
else {
|
97
|
+
rows.push(normalizedRow);
|
98
|
+
}
|
99
|
+
}
|
100
|
+
else {
|
101
|
+
rows.push(normalizedRow);
|
102
|
+
}
|
103
|
+
currentRowUniqueValue = rowValueValue;
|
104
|
+
}
|
105
|
+
/**
|
106
|
+
* The file has finished and we have collected some rows that were
|
107
|
+
* under the chunk rows size threshold.
|
108
|
+
*/
|
109
|
+
if (rows.length) {
|
110
|
+
chunks.push(await processChunk(file, `${fileKey}-${chunks.length + 1}`, rows, currentCSVRow));
|
111
|
+
}
|
112
|
+
}
|
113
|
+
catch (error) {
|
114
|
+
if (!stream.destroyed) {
|
115
|
+
stream.destroy();
|
116
|
+
}
|
117
|
+
/**
|
118
|
+
* Cleanup in case of an error
|
119
|
+
*/
|
120
|
+
await file.deleteFiles(chunks.map((chunk) => chunk.id).concat(fileKey));
|
121
|
+
throw error;
|
122
|
+
}
|
123
|
+
return chunks;
|
124
|
+
}
|
125
|
+
/**
|
126
|
+
* This step parses a CSV file holding products to import, returning the chunks
|
127
|
+
* to be processed. Each chunk is written to a file using the file provider.
|
128
|
+
*
|
129
|
+
* @example
|
130
|
+
* const data = normalizeCsvToChunksStep("products.csv")
|
131
|
+
*/
|
132
|
+
exports.normalizeCsvToChunksStep = (0, workflows_sdk_1.createStep)(exports.normalizeCsvToChunksStepId, async (fileKey, { container }) => {
|
133
|
+
const file = container.resolve(utils_1.Modules.FILE);
|
134
|
+
const contents = await file.getDownloadStream(fileKey);
|
135
|
+
const chunks = await createChunks(file, fileKey, contents.pipe((0, csv_parse_1.parse)({
|
136
|
+
columns: true,
|
137
|
+
skip_empty_lines: true,
|
138
|
+
})));
|
139
|
+
const summary = chunks.reduce((result, chunk) => {
|
140
|
+
result.toCreate = result.toCreate + chunk.toCreate;
|
141
|
+
result.toUpdate = result.toUpdate + chunk.toUpdate;
|
142
|
+
return result;
|
143
|
+
}, { toCreate: 0, toUpdate: 0 });
|
144
|
+
/**
|
145
|
+
* Delete CSV file once we have the chunks
|
146
|
+
*/
|
147
|
+
await file.deleteFiles(fileKey);
|
34
148
|
return new workflows_sdk_1.StepResponse({
|
35
|
-
chunks
|
36
|
-
summary
|
37
|
-
toCreate: create.length,
|
38
|
-
toUpdate: update.length,
|
39
|
-
},
|
149
|
+
chunks,
|
150
|
+
summary,
|
40
151
|
});
|
41
152
|
});
|
42
153
|
//# sourceMappingURL=normalize-products-to-chunks.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"normalize-products-to-chunks.js","sourceRoot":"","sources":["../../../src/product/steps/normalize-products-to-chunks.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"normalize-products-to-chunks.js","sourceRoot":"","sources":["../../../src/product/steps/normalize-products-to-chunks.ts"],"names":[],"mappings":"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"}
|
@@ -14,7 +14,7 @@ exports.normalizeCsvStepId = "normalize-product-csv";
|
|
14
14
|
*/
|
15
15
|
exports.normalizeCsvStep = (0, workflows_sdk_1.createStep)(exports.normalizeCsvStepId, async (fileContent) => {
|
16
16
|
const csvProducts = (0, utils_2.convertCsvToJson)(fileContent);
|
17
|
-
const normalizer = new utils_1.CSVNormalizer(csvProducts);
|
17
|
+
const normalizer = new utils_1.CSVNormalizer(csvProducts.map((row, index) => utils_1.CSVNormalizer.preProcess(row, index + 1)));
|
18
18
|
const products = normalizer.proccess();
|
19
19
|
const create = Object.keys(products.toCreate).reduce((result, toCreateHandle) => {
|
20
20
|
result.push(utils_1.productValidators.CreateProduct.parse(products.toCreate[toCreateHandle]));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"normalize-products.js","sourceRoot":"","sources":["../../../src/product/steps/normalize-products.ts"],"names":[],"mappings":";;;AACA,qDAA4E;AAC5E,qEAA4E;AAC5E,oCAA2C;AAO9B,QAAA,kBAAkB,GAAG,uBAAuB,CAAA;AACzD;;;;;;GAMG;AACU,QAAA,gBAAgB,GAAG,IAAA,0BAAU,EACxC,0BAAkB,EAClB,KAAK,EAAE,WAAyC,EAAE,EAAE;IAClD,MAAM,WAAW,GACf,IAAA,wBAAgB,
|
1
|
+
{"version":3,"file":"normalize-products.js","sourceRoot":"","sources":["../../../src/product/steps/normalize-products.ts"],"names":[],"mappings":";;;AACA,qDAA4E;AAC5E,qEAA4E;AAC5E,oCAA2C;AAO9B,QAAA,kBAAkB,GAAG,uBAAuB,CAAA;AACzD;;;;;;GAMG;AACU,QAAA,gBAAgB,GAAG,IAAA,0BAAU,EACxC,0BAAkB,EAClB,KAAK,EAAE,WAAyC,EAAE,EAAE;IAClD,MAAM,WAAW,GACf,IAAA,wBAAgB,EAA4C,WAAW,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,IAAI,qBAAa,CAClC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAa,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAC1E,CAAA;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;IAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAElD,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE;QAC3B,MAAM,CAAC,IAAI,CACT,yBAAiB,CAAC,aAAa,CAAC,KAAK,CACnC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CACF,CAClC,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAElD,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;QACvB,MAAM,CAAC,IAAI,CACT,yBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CACrE,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,IAAI,4BAAY,CAAC;QACtB,MAAM;QACN,MAAM;KACP,CAAC,CAAA;AACJ,CAAC,CACF,CAAA"}
|
@@ -7,7 +7,9 @@ export declare const processImportChunksStepId = "process-import-chunks";
|
|
7
7
|
* const data = parseProductCsvStep("products.csv")
|
8
8
|
*/
|
9
9
|
export declare const processImportChunksStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
10
|
-
chunks:
|
10
|
+
chunks: {
|
11
|
+
id: string;
|
12
|
+
}[];
|
11
13
|
}, {
|
12
14
|
completed: boolean;
|
13
15
|
}>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"process-import-chunks.d.ts","sourceRoot":"","sources":["../../../src/product/steps/process-import-chunks.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,yBAAyB,0BAA0B,CAAA;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;YAEV,MAAM,EAAE;;;
|
1
|
+
{"version":3,"file":"process-import-chunks.d.ts","sourceRoot":"","sources":["../../../src/product/steps/process-import-chunks.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,yBAAyB,0BAA0B,CAAA;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;YAEV;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE;;;EAqBzC,CAAA"}
|
@@ -14,11 +14,21 @@ exports.processImportChunksStepId = "process-import-chunks";
|
|
14
14
|
*/
|
15
15
|
exports.processImportChunksStep = (0, workflows_sdk_1.createStep)(exports.processImportChunksStepId, async (input, { container }) => {
|
16
16
|
const file = container.resolve(utils_1.Modules.FILE);
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
try {
|
18
|
+
for (let chunk of input.chunks) {
|
19
|
+
const contents = await file.getAsBuffer(chunk.id);
|
20
|
+
let products = JSON.parse(contents.toString("utf-8"));
|
21
|
+
await (0, batch_products_1.batchProductsWorkflow)(container).run({
|
22
|
+
input: products,
|
23
|
+
});
|
24
|
+
products = undefined;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
finally {
|
28
|
+
/**
|
29
|
+
* Delete chunks regardless of the import status
|
30
|
+
*/
|
31
|
+
await file.deleteFiles(input.chunks.map((chunk) => chunk.id));
|
22
32
|
}
|
23
33
|
return new workflows_sdk_1.StepResponse({ completed: true });
|
24
34
|
});
|