@konplit-services/common 1.0.388 → 1.0.390

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 (28) hide show
  1. package/build/events/refund-events/inteterfaces/index.d.ts +6 -0
  2. package/build/events/refund-events/inteterfaces/index.js +6 -0
  3. package/build/events/refund-events/inteterfaces/refund-bank-status-check.interface.d.ts +2 -1
  4. package/build/events/refund-events/inteterfaces/refund-bank-transfer.interface.d.ts +2 -1
  5. package/build/events/refund-events/inteterfaces/refund-card-payment.interface.d.ts +2 -1
  6. package/build/events/refund-events/inteterfaces/refund-completed.interface.d.ts +2 -0
  7. package/build/events/refund-events/inteterfaces/refund-init-fund-reserve-res.interface.d.ts +2 -1
  8. package/build/events/refund-events/inteterfaces/refund-init-fund-reserve.interface.d.ts +2 -1
  9. package/build/events/refund-events/inteterfaces/refund-reverse-fund.interface.d.ts +2 -1
  10. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-created.interface.d.ts +19 -0
  11. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-created.interface.js +2 -0
  12. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-insufficient.interface.d.ts +17 -0
  13. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-insufficient.interface.js +2 -0
  14. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-release.interface.d.ts +18 -0
  15. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-release.interface.js +2 -0
  16. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-reserve-fund.interface.d.ts +17 -0
  17. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-reserve-fund.interface.js +2 -0
  18. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-reserve-res.interface.d.ts +16 -0
  19. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-reserve-res.interface.js +2 -0
  20. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-reverse.interface.d.ts +16 -0
  21. package/build/events/refund-events/inteterfaces/refund-settlement-ledger-reverse.interface.js +2 -0
  22. package/build/events/subjects.d.ts +6 -0
  23. package/build/events/subjects.js +6 -0
  24. package/build/helper/date-processing.d.ts +6 -5
  25. package/build/helper/date-processing.js +17 -12
  26. package/build/helper/refund.d.ts +4 -0
  27. package/build/helper/refund.js +6 -1
  28. package/package.json +1 -1
@@ -7,3 +7,9 @@ export * from "./refund-init-fund-reserve.interface";
7
7
  export * from "./refund-reverse-fund.interface";
8
8
  export * from "./refund-status-check.interface";
9
9
  export * from "./refund-bank-status-check.interface";
10
+ export * from "./refund-settlement-ledger-created.interface";
11
+ export * from "./refund-settlement-ledger-insufficient.interface";
12
+ export * from "./refund-settlement-ledger-release.interface";
13
+ export * from "./refund-settlement-ledger-reserve-fund.interface";
14
+ export * from "./refund-settlement-ledger-reserve-res.interface";
15
+ export * from "./refund-settlement-ledger-reverse.interface";
@@ -23,3 +23,9 @@ __exportStar(require("./refund-init-fund-reserve.interface"), exports);
23
23
  __exportStar(require("./refund-reverse-fund.interface"), exports);
24
24
  __exportStar(require("./refund-status-check.interface"), exports);
25
25
  __exportStar(require("./refund-bank-status-check.interface"), exports);
