@medusajs/medusa 1.7.2 → 1.7.3-alpha.0
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/.turbo/turbo-test.log +0 -75
- package/CHANGELOG.md +50 -0
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/middlewares/check-registered-modules.d.ts +4 -0
- package/dist/api/middlewares/check-registered-modules.js +78 -0
- package/dist/api/middlewares/check-registered-modules.js.map +1 -0
- package/dist/api/routes/admin/discounts/add-resources-to-condition-batch.d.ts +1 -1
- package/dist/api/routes/admin/discounts/add-resources-to-condition-batch.js +1 -1
- package/dist/api/routes/admin/discounts/delete-resources-from-condition-batch.d.ts +1 -1
- package/dist/api/routes/admin/discounts/delete-resources-from-condition-batch.js +1 -1
- package/dist/api/routes/admin/discounts/list-discounts.d.ts +1 -1
- package/dist/api/routes/admin/index.js +4 -0
- package/dist/api/routes/admin/index.js.map +1 -1
- package/dist/api/routes/admin/order-edits/add-line-item.d.ts +1 -1
- package/dist/api/routes/admin/order-edits/add-line-item.js +1 -1
- package/dist/api/routes/admin/order-edits/delete-line-item.d.ts +1 -1
- package/dist/api/routes/admin/order-edits/delete-line-item.js +1 -1
- package/dist/api/routes/admin/order-edits/delete-order-edit-item-change.d.ts +1 -1
- package/dist/api/routes/admin/order-edits/delete-order-edit-item-change.js +1 -1
- package/dist/api/routes/admin/order-edits/delete-order-edit.d.ts +1 -1
- package/dist/api/routes/admin/order-edits/delete-order-edit.js +1 -1
- package/dist/api/routes/admin/order-edits/get-order-edit.d.ts +1 -1
- package/dist/api/routes/admin/order-edits/get-order-edit.js +1 -1
- package/dist/api/routes/admin/order-edits/list-order-edit.d.ts +1 -1
- package/dist/api/routes/admin/order-edits/request-confirmation.d.ts +1 -1
- package/dist/api/routes/admin/order-edits/request-confirmation.js +1 -1
- package/dist/api/routes/admin/order-edits/update-order-edit-line-item.d.ts +1 -1
- package/dist/api/routes/admin/order-edits/update-order-edit-line-item.js +1 -1
- package/dist/api/routes/admin/order-edits/update-order-edit.d.ts +1 -1
- package/dist/api/routes/admin/order-edits/update-order-edit.js +1 -1
- package/dist/api/routes/admin/orders/cancel-fulfillment.d.ts +5 -0
- package/dist/api/routes/admin/orders/cancel-fulfillment.js +46 -2
- package/dist/api/routes/admin/orders/cancel-fulfillment.js.map +1 -1
- package/dist/api/routes/admin/orders/create-fulfillment.d.ts +1 -0
- package/dist/api/routes/admin/orders/create-fulfillment.js +87 -5
- package/dist/api/routes/admin/orders/create-fulfillment.js.map +1 -1
- package/dist/api/routes/admin/orders/index.js +3 -7
- package/dist/api/routes/admin/orders/index.js.map +1 -1
- package/dist/api/routes/admin/payment-collections/delete-payment-collection.d.ts +1 -1
- package/dist/api/routes/admin/payment-collections/delete-payment-collection.js +1 -1
- package/dist/api/routes/admin/payment-collections/get-payment-collection.d.ts +1 -1
- package/dist/api/routes/admin/payment-collections/get-payment-collection.js +1 -1
- package/dist/api/routes/admin/payment-collections/mark-authorized-payment-collection.d.ts +1 -1
- package/dist/api/routes/admin/payment-collections/mark-authorized-payment-collection.js +1 -1
- package/dist/api/routes/admin/payment-collections/update-payment-collection.d.ts +1 -1
- package/dist/api/routes/admin/payment-collections/update-payment-collection.js +1 -1
- package/dist/api/routes/admin/price-lists/list-price-list-products.d.ts +2 -2
- package/dist/api/routes/admin/price-lists/list-price-list-products.js +1 -1
- package/dist/api/routes/admin/product-categories/delete-product-category.d.ts +64 -0
- package/dist/api/routes/admin/product-categories/delete-product-category.js +129 -0
- package/dist/api/routes/admin/product-categories/delete-product-category.js.map +1 -0
- package/dist/api/routes/admin/product-categories/get-product-category.d.ts +58 -0
- package/dist/api/routes/admin/product-categories/get-product-category.js +134 -0
- package/dist/api/routes/admin/product-categories/get-product-category.js.map +1 -0
- package/dist/api/routes/admin/product-categories/index.d.ts +7 -0
- package/dist/api/routes/admin/product-categories/index.js +68 -0
- package/dist/api/routes/admin/product-categories/index.js.map +1 -0
- package/dist/api/routes/admin/product-categories/list-product-categories.d.ts +78 -0
- package/dist/api/routes/admin/product-categories/list-product-categories.js +206 -0
- package/dist/api/routes/admin/product-categories/list-product-categories.js.map +1 -0
- package/dist/api/routes/admin/publishable-api-keys/add-channels-batch.d.ts +1 -1
- package/dist/api/routes/admin/publishable-api-keys/add-channels-batch.js +1 -1
- package/dist/api/routes/admin/publishable-api-keys/create-publishable-api-key.d.ts +1 -1
- package/dist/api/routes/admin/publishable-api-keys/create-publishable-api-key.js +1 -1
- package/dist/api/routes/admin/publishable-api-keys/delete-channels-batch.d.ts +1 -1
- package/dist/api/routes/admin/publishable-api-keys/delete-channels-batch.js +1 -1
- package/dist/api/routes/admin/publishable-api-keys/delete-publishable-api-key.d.ts +1 -1
- package/dist/api/routes/admin/publishable-api-keys/delete-publishable-api-key.js +1 -1
- package/dist/api/routes/admin/publishable-api-keys/get-publishable-api-key.d.ts +1 -1
- package/dist/api/routes/admin/publishable-api-keys/get-publishable-api-key.js +1 -1
- package/dist/api/routes/admin/publishable-api-keys/list-publishable-api-key-sales-channels.d.ts +2 -2
- package/dist/api/routes/admin/publishable-api-keys/list-publishable-api-key-sales-channels.js +1 -1
- package/dist/api/routes/admin/publishable-api-keys/list-publishable-api-keys.d.ts +1 -1
- package/dist/api/routes/admin/publishable-api-keys/revoke-publishable-api-key.d.ts +1 -1
- package/dist/api/routes/admin/publishable-api-keys/revoke-publishable-api-key.js +1 -1
- package/dist/api/routes/admin/publishable-api-keys/update-publishable-api-key.d.ts +1 -1
- package/dist/api/routes/admin/publishable-api-keys/update-publishable-api-key.js +1 -1
- package/dist/api/routes/admin/returns/cancel-return.js.map +1 -1
- package/dist/api/routes/admin/returns/receive-return.d.ts +1 -0
- package/dist/api/routes/admin/returns/receive-return.js +8 -1
- package/dist/api/routes/admin/returns/receive-return.js.map +1 -1
- package/dist/api/routes/admin/sales-channels/associate-stock-location.d.ts +79 -0
- package/dist/api/routes/admin/sales-channels/associate-stock-location.js +163 -0
- package/dist/api/routes/admin/sales-channels/associate-stock-location.js.map +1 -0
- package/dist/api/routes/admin/sales-channels/index.d.ts +2 -0
- package/dist/api/routes/admin/sales-channels/index.js +6 -0
- package/dist/api/routes/admin/sales-channels/index.js.map +1 -1
- package/dist/api/routes/admin/sales-channels/list-sales-channels.d.ts +1 -1
- package/dist/api/routes/admin/sales-channels/remove-stock-location.d.ts +88 -0
- package/dist/api/routes/admin/sales-channels/remove-stock-location.js +174 -0
- package/dist/api/routes/admin/sales-channels/remove-stock-location.js.map +1 -0
- package/dist/api/routes/admin/stock-locations/create-stock-location.d.ts +105 -0
- package/dist/api/routes/admin/stock-locations/create-stock-location.js +240 -0
- package/dist/api/routes/admin/stock-locations/create-stock-location.js.map +1 -0
- package/dist/api/routes/admin/stock-locations/get-stock-location.d.ts +48 -0
- package/dist/api/routes/admin/stock-locations/get-stock-location.js +121 -0
- package/dist/api/routes/admin/stock-locations/get-stock-location.js.map +1 -0
- package/dist/api/routes/admin/stock-locations/index.d.ts +18 -0
- package/dist/api/routes/admin/stock-locations/index.js +78 -0
- package/dist/api/routes/admin/stock-locations/index.js.map +1 -0
- package/dist/api/routes/admin/stock-locations/list-stock-locations.d.ts +144 -0
- package/dist/api/routes/admin/stock-locations/list-stock-locations.js +265 -0
- package/dist/api/routes/admin/stock-locations/list-stock-locations.js.map +1 -0
- package/dist/api/routes/admin/stock-locations/update-stock-location.d.ts +103 -0
- package/dist/api/routes/admin/stock-locations/update-stock-location.js +240 -0
- package/dist/api/routes/admin/stock-locations/update-stock-location.js.map +1 -0
- package/dist/api/routes/admin/uploads/create-protected-upload.d.ts +2 -2
- package/dist/api/routes/admin/uploads/create-protected-upload.js +2 -2
- package/dist/api/routes/admin/uploads/delete-upload.d.ts +1 -1
- package/dist/api/routes/admin/uploads/delete-upload.js +1 -1
- package/dist/api/routes/admin/uploads/get-download-url.d.ts +1 -1
- package/dist/api/routes/admin/uploads/get-download-url.js +1 -1
- package/dist/api/routes/store/order-edits/complete-order-edit.js +35 -34
- package/dist/api/routes/store/order-edits/complete-order-edit.js.map +1 -1
- package/dist/api/routes/store/orders/confirm-order-request.d.ts +2 -2
- package/dist/api/routes/store/orders/confirm-order-request.js +2 -2
- package/dist/api/routes/store/orders/request-order.d.ts +1 -1
- package/dist/api/routes/store/orders/request-order.js +1 -1
- package/dist/api/routes/store/payment-collections/authorize-batch-payment-sessions.d.ts +2 -2
- package/dist/api/routes/store/payment-collections/authorize-batch-payment-sessions.js +2 -2
- package/dist/api/routes/store/payment-collections/authorize-payment-session.d.ts +2 -2
- package/dist/api/routes/store/payment-collections/authorize-payment-session.js +2 -2
- package/dist/api/routes/store/payment-collections/get-payment-collection.d.ts +2 -2
- package/dist/api/routes/store/payment-collections/get-payment-collection.js +2 -2
- package/dist/api/routes/store/payment-collections/manage-batch-payment-sessions.d.ts +2 -2
- package/dist/api/routes/store/payment-collections/manage-batch-payment-sessions.js +2 -2
- package/dist/api/routes/store/payment-collections/manage-payment-session.d.ts +2 -2
- package/dist/api/routes/store/payment-collections/manage-payment-session.js +2 -2
- package/dist/api/routes/store/payment-collections/refresh-payment-session.d.ts +1 -1
- package/dist/api/routes/store/payment-collections/refresh-payment-session.js +1 -1
- package/dist/commands/develop.js +24 -0
- package/dist/commands/develop.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/interfaces/payment-processor.d.ts +102 -0
- package/dist/interfaces/payment-processor.js +31 -0
- package/dist/interfaces/payment-processor.js.map +1 -0
- package/dist/interfaces/payment-service.d.ts +92 -1
- package/dist/interfaces/payment-service.js +10 -0
- package/dist/interfaces/payment-service.js.map +1 -1
- package/dist/interfaces/services/event-bus.d.ts +3 -0
- package/dist/interfaces/services/event-bus.js +3 -0
- package/dist/interfaces/services/event-bus.js.map +1 -0
- package/dist/interfaces/services/index.d.ts +3 -0
- package/dist/interfaces/services/index.js +3 -0
- package/dist/interfaces/services/index.js.map +1 -1
- package/dist/interfaces/services/inventory.d.ts +24 -0
- package/dist/interfaces/services/inventory.js +3 -0
- package/dist/interfaces/services/inventory.js.map +1 -0
- package/dist/interfaces/services/stock-location.d.ts +9 -0
- package/dist/interfaces/services/stock-location.js +3 -0
- package/dist/interfaces/services/stock-location.js.map +1 -0
- package/dist/loaders/feature-flags/product-categories.d.ts +3 -0
- package/dist/loaders/feature-flags/product-categories.js +10 -0
- package/dist/loaders/feature-flags/product-categories.js.map +1 -0
- package/dist/loaders/feature-flags/publishable-api-keys.js +1 -1
- package/dist/loaders/feature-flags/publishable-api-keys.js.map +1 -1
- package/dist/loaders/feature-flags/sales-channels.js +1 -1
- package/dist/loaders/feature-flags/sales-channels.js.map +1 -1
- package/dist/loaders/plugins.d.ts +1 -0
- package/dist/loaders/plugins.js +3 -1
- package/dist/loaders/plugins.js.map +1 -1
- package/dist/migrations/1671711415179-multi_location.d.ts +6 -0
- package/dist/migrations/1671711415179-multi_location.js +119 -0
- package/dist/migrations/1671711415179-multi_location.js.map +1 -0
- package/dist/migrations/1672906846559-product-category.d.ts +6 -0
- package/dist/migrations/1672906846559-product-category.js +83 -0
- package/dist/migrations/1672906846559-product-category.js.map +1 -0
- package/dist/migrations/1672906846560-payment-session-is-initiated.d.ts +6 -0
- package/dist/migrations/1672906846560-payment-session-is-initiated.js +81 -0
- package/dist/migrations/1672906846560-payment-session-is-initiated.js.map +1 -0
- package/dist/migrations/1673003729870-staged_job_options.d.ts +6 -0
- package/dist/migrations/1673003729870-staged_job_options.js +71 -0
- package/dist/migrations/1673003729870-staged_job_options.js.map +1 -0
- package/dist/models/fulfillment.d.ts +5 -0
- package/dist/models/fulfillment.js +8 -0
- package/dist/models/fulfillment.js.map +1 -1
- package/dist/models/index.d.ts +4 -0
- package/dist/models/index.js +4 -0
- package/dist/models/index.js.map +1 -1
- package/dist/models/line-item.d.ts +6 -6
- package/dist/models/line-item.js +9 -9
- package/dist/models/line-item.js.map +1 -1
- package/dist/models/payment-session.d.ts +6 -0
- package/dist/models/payment-session.js +9 -0
- package/dist/models/payment-session.js.map +1 -1
- package/dist/models/product-category.d.ts +67 -0
- package/dist/models/product-category.js +144 -0
- package/dist/models/product-category.js.map +1 -0
- package/dist/models/product-variant-inventory-item.d.ts +7 -0
- package/dist/models/product-variant-inventory-item.js +66 -0
- package/dist/models/product-variant-inventory-item.js.map +1 -0
- package/dist/models/return.d.ts +7 -6
- package/dist/models/return.js +14 -9
- package/dist/models/return.js.map +1 -1
- package/dist/models/sales-channel-location.d.ts +6 -0
- package/dist/models/sales-channel-location.js +62 -0
- package/dist/models/sales-channel-location.js.map +1 -0
- package/dist/models/staged-job.d.ts +1 -0
- package/dist/models/staged-job.js +4 -0
- package/dist/models/staged-job.js.map +1 -1
- package/dist/models/store.d.ts +6 -5
- package/dist/models/store.js +11 -7
- package/dist/models/store.js.map +1 -1
- package/dist/repositories/customer-group.js +18 -2
- package/dist/repositories/customer-group.js.map +1 -1
- package/dist/repositories/product-category.d.ts +6 -0
- package/dist/repositories/product-category.js +125 -0
- package/dist/repositories/product-category.js.map +1 -0
- package/dist/repositories/product-variant.js +30 -5
- package/dist/repositories/product-variant.js.map +1 -1
- package/dist/repositories/product.js +7 -2
- package/dist/repositories/product.js.map +1 -1
- package/dist/scripts/migrate-inventory-items.d.ts +1 -0
- package/dist/scripts/migrate-inventory-items.js +197 -0
- package/dist/scripts/migrate-inventory-items.js.map +1 -0
- package/dist/services/cache.js +2 -5
- package/dist/services/cache.js.map +1 -1
- package/dist/services/cart.d.ts +9 -26
- package/dist/services/cart.js +276 -182
- package/dist/services/cart.js.map +1 -1
- package/dist/services/claim-item.js +3 -0
- package/dist/services/claim-item.js.map +1 -1
- package/dist/services/claim.d.ts +4 -4
- package/dist/services/claim.js +132 -166
- package/dist/services/claim.js.map +1 -1
- package/dist/services/event-bus.d.ts +23 -10
- package/dist/services/event-bus.js +106 -42
- package/dist/services/event-bus.js.map +1 -1
- package/dist/services/fulfillment.d.ts +7 -3
- package/dist/services/fulfillment.js +79 -90
- package/dist/services/fulfillment.js.map +1 -1
- package/dist/services/index.d.ts +4 -1
- package/dist/services/index.js +10 -4
- package/dist/services/index.js.map +1 -1
- package/dist/services/line-item.d.ts +5 -5
- package/dist/services/line-item.js +2 -1
- package/dist/services/line-item.js.map +1 -1
- package/dist/services/order.d.ts +5 -19
- package/dist/services/order.js +146 -181
- package/dist/services/order.js.map +1 -1
- package/dist/services/payment-collection.d.ts +2 -2
- package/dist/services/payment-collection.js +88 -128
- package/dist/services/payment-collection.js.map +1 -1
- package/dist/services/payment-provider.d.ts +2 -1
- package/dist/services/payment-provider.js +32 -27
- package/dist/services/payment-provider.js.map +1 -1
- package/dist/services/product-category.d.ts +41 -0
- package/dist/services/product-category.js +190 -0
- package/dist/services/product-category.js.map +1 -0
- package/dist/services/product-variant-inventory.d.ts +115 -0
- package/dist/services/product-variant-inventory.js +747 -0
- package/dist/services/product-variant-inventory.js.map +1 -0
- package/dist/services/return.d.ts +7 -12
- package/dist/services/return.js +12 -9
- package/dist/services/return.js.map +1 -1
- package/dist/services/sales-channel-inventory.d.ts +24 -0
- package/dist/services/sales-channel-inventory.js +70 -0
- package/dist/services/sales-channel-inventory.js.map +1 -0
- package/dist/services/sales-channel-location.d.ts +41 -0
- package/dist/services/sales-channel-location.js +159 -0
- package/dist/services/sales-channel-location.js.map +1 -0
- package/dist/services/swap.d.ts +4 -4
- package/dist/services/swap.js +78 -127
- package/dist/services/swap.js.map +1 -1
- package/dist/services/totals.d.ts +2 -2
- package/dist/services/totals.js +2 -2
- package/dist/services/totals.js.map +1 -1
- package/dist/strategies/batch-jobs/product/import.d.ts +1 -1
- package/dist/strategies/batch-jobs/product/import.js +4 -3
- package/dist/strategies/batch-jobs/product/import.js.map +1 -1
- package/dist/strategies/cart-completion.d.ts +14 -9
- package/dist/strategies/cart-completion.js +111 -48
- package/dist/strategies/cart-completion.js.map +1 -1
- package/dist/subscribers/cart.d.ts +2 -4
- package/dist/subscribers/cart.js +8 -21
- package/dist/subscribers/cart.js.map +1 -1
- package/dist/subscribers/product.d.ts +1 -5
- package/dist/subscribers/product.js +15 -5
- package/dist/subscribers/product.js.map +1 -1
- package/dist/types/inventory.d.ts +106 -0
- package/dist/types/inventory.js +3 -0
- package/dist/types/inventory.js.map +1 -0
- package/dist/types/payment.d.ts +1 -0
- package/dist/types/product.d.ts +1 -0
- package/dist/types/product.js.map +1 -1
- package/dist/types/stock-location.d.ts +245 -0
- package/dist/types/stock-location.js +3 -0
- package/dist/types/stock-location.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/repository.d.ts +4 -3
- package/dist/utils/repository.js +43 -23
- package/dist/utils/repository.js.map +1 -1
- package/package.json +2 -2
- package/dist/services/inventory.d.ts +0 -31
- package/dist/services/inventory.js +0 -151
- package/dist/services/inventory.js.map +0 -1
|
@@ -14,9 +14,26 @@ declare type InjectedDependencies = {
|
|
|
14
14
|
redisSubscriber: Redis.Redis;
|
|
15
15
|
};
|
|
16
16
|
declare type Subscriber<T = unknown> = (data: T, eventName: string) => Promise<void>;
|
|
17
|
+
declare type SubscriberContext = {
|
|
18
|
+
subscriberId: string;
|
|
19
|
+
};
|
|
20
|
+
declare type BullJob<T> = {
|
|
21
|
+
update: (data: unknown) => void;
|
|
22
|
+
attemptsMade: number;
|
|
23
|
+
opts: EmitOptions;
|
|
24
|
+
data: {
|
|
25
|
+
eventName: string;
|
|
26
|
+
data: T;
|
|
27
|
+
completedSubscriberIds: string[] | undefined;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
declare type SubscriberDescriptor = {
|
|
31
|
+
id: string;
|
|
32
|
+
subscriber: Subscriber;
|
|
33
|
+
};
|
|
17
34
|
declare type EmitOptions = {
|
|
18
35
|
delay?: number;
|
|
19
|
-
attempts
|
|
36
|
+
attempts: number;
|
|
20
37
|
backoff?: {
|
|
21
38
|
type: "fixed" | "exponential";
|
|
22
39
|
delay: number;
|
|
@@ -32,7 +49,7 @@ export default class EventBusService {
|
|
|
32
49
|
protected readonly logger_: Logger;
|
|
33
50
|
protected readonly stagedJobRepository_: typeof StagedJobRepository;
|
|
34
51
|
protected readonly jobSchedulerService_: JobSchedulerService;
|
|
35
|
-
protected readonly
|
|
52
|
+
protected readonly eventToSubscribersMap_: Map<string | symbol, SubscriberDescriptor[]>;
|
|
36
53
|
protected readonly redisClient_: Redis.Redis;
|
|
37
54
|
protected readonly redisSubscriber_: Redis.Redis;
|
|
38
55
|
protected queue_: Bull;
|
|
@@ -45,10 +62,11 @@ export default class EventBusService {
|
|
|
45
62
|
* Adds a function to a list of event subscribers.
|
|
46
63
|
* @param event - the event that the subscriber will listen for.
|
|
47
64
|
* @param subscriber - the function to be called when a certain event
|
|
65
|
+
* @param context - context to use when attaching subscriber
|
|
48
66
|
* happens. Subscribers must return a Promise.
|
|
49
67
|
* @return this
|
|
50
68
|
*/
|
|
51
|
-
subscribe(event: string | symbol, subscriber: Subscriber): this;
|
|
69
|
+
subscribe(event: string | symbol, subscriber: Subscriber, context?: SubscriberContext): this;
|
|
52
70
|
/**
|
|
53
71
|
* Adds a function to a list of event subscribers.
|
|
54
72
|
* @param event - the event that the subscriber will listen for.
|
|
@@ -64,7 +82,7 @@ export default class EventBusService {
|
|
|
64
82
|
* @param options - options to add the job with
|
|
65
83
|
* @return the job from our queue
|
|
66
84
|
*/
|
|
67
|
-
emit<T>(eventName: string, data: T, options?: EmitOptions): Promise<StagedJob | void>;
|
|
85
|
+
emit<T>(eventName: string, data: T, options?: Record<string, unknown> & EmitOptions): Promise<StagedJob | void>;
|
|
68
86
|
startEnqueuer(): void;
|
|
69
87
|
stopEnqueuer(): Promise<void>;
|
|
70
88
|
enqueuer_(): Promise<void>;
|
|
@@ -73,12 +91,7 @@ export default class EventBusService {
|
|
|
73
91
|
* @param job The job object
|
|
74
92
|
* @return resolves to the results of the subscriber calls.
|
|
75
93
|
*/
|
|
76
|
-
worker_: <T>(job:
|
|
77
|
-
data: {
|
|
78
|
-
eventName: string;
|
|
79
|
-
data: T;
|
|
80
|
-
};
|
|
81
|
-
}) => Promise<unknown[]>;
|
|
94
|
+
worker_: <T>(job: BullJob<T>) => Promise<unknown>;
|
|
82
95
|
/**
|
|
83
96
|
* Registers a cron job.
|
|
84
97
|
* @deprecated All cron job logic has been refactored to the `JobSchedulerService`. This method will be removed in a future release.
|
|
@@ -66,6 +66,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
66
66
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67
67
|
var bull_1 = __importDefault(require("bull"));
|
|
68
68
|
var ioredis_1 = __importDefault(require("ioredis"));
|
|
69
|
+
var medusa_core_utils_1 = require("medusa-core-utils");
|
|
70
|
+
var ulid_1 = require("ulid");
|
|
69
71
|
var sleep_1 = require("../utils/sleep");
|
|
70
72
|
/**
|
|
71
73
|
* Can keep track of multiple subscribers to different events and run the
|
|
@@ -82,27 +84,72 @@ var EventBusService = /** @class */ (function () {
|
|
|
82
84
|
* @return resolves to the results of the subscriber calls.
|
|
83
85
|
*/
|
|
84
86
|
this.worker_ = function (job) { return __awaiter(_this, void 0, void 0, function () {
|
|
85
|
-
var _a, eventName, data,
|
|
87
|
+
var _a, eventName, data, eventSubscribers, wildcardSubscribers, allSubscribers, completedSubscribers, subscribersInCurrentAttempt, isRetry, currentAttempt, isFinalAttempt, completedSubscribersInCurrentAttempt, subscribersResult, didSubscribersFail, isRetriesConfigured, shouldRetry, updatedCompletedSubscribers, errorMessage;
|
|
86
88
|
var _this = this;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
var _b, _c;
|
|
90
|
+
return __generator(this, function (_d) {
|
|
91
|
+
switch (_d.label) {
|
|
89
92
|
case 0:
|
|
90
93
|
_a = job.data, eventName = _a.eventName, data = _a.data;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
94
|
+
eventSubscribers = this.eventToSubscribersMap_.get(eventName) || [];
|
|
95
|
+
wildcardSubscribers = this.eventToSubscribersMap_.get("*") || [];
|
|
96
|
+
allSubscribers = eventSubscribers.concat(wildcardSubscribers);
|
|
97
|
+
completedSubscribers = job.data.completedSubscriberIds || [];
|
|
98
|
+
subscribersInCurrentAttempt = allSubscribers.filter(function (subscriber) {
|
|
99
|
+
return subscriber.id && !completedSubscribers.includes(subscriber.id);
|
|
100
|
+
});
|
|
101
|
+
isRetry = job.attemptsMade > 0;
|
|
102
|
+
currentAttempt = job.attemptsMade + 1;
|
|
103
|
+
isFinalAttempt = ((_b = job === null || job === void 0 ? void 0 : job.opts) === null || _b === void 0 ? void 0 : _b.attempts) === currentAttempt;
|
|
104
|
+
if (isRetry) {
|
|
105
|
+
if (isFinalAttempt) {
|
|
106
|
+
this.logger_.info("Final retry attempt for ".concat(eventName));
|
|
107
|
+
}
|
|
108
|
+
this.logger_.info("Retrying ".concat(eventName, " which has ").concat(eventSubscribers.length, " subscribers (").concat(subscribersInCurrentAttempt.length, " of them failed)"));
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
this.logger_.info("Processing ".concat(eventName, " which has ").concat(eventSubscribers.length, " subscribers"));
|
|
112
|
+
}
|
|
113
|
+
completedSubscribersInCurrentAttempt = [];
|
|
114
|
+
return [4 /*yield*/, Promise.all(subscribersInCurrentAttempt.map(function (_a) {
|
|
115
|
+
var id = _a.id, subscriber = _a.subscriber;
|
|
116
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
117
|
+
var _this = this;
|
|
118
|
+
return __generator(this, function (_b) {
|
|
119
|
+
return [2 /*return*/, subscriber(data, eventName)
|
|
120
|
+
.then(function (data) {
|
|
121
|
+
// For every subscriber that completes successfully, add their id to the list of completed subscribers
|
|
122
|
+
completedSubscribersInCurrentAttempt.push(id);
|
|
123
|
+
return data;
|
|
124
|
+
})
|
|
125
|
+
.catch(function (err) {
|
|
126
|
+
_this.logger_.warn("An error occurred while processing ".concat(eventName, ": ").concat(err));
|
|
127
|
+
return err;
|
|
128
|
+
})];
|
|
129
|
+
});
|
|
103
130
|
});
|
|
104
|
-
})
|
|
105
|
-
|
|
131
|
+
}))
|
|
132
|
+
// If the number of completed subscribers is different from the number of subcribers to process in current attempt, some of them failed
|
|
133
|
+
];
|
|
134
|
+
case 1:
|
|
135
|
+
subscribersResult = _d.sent();
|
|
136
|
+
didSubscribersFail = completedSubscribersInCurrentAttempt.length !==
|
|
137
|
+
subscribersInCurrentAttempt.length;
|
|
138
|
+
isRetriesConfigured = ((_c = job === null || job === void 0 ? void 0 : job.opts) === null || _c === void 0 ? void 0 : _c.attempts) > 1;
|
|
139
|
+
shouldRetry = didSubscribersFail && isRetriesConfigured && !isFinalAttempt;
|
|
140
|
+
if (shouldRetry) {
|
|
141
|
+
updatedCompletedSubscribers = __spreadArray(__spreadArray([], __read(completedSubscribers), false), __read(completedSubscribersInCurrentAttempt), false);
|
|
142
|
+
job.data.completedSubscriberIds = updatedCompletedSubscribers;
|
|
143
|
+
job.update(job.data);
|
|
144
|
+
errorMessage = "One or more subscribers of ".concat(eventName, " failed. Retrying...");
|
|
145
|
+
this.logger_.warn(errorMessage);
|
|
146
|
+
return [2 /*return*/, Promise.reject(Error(errorMessage))];
|
|
147
|
+
}
|
|
148
|
+
if (didSubscribersFail && !isFinalAttempt) {
|
|
149
|
+
// If retrying is not configured, we log a warning to allow server admins to recover manually
|
|
150
|
+
this.logger_.warn("One or more subscribers of ".concat(eventName, " failed. Retrying is not configured. Use 'attempts' option when emitting events."));
|
|
151
|
+
}
|
|
152
|
+
return [2 /*return*/, Promise.resolve(subscribersResult)];
|
|
106
153
|
}
|
|
107
154
|
});
|
|
108
155
|
}); };
|
|
@@ -127,7 +174,7 @@ var EventBusService = /** @class */ (function () {
|
|
|
127
174
|
}
|
|
128
175
|
},
|
|
129
176
|
};
|
|
130
|
-
this.
|
|
177
|
+
this.eventToSubscribersMap_ = new Map();
|
|
131
178
|
this.queue_ = new bull_1.default("".concat(this.constructor.name, ":queue"), opts);
|
|
132
179
|
this.redisClient_ = redisClient;
|
|
133
180
|
this.redisSubscriber_ = redisSubscriber;
|
|
@@ -158,16 +205,29 @@ var EventBusService = /** @class */ (function () {
|
|
|
158
205
|
* Adds a function to a list of event subscribers.
|
|
159
206
|
* @param event - the event that the subscriber will listen for.
|
|
160
207
|
* @param subscriber - the function to be called when a certain event
|
|
208
|
+
* @param context - context to use when attaching subscriber
|
|
161
209
|
* happens. Subscribers must return a Promise.
|
|
162
210
|
* @return this
|
|
163
211
|
*/
|
|
164
|
-
EventBusService.prototype.subscribe = function (event, subscriber) {
|
|
165
|
-
var _a;
|
|
212
|
+
EventBusService.prototype.subscribe = function (event, subscriber, context) {
|
|
213
|
+
var _a, _b;
|
|
166
214
|
if (typeof subscriber !== "function") {
|
|
167
215
|
throw new Error("Subscriber must be a function");
|
|
168
216
|
}
|
|
169
|
-
|
|
170
|
-
|
|
217
|
+
/**
|
|
218
|
+
* If context is provided, we use the subscriberId from it
|
|
219
|
+
* otherwise we generate a random using a ulid
|
|
220
|
+
*/
|
|
221
|
+
var subscriberId = (_a = context === null || context === void 0 ? void 0 : context.subscriberId) !== null && _a !== void 0 ? _a : "".concat(event.toString(), "-").concat((0, ulid_1.ulid)());
|
|
222
|
+
var newSubscriberDescriptor = { subscriber: subscriber, id: subscriberId };
|
|
223
|
+
var existingSubscribers = (_b = this.eventToSubscribersMap_.get(event)) !== null && _b !== void 0 ? _b : [];
|
|
224
|
+
var subscriberAlreadyExists = existingSubscribers.find(function (sub) { return sub.id === subscriberId; });
|
|
225
|
+
if (subscriberAlreadyExists) {
|
|
226
|
+
throw Error("Subscriber with id ".concat(subscriberId, " already exists"));
|
|
227
|
+
}
|
|
228
|
+
this.eventToSubscribersMap_.set(event, __spreadArray(__spreadArray([], __read(existingSubscribers), false), [
|
|
229
|
+
newSubscriberDescriptor,
|
|
230
|
+
], false));
|
|
171
231
|
return this;
|
|
172
232
|
};
|
|
173
233
|
/**
|
|
@@ -178,14 +238,15 @@ var EventBusService = /** @class */ (function () {
|
|
|
178
238
|
* @return this
|
|
179
239
|
*/
|
|
180
240
|
EventBusService.prototype.unsubscribe = function (event, subscriber) {
|
|
181
|
-
var _a
|
|
241
|
+
var _a;
|
|
182
242
|
if (typeof subscriber !== "function") {
|
|
183
243
|
throw new Error("Subscriber must be a function");
|
|
184
244
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
245
|
+
var existingSubscribers = this.eventToSubscribersMap_.get(event);
|
|
246
|
+
if (existingSubscribers === null || existingSubscribers === void 0 ? void 0 : existingSubscribers.length) {
|
|
247
|
+
var subIndex = existingSubscribers === null || existingSubscribers === void 0 ? void 0 : existingSubscribers.findIndex(function (sub) { return sub.subscriber === subscriber; });
|
|
248
|
+
if (subIndex !== -1) {
|
|
249
|
+
(_a = this.eventToSubscribersMap_.get(event)) === null || _a === void 0 ? void 0 : _a.splice(subIndex, 1);
|
|
189
250
|
}
|
|
190
251
|
}
|
|
191
252
|
return this;
|
|
@@ -198,36 +259,38 @@ var EventBusService = /** @class */ (function () {
|
|
|
198
259
|
* @return the job from our queue
|
|
199
260
|
*/
|
|
200
261
|
EventBusService.prototype.emit = function (eventName, data, options) {
|
|
201
|
-
if (options === void 0) { options = {}; }
|
|
262
|
+
if (options === void 0) { options = { attempts: 1 }; }
|
|
202
263
|
return __awaiter(this, void 0, void 0, function () {
|
|
203
|
-
var stagedJobRepository,
|
|
264
|
+
var opts, stagedJobRepository, jobToCreate, stagedJobInstance;
|
|
204
265
|
return __generator(this, function (_a) {
|
|
205
266
|
switch (_a.label) {
|
|
206
267
|
case 0:
|
|
207
|
-
if (!this.transactionManager_) return [3 /*break*/, 2];
|
|
208
|
-
stagedJobRepository = this.transactionManager_.getCustomRepository(this.stagedJobRepository_);
|
|
209
|
-
stagedJobInstance = stagedJobRepository.create({
|
|
210
|
-
event_name: eventName,
|
|
211
|
-
data: data,
|
|
212
|
-
});
|
|
213
|
-
return [4 /*yield*/, stagedJobRepository.save(stagedJobInstance)];
|
|
214
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
215
|
-
case 2:
|
|
216
268
|
opts = {
|
|
217
269
|
removeOnComplete: true,
|
|
270
|
+
attempts: 1,
|
|
218
271
|
};
|
|
219
272
|
if (typeof options.attempts === "number") {
|
|
220
273
|
opts.attempts = options.attempts;
|
|
221
|
-
if (
|
|
274
|
+
if ((0, medusa_core_utils_1.isDefined)(options.backoff)) {
|
|
222
275
|
opts.backoff = options.backoff;
|
|
223
276
|
}
|
|
224
277
|
}
|
|
225
278
|
if (typeof options.delay === "number") {
|
|
226
279
|
opts.delay = options.delay;
|
|
227
280
|
}
|
|
281
|
+
if (!this.transactionManager_) return [3 /*break*/, 2];
|
|
282
|
+
stagedJobRepository = this.transactionManager_.getCustomRepository(this.stagedJobRepository_);
|
|
283
|
+
jobToCreate = {
|
|
284
|
+
event_name: eventName,
|
|
285
|
+
data: data,
|
|
286
|
+
options: opts,
|
|
287
|
+
};
|
|
288
|
+
stagedJobInstance = stagedJobRepository.create(jobToCreate);
|
|
289
|
+
return [4 /*yield*/, stagedJobRepository.save(stagedJobInstance)];
|
|
290
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
291
|
+
case 2:
|
|
228
292
|
this.queue_.add({ eventName: eventName, data: data }, opts);
|
|
229
|
-
|
|
230
|
-
case 3: return [2 /*return*/];
|
|
293
|
+
return [2 /*return*/];
|
|
231
294
|
}
|
|
232
295
|
});
|
|
233
296
|
});
|
|
@@ -272,8 +335,9 @@ var EventBusService = /** @class */ (function () {
|
|
|
272
335
|
case 1:
|
|
273
336
|
jobs = _b.sent();
|
|
274
337
|
return [4 /*yield*/, Promise.all(jobs.map(function (job) {
|
|
338
|
+
var _a;
|
|
275
339
|
_this.queue_
|
|
276
|
-
.add({ eventName: job.event_name, data: job.data }, { removeOnComplete: true })
|
|
340
|
+
.add({ eventName: job.event_name, data: job.data }, (_a = job.options) !== null && _a !== void 0 ? _a : { removeOnComplete: true })
|
|
277
341
|
.then(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
278
342
|
return __generator(this, function (_a) {
|
|
279
343
|
switch (_a.label) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/services/event-bus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AACvB,oDAA2B;
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/services/event-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EntityManager } from "typeorm";
|
|
2
|
-
import { ShippingProfileService } from ".";
|
|
2
|
+
import { ProductVariantInventoryService, ShippingProfileService } from ".";
|
|
3
3
|
import { TransactionBaseService } from "../interfaces";
|
|
4
4
|
import { Fulfillment, LineItem, ShippingMethod } from "../models";
|
|
5
5
|
import { FulfillmentRepository } from "../repositories/fulfillment";
|
|
@@ -19,6 +19,7 @@ declare type InjectedDependencies = {
|
|
|
19
19
|
fulfillmentRepository: typeof FulfillmentRepository;
|
|
20
20
|
trackingLinkRepository: typeof TrackingLinkRepository;
|
|
21
21
|
lineItemRepository: typeof LineItemRepository;
|
|
22
|
+
productVariantInventoryService: ProductVariantInventoryService;
|
|
22
23
|
};
|
|
23
24
|
/**
|
|
24
25
|
* Handles Fulfillments
|
|
@@ -33,7 +34,8 @@ declare class FulfillmentService extends TransactionBaseService {
|
|
|
33
34
|
protected readonly fulfillmentRepository_: typeof FulfillmentRepository;
|
|
34
35
|
protected readonly trackingLinkRepository_: typeof TrackingLinkRepository;
|
|
35
36
|
protected readonly lineItemRepository_: typeof LineItemRepository;
|
|
36
|
-
|
|
37
|
+
protected readonly productVariantInventoryService_: ProductVariantInventoryService;
|
|
38
|
+
constructor({ manager, totalsService, fulfillmentRepository, trackingLinkRepository, shippingProfileService, lineItemService, fulfillmentProviderService, lineItemRepository, productVariantInventoryService, }: InjectedDependencies);
|
|
37
39
|
partitionItems_(shippingMethods: ShippingMethod[], items: LineItem[]): FulfillmentItemPartition[];
|
|
38
40
|
/**
|
|
39
41
|
* Retrieves the order line items, given an array of items.
|
|
@@ -75,7 +77,9 @@ declare class FulfillmentService extends TransactionBaseService {
|
|
|
75
77
|
* @param custom - potential custom values to add
|
|
76
78
|
* @return the created fulfillments
|
|
77
79
|
*/
|
|
78
|
-
createFulfillment(order: CreateFulfillmentOrder, itemsToFulfill: FulFillmentItemType[], custom?: Partial<Fulfillment
|
|
80
|
+
createFulfillment(order: CreateFulfillmentOrder, itemsToFulfill: FulFillmentItemType[], custom?: Partial<Fulfillment>, context?: {
|
|
81
|
+
locationId?: string;
|
|
82
|
+
}): Promise<Fulfillment[]>;
|
|
79
83
|
/**
|
|
80
84
|
* Cancels a fulfillment with the fulfillment provider. Will decrement the
|
|
81
85
|
* fulfillment_quantity on the line items associated with the fulfillment.
|
|
@@ -82,7 +82,7 @@ var utils_1 = require("../utils");
|
|
|
82
82
|
var FulfillmentService = /** @class */ (function (_super) {
|
|
83
83
|
__extends(FulfillmentService, _super);
|
|
84
84
|
function FulfillmentService(_a) {
|
|
85
|
-
var manager = _a.manager, totalsService = _a.totalsService, fulfillmentRepository = _a.fulfillmentRepository, trackingLinkRepository = _a.trackingLinkRepository, shippingProfileService = _a.shippingProfileService, lineItemService = _a.lineItemService, fulfillmentProviderService = _a.fulfillmentProviderService, lineItemRepository = _a.lineItemRepository;
|
|
85
|
+
var manager = _a.manager, totalsService = _a.totalsService, fulfillmentRepository = _a.fulfillmentRepository, trackingLinkRepository = _a.trackingLinkRepository, shippingProfileService = _a.shippingProfileService, lineItemService = _a.lineItemService, fulfillmentProviderService = _a.fulfillmentProviderService, lineItemRepository = _a.lineItemRepository, productVariantInventoryService = _a.productVariantInventoryService;
|
|
86
86
|
var _this =
|
|
87
87
|
// eslint-disable-next-line prefer-rest-params
|
|
88
88
|
_super.call(this, arguments[0]) || this;
|
|
@@ -94,11 +94,15 @@ var FulfillmentService = /** @class */ (function (_super) {
|
|
|
94
94
|
_this.shippingProfileService_ = shippingProfileService;
|
|
95
95
|
_this.lineItemService_ = lineItemService;
|
|
96
96
|
_this.fulfillmentProviderService_ = fulfillmentProviderService;
|
|
97
|
+
_this.productVariantInventoryService_ = productVariantInventoryService;
|
|
97
98
|
return _this;
|
|
98
99
|
}
|
|
99
100
|
FulfillmentService.prototype.partitionItems_ = function (shippingMethods, items) {
|
|
100
101
|
var e_1, _a;
|
|
101
102
|
var partitioned = [];
|
|
103
|
+
if (shippingMethods.length === 1) {
|
|
104
|
+
return [{ items: items, shipping_method: shippingMethods[0] }];
|
|
105
|
+
}
|
|
102
106
|
var _loop_1 = function (method) {
|
|
103
107
|
var temp = {
|
|
104
108
|
shipping_method: method,
|
|
@@ -106,16 +110,11 @@ var FulfillmentService = /** @class */ (function (_super) {
|
|
|
106
110
|
};
|
|
107
111
|
// for each method find the items in the order, that are associated
|
|
108
112
|
// with the profile on the current shipping method
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
temp.items = items.filter(function (_a) {
|
|
115
|
-
var variant = _a.variant;
|
|
116
|
-
variant.product.profile_id === methodProfile_1;
|
|
117
|
-
});
|
|
118
|
-
}
|
|
113
|
+
var methodProfile = method.shipping_option.profile_id;
|
|
114
|
+
temp.items = items.filter(function (_a) {
|
|
115
|
+
var variant = _a.variant;
|
|
116
|
+
variant.product.profile_id === methodProfile;
|
|
117
|
+
});
|
|
119
118
|
partitioned.push(temp);
|
|
120
119
|
};
|
|
121
120
|
try {
|
|
@@ -233,51 +232,55 @@ var FulfillmentService = /** @class */ (function (_super) {
|
|
|
233
232
|
* @param custom - potential custom values to add
|
|
234
233
|
* @return the created fulfillments
|
|
235
234
|
*/
|
|
236
|
-
FulfillmentService.prototype.createFulfillment = function (order, itemsToFulfill, custom) {
|
|
235
|
+
FulfillmentService.prototype.createFulfillment = function (order, itemsToFulfill, custom, context) {
|
|
237
236
|
if (custom === void 0) { custom = {}; }
|
|
237
|
+
if (context === void 0) { context = {}; }
|
|
238
238
|
return __awaiter(this, void 0, void 0, function () {
|
|
239
|
+
var locationId;
|
|
239
240
|
var _this = this;
|
|
240
241
|
return __generator(this, function (_a) {
|
|
241
242
|
switch (_a.label) {
|
|
242
|
-
case 0:
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
var
|
|
258
|
-
return
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
243
|
+
case 0:
|
|
244
|
+
locationId = context.locationId;
|
|
245
|
+
return [4 /*yield*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
|
|
246
|
+
var fulfillmentRepository, lineItems, shipping_methods, fulfillments, created;
|
|
247
|
+
var _this = this;
|
|
248
|
+
return __generator(this, function (_a) {
|
|
249
|
+
switch (_a.label) {
|
|
250
|
+
case 0:
|
|
251
|
+
fulfillmentRepository = manager.getCustomRepository(this.fulfillmentRepository_);
|
|
252
|
+
return [4 /*yield*/, this.getFulfillmentItems_(order, itemsToFulfill)];
|
|
253
|
+
case 1:
|
|
254
|
+
lineItems = _a.sent();
|
|
255
|
+
shipping_methods = order.shipping_methods;
|
|
256
|
+
fulfillments = this.partitionItems_(shipping_methods, lineItems);
|
|
257
|
+
return [4 /*yield*/, Promise.all(fulfillments.map(function (_a) {
|
|
258
|
+
var shipping_method = _a.shipping_method, items = _a.items;
|
|
259
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
260
|
+
var ful, result, _b;
|
|
261
|
+
return __generator(this, function (_c) {
|
|
262
|
+
switch (_c.label) {
|
|
263
|
+
case 0:
|
|
264
|
+
ful = fulfillmentRepository.create(__assign(__assign({}, custom), { provider_id: shipping_method.shipping_option.provider_id, items: items.map(function (i) { return ({ item_id: i.id, quantity: i.quantity }); }), data: {}, location_id: locationId }));
|
|
265
|
+
return [4 /*yield*/, fulfillmentRepository.save(ful)];
|
|
266
|
+
case 1:
|
|
267
|
+
result = _c.sent();
|
|
268
|
+
_b = result;
|
|
269
|
+
return [4 /*yield*/, this.fulfillmentProviderService_.createFulfillment(shipping_method, items, __assign({}, order), __assign({}, result))];
|
|
270
|
+
case 2:
|
|
271
|
+
_b.data =
|
|
272
|
+
_c.sent();
|
|
273
|
+
return [2 /*return*/, fulfillmentRepository.save(result)];
|
|
274
|
+
}
|
|
275
|
+
});
|
|
272
276
|
});
|
|
273
|
-
});
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
}); })];
|
|
277
|
+
}))];
|
|
278
|
+
case 2:
|
|
279
|
+
created = _a.sent();
|
|
280
|
+
return [2 /*return*/, created];
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
}); })];
|
|
281
284
|
case 1: return [2 /*return*/, _a.sent()];
|
|
282
285
|
}
|
|
283
286
|
});
|
|
@@ -297,10 +300,10 @@ var FulfillmentService = /** @class */ (function (_super) {
|
|
|
297
300
|
return __generator(this, function (_a) {
|
|
298
301
|
switch (_a.label) {
|
|
299
302
|
case 0: return [4 /*yield*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
|
|
300
|
-
var id, fulfillment, lineItemServiceTx,
|
|
301
|
-
var
|
|
302
|
-
return __generator(this, function (
|
|
303
|
-
switch (
|
|
303
|
+
var id, fulfillment, lineItemServiceTx, fulfillmentRepo, canceled;
|
|
304
|
+
var _this = this;
|
|
305
|
+
return __generator(this, function (_a) {
|
|
306
|
+
switch (_a.label) {
|
|
304
307
|
case 0:
|
|
305
308
|
id = typeof fulfillmentOrId === "string"
|
|
306
309
|
? fulfillmentOrId
|
|
@@ -309,52 +312,38 @@ var FulfillmentService = /** @class */ (function (_super) {
|
|
|
309
312
|
relations: ["items", "claim_order", "swap"],
|
|
310
313
|
})];
|
|
311
314
|
case 1:
|
|
312
|
-
fulfillment =
|
|
315
|
+
fulfillment = _a.sent();
|
|
313
316
|
if (fulfillment.shipped_at) {
|
|
314
317
|
throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.NOT_ALLOWED, "The fulfillment has already been shipped. Shipped fulfillments cannot be canceled");
|
|
315
318
|
}
|
|
316
319
|
return [4 /*yield*/, this.fulfillmentProviderService_.cancelFulfillment(fulfillment)];
|
|
317
320
|
case 2:
|
|
318
|
-
|
|
321
|
+
_a.sent();
|
|
319
322
|
fulfillment.canceled_at = new Date();
|
|
320
323
|
lineItemServiceTx = this.lineItemService_.withTransaction(manager);
|
|
321
|
-
|
|
324
|
+
return [4 /*yield*/, Promise.all(fulfillment.items.map(function (fItem) { return __awaiter(_this, void 0, void 0, function () {
|
|
325
|
+
var item, fulfilledQuantity;
|
|
326
|
+
return __generator(this, function (_a) {
|
|
327
|
+
switch (_a.label) {
|
|
328
|
+
case 0: return [4 /*yield*/, lineItemServiceTx.retrieve(fItem.item_id)];
|
|
329
|
+
case 1:
|
|
330
|
+
item = _a.sent();
|
|
331
|
+
fulfilledQuantity = item.fulfilled_quantity - fItem.quantity;
|
|
332
|
+
return [4 /*yield*/, lineItemServiceTx.update(item.id, {
|
|
333
|
+
fulfilled_quantity: fulfilledQuantity,
|
|
334
|
+
})];
|
|
335
|
+
case 2:
|
|
336
|
+
_a.sent();
|
|
337
|
+
return [2 /*return*/];
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
}); }))];
|
|
322
341
|
case 3:
|
|
323
|
-
|
|
324
|
-
_a = __values(fulfillment.items), _b = _a.next();
|
|
325
|
-
_d.label = 4;
|
|
326
|
-
case 4:
|
|
327
|
-
if (!!_b.done) return [3 /*break*/, 8];
|
|
328
|
-
fItem = _b.value;
|
|
329
|
-
return [4 /*yield*/, lineItemServiceTx.retrieve(fItem.item_id)];
|
|
330
|
-
case 5:
|
|
331
|
-
item = _d.sent();
|
|
332
|
-
fulfilledQuantity = item.fulfilled_quantity - fItem.quantity;
|
|
333
|
-
return [4 /*yield*/, lineItemServiceTx.update(item.id, {
|
|
334
|
-
fulfilled_quantity: fulfilledQuantity,
|
|
335
|
-
})];
|
|
336
|
-
case 6:
|
|
337
|
-
_d.sent();
|
|
338
|
-
_d.label = 7;
|
|
339
|
-
case 7:
|
|
340
|
-
_b = _a.next();
|
|
341
|
-
return [3 /*break*/, 4];
|
|
342
|
-
case 8: return [3 /*break*/, 11];
|
|
343
|
-
case 9:
|
|
344
|
-
e_2_1 = _d.sent();
|
|
345
|
-
e_2 = { error: e_2_1 };
|
|
346
|
-
return [3 /*break*/, 11];
|
|
347
|
-
case 10:
|
|
348
|
-
try {
|
|
349
|
-
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
350
|
-
}
|
|
351
|
-
finally { if (e_2) throw e_2.error; }
|
|
352
|
-
return [7 /*endfinally*/];
|
|
353
|
-
case 11:
|
|
342
|
+
_a.sent();
|
|
354
343
|
fulfillmentRepo = manager.getCustomRepository(this.fulfillmentRepository_);
|
|
355
344
|
return [4 /*yield*/, fulfillmentRepo.save(fulfillment)];
|
|
356
|
-
case
|
|
357
|
-
canceled =
|
|
345
|
+
case 4:
|
|
346
|
+
canceled = _a.sent();
|
|
358
347
|
return [2 /*return*/, canceled];
|
|
359
348
|
}
|
|
360
349
|
});
|