@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
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.csomagpiacService = exports.CsomagpiacService = exports.CSOMAGPIAC_TEST_URL = exports.CSOMAGPIAC_LIVE_URL = void 0;
|
|
4
|
+
exports.loadCsomagpiacConfig = loadCsomagpiacConfig;
|
|
5
|
+
exports.rejectUnsupportedCsomagpiacRecipientPoint = rejectUnsupportedCsomagpiacRecipientPoint;
|
|
6
|
+
const client_1 = require("./client");
|
|
7
|
+
const reloadable_1 = require("../../modules/integration-settings/reloadable");
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
exports.CSOMAGPIAC_LIVE_URL = "https://bestr.csomagpiac.hu/api/v1/";
|
|
10
|
+
exports.CSOMAGPIAC_TEST_URL = "https://demo.csomagpiac.hu/api/v1/";
|
|
11
|
+
function loadCsomagpiacConfig(env = process.env) {
|
|
12
|
+
const live = env.CSOMAGPIAC_LIVE === "true";
|
|
13
|
+
return {
|
|
14
|
+
apiUrl: env.CSOMAGPIAC_API_URL?.trim() ||
|
|
15
|
+
(live ? exports.CSOMAGPIAC_LIVE_URL : exports.CSOMAGPIAC_TEST_URL),
|
|
16
|
+
token: clean(env.CSOMAGPIAC_TOKEN),
|
|
17
|
+
username: clean(env.CSOMAGPIAC_USERNAME),
|
|
18
|
+
password: clean(env.CSOMAGPIAC_PASSWORD),
|
|
19
|
+
live,
|
|
20
|
+
pickupPointId: positiveInteger(env.CSOMAGPIAC_PICKUP_POINT_ID),
|
|
21
|
+
priceHuf: positiveNumber(env.CSOMAGPIAC_PRICE_HUF) ?? 1990,
|
|
22
|
+
freeShippingThresholdHuf: positiveNumber(env.CSOMAGPIAC_FREE_SHIPPING_THRESHOLD_HUF),
|
|
23
|
+
timeoutMs: positiveNumber(env.CSOMAGPIAC_TIMEOUT_MS) ?? 15000,
|
|
24
|
+
defaultWeightKg: positiveNumber(env.CSOMAGPIAC_DEFAULT_WEIGHT_KG) ?? 1,
|
|
25
|
+
labelFormat: env.CSOMAGPIAC_LABEL_FORMAT === "A6" ? "A6" : "A4",
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Csomagpiac pickupPointId is the SENDER's registered collection address.
|
|
30
|
+
* Recipient locker/parcel-shop IDs are NOT interchangeable with this value.
|
|
31
|
+
* Until the recipient-location field is verified from API v1 documentation,
|
|
32
|
+
* fail closed instead of silently producing home-delivery labels.
|
|
33
|
+
*/
|
|
34
|
+
function rejectUnsupportedCsomagpiacRecipientPoint(selection) {
|
|
35
|
+
const fields = ["deliveryPointId", "delivery_point_id", "recipientPointId", "recipient_point_id", "pickupPoint", "deliveryPoint", "recipientPoint", "locker", "parcelShop"];
|
|
36
|
+
if (fields.some((field) => selection[field] !== undefined && selection[field] !== null)) {
|
|
37
|
+
throw new types_1.CsomagpiacValidationError("A Csomagpiac címzetti csomagpontja még nincs igazoltan támogatva. " +
|
|
38
|
+
"A pickupPointId kizárólag a feladó felvételi címe. " +
|
|
39
|
+
"Csomagpontra címzéshez hitelesített API-mezőleképezés szükséges.");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
class CsomagpiacService {
|
|
43
|
+
constructor(fallbackConfig) {
|
|
44
|
+
this.fallbackConfig = fallbackConfig;
|
|
45
|
+
this.runtimeClient = (0, reloadable_1.createReloadableIntegrationService)(() => new client_1.CsomagpiacClient(this.config));
|
|
46
|
+
}
|
|
47
|
+
get config() {
|
|
48
|
+
const runtime = loadCsomagpiacConfig();
|
|
49
|
+
const fallback = this.fallbackConfig;
|
|
50
|
+
if (!fallback)
|
|
51
|
+
return runtime;
|
|
52
|
+
const has = (name) => Object.prototype.hasOwnProperty.call(process.env, name);
|
|
53
|
+
return {
|
|
54
|
+
...fallback,
|
|
55
|
+
...runtime,
|
|
56
|
+
apiUrl: has("CSOMAGPIAC_API_URL") ? runtime.apiUrl : fallback.apiUrl || runtime.apiUrl,
|
|
57
|
+
token: has("CSOMAGPIAC_TOKEN") ? clean(process.env.CSOMAGPIAC_TOKEN) : fallback.token,
|
|
58
|
+
username: has("CSOMAGPIAC_USERNAME") ? clean(process.env.CSOMAGPIAC_USERNAME) : fallback.username,
|
|
59
|
+
password: has("CSOMAGPIAC_PASSWORD") ? clean(process.env.CSOMAGPIAC_PASSWORD) : fallback.password,
|
|
60
|
+
live: has("CSOMAGPIAC_LIVE") ? process.env.CSOMAGPIAC_LIVE === "true" : fallback.live,
|
|
61
|
+
pickupPointId: has("CSOMAGPIAC_PICKUP_POINT_ID") ? runtime.pickupPointId : fallback.pickupPointId,
|
|
62
|
+
priceHuf: has("CSOMAGPIAC_PRICE_HUF") ? runtime.priceHuf : fallback.priceHuf,
|
|
63
|
+
freeShippingThresholdHuf: has("CSOMAGPIAC_FREE_SHIPPING_THRESHOLD_HUF")
|
|
64
|
+
? runtime.freeShippingThresholdHuf
|
|
65
|
+
: fallback.freeShippingThresholdHuf,
|
|
66
|
+
timeoutMs: has("CSOMAGPIAC_TIMEOUT_MS") ? runtime.timeoutMs : fallback.timeoutMs,
|
|
67
|
+
defaultWeightKg: has("CSOMAGPIAC_DEFAULT_WEIGHT_KG") ? runtime.defaultWeightKg : fallback.defaultWeightKg,
|
|
68
|
+
labelFormat: has("CSOMAGPIAC_LABEL_FORMAT") ? runtime.labelFormat : fallback.labelFormat,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
get client() {
|
|
72
|
+
return this.runtimeClient;
|
|
73
|
+
}
|
|
74
|
+
extractShipment(order) {
|
|
75
|
+
const raw = order.metadata?.csomagpiac;
|
|
76
|
+
return raw && typeof raw === "object" ? raw : null;
|
|
77
|
+
}
|
|
78
|
+
async validateSenderPickupPoint(id) {
|
|
79
|
+
if (!Number.isSafeInteger(id) || id <= 0) {
|
|
80
|
+
throw new types_1.CsomagpiacValidationError("Érvénytelen Csomagpiac feladói felvételipont-azonosító.");
|
|
81
|
+
}
|
|
82
|
+
// The authenticated endpoint returns merchant-owned sender collection addresses.
|
|
83
|
+
const data = await this.client.listPickupPoints();
|
|
84
|
+
const root = asRecord(data);
|
|
85
|
+
const nested = asRecord(root.data);
|
|
86
|
+
const points = Array.isArray(data) ? data :
|
|
87
|
+
[root.pickupPoints, root.pickuppoints, root.data, root.items, nested.pickupPoints, nested.items]
|
|
88
|
+
.find(Array.isArray);
|
|
89
|
+
if (!points || !points.length) {
|
|
90
|
+
throw new types_1.CsomagpiacValidationError("A Csomagpiac feladói címek nem ellenőrizhetők.");
|
|
91
|
+
}
|
|
92
|
+
const exists = points.some(point => {
|
|
93
|
+
const value = asRecord(point);
|
|
94
|
+
const attributes = asRecord(value.attributes);
|
|
95
|
+
const identifier = positiveInteger(value.id ?? value.pickupPointId ?? value.pickup_point_id ??
|
|
96
|
+
attributes.id ?? attributes.pickupPointId);
|
|
97
|
+
return identifier === id;
|
|
98
|
+
});
|
|
99
|
+
if (!exists) {
|
|
100
|
+
throw new types_1.CsomagpiacValidationError("A Csomagpiac felvételi cím nem szerepel a hitelesített fiók címjegyzékében.");
|
|
101
|
+
}
|
|
102
|
+
return id;
|
|
103
|
+
}
|
|
104
|
+
async validateServices(services) {
|
|
105
|
+
if (!services.length)
|
|
106
|
+
return;
|
|
107
|
+
const data = await this.client.listServices();
|
|
108
|
+
const root = asRecord(data);
|
|
109
|
+
const nested = asRecord(root.data);
|
|
110
|
+
const allowed = Array.isArray(data) ? data :
|
|
111
|
+
[root.services, root.data, root.items, nested.services, nested.items]
|
|
112
|
+
.find(Array.isArray);
|
|
113
|
+
if (!allowed || !allowed.length) {
|
|
114
|
+
throw new types_1.CsomagpiacValidationError("A Csomagpiac engedélyezett szolgáltatásai nem ellenőrizhetők.");
|
|
115
|
+
}
|
|
116
|
+
for (const requested of services) {
|
|
117
|
+
const accepted = allowed.some(item => {
|
|
118
|
+
const row = asRecord(item), attrs = asRecord(row.attributes);
|
|
119
|
+
const name = String(row.name ?? attrs.name ?? "").trim();
|
|
120
|
+
const value = String(row.value ?? attrs.value ?? "").trim();
|
|
121
|
+
return name === requested.name && value === requested.value;
|
|
122
|
+
});
|
|
123
|
+
if (!accepted) {
|
|
124
|
+
throw new types_1.CsomagpiacValidationError("A kért Csomagpiac szolgáltatás nem engedélyezett ennél a fióknál.");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async createShipment(order) {
|
|
129
|
+
const client = this.client;
|
|
130
|
+
if (!client.isConfigured())
|
|
131
|
+
throw new types_1.CsomagpiacConfigError();
|
|
132
|
+
const config = this.config;
|
|
133
|
+
const current = this.extractShipment(order);
|
|
134
|
+
if (!current)
|
|
135
|
+
throw new types_1.CsomagpiacValidationError("A rendelés nem Csomagpiac szállítású.");
|
|
136
|
+
// Never interpret a recipient's locker ID as the sender collection-address ID.
|
|
137
|
+
const selection = asRecord(asRecord(order.metadata).csomagpiac);
|
|
138
|
+
rejectUnsupportedCsomagpiacRecipientPoint(selection);
|
|
139
|
+
if (current.identifier && String(current.status).toUpperCase() !== "CANCELLED")
|
|
140
|
+
return current;
|
|
141
|
+
const address = asRecord(order.shipping_address);
|
|
142
|
+
const pickupPointId = positiveInteger(current.pickupPointId) ?? config.pickupPointId;
|
|
143
|
+
if (!pickupPointId)
|
|
144
|
+
throw new types_1.CsomagpiacValidationError("Hiányzik a Csomagpiac felvételi cím azonosítója.");
|
|
145
|
+
await this.validateSenderPickupPoint(pickupPointId);
|
|
146
|
+
await this.validateServices(current.services ?? []);
|
|
147
|
+
const recipientName = [address.first_name, address.last_name]
|
|
148
|
+
.map((value) => String(value ?? "").trim())
|
|
149
|
+
.filter(Boolean)
|
|
150
|
+
.join(" ");
|
|
151
|
+
const recipientEmail = String(order.email ?? "").trim();
|
|
152
|
+
const recipientPhone = String(address.phone ?? "").trim();
|
|
153
|
+
const recipientZip = String(address.postal_code ?? "").trim();
|
|
154
|
+
const recipientCity = String(address.city ?? "").trim();
|
|
155
|
+
const recipientAddress = [address.address_1, address.address_2]
|
|
156
|
+
.map((value) => String(value ?? "").trim())
|
|
157
|
+
.filter(Boolean)
|
|
158
|
+
.join(" ");
|
|
159
|
+
const recipientCountryCode = String(address.country_code ?? "HU").trim().toUpperCase();
|
|
160
|
+
for (const [label, value] of [
|
|
161
|
+
["címzett neve", recipientName],
|
|
162
|
+
["címzett e-mail-címe", recipientEmail],
|
|
163
|
+
["címzett telefonszáma", recipientPhone],
|
|
164
|
+
["irányítószám", recipientZip],
|
|
165
|
+
["város", recipientCity],
|
|
166
|
+
["cím", recipientAddress],
|
|
167
|
+
]) {
|
|
168
|
+
if (!value)
|
|
169
|
+
throw new types_1.CsomagpiacValidationError(`Hiányzik a Csomagpiac küldemény ${label} mezője.`);
|
|
170
|
+
}
|
|
171
|
+
const weightKg = positiveNumber(current.weightKg) ?? config.defaultWeightKg;
|
|
172
|
+
const orderTotal = nonNegativeNumber(order.total);
|
|
173
|
+
const payload = {
|
|
174
|
+
pickupPointId,
|
|
175
|
+
recipientName: recipientName.slice(0, 40),
|
|
176
|
+
recipientCountryCode: recipientCountryCode.slice(0, 3),
|
|
177
|
+
recipientZip: recipientZip.slice(0, 10),
|
|
178
|
+
recipientCity: recipientCity.slice(0, 40),
|
|
179
|
+
recipientAddress: recipientAddress.slice(0, 40),
|
|
180
|
+
recipientPhone: recipientPhone.slice(0, 20),
|
|
181
|
+
recipientEmail: recipientEmail.slice(0, 100),
|
|
182
|
+
packageCount: 1,
|
|
183
|
+
weights: [Math.max(1, Math.round(weightKg * 1000))],
|
|
184
|
+
weightUnit: "g",
|
|
185
|
+
reference: String(order.display_id ?? order.id ?? "").slice(0, 100),
|
|
186
|
+
...(orderTotal == null ? {} : { parcelValue: Math.round(orderTotal) }),
|
|
187
|
+
...(current.codAmount > 0 ? { cashOnDelivery: Math.round(current.codAmount) } : {}),
|
|
188
|
+
...(current.insuredValue == null ? {} : { insuredValue: Math.round(current.insuredValue) }),
|
|
189
|
+
...(current.services?.length ? { services: current.services } : {}),
|
|
190
|
+
};
|
|
191
|
+
const response = asRecord(await client.createShipment(payload));
|
|
192
|
+
const identifier = remoteIdentifier(response);
|
|
193
|
+
if (!identifier) {
|
|
194
|
+
throw new types_1.CsomagpiacError("A Csomagpiac sikeresnek tűnő válasza nem tartalmazott küldeményazonosítót.", { remoteOutcomeUncertain: true });
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
...current,
|
|
198
|
+
pickupPointId,
|
|
199
|
+
weightKg,
|
|
200
|
+
identifier,
|
|
201
|
+
trackingNumber: remoteTrackingNumber(response) ?? identifier,
|
|
202
|
+
status: normalizeStatus(response) ?? "CREATED",
|
|
203
|
+
statusText: remoteStatusText(response),
|
|
204
|
+
statusUpdatedAt: new Date().toISOString(),
|
|
205
|
+
createdAt: new Date().toISOString(),
|
|
206
|
+
remote: response,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
async refreshStatus(shipment) {
|
|
210
|
+
if (!shipment.identifier)
|
|
211
|
+
throw new types_1.CsomagpiacValidationError("Hiányzik a Csomagpiac küldeményazonosító.");
|
|
212
|
+
const response = asRecord(await this.client.getShipmentStatus(shipment.identifier));
|
|
213
|
+
return {
|
|
214
|
+
...shipment,
|
|
215
|
+
status: normalizeStatus(response) ?? shipment.status,
|
|
216
|
+
statusText: remoteStatusText(response) ?? shipment.statusText,
|
|
217
|
+
trackingNumber: remoteTrackingNumber(response) ?? shipment.trackingNumber,
|
|
218
|
+
statusUpdatedAt: new Date().toISOString(),
|
|
219
|
+
remote: response,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
async cancelShipment(shipment) {
|
|
223
|
+
if (!shipment.identifier || String(shipment.status).toUpperCase() === "CANCELLED")
|
|
224
|
+
return shipment;
|
|
225
|
+
await this.client.deleteShipment(shipment.identifier);
|
|
226
|
+
return {
|
|
227
|
+
...shipment,
|
|
228
|
+
status: "CANCELLED",
|
|
229
|
+
statusText: "Törölve",
|
|
230
|
+
statusUpdatedAt: new Date().toISOString(),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
async getLabel(shipment, format) {
|
|
234
|
+
if (!shipment.identifier)
|
|
235
|
+
throw new types_1.CsomagpiacValidationError("Hiányzik a Csomagpiac küldeményazonosító.");
|
|
236
|
+
return this.client.downloadShipmentLabel(shipment.identifier, format ?? this.config.labelFormat);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
exports.CsomagpiacService = CsomagpiacService;
|
|
240
|
+
exports.csomagpiacService = new CsomagpiacService();
|
|
241
|
+
function remoteIdentifier(response) {
|
|
242
|
+
const data = asRecord(response.data);
|
|
243
|
+
return firstString(response.identifier, response.cspIdentifier, response.shipmentIdentifier, response.id, data.identifier, data.cspIdentifier, data.shipmentIdentifier, data.id);
|
|
244
|
+
}
|
|
245
|
+
function remoteTrackingNumber(response) {
|
|
246
|
+
const data = asRecord(response.data);
|
|
247
|
+
return firstString(response.trackingNumber, response.tracking_number, response.parcelNumber, response.parcel_number, data.trackingNumber, data.tracking_number, data.parcelNumber, data.parcel_number);
|
|
248
|
+
}
|
|
249
|
+
function remoteStatusText(response) {
|
|
250
|
+
const data = asRecord(response.data);
|
|
251
|
+
return firstString(response.statusName, response.statusText, response.status, data.statusName, data.statusText, data.status);
|
|
252
|
+
}
|
|
253
|
+
function normalizeStatus(response) {
|
|
254
|
+
const raw = (remoteStatusText(response) ?? "").toLocaleLowerCase("hu-HU");
|
|
255
|
+
if (!raw)
|
|
256
|
+
return undefined;
|
|
257
|
+
if (raw.includes("kézbes") || raw.includes("deliver"))
|
|
258
|
+
return "DELIVERED";
|
|
259
|
+
if (raw.includes("vissza") || raw.includes("return"))
|
|
260
|
+
return "RETURNED";
|
|
261
|
+
if (raw.includes("töröl") || raw.includes("cancel"))
|
|
262
|
+
return "CANCELLED";
|
|
263
|
+
if (raw.includes("hiba") || raw.includes("error") || raw.includes("sikertelen"))
|
|
264
|
+
return "ERROR";
|
|
265
|
+
if (raw.includes("száll") || raw.includes("úton") || raw.includes("transit") || raw.includes("futár"))
|
|
266
|
+
return "IN_TRANSIT";
|
|
267
|
+
return "CREATED";
|
|
268
|
+
}
|
|
269
|
+
function asRecord(value) {
|
|
270
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
271
|
+
}
|
|
272
|
+
function clean(value) {
|
|
273
|
+
const text = String(value ?? "").trim();
|
|
274
|
+
return text || undefined;
|
|
275
|
+
}
|
|
276
|
+
function firstString(...values) {
|
|
277
|
+
for (const value of values) {
|
|
278
|
+
const text = clean(value);
|
|
279
|
+
if (text)
|
|
280
|
+
return text;
|
|
281
|
+
}
|
|
282
|
+
return undefined;
|
|
283
|
+
}
|
|
284
|
+
function positiveInteger(value) {
|
|
285
|
+
const number = Number(value);
|
|
286
|
+
return Number.isInteger(number) && number > 0 ? number : undefined;
|
|
287
|
+
}
|
|
288
|
+
function positiveNumber(value) {
|
|
289
|
+
const number = Number(value);
|
|
290
|
+
return Number.isFinite(number) && number > 0 ? number : undefined;
|
|
291
|
+
}
|
|
292
|
+
function nonNegativeNumber(value) {
|
|
293
|
+
const number = Number(value);
|
|
294
|
+
return Number.isFinite(number) && number >= 0 ? number : undefined;
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY3NvbWFncGlhYy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWNBLG9EQWlCQztBQVFELDhGQVNDO0FBaERELHFDQUEyQztBQUMzQyw4RUFBa0c7QUFDbEcsbUNBT2dCO0FBRUgsUUFBQSxtQkFBbUIsR0FBRyxxQ0FBcUMsQ0FBQTtBQUMzRCxRQUFBLG1CQUFtQixHQUFHLG9DQUFvQyxDQUFBO0FBRXZFLFNBQWdCLG9CQUFvQixDQUFDLE1BQXlCLE9BQU8sQ0FBQyxHQUFHO0lBQ3ZFLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxlQUFlLEtBQUssTUFBTSxDQUFBO0lBQzNDLE9BQU87UUFDTCxNQUFNLEVBQ0osR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRTtZQUM5QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsMkJBQW1CLENBQUMsQ0FBQyxDQUFDLDJCQUFtQixDQUFDO1FBQ3BELEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1FBQ2xDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hDLElBQUk7UUFDSixhQUFhLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQztRQUM5RCxRQUFRLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLElBQUk7UUFDMUQsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQztRQUNwRixTQUFTLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEtBQUs7UUFDN0QsZUFBZSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsNEJBQTRC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
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export type CsomagpiacConfig = {
|
|
2
|
+
apiUrl: string;
|
|
3
|
+
token?: string;
|
|
4
|
+
username?: string;
|
|
5
|
+
password?: string;
|
|
6
|
+
live: boolean;
|
|
7
|
+
pickupPointId?: number;
|
|
8
|
+
priceHuf: number;
|
|
9
|
+
freeShippingThresholdHuf?: number;
|
|
10
|
+
timeoutMs: number;
|
|
11
|
+
defaultWeightKg: number;
|
|
12
|
+
labelFormat: "A4" | "A6";
|
|
13
|
+
};
|
|
14
|
+
export type CsomagpiacShipmentStatus = "CREATED" | "IN_TRANSIT" | "DELIVERED" | "RETURNED" | "CANCELLED" | "ERROR";
|
|
15
|
+
export type CsomagpiacServiceSelection = {
|
|
16
|
+
name: string;
|
|
17
|
+
value: string;
|
|
18
|
+
};
|
|
19
|
+
export type CsomagpiacShipmentData = {
|
|
20
|
+
recipientEmail?: string | null;
|
|
21
|
+
pickupPointId: number;
|
|
22
|
+
weightKg: number;
|
|
23
|
+
services?: CsomagpiacServiceSelection[];
|
|
24
|
+
codAmount: number;
|
|
25
|
+
insuredValue?: number;
|
|
26
|
+
identifier?: string;
|
|
27
|
+
trackingNumber?: string;
|
|
28
|
+
status: CsomagpiacShipmentStatus | string;
|
|
29
|
+
statusText?: string;
|
|
30
|
+
statusUpdatedAt?: string;
|
|
31
|
+
createdAt?: string;
|
|
32
|
+
remote?: Record<string, unknown>;
|
|
33
|
+
};
|
|
34
|
+
export type CsomagpiacCreateRequest = {
|
|
35
|
+
pickupPointId: number;
|
|
36
|
+
recipientName: string;
|
|
37
|
+
recipientCountryCode: string;
|
|
38
|
+
recipientZip: string;
|
|
39
|
+
recipientCity: string;
|
|
40
|
+
recipientAddress: string;
|
|
41
|
+
recipientPhone: string;
|
|
42
|
+
recipientEmail: string;
|
|
43
|
+
packageCount?: number;
|
|
44
|
+
weights?: number[];
|
|
45
|
+
weightUnit?: "g" | "dkg" | "kg";
|
|
46
|
+
insuredValue?: number;
|
|
47
|
+
observation?: string;
|
|
48
|
+
reference?: string;
|
|
49
|
+
parcelValue?: number;
|
|
50
|
+
cashOnDelivery?: number;
|
|
51
|
+
services?: CsomagpiacServiceSelection[];
|
|
52
|
+
};
|
|
53
|
+
export declare class CsomagpiacError extends Error {
|
|
54
|
+
status?: number;
|
|
55
|
+
remoteOutcomeUncertain?: boolean;
|
|
56
|
+
constructor(message: string, options?: {
|
|
57
|
+
status?: number;
|
|
58
|
+
remoteOutcomeUncertain?: boolean;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export declare class CsomagpiacConfigError extends CsomagpiacError {
|
|
62
|
+
constructor(message?: string);
|
|
63
|
+
}
|
|
64
|
+
export declare class CsomagpiacValidationError extends CsomagpiacError {
|
|
65
|
+
constructor(message: string);
|
|
66
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CsomagpiacValidationError = exports.CsomagpiacConfigError = exports.CsomagpiacError = void 0;
|
|
4
|
+
class CsomagpiacError extends Error {
|
|
5
|
+
constructor(message, options = {}) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "CsomagpiacError";
|
|
8
|
+
this.status = options.status;
|
|
9
|
+
this.remoteOutcomeUncertain = options.remoteOutcomeUncertain;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.CsomagpiacError = CsomagpiacError;
|
|
13
|
+
class CsomagpiacConfigError extends CsomagpiacError {
|
|
14
|
+
constructor(message = "A Csomagpiac API nincs megfelelően konfigurálva.") {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = "CsomagpiacConfigError";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.CsomagpiacConfigError = CsomagpiacConfigError;
|
|
20
|
+
class CsomagpiacValidationError extends CsomagpiacError {
|
|
21
|
+
constructor(message) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = "CsomagpiacValidationError";
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.CsomagpiacValidationError = CsomagpiacValidationError;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2Nzb21hZ3BpYWMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK0RBLE1BQWEsZUFBZ0IsU0FBUSxLQUFLO0lBSXhDLFlBQVksT0FBZSxFQUFFLFVBQWlFLEVBQUU7UUFDOUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQTtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUE7UUFDNUIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQTtJQUM5RCxDQUFDO0NBQ0Y7QUFWRCwwQ0FVQztBQUVELE1BQWEscUJBQXNCLFNBQVEsZUFBZTtJQUN4RCxZQUFZLE9BQU8sR0FBRyxrREFBa0Q7UUFDdEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyx1QkFBdUIsQ0FBQTtJQUNyQyxDQUFDO0NBQ0Y7QUFMRCxzREFLQztBQUVELE1BQWEseUJBQTBCLFNBQVEsZUFBZTtJQUM1RCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQTtJQUN6QyxDQUFDO0NBQ0Y7QUFMRCw4REFLQyJ9
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RecipientEmailOrderService } from "../../lib/modules/shipping/recipient-email";
|
|
1
2
|
import { AbstractFulfillmentProviderService } from "@medusajs/framework/utils";
|
|
2
3
|
import type { CalculatedShippingOptionPrice, CalculateShippingOptionPriceContext, CreateFulfillmentResult, CreateShippingOptionDTO, FulfillmentDTO, FulfillmentItemDTO, FulfillmentOption, FulfillmentOrderDTO, ValidateFulfillmentDataContext } from "@medusajs/framework/types";
|
|
3
4
|
import { DpdService } from "./service";
|
|
@@ -27,6 +28,7 @@ type InjectedDependencies = {
|
|
|
27
28
|
info: (message: string) => void;
|
|
28
29
|
};
|
|
29
30
|
integrationOperation?: IntegrationOperationStore;
|
|
31
|
+
order?: RecipientEmailOrderService;
|
|
30
32
|
};
|
|
31
33
|
export default class DpdFulfillmentProviderService extends AbstractFulfillmentProviderService {
|
|
32
34
|
static identifier: string;
|
|
@@ -34,6 +36,7 @@ export default class DpdFulfillmentProviderService extends AbstractFulfillmentPr
|
|
|
34
36
|
protected readonly options_: ProviderOptions;
|
|
35
37
|
protected readonly logger_?: InjectedDependencies["logger"];
|
|
36
38
|
protected readonly operationStore_?: IntegrationOperationStore;
|
|
39
|
+
protected readonly orderService_?: RecipientEmailOrderService;
|
|
37
40
|
constructor(container?: InjectedDependencies, options?: ProviderOptions);
|
|
38
41
|
getFulfillmentOptions(): Promise<FulfillmentOption[]>;
|
|
39
42
|
validateFulfillmentData(optionData: Record<string, unknown>, data: Record<string, unknown>, context: ValidateFulfillmentDataContext): Promise<Record<string, unknown>>;
|
|
@@ -43,9 +46,10 @@ export default class DpdFulfillmentProviderService extends AbstractFulfillmentPr
|
|
|
43
46
|
createFulfillment(data: Record<string, unknown>, _items: Partial<Omit<FulfillmentItemDTO, "fulfillment">>[], order: Partial<FulfillmentOrderDTO> | undefined, fulfillment: Partial<Omit<FulfillmentDTO, "provider_id" | "data" | "items">>): Promise<CreateFulfillmentResult>;
|
|
44
47
|
cancelFulfillment(data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
45
48
|
getFulfillmentDocuments(_data: Record<string, unknown>): Promise<never[]>;
|
|
46
|
-
createReturnFulfillment(
|
|
49
|
+
createReturnFulfillment(_fulfillment: Record<string, unknown>): Promise<CreateFulfillmentResult>;
|
|
47
50
|
retrieveDocuments(_fulfillmentData: Record<string, unknown>, _documentType: string): Promise<void>;
|
|
48
51
|
getReturnDocuments(_data: Record<string, unknown>): Promise<never[]>;
|
|
49
52
|
getShipmentDocuments(_data: Record<string, unknown>): Promise<never[]>;
|
|
53
|
+
private runDurableCancel;
|
|
50
54
|
}
|
|
51
55
|
export {};
|