@develit-services/bank 0.8.9 → 0.8.12

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 +425 -557
  8. package/dist/export/worker.d.cts +848 -84
  9. package/dist/export/worker.d.mts +848 -84
  10. package/dist/export/worker.d.ts +848 -84
  11. package/dist/export/worker.mjs +425 -557
  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.CHQ3VSEh.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.pgyk4j94.d.cts → bank.Cj2Goq7s.d.cts} +104 -176
  28. package/dist/shared/{bank.pgyk4j94.d.mts → bank.Cj2Goq7s.d.mts} +104 -176
  29. package/dist/shared/{bank.pgyk4j94.d.ts → bank.Cj2Goq7s.d.ts} +104 -176
  30. package/dist/shared/{bank.vPWD7Ce4.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.CwuH4spB.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
@@ -3,7 +3,7 @@
3
3
  const backendSdk = require('@develit-io/backend-sdk');
4
4
  const dateFns = require('date-fns');
5
5
  const generalCodes = require('@develit-io/general-codes');
6
- require('./bank.JVlyPAAb.cjs');
6
+ require('./bank.BBXoZ5QU.cjs');
7
7
  require('drizzle-orm');
8
8
  const jose = require('jose');
9
9
  require('node:crypto');
@@ -14,10 +14,9 @@ function toIncomingPayment(input) {
14
14
  correlationId: input.correlationId,
15
15
  refId: input.refId,
16
16
  amount: input.amount,
17
- direction: "OUTGOING",
18
17
  paymentType: input.paymentType,
19
18
  currency: input.currency,
20
- status: "CREATED",
19
+ status: "OPENED",
21
20
  statusReason: null,
22
21
  batchId: null,
23
22
  initiatedAt: null,
@@ -49,7 +48,7 @@ function toBatchedPayment(payment) {
49
48
  function toPreparedPayment(payment, bankRefId, initiatedAt) {
50
49
  return {
51
50
  ...payment,
52
- status: "PREPARED",
51
+ status: "OPENED",
53
52
  bankRefId,
54
53
  initiatedAt: initiatedAt ?? /* @__PURE__ */ new Date()
55
54
  };
@@ -73,7 +72,7 @@ function toPaymentRequestInsert(payment, batchId) {
73
72
  amount: payment.amount,
74
73
  paymentType: payment.paymentType,
75
74
  currency: payment.currency,
76
- status: "CREATED",
75
+ status: "OPENED",
77
76
  vs: payment.vs ?? null,
78
77
  ss: payment.ss ?? null,
79
78
  ks: payment.ks ?? null,
@@ -95,10 +94,9 @@ function toBatchedPaymentFromPaymentRequest(sp) {
95
94
  accountId: sp.accountId,
96
95
  connectorKey: sp.connectorKey,
97
96
  amount: sp.amount,
98
- direction: "OUTGOING",
99
97
  paymentType: sp.paymentType,
100
98
  currency: sp.currency,
101
- status: "CREATED",
99
+ status: "OPENED",
102
100
  statusReason: sp.statusReason,
103
101
  batchId: sp.batchId,
104
102
  initiatedAt: sp.initiatedAt,
@@ -354,43 +352,25 @@ const FINBRICKS_ENDPOINTS = {
354
352
  const mapFinbricksStatus = (status) => {
355
353
  switch (status) {
356
354
  case "BOOK":
357
- return "COMPLETED";
355
+ return "BOOKED";
358
356
  case "PDNG":
359
357
  return "PENDING";
360
358
  case "CANCL":
361
- return "FAILED";
359
+ return "CANCELLED";
362
360
  case "RJCT":
363
- return "FAILED";
361
+ return "REJECTED";
364
362
  case "SCHDL":
365
- return "PENDING";
363
+ return "SCHEDULED";
366
364
  case "HOLD":
367
- return "PENDING";
365
+ return "HOLD";
368
366
  case "INFO":
369
- return "PENDING";
367
+ return "INFO";
370
368
  default:
371
369
  return "PENDING";
372
370
  }
373
371
  };
374
- const mapFinbricksTransactionStatus = (status, finalBankStatus) => {
375
- switch (status) {
376
- case "OPENED":
377
- return "PREPARED";
378
- case "AUTHORIZED":
379
- return finalBankStatus ? "COMPLETED" : "PENDING";
380
- case "COMPLETED":
381
- return finalBankStatus ? "COMPLETED" : "PENDING";
382
- case "BOOKED":
383
- return finalBankStatus ? "COMPLETED" : "PENDING";
384
- case "SETTLED":
385
- return "COMPLETED";
386
- case "REJECTED":
387
- return "FAILED";
388
- case "CLOSED":
389
- return "FAILED";
390
- }
391
- };
392
- const mapFinbricksBatchStatus = (status) => {
393
- return status === "REJECTED" ? "SIGNATURE_FAILED" : status === "AUTHORIZED" ? "SIGNED" : void 0;
372
+ const mapFinbricksTransactionStatus = (status) => {
373
+ return status;
394
374
  };
395
375
 
396
376
  const mapFinbricksAccountInsert = ({
@@ -553,7 +533,6 @@ class FinbricksConnector extends IBankConnector {
553
533
  }) {
554
534
  super();
555
535
  this.connectorKey = "FINBRICKS";
556
- this.lifecycleMode = "batch";
557
536
  this.connectedAccounts = [];
558
537
  this.PROVIDER = provider;
559
538
  this.finbricks = new FinbricksClient(
@@ -823,7 +802,7 @@ class FinbricksConnector extends IBankConnector {
823
802
  },
824
803
  creditorName: payment.creditor.holderName || ""
825
804
  },
826
- callbackUrl: `${this.finbricks.REDIRECT_URI}?type=payment&paymentId=${payment.id}`
805
+ callbackUrl: `${this.finbricks.REDIRECT_URI}?type=paymentRequest&paymentRequestId=${payment.id}`
827
806
  }
828
807
  })
829
808
  );
@@ -839,7 +818,7 @@ class FinbricksConnector extends IBankConnector {
839
818
  payment: {
840
819
  ...payment,
841
820
  bankRefId,
842
- status: "PREPARED",
821
+ status: "OPENED",
843
822
  initiatedAt: /* @__PURE__ */ new Date(),
844
823
  accountId: this.connectedAccounts.find(
845
824
  (acc) => acc.iban === payment.debtorIban
@@ -877,7 +856,7 @@ class FinbricksConnector extends IBankConnector {
877
856
  creditorAccountIban: payment.creditor.iban,
878
857
  creditorName: payment.creditor.holderName
879
858
  },
880
- callbackUrl: `${this.finbricks.REDIRECT_URI}?type=payment&paymentId=${payment.id}`
859
+ callbackUrl: `${this.finbricks.REDIRECT_URI}?type=paymentRequest&paymentRequestId=${payment.id}`
881
860
  }
882
861
  })
883
862
  );
@@ -893,7 +872,7 @@ class FinbricksConnector extends IBankConnector {
893
872
  payment: {
894
873
  ...payment,
895
874
  bankRefId,
896
- status: "PREPARED",
875
+ status: "OPENED",
897
876
  initiatedAt: /* @__PURE__ */ new Date(),
898
877
  accountId: this.connectedAccounts.find(
899
878
  (acc) => acc.iban === payment.debtorIban
@@ -916,7 +895,7 @@ class FinbricksConnector extends IBankConnector {
916
895
  creditorName: payment.creditor.holderName,
917
896
  description: payment.message,
918
897
  variableSymbol: payment.vs ?? (payment.ss ? void 0 : autoVariableSymbol(payment.id)),
919
- callbackUrl: `${this.finbricks.REDIRECT_URI}?type=payment&paymentId=${payment.id}`,
898
+ callbackUrl: `${this.finbricks.REDIRECT_URI}?type=paymentRequest&paymentRequestId=${payment.id}`,
920
899
  paymentProvider: this.PROVIDER
921
900
  }
922
901
  })
@@ -932,7 +911,7 @@ class FinbricksConnector extends IBankConnector {
932
911
  authorizationUrl: response.redirectUrl,
933
912
  payment: {
934
913
  ...payment,
935
- status: "PREPARED",
914
+ status: "OPENED",
936
915
  initiatedAt: /* @__PURE__ */ new Date()
937
916
  }
938
917
  };
@@ -1006,37 +985,32 @@ class FinbricksConnector extends IBankConnector {
1006
985
  message: "Finbricks: failed to fetch payment status"
1007
986
  });
1008
987
  }
1009
- return mapFinbricksTransactionStatus(
1010
- response.resultCode,
1011
- response.finalBankStatus ?? false
1012
- );
988
+ return mapFinbricksTransactionStatus(response.resultCode);
1013
989
  }
1014
- async getBatchStatus({
1015
- batchId,
1016
- currentStatus
1017
- }) {
1018
- const [response, error] = await backendSdk.useResult(
1019
- this.finbricks.request({
1020
- method: "POST",
1021
- endpoint: FINBRICKS_ENDPOINTS.BATCH_STATUS,
1022
- body: {
1023
- merchantId: this.finbricks.MERCHANT_ID,
1024
- merchantBatchId: batchId
1025
- }
1026
- })
1027
- );
1028
- if (error || !response) {
1029
- throw backendSdk.createInternalError(error, {
1030
- message: "Finbricks: failed to fetch batch status"
1031
- });
990
+ parseAuthorizationCallback(callbackUrl) {
991
+ const url = new URL(callbackUrl);
992
+ const params = url.searchParams;
993
+ const error = params.get("error");
994
+ if (error) {
995
+ return {
996
+ success: false,
997
+ error,
998
+ code: params.get("code")
999
+ };
1000
+ }
1001
+ const type = params.get("type");
1002
+ const paymentRequestId = params.get("paymentRequestId");
1003
+ const batchId = params.get("batchId");
1004
+ if (type === "paymentRequest" && paymentRequestId) {
1005
+ return { success: true, type: "paymentRequest", paymentRequestId };
1006
+ }
1007
+ if (type === "batch" && batchId) {
1008
+ return { success: true, type: "batch", batchId };
1032
1009
  }
1033
- const allAuthorized = response.payments.every(
1034
- (p) => p.resultCode === "AUTHORIZED" || p.resultCode === "BOOKED" || p.resultCode === "SETTLED" || p.resultCode === "COMPLETED"
1035
- );
1036
- const status = allAuthorized ? "SIGNED" : mapFinbricksBatchStatus(response.batchResultCode) ?? currentStatus;
1037
1010
  return {
1038
- status,
1039
- apiResponse: response
1011
+ success: false,
1012
+ error: `Unknown callback format: type=${type}`,
1013
+ code: null
1040
1014
  };
1041
1015
  }
1042
1016
  }
@@ -1062,7 +1036,6 @@ class AirBankConnector extends FinbricksConnector {
1062
1036
  class CreditasConnector extends FinbricksConnector {
1063
1037
  constructor(config) {
1064
1038
  super("CREDITAS", config);
1065
- this.lifecycleMode = "per-payment";
1066
1039
  }
1067
1040
  /**
1068
1041
  * Creditas bank doesn't support batch payments at all.
@@ -1332,7 +1305,6 @@ class DbuConnector extends IBankConnector {
1332
1305
  }) {
1333
1306
  super();
1334
1307
  this.connectorKey = "DBU";
1335
- this.lifecycleMode = "per-payment";
1336
1308
  this.connectedAccounts = [];
1337
1309
  this.baseUrl = BASE_URL;
1338
1310
  this.username = USERNAME;
@@ -1448,71 +1420,59 @@ class DbuConnector extends IBankConnector {
1448
1420
  parsed
1449
1421
  };
1450
1422
  }
1451
- mapDbuStatusToPaymentStatus(dbuStatus) {
1423
+ mapDbuStatusToPaymentRequestStatus(dbuStatus) {
1452
1424
  const statusCode = dbuStatus.trim();
1453
1425
  switch (statusCode) {
1426
+ // OPENED - New, waiting for authorization
1427
+ case "0":
1428
+ // RQT_STATUS_NEW
1429
+ case "50":
1430
+ // RQT_STATUS_4E (four-eye approval)
1431
+ case "51":
1432
+ return "OPENED";
1454
1433
  // COMPLETED - Transaction is fully realized
1434
+ case "2":
1435
+ // RQT_STATUS_PARTIAL_REALIZED
1455
1436
  case "3":
1456
1437
  return "COMPLETED";
1457
- // PREPARED - Transaction is new and ready for processing
1458
- case "0":
1459
- return "PREPARED";
1460
- // PENDING - Transaction is partially processed or on hold
1461
- case "1":
1462
- // RQT_STATUS_READY_FOR_REAL
1438
+ // CLOSED - Expired (timeout, not active rejection)
1439
+ case "14":
1440
+ return "CLOSED";
1441
+ // REJECTED - Cancelled, suspended, reverted, rejected
1442
+ case "10":
1443
+ // RQT_STATUS_CANCELLED
1444
+ case "12":
1445
+ // RQT_STATUS_SUSPENDED
1446
+ case "13":
1447
+ // RQT_STATUS_REVERTED
1448
+ case "15":
1449
+ // RQT_STATUS_REJECTED
1450
+ case "33":
1451
+ // RQT_STATUS_HD_CANCELLED
1452
+ case "39":
1453
+ return "REJECTED";
1454
+ // AUTHORIZED - All other processing states
1455
+ default:
1456
+ return "AUTHORIZED";
1457
+ }
1458
+ }
1459
+ mapDbuStatusToPaymentStatus(dbuStatus) {
1460
+ const statusCode = dbuStatus.trim();
1461
+ switch (statusCode) {
1462
+ // BOOKED - Realized
1463
1463
  case "2":
1464
1464
  // RQT_STATUS_PARTIAL_REALIZED
1465
+ case "3":
1466
+ return "BOOKED";
1467
+ // HOLD - Held/blocked
1465
1468
  case "4":
1466
1469
  // RQT_STATUS_PARTIAL_HOLDED
1467
1470
  case "5":
1468
- // RQT_STATUS_HOLDED
1469
- case "6":
1470
- // RQT_STATUS_WAIT_FOR_COT
1471
- case "11":
1472
- // RQT_STATUS_UNHOLDED
1473
- case "30":
1474
- // RQT_STATUS_RQ_TO_HD
1475
- case "31":
1476
- // RQT_STATUS_RQ_TO_HD_SENT
1477
- case "32":
1478
- // RQT_STATUS_WAIT_TO_HD_VERIFY
1479
- case "34":
1480
- // RQT_STATUS_HD_NEW_COLLECTION
1481
- case "35":
1482
- // RQT_STATUS_HD_RQ_COLLECTION
1471
+ return "HOLD";
1472
+ // SCHEDULED - SIPO charge
1483
1473
  case "40":
1484
- // RQT_STATUS_SIPO_CHARGE
1485
- case "50":
1486
- // RQT_STATUS_4E
1487
- case "51":
1488
- // RQT_STATUS_4E_EDIT
1489
- case "60":
1490
- // RQT_STATUS_READY_TO_CANCELLED
1491
- case "61":
1492
- // RQT_STATUS_READY_TO_UNHOLDED
1493
- case "63":
1494
- // RQT_STATUS_READY_TO_REVERTED
1495
- case "64":
1496
- // RQT_STATUS_CC_CREATED
1497
- case "65":
1498
- // RQT_STATUS_CC_WAIT_FOR_RATE
1499
- case "66":
1500
- // RQT_STATUS_WAIT_FOR_DEBTOR
1501
- case "70":
1502
- // RQT_STATUS_RQ_TO_SEPA
1503
- case "71":
1504
- // RQT_STATUS_RQ_TO_SEPA_SENT
1505
- case "72":
1506
- // RQT_STATUS_RQ_TO_SEPA_CNC
1507
- case "73":
1508
- // RQT_STATUS_RQ_TO_SEPA_CNC_URG
1509
- case "74":
1510
- // RQT_STATUS_RQ_TO_SEPA_CNC_CLIENT
1511
- case "75":
1512
- // RQT_STATUS_RQ_TO_SEPA_056
1513
- case "80":
1514
- return "PENDING";
1515
- // FAILED - Transaction is cancelled, rejected, reverted, suspended or expired
1474
+ return "SCHEDULED";
1475
+ // CANCELLED - Cancelled, suspended, reverted, expired
1516
1476
  case "10":
1517
1477
  // RQT_STATUS_CANCELLED
1518
1478
  case "12":
@@ -1521,13 +1481,14 @@ class DbuConnector extends IBankConnector {
1521
1481
  // RQT_STATUS_REVERTED
1522
1482
  case "14":
1523
1483
  // RQT_STATUS_EXPIRED
1524
- case "15":
1525
- // RQT_STATUS_REJECTED
1526
1484
  case "33":
1527
1485
  // RQT_STATUS_HD_CANCELLED
1528
1486
  case "39":
1529
- return "FAILED";
1530
- // Default to PENDING for unknown status codes
1487
+ return "CANCELLED";
1488
+ // REJECTED - Explicitly rejected by bank
1489
+ case "15":
1490
+ return "REJECTED";
1491
+ // PENDING - All other processing states
1531
1492
  default:
1532
1493
  return "PENDING";
1533
1494
  }
@@ -1622,7 +1583,7 @@ class DbuConnector extends IBankConnector {
1622
1583
  authorizationUrl: `${this.txAuthUri}/${bankRefId}`,
1623
1584
  payment: {
1624
1585
  ...payment,
1625
- status: "PREPARED",
1586
+ status: "OPENED",
1626
1587
  bankRefId
1627
1588
  }
1628
1589
  };
@@ -1676,7 +1637,7 @@ class DbuConnector extends IBankConnector {
1676
1637
  authorizationUrl: `${this.txAuthUri}/${bankRefId}`,
1677
1638
  payment: {
1678
1639
  ...payment,
1679
- status: "PREPARED",
1640
+ status: "OPENED",
1680
1641
  bankRefId
1681
1642
  }
1682
1643
  };
@@ -1773,14 +1734,28 @@ class DbuConnector extends IBankConnector {
1773
1734
  `/required-transactions/${paymentId}`,
1774
1735
  backendSdk.uuidv4()
1775
1736
  );
1776
- return this.mapDbuStatusToPaymentStatus(response.status);
1737
+ return this.mapDbuStatusToPaymentRequestStatus(response.status);
1777
1738
  }
1778
- async getBatchStatus({
1779
- batchId
1780
- }) {
1739
+ parseAuthorizationCallback(callbackUrl) {
1740
+ const url = new URL(callbackUrl);
1741
+ const params = url.searchParams;
1742
+ const error = params.get("error");
1743
+ if (error) {
1744
+ return { success: false, error, code: params.get("code") };
1745
+ }
1746
+ const type = params.get("type");
1747
+ const paymentRequestId = params.get("paymentRequestId");
1748
+ const batchId = params.get("batchId");
1749
+ if (type === "paymentRequest" && paymentRequestId) {
1750
+ return { success: true, type: "paymentRequest", paymentRequestId };
1751
+ }
1752
+ if (type === "batch" && batchId) {
1753
+ return { success: true, type: "batch", batchId };
1754
+ }
1781
1755
  return {
1782
- status: "OPEN",
1783
- apiResponse: {}
1756
+ success: false,
1757
+ error: `Unknown callback format: type=${type}`,
1758
+ code: null
1784
1759
  };
1785
1760
  }
1786
1761
  }
@@ -1789,7 +1764,6 @@ class ErsteConnector extends IBankConnector {
1789
1764
  constructor(config) {
1790
1765
  super();
1791
1766
  this.connectorKey = "ERSTE";
1792
- this.lifecycleMode = "batch";
1793
1767
  this.accessToken = null;
1794
1768
  this.API_KEY = config.API_KEY;
1795
1769
  this.CLIENT_ID = config.CLIENT_ID;
@@ -1926,9 +1900,8 @@ class ErsteConnector extends IBankConnector {
1926
1900
  return {
1927
1901
  ...payment,
1928
1902
  bankRefId: erstePayment.paymentIdentification.transactionIdentification,
1929
- direction: "OUTGOING",
1930
1903
  paymentType: payment.paymentType,
1931
- status: "PREPARED",
1904
+ status: "OPENED",
1932
1905
  initiatedAt: /* @__PURE__ */ new Date(),
1933
1906
  accountId: this.connectedAccounts.find(
1934
1907
  (acc) => acc.iban === payment.debtor.iban
@@ -2088,7 +2061,7 @@ class ErsteConnector extends IBankConnector {
2088
2061
  ss: symbols.ss,
2089
2062
  ks: symbols.ks,
2090
2063
  processedAt: dateFns.parseISO(payment.bookingDate.date),
2091
- status: "COMPLETED"
2064
+ status: "BOOKED"
2092
2065
  };
2093
2066
  return {
2094
2067
  raw: payment,
@@ -2100,11 +2073,13 @@ class ErsteConnector extends IBankConnector {
2100
2073
  });
2101
2074
  return payments;
2102
2075
  }
2103
- getPaymentStatus(_) {
2104
- throw new Error("Method not implemented.");
2076
+ async getPaymentStatus(_) {
2077
+ throw new Error("Erste connector: getPaymentStatus not implemented");
2105
2078
  }
2106
- getBatchStatus(_) {
2107
- throw new Error("Method not implemented.");
2079
+ parseAuthorizationCallback(_callbackUrl) {
2080
+ throw new Error(
2081
+ "Erste connector: parseAuthorizationCallback not implemented"
2082
+ );
2108
2083
  }
2109
2084
  }
2110
2085
 
@@ -2121,7 +2096,6 @@ class MockConnector extends IBankConnector {
2121
2096
  constructor() {
2122
2097
  super();
2123
2098
  this.connectorKey = "MOCK";
2124
- this.lifecycleMode = "batch";
2125
2099
  this.connectedAccounts = [];
2126
2100
  }
2127
2101
  supportsBatch(_paymentType) {
@@ -2143,7 +2117,7 @@ class MockConnector extends IBankConnector {
2143
2117
  const preparedPayment = {
2144
2118
  ...payment,
2145
2119
  bankRefId: backendSdk.uuidv4(),
2146
- status: "PREPARED",
2120
+ status: "OPENED",
2147
2121
  initiatedAt: /* @__PURE__ */ new Date()
2148
2122
  };
2149
2123
  return {
@@ -2165,7 +2139,7 @@ class MockConnector extends IBankConnector {
2165
2139
  const preparedPayments = payments.map((payment) => ({
2166
2140
  ...payment,
2167
2141
  bankRefId: backendSdk.uuidv4(),
2168
- status: "PREPARED",
2142
+ status: "OPENED",
2169
2143
  initiatedAt: /* @__PURE__ */ new Date()
2170
2144
  }));
2171
2145
  return {
@@ -2187,12 +2161,13 @@ class MockConnector extends IBankConnector {
2187
2161
  return [];
2188
2162
  }
2189
2163
  async getPaymentStatus(_) {
2190
- return "COMPLETED";
2164
+ return "SETTLED";
2191
2165
  }
2192
- async getBatchStatus(_) {
2166
+ parseAuthorizationCallback(_callbackUrl) {
2193
2167
  return {
2194
- status: "SIGNED",
2195
- apiResponse: { mock: true }
2168
+ success: true,
2169
+ type: "paymentRequest",
2170
+ paymentRequestId: "mock-pr-id"
2196
2171
  };
2197
2172
  }
2198
2173
  }
@@ -2209,7 +2184,6 @@ exports.MockCobsConnector = MockCobsConnector;
2209
2184
  exports.MockConnector = MockConnector;
2210
2185
  exports.assignAccount = assignAccount;
2211
2186
  exports.initiateConnector = initiateConnector;
2212
- exports.mapFinbricksTransactionStatus = mapFinbricksTransactionStatus;
2213
2187
  exports.signFinbricksJws = signFinbricksJws;
2214
2188
  exports.toBatchedPayment = toBatchedPayment;
2215
2189
  exports.toBatchedPaymentFromPaymentRequest = toBatchedPaymentFromPaymentRequest;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const paymentRequest_schema = require('./bank.JVlyPAAb.cjs');
3
+ const paymentRequest_schema = require('./bank.BBXoZ5QU.cjs');
4
4
 
5
5
  const schema = {
6
6
  __proto__: null,
@@ -11,24 +11,34 @@ import { createInsertSchema, createUpdateSchema, createSelectSchema } from 'driz
11
11
  const PAYMENT_TYPES = ["SEPA", "SWIFT", "DOMESTIC", "UNKNOWN"];
12
12
  const CHARGE_BEARERS = ["SHA", "OUR", "BEN"];
13
13
  const INSTRUCTION_PRIORITIES = ["NORM", "HIGH", "INST"];
14
+ const PAYMENT_REQUEST_STATUSES = [
15
+ "OPENED",
16
+ "AUTHORIZED",
17
+ "COMPLETED",
18
+ "BOOKED",
19
+ "SETTLED",
20
+ "REJECTED",
21
+ "CLOSED"
22
+ ];
14
23
  const PAYMENT_STATUSES = [
15
- "CREATED",
16
- "PREPARED",
17
- "SIGNED",
18
24
  "PENDING",
19
- "COMPLETED",
20
- "FAILED"
25
+ "PROCESSING",
26
+ "BOOKED",
27
+ "CANCELLED",
28
+ "REJECTED",
29
+ "SCHEDULED",
30
+ "HOLD",
31
+ "INFO"
21
32
  ];
22
33
  const PAYMENT_DIRECTIONS = ["INCOMING", "OUTGOING"];
23
34
  const BATCH_STATUSES = [
24
- "OPEN",
25
35
  "PROCESSING",
26
36
  "READY_TO_SIGN",
27
- "SIGNED",
28
- "SIGNATURE_FAILED",
29
- "FAILED",
30
- "COMPLETED"
37
+ "AUTHORIZED",
38
+ "COMPLETED",
39
+ "FAILED"
31
40
  ];
41
+ const BATCH_MODES = ["NATIVE", "SINGLE"];
32
42
  const ACCOUNT_STATUSES = ["AUTHORIZED", "DISABLED", "EXPIRED"];
33
43
  const COUNTRY_CODES = COUNTRY_CODES_2;
34
44
 
@@ -130,7 +140,8 @@ const batch = sqliteTable("batch", {
130
140
  paymentType: text("payment_type", {
131
141
  enum: PAYMENT_TYPES
132
142
  }).$type(),
133
- paymentsChecksum: text("payments_checksum")
143
+ paymentsChecksum: text("payments_checksum"),
144
+ batchMode: text("batch_mode", { enum: BATCH_MODES }).$type()
134
145
  });
135
146
 
136
147
  const payment = sqliteTable(
@@ -149,7 +160,7 @@ const payment = sqliteTable(
149
160
  direction: text("direction").$type().notNull(),
150
161
  paymentType: text("payment_type").$type().notNull(),
151
162
  currency: text("currency").$type().notNull(),
152
- status: text("status").$type().notNull(),
163
+ status: text("status", { enum: PAYMENT_STATUSES }).$type().notNull(),
153
164
  statusReason: text("status_reason"),
154
165
  batchId: text("bank_execution_batch_id"),
155
166
  initiatedAt: integer("initiated_at", {
@@ -208,7 +219,7 @@ const paymentRequest = sqliteTable(
208
219
  amount: real("amount").notNull(),
209
220
  paymentType: text("payment_type", { enum: PAYMENT_TYPES }).$type().notNull(),
210
221
  currency: text("currency").$type().notNull(),
211
- status: text("status", { enum: PAYMENT_STATUSES }).$type().notNull(),
222
+ status: text("status", { enum: PAYMENT_REQUEST_STATUSES }).$type().notNull(),
212
223
  statusReason: text("status_reason"),
213
224
  authorizationUrl: text("authorization_url"),
214
225
  initiatedAt: integer("initiated_at", { mode: "timestamp_ms" }),
@@ -258,4 +269,4 @@ const paymentRequestRelations = relations(paymentRequest, ({ one }) => ({
258
269
  })
259
270
  }));
260
271
 
261
- export { ACCOUNT_STATUSES as A, BATCH_STATUSES as B, CHARGE_BEARERS as C, INSTRUCTION_PRIORITIES as I, PAYMENT_DIRECTIONS as P, TOKEN_TYPES as T, CONNECTOR_KEYS as a, COUNTRY_CODES as b, CREDENTIALS_TYPES as c, PAYMENT_STATUSES as d, PAYMENT_TYPES as e, accountCredentialsInsertSchema as f, accountCredentialsSelectSchema as g, accountCredentialsUpdateSchema as h, accountInsertSchema as i, accountSelectSchema as j, accountUpdateSchema as k, ottSelectSchema as l, ottUpdateSchema as m, account as n, ottInsertSchema as o, accountCredentials as p, batch as q, ott as r, payment as s, paymentRelations as t, paymentRequest as u, paymentRequestRelations as v };
272
+ export { ACCOUNT_STATUSES as A, BATCH_MODES as B, CHARGE_BEARERS as C, INSTRUCTION_PRIORITIES as I, PAYMENT_DIRECTIONS as P, TOKEN_TYPES as T, BATCH_STATUSES as a, CONNECTOR_KEYS as b, COUNTRY_CODES as c, CREDENTIALS_TYPES as d, PAYMENT_REQUEST_STATUSES as e, PAYMENT_STATUSES as f, PAYMENT_TYPES as g, accountCredentialsInsertSchema as h, accountCredentialsSelectSchema as i, accountCredentialsUpdateSchema as j, accountInsertSchema as k, accountSelectSchema as l, accountUpdateSchema as m, ottSelectSchema as n, ottInsertSchema as o, ottUpdateSchema as p, account as q, accountCredentials as r, batch as s, ott as t, payment as u, paymentRelations as v, paymentRequest as w, paymentRequestRelations as x };
@@ -2,12 +2,12 @@
2
2
 
3
3
  const drizzleOrm = require('drizzle-orm');
4
4
  const backendSdk = require('@develit-io/backend-sdk');
5
- require('./bank.JVlyPAAb.cjs');
5
+ require('./bank.BBXoZ5QU.cjs');
6
6
  require('date-fns');
7
7
  require('jose');
8
8
  require('@develit-io/general-codes');
9
9
  const node_crypto = require('node:crypto');
10
- const database_schema = require('./bank.DJnDSYqE.cjs');
10
+ const database_schema = require('./bank.CVi6R7fr.cjs');
11
11
 
12
12
  const createPaymentCommand = (db, { payment }) => {
13
13
  return {