@hszrdm/core 1.7.0 → 1.9.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/.medusa/server/src/admin/index.js +6832 -5418
- package/.medusa/server/src/admin/index.mjs +6834 -5420
- package/.medusa/server/src/api/admin/arukereso/marketplace-preview/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/arukereso/marketplace-preview/route.js +26 -0
- package/.medusa/server/src/api/admin/billingo/advance/route.d.ts +8 -0
- package/.medusa/server/src/api/admin/billingo/advance/route.js +55 -0
- package/.medusa/server/src/api/admin/billingo/partial-credit/route.d.ts +8 -0
- package/.medusa/server/src/api/admin/billingo/partial-credit/route.js +69 -0
- package/.medusa/server/src/api/admin/documents/[id]/route.d.ts +22 -0
- package/.medusa/server/src/api/admin/documents/[id]/route.js +107 -0
- package/.medusa/server/src/api/admin/documents/route.d.ts +21 -0
- package/.medusa/server/src/api/admin/documents/route.js +117 -0
- package/.medusa/server/src/api/admin/google-ads/diagnostics/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/google-ads/diagnostics/route.js +26 -0
- package/.medusa/server/src/api/admin/google-ads/oauth/start/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/google-ads/oauth/start/route.js +27 -0
- package/.medusa/server/src/api/admin/google-merchant/data-source/sync/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/google-merchant/data-source/sync/route.js +69 -0
- package/.medusa/server/src/api/admin/google-merchant/diagnostics/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/google-merchant/diagnostics/route.js +26 -0
- package/.medusa/server/src/api/admin/google-merchant/oauth/start/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/google-merchant/oauth/start/route.js +25 -0
- package/.medusa/server/src/api/admin/integrations/[key]/verify/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/integrations/[key]/verify/route.js +79 -0
- package/.medusa/server/src/api/admin/orders/[id]/billingo/route.js +10 -1
- package/.medusa/server/src/api/admin/orders/[id]/foxpost/create/route.d.ts +3 -5
- package/.medusa/server/src/api/admin/orders/[id]/foxpost/create/route.js +7 -14
- package/.medusa/server/src/api/admin/orders/[id]/foxpost/label/route.js +12 -6
- package/.medusa/server/src/api/admin/orders/[id]/gls/create/route.d.ts +2 -1
- package/.medusa/server/src/api/admin/orders/[id]/gls/create/route.js +6 -14
- package/.medusa/server/src/api/admin/orders/[id]/gls/label/route.js +9 -4
- package/.medusa/server/src/api/admin/orders/[id]/shipping/label/route.js +4 -2
- package/.medusa/server/src/api/admin/orders/[id]/shipping/route.d.ts +1 -2
- package/.medusa/server/src/api/admin/orders/[id]/shipping/route.js +46 -8
- package/.medusa/server/src/api/admin/shipping/bulk/create/route.d.ts +3 -6
- package/.medusa/server/src/api/admin/shipping/bulk/create/route.js +6 -57
- package/.medusa/server/src/api/admin/shipping/bulk/labels/route.js +4 -2
- package/.medusa/server/src/api/admin/shipping/mpl/close/route.d.ts +1 -1
- package/.medusa/server/src/api/admin/shipping/mpl/close/route.js +48 -70
- package/.medusa/server/src/api/admin/shipping/orders/route.js +19 -4
- package/.medusa/server/src/api/auth/google-ads/callback/route.d.ts +2 -0
- package/.medusa/server/src/api/auth/google-ads/callback/route.js +58 -0
- package/.medusa/server/src/api/feeds/arukereso-marketplace.xml/route.d.ts +2 -0
- package/.medusa/server/src/api/feeds/arukereso-marketplace.xml/route.js +33 -0
- package/.medusa/server/src/api/feeds/google-merchant.xml/route.js +5 -3
- package/.medusa/server/src/api/hooks/arukereso/marketplace/order/route.d.ts +2 -0
- package/.medusa/server/src/api/hooks/arukereso/marketplace/order/route.js +211 -0
- package/.medusa/server/src/api/hooks/simplepay/ipn/route.js +113 -23
- package/.medusa/server/src/api/store/account/orders/[id]/reorder/route.d.ts +2 -0
- package/.medusa/server/src/api/store/account/orders/[id]/reorder/route.js +113 -0
- package/.medusa/server/src/api/store/arukereso/backlink/route.d.ts +2 -0
- package/.medusa/server/src/api/store/arukereso/backlink/route.js +73 -0
- package/.medusa/server/src/api/store/arukereso/trusted-shop/[id]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/arukereso/trusted-shop/[id]/route.js +84 -0
- package/.medusa/server/src/api/store/arukereso/widget/route.d.ts +2 -0
- package/.medusa/server/src/api/store/arukereso/widget/route.js +64 -0
- package/.medusa/server/src/api/store/cms/entries/[slug]/route.js +3 -2
- package/.medusa/server/src/api/store/cms/entries/route.js +3 -2
- package/.medusa/server/src/api/store/documents/route.d.ts +2 -0
- package/.medusa/server/src/api/store/documents/route.js +84 -0
- package/.medusa/server/src/api/store/google-merchant/oauth/callback/route.d.ts +2 -0
- package/.medusa/server/src/api/store/google-merchant/oauth/callback/route.js +50 -0
- package/.medusa/server/src/config.d.ts +3 -3
- package/.medusa/server/src/config.js +70 -87
- package/.medusa/server/src/core/documents.d.ts +31 -0
- package/.medusa/server/src/core/documents.js +47 -0
- package/.medusa/server/src/core/version.d.ts +2 -2
- package/.medusa/server/src/core/version.js +2 -2
- package/.medusa/server/src/jobs/mpl-status-sync.js +10 -6
- package/.medusa/server/src/jobs/shipping-status-sync-eligibility.d.ts +5 -0
- package/.medusa/server/src/jobs/shipping-status-sync-eligibility.js +26 -0
- package/.medusa/server/src/jobs/shipping-status-sync.d.ts +6 -0
- package/.medusa/server/src/jobs/shipping-status-sync.js +63 -28
- package/.medusa/server/src/lib/modules/arukereso/index.d.ts +1 -0
- package/.medusa/server/src/lib/modules/arukereso/index.js +2 -1
- package/.medusa/server/src/lib/modules/arukereso/marketplace-feed.d.ts +19 -0
- package/.medusa/server/src/lib/modules/arukereso/marketplace-feed.js +100 -0
- package/.medusa/server/src/lib/modules/billingo/actions.js +42 -12
- package/.medusa/server/src/lib/modules/billingo/advance.d.ts +68 -0
- package/.medusa/server/src/lib/modules/billingo/advance.js +309 -0
- package/.medusa/server/src/lib/modules/billingo/automation.js +49 -9
- package/.medusa/server/src/lib/modules/billingo/client.d.ts +5 -2
- package/.medusa/server/src/lib/modules/billingo/client.js +17 -8
- package/.medusa/server/src/lib/modules/billingo/index.d.ts +2 -0
- package/.medusa/server/src/lib/modules/billingo/index.js +3 -1
- package/.medusa/server/src/lib/modules/billingo/mapper.d.ts +42 -2
- package/.medusa/server/src/lib/modules/billingo/mapper.js +77 -4
- package/.medusa/server/src/lib/modules/billingo/partial-credit.d.ts +55 -0
- package/.medusa/server/src/lib/modules/billingo/partial-credit.js +338 -0
- package/.medusa/server/src/lib/modules/billingo/types.d.ts +21 -2
- package/.medusa/server/src/lib/modules/google-ads/adjustments.d.ts +21 -0
- package/.medusa/server/src/lib/modules/google-ads/adjustments.js +146 -0
- package/.medusa/server/src/lib/modules/google-ads/api.d.ts +23 -0
- package/.medusa/server/src/lib/modules/google-ads/api.js +171 -0
- package/.medusa/server/src/lib/modules/google-ads/diagnostics.d.ts +47 -0
- package/.medusa/server/src/lib/modules/google-ads/diagnostics.js +164 -0
- package/.medusa/server/src/lib/modules/google-merchant/category-fields.d.ts +7 -0
- package/.medusa/server/src/lib/modules/google-merchant/category-fields.js +210 -0
- package/.medusa/server/src/lib/modules/google-merchant/data-source.d.ts +17 -0
- package/.medusa/server/src/lib/modules/google-merchant/data-source.js +132 -0
- package/.medusa/server/src/lib/modules/google-merchant/diagnostics.d.ts +33 -0
- package/.medusa/server/src/lib/modules/google-merchant/diagnostics.js +113 -0
- package/.medusa/server/src/lib/modules/google-merchant/index.d.ts +5 -0
- package/.medusa/server/src/lib/modules/google-merchant/index.js +6 -1
- package/.medusa/server/src/lib/modules/google-merchant/merchant-api.d.ts +18 -0
- package/.medusa/server/src/lib/modules/google-merchant/merchant-api.js +120 -0
- package/.medusa/server/src/lib/modules/google-merchant/shipping.d.ts +13 -0
- package/.medusa/server/src/lib/modules/google-merchant/shipping.js +97 -0
- package/.medusa/server/src/lib/modules/google-tag-manager/api.d.ts +1 -0
- package/.medusa/server/src/lib/modules/google-tag-manager/api.js +3 -0
- package/.medusa/server/src/lib/modules/google-tag-manager/index.d.ts +1 -0
- package/.medusa/server/src/lib/modules/google-tag-manager/index.js +3 -0
- package/.medusa/server/src/lib/modules/google-tag-manager/sync.d.ts +1 -0
- package/.medusa/server/src/lib/modules/google-tag-manager/sync.js +3 -0
- package/.medusa/server/src/lib/modules/shipping/actions.d.ts +2 -2
- package/.medusa/server/src/lib/modules/shipping/actions.js +171 -352
- package/.medusa/server/src/lib/modules/shipping/durable-create.d.ts +2 -1
- package/.medusa/server/src/lib/modules/shipping/durable-create.js +33 -5
- package/.medusa/server/src/lib/modules/shipping/idempotency.js +4 -2
- package/.medusa/server/src/lib/modules/shipping/index.d.ts +1 -0
- package/.medusa/server/src/lib/modules/shipping/index.js +2 -1
- package/.medusa/server/src/lib/modules/shipping/native-fulfillment.d.ts +73 -0
- package/.medusa/server/src/lib/modules/shipping/native-fulfillment.js +191 -0
- package/.medusa/server/src/lib/modules/shipping/operations.d.ts +28 -0
- package/.medusa/server/src/lib/modules/shipping/operations.js +9 -1
- package/.medusa/server/src/lib/modules/shipping/print-eligibility.d.ts +12 -0
- package/.medusa/server/src/lib/modules/shipping/print-eligibility.js +34 -0
- package/.medusa/server/src/lib/modules/shipping/recipient-email.d.ts +18 -0
- package/.medusa/server/src/lib/modules/shipping/recipient-email.js +29 -0
- package/.medusa/server/src/lib/modules/shipping/resolve.d.ts +9 -0
- package/.medusa/server/src/lib/modules/shipping/resolve.js +65 -0
- package/.medusa/server/src/lib/modules/shipping/types.d.ts +1 -1
- package/.medusa/server/src/modules/core-documents/index.d.ts +38 -0
- package/.medusa/server/src/modules/core-documents/index.js +18 -0
- package/.medusa/server/src/modules/core-documents/migrations/Migration20261102190000.d.ts +5 -0
- package/.medusa/server/src/modules/core-documents/migrations/Migration20261102190000.js +22 -0
- package/.medusa/server/src/modules/core-documents/models/core-document-assignment.d.ts +9 -0
- package/.medusa/server/src/modules/core-documents/models/core-document-assignment.js +18 -0
- package/.medusa/server/src/modules/core-documents/models/core-document.d.ts +18 -0
- package/.medusa/server/src/modules/core-documents/models/core-document.js +27 -0
- package/.medusa/server/src/modules/core-documents/service.d.ts +38 -0
- package/.medusa/server/src/modules/core-documents/service.js +13 -0
- package/.medusa/server/src/modules/integration-operation/migrations/Migration20261104010000.d.ts +5 -0
- package/.medusa/server/src/modules/integration-operation/migrations/Migration20261104010000.js +34 -0
- package/.medusa/server/src/modules/integration-operation/models/integration-operation.d.ts +1 -1
- package/.medusa/server/src/modules/integration-operation/models/integration-operation.js +2 -2
- package/.medusa/server/src/modules/integration-operation/service.d.ts +1 -1
- package/.medusa/server/src/modules/integration-operation/state.d.ts +1 -0
- package/.medusa/server/src/modules/integration-operation/state.js +11 -50
- package/.medusa/server/src/modules/integration-operation/types.d.ts +1 -1
- package/.medusa/server/src/modules/integration-settings/arukereso-registration.js +19 -2
- package/.medusa/server/src/modules/integration-settings/connection-test.js +20 -4
- package/.medusa/server/src/modules/integration-settings/csomagpiac-definition.d.ts +2 -0
- package/.medusa/server/src/modules/integration-settings/csomagpiac-definition.js +49 -0
- package/.medusa/server/src/modules/integration-settings/csomagpiac-registration.d.ts +1 -0
- package/.medusa/server/src/modules/integration-settings/csomagpiac-registration.js +35 -0
- package/.medusa/server/src/modules/integration-settings/google-merchant-registration.js +23 -2
- package/.medusa/server/src/modules/integration-settings/hot-reload-registration.d.ts +1 -0
- package/.medusa/server/src/modules/integration-settings/hot-reload-registration.js +23 -0
- package/.medusa/server/src/modules/integration-settings/index.d.ts +4 -0
- package/.medusa/server/src/modules/integration-settings/index.js +5 -1
- package/.medusa/server/src/modules/integration-settings/manager.js +38 -4
- package/.medusa/server/src/modules/integration-settings/registry.js +1 -14
- package/.medusa/server/src/modules/integration-settings/reloadable.d.ts +10 -0
- package/.medusa/server/src/modules/integration-settings/reloadable.js +58 -0
- package/.medusa/server/src/modules/integration-settings/runtime-snapshot.d.ts +9 -0
- package/.medusa/server/src/modules/integration-settings/runtime-snapshot.js +48 -3
- package/.medusa/server/src/modules/integration-settings/simplepay-registration.d.ts +1 -0
- package/.medusa/server/src/modules/integration-settings/simplepay-registration.js +18 -0
- package/.medusa/server/src/modules/integration-settings/storefront-public-registration.js +15 -5
- package/.medusa/server/src/providers/csomagpiac/client.d.ts +25 -0
- package/.medusa/server/src/providers/csomagpiac/client.js +144 -0
- package/.medusa/server/src/providers/csomagpiac/fulfillment-provider.d.ts +50 -0
- package/.medusa/server/src/providers/csomagpiac/fulfillment-provider.js +248 -0
- package/.medusa/server/src/providers/csomagpiac/index.d.ts +7 -0
- package/.medusa/server/src/providers/csomagpiac/index.js +30 -0
- package/.medusa/server/src/providers/csomagpiac/service.d.ts +60 -0
- package/.medusa/server/src/providers/csomagpiac/service.js +296 -0
- package/.medusa/server/src/providers/csomagpiac/types.d.ts +66 -0
- package/.medusa/server/src/providers/csomagpiac/types.js +27 -0
- package/.medusa/server/src/providers/dpd/fulfillment-provider.d.ts +5 -1
- package/.medusa/server/src/providers/dpd/fulfillment-provider.js +94 -27
- package/.medusa/server/src/providers/dpd/service.d.ts +2 -0
- package/.medusa/server/src/providers/dpd/service.js +32 -4
- package/.medusa/server/src/providers/dpd/types.d.ts +1 -0
- package/.medusa/server/src/providers/dpd/types.js +1 -1
- package/.medusa/server/src/providers/email/service.d.ts +7 -6
- package/.medusa/server/src/providers/email/service.js +51 -25
- package/.medusa/server/src/providers/foxpost/foxpost-service.d.ts +3 -1
- package/.medusa/server/src/providers/foxpost/foxpost-service.js +19 -17
- package/.medusa/server/src/providers/foxpost/fulfillment-provider.d.ts +10 -3
- package/.medusa/server/src/providers/foxpost/fulfillment-provider.js +99 -69
- package/.medusa/server/src/providers/foxpost/types.d.ts +1 -0
- package/.medusa/server/src/providers/gls/fulfillment-provider.d.ts +4 -0
- package/.medusa/server/src/providers/gls/fulfillment-provider.js +87 -17
- package/.medusa/server/src/providers/gls/gls-service.d.ts +19 -1
- package/.medusa/server/src/providers/gls/gls-service.js +32 -64
- package/.medusa/server/src/providers/gls/types.d.ts +16 -0
- package/.medusa/server/src/providers/mpl/fulfillment-provider.d.ts +4 -0
- package/.medusa/server/src/providers/mpl/fulfillment-provider.js +67 -176
- package/.medusa/server/src/providers/mpl/index.d.ts +2 -0
- package/.medusa/server/src/providers/mpl/index.js +7 -2
- package/.medusa/server/src/providers/mpl/service.d.ts +37 -1
- package/.medusa/server/src/providers/mpl/service.js +113 -366
- package/.medusa/server/src/providers/mpl/types.d.ts +19 -0
- package/.medusa/server/src/providers/mpl/types.js +1 -1
- package/.medusa/server/src/providers/packeta/client.d.ts +2 -1
- package/.medusa/server/src/providers/packeta/client.js +24 -2
- package/.medusa/server/src/providers/packeta/fulfillment-provider.d.ts +4 -0
- package/.medusa/server/src/providers/packeta/fulfillment-provider.js +84 -9
- package/.medusa/server/src/providers/packeta/point-validation.d.ts +2 -0
- package/.medusa/server/src/providers/packeta/point-validation.js +99 -0
- package/.medusa/server/src/providers/packeta/service.d.ts +1 -0
- package/.medusa/server/src/providers/packeta/service.js +91 -23
- package/.medusa/server/src/providers/packeta/types.d.ts +27 -0
- package/.medusa/server/src/providers/packeta/types.js +1 -1
- package/.medusa/server/src/providers/resilient-stripe/index.d.ts +19 -1
- package/.medusa/server/src/providers/resilient-stripe/index.js +59 -12
- package/.medusa/server/src/providers/simplepay/config.js +11 -1
- package/.medusa/server/src/providers/simplepay/index.d.ts +2 -0
- package/.medusa/server/src/providers/simplepay/index.js +5 -3
- package/.medusa/server/src/providers/simplepay/runtime-service.d.ts +13 -0
- package/.medusa/server/src/providers/simplepay/runtime-service.js +55 -0
- package/.medusa/server/src/providers/simplepay/service.d.ts +2 -0
- package/.medusa/server/src/providers/simplepay/service.js +40 -5
- package/.medusa/server/src/scripts/verify-runtime-modules.d.ts +7 -0
- package/.medusa/server/src/scripts/verify-runtime-modules.js +46 -0
- package/.medusa/server/src/subscribers/google-ads-order-canceled.d.ts +7 -0
- package/.medusa/server/src/subscribers/google-ads-order-canceled.js +50 -0
- package/.medusa/server/src/subscribers/google-ads-payment-refunded.d.ts +7 -0
- package/.medusa/server/src/subscribers/google-ads-payment-refunded.js +181 -0
- package/.medusa/server/src/subscribers/simplepay-paid-order-recovery.js +14 -1
- package/package.json +23 -18
|
@@ -7,4 +7,5 @@ export declare function runDurableShipmentCreate<T extends object>(input: {
|
|
|
7
7
|
cancelledExternalId?: string | null;
|
|
8
8
|
create: () => Promise<T>;
|
|
9
9
|
}): Promise<T>;
|
|
10
|
-
export declare function
|
|
10
|
+
export declare function isUncertainRemoteFailure(error: unknown): boolean;
|
|
11
|
+
export declare const isUncertainCreateFailure: typeof isUncertainRemoteFailure;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isUncertainCreateFailure = void 0;
|
|
3
4
|
exports.runDurableShipmentCreate = runDurableShipmentCreate;
|
|
4
|
-
exports.
|
|
5
|
+
exports.isUncertainRemoteFailure = isUncertainRemoteFailure;
|
|
5
6
|
const state_1 = require("../../../modules/integration-operation/state");
|
|
6
7
|
const idempotency_1 = require("./idempotency");
|
|
7
8
|
async function runDurableShipmentCreate(input) {
|
|
@@ -35,9 +36,12 @@ async function runDurableShipmentCreate(input) {
|
|
|
35
36
|
}
|
|
36
37
|
throw new Error("A csomaglétrehozás már folyamatban van.");
|
|
37
38
|
}
|
|
39
|
+
let remoteSucceeded = false;
|
|
40
|
+
let shipmentRecord;
|
|
38
41
|
try {
|
|
39
42
|
const shipment = await input.create();
|
|
40
|
-
|
|
43
|
+
remoteSucceeded = true;
|
|
44
|
+
shipmentRecord = shipment;
|
|
41
45
|
await (0, state_1.operationSucceeded)(input.operationStore, acquired.operation, (0, idempotency_1.shipmentExternalId)(input.carrier, shipmentRecord), {
|
|
42
46
|
carrier: input.carrier,
|
|
43
47
|
action: "create",
|
|
@@ -46,11 +50,30 @@ async function runDurableShipmentCreate(input) {
|
|
|
46
50
|
return shipment;
|
|
47
51
|
}
|
|
48
52
|
catch (error) {
|
|
49
|
-
|
|
53
|
+
try {
|
|
54
|
+
await (0, state_1.operationFailed)(input.operationStore, acquired.operation, error, remoteSucceeded || isUncertainRemoteFailure(error), shipmentRecord
|
|
55
|
+
? (0, idempotency_1.shipmentExternalId)(input.carrier, shipmentRecord)
|
|
56
|
+
: undefined, shipmentRecord
|
|
57
|
+
? {
|
|
58
|
+
carrier: input.carrier,
|
|
59
|
+
action: "create",
|
|
60
|
+
shipment: shipmentRecord,
|
|
61
|
+
}
|
|
62
|
+
: undefined);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Never replace the original failure after a non-idempotent remote call.
|
|
66
|
+
// A stale processing operation will itself be reconciled instead of replayed.
|
|
67
|
+
}
|
|
50
68
|
throw error;
|
|
51
69
|
}
|
|
52
70
|
}
|
|
53
|
-
function
|
|
71
|
+
function isUncertainRemoteFailure(error) {
|
|
72
|
+
if (error &&
|
|
73
|
+
typeof error === "object" &&
|
|
74
|
+
error.remoteOutcomeUncertain === true) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
54
77
|
const status = Number(error?.status);
|
|
55
78
|
if (Number.isFinite(status)) {
|
|
56
79
|
if (status >= 500)
|
|
@@ -66,6 +89,8 @@ function isUncertainCreateFailure(error) {
|
|
|
66
89
|
return [
|
|
67
90
|
"timeout",
|
|
68
91
|
"timed out",
|
|
92
|
+
"időtúllépés",
|
|
93
|
+
"időtúllép",
|
|
69
94
|
"nem válaszolt",
|
|
70
95
|
"network",
|
|
71
96
|
"fetch failed",
|
|
@@ -73,6 +98,9 @@ function isUncertainCreateFailure(error) {
|
|
|
73
98
|
"socket",
|
|
74
99
|
"átmenetileg nem elérhető",
|
|
75
100
|
"connection reset",
|
|
101
|
+
"aborted",
|
|
102
|
+
"aborterror",
|
|
76
103
|
].some((marker) => message.includes(marker));
|
|
77
104
|
}
|
|
78
|
-
|
|
105
|
+
exports.isUncertainCreateFailure = isUncertainRemoteFailure;
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYWJsZS1jcmVhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZHVsZXMvc2hpcHBpbmcvZHVyYWJsZS1jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBYUEsNERBOEZDO0FBRUQsNERBbUNDO0FBaEpELHdFQUtxRDtBQUdyRCwrQ0FHc0I7QUFFZixLQUFLLFVBQVUsd0JBQXdCLENBQW1CLEtBTWhFO0lBQ0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQ2IsMEhBQTBILENBQzNILENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSx3QkFBZ0IsRUFBQyxLQUFLLENBQUMsY0FBYyxFQUFFO1FBQzVELFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTztRQUN2QixjQUFjLEVBQUUsaUJBQWlCO1FBQ2pDLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTztRQUN4QixlQUFlLEVBQUUsSUFBQSwwQ0FBNEIsRUFDM0MsS0FBSyxDQUFDLE9BQU8sRUFDYixLQUFLLENBQUMsT0FBTyxFQUNiLEtBQUssQ0FBQyxtQkFBbUIsQ0FDMUI7UUFDRCxjQUFjLEVBQUU7WUFDZCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsTUFBTSxFQUFFLFFBQVE7U0FDakI7S0FDRixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDOUMsTUFBTSxRQUFR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
|
|
@@ -12,7 +12,9 @@ function shipmentExternalId(carrier, shipment) {
|
|
|
12
12
|
? shipment.packetId ?? shipment.trackingNumber
|
|
13
13
|
: carrier === "dpd"
|
|
14
14
|
? shipment.parcelNumber ?? shipment.shipmentId
|
|
15
|
-
:
|
|
15
|
+
: carrier === "csomagpiac"
|
|
16
|
+
? shipment.identifier ?? shipment.trackingNumber
|
|
17
|
+
: shipment.trackingNumber;
|
|
16
18
|
return value == null ? null : String(value);
|
|
17
19
|
}
|
|
18
20
|
function cancelledShipmentExternalId(carrier, shipment) {
|
|
@@ -25,4 +27,4 @@ function shipmentCreateIdempotencyKey(carrier, orderId, cancelledExternalId) {
|
|
|
25
27
|
const base = `${carrier}:shipment:create:${orderId}`;
|
|
26
28
|
return cancelledExternalId ? `${base}:after:${cancelledExternalId}` : base;
|
|
27
29
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbXBvdGVuY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZHVsZXMvc2hpcHBpbmcvaWRlbXBvdGVuY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxnREFpQkM7QUFFRCxrRUFRQztBQUVELG9FQU9DO0FBcENELFNBQWdCLGtCQUFrQixDQUNoQyxPQUF3QixFQUN4QixRQUFpQztJQUVqQyxNQUFNLEtBQUssR0FBRyxPQUFPLEtBQUssU0FBUztRQUNqQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsY0FBYztRQUMvQyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUs7WUFDakIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLElBQUksUUFBUSxDQUFDLFFBQVE7WUFDNUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxTQUFTO2dCQUNyQixDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsY0FBYztnQkFDOUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLO29CQUNqQixDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsVUFBVTtvQkFDOUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZO3dCQUN4QixDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsY0FBYzt3QkFDaEQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUE7SUFFbkMsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUM3QyxDQUFDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQ3pDLE9BQXdCLEVBQ3hCLFFBQW9EO0lBRXBELElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDN0UsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUNELE9BQU8sa0JBQWtCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQTtBQUMzRCxDQUFDO0FBRUQsU0FBZ0IsNEJBQTRCLENBQzFDLE9BQXdCLEVBQ3hCLE9BQWUsRUFDZixtQkFBbUM7SUFFbkMsTUFBTSxJQUFJLEdBQUcsR0FBRyxPQUFPLG9CQUFvQixPQUFPLEVBQUUsQ0FBQTtJQUNwRCxPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksVUFBVSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFDNUUsQ0FBQyJ9
|
|
@@ -22,4 +22,5 @@ __exportStar(require("./durable-create"), exports);
|
|
|
22
22
|
__exportStar(require("./actions"), exports);
|
|
23
23
|
__exportStar(require("./webhooks"), exports);
|
|
24
24
|
__exportStar(require("./tracking"), exports);
|
|
25
|
-
|
|
25
|
+
__exportStar(require("./resolve"), exports);
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZHVsZXMvc2hpcHBpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF1QjtBQUN2QiwrQ0FBNEI7QUFDNUIsd0NBQXFCO0FBQ3JCLGdEQUE2QjtBQUM3QixtREFBZ0M7QUFDaEMsNENBQXlCO0FBQ3pCLDZDQUEwQjtBQUMxQiw2Q0FBMEI7QUFDMUIsNENBQXlCIn0=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { ShippingOrderService } from "./types";
|
|
2
|
+
import type { IntegrationOperationStore } from "../../../modules/integration-operation/types";
|
|
3
|
+
type QuantityValue = number | string | bigint | {
|
|
4
|
+
value?: unknown;
|
|
5
|
+
numeric?: unknown;
|
|
6
|
+
raw?: unknown;
|
|
7
|
+
toString?: () => string;
|
|
8
|
+
} | null;
|
|
9
|
+
type OrderItem = {
|
|
10
|
+
id: string;
|
|
11
|
+
quantity?: QuantityValue;
|
|
12
|
+
fulfilled_quantity?: QuantityValue;
|
|
13
|
+
detail?: {
|
|
14
|
+
quantity?: QuantityValue;
|
|
15
|
+
fulfilled_quantity?: QuantityValue;
|
|
16
|
+
raw_quantity?: QuantityValue;
|
|
17
|
+
raw_fulfilled_quantity?: QuantityValue;
|
|
18
|
+
} | null;
|
|
19
|
+
raw_quantity?: QuantityValue;
|
|
20
|
+
raw_fulfilled_quantity?: QuantityValue;
|
|
21
|
+
};
|
|
22
|
+
type NativeOrder = {
|
|
23
|
+
id: string;
|
|
24
|
+
items?: OrderItem[] | null;
|
|
25
|
+
fulfillments?: Array<{
|
|
26
|
+
id: string;
|
|
27
|
+
}> | null;
|
|
28
|
+
status?: string;
|
|
29
|
+
canceled_at?: string | Date | null;
|
|
30
|
+
};
|
|
31
|
+
type Runtime = {
|
|
32
|
+
resolve: (key: string) => unknown;
|
|
33
|
+
};
|
|
34
|
+
type WorkflowResult = {
|
|
35
|
+
id?: string;
|
|
36
|
+
};
|
|
37
|
+
/** Extract concise diagnostics from nested Medusa workflow errors. */
|
|
38
|
+
export declare function fulfillmentErrorMessage(error: unknown): string;
|
|
39
|
+
export declare function remainingFulfillmentItems(order: NativeOrder): Array<{
|
|
40
|
+
id: string;
|
|
41
|
+
quantity: number;
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* HSZRDM creates parcels through the very same Medusa fulfillment workflow
|
|
45
|
+
* that the native order screen uses. The provider's runDurableShipmentCreate
|
|
46
|
+
* guards against duplicate external side effects across both surfaces.
|
|
47
|
+
* Creating a fulfillment does NOT mark a shipment as shipped/delivered.
|
|
48
|
+
*/
|
|
49
|
+
export declare function createCarrierOrderFulfillment(input: {
|
|
50
|
+
container: Runtime;
|
|
51
|
+
orderService: ShippingOrderService;
|
|
52
|
+
operationStore: IntegrationOperationStore;
|
|
53
|
+
orderId: string;
|
|
54
|
+
packageSize?: unknown;
|
|
55
|
+
actorId?: string | null;
|
|
56
|
+
runWorkflow?: (payload: {
|
|
57
|
+
order_id: string;
|
|
58
|
+
location_id: string;
|
|
59
|
+
items: Array<{
|
|
60
|
+
id: string;
|
|
61
|
+
quantity: number;
|
|
62
|
+
}>;
|
|
63
|
+
}) => Promise<WorkflowResult>;
|
|
64
|
+
}): Promise<{
|
|
65
|
+
syncWarning?: string | undefined;
|
|
66
|
+
carrier: import("./types").ShippingCarrier;
|
|
67
|
+
action: string;
|
|
68
|
+
shipment: Record<string, unknown>;
|
|
69
|
+
operation: import("./types").ShippingOperation | null;
|
|
70
|
+
fulfillmentId: string | null;
|
|
71
|
+
alreadyExisted: boolean;
|
|
72
|
+
}>;
|
|
73
|
+
export {};
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fulfillmentErrorMessage = fulfillmentErrorMessage;
|
|
4
|
+
exports.remainingFulfillmentItems = remainingFulfillmentItems;
|
|
5
|
+
exports.createCarrierOrderFulfillment = createCarrierOrderFulfillment;
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const actions_1 = require("./actions");
|
|
9
|
+
const resolve_1 = require("./resolve");
|
|
10
|
+
const idempotency_1 = require("./idempotency");
|
|
11
|
+
const operations_1 = require("./operations");
|
|
12
|
+
/** Extract concise diagnostics from nested Medusa workflow errors. */
|
|
13
|
+
function fulfillmentErrorMessage(error) {
|
|
14
|
+
const visited = new Set();
|
|
15
|
+
const messages = [];
|
|
16
|
+
const walk = (value, depth) => {
|
|
17
|
+
if (value == null || depth > 4 || messages.length >= 8)
|
|
18
|
+
return;
|
|
19
|
+
if (typeof value === "string") {
|
|
20
|
+
if (value.trim() && value !== "[object Object]")
|
|
21
|
+
messages.push(value.trim());
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (typeof value !== "object" || visited.has(value))
|
|
25
|
+
return;
|
|
26
|
+
visited.add(value);
|
|
27
|
+
if (value instanceof Error && value.message)
|
|
28
|
+
messages.push(value.message);
|
|
29
|
+
const record = value;
|
|
30
|
+
for (const key of ["message", "detail", "description", "reason"]) {
|
|
31
|
+
if (typeof record[key] === "string")
|
|
32
|
+
walk(record[key], depth + 1);
|
|
33
|
+
}
|
|
34
|
+
for (const key of ["error", "errors", "cause", "originalError"]) {
|
|
35
|
+
const child = record[key];
|
|
36
|
+
if (Array.isArray(child))
|
|
37
|
+
child.slice(0, 5).forEach(item => walk(item, depth + 1));
|
|
38
|
+
else
|
|
39
|
+
walk(child, depth + 1);
|
|
40
|
+
}
|
|
41
|
+
if (!messages.length) {
|
|
42
|
+
const code = record.code ?? record.type ?? record.status;
|
|
43
|
+
if (typeof code === "string" || typeof code === "number")
|
|
44
|
+
messages.push(String(code));
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
walk(error, 0);
|
|
48
|
+
return [...new Set(messages)].join(" | ").slice(0, 1200) || "Ismeretlen Medusa workflow-hiba (részletek a backend naplójában)";
|
|
49
|
+
}
|
|
50
|
+
function quantityNumber(value) {
|
|
51
|
+
if (value == null)
|
|
52
|
+
return null;
|
|
53
|
+
const direct = typeof value === "object" && value !== null
|
|
54
|
+
? value.value ?? value.numeric ?? value.raw ?? value.toString?.()
|
|
55
|
+
: value;
|
|
56
|
+
const parsed = typeof direct === "number" || typeof direct === "string" || typeof direct === "bigint"
|
|
57
|
+
? Number(direct)
|
|
58
|
+
: NaN;
|
|
59
|
+
return Number.isSafeInteger(parsed) && parsed >= 0 ? parsed : null;
|
|
60
|
+
}
|
|
61
|
+
function remainingFulfillmentItems(order) {
|
|
62
|
+
if (!order.items?.length)
|
|
63
|
+
throw new Error("A rendelésnek nincs teljesíthető tétele.");
|
|
64
|
+
return order.items.map(item => {
|
|
65
|
+
// Medusa v2 can return versioned OrderItem detail values / BigNumber.
|
|
66
|
+
const quantity = [item.quantity, item.detail?.quantity, item.raw_quantity, item.detail?.raw_quantity]
|
|
67
|
+
.map(quantityNumber).find(value => value !== null) ?? null;
|
|
68
|
+
const fulfilled = [item.fulfilled_quantity, item.detail?.fulfilled_quantity,
|
|
69
|
+
item.raw_fulfilled_quantity, item.detail?.raw_fulfilled_quantity]
|
|
70
|
+
.map(quantityNumber).find(value => value !== null) ?? 0;
|
|
71
|
+
if (!item.id || quantity === null || quantity <= 0 || fulfilled === null || fulfilled > quantity) {
|
|
72
|
+
throw new Error("A rendelés teljesítendő mennyisége nem értelmezhető.");
|
|
73
|
+
}
|
|
74
|
+
return { id: item.id, quantity: quantity - fulfilled };
|
|
75
|
+
}).filter(item => item.quantity > 0);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* HSZRDM creates parcels through the very same Medusa fulfillment workflow
|
|
79
|
+
* that the native order screen uses. The provider's runDurableShipmentCreate
|
|
80
|
+
* guards against duplicate external side effects across both surfaces.
|
|
81
|
+
* Creating a fulfillment does NOT mark a shipment as shipped/delivered.
|
|
82
|
+
*/
|
|
83
|
+
async function createCarrierOrderFulfillment(input) {
|
|
84
|
+
const { container, orderId } = input;
|
|
85
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
86
|
+
const { data } = await query.graph({
|
|
87
|
+
entity: "order",
|
|
88
|
+
fields: ["id", "status", "canceled_at", "items.id", "items.quantity",
|
|
89
|
+
"items.fulfilled_quantity", "items.detail.quantity", "items.detail.fulfilled_quantity",
|
|
90
|
+
"fulfillments.id"],
|
|
91
|
+
filters: { id: orderId },
|
|
92
|
+
});
|
|
93
|
+
const nativeOrder = data?.[0];
|
|
94
|
+
if (!nativeOrder)
|
|
95
|
+
throw new Error("A rendelés nem található.");
|
|
96
|
+
if (nativeOrder.canceled_at || nativeOrder.status === "canceled") {
|
|
97
|
+
throw new Error("Törölt rendeléshez nem hozható létre fulfillment.");
|
|
98
|
+
}
|
|
99
|
+
const shippingOrder = await input.orderService.retrieveOrder(orderId);
|
|
100
|
+
const carrier = (0, actions_1.carrierForOrder)(shippingOrder);
|
|
101
|
+
if (!carrier)
|
|
102
|
+
throw new Error("A rendeléshez nem tartozik támogatott futárszolgáltató.");
|
|
103
|
+
// The Medusa Query projection can return quantity fields in different
|
|
104
|
+
// shapes depending on the configured order version. If the projection is
|
|
105
|
+
// incomplete, use the canonical Order service's merged line-item values.
|
|
106
|
+
let items;
|
|
107
|
+
try {
|
|
108
|
+
items = remainingFulfillmentItems(nativeOrder);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
const canonical = await input.orderService.retrieveOrder(orderId, {
|
|
112
|
+
relations: ["items", "fulfillments"],
|
|
113
|
+
});
|
|
114
|
+
if (!Array.isArray(canonical.items) || !canonical.items.length)
|
|
115
|
+
throw error;
|
|
116
|
+
items = remainingFulfillmentItems(canonical);
|
|
117
|
+
}
|
|
118
|
+
if (items.length && nativeOrder.fulfillments?.length) {
|
|
119
|
+
// One parcel per order is the supported carrier contract. Partial/multiple
|
|
120
|
+
// fulfillments need a separate parcel-generation policy, not a second
|
|
121
|
+
// automatic provider call with the same order-based idempotency key.
|
|
122
|
+
throw new Error("A rendelés részben már teljesített. Az újabb csomag létrehozása kézi egyeztetést igényel.");
|
|
123
|
+
}
|
|
124
|
+
if (!items.length && !nativeOrder.fulfillments?.length) {
|
|
125
|
+
throw new Error("A rendelésnél nincs teljesíthető tétel és nincs korábbi fulfillment.");
|
|
126
|
+
}
|
|
127
|
+
let fulfillment;
|
|
128
|
+
if (items.length) {
|
|
129
|
+
const storeService = container.resolve(utils_1.Modules.STORE);
|
|
130
|
+
const stores = await storeService.listStores({}, { take: 10 });
|
|
131
|
+
const store = stores.find(s => Boolean(s.default_location_id));
|
|
132
|
+
const locationId = store?.default_location_id;
|
|
133
|
+
if (!locationId) {
|
|
134
|
+
throw new Error("A Medusa alapértelmezett raktárhelye nincs beállítva. Ellenőrizd a Store/Stock Location konfigurációt.");
|
|
135
|
+
}
|
|
136
|
+
if (input.runWorkflow) {
|
|
137
|
+
fulfillment = await input.runWorkflow({ order_id: orderId, location_id: locationId, items });
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
try {
|
|
141
|
+
const { result } = await (0, core_flows_1.createOrderFulfillmentWorkflow)(container).run({
|
|
142
|
+
input: { order_id: orderId, location_id: locationId, items },
|
|
143
|
+
});
|
|
144
|
+
fulfillment = result;
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
const detail = fulfillmentErrorMessage(error);
|
|
148
|
+
// A provider may already have created a remote parcel before a later
|
|
149
|
+
// workflow step (inventory/reservation/order linkage) failed.
|
|
150
|
+
// Do not trigger any fallback carrier API call here.
|
|
151
|
+
throw new Error(`A Medusa fulfillment meghiúsult: ${detail}. A futárcsomag ettől még létrejöhetett. Ellenőrizd a csomagazonosítót és a készletfoglalást; ne indíts újabb csomaglétrehozást.`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Before synchronizing metadata, require proof of an existing carrier parcel.
|
|
156
|
+
// If the native workflow succeeded but durable persistence failed, fail
|
|
157
|
+
// closed rather than calling the carrier a second time.
|
|
158
|
+
const updatedOrder = await (0, resolve_1.resolveShippingOrder)(await input.orderService.retrieveOrder(orderId), input.operationStore);
|
|
159
|
+
const parcel = updatedOrder.metadata?.[carrier];
|
|
160
|
+
if (!parcel || typeof parcel !== "object" ||
|
|
161
|
+
!(0, idempotency_1.shipmentExternalId)(carrier, parcel)) {
|
|
162
|
+
throw new Error("A Medusa fulfillment állapota és a futárcsomag nyilvántartása eltér; kézi egyeztetés szükséges, nem indítunk újabb csomagfeladást.");
|
|
163
|
+
}
|
|
164
|
+
// The workflow owns the only external create call. Persist the successful
|
|
165
|
+
// durable parcel in HSZRDM's order projection WITHOUT calling a carrier
|
|
166
|
+
// create action again. Metadata sync is not a second fulfillment attempt.
|
|
167
|
+
const shipment = parcel;
|
|
168
|
+
const next = (0, operations_1.appendShippingOperation)({ ...(updatedOrder.metadata ?? {}), [carrier]: shipment }, {
|
|
169
|
+
carrier, action: "create", status: "success",
|
|
170
|
+
actorId: input.actorId || "system",
|
|
171
|
+
durationMs: 0,
|
|
172
|
+
message: "A Medusa fulfillment és a futárcsomag szinkronizálva.",
|
|
173
|
+
response: { shipmentId: (0, idempotency_1.shipmentExternalId)(carrier, shipment) },
|
|
174
|
+
});
|
|
175
|
+
let syncWarning = null;
|
|
176
|
+
try {
|
|
177
|
+
await input.orderService.updateOrders([{ id: orderId, metadata: next.metadata }]);
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
// Fulfillment and the carrier parcel exist. A metadata-sync failure
|
|
181
|
+
// must not make the frontend retry the external side effect.
|
|
182
|
+
syncWarning = "A csomag és a Medusa fulfillment létrejött, de a HSZRDM metadata szinkronizáció nem sikerült. Frissítsd a rendelést; ne hozd létre a csomagot újra.";
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
carrier, action: "create", shipment, operation: syncWarning ? null : next.operation,
|
|
186
|
+
fulfillmentId: fulfillment?.id ?? nativeOrder.fulfillments?.[0]?.id ?? null,
|
|
187
|
+
alreadyExisted: !items.length,
|
|
188
|
+
...(syncWarning ? { syncWarning } : {}),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWZ1bGZpbGxtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2R1bGVzL3NoaXBwaW5nL25hdGl2ZS1mdWxmaWxsbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNDQSwwREE0QkM7QUFhRCw4REFjQztBQVFELHNFQTZIQztBQWxPRCw0REFBNEU7QUFDNUUscURBQThFO0FBQzlFLHVDQUEyQztBQUMzQyx1Q0FBZ0Q7QUFDaEQsK0NBQWtEO0FBQ2xELDZDQUFzRDtBQWdDdEQsc0VBQXNFO0FBQ3RFLFNBQWdCLHVCQUF1QixDQUFDLEtBQWM7SUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVcsQ0FBQTtJQUNsQyxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUE7SUFDN0IsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFjLEVBQUUsS0FBYSxFQUFFLEVBQUU7UUFDN0MsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsT0FBTTtRQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssS0FBSyxpQkFBaUI7Z0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUM1RSxPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTTtRQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2xCLElBQUksS0FBSyxZQUFZLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTztZQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9B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
|
|
@@ -30,6 +30,7 @@ export declare function operationResponse(carrier: ShippingCarrier, action: Ship
|
|
|
30
30
|
parcelNumber?: undefined;
|
|
31
31
|
lastEvent?: undefined;
|
|
32
32
|
lastEventCategory?: undefined;
|
|
33
|
+
identifier?: undefined;
|
|
33
34
|
parcelId?: undefined;
|
|
34
35
|
returnParcelNumber?: undefined;
|
|
35
36
|
} | {
|
|
@@ -52,6 +53,7 @@ export declare function operationResponse(carrier: ShippingCarrier, action: Ship
|
|
|
52
53
|
parcelNumber?: undefined;
|
|
53
54
|
lastEvent?: undefined;
|
|
54
55
|
lastEventCategory?: undefined;
|
|
56
|
+
identifier?: undefined;
|
|
55
57
|
parcelId?: undefined;
|
|
56
58
|
returnParcelNumber?: undefined;
|
|
57
59
|
} | {
|
|
@@ -74,6 +76,7 @@ export declare function operationResponse(carrier: ShippingCarrier, action: Ship
|
|
|
74
76
|
externalStatusUpdatedAt?: undefined;
|
|
75
77
|
lastEvent?: undefined;
|
|
76
78
|
lastEventCategory?: undefined;
|
|
79
|
+
identifier?: undefined;
|
|
77
80
|
parcelId?: undefined;
|
|
78
81
|
returnParcelNumber?: undefined;
|
|
79
82
|
} | {
|
|
@@ -96,6 +99,30 @@ export declare function operationResponse(carrier: ShippingCarrier, action: Ship
|
|
|
96
99
|
externalStatusUpdatedAt?: undefined;
|
|
97
100
|
shipmentId?: undefined;
|
|
98
101
|
parcelNumber?: undefined;
|
|
102
|
+
identifier?: undefined;
|
|
103
|
+
parcelId?: undefined;
|
|
104
|
+
returnParcelNumber?: undefined;
|
|
105
|
+
} | {
|
|
106
|
+
action: ShippingAction;
|
|
107
|
+
identifier: {} | null;
|
|
108
|
+
trackingNumber: {} | null;
|
|
109
|
+
status: {} | null;
|
|
110
|
+
packageId?: undefined;
|
|
111
|
+
returnCode?: undefined;
|
|
112
|
+
packetId?: undefined;
|
|
113
|
+
barcode?: undefined;
|
|
114
|
+
courierNumber?: undefined;
|
|
115
|
+
courierCarrierId?: undefined;
|
|
116
|
+
courierCarrierName?: undefined;
|
|
117
|
+
trackingUrl?: undefined;
|
|
118
|
+
statusCode?: undefined;
|
|
119
|
+
externalStatusCode?: undefined;
|
|
120
|
+
externalStatusText?: undefined;
|
|
121
|
+
externalStatusUpdatedAt?: undefined;
|
|
122
|
+
shipmentId?: undefined;
|
|
123
|
+
parcelNumber?: undefined;
|
|
124
|
+
lastEvent?: undefined;
|
|
125
|
+
lastEventCategory?: undefined;
|
|
99
126
|
parcelId?: undefined;
|
|
100
127
|
returnParcelNumber?: undefined;
|
|
101
128
|
} | {
|
|
@@ -120,4 +147,5 @@ export declare function operationResponse(carrier: ShippingCarrier, action: Ship
|
|
|
120
147
|
shipmentId?: undefined;
|
|
121
148
|
lastEvent?: undefined;
|
|
122
149
|
lastEventCategory?: undefined;
|
|
150
|
+
identifier?: undefined;
|
|
123
151
|
};
|
|
@@ -82,6 +82,14 @@ function operationResponse(carrier, action, shipment) {
|
|
|
82
82
|
lastEventCategory: shipment.lastEventCategory ?? null,
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
|
+
if (carrier === "csomagpiac") {
|
|
86
|
+
return {
|
|
87
|
+
action,
|
|
88
|
+
identifier: shipment.identifier ?? null,
|
|
89
|
+
trackingNumber: shipment.trackingNumber ?? null,
|
|
90
|
+
status: shipment.status ?? null,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
85
93
|
return {
|
|
86
94
|
action,
|
|
87
95
|
parcelId: shipment.parcelId ?? null,
|
|
@@ -90,4 +98,4 @@ function operationResponse(carrier, action, shipment) {
|
|
|
90
98
|
returnParcelNumber: shipment.returnParcelNumber ?? null,
|
|
91
99
|
};
|
|
92
100
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxlcy9zaGlwcGluZy9vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsZ0RBR0M7QUFFRCwwREFXQztBQUVELGtEQVFDO0FBV0QsOENBcUVDO0FBL0dELDZDQUF3QztBQUd4QyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUE7QUFFM0IsU0FBZ0Isa0JBQWtCLENBQUMsUUFBeUM7SUFDMUUsTUFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLG1CQUFtQixDQUFBO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0FBQzlELENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FDckMsUUFBb0QsRUFDcEQsS0FBd0Y7SUFFeEYsTUFBTSxTQUFTLEdBQXNCO1FBQ25DLEdBQUcsS0FBSztRQUNSLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUEsd0JBQVUsR0FBRTtRQUM1QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtLQUN2RCxDQUFBO0lBQ0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ3ZGLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFBO0FBQzFGLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxRQUF5QztJQUMzRSxNQUFN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
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ShippingCarrier } from "./types";
|
|
2
|
+
export type ShippingPrintState = "ready" | "failed" | "deleted";
|
|
3
|
+
export type ShippingPrintOperation = {
|
|
4
|
+
action?: string;
|
|
5
|
+
status?: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* A label is only available for an existing external parcel in a usable state.
|
|
9
|
+
* Legacy checkout metadata alone is not evidence of a parcel.
|
|
10
|
+
*/
|
|
11
|
+
export declare function shippingPrintState(carrier: ShippingCarrier, shipment: Record<string, unknown> | null | undefined, operations?: ShippingPrintOperation[]): ShippingPrintState;
|
|
12
|
+
export declare function assertShippingLabelPrintable(carrier: ShippingCarrier, shipment: Record<string, unknown> | null | undefined): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shippingPrintState = shippingPrintState;
|
|
4
|
+
exports.assertShippingLabelPrintable = assertShippingLabelPrintable;
|
|
5
|
+
/**
|
|
6
|
+
* A label is only available for an existing external parcel in a usable state.
|
|
7
|
+
* Legacy checkout metadata alone is not evidence of a parcel.
|
|
8
|
+
*/
|
|
9
|
+
function shippingPrintState(carrier, shipment, operations = []) {
|
|
10
|
+
const status = String(shipment?.status ?? "").toUpperCase().trim();
|
|
11
|
+
if (["CANCELLED", "CANCELED", "DELETED", "VOID", "VOIDED"].includes(status))
|
|
12
|
+
return "deleted";
|
|
13
|
+
const externalId = shipment ? (carrier === "foxpost" ? shipment.packageId
|
|
14
|
+
: carrier === "gls" ? shipment.parcelId
|
|
15
|
+
: carrier === "packeta" ? shipment.packetId
|
|
16
|
+
: carrier === "dpd" ? shipment.shipmentId
|
|
17
|
+
: carrier === "mpl" ? shipment.trackingNumber
|
|
18
|
+
: shipment.identifier) : null;
|
|
19
|
+
if (externalId == null || !String(externalId).trim() ||
|
|
20
|
+
["ERROR", "FAILED", "FAILURE", "REJECTED", "UNKNOWN"].includes(status))
|
|
21
|
+
return "failed";
|
|
22
|
+
// Legacy operation logs may report a failed status/label request even though
|
|
23
|
+
// the registered parcel still exists. Do not mistake those for failed creates.
|
|
24
|
+
const failedCreate = [...operations].reverse().find(op => op.action === "create");
|
|
25
|
+
if (failedCreate?.status === "failed" && !externalId)
|
|
26
|
+
return "failed";
|
|
27
|
+
return "ready";
|
|
28
|
+
}
|
|
29
|
+
function assertShippingLabelPrintable(carrier, shipment) {
|
|
30
|
+
if (shippingPrintState(carrier, shipment) !== "ready") {
|
|
31
|
+
throw new Error("Ehhez a rendeléshez nincs nyomtatható címke: a csomag nem jött létre, sikertelen vagy törölt.");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZWxpZ2liaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZHVsZXMvc2hpcHBpbmcvcHJpbnQtZWxpZ2liaWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxnREF1QkM7QUFFRCxvRUFPQztBQXBDRDs7O0dBR0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsT0FBd0IsRUFDeEIsUUFBb0QsRUFDcEQsYUFBdUMsRUFBRTtJQUV6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNsRSxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUU3RixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVM7UUFDdkUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQ3ZDLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUTtnQkFDM0MsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVO29CQUN6QyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWM7d0JBQzdDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUMvQixJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFO1FBQ2hELENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFBRSxPQUFPLFFBQVEsQ0FBQTtJQUUzRiw2RUFBNkU7SUFDN0UsK0VBQStFO0lBQy9FLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFBO0lBQ2pGLElBQUksWUFBWSxFQUFFLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTyxRQUFRLENBQUE7SUFFckUsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQztBQUVELFNBQWdCLDRCQUE0QixDQUMxQyxPQUF3QixFQUN4QixRQUFvRDtJQUVwRCxJQUFJLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLCtGQUErRixDQUFDLENBQUE7SUFDbEgsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Shared recipient-email resolution for native Medusa fulfillment providers.
|
|
2
|
+
* Medusa can pass a partial order DTO, even after checkout validation.
|
|
3
|
+
* Avoid relying on fulfillment.id as an order ID for DB fallback.
|
|
4
|
+
*/
|
|
5
|
+
export type RecipientEmailOrderService = {
|
|
6
|
+
retrieveOrder: (id: string) => Promise<{
|
|
7
|
+
email?: string | null;
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
export declare function isValidShippingRecipientEmail(value: unknown): value is string;
|
|
11
|
+
export declare function shippingRecipientEmailSnapshot(value: unknown): string;
|
|
12
|
+
export declare function resolveShippingRecipientEmail(input: {
|
|
13
|
+
orderEmail?: unknown;
|
|
14
|
+
snapshotEmail?: unknown;
|
|
15
|
+
orderId?: string | null;
|
|
16
|
+
orderService?: RecipientEmailOrderService;
|
|
17
|
+
carrier: string;
|
|
18
|
+
}): Promise<string>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidShippingRecipientEmail = isValidShippingRecipientEmail;
|
|
4
|
+
exports.shippingRecipientEmailSnapshot = shippingRecipientEmailSnapshot;
|
|
5
|
+
exports.resolveShippingRecipientEmail = resolveShippingRecipientEmail;
|
|
6
|
+
const EMAIL_PATTERN = /^\S+@\S+\.\S+$/;
|
|
7
|
+
function isValidShippingRecipientEmail(value) {
|
|
8
|
+
return typeof value === "string" && EMAIL_PATTERN.test(value.trim());
|
|
9
|
+
}
|
|
10
|
+
function shippingRecipientEmailSnapshot(value) {
|
|
11
|
+
const email = typeof value === "string" ? value.trim() : "";
|
|
12
|
+
if (!isValidShippingRecipientEmail(email)) {
|
|
13
|
+
throw new Error("Érvényes e-mail-cím szükséges a szállításhoz.");
|
|
14
|
+
}
|
|
15
|
+
return email;
|
|
16
|
+
}
|
|
17
|
+
async function resolveShippingRecipientEmail(input) {
|
|
18
|
+
for (const candidate of [input.orderEmail, input.snapshotEmail]) {
|
|
19
|
+
if (isValidShippingRecipientEmail(candidate))
|
|
20
|
+
return candidate.trim();
|
|
21
|
+
}
|
|
22
|
+
if (input.orderId?.startsWith("order_") && input.orderService) {
|
|
23
|
+
const canonical = await input.orderService.retrieveOrder(input.orderId);
|
|
24
|
+
if (isValidShippingRecipientEmail(canonical?.email))
|
|
25
|
+
return canonical.email.trim();
|
|
26
|
+
}
|
|
27
|
+
throw new Error(`A ${input.carrier} csomagfeladáshoz hiányzik a rendelés érvényes e-mail-címe.`);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LWVtYWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2R1bGVzL3NoaXBwaW5nL3JlY2lwaWVudC1lbWFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLHNFQUVDO0FBRUQsd0VBTUM7QUFFRCxzRUFlQztBQTdCRCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQTtBQUV0QyxTQUFnQiw2QkFBNkIsQ0FBQyxLQUFjO0lBQzFELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7QUFDdEUsQ0FBQztBQUVELFNBQWdCLDhCQUE4QixDQUFDLEtBQWM7SUFDM0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUMzRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUE7SUFDbEUsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQztBQUVNLEtBQUssVUFBVSw2QkFBNkIsQ0FBQyxLQU1uRDtJQUNDLEtBQUssTUFBTSxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQ2hFLElBQUksNkJBQTZCLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdkUsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzlELE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3ZFLElBQUksNkJBQTZCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNwRixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxPQUFPLDZEQUE2RCxDQUFDLENBQUE7QUFDbEcsQ0FBQyJ9
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IntegrationOperationStore } from "../../../modules/integration-operation/types";
|
|
2
|
+
import type { ShippingOrder } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Read projection only: Medusa native fulfillments persist the provider response
|
|
5
|
+
* in the durable integration operation, while the legacy HSZRDM admin reads
|
|
6
|
+
* order.metadata[carrier]. Expose a shared, up-to-date view without creating
|
|
7
|
+
* parcels or mutating orders during GET.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveShippingOrder(order: ShippingOrder, operationStore?: IntegrationOperationStore): Promise<ShippingOrder>;
|