@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.
- package/.medusa/server/src/admin/index.js +7481 -5872
- package/.medusa/server/src/admin/index.mjs +7482 -5873
- 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/orders/[id]/shipping/route.js +28 -28
- 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/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/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 +64 -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/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 -1
- package/.medusa/server/src/lib/modules/billingo/client.js +12 -6
- 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 +38 -1
- package/.medusa/server/src/lib/modules/billingo/mapper.js +32 -1
- 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 +7 -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.js +163 -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/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/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 +14 -1
- 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/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 +45 -0
- package/.medusa/server/src/providers/csomagpiac/fulfillment-provider.js +221 -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 +46 -0
- package/.medusa/server/src/providers/csomagpiac/service.js +226 -0
- package/.medusa/server/src/providers/csomagpiac/types.d.ts +65 -0
- package/.medusa/server/src/providers/csomagpiac/types.js +27 -0
- package/.medusa/server/src/providers/dpd/fulfillment-provider.d.ts +2 -1
- package/.medusa/server/src/providers/dpd/fulfillment-provider.js +83 -25
- package/.medusa/server/src/providers/dpd/service.js +5 -3
- 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.js +5 -9
- package/.medusa/server/src/providers/foxpost/fulfillment-provider.d.ts +1 -0
- package/.medusa/server/src/providers/foxpost/fulfillment-provider.js +76 -66
- package/.medusa/server/src/providers/gls/fulfillment-provider.d.ts +1 -0
- package/.medusa/server/src/providers/gls/fulfillment-provider.js +76 -13
- package/.medusa/server/src/providers/gls/gls-service.d.ts +16 -0
- package/.medusa/server/src/providers/gls/gls-service.js +26 -65
- package/.medusa/server/src/providers/gls/types.d.ts +15 -0
- package/.medusa/server/src/providers/mpl/fulfillment-provider.d.ts +1 -0
- package/.medusa/server/src/providers/mpl/fulfillment-provider.js +61 -186
- 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 +35 -1
- package/.medusa/server/src/providers/mpl/service.js +82 -370
- package/.medusa/server/src/providers/mpl/types.d.ts +18 -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 +1 -0
- package/.medusa/server/src/providers/packeta/fulfillment-provider.js +73 -5
- package/.medusa/server/src/providers/packeta/service.d.ts +1 -0
- package/.medusa/server/src/providers/packeta/service.js +85 -22
- package/.medusa/server/src/providers/packeta/types.d.ts +26 -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 +55 -3
- 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/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 +6 -2
|
@@ -39,6 +39,7 @@ async function executeBillingoAction(input) {
|
|
|
39
39
|
let durable;
|
|
40
40
|
let durableAcquired = false;
|
|
41
41
|
let remoteDocument;
|
|
42
|
+
let remoteSendSucceeded = false;
|
|
42
43
|
try {
|
|
43
44
|
const current = billingoInvoice(order.metadata);
|
|
44
45
|
let document;
|
|
@@ -142,10 +143,15 @@ async function executeBillingoAction(input) {
|
|
|
142
143
|
document = await client.cancelDocument(current.documentId, order.email);
|
|
143
144
|
remoteDocument = document;
|
|
144
145
|
}
|
|
146
|
+
else if (input.action === "sync") {
|
|
147
|
+
document = await client.getDocument(current.documentId);
|
|
148
|
+
}
|
|
145
149
|
else {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
150
|
+
if (!order.email)
|
|
151
|
+
throw new Error("A rendeléshez nem tartozik e-mail-cím.");
|
|
152
|
+
await client.sendDocument(current.documentId, [order.email]);
|
|
153
|
+
remoteSendSucceeded = true;
|
|
154
|
+
document = await client.getDocument(current.documentId);
|
|
149
155
|
}
|
|
150
156
|
}
|
|
151
157
|
const previous = billingoInvoice(order.metadata);
|
|
@@ -170,14 +176,28 @@ async function executeBillingoAction(input) {
|
|
|
170
176
|
return { invoice, operation, alreadyExisted: false };
|
|
171
177
|
}
|
|
172
178
|
catch (error) {
|
|
179
|
+
const failure = remoteSendSucceeded ? markRemoteOutcomeUncertain(error) : error;
|
|
173
180
|
if (durableAcquired && durable && input.operationStore) {
|
|
174
|
-
await (0, state_1.operationFailed)(input.operationStore, durable,
|
|
181
|
+
await (0, state_1.operationFailed)(input.operationStore, durable, failure, Boolean(remoteDocument), remoteDocument ? String(remoteDocument.id) : undefined, remoteDocument ? { invoiceNumber: remoteDocument.invoice_number ?? null } : undefined);
|
|
182
|
+
}
|
|
183
|
+
if (remoteSendSucceeded) {
|
|
184
|
+
try {
|
|
185
|
+
order = await input.orderService.retrieveOrder(input.orderId);
|
|
186
|
+
const message = failure instanceof Error ? failure.message : "Ismeretlen Billingo hiba.";
|
|
187
|
+
const operation = logEntry(input.action, "failed", actorId, Date.now() - startedAt, message);
|
|
188
|
+
await save(input.orderService, order, billingoInvoice(order.metadata), operation);
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
// The remote send already succeeded. A secondary local logging failure must
|
|
192
|
+
// never hide that fact or make the original send look safely retryable.
|
|
193
|
+
}
|
|
194
|
+
throw failure;
|
|
175
195
|
}
|
|
176
196
|
order = await input.orderService.retrieveOrder(input.orderId);
|
|
177
|
-
const message =
|
|
197
|
+
const message = failure instanceof Error ? failure.message : "Ismeretlen Billingo hiba.";
|
|
178
198
|
const operation = logEntry(input.action, "failed", actorId, Date.now() - startedAt, message);
|
|
179
199
|
await save(input.orderService, order, billingoInvoice(order.metadata), operation);
|
|
180
|
-
throw
|
|
200
|
+
throw failure;
|
|
181
201
|
}
|
|
182
202
|
}
|
|
183
203
|
async function downloadBillingoInvoice(input) {
|
|
@@ -232,11 +252,21 @@ function invoiceFromDocument(document, previous, action) {
|
|
|
232
252
|
sentAt: action === "send" ? now : previous?.sentAt ?? null,
|
|
233
253
|
};
|
|
234
254
|
}
|
|
235
|
-
|
|
236
|
-
if (
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
255
|
+
function markRemoteOutcomeUncertain(error) {
|
|
256
|
+
if (error instanceof Error) {
|
|
257
|
+
try {
|
|
258
|
+
Object.assign(error, { remoteOutcomeUncertain: true });
|
|
259
|
+
return error;
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
const wrapped = new Error(error.message);
|
|
263
|
+
Object.assign(wrapped, { remoteOutcomeUncertain: true });
|
|
264
|
+
return wrapped;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
const wrapped = new Error(typeof error === "string" ? error : "Ismeretlen Billingo hiba.");
|
|
268
|
+
Object.assign(wrapped, { remoteOutcomeUncertain: true });
|
|
269
|
+
return wrapped;
|
|
240
270
|
}
|
|
241
271
|
async function save(orderService, order, invoice, operation) {
|
|
242
272
|
const metadata = { ...(order.metadata ?? {}) };
|
|
@@ -265,4 +295,4 @@ function isOperation(value) {
|
|
|
265
295
|
return typeof item.id === "string" && typeof item.action === "string" &&
|
|
266
296
|
(item.status === "success" || item.status === "failed");
|
|
267
297
|
}
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxlcy9iaWxsaW5nby9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBCQSwwQ0FLQztBQUVELGdEQUdDO0FBRUQsc0RBK0xDO0FBRUQsMERBaUNDO0FBRUQsd0NBR0M7QUE3UUQsNkNBQXdDO0FBQ3hDLHFDQUEyRDtBQUMzRCxxQ0FBOEQ7QUFTOUQsd0VBQW9IO0FBR3BILE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQTtBQUMzQixNQUFNLHdCQUF3QixHQUFHO0lBQy9CLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsT0FBTztJQUNQLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsNEJBQTRCO0NBQzdCLENBQUE7QUFFWSxRQUFBLGNBQWMsR0FBRyxJQUFJLHVCQUFjLEVBQUUsQ0FBQTtBQUVsRCxTQUFnQixlQUFlLENBQUMsUUFBeUM7SUFDdkUsTUFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLFFBQVEsQ0FBQTtJQUNoQyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUNwRCxNQUFNLE9BQU8sR0FBRyxLQUFpQyxDQUFBO0lBQ2pELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQTBCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUM1RyxDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsUUFBeUM7SUFDMUUsTUFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLG1CQUFtQixDQUFBO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FB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
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxlcy9iaWxsaW5nby9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBCQSwwQ0FLQztBQUVELGdEQUdDO0FBRUQsc0RBbU5DO0FBRUQsMERBaUNDO0FBRUQsd0NBR0M7QUFqU0QsNkNBQXdDO0FBQ3hDLHFDQUEyRDtBQUMzRCxxQ0FBOEQ7QUFTOUQsd0VBQW9IO0FBR3BILE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQTtBQUMzQixNQUFNLHdCQUF3QixHQUFHO0lBQy9CLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsT0FBTztJQUNQLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsNEJBQTRCO0NBQzdCLENBQUE7QUFFWSxRQUFBLGNBQWMsR0FBRyxJQUFJLHVCQUFjLEVBQUUsQ0FBQTtBQUVsRCxTQUFnQixlQUFlLENBQUMsUUFBeUM7SUFDdkUsTUFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLFFBQVEsQ0FBQTtJQUNoQyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUNwRCxNQUFNLE9BQU8sR0FBRyxLQUFpQyxDQUFBO0lBQ2pELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQTBCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUM1RyxDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsUUFBeUM7SUFDMUUsTUFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLG1CQUFtQixDQUFBO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FB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
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { BillingoClient } from "./client";
|
|
2
|
+
import type { BillingoInvoice, BillingoOrderService } from "./types";
|
|
3
|
+
import type { IntegrationOperationStore } from "../../../modules/integration-operation/types";
|
|
4
|
+
export type BillingoAdvance = {
|
|
5
|
+
documentId: number;
|
|
6
|
+
invoiceNumber?: string | null;
|
|
7
|
+
ratio: number;
|
|
8
|
+
paymentStatus?: string | null;
|
|
9
|
+
grossTotal?: number | null;
|
|
10
|
+
currency?: string | null;
|
|
11
|
+
createdAt: string;
|
|
12
|
+
updatedAt: string;
|
|
13
|
+
finalDocumentId?: number | null;
|
|
14
|
+
finalInvoiceNumber?: string | null;
|
|
15
|
+
finalizedAt?: string | null;
|
|
16
|
+
};
|
|
17
|
+
export declare function billingoAdvance(metadata?: Record<string, unknown> | null): BillingoAdvance | null;
|
|
18
|
+
export declare function createBillingoAdvanceInvoice(input: {
|
|
19
|
+
orderService: BillingoOrderService;
|
|
20
|
+
orderId: string;
|
|
21
|
+
ratio?: number;
|
|
22
|
+
actorId?: string | null;
|
|
23
|
+
client?: BillingoClient;
|
|
24
|
+
operationStore?: IntegrationOperationStore;
|
|
25
|
+
}): Promise<{
|
|
26
|
+
advance: BillingoAdvance;
|
|
27
|
+
alreadyExisted: boolean;
|
|
28
|
+
reconciled?: undefined;
|
|
29
|
+
processing?: undefined;
|
|
30
|
+
reconciliationRequired?: undefined;
|
|
31
|
+
} | {
|
|
32
|
+
advance: BillingoAdvance;
|
|
33
|
+
alreadyExisted: boolean;
|
|
34
|
+
reconciled: boolean;
|
|
35
|
+
processing?: undefined;
|
|
36
|
+
reconciliationRequired?: undefined;
|
|
37
|
+
} | {
|
|
38
|
+
advance: null;
|
|
39
|
+
alreadyExisted: boolean;
|
|
40
|
+
processing: boolean;
|
|
41
|
+
reconciliationRequired: boolean;
|
|
42
|
+
reconciled?: undefined;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function createBillingoFinalInvoiceFromAdvance(input: {
|
|
45
|
+
orderService: BillingoOrderService;
|
|
46
|
+
orderId: string;
|
|
47
|
+
actorId?: string | null;
|
|
48
|
+
client?: BillingoClient;
|
|
49
|
+
operationStore?: IntegrationOperationStore;
|
|
50
|
+
}): Promise<{
|
|
51
|
+
invoice: BillingoInvoice;
|
|
52
|
+
alreadyExisted: boolean;
|
|
53
|
+
reconciled?: undefined;
|
|
54
|
+
processing?: undefined;
|
|
55
|
+
reconciliationRequired?: undefined;
|
|
56
|
+
} | {
|
|
57
|
+
invoice: BillingoInvoice;
|
|
58
|
+
alreadyExisted: boolean;
|
|
59
|
+
reconciled: boolean;
|
|
60
|
+
processing?: undefined;
|
|
61
|
+
reconciliationRequired?: undefined;
|
|
62
|
+
} | {
|
|
63
|
+
invoice: null;
|
|
64
|
+
alreadyExisted: boolean;
|
|
65
|
+
processing: boolean;
|
|
66
|
+
reconciliationRequired: boolean;
|
|
67
|
+
reconciled?: undefined;
|
|
68
|
+
}>;
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.billingoAdvance = billingoAdvance;
|
|
4
|
+
exports.createBillingoAdvanceInvoice = createBillingoAdvanceInvoice;
|
|
5
|
+
exports.createBillingoFinalInvoiceFromAdvance = createBillingoFinalInvoiceFromAdvance;
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
const actions_1 = require("./actions");
|
|
8
|
+
const mapper_1 = require("./mapper");
|
|
9
|
+
const state_1 = require("../../../modules/integration-operation/state");
|
|
10
|
+
const BILLINGO_ORDER_RELATIONS = [
|
|
11
|
+
"billing_address",
|
|
12
|
+
"shipping_address",
|
|
13
|
+
"items",
|
|
14
|
+
"items.tax_lines",
|
|
15
|
+
"shipping_methods",
|
|
16
|
+
"shipping_methods.tax_lines",
|
|
17
|
+
];
|
|
18
|
+
function billingoAdvance(metadata) {
|
|
19
|
+
const raw = metadata?.billingo_advance;
|
|
20
|
+
if (!raw || typeof raw !== "object")
|
|
21
|
+
return null;
|
|
22
|
+
const value = raw;
|
|
23
|
+
return Number.isInteger(Number(value.documentId)) && Number(value.documentId) > 0
|
|
24
|
+
? value
|
|
25
|
+
: null;
|
|
26
|
+
}
|
|
27
|
+
async function createBillingoAdvanceInvoice(input) {
|
|
28
|
+
const startedAt = Date.now();
|
|
29
|
+
const actorId = input.actorId || "system";
|
|
30
|
+
const client = input.client || actions_1.billingoClient;
|
|
31
|
+
let order = await retrieveFullOrder(input.orderService, input.orderId);
|
|
32
|
+
const existing = billingoAdvance(order.metadata);
|
|
33
|
+
if (existing)
|
|
34
|
+
return { advance: existing, alreadyExisted: true };
|
|
35
|
+
if ((0, actions_1.billingoInvoice)(order.metadata)) {
|
|
36
|
+
throw new Error("Ehhez a rendeléshez már készült végleges Billingo számla.");
|
|
37
|
+
}
|
|
38
|
+
const ratio = input.ratio ?? 1;
|
|
39
|
+
if (!Number.isFinite(ratio) || ratio <= 0 || ratio > 1) {
|
|
40
|
+
throw new Error("Az előleg aránya 0-nál nagyobb és legfeljebb 1 lehet.");
|
|
41
|
+
}
|
|
42
|
+
let durable;
|
|
43
|
+
let remoteDocument;
|
|
44
|
+
try {
|
|
45
|
+
if (input.operationStore) {
|
|
46
|
+
const acquired = await (0, state_1.acquireOperation)(input.operationStore, {
|
|
47
|
+
provider: "billingo",
|
|
48
|
+
operation_type: "advance.create",
|
|
49
|
+
entity_type: "order",
|
|
50
|
+
entity_id: order.id,
|
|
51
|
+
idempotency_key: `billingo:advance:${order.id}`,
|
|
52
|
+
reference_data: { ratio },
|
|
53
|
+
});
|
|
54
|
+
durable = acquired.operation;
|
|
55
|
+
if (!acquired.acquired) {
|
|
56
|
+
if (durable.external_id &&
|
|
57
|
+
["succeeded", "needs_reconciliation"].includes(durable.status)) {
|
|
58
|
+
const document = await client.getDocument(Number(durable.external_id));
|
|
59
|
+
const storedRatio = Number(durable.reference_data?.ratio ?? ratio);
|
|
60
|
+
const advance = advanceFromDocument(document, Number.isFinite(storedRatio) && storedRatio > 0 && storedRatio <= 1
|
|
61
|
+
? storedRatio
|
|
62
|
+
: ratio);
|
|
63
|
+
await saveAdvance(input.orderService, order, advance, successOperation("create_advance", actorId, Date.now() - startedAt, `A(z) ${advance.invoiceNumber || advance.documentId} Billingo előlegszámla már létezik.`));
|
|
64
|
+
if (durable.status !== "succeeded") {
|
|
65
|
+
await (0, state_1.operationSucceeded)(input.operationStore, durable, String(document.id), {
|
|
66
|
+
ratio: advance.ratio,
|
|
67
|
+
invoiceNumber: document.invoice_number ?? null,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
advance,
|
|
72
|
+
alreadyExisted: true,
|
|
73
|
+
reconciled: durable.status === "needs_reconciliation",
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
advance: existing,
|
|
78
|
+
alreadyExisted: true,
|
|
79
|
+
processing: durable.status === "processing",
|
|
80
|
+
reconciliationRequired: durable.status === "needs_reconciliation",
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const partnerId = await ensurePartner(input.orderService, order, client);
|
|
85
|
+
order = await retrieveFullOrder(input.orderService, input.orderId);
|
|
86
|
+
remoteDocument = await client.createDocument((0, mapper_1.advanceFromOrder)(order, partnerId, ratio));
|
|
87
|
+
const advance = advanceFromDocument(remoteDocument, ratio);
|
|
88
|
+
await saveAdvance(input.orderService, order, advance, successOperation("create_advance", actorId, Date.now() - startedAt, `A(z) ${advance.invoiceNumber || advance.documentId} Billingo előlegszámla elkészült.`));
|
|
89
|
+
if (durable && input.operationStore) {
|
|
90
|
+
await (0, state_1.operationSucceeded)(input.operationStore, durable, String(remoteDocument.id), {
|
|
91
|
+
ratio,
|
|
92
|
+
invoiceNumber: remoteDocument.invoice_number ?? null,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return { advance, alreadyExisted: false };
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
if (durable && input.operationStore) {
|
|
99
|
+
await (0, state_1.operationFailed)(input.operationStore, durable, error, Boolean(remoteDocument), remoteDocument ? String(remoteDocument.id) : undefined, remoteDocument
|
|
100
|
+
? { ratio, invoiceNumber: remoteDocument.invoice_number ?? null }
|
|
101
|
+
: durable.reference_data ?? undefined);
|
|
102
|
+
}
|
|
103
|
+
order = await input.orderService.retrieveOrder(input.orderId);
|
|
104
|
+
await saveOperation(input.orderService, order, failedOperation("create_advance", actorId, Date.now() - startedAt, error instanceof Error ? error.message : "A Billingo előlegszámla létrehozása nem sikerült."));
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async function createBillingoFinalInvoiceFromAdvance(input) {
|
|
109
|
+
const startedAt = Date.now();
|
|
110
|
+
const actorId = input.actorId || "system";
|
|
111
|
+
const client = input.client || actions_1.billingoClient;
|
|
112
|
+
let order = await retrieveFullOrder(input.orderService, input.orderId);
|
|
113
|
+
const existingInvoice = (0, actions_1.billingoInvoice)(order.metadata);
|
|
114
|
+
if (existingInvoice)
|
|
115
|
+
return { invoice: existingInvoice, alreadyExisted: true };
|
|
116
|
+
let advance = billingoAdvance(order.metadata);
|
|
117
|
+
if (!advance)
|
|
118
|
+
throw new Error("Ehhez a rendeléshez nem tartozik Billingo előlegszámla.");
|
|
119
|
+
if (advance.finalDocumentId) {
|
|
120
|
+
const document = await client.getDocument(advance.finalDocumentId);
|
|
121
|
+
const invoice = invoiceFromFinalDocument(document, advance);
|
|
122
|
+
await saveFinal(input.orderService, order, advance, invoice, successOperation("create_final_from_advance", actorId, Date.now() - startedAt, `A(z) ${invoice.invoiceNumber || invoice.documentId} Billingo végszámla már létezik.`));
|
|
123
|
+
return { invoice, alreadyExisted: true };
|
|
124
|
+
}
|
|
125
|
+
let durable;
|
|
126
|
+
let remoteDocument;
|
|
127
|
+
try {
|
|
128
|
+
if (input.operationStore) {
|
|
129
|
+
const acquired = await (0, state_1.acquireOperation)(input.operationStore, {
|
|
130
|
+
provider: "billingo",
|
|
131
|
+
operation_type: "advance.finalize",
|
|
132
|
+
entity_type: "order",
|
|
133
|
+
entity_id: order.id,
|
|
134
|
+
idempotency_key: `billingo:advance-final:${order.id}:${advance.documentId}`,
|
|
135
|
+
reference_data: { advanceDocumentId: advance.documentId },
|
|
136
|
+
});
|
|
137
|
+
durable = acquired.operation;
|
|
138
|
+
if (!acquired.acquired) {
|
|
139
|
+
if (durable.external_id &&
|
|
140
|
+
["succeeded", "needs_reconciliation"].includes(durable.status)) {
|
|
141
|
+
const document = await client.getDocument(Number(durable.external_id));
|
|
142
|
+
const invoice = invoiceFromFinalDocument(document, advance);
|
|
143
|
+
await saveFinal(input.orderService, order, advance, invoice, successOperation("create_final_from_advance", actorId, Date.now() - startedAt, `A(z) ${invoice.invoiceNumber || invoice.documentId} Billingo végszámla már létezik.`));
|
|
144
|
+
if (durable.status !== "succeeded") {
|
|
145
|
+
await (0, state_1.operationSucceeded)(input.operationStore, durable, String(document.id), {
|
|
146
|
+
advanceDocumentId: advance.documentId,
|
|
147
|
+
invoiceNumber: document.invoice_number ?? null,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
invoice,
|
|
152
|
+
alreadyExisted: true,
|
|
153
|
+
reconciled: durable.status === "needs_reconciliation",
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
invoice: null,
|
|
158
|
+
alreadyExisted: true,
|
|
159
|
+
processing: durable.status === "processing",
|
|
160
|
+
reconciliationRequired: durable.status === "needs_reconciliation",
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const partnerId = await ensurePartner(input.orderService, order, client);
|
|
165
|
+
order = await retrieveFullOrder(input.orderService, input.orderId);
|
|
166
|
+
remoteDocument = await client.createDocument((0, mapper_1.finalInvoiceFromAdvance)(order, partnerId, advance.documentId));
|
|
167
|
+
const invoice = invoiceFromFinalDocument(remoteDocument, advance);
|
|
168
|
+
advance = {
|
|
169
|
+
...advance,
|
|
170
|
+
finalDocumentId: remoteDocument.id,
|
|
171
|
+
finalInvoiceNumber: remoteDocument.invoice_number ?? null,
|
|
172
|
+
finalizedAt: new Date().toISOString(),
|
|
173
|
+
updatedAt: new Date().toISOString(),
|
|
174
|
+
};
|
|
175
|
+
await saveFinal(input.orderService, order, advance, invoice, successOperation("create_final_from_advance", actorId, Date.now() - startedAt, `A(z) ${invoice.invoiceNumber || invoice.documentId} Billingo végszámla elkészült az előleg beszámításával.`));
|
|
176
|
+
if (durable && input.operationStore) {
|
|
177
|
+
await (0, state_1.operationSucceeded)(input.operationStore, durable, String(remoteDocument.id), {
|
|
178
|
+
advanceDocumentId: advance.documentId,
|
|
179
|
+
invoiceNumber: remoteDocument.invoice_number ?? null,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
return { invoice, alreadyExisted: false };
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
if (durable && input.operationStore) {
|
|
186
|
+
await (0, state_1.operationFailed)(input.operationStore, durable, error, Boolean(remoteDocument), remoteDocument ? String(remoteDocument.id) : undefined, remoteDocument
|
|
187
|
+
? {
|
|
188
|
+
advanceDocumentId: advance.documentId,
|
|
189
|
+
invoiceNumber: remoteDocument.invoice_number ?? null,
|
|
190
|
+
}
|
|
191
|
+
: durable.reference_data ?? undefined);
|
|
192
|
+
}
|
|
193
|
+
order = await input.orderService.retrieveOrder(input.orderId);
|
|
194
|
+
await saveOperation(input.orderService, order, failedOperation("create_final_from_advance", actorId, Date.now() - startedAt, error instanceof Error ? error.message : "A Billingo végszámla létrehozása nem sikerült."));
|
|
195
|
+
throw error;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
async function ensurePartner(orderService, order, client) {
|
|
199
|
+
const existing = Number(order.metadata?.billingo_partner_id);
|
|
200
|
+
if (Number.isInteger(existing) && existing > 0)
|
|
201
|
+
return existing;
|
|
202
|
+
const partner = await client.createPartner((0, mapper_1.partnerFromOrder)(order));
|
|
203
|
+
if (!Number.isInteger(partner.id) || partner.id <= 0) {
|
|
204
|
+
throw new Error("A Billingo nem adott vissza partnerazonosítót.");
|
|
205
|
+
}
|
|
206
|
+
await orderService.updateOrders([{
|
|
207
|
+
id: order.id,
|
|
208
|
+
metadata: { ...(order.metadata ?? {}), billingo_partner_id: partner.id },
|
|
209
|
+
}]);
|
|
210
|
+
return partner.id;
|
|
211
|
+
}
|
|
212
|
+
function advanceFromDocument(document, ratio) {
|
|
213
|
+
const now = new Date().toISOString();
|
|
214
|
+
return {
|
|
215
|
+
documentId: document.id,
|
|
216
|
+
invoiceNumber: document.invoice_number ?? null,
|
|
217
|
+
ratio,
|
|
218
|
+
paymentStatus: document.payment_status ?? null,
|
|
219
|
+
grossTotal: document.gross_total ?? null,
|
|
220
|
+
currency: document.currency ?? null,
|
|
221
|
+
createdAt: now,
|
|
222
|
+
updatedAt: now,
|
|
223
|
+
finalDocumentId: null,
|
|
224
|
+
finalInvoiceNumber: null,
|
|
225
|
+
finalizedAt: null,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function invoiceFromFinalDocument(document, advance) {
|
|
229
|
+
const now = new Date().toISOString();
|
|
230
|
+
return {
|
|
231
|
+
documentId: document.id,
|
|
232
|
+
invoiceNumber: document.invoice_number ?? null,
|
|
233
|
+
paymentStatus: document.payment_status ?? null,
|
|
234
|
+
notificationStatus: document.notification_status ?? null,
|
|
235
|
+
onlineSzamlaStatus: document.online_szamla_status ?? null,
|
|
236
|
+
cancelled: Boolean(document.cancelled),
|
|
237
|
+
grossTotal: document.gross_total ?? null,
|
|
238
|
+
currency: document.currency ?? null,
|
|
239
|
+
createdAt: now,
|
|
240
|
+
updatedAt: now,
|
|
241
|
+
sentAt: null,
|
|
242
|
+
advanceDocumentId: advance.documentId,
|
|
243
|
+
advanceInvoiceNumber: advance.invoiceNumber ?? null,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
async function retrieveFullOrder(orderService, orderId) {
|
|
247
|
+
return orderService.retrieveOrder(orderId, { relations: BILLINGO_ORDER_RELATIONS });
|
|
248
|
+
}
|
|
249
|
+
async function saveAdvance(orderService, order, advance, operation) {
|
|
250
|
+
await orderService.updateOrders([{
|
|
251
|
+
id: order.id,
|
|
252
|
+
metadata: {
|
|
253
|
+
...(order.metadata ?? {}),
|
|
254
|
+
billingo_advance: advance,
|
|
255
|
+
billingo_operations: [...(0, actions_1.billingoOperations)(order.metadata), operation].slice(-100),
|
|
256
|
+
},
|
|
257
|
+
}]);
|
|
258
|
+
}
|
|
259
|
+
async function saveFinal(orderService, order, advance, invoice, operation) {
|
|
260
|
+
const now = new Date().toISOString();
|
|
261
|
+
const finalizedAdvance = {
|
|
262
|
+
...advance,
|
|
263
|
+
finalDocumentId: invoice.documentId,
|
|
264
|
+
finalInvoiceNumber: invoice.invoiceNumber ?? null,
|
|
265
|
+
finalizedAt: advance.finalizedAt || now,
|
|
266
|
+
updatedAt: now,
|
|
267
|
+
};
|
|
268
|
+
await orderService.updateOrders([{
|
|
269
|
+
id: order.id,
|
|
270
|
+
metadata: {
|
|
271
|
+
...(order.metadata ?? {}),
|
|
272
|
+
billingo: invoice,
|
|
273
|
+
billingo_advance: finalizedAdvance,
|
|
274
|
+
billingo_operations: [...(0, actions_1.billingoOperations)(order.metadata), operation].slice(-100),
|
|
275
|
+
},
|
|
276
|
+
}]);
|
|
277
|
+
}
|
|
278
|
+
async function saveOperation(orderService, order, operation) {
|
|
279
|
+
await orderService.updateOrders([{
|
|
280
|
+
id: order.id,
|
|
281
|
+
metadata: {
|
|
282
|
+
...(order.metadata ?? {}),
|
|
283
|
+
billingo_operations: [...(0, actions_1.billingoOperations)(order.metadata), operation].slice(-100),
|
|
284
|
+
},
|
|
285
|
+
}]);
|
|
286
|
+
}
|
|
287
|
+
function successOperation(action, actorId, durationMs, message) {
|
|
288
|
+
return {
|
|
289
|
+
id: (0, node_crypto_1.randomUUID)(),
|
|
290
|
+
action,
|
|
291
|
+
status: "success",
|
|
292
|
+
actorId,
|
|
293
|
+
createdAt: new Date().toISOString(),
|
|
294
|
+
durationMs,
|
|
295
|
+
message,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
function failedOperation(action, actorId, durationMs, message) {
|
|
299
|
+
return {
|
|
300
|
+
id: (0, node_crypto_1.randomUUID)(),
|
|
301
|
+
action,
|
|
302
|
+
status: "failed",
|
|
303
|
+
actorId,
|
|
304
|
+
createdAt: new Date().toISOString(),
|
|
305
|
+
durationMs,
|
|
306
|
+
message,
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxlcy9iaWxsaW5nby9hZHZhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0RBLDBDQU9DO0FBRUQsb0VBcUpDO0FBRUQsc0ZBZ0tDO0FBaFhELDZDQUF3QztBQUN4Qyx1Q0FBK0U7QUFFL0UscUNBSWlCO0FBUWpCLHdFQUlxRDtBQU1yRCxNQUFNLHdCQUF3QixHQUFHO0lBQy9CLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsT0FBTztJQUNQLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsNEJBQTRCO0NBQzdCLENBQUE7QUFnQkQsU0FBZ0IsZUFBZSxDQUFDLFFBQXlDO0lBQ3ZFLE1BQU0sR0FBRyxHQUFHLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQTtJQUN0QyxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUNoRCxNQUFNLEtBQUssR0FBRyxHQUErQixDQUFBO0lBQzdDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxLQUF3QjtRQUMxQixDQUFDLENBQUMsSUFBSSxDQUFBO0FBQ1YsQ0FBQztBQUVNLEtBQUssVUFBVSw0QkFBNEIsQ0FBQyxLQU9sRDtJQUNDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUM1QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQTtJQUN6QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLHdCQUFjLENBQUE7SUFDN0MsSUFBSSxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxLQUFL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
|