@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
|
@@ -71,17 +71,9 @@ exports.INTEGRATION_DEFINITIONS = [
|
|
|
71
71
|
enabledEnv: "BILLINGO_ENABLED",
|
|
72
72
|
restartRequired: true,
|
|
73
73
|
fields: [
|
|
74
|
-
text("BILLINGO_API_URL", "API URL"),
|
|
75
74
|
secret("BILLINGO_API_KEY", "API kulcs", true),
|
|
76
75
|
number("BILLINGO_DOCUMENT_BLOCK_ID", "Számlatömb azonosító", true),
|
|
77
76
|
number("BILLINGO_BANK_ACCOUNT_ID", "Bankszámla azonosító", true),
|
|
78
|
-
select("BILLINGO_PAYMENT_METHOD", "Alap fizetési mód", [
|
|
79
|
-
{ label: "Stripe", value: "stripe" },
|
|
80
|
-
{ label: "Online bankkártya", value: "online_bankcard" },
|
|
81
|
-
{ label: "Átutalás", value: "wire_transfer" },
|
|
82
|
-
{ label: "Utánvét", value: "cash_on_delivery" },
|
|
83
|
-
{ label: "Egyéb", value: "other" },
|
|
84
|
-
]),
|
|
85
77
|
select("BILLINGO_LANGUAGE", "Nyelv", [
|
|
86
78
|
{ label: "Magyar", value: "hu" },
|
|
87
79
|
{ label: "Angol", value: "en" },
|
|
@@ -97,8 +89,6 @@ exports.INTEGRATION_DEFINITIONS = [
|
|
|
97
89
|
{ label: "Fulfillment létrejötte", value: "fulfillment_created" },
|
|
98
90
|
{ label: "Csak manuálisan", value: "manual" },
|
|
99
91
|
]),
|
|
100
|
-
text("BILLINGO_UNIT", "Mértékegység"),
|
|
101
|
-
number("BILLINGO_TIMEOUT_MS", "Timeout (ms)"),
|
|
102
92
|
],
|
|
103
93
|
},
|
|
104
94
|
{
|
|
@@ -109,16 +99,13 @@ exports.INTEGRATION_DEFINITIONS = [
|
|
|
109
99
|
enabledEnv: "FOXPOST_ENABLED",
|
|
110
100
|
restartRequired: true,
|
|
111
101
|
fields: [
|
|
112
|
-
text("FOXPOST_API_URL", "API URL", true),
|
|
113
102
|
text("FOXPOST_API_USERNAME", "API felhasználónév", true),
|
|
114
103
|
secret("FOXPOST_API_PASSWORD", "API jelszó", true),
|
|
115
104
|
secret("FOXPOST_API_KEY", "API kulcs", true),
|
|
116
|
-
text("FOXPOST_LOCKER_FEED_URL", "Automata feed URL", true),
|
|
117
105
|
bool("FOXPOST_SANDBOX", "Sandbox"),
|
|
118
106
|
number("FOXPOST_LOCKER_PRICE_HUF", "Automata díj (HUF)"),
|
|
119
107
|
number("FOXPOST_HOME_DELIVERY_PRICE_HUF", "Házhozszállítás díj (HUF)"),
|
|
120
108
|
number("FOXPOST_FREE_SHIPPING_THRESHOLD_HUF", "Ingyenes szállítás határ (HUF)"),
|
|
121
|
-
number("FOXPOST_TIMEOUT_MS", "Timeout (ms)"),
|
|
122
109
|
],
|
|
123
110
|
},
|
|
124
111
|
{
|
|
@@ -342,4 +329,4 @@ function integrationDefinition(key) {
|
|
|
342
329
|
function secretFieldNames(definition) {
|
|
343
330
|
return new Set(definition.fields.filter((field) => field.type === "secret").map((field) => field.name));
|
|
344
331
|
}
|
|
345
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi1zZXR0aW5ncy9yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0WEEsc0RBRUM7QUFFRCw0Q0FFQztBQTNXRCxNQUFNLElBQUksR0FBRyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsSUFBYSxFQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZILE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxRQUFRLEdBQUcsS0FBSyxFQUFFLElBQWEsRUFBb0IsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDaEosTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsSUFBYSxFQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUNwSixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxJQUFhLEVBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ3BKLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxPQUFnRCxFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQW9CLEVBQUUsQ0FBQyxD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
|
|
332
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi1zZXR0aW5ncy9yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErV0Esc0RBRUM7QUFFRCw0Q0FFQztBQTlWRCxNQUFNLElBQUksR0FBRyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsSUFBYSxFQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZILE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxRQUFRLEdBQUcsS0FBSyxFQUFFLElBQWEsRUFBb0IsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDaEosTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsSUFBYSxFQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUNwSixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxJQUFhLEVBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ3BKLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxPQUFnRCxFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQW9CLEVBQUUsQ0FBQyxD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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable proxy for integration clients/services whose credentials can change
|
|
3
|
+
* while the Medusa process is running.
|
|
4
|
+
*
|
|
5
|
+
* Consumers keep the same object reference (important for Medusa providers and
|
|
6
|
+
* tests), while the underlying target is recreated after an Admin integration
|
|
7
|
+
* settings save increments the runtime revision. Sibling processes sharing the
|
|
8
|
+
* same runtime snapshot also refresh lazily on their next provider call.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createReloadableIntegrationService<T extends object>(factory: () => T): T;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createReloadableIntegrationService = createReloadableIntegrationService;
|
|
4
|
+
const runtime_snapshot_1 = require("./runtime-snapshot");
|
|
5
|
+
/**
|
|
6
|
+
* Stable proxy for integration clients/services whose credentials can change
|
|
7
|
+
* while the Medusa process is running.
|
|
8
|
+
*
|
|
9
|
+
* Consumers keep the same object reference (important for Medusa providers and
|
|
10
|
+
* tests), while the underlying target is recreated after an Admin integration
|
|
11
|
+
* settings save increments the runtime revision. Sibling processes sharing the
|
|
12
|
+
* same runtime snapshot also refresh lazily on their next provider call.
|
|
13
|
+
*/
|
|
14
|
+
function createReloadableIntegrationService(factory) {
|
|
15
|
+
let target = null;
|
|
16
|
+
let revision = -1;
|
|
17
|
+
const current = () => {
|
|
18
|
+
(0, runtime_snapshot_1.refreshIntegrationRuntimeSnapshotIfChanged)();
|
|
19
|
+
const nextRevision = (0, runtime_snapshot_1.integrationRuntimeRevision)();
|
|
20
|
+
if (!target || revision !== nextRevision) {
|
|
21
|
+
target = factory();
|
|
22
|
+
revision = nextRevision;
|
|
23
|
+
}
|
|
24
|
+
return target;
|
|
25
|
+
};
|
|
26
|
+
return new Proxy({}, {
|
|
27
|
+
get(_proxyTarget, property) {
|
|
28
|
+
const instance = current();
|
|
29
|
+
const value = instance[property];
|
|
30
|
+
return typeof value === "function" && !("_isMockFunction" in value)
|
|
31
|
+
? value.bind(instance)
|
|
32
|
+
: value;
|
|
33
|
+
},
|
|
34
|
+
set(_proxyTarget, property, value) {
|
|
35
|
+
;
|
|
36
|
+
current()[property] = value;
|
|
37
|
+
return true;
|
|
38
|
+
},
|
|
39
|
+
has(_proxyTarget, property) {
|
|
40
|
+
return property in current();
|
|
41
|
+
},
|
|
42
|
+
ownKeys() {
|
|
43
|
+
return Reflect.ownKeys(current());
|
|
44
|
+
},
|
|
45
|
+
getOwnPropertyDescriptor(_proxyTarget, property) {
|
|
46
|
+
const descriptor = Object.getOwnPropertyDescriptor(current(), property);
|
|
47
|
+
return descriptor ? { ...descriptor, configurable: true } : undefined;
|
|
48
|
+
},
|
|
49
|
+
defineProperty(_proxyTarget, property, descriptor) {
|
|
50
|
+
Object.defineProperty(current(), property, descriptor);
|
|
51
|
+
return true;
|
|
52
|
+
},
|
|
53
|
+
deleteProperty(_proxyTarget, property) {
|
|
54
|
+
return delete current()[property];
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsb2FkYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uLXNldHRpbmdzL3JlbG9hZGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFjQSxnRkE0Q0M7QUExREQseURBRzJCO0FBRTNCOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isa0NBQWtDLENBQW1CLE9BQWdCO0lBQ25GLElBQUksTUFBTSxHQUFhLElBQUksQ0FBQTtJQUMzQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUVqQixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7UUFDbkIsSUFBQSw2REFBMEMsR0FBRSxDQUFBO1FBQzVDLE1BQU0sWUFBWSxHQUFHLElBQUEsNkNBQTBCLEdBQUUsQ0FBQTtRQUNqRCxJQUFJLENBQUMsTUFBTSxJQUFJLFFBQVEsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEdBQUcsT0FBTyxFQUFFLENBQUE7WUFDbEIsUUFBUSxHQUFHLFlBQVksQ0FBQTtRQUN6QixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDLENBQUE7SUFFRCxPQUFPLElBQUksS0FBSyxDQUFDLEVBQU8sRUFBRTtRQUN4QixHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVE7WUFDeEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFrQyxDQUFBO1lBQzFELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUNoQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsSUFBSSxDQUFDLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDO2dCQUNqRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDWCxDQUFDO1FBQ0QsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSztZQUMvQixDQUFDO1lBQUMsT0FBTyxFQUFtQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQTtZQUM5RCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFDRCxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVE7WUFDeEIsT0FBTyxRQUFRLElBQUksT0FBTyxFQUFFLENBQUE7UUFDOUIsQ0FBQztRQUNELE9BQU87WUFDTCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNuQyxDQUFDO1FBQ0Qsd0JBQXdCLENBQUMsWUFBWSxFQUFFLFFBQVE7WUFDN0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQ3ZFLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO1FBQ3ZFLENBQUM7UUFDRCxjQUFjLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxVQUFVO1lBQy9DLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1lBQ3RELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUNELGNBQWMsQ0FBQyxZQUFZLEVBQUUsUUFBUTtZQUNuQyxPQUFPLE9BQVEsT0FBTyxFQUFtQyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3JFLENBQUM7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
export declare function applyIntegrationRuntimeValues(values: Record<string, string>, env?: NodeJS.ProcessEnv): number;
|
|
2
|
+
export declare function integrationRuntimeRevision(): number;
|
|
1
3
|
export declare function applyIntegrationRuntimeSnapshot(env?: NodeJS.ProcessEnv): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Refresh another backend worker/process from the shared encrypted snapshot.
|
|
6
|
+
* This is intentionally cheap: only the file mtime is checked until another
|
|
7
|
+
* process writes a newer snapshot. It lets PM2 cluster workers sharing the same
|
|
8
|
+
* filesystem pick up Admin integration changes on their next provider call.
|
|
9
|
+
*/
|
|
10
|
+
export declare function refreshIntegrationRuntimeSnapshotIfChanged(env?: NodeJS.ProcessEnv): boolean;
|
|
2
11
|
export declare function writeIntegrationRuntimeSnapshot(values: Record<string, string>, env?: NodeJS.ProcessEnv): string;
|
|
3
12
|
export declare function integrationRuntimeSnapshotPath(env?: NodeJS.ProcessEnv): string;
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyIntegrationRuntimeValues = applyIntegrationRuntimeValues;
|
|
4
|
+
exports.integrationRuntimeRevision = integrationRuntimeRevision;
|
|
3
5
|
exports.applyIntegrationRuntimeSnapshot = applyIntegrationRuntimeSnapshot;
|
|
6
|
+
exports.refreshIntegrationRuntimeSnapshotIfChanged = refreshIntegrationRuntimeSnapshotIfChanged;
|
|
4
7
|
exports.writeIntegrationRuntimeSnapshot = writeIntegrationRuntimeSnapshot;
|
|
5
8
|
exports.integrationRuntimeSnapshotPath = integrationRuntimeSnapshotPath;
|
|
6
9
|
const node_fs_1 = require("node:fs");
|
|
7
10
|
const node_path_1 = require("node:path");
|
|
8
11
|
const crypto_1 = require("./crypto");
|
|
12
|
+
let runtimeRevision = 0;
|
|
13
|
+
let lastSnapshotMtimeMs = 0;
|
|
9
14
|
function snapshotPath(env = process.env) {
|
|
10
15
|
const configured = env.INTEGRATION_SETTINGS_FILE?.trim();
|
|
11
16
|
if (configured)
|
|
@@ -16,11 +21,22 @@ function snapshotPath(env = process.env) {
|
|
|
16
21
|
}
|
|
17
22
|
return (0, node_path_1.join)(process.cwd(), ".core", "integration-settings.enc");
|
|
18
23
|
}
|
|
24
|
+
function applyIntegrationRuntimeValues(values, env = process.env) {
|
|
25
|
+
for (const [name, value] of Object.entries(values)) {
|
|
26
|
+
env[name] = value;
|
|
27
|
+
}
|
|
28
|
+
runtimeRevision += 1;
|
|
29
|
+
return runtimeRevision;
|
|
30
|
+
}
|
|
31
|
+
function integrationRuntimeRevision() {
|
|
32
|
+
return runtimeRevision;
|
|
33
|
+
}
|
|
19
34
|
function applyIntegrationRuntimeSnapshot(env = process.env) {
|
|
20
35
|
const path = snapshotPath(env);
|
|
21
36
|
let payload;
|
|
22
37
|
try {
|
|
23
38
|
payload = (0, node_fs_1.readFileSync)(path, "utf8").trim();
|
|
39
|
+
lastSnapshotMtimeMs = (0, node_fs_1.statSync)(path).mtimeMs;
|
|
24
40
|
}
|
|
25
41
|
catch (error) {
|
|
26
42
|
if (error?.code === "ENOENT")
|
|
@@ -30,9 +46,34 @@ function applyIntegrationRuntimeSnapshot(env = process.env) {
|
|
|
30
46
|
if (!payload)
|
|
31
47
|
return false;
|
|
32
48
|
const values = (0, crypto_1.decryptIntegrationSecrets)(payload, env);
|
|
33
|
-
|
|
34
|
-
|
|
49
|
+
applyIntegrationRuntimeValues(values, env);
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Refresh another backend worker/process from the shared encrypted snapshot.
|
|
54
|
+
* This is intentionally cheap: only the file mtime is checked until another
|
|
55
|
+
* process writes a newer snapshot. It lets PM2 cluster workers sharing the same
|
|
56
|
+
* filesystem pick up Admin integration changes on their next provider call.
|
|
57
|
+
*/
|
|
58
|
+
function refreshIntegrationRuntimeSnapshotIfChanged(env = process.env) {
|
|
59
|
+
const path = snapshotPath(env);
|
|
60
|
+
let mtimeMs;
|
|
61
|
+
try {
|
|
62
|
+
mtimeMs = (0, node_fs_1.statSync)(path).mtimeMs;
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (error?.code === "ENOENT")
|
|
66
|
+
return false;
|
|
67
|
+
throw error;
|
|
35
68
|
}
|
|
69
|
+
if (mtimeMs <= lastSnapshotMtimeMs)
|
|
70
|
+
return false;
|
|
71
|
+
const payload = (0, node_fs_1.readFileSync)(path, "utf8").trim();
|
|
72
|
+
if (!payload)
|
|
73
|
+
return false;
|
|
74
|
+
const values = (0, crypto_1.decryptIntegrationSecrets)(payload, env);
|
|
75
|
+
lastSnapshotMtimeMs = mtimeMs;
|
|
76
|
+
applyIntegrationRuntimeValues(values, env);
|
|
36
77
|
return true;
|
|
37
78
|
}
|
|
38
79
|
function writeIntegrationRuntimeSnapshot(values, env = process.env) {
|
|
@@ -44,9 +85,13 @@ function writeIntegrationRuntimeSnapshot(values, env = process.env) {
|
|
|
44
85
|
const temporary = `${path}.${process.pid}.tmp`;
|
|
45
86
|
(0, node_fs_1.writeFileSync)(temporary, `${encrypted}\n`, { encoding: "utf8", mode: 0o600 });
|
|
46
87
|
(0, node_fs_1.renameSync)(temporary, path);
|
|
88
|
+
lastSnapshotMtimeMs = (0, node_fs_1.statSync)(path).mtimeMs;
|
|
89
|
+
// The process handling the Admin save switches immediately; sibling PM2
|
|
90
|
+
// workers pick up the same snapshot through refreshIntegrationRuntimeSnapshotIfChanged.
|
|
91
|
+
applyIntegrationRuntimeValues(values, env);
|
|
47
92
|
return path;
|
|
48
93
|
}
|
|
49
94
|
function integrationRuntimeSnapshotPath(env = process.env) {
|
|
50
95
|
return snapshotPath(env);
|
|
51
96
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zbmFwc2hvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uLXNldHRpbmdzL3J1bnRpbWUtc25hcHNob3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtQkEsc0VBU0M7QUFFRCxnRUFFQztBQUVELDBFQWNDO0FBUUQsZ0dBbUJDO0FBRUQsMEVBaUJDO0FBRUQsd0VBRUM7QUFsR0QscUNBQXNGO0FBQ3RGLHlDQUFxRDtBQUNyRCxxQ0FBK0U7QUFFL0UsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZCLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO0FBRTNCLFNBQVMsWUFBWSxDQUFDLE1BQXlCLE9BQU8sQ0FBQyxHQUFHO0lBQ3hELE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUN4RCxJQUFJLFVBQVU7UUFBRSxPQUFPLElBQUEsc0JBQVUsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFBLGdCQUFJLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBRTVGLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUNwRCxJQUFJLGdCQUFnQixJQUFJLElBQUEsc0JBQVUsRUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFBLGdCQUFJLEVBQUMsSUFBQSxtQkFBTyxFQUFDLGdCQUFnQixDQUFDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsT0FBTyxJQUFBLGdCQUFJLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO0FBQ2pFLENBQUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FDM0Ms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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const registry_1 = require("./registry");
|
|
4
|
+
const simplepay = registry_1.INTEGRATION_DEFINITIONS.find((definition) => definition.key === "simplepay");
|
|
5
|
+
if (simplepay && !simplepay.fields.some((field) => field.name === "SIMPLEPAY_PAYMENT_TIMEOUT_MINUTES")) {
|
|
6
|
+
const field = {
|
|
7
|
+
name: "SIMPLEPAY_PAYMENT_TIMEOUT_MINUTES",
|
|
8
|
+
label: "Fizetési ablak (perc)",
|
|
9
|
+
type: "number",
|
|
10
|
+
help: "A SimplePay fizetési tranzakció érvényessége. Alapérték: 30 perc; engedélyezett tartomány: 1–1440 perc.",
|
|
11
|
+
};
|
|
12
|
+
const timeoutIndex = simplepay.fields.findIndex((item) => item.name === "SIMPLEPAY_TIMEOUT_MS");
|
|
13
|
+
if (timeoutIndex >= 0)
|
|
14
|
+
simplepay.fields.splice(timeoutIndex, 0, field);
|
|
15
|
+
else
|
|
16
|
+
simplepay.fields.push(field);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlcGF5LXJlZ2lzdHJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uLXNldHRpbmdzL3NpbXBsZXBheS1yZWdpc3RyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBMkU7QUFFM0UsTUFBTSxTQUFTLEdBQUcsa0NBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLFdBQVcsQ0FBQyxDQUFBO0FBRTlGLElBQUksU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssbUNBQW1DLENBQUMsRUFBRSxDQUFDO0lBQ3ZHLE1BQU0sS0FBSyxHQUFxQjtRQUM5QixJQUFJLEVBQUUsbUNBQW1DO1FBQ3pDLEtBQUssRUFBRSx1QkFBdUI7UUFDOUIsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUseUdBQXlHO0tBQ2hILENBQUE7SUFDRCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxzQkFBc0IsQ0FBQyxDQUFBO0lBQy9GLElBQUksWUFBWSxJQUFJLENBQUM7UUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFBOztRQUNqRSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUNuQyxDQUFDIn0=
|
|
@@ -22,24 +22,34 @@ const definitions = [
|
|
|
22
22
|
key: "google-tag-manager",
|
|
23
23
|
label: "Google Tag Manager",
|
|
24
24
|
category: "marketing",
|
|
25
|
-
description: "Publikus GTM container azonosító. Ha aktív, a starter a GTM-et tekinti egyetlen Google tag loadernek, és nem tölt külön közvetlen GA4 scriptet.",
|
|
25
|
+
description: "Publikus GTM container azonosító. Ha aktív, a starter a GTM-et tekinti egyetlen Google tag loadernek, és nem tölt külön közvetlen GA4 vagy Google Ads scriptet.",
|
|
26
26
|
enabledEnv: "GTM_ENABLED",
|
|
27
27
|
restartRequired: false,
|
|
28
28
|
fields: [
|
|
29
|
-
text("GTM_CONTAINER_ID", "Container ID", true, "Publikus Google Tag Manager container azonosító, például GTM-XXXXXXX.
|
|
29
|
+
text("GTM_CONTAINER_ID", "Container ID", true, "Publikus Google Tag Manager container azonosító, például GTM-XXXXXXX. Google Ads purchase méréshez a containerben hozz létre google_ads_purchase Custom Event triggert és hozzá Google Ads Conversion Tracking taget; a tagekhez állíts be megfelelő consent checkeket."),
|
|
30
30
|
],
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
key: "google-ads",
|
|
34
34
|
label: "Google Ads",
|
|
35
35
|
category: "marketing",
|
|
36
|
-
description: "Google Ads vásárlási
|
|
36
|
+
description: "Google Ads vásárlási konverziómérés, remarketing és opcionális szerveroldali API kapcsolat refund/cancel korrekciókhoz és diagnosztikához.",
|
|
37
37
|
enabledEnv: "GOOGLE_ADS_ENABLED",
|
|
38
38
|
restartRequired: false,
|
|
39
39
|
fields: [
|
|
40
40
|
text("GOOGLE_ADS_CONVERSION_ID", "Conversion ID / Google tag ID", true, "Google Ads tag ID, például AW-123456789. A Google Ads konverziós művelet Tag setup részéből másolható."),
|
|
41
41
|
text("GOOGLE_ADS_PURCHASE_CONVERSION_LABEL", "Purchase conversion label", true, "A vásárlás konverziós művelet Conversion Label értéke. A storefront ebből állítja össze az AW-ID/LABEL send_to értéket."),
|
|
42
|
-
bool("GOOGLE_ADS_REMARKETING_ENABLED", "Remarketing engedélyezése", "Bekapcsolva a storefront
|
|
42
|
+
bool("GOOGLE_ADS_REMARKETING_ENABLED", "Remarketing engedélyezése", "Bekapcsolva a storefront Google Ads dinamikus remarketing ecommerce eseményeket is küld marketing consent után."),
|
|
43
|
+
bool("GOOGLE_ADS_API_ENABLED", "Google Ads API kapcsolat", "Bekapcsolva a Core szerveroldali Google Ads API kapcsolatot használhat. Az OAuth összekapcsolás az adwords scope-pal történik."),
|
|
44
|
+
bool("GOOGLE_ADS_ADJUSTMENTS_ENABLED", "Refund/cancel konverzió-korrekció", "Bekapcsolva a Core order.canceled esetén RETRACTION, payment.refunded esetén RESTATEMENT korrekciót küld a Google Ads API felé."),
|
|
45
|
+
text("GOOGLE_ADS_CUSTOMER_ID", "Google Ads customer ID", false, "A cél Google Ads ügyfélazonosító kötőjelek nélkül."),
|
|
46
|
+
text("GOOGLE_ADS_LOGIN_CUSTOMER_ID", "Manager / login customer ID", false, "Csak manager account használatakor szükséges; kötőjelek nélkül."),
|
|
47
|
+
text("GOOGLE_ADS_CONVERSION_ACTION_ID", "Purchase conversion action ID", false, "A vásárlási konverziós művelet numerikus ID-ja. A refund/cancel korrekció ugyanazt a conversion actiont módosítja."),
|
|
48
|
+
secret("GOOGLE_ADS_DEVELOPER_TOKEN", "Google Ads developer token", false, "Google Ads API developer token. Titkosítva tárolódik."),
|
|
49
|
+
text("GOOGLE_ADS_OAUTH_CLIENT_ID", "OAuth Client ID", false, "Google Cloud OAuth 2.0 kliensazonosító a Google Ads API hozzáféréshez."),
|
|
50
|
+
secret("GOOGLE_ADS_OAUTH_CLIENT_SECRET", "OAuth Client Secret", false, "Google Cloud OAuth 2.0 kliens secret. Titkosítva tárolódik."),
|
|
51
|
+
text("GOOGLE_ADS_OAUTH_REDIRECT_URI", "OAuth Redirect URI", false, "A Google Cloud OAuth kliensben engedélyezett callback URL, például https://backend.example.com/auth/google-ads/callback."),
|
|
52
|
+
secret("GOOGLE_ADS_OAUTH_REFRESH_TOKEN", "OAuth Refresh Token", false, "Az OAuth összekapcsolás után automatikusan mentett hosszú életű refresh token. Titkosítva tárolódik."),
|
|
43
53
|
],
|
|
44
54
|
},
|
|
45
55
|
{
|
|
@@ -59,4 +69,4 @@ for (const definition of definitions) {
|
|
|
59
69
|
registry_1.INTEGRATION_DEFINITIONS.push(definition);
|
|
60
70
|
}
|
|
61
71
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVmcm9udC1wdWJsaWMtcmVnaXN0cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24tc2V0dGluZ3Mvc3RvcmVmcm9udC1wdWJsaWMtcmVnaXN0cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBSW1CO0FBRW5CLE1BQU0sSUFBSSxHQUFHLENBQ1gsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFRLEdBQUcsS0FBSyxFQUNoQixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFFdEUsTUFBTSxJQUFJLEdBQUcsQ0FDWCxJQUFZLEVBQ1osS0FBYSxFQUNiLElBQWEsRUFDSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBRS9ELE1BQU0sTUFBTSxHQUFHLENBQ2IsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFRLEdBQUcsS0FBSyxFQUNoQixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFFeEUsTUFBTSxXQUFXLEdBQTRCO0lBQzNDO1FBQ0UsR0FBRyxFQUFFLGtCQUFrQjtRQUN2QixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxtTEFBbUw7UUFDckwsVUFBVSxFQUFFLGFBQWE7UUFDekIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsTUFBTSxFQUFFO1lBQ04sSUFBSSxDQUNGLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsSUFBSSxFQUNK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
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type CsomagpiacConfig, type CsomagpiacCreateRequest } from "./types";
|
|
2
|
+
export declare class CsomagpiacClient {
|
|
3
|
+
readonly config: CsomagpiacConfig;
|
|
4
|
+
private cachedToken?;
|
|
5
|
+
constructor(config: CsomagpiacConfig);
|
|
6
|
+
isConfigured(): boolean;
|
|
7
|
+
authenticate(): Promise<string>;
|
|
8
|
+
createShipment(data: CsomagpiacCreateRequest): Promise<Record<string, unknown>>;
|
|
9
|
+
deleteShipment(identifier: string): Promise<Record<string, unknown>>;
|
|
10
|
+
getShipmentStatus(identifier: string): Promise<Record<string, unknown>>;
|
|
11
|
+
getShipmentHistory(identifier: string): Promise<Record<string, unknown>>;
|
|
12
|
+
listStatuses(): Promise<Record<string, unknown>>;
|
|
13
|
+
listPickupPoints(): Promise<Record<string, unknown>>;
|
|
14
|
+
listLocations(): Promise<Record<string, unknown>>;
|
|
15
|
+
listServices(): Promise<Record<string, unknown>>;
|
|
16
|
+
listLocationTypes(): Promise<Record<string, unknown>>;
|
|
17
|
+
listHandlers(): Promise<Record<string, unknown>>;
|
|
18
|
+
downloadShipmentLabel(identifier: string, format?: "A4" | "A6"): Promise<Buffer<ArrayBuffer>>;
|
|
19
|
+
private requestJson;
|
|
20
|
+
private rawRequest;
|
|
21
|
+
private fetchWithTimeout;
|
|
22
|
+
private throwResponseError;
|
|
23
|
+
private headers;
|
|
24
|
+
private url;
|
|
25
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CsomagpiacClient = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
class CsomagpiacClient {
|
|
6
|
+
constructor(config) {
|
|
7
|
+
this.config = config;
|
|
8
|
+
}
|
|
9
|
+
isConfigured() {
|
|
10
|
+
return Boolean(this.config.token || (this.config.username && this.config.password));
|
|
11
|
+
}
|
|
12
|
+
async authenticate() {
|
|
13
|
+
if (this.config.token)
|
|
14
|
+
return this.config.token;
|
|
15
|
+
if (this.cachedToken)
|
|
16
|
+
return this.cachedToken;
|
|
17
|
+
if (!this.config.username || !this.config.password)
|
|
18
|
+
throw new types_1.CsomagpiacConfigError();
|
|
19
|
+
const response = await this.rawRequest("authenticate", {
|
|
20
|
+
method: "POST",
|
|
21
|
+
authenticated: false,
|
|
22
|
+
body: {
|
|
23
|
+
username: this.config.username,
|
|
24
|
+
password: this.config.password,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
const token = asString(response?.token);
|
|
28
|
+
if (!token)
|
|
29
|
+
throw new types_1.CsomagpiacError("A Csomagpiac autentikáció nem adott vissza tokent.");
|
|
30
|
+
this.cachedToken = token;
|
|
31
|
+
return token;
|
|
32
|
+
}
|
|
33
|
+
async createShipment(data) {
|
|
34
|
+
return this.requestJson("shipment/new", { method: "POST", body: data });
|
|
35
|
+
}
|
|
36
|
+
async deleteShipment(identifier) {
|
|
37
|
+
return this.requestJson(`shipment/delete/${encodeURIComponent(identifier)}`, { method: "DELETE" });
|
|
38
|
+
}
|
|
39
|
+
async getShipmentStatus(identifier) {
|
|
40
|
+
return this.requestJson(`shipment/status/${encodeURIComponent(identifier)}`);
|
|
41
|
+
}
|
|
42
|
+
async getShipmentHistory(identifier) {
|
|
43
|
+
return this.requestJson(`shipment/history/${encodeURIComponent(identifier)}`);
|
|
44
|
+
}
|
|
45
|
+
async listStatuses() {
|
|
46
|
+
return this.requestJson("shipment/statuses");
|
|
47
|
+
}
|
|
48
|
+
async listPickupPoints() {
|
|
49
|
+
return this.requestJson("pickuppoints");
|
|
50
|
+
}
|
|
51
|
+
async listLocations() {
|
|
52
|
+
return this.requestJson("locations/list");
|
|
53
|
+
}
|
|
54
|
+
async listServices() {
|
|
55
|
+
return this.requestJson("client/services");
|
|
56
|
+
}
|
|
57
|
+
async listLocationTypes() {
|
|
58
|
+
return this.requestJson("locations/types");
|
|
59
|
+
}
|
|
60
|
+
async listHandlers() {
|
|
61
|
+
return this.requestJson("handlers");
|
|
62
|
+
}
|
|
63
|
+
async downloadShipmentLabel(identifier, format = this.config.labelFormat) {
|
|
64
|
+
const token = await this.authenticate();
|
|
65
|
+
const response = await this.fetchWithTimeout(this.url(`shipment/download/${encodeURIComponent(identifier)}/${format}`), {
|
|
66
|
+
method: "GET",
|
|
67
|
+
headers: this.headers(token),
|
|
68
|
+
});
|
|
69
|
+
if (!response.ok)
|
|
70
|
+
await this.throwResponseError(response);
|
|
71
|
+
return Buffer.from(await response.arrayBuffer());
|
|
72
|
+
}
|
|
73
|
+
async requestJson(path, options = {}) {
|
|
74
|
+
const token = await this.authenticate();
|
|
75
|
+
return this.rawRequest(path, { ...options, authenticated: true, token });
|
|
76
|
+
}
|
|
77
|
+
async rawRequest(path, options = {}) {
|
|
78
|
+
const method = options.method ?? "GET";
|
|
79
|
+
const response = await this.fetchWithTimeout(this.url(path), {
|
|
80
|
+
method,
|
|
81
|
+
headers: options.authenticated === false ? this.headers() : this.headers(options.token),
|
|
82
|
+
...(options.body == null ? {} : { body: JSON.stringify(options.body) }),
|
|
83
|
+
});
|
|
84
|
+
if (!response.ok) {
|
|
85
|
+
if (response.status === 401)
|
|
86
|
+
this.cachedToken = undefined;
|
|
87
|
+
await this.throwResponseError(response);
|
|
88
|
+
}
|
|
89
|
+
const text = await response.text();
|
|
90
|
+
if (!text.trim())
|
|
91
|
+
return {};
|
|
92
|
+
try {
|
|
93
|
+
return JSON.parse(text);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
throw new types_1.CsomagpiacError("A Csomagpiac API nem érvényes JSON választ adott.", {
|
|
97
|
+
remoteOutcomeUncertain: method === "POST",
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async fetchWithTimeout(url, init) {
|
|
102
|
+
const controller = new AbortController();
|
|
103
|
+
const timer = setTimeout(() => controller.abort(), this.config.timeoutMs);
|
|
104
|
+
try {
|
|
105
|
+
return await fetch(url, { ...init, signal: controller.signal });
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
109
|
+
throw new types_1.CsomagpiacError(`A Csomagpiac API kérés sikertelen: ${message}`, {
|
|
110
|
+
remoteOutcomeUncertain: init.method === "POST" || init.method === "DELETE",
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
clearTimeout(timer);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async throwResponseError(response) {
|
|
118
|
+
const text = await response.text().catch(() => "");
|
|
119
|
+
let message = text || `HTTP ${response.status}`;
|
|
120
|
+
try {
|
|
121
|
+
const payload = JSON.parse(text);
|
|
122
|
+
message = asString(payload.message) || asString(payload.error) || message;
|
|
123
|
+
}
|
|
124
|
+
catch { }
|
|
125
|
+
throw new types_1.CsomagpiacError(`Csomagpiac API hiba (${response.status}): ${message}`, {
|
|
126
|
+
status: response.status,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
headers(token) {
|
|
130
|
+
return {
|
|
131
|
+
"Content-Type": "application/vnd.api+json",
|
|
132
|
+
Accept: "application/vnd.api+json",
|
|
133
|
+
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
url(path) {
|
|
137
|
+
return `${this.config.apiUrl.replace(/\/+$/, "")}/${path.replace(/^\/+/, "")}`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.CsomagpiacClient = CsomagpiacClient;
|
|
141
|
+
function asString(value) {
|
|
142
|
+
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9jc29tYWdwaWFjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBcUg7QUFFckgsTUFBYSxnQkFBZ0I7SUFHM0IsWUFBcUIsTUFBd0I7UUFBeEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7SUFBRyxDQUFDO0lBRWpELFlBQVk7UUFDVixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNyRixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO1FBQy9DLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUE7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLDZCQUFxQixFQUFFLENBQUE7UUFFckYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRTtZQUNyRCxNQUFNLEVBQUUsTUFBTTtZQUNkLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLElBQUksRUFBRTtnQkFDSixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2dCQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2FBQy9CO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFFLFFBQW9DLEVBQUUsS0FBSyxDQUFDLENB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
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type RecipientEmailOrderService } from "../../lib/modules/shipping/recipient-email";
|
|
2
|
+
import { AbstractFulfillmentProviderService } from "@medusajs/framework/utils";
|
|
3
|
+
import type { CalculatedShippingOptionPrice, CalculateShippingOptionPriceContext, CreateFulfillmentResult, CreateShippingOptionDTO, FulfillmentDTO, FulfillmentItemDTO, FulfillmentOption, FulfillmentOrderDTO, ValidateFulfillmentDataContext } from "@medusajs/framework/types";
|
|
4
|
+
import { CsomagpiacService } from "./service";
|
|
5
|
+
import { type CsomagpiacServiceSelection } from "./types";
|
|
6
|
+
import type { IntegrationOperationStore } from "../../modules/integration-operation/types";
|
|
7
|
+
type ProviderOptions = Partial<{
|
|
8
|
+
api_url: string;
|
|
9
|
+
token: string;
|
|
10
|
+
username: string;
|
|
11
|
+
password: string;
|
|
12
|
+
live: boolean;
|
|
13
|
+
pickup_point_id: number;
|
|
14
|
+
price_huf: number;
|
|
15
|
+
free_shipping_threshold_huf: number;
|
|
16
|
+
timeout_ms: number;
|
|
17
|
+
default_weight_kg: number;
|
|
18
|
+
label_format: string;
|
|
19
|
+
}>;
|
|
20
|
+
type InjectedDependencies = {
|
|
21
|
+
logger?: {
|
|
22
|
+
warn: (message: string) => void;
|
|
23
|
+
error: (message: string) => void;
|
|
24
|
+
info: (message: string) => void;
|
|
25
|
+
};
|
|
26
|
+
integrationOperation?: IntegrationOperationStore;
|
|
27
|
+
order?: RecipientEmailOrderService;
|
|
28
|
+
};
|
|
29
|
+
export default class CsomagpiacFulfillmentProviderService extends AbstractFulfillmentProviderService {
|
|
30
|
+
static identifier: string;
|
|
31
|
+
protected readonly csomagpiac_: CsomagpiacService;
|
|
32
|
+
protected readonly operationStore_?: IntegrationOperationStore;
|
|
33
|
+
protected readonly orderService_?: RecipientEmailOrderService;
|
|
34
|
+
constructor(container?: InjectedDependencies, options?: ProviderOptions);
|
|
35
|
+
getFulfillmentOptions(): Promise<FulfillmentOption[]>;
|
|
36
|
+
validateFulfillmentData(_optionData: Record<string, unknown>, data: Record<string, unknown>, context: ValidateFulfillmentDataContext): Promise<Record<string, unknown>>;
|
|
37
|
+
validateOption(data: Record<string, unknown>): Promise<boolean>;
|
|
38
|
+
canCalculate(_data: CreateShippingOptionDTO): Promise<boolean>;
|
|
39
|
+
calculatePrice(_optionData: Record<string, unknown>, data: Record<string, unknown>, context: CalculateShippingOptionPriceContext): Promise<CalculatedShippingOptionPrice>;
|
|
40
|
+
createFulfillment(data: Record<string, unknown>, _items: Partial<Omit<FulfillmentItemDTO, "fulfillment">>[], order: Partial<FulfillmentOrderDTO> | undefined, fulfillment: Partial<Omit<FulfillmentDTO, "provider_id" | "data" | "items">>): Promise<CreateFulfillmentResult>;
|
|
41
|
+
cancelFulfillment(data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
42
|
+
createReturnFulfillment(_fulfillment: Record<string, unknown>): Promise<CreateFulfillmentResult>;
|
|
43
|
+
getFulfillmentDocuments(_data: Record<string, unknown>): Promise<never[]>;
|
|
44
|
+
retrieveDocuments(_fulfillmentData: Record<string, unknown>, _documentType: string): Promise<void>;
|
|
45
|
+
getReturnDocuments(_data: Record<string, unknown>): Promise<never[]>;
|
|
46
|
+
getShipmentDocuments(_data: Record<string, unknown>): Promise<never[]>;
|
|
47
|
+
private runDurableDelete;
|
|
48
|
+
}
|
|
49
|
+
export declare function normalizeServices(value: unknown): CsomagpiacServiceSelection[];
|
|
50
|
+
export {};
|