@fiado/type-kit 3.640.0 → 3.641.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.
@@ -23,6 +23,25 @@ describe('formas del contrato', () => {
23
23
  expect(Object.keys(reversal)).not.toContain('sandbox');
24
24
  });
25
25
 
26
+ it('un registro marcado por su dueño como prueba trae sandbox', () => {
27
+ const test: Reconciliation.ReconciliationFeedRecord = {
28
+ recordId: 'pay-9', tenantId: 'surekeep', concept: ReconciliationFeedConceptEnum.INSTALLMENT_COLLECTION, matchKey: 'att-9',
29
+ amountCents: 100, currency: CurrencyId.MXN, occurredAt: '2026-10-20T15:00:00.000Z', feedDay: '2026-10-20', refs: {}, sandbox: true,
30
+ };
31
+ expect(test.sandbox).toBe(true);
32
+ });
33
+
34
+ it('RunCompleted y DiscrepancyFound tienen su detail-type', () => {
35
+ expect(Reconciliation.ReconciliationEventDetailTypeEnum.RECONCILIATION_RUN_COMPLETED).toBe('reconciliation.ReconciliationRunCompleted');
36
+ expect(Reconciliation.ReconciliationEventDetailTypeEnum.RECONCILIATION_DISCREPANCY_FOUND).toBe('reconciliation.ReconciliationDiscrepancyFound');
37
+ const found: Reconciliation.ReconciliationDiscrepancyFoundEventDetail = {
38
+ eventId: 'surekeep#m8-gateway-sofom#INSTALLMENT_COLLECTION#att-1', tenantId: 'surekeep', definitionId: 'm8-gateway-sofom',
39
+ itemKey: 'INSTALLMENT_COLLECTION#att-1', layer: ReconciliationLayerEnum.ITEM, state: ReconciliationItemStateEnum.MISSING_IN_EXECUTED,
40
+ periodKey: '2026-11-02', runId: 'run-1', foundAt: '2026-11-04T10:00:00.000Z',
41
+ };
42
+ expect(found.state).toBe('MISSING_IN_EXECUTED');
43
+ });
44
+
26
45
  it('el feed de notas usa la misma envoltura con sus registros', () => {
27
46
  const page: Reconciliation.PrivateListReconciliationFeedResponse<TransferNote.TransferNoteSettlementFeedRecord> = {
28
47
  records: [],
@@ -39,4 +39,6 @@ export interface ReconciliationFeedRecord {
39
39
  feedDay: string;
40
40
  counterpartyType?: TransferNotePartyTypeEnum;
41
41
  refs: ReconciliationFeedRefs;
42
+ /** El dueño marca la operación de prueba; el motor la deja en TEST, fuera del cuadre. Sin el campo, es productiva. */
43
+ sandbox?: boolean;
42
44
  }
@@ -0,0 +1,17 @@
1
+ import { ReconciliationItemStateEnum } from '../enums/ReconciliationItemStateEnum';
2
+ import { ReconciliationLayerEnum } from '../enums/ReconciliationLayerEnum';
3
+ export declare class ReconciliationDiscrepancyFoundEventDetail {
4
+ /** Fijo por partida (`{tenantId}#{definitionId}#{itemKey}`): sale una vez y un reenvío llega con el mismo id. */
5
+ eventId: string;
6
+ tenantId: string;
7
+ definitionId: string;
8
+ itemKey: string;
9
+ layer: ReconciliationLayerEnum;
10
+ state: ReconciliationItemStateEnum;
11
+ periodKey: string;
12
+ differenceCents?: number;
13
+ counterpartyId?: string;
14
+ runId: string;
15
+ /** ISO 8601. */
16
+ foundAt: string;
17
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReconciliationDiscrepancyFoundEventDetail = void 0;
4
+ // `detail` de ReconciliationDiscrepancyFound: una partida entró en diferencia; sin datos personales.
5
+ class ReconciliationDiscrepancyFoundEventDetail {
6
+ }
7
+ exports.ReconciliationDiscrepancyFoundEventDetail = ReconciliationDiscrepancyFoundEventDetail;
@@ -3,7 +3,11 @@ import { ReconciliationRuleTypeEnum } from '../enums/ReconciliationRuleTypeEnum'
3
3
  export declare const RECONCILIATION_EVENTS_SOURCE = "fiado.reconciliation";
4
4
  export declare enum ReconciliationEventDetailTypeEnum {
5
5
  /** Una partida BANK_STATEMENT con `refs.noteId` quedó en OK; sale una vez por partida. */
6
- RECONCILIATION_ITEM_MATCHED = "reconciliation.ReconciliationItemMatched"
6
+ RECONCILIATION_ITEM_MATCHED = "reconciliation.ReconciliationItemMatched",
7
+ /** Una corrida terminó (COMPLETED o FAILED); sale una vez por intento de la corrida. */
8
+ RECONCILIATION_RUN_COMPLETED = "reconciliation.ReconciliationRunCompleted",
9
+ /** Una partida entró en diferencia; sale una vez por partida. */
10
+ RECONCILIATION_DISCREPANCY_FOUND = "reconciliation.ReconciliationDiscrepancyFound"
7
11
  }
8
12
  export declare class ReconciliationItemMatchedEventDetail {
9
13
  /** Fijo por partida: un reenvío llega con el mismo id y el consumidor lo descarta. */
@@ -7,6 +7,10 @@ var ReconciliationEventDetailTypeEnum;
7
7
  (function (ReconciliationEventDetailTypeEnum) {
8
8
  /** Una partida BANK_STATEMENT con `refs.noteId` quedó en OK; sale una vez por partida. */
9
9
  ReconciliationEventDetailTypeEnum["RECONCILIATION_ITEM_MATCHED"] = "reconciliation.ReconciliationItemMatched";
10
+ /** Una corrida terminó (COMPLETED o FAILED); sale una vez por intento de la corrida. */
11
+ ReconciliationEventDetailTypeEnum["RECONCILIATION_RUN_COMPLETED"] = "reconciliation.ReconciliationRunCompleted";
12
+ /** Una partida entró en diferencia; sale una vez por partida. */
13
+ ReconciliationEventDetailTypeEnum["RECONCILIATION_DISCREPANCY_FOUND"] = "reconciliation.ReconciliationDiscrepancyFound";
10
14
  })(ReconciliationEventDetailTypeEnum || (exports.ReconciliationEventDetailTypeEnum = ReconciliationEventDetailTypeEnum = {}));
11
15
  // `detail` de ReconciliationItemMatched; transfer-note llena con él la confirmación de FSA.
12
16
  class ReconciliationItemMatchedEventDetail {
@@ -0,0 +1,27 @@
1
+ import { ReconciliationItemStateEnum } from '../enums/ReconciliationItemStateEnum';
2
+ import { ReconciliationRuleTypeEnum } from '../enums/ReconciliationRuleTypeEnum';
3
+ import { ReconciliationRunStatusEnum } from '../enums/ReconciliationRunStatusEnum';
4
+ export declare class ReconciliationRunCompletedEventDetail {
5
+ /**
6
+ * Fijo por intento y resultado (`{tenantId}#{definitionId}#{runId}#{status}#{inicio del intento}`): un reenvío llega con el
7
+ * mismo id, y el reintento de una corrida FAILED (mismo `runId`) que termina COMPLETED llega con otro.
8
+ */
9
+ eventId: string;
10
+ tenantId: string;
11
+ definitionId: string;
12
+ runId: string;
13
+ periodKey: string;
14
+ ruleType: ReconciliationRuleTypeEnum;
15
+ status: ReconciliationRunStatusEnum;
16
+ countsByState: {
17
+ state: ReconciliationItemStateEnum;
18
+ count: number;
19
+ }[];
20
+ rejectedRecordCount: number;
21
+ /** Code de la causa cuando la corrida falló. */
22
+ failureCode?: string;
23
+ /** Llave del resumen en el bucket de conciliación (`{tenantId}/{definitionId}/{periodKey}/{layer}.json`). */
24
+ summaryObjectKey?: string;
25
+ /** ISO 8601. */
26
+ finishedAt: string;
27
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReconciliationRunCompletedEventDetail = void 0;
4
+ // `detail` de ReconciliationRunCompleted: el resultado de una corrida, sin datos personales.
5
+ class ReconciliationRunCompletedEventDetail {
6
+ }
7
+ exports.ReconciliationRunCompletedEventDetail = ReconciliationRunCompletedEventDetail;
@@ -27,3 +27,5 @@ export * from './dtos/responses/ReconciliationResponses';
27
27
  export * from './dtos/responses/PrivateReconciliationResponses';
28
28
  export * from './dtos/responses/ReconciliationFeedResponses';
29
29
  export * from './events/ReconciliationItemMatchedEventDetail';
30
+ export * from './events/ReconciliationRunCompletedEventDetail';
31
+ export * from './events/ReconciliationDiscrepancyFoundEventDetail';
@@ -49,3 +49,5 @@ __exportStar(require("./dtos/responses/PrivateReconciliationResponses"), exports
49
49
  __exportStar(require("./dtos/responses/ReconciliationFeedResponses"), exports);
50
50
  // Eventos
51
51
  __exportStar(require("./events/ReconciliationItemMatchedEventDetail"), exports);
52
+ __exportStar(require("./events/ReconciliationRunCompletedEventDetail"), exports);
53
+ __exportStar(require("./events/ReconciliationDiscrepancyFoundEventDetail"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.640.0",
3
+ "version": "3.641.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -41,4 +41,6 @@ export interface ReconciliationFeedRecord {
41
41
  feedDay: string;
42
42
  counterpartyType?: TransferNotePartyTypeEnum;
43
43
  refs: ReconciliationFeedRefs;
44
+ /** El dueño marca la operación de prueba; el motor la deja en TEST, fuera del cuadre. Sin el campo, es productiva. */
45
+ sandbox?: boolean;
44
46
  }
@@ -0,0 +1,19 @@
1
+ import { ReconciliationItemStateEnum } from '../enums/ReconciliationItemStateEnum';
2
+ import { ReconciliationLayerEnum } from '../enums/ReconciliationLayerEnum';
3
+
4
+ // `detail` de ReconciliationDiscrepancyFound: una partida entró en diferencia; sin datos personales.
5
+ export class ReconciliationDiscrepancyFoundEventDetail {
6
+ /** Fijo por partida (`{tenantId}#{definitionId}#{itemKey}`): sale una vez y un reenvío llega con el mismo id. */
7
+ eventId!: string;
8
+ tenantId!: string;
9
+ definitionId!: string;
10
+ itemKey!: string;
11
+ layer!: ReconciliationLayerEnum;
12
+ state!: ReconciliationItemStateEnum;
13
+ periodKey!: string;
14
+ differenceCents?: number;
15
+ counterpartyId?: string;
16
+ runId!: string;
17
+ /** ISO 8601. */
18
+ foundAt!: string;
19
+ }
@@ -7,6 +7,10 @@ export const RECONCILIATION_EVENTS_SOURCE = 'fiado.reconciliation';
7
7
  export enum ReconciliationEventDetailTypeEnum {
8
8
  /** Una partida BANK_STATEMENT con `refs.noteId` quedó en OK; sale una vez por partida. */
9
9
  RECONCILIATION_ITEM_MATCHED = 'reconciliation.ReconciliationItemMatched',
10
+ /** Una corrida terminó (COMPLETED o FAILED); sale una vez por intento de la corrida. */
11
+ RECONCILIATION_RUN_COMPLETED = 'reconciliation.ReconciliationRunCompleted',
12
+ /** Una partida entró en diferencia; sale una vez por partida. */
13
+ RECONCILIATION_DISCREPANCY_FOUND = 'reconciliation.ReconciliationDiscrepancyFound',
10
14
  }
11
15
 
12
16
  // `detail` de ReconciliationItemMatched; transfer-note llena con él la confirmación de FSA.
@@ -0,0 +1,26 @@
1
+ import { ReconciliationItemStateEnum } from '../enums/ReconciliationItemStateEnum';
2
+ import { ReconciliationRuleTypeEnum } from '../enums/ReconciliationRuleTypeEnum';
3
+ import { ReconciliationRunStatusEnum } from '../enums/ReconciliationRunStatusEnum';
4
+
5
+ // `detail` de ReconciliationRunCompleted: el resultado de una corrida, sin datos personales.
6
+ export class ReconciliationRunCompletedEventDetail {
7
+ /**
8
+ * Fijo por intento y resultado (`{tenantId}#{definitionId}#{runId}#{status}#{inicio del intento}`): un reenvío llega con el
9
+ * mismo id, y el reintento de una corrida FAILED (mismo `runId`) que termina COMPLETED llega con otro.
10
+ */
11
+ eventId!: string;
12
+ tenantId!: string;
13
+ definitionId!: string;
14
+ runId!: string;
15
+ periodKey!: string;
16
+ ruleType!: ReconciliationRuleTypeEnum;
17
+ status!: ReconciliationRunStatusEnum;
18
+ countsByState!: { state: ReconciliationItemStateEnum; count: number }[];
19
+ rejectedRecordCount!: number;
20
+ /** Code de la causa cuando la corrida falló. */
21
+ failureCode?: string;
22
+ /** Llave del resumen en el bucket de conciliación (`{tenantId}/{definitionId}/{periodKey}/{layer}.json`). */
23
+ summaryObjectKey?: string;
24
+ /** ISO 8601. */
25
+ finishedAt!: string;
26
+ }
@@ -38,3 +38,5 @@ export * from './dtos/responses/ReconciliationFeedResponses';
38
38
 
39
39
  // Eventos
40
40
  export * from './events/ReconciliationItemMatchedEventDetail';
41
+ export * from './events/ReconciliationRunCompletedEventDetail';
42
+ export * from './events/ReconciliationDiscrepancyFoundEventDetail';