@develit-services/bank 0.8.8 → 0.8.10

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 (43) hide show
  1. package/README.md +150 -275
  2. package/dist/database/schema.cjs +1 -1
  3. package/dist/database/schema.d.cts +2 -2
  4. package/dist/database/schema.d.mts +2 -2
  5. package/dist/database/schema.d.ts +2 -2
  6. package/dist/database/schema.mjs +1 -1
  7. package/dist/export/worker.cjs +405 -549
  8. package/dist/export/worker.d.cts +855 -86
  9. package/dist/export/worker.d.mts +855 -86
  10. package/dist/export/worker.d.ts +855 -86
  11. package/dist/export/worker.mjs +405 -549
  12. package/dist/export/workflows.cjs +16 -16
  13. package/dist/export/workflows.mjs +16 -16
  14. package/dist/export/wrangler.cjs +0 -12
  15. package/dist/export/wrangler.d.cts +1 -8
  16. package/dist/export/wrangler.d.mts +1 -8
  17. package/dist/export/wrangler.d.ts +1 -8
  18. package/dist/export/wrangler.mjs +0 -12
  19. package/dist/shared/{bank.JVlyPAAb.cjs → bank.BBXoZ5QU.cjs} +26 -13
  20. package/dist/shared/{bank.DRTuKO8S.d.ts → bank.BCop1cDT.d.mts} +4 -15
  21. package/dist/shared/{bank.Bg3Pdwm4.cjs → bank.BsIiXsFH.cjs} +5 -13
  22. package/dist/shared/{bank.BoZtXQpG.mjs → bank.CR0UlyRi.mjs} +1 -1
  23. package/dist/shared/{bank.CtnsGHM8.cjs → bank.CUvVxlHy.cjs} +126 -152
  24. package/dist/shared/{bank.DJnDSYqE.cjs → bank.CVi6R7fr.cjs} +1 -1
  25. package/dist/shared/{bank.C6jjS1Pl.mjs → bank.CXBeULUL.mjs} +25 -14
  26. package/dist/shared/{bank.DT6bg8k5.cjs → bank.Cev1E9sk.cjs} +2 -2
  27. package/dist/shared/{bank.B-NJB8GB.d.cts → bank.Cj2Goq7s.d.cts} +104 -176
  28. package/dist/shared/{bank.B-NJB8GB.d.mts → bank.Cj2Goq7s.d.mts} +104 -176
  29. package/dist/shared/{bank.B-NJB8GB.d.ts → bank.Cj2Goq7s.d.ts} +104 -176
  30. package/dist/shared/{bank.BzobShUU.d.cts → bank.CjTfEd1Q.d.cts} +4 -15
  31. package/dist/shared/{bank.BtszLapg.mjs → bank.D-O_gmmZ.mjs} +127 -152
  32. package/dist/shared/{bank.BP_3WMIF.d.cts → bank.DMjtitKo.d.cts} +0 -1
  33. package/dist/shared/{bank.BP_3WMIF.d.mts → bank.DMjtitKo.d.mts} +0 -1
  34. package/dist/shared/{bank.BP_3WMIF.d.ts → bank.DMjtitKo.d.ts} +0 -1
  35. package/dist/shared/{bank.CAVvvZZO.d.mts → bank.OlDt7dpb.d.ts} +4 -15
  36. package/dist/shared/{bank.CbAwwIhZ.mjs → bank.vz1uqEYa.mjs} +5 -11
  37. package/dist/shared/{bank.B5bZRvgq.mjs → bank.xB9eTN77.mjs} +2 -2
  38. package/dist/types.cjs +6 -6
  39. package/dist/types.d.cts +26 -45
  40. package/dist/types.d.mts +26 -45
  41. package/dist/types.d.ts +26 -45
  42. package/dist/types.mjs +3 -3
  43. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { uuidv4, createInternalError, useResult } from '@develit-io/backend-sdk';
2
2
  import { format, parseISO } from 'date-fns';
3
3
  import { CURRENCY_CODES } from '@develit-io/general-codes';
4
- import './bank.C6jjS1Pl.mjs';
4
+ import './bank.CXBeULUL.mjs';
5
5
  import 'drizzle-orm';
6
6
  import { importPKCS8, SignJWT } from 'jose';
7
7
  import 'node:crypto';