26
+ __exportStar(require("./refund-settlement-ledger-created.interface"), exports);
27
+ __exportStar(require("./refund-settlement-ledger-insufficient.interface"), exports);
28
+ __exportStar(require("./refund-settlement-ledger-release.interface"), exports);
29
+ __exportStar(require("./refund-settlement-ledger-reserve-fund.interface"), exports);
30
+ __exportStar(require("./refund-settlement-ledger-reserve-res.interface"), exports);
31
+ __exportStar(require("./refund-settlement-ledger-reverse.interface"), exports);
@@ -1,4 +1,4 @@
1
- import { REFUND_TYPE } from "../../../helper";
1
+ import { REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
2
  import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
3
  export interface RefundBankPaymentStatusCheckEvent {
4
4
  subject: Subjects.RefundBankPaymentStatusCheck;
@@ -9,6 +9,7 @@ export interface RefundBankPaymentStatusCheckEvent {
9
9
  refundId: string;
10
10
  transactionId: string;
11
11
  refundType: REFUND_TYPE;
12
+ refundSource: REFUND_SOURCE;
12
13
  amount: number;
13
14
  reason?: string;
14
15
  accountNumber: string;
@@ -1,4 +1,4 @@
1
- import { REFUND_TYPE } from "../../../helper";
1
+ import { REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
2
  import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
3
  export interface RefundBankTransferCreatedEvent {
4
4
  subject: Subjects.RefundBankTransferInitiated;
@@ -9,6 +9,7 @@ export interface RefundBankTransferCreatedEvent {
9
9
  refundId: string;
10
10
  transactionId: string;
11
11
  refundType: REFUND_TYPE;
12
+ refundSource: REFUND_SOURCE;
12
13
  amount: number;
13
14
  reason?: string;
14
15
  accountNumber: string;
@@ -1,4 +1,4 @@
1
- import { REFUND_TYPE } from "../../../helper";
1
+ import { REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
2
  import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
3
  export interface RefundCardPaymentCreatedEvent {
4
4
  subject: Subjects.RefundCardPayentInitiated;
@@ -9,6 +9,7 @@ export interface RefundCardPaymentCreatedEvent {
9
9
  refundId: string;
10
10
  transactionId: string;
11
11
  refundType: REFUND_TYPE;
12
+ refundSource: REFUND_SOURCE;
12
13
  amount: number;
13
14
  reason?: string;
14
15
  };
@@ -1,3 +1,4 @@
1
+ import { REFUND_SOURCE } from "../../../helper";
1
2
  import { StreamEvent, StreamName, Subjects } from "../../subjects";
2
3
  export interface RefundCompletedCreatedEvent {
3
4
  subject: Subjects.RefundCompletedCreated;
@@ -7,6 +8,7 @@ export interface RefundCompletedCreatedEvent {
7
8
  merchantId: string;
8
9
  refundId: string;
9
10
  transactionId: string;
11
+ refundSource: REFUND_SOURCE;
10
12
  processorResponse?: Record<string, any>;
11
13
  };
12
14
  }
@@ -1,4 +1,4 @@
1
- import { REFUND_WALLET_RESPONSE } from "../../../helper";
1
+ import { REFUND_SOURCE, REFUND_WALLET_RESPONSE } from "../../../helper";
2
2
  import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
3
  export interface RefundFundReserveResponseInitetiatedEvent {
4
4
  subject: Subjects.RefundFundReserveUpdated;
@@ -9,6 +9,7 @@ export interface RefundFundReserveResponseInitetiatedEvent {
9
9
  refundId: string;
10
10
  transactionId: string;
11
11
  responseType: REFUND_WALLET_RESPONSE;
12
+ refundSource: REFUND_SOURCE;
12
13
  amount: number;
13
14
  reason?: string;
14
15
  };
@@ -1,4 +1,4 @@
1
- import { REFUND_TYPE } from "../../../helper";
1
+ import { REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
2
  import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
3
  export interface RefundFundReserveInitetiatedEvent {
4
4
  subject: Subjects.RefundFundReserveInitiated;
@@ -10,6 +10,7 @@ export interface RefundFundReserveInitetiatedEvent {
10
10
  transactionId: string;
11
11
  amount: number;
12
12
  refundType: REFUND_TYPE;
13
+ refundSource: REFUND_SOURCE;
13
14
  reason?: string;
14
15
  };
15
16
  }
@@ -1,4 +1,4 @@
1
- import { REFUND_TYPE } from "../../../helper";
1
+ import { REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
2
  import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
3
  export interface RefundReversFundInitetiatedEvent {
4
4
  subject: Subjects.RefundFundReverseCreated;
@@ -10,6 +10,7 @@ export interface RefundReversFundInitetiatedEvent {
10
10
  transactionId: string;
11
11
  amount: number;
12
12
  refundType: REFUND_TYPE;
13
+ refundSource: REFUND_SOURCE;
13
14
  reason?: string;
14
15
  };
15
16
  }
@@ -0,0 +1,19 @@
1
+ import { CURRENCY_TYPE, REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
+ import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
+ export interface RefundFundSettlementLedgerCreatedEvent {
4
+ subject: Subjects.RefundSettlementLedgerCreated;
5
+ streamName: StreamName.name;
6
+ streamEvents: StreamEvent.Event;
7
+ data: {
8
+ merchantId: string;
9
+ refundId: string;
10
+ transactionId: string;
11
+ amount: number;
12
+ refundType: REFUND_TYPE;
13
+ refundSource: REFUND_SOURCE;
14
+ reason?: string;
15
+ transactionDate: Date;
16
+ fees: number;
17
+ currency?: CURRENCY_TYPE;
18
+ };
19
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,17 @@
1
+ import { REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
+ import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
+ export interface RefundFundSettlementLedgerInsufficientFundEvent {
4
+ subject: Subjects.RefundSettlementLedgerInsufficientFund;
5
+ streamName: StreamName.name;
6
+ streamEvents: StreamEvent.Event;
7
+ data: {
8
+ merchantId: string;
9
+ refundId: string;
10
+ transactionId: string;
11
+ amount: number;
12
+ refundType: REFUND_TYPE;
13
+ refundSource: REFUND_SOURCE;
14
+ reason?: string;
15
+ transactionDate: Date;
16
+ };
17
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ import { REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
+ import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
+ export interface RefundFundSettlementLedgerReleaseFundEvent {
4
+ subject: Subjects.RefundSettlementLedgerReleaseFund;
5
+ streamName: StreamName.name;
6
+ streamEvents: StreamEvent.Event;
7
+ data: {
8
+ merchantId: string;
9
+ refundId: string;
10
+ transactionId: string;
11
+ amount: number;
12
+ refundType: REFUND_TYPE;
13
+ refundSource: REFUND_SOURCE;
14
+ reason?: string;
15
+ transactionDate: Date;
16
+ fees: number;
17
+ };
18
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,17 @@
1
+ import { REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
+ import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
+ export interface RefundFundSettlementLedgerReserveFundEvent {
4
+ subject: Subjects.RefundSettlementLedgerReserveFund;
5
+ streamName: StreamName.name;
6
+ streamEvents: StreamEvent.Event;
7
+ data: {
8
+ merchantId: string;
9
+ refundId: string;
10
+ transactionId: string;
11
+ amount: number;
12
+ refundType: REFUND_TYPE;
13
+ refundSource: REFUND_SOURCE;
14
+ reason?: string;
15
+ transactionDate: Date;
16
+ };
17
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,16 @@
1
+ import { REFUND_SOURCE, REFUND_WALLET_RESPONSE } from "../../../helper";
2
+ import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
+ export interface RefundFundSettlementLedgerReserveFundEventResponseEvent {
4
+ subject: Subjects.RefundSettlementLedgerReserveFundResponse;
5
+ streamName: StreamName.name;
6
+ streamEvents: StreamEvent.Event;
7
+ data: {
8
+ merchantId: string;
9
+ refundId: string;
10
+ transactionId: string;
11
+ responseType: REFUND_WALLET_RESPONSE;
12
+ refundSource: REFUND_SOURCE;
13
+ amount: number;
14
+ reason?: string;
15
+ };
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,16 @@
1
+ import { REFUND_SOURCE, REFUND_TYPE } from "../../../helper";
2
+ import { StreamEvent, StreamName, Subjects } from "../../subjects";
3
+ export interface RefundFundSettlementLedgerReverseFundToLedgerEvent {
4
+ subject: Subjects.RefundSettlementLedgerReverseFundToLedger;
5
+ streamName: StreamName.name;
6
+ streamEvents: StreamEvent.Event;
7
+ data: {
8
+ merchantId: string;
9
+ refundId: string;
10
+ transactionId: string;
11
+ amount: number;
12
+ refundType: REFUND_TYPE;
13
+ refundSource: REFUND_SOURCE;
14
+ reason?: string;
15
+ };
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -81,6 +81,12 @@ export declare enum Subjects {
81
81
  RefundCompletedCreated = "events.refund.completed.created",
82
82
  RefundFailedCreated = "events.refund.failed.created",
83
83
  RefundFundReverseCreated = "events.refund.reverse.created",
84
+ RefundSettlementLedgerCreated = "events.refund.settlement.ledger.created",
85
+ RefundSettlementLedgerInsufficientFund = "events.refund.settlement.ledger.insufficient.fund",
86
+ RefundSettlementLedgerReleaseFund = "events.refund.settlement.ledger.release.fund",
87
+ RefundSettlementLedgerReserveFund = "events.refund.settlement.ledger.reserve.fund",
88
+ RefundSettlementLedgerReserveFundResponse = "events.refund.settlement.ledger.reserve.fund.response",
89
+ RefundSettlementLedgerReverseFundToLedger = "events.refund.settlement.ledger.reverse.fund.to.ledger",
84
90
  BANKACCOUNT_CREATED = "events.bank.account.created",
85
91
  BANKACCOUNT_UPDATED = "events.bank.account.updated",
86
92
  BANKACCOUNT_DELETED = "events.bank.account.deleted",
@@ -102,6 +102,12 @@ var Subjects;
102
102
  Subjects["RefundCompletedCreated"] = "events.refund.completed.created";
103
103
  Subjects["RefundFailedCreated"] = "events.refund.failed.created";
104
104
  Subjects["RefundFundReverseCreated"] = "events.refund.reverse.created";
105
+ Subjects["RefundSettlementLedgerCreated"] = "events.refund.settlement.ledger.created";
106
+ Subjects["RefundSettlementLedgerInsufficientFund"] = "events.refund.settlement.ledger.insufficient.fund";
107
+ Subjects["RefundSettlementLedgerReleaseFund"] = "events.refund.settlement.ledger.release.fund";
108
+ Subjects["RefundSettlementLedgerReserveFund"] = "events.refund.settlement.ledger.reserve.fund";
109
+ Subjects["RefundSettlementLedgerReserveFundResponse"] = "events.refund.settlement.ledger.reserve.fund.response";
110
+ Subjects["RefundSettlementLedgerReverseFundToLedger"] = "events.refund.settlement.ledger.reverse.fund.to.ledger";
105
111
  //APICONFIG
106
112
  Subjects["BANKACCOUNT_CREATED"] = "events.bank.account.created";
107
113
  Subjects["BANKACCOUNT_UPDATED"] = "events.bank.account.updated";
@@ -30,11 +30,12 @@ export declare const calculateDelay: (targetDate: string | Date) => {
30
30
  delay: number;
31
31
  };
32
32
  /**
33
- * Check if there's enough time before settlement to refund via settlement ledger.
33
+ * Determines if a refund can still be processed using the settlement ledger,
34
+ * based on the transaction's creation date (must be the same UTC day).
34
35
  *
35
- * @param settlementDateTime - The UTC datetime of the next settlement (ISO string or Date)
36
- * @param bufferInMinutes - Minimum safe time (in minutes) required before settlement
37
- * @returns boolean - true if refund can safely be processed from settlement ledger
36
+ * @param transactionCreatedAt - Transaction createdAt timestamp (UTC string or Date)
37
+ * @param bufferInMinutes - Minimum time (in minutes) required before day ends
38
+ * @returns boolean - true if refund can still be processed from the settlement ledger
38
39
  */
39
- export declare const canRefundFromSettlementLedger: (settlementDateTime: string | Date, bufferInMinutes?: number) => boolean;
40
+ export declare function canRefundFromSettlementLedgerByDay(transactionCreatedAt: string | Date, bufferInMinutes?: number): boolean;
40
41
  export {};
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.canRefundFromSettlementLedger = exports.calculateDelay = exports.getFutureDateFromPlan = exports.getDuration = exports.convertDateToUTC = exports.convertDateToUTCString = exports.convertDateToUTCRange = exports.convertDateToUTCRangeString = exports.getCurrentDayRange = exports.getPreviousDayRange = exports.convertToDate = exports.formatDateTime = exports.interswitchRefundDateFormat = exports.formatDate = void 0;
6
+ exports.canRefundFromSettlementLedgerByDay = exports.calculateDelay = exports.getFutureDateFromPlan = exports.getDuration = exports.convertDateToUTC = exports.convertDateToUTCString = exports.convertDateToUTCRange = exports.convertDateToUTCRangeString = exports.getCurrentDayRange = exports.getPreviousDayRange = exports.convertToDate = exports.formatDateTime = exports.interswitchRefundDateFormat = exports.formatDate = void 0;
7
7
  const dayjs_1 = __importDefault(require("dayjs"));
8
8
  const utc_1 = __importDefault(require("dayjs/plugin/utc"));
9
9
  // Extend dayjs with the UTC plugin
@@ -155,16 +155,21 @@ const calculateDelay = (targetDate) => {
155
155
  };
156
156
  exports.calculateDelay = calculateDelay;
157
157
  /**
158
- * Check if there's enough time before settlement to refund via settlement ledger.
158
+ * Determines if a refund can still be processed using the settlement ledger,
159
+ * based on the transaction's creation date (must be the same UTC day).
159
160
  *
160
- * @param settlementDateTime - The UTC datetime of the next settlement (ISO string or Date)
161
- * @param bufferInMinutes - Minimum safe time (in minutes) required before settlement
162
- * @returns boolean - true if refund can safely be processed from settlement ledger
161
+ * @param transactionCreatedAt - Transaction createdAt timestamp (UTC string or Date)
162
+ * @param bufferInMinutes - Minimum time (in minutes) required before day ends
163
+ * @returns boolean - true if refund can still be processed from the settlement ledger
163
164
  */
164
- const canRefundFromSettlementLedger = (settlementDateTime, bufferInMinutes = 60) => {
165
- const nowUtc = dayjs_1.default.utc();
166
- const settlementUtc = dayjs_1.default.utc(settlementDateTime);
167
- const diffInMinutes = settlementUtc.diff(nowUtc, "minute");
168
- return diffInMinutes >= bufferInMinutes;
169
- };
170
- exports.canRefundFromSettlementLedger = canRefundFromSettlementLedger;
165
+ function canRefundFromSettlementLedgerByDay(transactionCreatedAt, bufferInMinutes = 60) {
166
+ const now = dayjs_1.default.utc();
167
+ const txnDay = dayjs_1.default.utc(transactionCreatedAt).startOf("day");
168
+ const nextDay = txnDay.add(1, "day");
169
+ const cutoffTime = nextDay.subtract(bufferInMinutes, "minute");
170
+ // You can refund if:
171
+ // 1. It’s still the same UTC day as transaction's createdAt
172
+ // 2. There’s still enough buffer time before the new day starts
173
+ return now.isBefore(cutoffTime);
174
+ }
175
+ exports.canRefundFromSettlementLedgerByDay = canRefundFromSettlementLedgerByDay;
@@ -12,6 +12,10 @@ export declare enum REFUND_WALLET_RESPONSE {
12
12
  RESERVED = "RESERVED",
13
13
  NOT_RESERVED = "NOT_RESERVED"
14
14
  }
15
+ export declare enum REFUND_SOURCE {
16
+ balance = "balance",
17
+ settlement_ledger = "settlement_ledger"
18
+ }
15
19
  export declare enum REFUND_STATUS_INTERSWITCH {
16
20
  SUCCESS = "SUCCESS",
17
21
  PENDING = "PENDING",
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REFUND_CHANNEL = exports.REFUND_TYPE = exports.REFUND_STATUS_INTERSWITCH = exports.REFUND_WALLET_RESPONSE = exports.REFUND_STATUS = void 0;
3
+ exports.REFUND_CHANNEL = exports.REFUND_TYPE = exports.REFUND_STATUS_INTERSWITCH = exports.REFUND_SOURCE = exports.REFUND_WALLET_RESPONSE = exports.REFUND_STATUS = void 0;
4
4
  var REFUND_STATUS;
5
5
  (function (REFUND_STATUS) {
6
6
  REFUND_STATUS["COMPLETED"] = "COMPLETED";
@@ -17,6 +17,11 @@ var REFUND_WALLET_RESPONSE;
17
17
  REFUND_WALLET_RESPONSE["RESERVED"] = "RESERVED";
18
18
  REFUND_WALLET_RESPONSE["NOT_RESERVED"] = "NOT_RESERVED";
19
19
  })(REFUND_WALLET_RESPONSE = exports.REFUND_WALLET_RESPONSE || (exports.REFUND_WALLET_RESPONSE = {}));
20
+ var REFUND_SOURCE;
21
+ (function (REFUND_SOURCE) {
22
+ REFUND_SOURCE["balance"] = "balance";
23
+ REFUND_SOURCE["settlement_ledger"] = "settlement_ledger";
24
+ })(REFUND_SOURCE = exports.REFUND_SOURCE || (exports.REFUND_SOURCE = {}));
20
25
  var REFUND_STATUS_INTERSWITCH;
21
26
  (function (REFUND_STATUS_INTERSWITCH) {
22
27
  REFUND_STATUS_INTERSWITCH["SUCCESS"] = "SUCCESS";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@konplit-services/common",
3
- "version": "1.0.388",
3
+ "version": "1.0.390",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",