@hszrdm/core 1.7.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 +6223 -4784
  2. package/.medusa/server/src/admin/index.mjs +6224 -4785
  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
@@ -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
- for (const [name, value] of Object.entries(values)) {
34
- env[name] = value;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zbmFwc2hvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uLXNldHRpbmdzL3J1bnRpbWUtc25hcHNob3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsMEVBZUM7QUFFRCwwRUFZQztBQUVELHdFQUVDO0FBakRELHFDQUE0RTtBQUM1RSx5Q0FBcUQ7QUFDckQscUNBQStFO0FBRS9FLFNBQVMsWUFBWSxDQUFDLE1BQXlCLE9BQU8sQ0FBQyxHQUFHO0lBQ3hELE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUN4RCxJQUFJLFVBQVU7UUFBRSxPQUFPLElBQUEsc0JBQVUsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFBLGdCQUFJLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBRTVGLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUNwRCxJQUFJLGdCQUFnQixJQUFJLElBQUEsc0JBQVUsRUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFBLGdCQUFJLEVBQUMsSUFBQSxtQkFBTyxFQUFDLGdCQUFnQixDQUFDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsT0FBTyxJQUFBLGdCQUFJLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO0FBQ2pFLENBQUM7QUFFRCxTQUFnQiwrQkFBK0IsQ0FBQyxNQUF5QixPQUFPLENBQUMsR0FBRztJQUNsRixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDOUIsSUFBSSxPQUFlLENBQUE7SUFDbkIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxHQUFHLElBQUEsc0JBQVksRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFLLEtBQStCLEVBQUUsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUNyRSxNQUFNLEtBQUssQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBTztRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUEsa0NBQXlCLEVBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkQsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBRUQsU0FBZ0IsK0JBQStCLENBQzdDLE1BQThCLEVBQzlCLE1BQXlCLE9BQU8sQ0FBQyxHQUFHO0lBRXBDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM5QixJQUFBLG1CQUFTLEVBQUMsSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBQSxrQ0FBeUIsRUFBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDeEQsSUFBSSxDQUFDLFNBQVM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUE7SUFDbEYsTUFBTSxTQUFTLEdBQUcsR0FBRyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFBO0lBQzlDLElBQUEsdUJBQWEsRUFBQyxTQUFTLEVBQUUsR0FBRyxTQUFTLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDN0UsSUFBQSxvQkFBVSxFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMzQixPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRCxTQUFnQiw4QkFBOEIsQ0FBQyxNQUF5QixPQUFPLENBQUMsR0FBRztJQUNqRixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUMxQixDQUFDIn0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zbmFwc2hvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uLXNldHRpbmdzL3J1bnRpbWUtc25hcHNob3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtQkEsc0VBU0M7QUFFRCxnRUFFQztBQUVELDBFQWNDO0FBUUQsZ0dBbUJDO0FBRUQsMEVBaUJDO0FBRUQsd0VBRUM7QUFsR0QscUNBQXNGO0FBQ3RGLHlDQUFxRDtBQUNyRCxxQ0FBK0U7QUFFL0UsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZCLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO0FBRTNCLFNBQVMsWUFBWSxDQUFDLE1BQXlCLE9BQU8sQ0FBQyxHQUFHO0lBQ3hELE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUN4RCxJQUFJLFVBQVU7UUFBRSxPQUFPLElBQUEsc0JBQVUsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFBLGdCQUFJLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBRTVGLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUNwRCxJQUFJLGdCQUFnQixJQUFJLElBQUEsc0JBQVUsRUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFBLGdCQUFJLEVBQUMsSUFBQSxtQkFBTyxFQUFDLGdCQUFnQixDQUFDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsT0FBTyxJQUFBLGdCQUFJLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO0FBQ2pFLENBQUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FDM0Ms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
@@ -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. A container tagekhez állíts be megfelelő consent checkeket."),
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 konverzióméréshez szükséges publikus tag ID és conversion label. A storefront a sikeres rendeléskor transaction ID-val, rendelési értékkel és devizával küldi a conversion eseményt.",
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 a Google Ads taget remarketing célra is betöltheti, kizárólag megfelelő marketing consent után."),
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVmcm9udC1wdWJsaWMtcmVnaXN0cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24tc2V0dGluZ3Mvc3RvcmVmcm9udC1wdWJsaWMtcmVnaXN0cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBSW1CO0FBRW5CLE1BQU0sSUFBSSxHQUFHLENBQ1gsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFRLEdBQUcsS0FBSyxFQUNoQixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFFdEUsTUFBTSxJQUFJLEdBQUcsQ0FDWCxJQUFZLEVBQ1osS0FBYSxFQUNiLElBQWEsRUFDSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBRS9ELE1BQU0sTUFBTSxHQUFHLENBQ2IsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFRLEdBQUcsS0FBSyxFQUNoQixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFFeEUsTUFBTSxXQUFXLEdBQTRCO0lBQzNDO1FBQ0UsR0FBRyxFQUFFLGtCQUFrQjtRQUN2QixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxtTEFBbUw7UUFDckwsVUFBVSxFQUFFLGFBQWE7UUFDekIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsTUFBTSxFQUFFO1lBQ04sSUFBSSxDQUNGLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsSUFBSSxFQUNKLHdGQUF3RixDQUN6RjtZQUNELElBQUksQ0FDRixpQkFBaUIsRUFDakIsaUNBQWlDLEVBQ2pDLEtBQUssRUFDTCxxSEFBcUgsQ0FDdEg7WUFDRCxNQUFNLENBQ0osMEJBQTBCLEVBQzFCLDBDQUEwQyxFQUMxQyxLQUFLLEVBQ0wsbU5BQW1OLENBQ3BOO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsR0FBRyxFQUFFLG9CQUFvQjtRQUN6QixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxpSkFBaUo7UUFDbkosVUFBVSxFQUFFLGFBQWE7UUFDekIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsTUFBTSxFQUFFO1lBQ04sSUFBSSxDQUNGLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsSUFBSSxFQUNKLG1JQUFtSSxDQUNwSTtTQUNGO0tBQ0Y7SUFDRDtRQUNFLEdBQUcsRUFBRSxZQUFZO1FBQ2pCLEtBQUssRUFBRSxZQUFZO1FBQ25CLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCwyTUFBMk07UUFDN00sVUFBVSxFQUFFLG9CQUFvQjtRQUNoQyxlQUFlLEVBQUUsS0FBSztRQUN0QixNQUFNLEVBQUU7WUFDTixJQUFJLENBQ0YsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQixJQUFJLEVBQ0osd0dBQXdHLENBQ3pHO1lBQ0QsSUFBSSxDQUNGLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IsSUFBSSxFQUNKLHlIQUF5SCxDQUMxSDtZQUNELElBQUksQ0FDRixnQ0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLDBIQUEwSCxDQUMzSDtTQUNGO0tBQ0Y7SUFDRDtRQUNFLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsS0FBSyxFQUFFLHVCQUF1QjtRQUM5QixRQUFRLEVBQUUsV0FBVztRQUNyQixXQUFXLEVBQ1QsbUZBQW1GO1FBQ3JGLFVBQVUsRUFBRSxhQUFhO1FBQ3pCLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLE1BQU0sRUFBRTtZQUNOLElBQUksQ0FDRix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLElBQUksRUFDSixpRUFBaUUsQ0FDbEU7U0FDRjtLQUNGO0NBQ0YsQ0FBQTtBQUVELEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7SUFDckMsSUFBSSxDQUFDLGtDQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxrQ0FBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUMsQ0FBQztBQUNILENBQUMifQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVmcm9udC1wdWJsaWMtcmVnaXN0cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24tc2V0dGluZ3Mvc3RvcmVmcm9udC1wdWJsaWMtcmVnaXN0cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBSW1CO0FBRW5CLE1BQU0sSUFBSSxHQUFHLENBQ1gsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFRLEdBQUcsS0FBSyxFQUNoQixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFFdEUsTUFBTSxJQUFJLEdBQUcsQ0FDWCxJQUFZLEVBQ1osS0FBYSxFQUNiLElBQWEsRUFDSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBRS9ELE1BQU0sTUFBTSxHQUFHLENBQ2IsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFRLEdBQUcsS0FBSyxFQUNoQixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFFeEUsTUFBTSxXQUFXLEdBQTRCO0lBQzNDO1FBQ0UsR0FBRyxFQUFFLGtCQUFrQjtRQUN2QixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxtTEFBbUw7UUFDckwsVUFBVSxFQUFFLGFBQWE7UUFDekIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsTUFBTSxFQUFFO1lBQ04sSUFBSSxDQUNGLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsSUFBSSxFQUNKLHdGQUF3RixDQUN6RjtZQUNELElBQUksQ0FDRixpQkFBaUIsRUFDakIsaUNBQWlDLEVBQ2pDLEtBQUssRUFDTCxxSEFBcUgsQ0FDdEg7WUFDRCxNQUFNLENBQ0osMEJBQTBCLEVBQzFCLDBDQUEwQyxFQUMxQyxLQUFLLEVBQ0wsbU5BQW1OLENBQ3BOO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsR0FBRyxFQUFFLG9CQUFvQjtRQUN6QixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxpS0FBaUs7UUFDbkssVUFBVSxFQUFFLGFBQWE7UUFDekIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsTUFBTSxFQUFFO1lBQ04sSUFBSSxDQUNGLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsSUFBSSxFQUNKLHlRQUF5USxDQUMxUTtTQUNGO0tBQ0Y7SUFDRDtRQUNFLEdBQUcsRUFBRSxZQUFZO1FBQ2pCLEtBQUssRUFBRSxZQUFZO1FBQ25CLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCw0SUFBNEk7UUFDOUksVUFBVSxFQUFFLG9CQUFvQjtRQUNoQyxlQUFlLEVBQUUsS0FBSztRQUN0QixNQUFNLEVBQUU7WUFDTixJQUFJLENBQ0YsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQixJQUFJLEVBQ0osd0dBQXdHLENBQ3pHO1lBQ0QsSUFBSSxDQUNGLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IsSUFBSSxFQUNKLHlIQUF5SCxDQUMxSDtZQUNELElBQUksQ0FDRixnQ0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLGlIQUFpSCxDQUNsSDtZQUNELElBQUksQ0FDRix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLGdJQUFnSSxDQUNqSTtZQUNELElBQUksQ0FDRixnQ0FBZ0MsRUFDaEMsbUNBQW1DLEVBQ25DLGlJQUFpSSxDQUNsSTtZQUNELElBQUksQ0FDRix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLEtBQUssRUFDTCxvREFBb0QsQ0FDckQ7WUFDRCxJQUFJLENBQ0YsOEJBQThCLEVBQzlCLDZCQUE2QixFQUM3QixLQUFLLEVBQ0wsaUVBQWlFLENBQ2xFO1lBQ0QsSUFBSSxDQUNGLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsS0FBSyxFQUNMLG9IQUFvSCxDQUNySDtZQUNELE1BQU0sQ0FDSiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLEtBQUssRUFDTCx1REFBdUQsQ0FDeEQ7WUFDRCxJQUFJLENBQ0YsNEJBQTRCLEVBQzVCLGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsd0VBQXdFLENBQ3pFO1lBQ0QsTUFBTSxDQUNKLGdDQUFnQyxFQUNoQyxxQkFBcUIsRUFDckIsS0FBSyxFQUNMLDZEQUE2RCxDQUM5RDtZQUNELElBQUksQ0FDRiwrQkFBK0IsRUFDL0Isb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCwwSEFBMEgsQ0FDM0g7WUFDRCxNQUFNLENBQ0osZ0NBQWdDLEVBQ2hDLHFCQUFxQixFQUNyQixLQUFLLEVBQ0wsc0dBQXNHLENBQ3ZHO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixLQUFLLEVBQUUsdUJBQXVCO1FBQzlCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxtRkFBbUY7UUFDckYsVUFBVSxFQUFFLGFBQWE7UUFDekIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsTUFBTSxFQUFFO1lBQ04sSUFBSSxDQUNGLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsSUFBSSxFQUNKLGlFQUFpRSxDQUNsRTtTQUNGO0tBQ0Y7Q0FDRixDQUFBO0FBRUQsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNyQyxJQUFJLENBQUMsa0NBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pFLGtDQUF1QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -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,45 @@
1
+ import { AbstractFulfillmentProviderService } from "@medusajs/framework/utils";
2
+ import type { CalculatedShippingOptionPrice, CalculateShippingOptionPriceContext, CreateFulfillmentResult, CreateShippingOptionDTO, FulfillmentDTO, FulfillmentItemDTO, FulfillmentOption, FulfillmentOrderDTO, ValidateFulfillmentDataContext } from "@medusajs/framework/types";
3
+ import { CsomagpiacService } from "./service";
4
+ import type { IntegrationOperationStore } from "../../modules/integration-operation/types";
5
+ type ProviderOptions = Partial<{
6
+ api_url: string;
7
+ token: string;
8
+ username: string;
9
+ password: string;
10
+ live: boolean;
11
+ pickup_point_id: number;
12
+ price_huf: number;
13
+ free_shipping_threshold_huf: number;
14
+ timeout_ms: number;
15
+ default_weight_kg: number;
16
+ label_format: string;
17
+ }>;
18
+ type InjectedDependencies = {
19
+ logger?: {
20
+ warn: (message: string) => void;
21
+ error: (message: string) => void;
22
+ info: (message: string) => void;
23
+ };
24
+ integrationOperation?: IntegrationOperationStore;
25
+ };
26
+ export default class CsomagpiacFulfillmentProviderService extends AbstractFulfillmentProviderService {
27
+ static identifier: string;
28
+ protected readonly csomagpiac_: CsomagpiacService;
29
+ protected readonly operationStore_?: IntegrationOperationStore;
30
+ constructor(container?: InjectedDependencies, options?: ProviderOptions);
31
+ getFulfillmentOptions(): Promise<FulfillmentOption[]>;
32
+ validateFulfillmentData(_optionData: Record<string, unknown>, data: Record<string, unknown>, context: ValidateFulfillmentDataContext): Promise<Record<string, unknown>>;
33
+ validateOption(data: Record<string, unknown>): Promise<boolean>;
34
+ canCalculate(_data: CreateShippingOptionDTO): Promise<boolean>;
35
+ calculatePrice(_optionData: Record<string, unknown>, data: Record<string, unknown>, context: CalculateShippingOptionPriceContext): Promise<CalculatedShippingOptionPrice>;
36
+ createFulfillment(data: Record<string, unknown>, _items: Partial<Omit<FulfillmentItemDTO, "fulfillment">>[], order: Partial<FulfillmentOrderDTO> | undefined, fulfillment: Partial<Omit<FulfillmentDTO, "provider_id" | "data" | "items">>): Promise<CreateFulfillmentResult>;
37
+ cancelFulfillment(data: Record<string, unknown>): Promise<Record<string, unknown>>;
38
+ createReturnFulfillment(_fulfillment: Record<string, unknown>): Promise<CreateFulfillmentResult>;
39
+ getFulfillmentDocuments(_data: Record<string, unknown>): Promise<never[]>;
40
+ retrieveDocuments(_fulfillmentData: Record<string, unknown>, _documentType: string): Promise<void>;
41
+ getReturnDocuments(_data: Record<string, unknown>): Promise<never[]>;
42
+ getShipmentDocuments(_data: Record<string, unknown>): Promise<never[]>;
43
+ private runDurableDelete;
44
+ }
45
+ export {};