@@ -12,10 +12,9 @@ function toIncomingPayment(input) {
12
12
  correlationId: input.correlationId,
13
13
  refId: input.refId,
14
14
  amount: input.amount,
15
- direction: "OUTGOING",
16
15
  paymentType: input.paymentType,
17
16
  currency: input.currency,
18
- status: "CREATED",
17
+ status: "OPENED",
19
18
  statusReason: null,
20
19
  batchId: null,
21
20
  initiatedAt: null,
@@ -47,7 +46,7 @@ function toBatchedPayment(payment) {
47
46
  function toPreparedPayment(payment, bankRefId, initiatedAt) {
48
47
  return {
49
48
  ...payment,
50
- status: "PREPARED",
49
+ status: "OPENED",
51
50
  bankRefId,
52
51
  initiatedAt: initiatedAt ?? /* @__PURE__ */ new Date()
53
52
  };
@@ -71,7 +70,7 @@ function toPaymentRequestInsert(payment, batchId) {
71
70
  amount: payment.amount,
72
71
  paymentType: payment.paymentType,
73
72
  currency: payment.currency,
74
- status: "CREATED",
73
+ status: "OPENED",
75
74
  vs: payment.vs ?? null,
76
75
  ss: payment.ss ?? null,
77
76
  ks: payment.ks ?? null,
@@ -93,10 +92,9 @@ function toBatchedPaymentFromPaymentRequest(sp) {
93
92
  accountId: sp.accountId,
94
93
  connectorKey: sp.connectorKey,
95
94
  amount: sp.amount,
96
- direction: "OUTGOING",
97
95
  paymentType: sp.paymentType,
98
96
  currency: sp.currency,
99
- status: "CREATED",
97
+ status: "OPENED",
100
98
  statusReason: sp.statusReason,
101
99
  batchId: sp.batchId,
102
100
  initiatedAt: sp.initiatedAt,
@@ -352,43 +350,25 @@ const FINBRICKS_ENDPOINTS = {
352
350
  const mapFinbricksStatus = (status) => {
353
351
  switch (status) {
354
352
  case "BOOK":
355
- return "COMPLETED";
353
+ return "BOOKED";
356
354
  case "PDNG":
357
355
  return "PENDING";
358
356
  case "CANCL":
359
- return "FAILED";
357
+ return "CANCELLED";
360
358
  case "RJCT":
361
- return "FAILED";
359
+ return "REJECTED";
362
360
  case "SCHDL":
363
- return "PENDING";
361
+ return "SCHEDULED";
364
362
  case "HOLD":
365
- return "PENDING";
363
+ return "HOLD";
366
364
  case "INFO":
367
- return "PENDING";
365
+ return "INFO";
368
366
  default:
369
367
  return "PENDING";
370
368
  }
371
369
  };
372
- const mapFinbricksTransactionStatus = (status, finalBankStatus) => {
373
- switch (status) {
374
- case "OPENED":
375
- return "PREPARED";
376
- case "AUTHORIZED":
377
- return finalBankStatus ? "COMPLETED" : "PENDING";
378
- case "COMPLETED":
379
- return finalBankStatus ? "COMPLETED" : "PENDING";
380
- case "BOOKED":
381
- return finalBankStatus ? "COMPLETED" : "PENDING";
382
- case "SETTLED":
383
- return "COMPLETED";
384
- case "REJECTED":
385
- return "FAILED";
386
- case "CLOSED":
387
- return "FAILED";
388
- }
389
- };
390
- const mapFinbricksBatchStatus = (status) => {
391
- return status === "REJECTED" ? "SIGNATURE_FAILED" : status === "AUTHORIZED" ? "SIGNED" : void 0;
370
+ const mapFinbricksTransactionStatus = (status) => {
371
+ return status;
392
372
  };
393
373
 
394
374
  const mapFinbricksAccountInsert = ({
@@ -551,7 +531,6 @@ class FinbricksConnector extends IBankConnector {
551
531
  }) {
552
532
  super();
553
533
  this.connectorKey = "FINBRICKS";
554
- this.lifecycleMode = "batch";
555
534
  this.connectedAccounts = [];
556
535
  this.PROVIDER = provider;
557
536
  this.finbricks = new FinbricksClient(
@@ -821,7 +800,7 @@ class FinbricksConnector extends IBankConnector {
821
800
  },
822
801
  creditorName: payment.creditor.holderName || ""
823
802
  },
824
- callbackUrl: `${this.finbricks.REDIRECT_URI}?type=payment&paymentId=${payment.id}`
803
+ callbackUrl: `${this.finbricks.REDIRECT_URI}?type=paymentRequest&paymentRequestId=${payment.id}`
825
804
  }
826
805
  })
827
806
  );
@@ -837,7 +816,7 @@ class FinbricksConnector extends IBankConnector {
837
816
  payment: {
838
817
  ...payment,
839
818
  bankRefId,
840
- status: "PREPARED",
819
+ status: "OPENED",
841
820
  initiatedAt: /* @__PURE__ */ new Date(),
842
821
  accountId: this.connectedAccounts.find(
843
822
  (acc) => acc.iban === payment.debtorIban
@@ -875,7 +854,7 @@ class FinbricksConnector extends IBankConnector {
875
854
  creditorAccountIban: payment.creditor.iban,
876
855
  creditorName: payment.creditor.holderName
877
856
  },
878
- callbackUrl: `${this.finbricks.REDIRECT_URI}?type=payment&paymentId=${payment.id}`
857
+ callbackUrl: `${this.finbricks.REDIRECT_URI}?type=paymentRequest&paymentRequestId=${payment.id}`
879
858
  }
880
859
  })
881
860
  );
@@ -891,7 +870,7 @@ class FinbricksConnector extends IBankConnector {
891
870
  payment: {
892
871
  ...payment,
893
872
  bankRefId,
894
- status: "PREPARED",
873
+ status: "OPENED",
895
874
  initiatedAt: /* @__PURE__ */ new Date(),
896
875
  accountId: this.connectedAccounts.find(
897
876
  (acc) => acc.iban === payment.debtorIban
@@ -914,7 +893,7 @@ class FinbricksConnector extends IBankConnector {
914
893
  creditorName: payment.creditor.holderName,
915
894
  description: payment.message,
916
895
  variableSymbol: payment.vs ?? (payment.ss ? void 0 : autoVariableSymbol(payment.id)),
917
- callbackUrl: `${this.finbricks.REDIRECT_URI}?type=payment&paymentId=${payment.id}`,
896
+ callbackUrl: `${this.finbricks.REDIRECT_URI}?type=paymentRequest&paymentRequestId=${payment.id}`,
918
897
  paymentProvider: this.PROVIDER
919
898
  }
920
899
  })
@@ -930,7 +909,7 @@ class FinbricksConnector extends IBankConnector {
930
909
  authorizationUrl: response.redirectUrl,
931
910
  payment: {
932
911
  ...payment,
933
- status: "PREPARED",
912
+ status: "OPENED",
934
913
  initiatedAt: /* @__PURE__ */ new Date()
935
914
  }
936
915
  };
@@ -1004,37 +983,32 @@ class FinbricksConnector extends IBankConnector {
1004
983
  message: "Finbricks: failed to fetch payment status"
1005
984
  });
1006
985
  }
1007
- return mapFinbricksTransactionStatus(
1008
- response.resultCode,
1009
- response.finalBankStatus ?? false
1010
- );
986
+ return mapFinbricksTransactionStatus(response.resultCode);
1011
987
  }
1012
- async getBatchStatus({
1013
- batchId,
1014
- currentStatus
1015
- }) {
1016
- const [response, error] = await useResult(
1017
- this.finbricks.request({
1018
- method: "POST",
1019
- endpoint: FINBRICKS_ENDPOINTS.BATCH_STATUS,
1020
- body: {
1021
- merchantId: this.finbricks.MERCHANT_ID,
1022
- merchantBatchId: batchId
1023
- }
1024
- })
1025
- );
1026
- if (error || !response) {
1027
- throw createInternalError(error, {
1028
- message: "Finbricks: failed to fetch batch status"
1029
- });
988
+ parseAuthorizationCallback(callbackUrl) {
989
+ const url = new URL(callbackUrl);
990
+ const params = url.searchParams;
991
+ const error = params.get("error");
992
+ if (error) {
993
+ return {
994
+ success: false,
995
+ error,
996
+ code: params.get("code")
997
+ };
998
+ }
999
+ const type = params.get("type");
1000
+ const paymentRequestId = params.get("paymentRequestId");
1001
+ const batchId = params.get("batchId");
1002
+ if (type === "paymentRequest" && paymentRequestId) {
1003
+ return { success: true, type: "paymentRequest", paymentRequestId };
1004
+ }
1005
+ if (type === "batch" && batchId) {
1006
+ return { success: true, type: "batch", batchId };
1030
1007
  }
1031
- const allAuthorized = response.payments.every(
1032
- (p) => p.resultCode === "AUTHORIZED" || p.resultCode === "BOOKED" || p.resultCode === "SETTLED" || p.resultCode === "COMPLETED"
1033
- );
1034
- const status = allAuthorized ? "SIGNED" : mapFinbricksBatchStatus(response.batchResultCode) ?? currentStatus;
1035
1008
  return {
1036
- status,
1037
- apiResponse: response
1009
+ success: false,
1010
+ error: `Unknown callback format: type=${type}`,
1011
+ code: null
1038
1012
  };
1039
1013
  }
1040
1014
  }
@@ -1060,7 +1034,6 @@ class AirBankConnector extends FinbricksConnector {
1060
1034
  class CreditasConnector extends FinbricksConnector {
1061
1035
  constructor(config) {
1062
1036
  super("CREDITAS", config);
1063
- this.lifecycleMode = "per-payment";
1064
1037
  }
1065
1038
  /**
1066
1039
  * Creditas bank doesn't support batch payments at all.
@@ -1330,7 +1303,6 @@ class DbuConnector extends IBankConnector {
1330
1303
  }) {
1331
1304
  super();
1332
1305
  this.connectorKey = "DBU";
1333
- this.lifecycleMode = "per-payment";
1334
1306
  this.connectedAccounts = [];
1335
1307
  this.baseUrl = BASE_URL;
1336
1308
  this.username = USERNAME;
@@ -1446,71 +1418,59 @@ class DbuConnector extends IBankConnector {
1446
1418
  parsed
1447
1419
  };
1448
1420
  }
1449
- mapDbuStatusToPaymentStatus(dbuStatus) {
1421
+ mapDbuStatusToPaymentRequestStatus(dbuStatus) {
1450
1422
  const statusCode = dbuStatus.trim();
1451
1423
  switch (statusCode) {
1424
+ // OPENED - New, waiting for authorization
1425
+ case "0":
1426
+ // RQT_STATUS_NEW
1427
+ case "50":
1428
+ // RQT_STATUS_4E (four-eye approval)
1429
+ case "51":
1430
+ return "OPENED";
1452
1431
  // COMPLETED - Transaction is fully realized
1432
+ case "2":
1433
+ // RQT_STATUS_PARTIAL_REALIZED
1453
1434
  case "3":
1454
1435
  return "COMPLETED";
1455
- // PREPARED - Transaction is new and ready for processing
1456
- case "0":
1457
- return "PREPARED";
1458
- // PENDING - Transaction is partially processed or on hold
1459
- case "1":
1460
- // RQT_STATUS_READY_FOR_REAL
1436
+ // CLOSED - Expired (timeout, not active rejection)
1437
+ case "14":
1438
+ return "CLOSED";
1439
+ // REJECTED - Cancelled, suspended, reverted, rejected
1440
+ case "10":
1441
+ // RQT_STATUS_CANCELLED
1442
+ case "12":
1443
+ // RQT_STATUS_SUSPENDED
1444
+ case "13":
1445
+ // RQT_STATUS_REVERTED
1446
+ case "15":
1447
+ // RQT_STATUS_REJECTED
1448
+ case "33":
1449
+ // RQT_STATUS_HD_CANCELLED
1450
+ case "39":
1451
+ return "REJECTED";
1452
+ // AUTHORIZED - All other processing states
1453
+ default:
1454
+ return "AUTHORIZED";
1455
+ }
1456
+ }
1457
+ mapDbuStatusToPaymentStatus(dbuStatus) {
1458
+ const statusCode = dbuStatus.trim();
1459
+ switch (statusCode) {
1460
+ // BOOKED - Realized
1461
1461
  case "2":
1462
1462
  // RQT_STATUS_PARTIAL_REALIZED
1463
+ case "3":
1464
+ return "BOOKED";
1465
+ // HOLD - Held/blocked
1463
1466
  case "4":
1464
1467
  // RQT_STATUS_PARTIAL_HOLDED
1465
1468
  case "5":
1466
- // RQT_STATUS_HOLDED
1467
- case "6":
1468
- // RQT_STATUS_WAIT_FOR_COT
1469
- case "11":
1470
- // RQT_STATUS_UNHOLDED
1471
- case "30":
1472
- // RQT_STATUS_RQ_TO_HD
1473
- case "31":
1474
- // RQT_STATUS_RQ_TO_HD_SENT
1475
- case "32":
1476
- // RQT_STATUS_WAIT_TO_HD_VERIFY
1477
- case "34":
1478
- // RQT_STATUS_HD_NEW_COLLECTION
1479
- case "35":
1480
- // RQT_STATUS_HD_RQ_COLLECTION
1469
+ return "HOLD";
1470
+ // SCHEDULED - SIPO charge
1481
1471
  case "40":
1482
- // RQT_STATUS_SIPO_CHARGE
1483
- case "50":
1484
- // RQT_STATUS_4E
1485
- case "51":
1486
- // RQT_STATUS_4E_EDIT
1487
- case "60":
1488
- // RQT_STATUS_READY_TO_CANCELLED
1489
- case "61":
1490
- // RQT_STATUS_READY_TO_UNHOLDED
1491
- case "63":
1492
- // RQT_STATUS_READY_TO_REVERTED
1493
- case "64":
1494
- // RQT_STATUS_CC_CREATED
1495
- case "65":
1496
- // RQT_STATUS_CC_WAIT_FOR_RATE
1497
- case "66":
1498
- // RQT_STATUS_WAIT_FOR_DEBTOR
1499
- case "70":
1500
- // RQT_STATUS_RQ_TO_SEPA
1501
- case "71":
1502
- // RQT_STATUS_RQ_TO_SEPA_SENT
1503
- case "72":
1504
- // RQT_STATUS_RQ_TO_SEPA_CNC
1505
- case "73":
1506
- // RQT_STATUS_RQ_TO_SEPA_CNC_URG
1507
- case "74":
1508
- // RQT_STATUS_RQ_TO_SEPA_CNC_CLIENT
1509
- case "75":
1510
- // RQT_STATUS_RQ_TO_SEPA_056
1511
- case "80":
1512
- return "PENDING";
1513
- // FAILED - Transaction is cancelled, rejected, reverted, suspended or expired
1472
+ return "SCHEDULED";
1473
+ // CANCELLED - Cancelled, suspended, reverted, expired
1514
1474
  case "10":
1515
1475
  // RQT_STATUS_CANCELLED
1516
1476
  case "12":
@@ -1519,13 +1479,14 @@ class DbuConnector extends IBankConnector {
1519
1479
  // RQT_STATUS_REVERTED
1520
1480
  case "14":
1521
1481
  // RQT_STATUS_EXPIRED
1522
- case "15":
1523
- // RQT_STATUS_REJECTED
1524
1482
  case "33":
1525
1483
  // RQT_STATUS_HD_CANCELLED
1526
1484
  case "39":
1527
- return "FAILED";
1528
- // Default to PENDING for unknown status codes
1485
+ return "CANCELLED";
1486
+ // REJECTED - Explicitly rejected by bank
1487
+ case "15":
1488
+ return "REJECTED";
1489
+ // PENDING - All other processing states
1529
1490
  default:
1530
1491
  return "PENDING";
1531
1492
  }
@@ -1620,7 +1581,7 @@ class DbuConnector extends IBankConnector {
1620
1581
  authorizationUrl: `${this.txAuthUri}/${bankRefId}`,
1621
1582
  payment: {
1622
1583
  ...payment,
1623
- status: "PREPARED",
1584
+ status: "OPENED",
1624
1585
  bankRefId
1625
1586
  }
1626
1587
  };
@@ -1674,7 +1635,7 @@ class DbuConnector extends IBankConnector {
1674
1635
  authorizationUrl: `${this.txAuthUri}/${bankRefId}`,
1675
1636
  payment: {
1676
1637
  ...payment,
1677
- status: "PREPARED",
1638
+ status: "OPENED",
1678
1639
  bankRefId
1679
1640
  }
1680
1641
  };
@@ -1771,14 +1732,28 @@ class DbuConnector extends IBankConnector {
1771
1732
  `/required-transactions/${paymentId}`,
1772
1733
  uuidv4()
1773
1734
  );
1774
- return this.mapDbuStatusToPaymentStatus(response.status);
1735
+ return this.mapDbuStatusToPaymentRequestStatus(response.status);
1775
1736
  }
1776
- async getBatchStatus({
1777
- batchId
1778
- }) {
1737
+ parseAuthorizationCallback(callbackUrl) {
1738
+ const url = new URL(callbackUrl);
1739
+ const params = url.searchParams;
1740
+ const error = params.get("error");
1741
+ if (error) {
1742
+ return { success: false, error, code: params.get("code") };
1743
+ }
1744
+ const type = params.get("type");
1745
+ const paymentRequestId = params.get("paymentRequestId");
1746
+ const batchId = params.get("batchId");
1747
+ if (type === "paymentRequest" && paymentRequestId) {
1748
+ return { success: true, type: "paymentRequest", paymentRequestId };
1749
+ }
1750
+ if (type === "batch" && batchId) {
1751
+ return { success: true, type: "batch", batchId };
1752
+ }
1779
1753
  return {
1780
- status: "OPEN",
1781
- apiResponse: {}
1754
+ success: false,
1755
+ error: `Unknown callback format: type=${type}`,
1756
+ code: null
1782
1757
  };
1783
1758
  }
1784
1759
  }
@@ -1787,7 +1762,6 @@ class ErsteConnector extends IBankConnector {
1787
1762
  constructor(config) {
1788
1763
  super();
1789
1764
  this.connectorKey = "ERSTE";
1790
- this.lifecycleMode = "batch";
1791
1765
  this.accessToken = null;
1792
1766
  this.API_KEY = config.API_KEY;
1793
1767
  this.CLIENT_ID = config.CLIENT_ID;
@@ -1924,9 +1898,8 @@ class ErsteConnector extends IBankConnector {
1924
1898
  return {
1925
1899
  ...payment,
1926
1900
  bankRefId: erstePayment.paymentIdentification.transactionIdentification,
1927
- direction: "OUTGOING",
1928
1901
  paymentType: payment.paymentType,
1929
- status: "PREPARED",
1902
+ status: "OPENED",
1930
1903
  initiatedAt: /* @__PURE__ */ new Date(),
1931
1904
  accountId: this.connectedAccounts.find(
1932
1905
  (acc) => acc.iban === payment.debtor.iban
@@ -2086,7 +2059,7 @@ class ErsteConnector extends IBankConnector {
2086
2059
  ss: symbols.ss,
2087
2060
  ks: symbols.ks,
2088
2061
  processedAt: parseISO(payment.bookingDate.date),
2089
- status: "COMPLETED"
2062
+ status: "BOOKED"
2090
2063
  };
2091
2064
  return {
2092
2065
  raw: payment,
@@ -2098,11 +2071,13 @@ class ErsteConnector extends IBankConnector {
2098
2071
  });
2099
2072
  return payments;
2100
2073
  }
2101
- getPaymentStatus(_) {
2102
- throw new Error("Method not implemented.");
2074
+ async getPaymentStatus(_) {
2075
+ throw new Error("Erste connector: getPaymentStatus not implemented");
2103
2076
  }
2104
- getBatchStatus(_) {
2105
- throw new Error("Method not implemented.");
2077
+ parseAuthorizationCallback(_callbackUrl) {
2078
+ throw new Error(
2079
+ "Erste connector: parseAuthorizationCallback not implemented"
2080
+ );
2106
2081
  }
2107
2082
  }
2108
2083
 
@@ -2119,7 +2094,6 @@ class MockConnector extends IBankConnector {
2119
2094
  constructor() {
2120
2095
  super();
2121
2096
  this.connectorKey = "MOCK";
2122
- this.lifecycleMode = "batch";
2123
2097
  this.connectedAccounts = [];
2124
2098
  }
2125
2099
  supportsBatch(_paymentType) {
@@ -2141,7 +2115,7 @@ class MockConnector extends IBankConnector {
2141
2115
  const preparedPayment = {
2142
2116
  ...payment,
2143
2117
  bankRefId: uuidv4(),
2144
- status: "PREPARED",
2118
+ status: "OPENED",
2145
2119
  initiatedAt: /* @__PURE__ */ new Date()
2146
2120
  };
2147
2121
  return {
@@ -2163,7 +2137,7 @@ class MockConnector extends IBankConnector {
2163
2137
  const preparedPayments = payments.map((payment) => ({
2164
2138
  ...payment,
2165
2139
  bankRefId: uuidv4(),
2166
- status: "PREPARED",
2140
+ status: "OPENED",
2167
2141
  initiatedAt: /* @__PURE__ */ new Date()
2168
2142
  }));
2169
2143
  return {
@@ -2185,14 +2159,15 @@ class MockConnector extends IBankConnector {
2185
2159
  return [];
2186
2160
  }
2187
2161
  async getPaymentStatus(_) {
2188
- return "COMPLETED";
2162
+ return "SETTLED";
2189
2163
  }
2190
- async getBatchStatus(_) {
2164
+ parseAuthorizationCallback(_callbackUrl) {
2191
2165
  return {
2192
- status: "SIGNED",
2193
- apiResponse: { mock: true }
2166
+ success: true,
2167
+ type: "paymentRequest",
2168
+ paymentRequestId: "mock-pr-id"
2194
2169
  };
2195
2170
  }
2196
2171
  }
2197
2172
 
2198
- export { CsobConnector as C, DbuConnector as D, ErsteConnector as E, FINBRICKS_ENDPOINTS as F, IBankConnector as I, KBConnector as K, MockCobsConnector as M, FinbricksClient as a, FinbricksConnector as b, MockConnector as c, assignAccount as d, toBatchedPaymentFromPaymentRequest as e, toCompletedPayment as f, toIncomingPayment as g, toPaymentRequestInsert as h, toPreparedPayment as i, initiateConnector as j, mapFinbricksTransactionStatus as m, signFinbricksJws as s, toBatchedPayment as t, useFinbricksFetch as u };
2173
+ export { CsobConnector as C, DbuConnector as D, ErsteConnector as E, FINBRICKS_ENDPOINTS as F, IBankConnector as I, KBConnector as K, MockCobsConnector as M, FinbricksClient as a, FinbricksConnector as b, MockConnector as c, assignAccount as d, toBatchedPaymentFromPaymentRequest as e, toCompletedPayment as f, toIncomingPayment as g, toPaymentRequestInsert as h, toPreparedPayment as i, initiateConnector as j, signFinbricksJws as s, toBatchedPayment as t, useFinbricksFetch as u };
@@ -26,7 +26,6 @@ interface BankServiceEnvironmentConfig {
26
26
  ERSTE_ACCOUNTS_URI: 'https://webapi.developers.erstegroup.com/api/csas/public/sandbox/v3/accounts';
27
27
  FINBRICKS_BASE_URI: 'https://api.sandbox.finbricks.com';
28
28
  FINBRICKS_MERCHANT_ID: string;
29
- CRON_BATCH_STATUSES: string;
30
29
  CRON_PAYMENT_STATUSES: string;
31
30
  BANK_AUTH_RECIPIENT: string;
32
31
  DBUCS_BASE_URI: string;
@@ -26,7 +26,6 @@ interface BankServiceEnvironmentConfig {
26
26
  ERSTE_ACCOUNTS_URI: 'https://webapi.developers.erstegroup.com/api/csas/public/sandbox/v3/accounts';
27
27
  FINBRICKS_BASE_URI: 'https://api.sandbox.finbricks.com';
28
28
  FINBRICKS_MERCHANT_ID: string;
29
- CRON_BATCH_STATUSES: string;
30
29
  CRON_PAYMENT_STATUSES: string;
31
30
  BANK_AUTH_RECIPIENT: string;
32
31
  DBUCS_BASE_URI: string;
@@ -26,7 +26,6 @@ interface BankServiceEnvironmentConfig {
26
26
  ERSTE_ACCOUNTS_URI: 'https://webapi.developers.erstegroup.com/api/csas/public/sandbox/v3/accounts';
27
27
  FINBRICKS_BASE_URI: 'https://api.sandbox.finbricks.com';
28
28
  FINBRICKS_MERCHANT_ID: string;
29
- CRON_BATCH_STATUSES: string;
30
29
  CRON_PAYMENT_STATUSES: string;
31
30
  BANK_AUTH_RECIPIENT: string;
32
31
  DBUCS_BASE_URI: string;
@@ -1,4 +1,4 @@
1
- import { d as CurrencyCode, J as BankCode, V as CountryCode } from './bank.B-NJB8GB.mjs';
1
+ import { d as CurrencyCode, O as BankCode, $ as CountryCode } from './bank.Cj2Goq7s.js';
2
2
  import { z } from 'zod';
3
3
 
4
4
  type ReferenceType = `${'VS' | 'SS' | 'KS'}:${number}`;
@@ -210,18 +210,6 @@ type FinbricksAccountTransactionsResponse = {
210
210
  transactions: FinbricksTransaction[];
211
211
  };
212
212
 
213
- /**
214
- * @deprecated Use IncomingPayment from './payment-lifecycle' instead
215
- * This type is kept for backward compatibility during migration
216
- */
217
-
218
- /**
219
- * Message pushed to PAYMENTS_READY_TO_BATCH_QUEUE after payment_request is created in DB
220
- */
221
- type PaymentQueueMessage = {
222
- paymentId: string;
223
- };
224
-
225
213
  declare const sendPaymentInputSchema: z.ZodObject<{
226
214
  correlationId: z.ZodString;
227
215
  refId: z.ZodOptional<z.ZodString>;
@@ -996,7 +984,8 @@ declare const sendPaymentInputSchema: z.ZodObject<{
996
984
  interface SendPaymentInput extends z.infer<typeof sendPaymentInputSchema> {
997
985
  }
998
986
  type SendPaymentOutput = {
999
- paymentId: string;
987
+ paymentRequestId: string;
988
+ authorizationUrl: string;
1000
989
  };
1001
990
 
1002
991
  declare const sendPaymentSyncInputSchema: z.ZodObject<{
@@ -1777,4 +1766,4 @@ type SendPaymentSyncOutput = {
1777
1766
  authorizationUrl: string;
1778
1767
  };
1779
1768
 
1780
- export type { FinbricksSupportedBanksResponse as F, PaymentQueueMessage as P, ReferenceType as R, SendPaymentInput as S, SendPaymentOutput as a, SendPaymentSyncInput as b, SendPaymentSyncOutput as c, FinbricksAccount as d, FinbricksAccountTransactionsResponse as e, FinbricksAccountsListResponse as f, FinbricksAuthTokenResponse as g, FinbricksBatchResponse as h, FinbricksConnectAccountResponse as i, FinbricksPaymentResponse as j, FinbricksSupportedBank as k };
1769
+ export type { FinbricksSupportedBanksResponse as F, ReferenceType as R, SendPaymentInput as S, SendPaymentOutput as a, SendPaymentSyncInput as b, SendPaymentSyncOutput as c, FinbricksAccount as d, FinbricksAccountTransactionsResponse as e, FinbricksAccountsListResponse as f, FinbricksAuthTokenResponse as g, FinbricksBatchResponse as h, FinbricksConnectAccountResponse as i, FinbricksPaymentResponse as j, FinbricksSupportedBank as k };
@@ -1,11 +1,8 @@
1
1
  function hasPaymentAccountAssigned(payment) {
2
2
  return "accountId" in payment && "connectorKey" in payment && payment.accountId !== void 0 && payment.connectorKey !== void 0;
3
3
  }
4
- function isPaymentPrepared(payment) {
5
- return payment.status === "PREPARED";
6
- }
7
4
  function isPaymentCompleted(payment) {
8
- return (payment.status === "COMPLETED" || payment.status === "PENDING" || payment.status === "FAILED") && "bankRefId" in payment && typeof payment.bankRefId === "string";
5
+ return (payment.status === "COMPLETED" || payment.status === "BOOKED" || payment.status === "SETTLED" || payment.status === "REJECTED" || payment.status === "CLOSED") && "bankRefId" in payment && typeof payment.bankRefId === "string";
9
6
  }
10
7
 
11
8
  function isBatchInitiated(batch) {
@@ -14,20 +11,17 @@ function isBatchInitiated(batch) {
14
11
  function isBatchReadyToSign(batch) {
15
12
  return "status" in batch && batch.status === "READY_TO_SIGN";
16
13
  }
17
- function isBatchSigned(batch) {
18
- return "status" in batch && batch.status === "SIGNED";
14
+ function isBatchAuthorized(batch) {
15
+ return "status" in batch && batch.status === "AUTHORIZED";
19
16
  }
20
17
  function isBatchProcessing(batch) {
21
18
  return "status" in batch && batch.status === "PROCESSING";
22
19
  }
23
20
  function isBatchCompleted(batch) {
24
- return "status" in batch && (batch.status === "COMPLETED" || batch.status === "FAILED" || batch.status === "SIGNATURE_FAILED");
25
- }
26
- function isBatchOpen(batch) {
27
- return "status" in batch && batch.status === "OPEN";
21
+ return "status" in batch && (batch.status === "COMPLETED" || batch.status === "FAILED");
28
22
  }
29
23
  function isBatchFailed(batch) {
30
24
  return "status" in batch && batch.status === "FAILED";
31
25
  }
32
26
 
33
- export { isBatchFailed as a, isBatchInitiated as b, isBatchOpen as c, isBatchProcessing as d, isBatchReadyToSign as e, isBatchSigned as f, isPaymentCompleted as g, hasPaymentAccountAssigned as h, isBatchCompleted as i, isPaymentPrepared as j };
27
+ export { isBatchCompleted as a, isBatchFailed as b, isBatchInitiated as c, isBatchProcessing as d, isBatchReadyToSign as e, isPaymentCompleted as f, hasPaymentAccountAssigned as h, isBatchAuthorized as i };
@@ -1,11 +1,11 @@
1
1
  import { sql, and, eq, isNull } from 'drizzle-orm';
2
2
  import { uuidv4 } from '@develit-io/backend-sdk';
3
- import './bank.C6jjS1Pl.mjs';
3
+ import './bank.CXBeULUL.mjs';
4
4
  import 'date-fns';
5
5
  import 'jose';
6
6
  import '@develit-io/general-codes';
7
7
  import { createHash } from 'node:crypto';
8
- import { s as schema } from './bank.BoZtXQpG.mjs';
8
+ import { s as schema } from './bank.CR0UlyRi.mjs';
9
9
 
10
10
  const createPaymentCommand = (db, { payment }) => {
11
11
  return {