@hszrdm/core 1.6.0 → 1.8.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.
Files changed (183) hide show
  1. package/.medusa/server/src/admin/index.js +7481 -5872
  2. package/.medusa/server/src/admin/index.mjs +7482 -5873
  3. package/.medusa/server/src/api/admin/arukereso/marketplace-preview/route.d.ts +2 -0
  4. package/.medusa/server/src/api/admin/arukereso/marketplace-preview/route.js +26 -0
  5. package/.medusa/server/src/api/admin/billingo/advance/route.d.ts +8 -0
  6. package/.medusa/server/src/api/admin/billingo/advance/route.js +55 -0
  7. package/.medusa/server/src/api/admin/billingo/partial-credit/route.d.ts +8 -0
  8. package/.medusa/server/src/api/admin/billingo/partial-credit/route.js +69 -0
  9. package/.medusa/server/src/api/admin/documents/[id]/route.d.ts +22 -0
  10. package/.medusa/server/src/api/admin/documents/[id]/route.js +107 -0
  11. package/.medusa/server/src/api/admin/documents/route.d.ts +21 -0
  12. package/.medusa/server/src/api/admin/documents/route.js +117 -0
  13. package/.medusa/server/src/api/admin/google-ads/diagnostics/route.d.ts +2 -0
  14. package/.medusa/server/src/api/admin/google-ads/diagnostics/route.js +26 -0
  15. package/.medusa/server/src/api/admin/google-ads/oauth/start/route.d.ts +2 -0
  16. package/.medusa/server/src/api/admin/google-ads/oauth/start/route.js +27 -0
  17. package/.medusa/server/src/api/admin/google-merchant/data-source/sync/route.d.ts +2 -0
  18. package/.medusa/server/src/api/admin/google-merchant/data-source/sync/route.js +69 -0
  19. package/.medusa/server/src/api/admin/google-merchant/diagnostics/route.d.ts +2 -0
  20. package/.medusa/server/src/api/admin/google-merchant/diagnostics/route.js +26 -0
  21. package/.medusa/server/src/api/admin/google-merchant/oauth/start/route.d.ts +2 -0
  22. package/.medusa/server/src/api/admin/google-merchant/oauth/start/route.js +25 -0
  23. package/.medusa/server/src/api/admin/orders/[id]/shipping/route.js +28 -28
  24. package/.medusa/server/src/api/admin/shipping/mpl/close/route.d.ts +1 -1
  25. package/.medusa/server/src/api/admin/shipping/mpl/close/route.js +48 -70
  26. package/.medusa/server/src/api/auth/google-ads/callback/route.d.ts +2 -0
  27. package/.medusa/server/src/api/auth/google-ads/callback/route.js +58 -0
  28. package/.medusa/server/src/api/feeds/arukereso-marketplace.xml/route.d.ts +2 -0
  29. package/.medusa/server/src/api/feeds/arukereso-marketplace.xml/route.js +33 -0
  30. package/.medusa/server/src/api/feeds/google-merchant.xml/route.js +5 -3
  31. package/.medusa/server/src/api/hooks/arukereso/marketplace/order/route.d.ts +2 -0
  32. package/.medusa/server/src/api/hooks/arukereso/marketplace/order/route.js +211 -0
  33. package/.medusa/server/src/api/hooks/simplepay/ipn/route.js +113 -23
  34. package/.medusa/server/src/api/store/account/orders/[id]/reorder/route.d.ts +2 -0
  35. package/.medusa/server/src/api/store/account/orders/[id]/reorder/route.js +113 -0
  36. package/.medusa/server/src/api/store/arukereso/backlink/route.d.ts +2 -0
  37. package/.medusa/server/src/api/store/arukereso/backlink/route.js +73 -0
  38. package/.medusa/server/src/api/store/arukereso/trusted-shop/[id]/route.d.ts +2 -0
  39. package/.medusa/server/src/api/store/arukereso/trusted-shop/[id]/route.js +84 -0
  40. package/.medusa/server/src/api/store/arukereso/widget/route.d.ts +2 -0
  41. package/.medusa/server/src/api/store/arukereso/widget/route.js +64 -0
  42. package/.medusa/server/src/api/store/documents/route.d.ts +2 -0
  43. package/.medusa/server/src/api/store/documents/route.js +84 -0
  44. package/.medusa/server/src/api/store/google-merchant/oauth/callback/route.d.ts +2 -0
  45. package/.medusa/server/src/api/store/google-merchant/oauth/callback/route.js +50 -0
  46. package/.medusa/server/src/config.d.ts +3 -3
  47. package/.medusa/server/src/config.js +64 -87
  48. package/.medusa/server/src/core/documents.d.ts +31 -0
  49. package/.medusa/server/src/core/documents.js +47 -0
  50. package/.medusa/server/src/core/version.d.ts +2 -2
  51. package/.medusa/server/src/core/version.js +2 -2
  52. package/.medusa/server/src/lib/modules/arukereso/index.d.ts +1 -0
  53. package/.medusa/server/src/lib/modules/arukereso/index.js +2 -1
  54. package/.medusa/server/src/lib/modules/arukereso/marketplace-feed.d.ts +19 -0
  55. package/.medusa/server/src/lib/modules/arukereso/marketplace-feed.js +100 -0
  56. package/.medusa/server/src/lib/modules/billingo/actions.js +42 -12
  57. package/.medusa/server/src/lib/modules/billingo/advance.d.ts +68 -0
  58. package/.medusa/server/src/lib/modules/billingo/advance.js +309 -0
  59. package/.medusa/server/src/lib/modules/billingo/automation.js +49 -9
  60. package/.medusa/server/src/lib/modules/billingo/client.d.ts +5 -1
  61. package/.medusa/server/src/lib/modules/billingo/client.js +12 -6
  62. package/.medusa/server/src/lib/modules/billingo/index.d.ts +2 -0
  63. package/.medusa/server/src/lib/modules/billingo/index.js +3 -1
  64. package/.medusa/server/src/lib/modules/billingo/mapper.d.ts +38 -1
  65. package/.medusa/server/src/lib/modules/billingo/mapper.js +32 -1
  66. package/.medusa/server/src/lib/modules/billingo/partial-credit.d.ts +55 -0
  67. package/.medusa/server/src/lib/modules/billingo/partial-credit.js +338 -0
  68. package/.medusa/server/src/lib/modules/billingo/types.d.ts +7 -2
  69. package/.medusa/server/src/lib/modules/google-ads/adjustments.d.ts +21 -0
  70. package/.medusa/server/src/lib/modules/google-ads/adjustments.js +146 -0
  71. package/.medusa/server/src/lib/modules/google-ads/api.d.ts +23 -0
  72. package/.medusa/server/src/lib/modules/google-ads/api.js +171 -0
  73. package/.medusa/server/src/lib/modules/google-ads/diagnostics.d.ts +47 -0
  74. package/.medusa/server/src/lib/modules/google-ads/diagnostics.js +164 -0
  75. package/.medusa/server/src/lib/modules/google-merchant/category-fields.d.ts +7 -0
  76. package/.medusa/server/src/lib/modules/google-merchant/category-fields.js +210 -0
  77. package/.medusa/server/src/lib/modules/google-merchant/data-source.d.ts +17 -0
  78. package/.medusa/server/src/lib/modules/google-merchant/data-source.js +132 -0
  79. package/.medusa/server/src/lib/modules/google-merchant/diagnostics.d.ts +33 -0
  80. package/.medusa/server/src/lib/modules/google-merchant/diagnostics.js +113 -0
  81. package/.medusa/server/src/lib/modules/google-merchant/index.d.ts +5 -0
  82. package/.medusa/server/src/lib/modules/google-merchant/index.js +6 -1
  83. package/.medusa/server/src/lib/modules/google-merchant/merchant-api.d.ts +18 -0
  84. package/.medusa/server/src/lib/modules/google-merchant/merchant-api.js +120 -0
  85. package/.medusa/server/src/lib/modules/google-merchant/shipping.d.ts +13 -0
  86. package/.medusa/server/src/lib/modules/google-merchant/shipping.js +97 -0
  87. package/.medusa/server/src/lib/modules/google-tag-manager/api.d.ts +1 -0
  88. package/.medusa/server/src/lib/modules/google-tag-manager/api.js +3 -0
  89. package/.medusa/server/src/lib/modules/google-tag-manager/index.d.ts +1 -0
  90. package/.medusa/server/src/lib/modules/google-tag-manager/index.js +3 -0
  91. package/.medusa/server/src/lib/modules/google-tag-manager/sync.d.ts +1 -0
  92. package/.medusa/server/src/lib/modules/google-tag-manager/sync.js +3 -0
  93. package/.medusa/server/src/lib/modules/shipping/actions.js +163 -352
  94. package/.medusa/server/src/lib/modules/shipping/durable-create.d.ts +2 -1
  95. package/.medusa/server/src/lib/modules/shipping/durable-create.js +33 -5
  96. package/.medusa/server/src/lib/modules/shipping/idempotency.js +4 -2
  97. package/.medusa/server/src/lib/modules/shipping/types.d.ts +1 -1
  98. package/.medusa/server/src/modules/core-documents/index.d.ts +38 -0
  99. package/.medusa/server/src/modules/core-documents/index.js +18 -0
  100. package/.medusa/server/src/modules/core-documents/migrations/Migration20261102190000.d.ts +5 -0
  101. package/.medusa/server/src/modules/core-documents/migrations/Migration20261102190000.js +22 -0
  102. package/.medusa/server/src/modules/core-documents/models/core-document-assignment.d.ts +9 -0
  103. package/.medusa/server/src/modules/core-documents/models/core-document-assignment.js +18 -0
  104. package/.medusa/server/src/modules/core-documents/models/core-document.d.ts +18 -0
  105. package/.medusa/server/src/modules/core-documents/models/core-document.js +27 -0
  106. package/.medusa/server/src/modules/core-documents/service.d.ts +38 -0
  107. package/.medusa/server/src/modules/core-documents/service.js +13 -0
  108. package/.medusa/server/src/modules/integration-operation/state.d.ts +1 -0
  109. package/.medusa/server/src/modules/integration-operation/state.js +11 -50
  110. package/.medusa/server/src/modules/integration-operation/types.d.ts +1 -1
  111. package/.medusa/server/src/modules/integration-settings/arukereso-registration.js +19 -2
  112. package/.medusa/server/src/modules/integration-settings/connection-test.js +14 -1
  113. package/.medusa/server/src/modules/integration-settings/csomagpiac-definition.d.ts +2 -0
  114. package/.medusa/server/src/modules/integration-settings/csomagpiac-definition.js +49 -0
  115. package/.medusa/server/src/modules/integration-settings/csomagpiac-registration.d.ts +1 -0
  116. package/.medusa/server/src/modules/integration-settings/csomagpiac-registration.js +35 -0
  117. package/.medusa/server/src/modules/integration-settings/google-merchant-registration.js +23 -2
  118. package/.medusa/server/src/modules/integration-settings/hot-reload-registration.d.ts +1 -0
  119. package/.medusa/server/src/modules/integration-settings/hot-reload-registration.js +23 -0
  120. package/.medusa/server/src/modules/integration-settings/index.d.ts +4 -0
  121. package/.medusa/server/src/modules/integration-settings/index.js +5 -1
  122. package/.medusa/server/src/modules/integration-settings/manager.js +38 -4
  123. package/.medusa/server/src/modules/integration-settings/reloadable.d.ts +10 -0
  124. package/.medusa/server/src/modules/integration-settings/reloadable.js +58 -0
  125. package/.medusa/server/src/modules/integration-settings/runtime-snapshot.d.ts +9 -0
  126. package/.medusa/server/src/modules/integration-settings/runtime-snapshot.js +48 -3
  127. package/.medusa/server/src/modules/integration-settings/simplepay-registration.d.ts +1 -0
  128. package/.medusa/server/src/modules/integration-settings/simplepay-registration.js +18 -0
  129. package/.medusa/server/src/modules/integration-settings/storefront-public-registration.js +15 -5
  130. package/.medusa/server/src/providers/csomagpiac/client.d.ts +25 -0
  131. package/.medusa/server/src/providers/csomagpiac/client.js +144 -0
  132. package/.medusa/server/src/providers/csomagpiac/fulfillment-provider.d.ts +45 -0
  133. package/.medusa/server/src/providers/csomagpiac/fulfillment-provider.js +221 -0
  134. package/.medusa/server/src/providers/csomagpiac/index.d.ts +7 -0
  135. package/.medusa/server/src/providers/csomagpiac/index.js +30 -0
  136. package/.medusa/server/src/providers/csomagpiac/service.d.ts +46 -0
  137. package/.medusa/server/src/providers/csomagpiac/service.js +226 -0
  138. package/.medusa/server/src/providers/csomagpiac/types.d.ts +65 -0
  139. package/.medusa/server/src/providers/csomagpiac/types.js +27 -0
  140. package/.medusa/server/src/providers/dpd/fulfillment-provider.d.ts +2 -1
  141. package/.medusa/server/src/providers/dpd/fulfillment-provider.js +83 -25
  142. package/.medusa/server/src/providers/dpd/service.js +5 -3
  143. package/.medusa/server/src/providers/email/service.d.ts +7 -6
  144. package/.medusa/server/src/providers/email/service.js +51 -25
  145. package/.medusa/server/src/providers/foxpost/foxpost-service.js +5 -9
  146. package/.medusa/server/src/providers/foxpost/fulfillment-provider.d.ts +1 -0
  147. package/.medusa/server/src/providers/foxpost/fulfillment-provider.js +76 -66
  148. package/.medusa/server/src/providers/gls/fulfillment-provider.d.ts +1 -0
  149. package/.medusa/server/src/providers/gls/fulfillment-provider.js +76 -13
  150. package/.medusa/server/src/providers/gls/gls-service.d.ts +16 -0
  151. package/.medusa/server/src/providers/gls/gls-service.js +26 -65
  152. package/.medusa/server/src/providers/gls/types.d.ts +15 -0
  153. package/.medusa/server/src/providers/mpl/fulfillment-provider.d.ts +1 -0
  154. package/.medusa/server/src/providers/mpl/fulfillment-provider.js +61 -186
  155. package/.medusa/server/src/providers/mpl/index.d.ts +2 -0
  156. package/.medusa/server/src/providers/mpl/index.js +7 -2
  157. package/.medusa/server/src/providers/mpl/service.d.ts +35 -1
  158. package/.medusa/server/src/providers/mpl/service.js +82 -370
  159. package/.medusa/server/src/providers/mpl/types.d.ts +18 -0
  160. package/.medusa/server/src/providers/mpl/types.js +1 -1
  161. package/.medusa/server/src/providers/packeta/client.d.ts +2 -1
  162. package/.medusa/server/src/providers/packeta/client.js +24 -2
  163. package/.medusa/server/src/providers/packeta/fulfillment-provider.d.ts +1 -0
  164. package/.medusa/server/src/providers/packeta/fulfillment-provider.js +73 -5
  165. package/.medusa/server/src/providers/packeta/service.d.ts +1 -0
  166. package/.medusa/server/src/providers/packeta/service.js +85 -22
  167. package/.medusa/server/src/providers/packeta/types.d.ts +26 -0
  168. package/.medusa/server/src/providers/packeta/types.js +1 -1
  169. package/.medusa/server/src/providers/resilient-stripe/index.d.ts +19 -1
  170. package/.medusa/server/src/providers/resilient-stripe/index.js +55 -3
  171. package/.medusa/server/src/providers/simplepay/config.js +11 -1
  172. package/.medusa/server/src/providers/simplepay/index.d.ts +2 -0
  173. package/.medusa/server/src/providers/simplepay/index.js +5 -3
  174. package/.medusa/server/src/providers/simplepay/runtime-service.d.ts +13 -0
  175. package/.medusa/server/src/providers/simplepay/runtime-service.js +55 -0
  176. package/.medusa/server/src/providers/simplepay/service.d.ts +2 -0
  177. package/.medusa/server/src/providers/simplepay/service.js +40 -5
  178. package/.medusa/server/src/subscribers/google-ads-order-canceled.d.ts +7 -0
  179. package/.medusa/server/src/subscribers/google-ads-order-canceled.js +50 -0
  180. package/.medusa/server/src/subscribers/google-ads-payment-refunded.d.ts +7 -0
  181. package/.medusa/server/src/subscribers/google-ads-payment-refunded.js +181 -0
  182. package/.medusa/server/src/subscribers/simplepay-paid-order-recovery.js +14 -1
  183. package/package.json +6 -2
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const service_1 = require("./service");
5
+ const types_1 = require("./types");
6
+ const durable_create_1 = require("../../lib/modules/shipping/durable-create");
7
+ const state_1 = require("../../modules/integration-operation/state");
8
+ const idempotency_1 = require("../../lib/modules/shipping/idempotency");
9
+ const cod_1 = require("../../lib/modules/cod");
10
+ class CsomagpiacFulfillmentProviderService extends utils_1.AbstractFulfillmentProviderService {
11
+ constructor(container = {}, options = {}) {
12
+ super();
13
+ this.operationStore_ = container.integrationOperation;
14
+ this.csomagpiac_ = new service_1.CsomagpiacService(configFromProviderOptions(options));
15
+ }
16
+ async getFulfillmentOptions() {
17
+ return [{
18
+ id: "csomagpiac",
19
+ code: "csomagpiac",
20
+ name: "Csomagpiac szállítás",
21
+ delivery_type: "HOME",
22
+ deliveryType: "HOME",
23
+ }];
24
+ }
25
+ async validateFulfillmentData(_optionData, data, context) {
26
+ validateRecipient(context.shipping_address, context.email);
27
+ const selection = data.csomagpiac && typeof data.csomagpiac === "object"
28
+ ? data.csomagpiac
29
+ : data;
30
+ const pickupPointId = positiveInteger(selection.pickupPointId ?? selection.pickup_point_id) ?? this.csomagpiac_.config.pickupPointId;
31
+ if (!pickupPointId) {
32
+ throw new types_1.CsomagpiacValidationError("A Csomagpiac felvételi cím azonosítója nincs beállítva.");
33
+ }
34
+ const weightKg = positiveNumber(selection.weightKg ?? selection.weight_kg) ?? this.csomagpiac_.config.defaultWeightKg;
35
+ const services = normalizeServices(selection.services);
36
+ const insuredValue = nonNegativeNumber(selection.insuredValue ?? selection.insured_value);
37
+ return {
38
+ ...(0, cod_1.normalizeCodShippingData)(data),
39
+ csomagpiac: {
40
+ pickupPointId,
41
+ weightKg,
42
+ codAmount: 0,
43
+ status: "CREATED",
44
+ ...(services.length ? { services } : {}),
45
+ ...(insuredValue == null ? {} : { insuredValue }),
46
+ },
47
+ };
48
+ }
49
+ async validateOption(data) {
50
+ return String(data.id ?? data.code ?? "") === "csomagpiac";
51
+ }
52
+ async canCalculate(_data) {
53
+ return true;
54
+ }
55
+ async calculatePrice(_optionData, data, context) {
56
+ const subtotal = Number(context.subtotal ?? 0);
57
+ const threshold = this.csomagpiac_.config.freeShippingThresholdHuf;
58
+ const baseAmount = threshold != null && Number.isFinite(subtotal) && subtotal >= threshold
59
+ ? 0
60
+ : this.csomagpiac_.config.priceHuf;
61
+ return {
62
+ calculated_amount: (0, cod_1.codShippingPrice)(baseAmount, data, context.currency_code),
63
+ is_calculated_price_tax_inclusive: true,
64
+ };
65
+ }
66
+ async createFulfillment(data, _items, order, fulfillment) {
67
+ if (!this.csomagpiac_.client.isConfigured())
68
+ throw new types_1.CsomagpiacConfigError();
69
+ const shipment = extractShipment(data, order?.metadata);
70
+ const orderId = order?.id ?? String(fulfillment.id ?? "unknown");
71
+ const codAmount = (0, cod_1.codAmountForFulfillment)(data, order);
72
+ const rawOrder = order;
73
+ const virtualOrder = {
74
+ id: orderId,
75
+ display_id: order?.display_id,
76
+ email: order?.email,
77
+ total: rawOrder?.total,
78
+ currency_code: rawOrder?.currency_code,
79
+ shipping_address: order?.shipping_address,
80
+ metadata: {
81
+ ...(order?.metadata ?? {}),
82
+ csomagpiac: { ...shipment, codAmount },
83
+ },
84
+ };
85
+ const created = await (0, durable_create_1.runDurableShipmentCreate)({
86
+ operationStore: this.operationStore_,
87
+ carrier: "csomagpiac",
88
+ orderId,
89
+ cancelledExternalId: (0, idempotency_1.cancelledShipmentExternalId)("csomagpiac", shipment),
90
+ create: () => this.csomagpiac_.createShipment(virtualOrder),
91
+ });
92
+ return {
93
+ data: {
94
+ ...data,
95
+ csomagpiac: created,
96
+ identifier: created.identifier,
97
+ tracking_number: created.trackingNumber,
98
+ },
99
+ labels: created.trackingNumber
100
+ ? [{ tracking_number: created.trackingNumber, tracking_url: "", label_url: "" }]
101
+ : [],
102
+ };
103
+ }
104
+ async cancelFulfillment(data) {
105
+ const shipment = extractShipment(data);
106
+ if (!shipment.identifier || String(shipment.status).toUpperCase() === "CANCELLED") {
107
+ return { ...data, csomagpiac: shipment };
108
+ }
109
+ const cancelled = await this.runDurableDelete(shipment);
110
+ return { ...data, csomagpiac: cancelled };
111
+ }
112
+ async createReturnFulfillment(_fulfillment) {
113
+ throw new types_1.CsomagpiacValidationError("A Csomagpiac API v1 nem dokumentál általános visszáru-létrehozási végpontot.");
114
+ }
115
+ async getFulfillmentDocuments(_data) { return []; }
116
+ async retrieveDocuments(_fulfillmentData, _documentType) { return; }
117
+ async getReturnDocuments(_data) { return []; }
118
+ async getShipmentDocuments(_data) { return []; }
119
+ async runDurableDelete(shipment) {
120
+ const identifier = shipment.identifier;
121
+ if (!this.operationStore_) {
122
+ if (process.env.NODE_ENV === "production") {
123
+ throw new Error("A durable integration operation store nem érhető el; production környezetben a Csomagpiac törlés biztonsági okból leállt.");
124
+ }
125
+ return this.csomagpiac_.cancelShipment(shipment);
126
+ }
127
+ const acquired = await (0, state_1.acquireOperation)(this.operationStore_, {
128
+ provider: "csomagpiac",
129
+ operation_type: "shipment.delete",
130
+ entity_type: "shipment",
131
+ entity_id: identifier,
132
+ external_id: identifier,
133
+ idempotency_key: `csomagpiac:shipment:delete:${identifier}`,
134
+ reference_data: { carrier: "csomagpiac", action: "delete", shipment_external_id: identifier },
135
+ });
136
+ if (!acquired.acquired) {
137
+ const saved = acquired.operation.reference_data?.shipment;
138
+ if (acquired.operation.status === "succeeded" && saved && typeof saved === "object") {
139
+ return saved;
140
+ }
141
+ if (acquired.operation.status === "needs_reconciliation") {
142
+ throw new Error("A korábbi Csomagpiac törlés egyeztetést igényel; nem ismételhető biztonságosan.");
143
+ }
144
+ throw new Error("A Csomagpiac törlés már folyamatban van.");
145
+ }
146
+ let remoteSucceeded = false;
147
+ let cancelled;
148
+ try {
149
+ cancelled = await this.csomagpiac_.cancelShipment(shipment);
150
+ remoteSucceeded = true;
151
+ await (0, state_1.operationSucceeded)(this.operationStore_, acquired.operation, identifier, {
152
+ carrier: "csomagpiac",
153
+ action: "delete",
154
+ shipment: cancelled,
155
+ });
156
+ return cancelled;
157
+ }
158
+ catch (error) {
159
+ try {
160
+ await (0, state_1.operationFailed)(this.operationStore_, acquired.operation, error, remoteSucceeded || (0, durable_create_1.isUncertainRemoteFailure)(error), identifier, cancelled ? { carrier: "csomagpiac", action: "delete", shipment: cancelled } : undefined);
161
+ }
162
+ catch { }
163
+ throw error;
164
+ }
165
+ }
166
+ }
167
+ CsomagpiacFulfillmentProviderService.identifier = "csomagpiac";
168
+ exports.default = CsomagpiacFulfillmentProviderService;
169
+ function configFromProviderOptions(options) {
170
+ const env = (0, service_1.loadCsomagpiacConfig)();
171
+ return {
172
+ ...env,
173
+ apiUrl: options.api_url || env.apiUrl,
174
+ token: options.token || env.token,
175
+ username: options.username || env.username,
176
+ password: options.password || env.password,
177
+ live: options.live ?? env.live,
178
+ pickupPointId: positiveInteger(options.pickup_point_id) ?? env.pickupPointId,
179
+ priceHuf: positiveNumber(options.price_huf) ?? env.priceHuf,
180
+ freeShippingThresholdHuf: positiveNumber(options.free_shipping_threshold_huf) ?? env.freeShippingThresholdHuf,
181
+ timeoutMs: positiveNumber(options.timeout_ms) ?? env.timeoutMs,
182
+ defaultWeightKg: positiveNumber(options.default_weight_kg) ?? env.defaultWeightKg,
183
+ labelFormat: options.label_format === "A6" ? "A6" : options.label_format === "A4" ? "A4" : env.labelFormat,
184
+ };
185
+ }
186
+ function extractShipment(...sources) {
187
+ for (const source of sources) {
188
+ const raw = source?.csomagpiac;
189
+ if (raw && typeof raw === "object")
190
+ return raw;
191
+ }
192
+ throw new types_1.CsomagpiacValidationError("A rendelés nem Csomagpiac szállítású.");
193
+ }
194
+ function validateRecipient(address, email) {
195
+ if (!/^\S+@\S+\.\S+$/.test(String(email ?? "").trim())) {
196
+ throw new types_1.CsomagpiacValidationError("Érvényes e-mail-cím szükséges a Csomagpiac szállításhoz.");
197
+ }
198
+ if (![address?.first_name, address?.last_name].some((value) => String(value ?? "").trim())) {
199
+ throw new types_1.CsomagpiacValidationError("Címzettnév szükséges a Csomagpiac szállításhoz.");
200
+ }
201
+ for (const value of [address?.phone, address?.postal_code, address?.city, address?.address_1]) {
202
+ if (!String(value ?? "").trim())
203
+ throw new types_1.CsomagpiacValidationError("Hiányos szállítási cím a Csomagpiac szállításhoz.");
204
+ }
205
+ }
206
+ function normalizeServices(value) {
207
+ if (!Array.isArray(value))
208
+ return [];
209
+ return value.flatMap((item) => {
210
+ if (!item || typeof item !== "object")
211
+ return [];
212
+ const record = item;
213
+ const name = String(record.name ?? "").trim();
214
+ const serviceValue = String(record.value ?? "").trim();
215
+ return name && serviceValue ? [{ name, value: serviceValue }] : [];
216
+ });
217
+ }
218
+ function positiveInteger(value) { const n = Number(value); return Number.isInteger(n) && n > 0 ? n : undefined; }
219
+ function positiveNumber(value) { const n = Number(value); return Number.isFinite(n) && n > 0 ? n : undefined; }
220
+ function nonNegativeNumber(value) { const n = Number(value); return Number.isFinite(n) && n >= 0 ? n : undefined; }
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbG1lbnQtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2Nzb21hZ3BpYWMvZnVsZmlsbG1lbnQtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBOEU7QUFZOUUsdUNBQW1FO0FBQ25FLG1DQU1nQjtBQUNoQiw4RUFBOEc7QUFDOUcscUVBQWlIO0FBRWpILHdFQUF3RztBQUN4RywrQ0FBMkc7QUFxQjNHLE1BQXFCLG9DQUFxQyxTQUFRLDBDQUFrQztJQUtsRyxZQUFZLFlBQWtDLEVBQUUsRUFBRSxVQUEyQixFQUFFO1FBQzdFLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUE7UUFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLDJCQUFpQixDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDOUUsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUI7UUFDekIsT0FBTyxDQUFDO2dCQUNOLEVBQUUsRUFBRSxZQUFZO2dCQUNoQixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsYUFBYSxFQUFFLE1BQU07Z0JBQ3JCLFlBQVksRUFBRSxNQUFNO2FBQ3JCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQzNCLFdBQW9DLEVBQ3BDLElBQTZCLEVBQzdCLE9BQXVDO1FBRXZDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUTtZQUN0RSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQXFDO1lBQzVDLENBQUMsQ0FBQyxJQUFJ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
@@ -0,0 +1,7 @@
1
+ import CsomagpiacFulfillmentProviderService from "./fulfillment-provider";
2
+ declare const _default: import("@medusajs/types").ModuleProviderExports;
3
+ export default _default;
4
+ export * from "./types";
5
+ export * from "./client";
6
+ export * from "./service";
7
+ export { CsomagpiacFulfillmentProviderService };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.CsomagpiacFulfillmentProviderService = void 0;
21
+ const utils_1 = require("@medusajs/framework/utils");
22
+ const fulfillment_provider_1 = __importDefault(require("./fulfillment-provider"));
23
+ exports.CsomagpiacFulfillmentProviderService = fulfillment_provider_1.default;
24
+ exports.default = (0, utils_1.ModuleProvider)(utils_1.Modules.FULFILLMENT, {
25
+ services: [fulfillment_provider_1.default],
26
+ });
27
+ __exportStar(require("./types"), exports);
28
+ __exportStar(require("./client"), exports);
29
+ __exportStar(require("./service"), exports);
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2Nzb21hZ3BpYWMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBbUU7QUFDbkUsa0ZBQXlFO0FBU2hFLCtDQVRGLDhCQUFvQyxDQVNFO0FBUDdDLGtCQUFlLElBQUEsc0JBQWMsRUFBQyxlQUFPLENBQUMsV0FBVyxFQUFFO0lBQ2pELFFBQVEsRUFBRSxDQUFDLDhCQUFvQyxDQUFDO0NBQ2pELENBQUMsQ0FBQTtBQUVGLDBDQUF1QjtBQUN2QiwyQ0FBd0I7QUFDeEIsNENBQXlCIn0=
@@ -0,0 +1,46 @@
1
+ import { CsomagpiacClient } from "./client";
2
+ import { type CsomagpiacConfig, type CsomagpiacShipmentData } from "./types";
3
+ export declare const CSOMAGPIAC_LIVE_URL = "https://bestr.csomagpiac.hu/api/v1/";
4
+ export declare const CSOMAGPIAC_TEST_URL = "https://demo.csomagpiac.hu/api/v1/";
5
+ export declare function loadCsomagpiacConfig(env?: NodeJS.ProcessEnv): CsomagpiacConfig;
6
+ export declare class CsomagpiacService {
7
+ private readonly fallbackConfig?;
8
+ private readonly runtimeClient;
9
+ constructor(fallbackConfig?: CsomagpiacConfig | undefined);
10
+ get config(): CsomagpiacConfig;
11
+ get client(): CsomagpiacClient;
12
+ extractShipment(order: {
13
+ metadata?: Record<string, unknown> | null;
14
+ }): CsomagpiacShipmentData | null;
15
+ createShipment(order: Record<string, unknown>): Promise<CsomagpiacShipmentData | {
16
+ pickupPointId: number;
17
+ weightKg: number;
18
+ identifier: string;
19
+ trackingNumber: string;
20
+ status: string;
21
+ statusText: string | undefined;
22
+ statusUpdatedAt: string;
23
+ createdAt: string;
24
+ remote: Record<string, any>;
25
+ services?: import("./types").CsomagpiacServiceSelection[];
26
+ codAmount: number;
27
+ insuredValue?: number;
28
+ }>;
29
+ refreshStatus(shipment: CsomagpiacShipmentData): Promise<{
30
+ status: string;
31
+ statusText: string | undefined;
32
+ trackingNumber: string | undefined;
33
+ statusUpdatedAt: string;
34
+ remote: Record<string, any>;
35
+ pickupPointId: number;
36
+ weightKg: number;
37
+ services?: import("./types").CsomagpiacServiceSelection[];
38
+ codAmount: number;
39
+ insuredValue?: number;
40
+ identifier?: string;
41
+ createdAt?: string;
42
+ }>;
43
+ cancelShipment(shipment: CsomagpiacShipmentData): Promise<CsomagpiacShipmentData>;
44
+ getLabel(shipment: CsomagpiacShipmentData, format?: "A4" | "A6"): Promise<Buffer<ArrayBuffer>>;
45
+ }
46
+ export declare const csomagpiacService: CsomagpiacService;
@@ -0,0 +1,226 @@
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
+ const client_1 = require("./client");
6
+ const reloadable_1 = require("../../modules/integration-settings/reloadable");
7
+ const types_1 = require("./types");
8
+ exports.CSOMAGPIAC_LIVE_URL = "https://bestr.csomagpiac.hu/api/v1/";
9
+ exports.CSOMAGPIAC_TEST_URL = "https://demo.csomagpiac.hu/api/v1/";
10
+ function loadCsomagpiacConfig(env = process.env) {
11
+ const live = env.CSOMAGPIAC_LIVE === "true";
12
+ return {
13
+ apiUrl: env.CSOMAGPIAC_API_URL?.trim() ||
14
+ (live ? exports.CSOMAGPIAC_LIVE_URL : exports.CSOMAGPIAC_TEST_URL),
15
+ token: clean(env.CSOMAGPIAC_TOKEN),
16
+ username: clean(env.CSOMAGPIAC_USERNAME),
17
+ password: clean(env.CSOMAGPIAC_PASSWORD),
18
+ live,
19
+ pickupPointId: positiveInteger(env.CSOMAGPIAC_PICKUP_POINT_ID),
20
+ priceHuf: positiveNumber(env.CSOMAGPIAC_PRICE_HUF) ?? 1990,
21
+ freeShippingThresholdHuf: positiveNumber(env.CSOMAGPIAC_FREE_SHIPPING_THRESHOLD_HUF),
22
+ timeoutMs: positiveNumber(env.CSOMAGPIAC_TIMEOUT_MS) ?? 15000,
23
+ defaultWeightKg: positiveNumber(env.CSOMAGPIAC_DEFAULT_WEIGHT_KG) ?? 1,
24
+ labelFormat: env.CSOMAGPIAC_LABEL_FORMAT === "A6" ? "A6" : "A4",
25
+ };
26
+ }
27
+ class CsomagpiacService {
28
+ constructor(fallbackConfig) {
29
+ this.fallbackConfig = fallbackConfig;
30
+ this.runtimeClient = (0, reloadable_1.createReloadableIntegrationService)(() => new client_1.CsomagpiacClient(this.config));
31
+ }
32
+ get config() {
33
+ const runtime = loadCsomagpiacConfig();
34
+ const fallback = this.fallbackConfig;
35
+ if (!fallback)
36
+ return runtime;
37
+ const has = (name) => Object.prototype.hasOwnProperty.call(process.env, name);
38
+ return {
39
+ ...fallback,
40
+ ...runtime,
41
+ apiUrl: has("CSOMAGPIAC_API_URL") ? runtime.apiUrl : fallback.apiUrl || runtime.apiUrl,
42
+ token: has("CSOMAGPIAC_TOKEN") ? clean(process.env.CSOMAGPIAC_TOKEN) : fallback.token,
43
+ username: has("CSOMAGPIAC_USERNAME") ? clean(process.env.CSOMAGPIAC_USERNAME) : fallback.username,
44
+ password: has("CSOMAGPIAC_PASSWORD") ? clean(process.env.CSOMAGPIAC_PASSWORD) : fallback.password,
45
+ live: has("CSOMAGPIAC_LIVE") ? process.env.CSOMAGPIAC_LIVE === "true" : fallback.live,
46
+ pickupPointId: has("CSOMAGPIAC_PICKUP_POINT_ID") ? runtime.pickupPointId : fallback.pickupPointId,
47
+ priceHuf: has("CSOMAGPIAC_PRICE_HUF") ? runtime.priceHuf : fallback.priceHuf,
48
+ freeShippingThresholdHuf: has("CSOMAGPIAC_FREE_SHIPPING_THRESHOLD_HUF")
49
+ ? runtime.freeShippingThresholdHuf
50
+ : fallback.freeShippingThresholdHuf,
51
+ timeoutMs: has("CSOMAGPIAC_TIMEOUT_MS") ? runtime.timeoutMs : fallback.timeoutMs,
52
+ defaultWeightKg: has("CSOMAGPIAC_DEFAULT_WEIGHT_KG") ? runtime.defaultWeightKg : fallback.defaultWeightKg,
53
+ labelFormat: has("CSOMAGPIAC_LABEL_FORMAT") ? runtime.labelFormat : fallback.labelFormat,
54
+ };
55
+ }
56
+ get client() {
57
+ return this.runtimeClient;
58
+ }
59
+ extractShipment(order) {
60
+ const raw = order.metadata?.csomagpiac;
61
+ return raw && typeof raw === "object" ? raw : null;
62
+ }
63
+ async createShipment(order) {
64
+ const client = this.client;
65
+ if (!client.isConfigured())
66
+ throw new types_1.CsomagpiacConfigError();
67
+ const config = this.config;
68
+ const current = this.extractShipment(order);
69
+ if (!current)
70
+ throw new types_1.CsomagpiacValidationError("A rendelés nem Csomagpiac szállítású.");
71
+ if (current.identifier && String(current.status).toUpperCase() !== "CANCELLED")
72
+ return current;
73
+ const address = asRecord(order.shipping_address);
74
+ const pickupPointId = positiveInteger(current.pickupPointId) ?? config.pickupPointId;
75
+ if (!pickupPointId)
76
+ throw new types_1.CsomagpiacValidationError("Hiányzik a Csomagpiac felvételi cím azonosítója.");
77
+ const recipientName = [address.first_name, address.last_name]
78
+ .map((value) => String(value ?? "").trim())
79
+ .filter(Boolean)
80
+ .join(" ");
81
+ const recipientEmail = String(order.email ?? "").trim();
82
+ const recipientPhone = String(address.phone ?? "").trim();
83
+ const recipientZip = String(address.postal_code ?? "").trim();
84
+ const recipientCity = String(address.city ?? "").trim();
85
+ const recipientAddress = [address.address_1, address.address_2]
86
+ .map((value) => String(value ?? "").trim())
87
+ .filter(Boolean)
88
+ .join(" ");
89
+ const recipientCountryCode = String(address.country_code ?? "HU").trim().toUpperCase();
90
+ for (const [label, value] of [
91
+ ["címzett neve", recipientName],
92
+ ["címzett e-mail-címe", recipientEmail],
93
+ ["címzett telefonszáma", recipientPhone],
94
+ ["irányítószám", recipientZip],
95
+ ["város", recipientCity],
96
+ ["cím", recipientAddress],
97
+ ]) {
98
+ if (!value)
99
+ throw new types_1.CsomagpiacValidationError(`Hiányzik a Csomagpiac küldemény ${label} mezője.`);
100
+ }
101
+ const weightKg = positiveNumber(current.weightKg) ?? config.defaultWeightKg;
102
+ const orderTotal = nonNegativeNumber(order.total);
103
+ const payload = {
104
+ pickupPointId,
105
+ recipientName: recipientName.slice(0, 40),
106
+ recipientCountryCode: recipientCountryCode.slice(0, 3),
107
+ recipientZip: recipientZip.slice(0, 10),
108
+ recipientCity: recipientCity.slice(0, 40),
109
+ recipientAddress: recipientAddress.slice(0, 40),
110
+ recipientPhone: recipientPhone.slice(0, 20),
111
+ recipientEmail: recipientEmail.slice(0, 100),
112
+ packageCount: 1,
113
+ weights: [Math.max(1, Math.round(weightKg * 1000))],
114
+ weightUnit: "g",
115
+ reference: String(order.display_id ?? order.id ?? "").slice(0, 100),
116
+ ...(orderTotal == null ? {} : { parcelValue: Math.round(orderTotal) }),
117
+ ...(current.codAmount > 0 ? { cashOnDelivery: Math.round(current.codAmount) } : {}),
118
+ ...(current.insuredValue == null ? {} : { insuredValue: Math.round(current.insuredValue) }),
119
+ ...(current.services?.length ? { services: current.services } : {}),
120
+ };
121
+ const response = asRecord(await client.createShipment(payload));
122
+ const identifier = remoteIdentifier(response);
123
+ if (!identifier) {
124
+ throw new types_1.CsomagpiacError("A Csomagpiac sikeresnek tűnő válasza nem tartalmazott küldeményazonosítót.", { remoteOutcomeUncertain: true });
125
+ }
126
+ return {
127
+ ...current,
128
+ pickupPointId,
129
+ weightKg,
130
+ identifier,
131
+ trackingNumber: remoteTrackingNumber(response) ?? identifier,
132
+ status: normalizeStatus(response) ?? "CREATED",
133
+ statusText: remoteStatusText(response),
134
+ statusUpdatedAt: new Date().toISOString(),
135
+ createdAt: new Date().toISOString(),
136
+ remote: response,
137
+ };
138
+ }
139
+ async refreshStatus(shipment) {
140
+ if (!shipment.identifier)
141
+ throw new types_1.CsomagpiacValidationError("Hiányzik a Csomagpiac küldeményazonosító.");
142
+ const response = asRecord(await this.client.getShipmentStatus(shipment.identifier));
143
+ return {
144
+ ...shipment,
145
+ status: normalizeStatus(response) ?? shipment.status,
146
+ statusText: remoteStatusText(response) ?? shipment.statusText,
147
+ trackingNumber: remoteTrackingNumber(response) ?? shipment.trackingNumber,
148
+ statusUpdatedAt: new Date().toISOString(),
149
+ remote: response,
150
+ };
151
+ }
152
+ async cancelShipment(shipment) {
153
+ if (!shipment.identifier || String(shipment.status).toUpperCase() === "CANCELLED")
154
+ return shipment;
155
+ await this.client.deleteShipment(shipment.identifier);
156
+ return {
157
+ ...shipment,
158
+ status: "CANCELLED",
159
+ statusText: "Törölve",
160
+ statusUpdatedAt: new Date().toISOString(),
161
+ };
162
+ }
163
+ async getLabel(shipment, format) {
164
+ if (!shipment.identifier)
165
+ throw new types_1.CsomagpiacValidationError("Hiányzik a Csomagpiac küldeményazonosító.");
166
+ return this.client.downloadShipmentLabel(shipment.identifier, format ?? this.config.labelFormat);
167
+ }
168
+ }
169
+ exports.CsomagpiacService = CsomagpiacService;
170
+ exports.csomagpiacService = new CsomagpiacService();
171
+ function remoteIdentifier(response) {
172
+ const data = asRecord(response.data);
173
+ return firstString(response.identifier, response.cspIdentifier, response.shipmentIdentifier, response.id, data.identifier, data.cspIdentifier, data.shipmentIdentifier, data.id);
174
+ }
175
+ function remoteTrackingNumber(response) {
176
+ const data = asRecord(response.data);
177
+ return firstString(response.trackingNumber, response.tracking_number, response.parcelNumber, response.parcel_number, data.trackingNumber, data.tracking_number, data.parcelNumber, data.parcel_number);
178
+ }
179
+ function remoteStatusText(response) {
180
+ const data = asRecord(response.data);
181
+ return firstString(response.statusName, response.statusText, response.status, data.statusName, data.statusText, data.status);
182
+ }
183
+ function normalizeStatus(response) {
184
+ const raw = (remoteStatusText(response) ?? "").toLocaleLowerCase("hu-HU");
185
+ if (!raw)
186
+ return undefined;
187
+ if (raw.includes("kézbes") || raw.includes("deliver"))
188
+ return "DELIVERED";
189
+ if (raw.includes("vissza") || raw.includes("return"))
190
+ return "RETURNED";
191
+ if (raw.includes("töröl") || raw.includes("cancel"))
192
+ return "CANCELLED";
193
+ if (raw.includes("hiba") || raw.includes("error") || raw.includes("sikertelen"))
194
+ return "ERROR";
195
+ if (raw.includes("száll") || raw.includes("úton") || raw.includes("transit") || raw.includes("futár"))
196
+ return "IN_TRANSIT";
197
+ return "CREATED";
198
+ }
199
+ function asRecord(value) {
200
+ return value && typeof value === "object" && !Array.isArray(value) ? value : {};
201
+ }
202
+ function clean(value) {
203
+ const text = String(value ?? "").trim();
204
+ return text || undefined;
205
+ }
206
+ function firstString(...values) {
207
+ for (const value of values) {
208
+ const text = clean(value);
209
+ if (text)
210
+ return text;
211
+ }
212
+ return undefined;
213
+ }
214
+ function positiveInteger(value) {
215
+ const number = Number(value);
216
+ return Number.isInteger(number) && number > 0 ? number : undefined;
217
+ }
218
+ function positiveNumber(value) {
219
+ const number = Number(value);
220
+ return Number.isFinite(number) && number > 0 ? number : undefined;
221
+ }
222
+ function nonNegativeNumber(value) {
223
+ const number = Number(value);
224
+ return Number.isFinite(number) && number >= 0 ? number : undefined;
225
+ }
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY3NvbWFncGlhYy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWNBLG9EQWlCQztBQS9CRCxxQ0FBMkM7QUFDM0MsOEVBQWtHO0FBQ2xHLG1DQU9nQjtBQUVILFFBQUEsbUJBQW1CLEdBQUcscUNBQXFDLENBQUE7QUFDM0QsUUFBQSxtQkFBbUIsR0FBRyxvQ0FBb0MsQ0FBQTtBQUV2RSxTQUFnQixvQkFBb0IsQ0FBQyxNQUF5QixPQUFPLENBQUMsR0FBRztJQUN2RSxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxLQUFLLE1BQU0sQ0FBQTtJQUMzQyxPQUFPO1FBQ0wsTUFBTSxFQUNKLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7WUFDOUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDJCQUFtQixDQUFDLENBQUMsQ0FBQywyQkFBbUIsQ0FBQztRQUNwRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNsQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztRQUN4QyxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztRQUN4QyxJQUFJO1FBQ0osYUFBYSxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUM7UUFDOUQsUUFBUSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsSUFBSSxJQUFJO1FBQzFELHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsc0NBQXNDLENBQUM7UUFDcEYsU0FBUyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsSUFBSSxLQUFLO1FBQzdELGVBQWUsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLElBQUks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
@@ -0,0 +1,65 @@
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
+ pickupPointId: number;
21
+ weightKg: number;
22
+ services?: CsomagpiacServiceSelection[];
23
+ codAmount: number;
24
+ insuredValue?: number;
25
+ identifier?: string;
26
+ trackingNumber?: string;
27
+ status: CsomagpiacShipmentStatus | string;
28
+ statusText?: string;
29
+ statusUpdatedAt?: string;
30
+ createdAt?: string;
31
+ remote?: Record<string, unknown>;
32
+ };
33
+ export type CsomagpiacCreateRequest = {
34
+ pickupPointId: number;
35
+ recipientName: string;
36
+ recipientCountryCode: string;
37
+ recipientZip: string;
38
+ recipientCity: string;
39
+ recipientAddress: string;
40
+ recipientPhone: string;
41
+ recipientEmail: string;
42
+ packageCount?: number;
43
+ weights?: number[];
44
+ weightUnit?: "g" | "dkg" | "kg";
45
+ insuredValue?: number;
46
+ observation?: string;
47
+ reference?: string;
48
+ parcelValue?: number;
49
+ cashOnDelivery?: number;
50
+ services?: CsomagpiacServiceSelection[];
51
+ };
52
+ export declare class CsomagpiacError extends Error {
53
+ status?: number;
54
+ remoteOutcomeUncertain?: boolean;
55
+ constructor(message: string, options?: {
56
+ status?: number;
57
+ remoteOutcomeUncertain?: boolean;
58
+ });
59
+ }
60
+ export declare class CsomagpiacConfigError extends CsomagpiacError {
61
+ constructor(message?: string);
62
+ }
63
+ export declare class CsomagpiacValidationError extends CsomagpiacError {
64
+ constructor(message: string);
65
+ }