@fiado/type-kit 3.616.0 → 3.618.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/_test_/unit/account/BankAccountMCSendTransfer.test.ts +43 -0
- package/_test_/unit/loanRetailAudit/m8AuditCatalog.test.ts +58 -0
- package/_test_/unit/reconciliation/reconciliationCatalogs.test.ts +126 -0
- package/_test_/unit/reconciliation/reconciliationRequests.test.ts +208 -0
- package/_test_/unit/reconciliation/reconciliationShapes.test.ts +74 -0
- package/_test_/unit/retailWizard/privateGetSale.test.ts +59 -0
- package/_test_/unit/transaction/transactionCreateRequestM8.test.ts +27 -0
- package/_test_/unit/transactionProcessor/reconciliationAdjustment.test.ts +63 -0
- package/_test_/unit/transferNote/transferNoteConfigAndPrivate.test.ts +202 -0
- package/_test_/unit/transferNote/transferNoteEventsAndFeeds.test.ts +112 -0
- package/_test_/unit/transferNote/transferNoteRequests.test.ts +138 -0
- package/bin/account/dtos/BankAccountMCSendTransferRequest.d.ts +8 -2
- package/bin/account/dtos/BankAccountMCSendTransferResponse.d.ts +3 -0
- package/bin/index.d.ts +2 -0
- package/bin/index.js +7 -1
- package/bin/loanRetailAudit/enums/AuditTrailActionEnum.d.ts +12 -1
- package/bin/loanRetailAudit/enums/AuditTrailActionEnum.js +12 -0
- package/bin/loanRetailAudit/enums/LoanAuditEntityTypeEnum.d.ts +5 -1
- package/bin/loanRetailAudit/enums/LoanAuditEntityTypeEnum.js +4 -0
- package/bin/reconciliation/constants/reconciliationErrorHttpStatus.d.ts +6 -0
- package/bin/reconciliation/constants/reconciliationErrorHttpStatus.js +23 -0
- package/bin/reconciliation/constants/reconciliationValidation.d.ts +8 -0
- package/bin/reconciliation/constants/reconciliationValidation.js +11 -0
- package/bin/reconciliation/dtos/ReconciliationDefinition.d.ts +42 -0
- package/bin/reconciliation/dtos/ReconciliationDefinition.js +2 -0
- package/bin/reconciliation/dtos/ReconciliationFeedRecord.d.ts +42 -0
- package/bin/reconciliation/dtos/ReconciliationFeedRecord.js +2 -0
- package/bin/reconciliation/dtos/ReconciliationItem.d.ts +77 -0
- package/bin/reconciliation/dtos/ReconciliationItem.js +2 -0
- package/bin/reconciliation/dtos/ReconciliationRun.d.ts +28 -0
- package/bin/reconciliation/dtos/ReconciliationRun.js +2 -0
- package/bin/reconciliation/dtos/requests/PrivateReconciliationRequests.d.ts +80 -0
- package/bin/reconciliation/dtos/requests/PrivateReconciliationRequests.js +215 -0
- package/bin/reconciliation/dtos/requests/ReconciliationActionRequests.d.ts +30 -0
- package/bin/reconciliation/dtos/requests/ReconciliationActionRequests.js +105 -0
- package/bin/reconciliation/dtos/requests/ReconciliationFeedRequests.d.ts +23 -0
- package/bin/reconciliation/dtos/requests/ReconciliationFeedRequests.js +71 -0
- package/bin/reconciliation/dtos/requests/ReconciliationQueries.d.ts +54 -0
- package/bin/reconciliation/dtos/requests/ReconciliationQueries.js +192 -0
- package/bin/reconciliation/dtos/requests/reconciliationRequestDecorators.d.ts +7 -0
- package/bin/reconciliation/dtos/requests/reconciliationRequestDecorators.js +39 -0
- package/bin/reconciliation/dtos/responses/PrivateReconciliationResponses.d.ts +13 -0
- package/bin/reconciliation/dtos/responses/PrivateReconciliationResponses.js +2 -0
- package/bin/reconciliation/dtos/responses/ReconciliationFeedResponses.d.ts +7 -0
- package/bin/reconciliation/dtos/responses/ReconciliationFeedResponses.js +2 -0
- package/bin/reconciliation/dtos/responses/ReconciliationResponses.d.ts +81 -0
- package/bin/reconciliation/dtos/responses/ReconciliationResponses.js +2 -0
- package/bin/reconciliation/enums/ReconciliationDefinitionStatusEnum.d.ts +6 -0
- package/bin/reconciliation/enums/ReconciliationDefinitionStatusEnum.js +10 -0
- package/bin/reconciliation/enums/ReconciliationErrorCodeEnum.d.ts +24 -0
- package/bin/reconciliation/enums/ReconciliationErrorCodeEnum.js +28 -0
- package/bin/reconciliation/enums/ReconciliationExportFormatEnum.d.ts +5 -0
- package/bin/reconciliation/enums/ReconciliationExportFormatEnum.js +9 -0
- package/bin/reconciliation/enums/ReconciliationFeedConceptEnum.d.ts +16 -0
- package/bin/reconciliation/enums/ReconciliationFeedConceptEnum.js +20 -0
- package/bin/reconciliation/enums/ReconciliationFeedErrorCodeEnum.d.ts +4 -0
- package/bin/reconciliation/enums/ReconciliationFeedErrorCodeEnum.js +8 -0
- package/bin/reconciliation/enums/ReconciliationFeedOwnerEnum.d.ts +9 -0
- package/bin/reconciliation/enums/ReconciliationFeedOwnerEnum.js +13 -0
- package/bin/reconciliation/enums/ReconciliationItemStateEnum.d.ts +23 -0
- package/bin/reconciliation/enums/ReconciliationItemStateEnum.js +27 -0
- package/bin/reconciliation/enums/ReconciliationLayerEnum.d.ts +8 -0
- package/bin/reconciliation/enums/ReconciliationLayerEnum.js +12 -0
- package/bin/reconciliation/enums/ReconciliationPeriodEnum.d.ts +6 -0
- package/bin/reconciliation/enums/ReconciliationPeriodEnum.js +10 -0
- package/bin/reconciliation/enums/ReconciliationResolutionArchiveReasonEnum.d.ts +6 -0
- package/bin/reconciliation/enums/ReconciliationResolutionArchiveReasonEnum.js +10 -0
- package/bin/reconciliation/enums/ReconciliationResolutionStatusEnum.d.ts +9 -0
- package/bin/reconciliation/enums/ReconciliationResolutionStatusEnum.js +13 -0
- package/bin/reconciliation/enums/ReconciliationResolutionTypeEnum.d.ts +7 -0
- package/bin/reconciliation/enums/ReconciliationResolutionTypeEnum.js +11 -0
- package/bin/reconciliation/enums/ReconciliationRuleTypeEnum.d.ts +7 -0
- package/bin/reconciliation/enums/ReconciliationRuleTypeEnum.js +11 -0
- package/bin/reconciliation/enums/ReconciliationRunStatusEnum.d.ts +6 -0
- package/bin/reconciliation/enums/ReconciliationRunStatusEnum.js +10 -0
- package/bin/reconciliation/enums/ReconciliationSourceRoleEnum.d.ts +6 -0
- package/bin/reconciliation/enums/ReconciliationSourceRoleEnum.js +10 -0
- package/bin/reconciliation/events/ReconciliationItemMatchedEventDetail.d.ts +22 -0
- package/bin/reconciliation/events/ReconciliationItemMatchedEventDetail.js +14 -0
- package/bin/reconciliation/index.d.ts +29 -0
- package/bin/reconciliation/index.js +51 -0
- package/bin/retailWizard/catalog/privateSaleDetailFields.d.ts +3 -0
- package/bin/retailWizard/catalog/privateSaleDetailFields.js +16 -0
- package/bin/retailWizard/constants/retailWizardValidation.d.ts +2 -0
- package/bin/retailWizard/constants/retailWizardValidation.js +5 -0
- package/bin/retailWizard/dtos/requests/PrivateGetSaleRequest.d.ts +8 -0
- package/bin/retailWizard/dtos/requests/PrivateGetSaleRequest.js +42 -0
- package/bin/retailWizard/dtos/responses/PrivateGetSaleResponse.d.ts +16 -0
- package/bin/retailWizard/dtos/responses/PrivateGetSaleResponse.js +2 -0
- package/bin/retailWizard/index.d.ts +4 -0
- package/bin/retailWizard/index.js +5 -0
- package/bin/transaction/dtos/TransactionCreateRequest.d.ts +4 -0
- package/bin/transaction/dtos/TransactionCreateRequest.js +12 -0
- package/bin/transactionProcessor/dtos/PrivateAuthorizeReconciliationAdjustmentRequest.d.ts +30 -0
- package/bin/transactionProcessor/dtos/PrivateAuthorizeReconciliationAdjustmentRequest.js +107 -0
- package/bin/transactionProcessor/dtos/PrivateAuthorizeReconciliationAdjustmentResponse.d.ts +7 -0
- package/bin/transactionProcessor/dtos/PrivateAuthorizeReconciliationAdjustmentResponse.js +2 -0
- package/bin/transactionProcessor/dtos/ReconciliationAdjustmentReference.d.ts +5 -0
- package/bin/transactionProcessor/dtos/ReconciliationAdjustmentReference.js +30 -0
- package/bin/transactionProcessor/index.d.ts +3 -0
- package/bin/transactionProcessor/index.js +3 -0
- package/bin/transferNote/constants/transferNoteDefaultFees.d.ts +5 -0
- package/bin/transferNote/constants/transferNoteDefaultFees.js +9 -0
- package/bin/transferNote/constants/transferNoteErrorHttpStatus.d.ts +3 -0
- package/bin/transferNote/constants/transferNoteErrorHttpStatus.js +30 -0
- package/bin/transferNote/constants/transferNoteValidation.d.ts +7 -0
- package/bin/transferNote/constants/transferNoteValidation.js +10 -0
- package/bin/transferNote/dtos/TransferNote.d.ts +81 -0
- package/bin/transferNote/dtos/TransferNote.js +2 -0
- package/bin/transferNote/dtos/TransferNoteConfigRecords.d.ts +50 -0
- package/bin/transferNote/dtos/TransferNoteConfigRecords.js +2 -0
- package/bin/transferNote/dtos/TransferNoteFeedRecords.d.ts +38 -0
- package/bin/transferNote/dtos/TransferNoteFeedRecords.js +2 -0
- package/bin/transferNote/dtos/TransferNoteHistoryEntry.d.ts +16 -0
- package/bin/transferNote/dtos/TransferNoteHistoryEntry.js +2 -0
- package/bin/transferNote/dtos/TransferNoteItem.d.ts +36 -0
- package/bin/transferNote/dtos/TransferNoteItem.js +2 -0
- package/bin/transferNote/dtos/TransferNoteSignedUrl.d.ts +5 -0
- package/bin/transferNote/dtos/TransferNoteSignedUrl.js +2 -0
- package/bin/transferNote/dtos/requests/PrivateTransferNoteRequests.d.ts +105 -0
- package/bin/transferNote/dtos/requests/PrivateTransferNoteRequests.js +256 -0
- package/bin/transferNote/dtos/requests/RetailerTransferNoteRequests.d.ts +20 -0
- package/bin/transferNote/dtos/requests/RetailerTransferNoteRequests.js +47 -0
- package/bin/transferNote/dtos/requests/TransferNoteActionRequests.d.ts +33 -0
- package/bin/transferNote/dtos/requests/TransferNoteActionRequests.js +104 -0
- package/bin/transferNote/dtos/requests/TransferNoteConfigRequests.d.ts +38 -0
- package/bin/transferNote/dtos/requests/TransferNoteConfigRequests.js +152 -0
- package/bin/transferNote/dtos/requests/TransferNoteQueries.d.ts +29 -0
- package/bin/transferNote/dtos/requests/TransferNoteQueries.js +107 -0
- package/bin/transferNote/dtos/requests/transferNoteRequestDecorators.d.ts +14 -0
- package/bin/transferNote/dtos/requests/transferNoteRequestDecorators.js +73 -0
- package/bin/transferNote/dtos/responses/PrivateTransferNoteResponses.d.ts +26 -0
- package/bin/transferNote/dtos/responses/PrivateTransferNoteResponses.js +2 -0
- package/bin/transferNote/dtos/responses/RetailerTransferNoteResponses.d.ts +13 -0
- package/bin/transferNote/dtos/responses/RetailerTransferNoteResponses.js +2 -0
- package/bin/transferNote/dtos/responses/TransferNoteConfigResponses.d.ts +6 -0
- package/bin/transferNote/dtos/responses/TransferNoteConfigResponses.js +2 -0
- package/bin/transferNote/dtos/responses/TransferNoteResponses.d.ts +44 -0
- package/bin/transferNote/dtos/responses/TransferNoteResponses.js +2 -0
- package/bin/transferNote/enums/TransferNoteConceptEnum.d.ts +16 -0
- package/bin/transferNote/enums/TransferNoteConceptEnum.js +20 -0
- package/bin/transferNote/enums/TransferNoteConceptSignEnum.d.ts +5 -0
- package/bin/transferNote/enums/TransferNoteConceptSignEnum.js +9 -0
- package/bin/transferNote/enums/TransferNoteConfigRecordTypeEnum.d.ts +7 -0
- package/bin/transferNote/enums/TransferNoteConfigRecordTypeEnum.js +11 -0
- package/bin/transferNote/enums/TransferNoteConfirmationSourceEnum.d.ts +5 -0
- package/bin/transferNote/enums/TransferNoteConfirmationSourceEnum.js +9 -0
- package/bin/transferNote/enums/TransferNoteConfirmationTypeEnum.d.ts +5 -0
- package/bin/transferNote/enums/TransferNoteConfirmationTypeEnum.js +9 -0
- package/bin/transferNote/enums/TransferNoteDisputeCategoryEnum.d.ts +7 -0
- package/bin/transferNote/enums/TransferNoteDisputeCategoryEnum.js +11 -0
- package/bin/transferNote/enums/TransferNoteDisputeDecisionEnum.d.ts +5 -0
- package/bin/transferNote/enums/TransferNoteDisputeDecisionEnum.js +9 -0
- package/bin/transferNote/enums/TransferNoteErrorCodeEnum.d.ts +32 -0
- package/bin/transferNote/enums/TransferNoteErrorCodeEnum.js +36 -0
- package/bin/transferNote/enums/TransferNoteFeedConceptEnum.d.ts +5 -0
- package/bin/transferNote/enums/TransferNoteFeedConceptEnum.js +9 -0
- package/bin/transferNote/enums/TransferNoteHistoryActionEnum.d.ts +13 -0
- package/bin/transferNote/enums/TransferNoteHistoryActionEnum.js +17 -0
- package/bin/transferNote/enums/TransferNoteIssueOriginEnum.d.ts +6 -0
- package/bin/transferNote/enums/TransferNoteIssueOriginEnum.js +10 -0
- package/bin/transferNote/enums/TransferNoteItemStatusEnum.d.ts +5 -0
- package/bin/transferNote/enums/TransferNoteItemStatusEnum.js +9 -0
- package/bin/transferNote/enums/TransferNotePartyTypeEnum.d.ts +6 -0
- package/bin/transferNote/enums/TransferNotePartyTypeEnum.js +10 -0
- package/bin/transferNote/enums/TransferNoteStatusEnum.d.ts +9 -0
- package/bin/transferNote/enums/TransferNoteStatusEnum.js +13 -0
- package/bin/transferNote/events/TransferNoteReconciledEventDetail.d.ts +17 -0
- package/bin/transferNote/events/TransferNoteReconciledEventDetail.js +13 -0
- package/bin/transferNote/index.d.ts +34 -0
- package/bin/transferNote/index.js +56 -0
- package/bin/transferNote/validators/IsTransferNoteSelectionConstraint.d.ts +6 -0
- package/bin/transferNote/validators/IsTransferNoteSelectionConstraint.js +28 -0
- package/package.json +1 -1
- package/src/account/dtos/BankAccountMCSendTransferRequest.ts +8 -2
- package/src/account/dtos/BankAccountMCSendTransferResponse.ts +3 -0
- package/src/index.ts +8 -0
- package/src/loanRetailAudit/enums/AuditTrailActionEnum.ts +12 -0
- package/src/loanRetailAudit/enums/LoanAuditEntityTypeEnum.ts +4 -0
- package/src/reconciliation/constants/reconciliationErrorHttpStatus.ts +22 -0
- package/src/reconciliation/constants/reconciliationValidation.ts +11 -0
- package/src/reconciliation/dtos/ReconciliationDefinition.ts +44 -0
- package/src/reconciliation/dtos/ReconciliationFeedRecord.ts +44 -0
- package/src/reconciliation/dtos/ReconciliationItem.ts +84 -0
- package/src/reconciliation/dtos/ReconciliationRun.ts +31 -0
- package/src/reconciliation/dtos/requests/PrivateReconciliationRequests.ts +166 -0
- package/src/reconciliation/dtos/requests/ReconciliationActionRequests.ts +77 -0
- package/src/reconciliation/dtos/requests/ReconciliationFeedRequests.ts +47 -0
- package/src/reconciliation/dtos/requests/ReconciliationQueries.ts +148 -0
- package/src/reconciliation/dtos/requests/reconciliationRequestDecorators.ts +32 -0
- package/src/reconciliation/dtos/responses/PrivateReconciliationResponses.ts +27 -0
- package/src/reconciliation/dtos/responses/ReconciliationFeedResponses.ts +9 -0
- package/src/reconciliation/dtos/responses/ReconciliationResponses.ts +101 -0
- package/src/reconciliation/enums/ReconciliationDefinitionStatusEnum.ts +6 -0
- package/src/reconciliation/enums/ReconciliationErrorCodeEnum.ts +24 -0
- package/src/reconciliation/enums/ReconciliationExportFormatEnum.ts +5 -0
- package/src/reconciliation/enums/ReconciliationFeedConceptEnum.ts +19 -0
- package/src/reconciliation/enums/ReconciliationFeedErrorCodeEnum.ts +4 -0
- package/src/reconciliation/enums/ReconciliationFeedOwnerEnum.ts +9 -0
- package/src/reconciliation/enums/ReconciliationItemStateEnum.ts +23 -0
- package/src/reconciliation/enums/ReconciliationLayerEnum.ts +8 -0
- package/src/reconciliation/enums/ReconciliationPeriodEnum.ts +6 -0
- package/src/reconciliation/enums/ReconciliationResolutionArchiveReasonEnum.ts +6 -0
- package/src/reconciliation/enums/ReconciliationResolutionStatusEnum.ts +9 -0
- package/src/reconciliation/enums/ReconciliationResolutionTypeEnum.ts +7 -0
- package/src/reconciliation/enums/ReconciliationRuleTypeEnum.ts +7 -0
- package/src/reconciliation/enums/ReconciliationRunStatusEnum.ts +6 -0
- package/src/reconciliation/enums/ReconciliationSourceRoleEnum.ts +6 -0
- package/src/reconciliation/events/ReconciliationItemMatchedEventDetail.ts +25 -0
- package/src/reconciliation/index.ts +40 -0
- package/src/retailWizard/catalog/privateSaleDetailFields.ts +15 -0
- package/src/retailWizard/constants/retailWizardValidation.ts +2 -0
- package/src/retailWizard/dtos/requests/PrivateGetSaleRequest.ts +26 -0
- package/src/retailWizard/dtos/responses/PrivateGetSaleResponse.ts +16 -0
- package/src/retailWizard/index.ts +6 -0
- package/src/transaction/dtos/TransactionCreateRequest.ts +12 -0
- package/src/transactionProcessor/dtos/PrivateAuthorizeReconciliationAdjustmentRequest.ts +101 -0
- package/src/transactionProcessor/dtos/PrivateAuthorizeReconciliationAdjustmentResponse.ts +7 -0
- package/src/transactionProcessor/dtos/ReconciliationAdjustmentReference.ts +15 -0
- package/src/transactionProcessor/index.ts +3 -0
- package/src/transferNote/constants/transferNoteDefaultFees.ts +7 -0
- package/src/transferNote/constants/transferNoteErrorHttpStatus.ts +28 -0
- package/src/transferNote/constants/transferNoteValidation.ts +10 -0
- package/src/transferNote/dtos/TransferNote.ts +89 -0
- package/src/transferNote/dtos/TransferNoteConfigRecords.ts +55 -0
- package/src/transferNote/dtos/TransferNoteFeedRecords.ts +35 -0
- package/src/transferNote/dtos/TransferNoteHistoryEntry.ts +17 -0
- package/src/transferNote/dtos/TransferNoteItem.ts +38 -0
- package/src/transferNote/dtos/TransferNoteSignedUrl.ts +5 -0
- package/src/transferNote/dtos/requests/PrivateTransferNoteRequests.ts +195 -0
- package/src/transferNote/dtos/requests/RetailerTransferNoteRequests.ts +28 -0
- package/src/transferNote/dtos/requests/TransferNoteActionRequests.ts +72 -0
- package/src/transferNote/dtos/requests/TransferNoteConfigRequests.ts +115 -0
- package/src/transferNote/dtos/requests/TransferNoteQueries.ts +78 -0
- package/src/transferNote/dtos/requests/transferNoteRequestDecorators.ts +72 -0
- package/src/transferNote/dtos/responses/PrivateTransferNoteResponses.ts +36 -0
- package/src/transferNote/dtos/responses/RetailerTransferNoteResponses.ts +19 -0
- package/src/transferNote/dtos/responses/TransferNoteConfigResponses.ts +8 -0
- package/src/transferNote/dtos/responses/TransferNoteResponses.ts +51 -0
- package/src/transferNote/enums/TransferNoteConceptEnum.ts +16 -0
- package/src/transferNote/enums/TransferNoteConceptSignEnum.ts +5 -0
- package/src/transferNote/enums/TransferNoteConfigRecordTypeEnum.ts +7 -0
- package/src/transferNote/enums/TransferNoteConfirmationSourceEnum.ts +5 -0
- package/src/transferNote/enums/TransferNoteConfirmationTypeEnum.ts +5 -0
- package/src/transferNote/enums/TransferNoteDisputeCategoryEnum.ts +7 -0
- package/src/transferNote/enums/TransferNoteDisputeDecisionEnum.ts +5 -0
- package/src/transferNote/enums/TransferNoteErrorCodeEnum.ts +34 -0
- package/src/transferNote/enums/TransferNoteFeedConceptEnum.ts +5 -0
- package/src/transferNote/enums/TransferNoteHistoryActionEnum.ts +13 -0
- package/src/transferNote/enums/TransferNoteIssueOriginEnum.ts +6 -0
- package/src/transferNote/enums/TransferNoteItemStatusEnum.ts +5 -0
- package/src/transferNote/enums/TransferNotePartyTypeEnum.ts +6 -0
- package/src/transferNote/enums/TransferNoteStatusEnum.ts +9 -0
- package/src/transferNote/events/TransferNoteReconciledEventDetail.ts +22 -0
- package/src/transferNote/index.ts +45 -0
- package/src/transferNote/validators/IsTransferNoteSelectionConstraint.ts +16 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { plainToInstance } from 'class-transformer';
|
|
3
|
+
import { validateSync } from 'class-validator';
|
|
4
|
+
import * as TransferNote from '../../../src/transferNote';
|
|
5
|
+
import { CurrencyId } from '../../../src/currency/enums/CurrencyId';
|
|
6
|
+
|
|
7
|
+
const {
|
|
8
|
+
UpdateTransferNoteConfigRequest,
|
|
9
|
+
TransferNoteConfigRecordTypeEnum,
|
|
10
|
+
TransferNotePartyTypeEnum,
|
|
11
|
+
TransferNoteConceptEnum,
|
|
12
|
+
TransferNoteConceptSignEnum,
|
|
13
|
+
PrivateIssueTransferNoteRequest,
|
|
14
|
+
PrivateCaptureTransferNoteSpeiRequest,
|
|
15
|
+
PrivateGetTransferNoteQuery,
|
|
16
|
+
PrivateListTransferNotesQuery,
|
|
17
|
+
PrivateConfirmTransferNoteSettlementRequest,
|
|
18
|
+
PrivateRunTransferNoteCutoffRequest,
|
|
19
|
+
PrivateCreateTransferNoteAdjustmentRequest,
|
|
20
|
+
PrivateGetTransferNoteItemBySourceQuery,
|
|
21
|
+
TransferNoteFeedConceptEnum,
|
|
22
|
+
TransferNoteErrorCodeEnum,
|
|
23
|
+
TRANSFER_NOTE_ERROR_HTTP_STATUS,
|
|
24
|
+
TRANSFER_NOTE_DEFAULT_FEE_CENTS,
|
|
25
|
+
} = TransferNote;
|
|
26
|
+
|
|
27
|
+
function errorsOf<T extends object>(cls: new () => T, payload: Record<string, unknown>): string[] {
|
|
28
|
+
const dto = plainToInstance(cls, payload, { excludeExtraneousValues: true });
|
|
29
|
+
return validateSync(dto).map((e) => e.property);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const service = { tenantId: 'surekeep', author: 'conciliacion-dashboard' };
|
|
33
|
+
const caller = { ...service, actor: 'operador@fsa.mx' };
|
|
34
|
+
const longReason = 'emisión manual por corte fallido del lunes';
|
|
35
|
+
|
|
36
|
+
describe('UpdateTransferNoteConfigRequest', () => {
|
|
37
|
+
it('acepta un registro de cada tipo con su sub-shape', () => {
|
|
38
|
+
expect(
|
|
39
|
+
errorsOf(UpdateTransferNoteConfigRequest, {
|
|
40
|
+
recordType: TransferNoteConfigRecordTypeEnum.TENANT,
|
|
41
|
+
tenant: { activeFrom: '2026-11-02', currency: CurrencyId.MXN },
|
|
42
|
+
}),
|
|
43
|
+
).toEqual([]);
|
|
44
|
+
expect(
|
|
45
|
+
errorsOf(UpdateTransferNoteConfigRequest, {
|
|
46
|
+
recordType: TransferNoteConfigRecordTypeEnum.PARTY,
|
|
47
|
+
party: {
|
|
48
|
+
partyType: TransferNotePartyTypeEnum.RETAILER,
|
|
49
|
+
displayName: 'Tienda Centro',
|
|
50
|
+
retailerId: 'r-1',
|
|
51
|
+
clabe: '012180001234567891',
|
|
52
|
+
contactEmail: 'pagos@tienda.mx',
|
|
53
|
+
},
|
|
54
|
+
}),
|
|
55
|
+
).toEqual([]);
|
|
56
|
+
expect(
|
|
57
|
+
errorsOf(UpdateTransferNoteConfigRequest, {
|
|
58
|
+
recordType: TransferNoteConfigRecordTypeEnum.CONCEPT,
|
|
59
|
+
concept: {
|
|
60
|
+
payerPartyType: TransferNotePartyTypeEnum.SOFOM,
|
|
61
|
+
payeePartyType: TransferNotePartyTypeEnum.RETAILER,
|
|
62
|
+
sign: TransferNoteConceptSignEnum.POSITIVE,
|
|
63
|
+
activeFrom: '2026-11-02',
|
|
64
|
+
rateCents: 5000,
|
|
65
|
+
},
|
|
66
|
+
}),
|
|
67
|
+
).toEqual([]);
|
|
68
|
+
expect(
|
|
69
|
+
errorsOf(UpdateTransferNoteConfigRequest, {
|
|
70
|
+
recordType: TransferNoteConfigRecordTypeEnum.PAIR,
|
|
71
|
+
pair: { payerPartyId: 'fsa', payeePartyId: 'sk', activeFrom: '2026-11-02' },
|
|
72
|
+
}),
|
|
73
|
+
).toEqual([]);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it('rechaza tipo desconocido y registro sin su sub-shape', () => {
|
|
77
|
+
expect(errorsOf(UpdateTransferNoteConfigRequest, { recordType: 'GLOBAL' })).toContain('recordType');
|
|
78
|
+
expect(errorsOf(UpdateTransferNoteConfigRequest, { recordType: TransferNoteConfigRecordTypeEnum.PAIR })).toContain('pair');
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it('valida el sub-shape: CLABE de 18 dígitos, correo y retailerId de un retailer', () => {
|
|
82
|
+
const errors = errorsOf(UpdateTransferNoteConfigRequest, {
|
|
83
|
+
recordType: TransferNoteConfigRecordTypeEnum.PARTY,
|
|
84
|
+
party: { partyType: TransferNotePartyTypeEnum.RETAILER, displayName: 'Tienda', clabe: '123', contactEmail: 'x' },
|
|
85
|
+
});
|
|
86
|
+
expect(errors).toContain('party');
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it('no tiene campo de comisión por cobranza', () => {
|
|
90
|
+
const dto = plainToInstance(
|
|
91
|
+
UpdateTransferNoteConfigRequest,
|
|
92
|
+
{ recordType: 'TENANT', tenant: { activeFrom: '2026-11-02', currency: 'MXN', collectionFeeCents: 100 } },
|
|
93
|
+
{ excludeExtraneousValues: true },
|
|
94
|
+
);
|
|
95
|
+
expect(dto.tenant).not.toHaveProperty('collectionFeeCents');
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
describe('espejo privado', () => {
|
|
100
|
+
it('agrega tenantId, author y actor a la versión pública', () => {
|
|
101
|
+
expect(errorsOf(PrivateIssueTransferNoteRequest, { ...caller, pairKey: 'p-1', isoWeek: '2026-W43', reason: longReason })).toEqual([]);
|
|
102
|
+
expect(errorsOf(PrivateIssueTransferNoteRequest, { pairKey: 'p-1', isoWeek: '2026-W43', reason: longReason })).toEqual(
|
|
103
|
+
expect.arrayContaining(['tenantId', 'author', 'actor']),
|
|
104
|
+
);
|
|
105
|
+
expect(errorsOf(PrivateIssueTransferNoteRequest, { ...caller, actor: 'operador', pairKey: 'p-1', isoWeek: '2026-W43', reason: longReason })).toContain('actor');
|
|
106
|
+
expect(
|
|
107
|
+
errorsOf(PrivateCaptureTransferNoteSpeiRequest, {
|
|
108
|
+
...caller,
|
|
109
|
+
trackingKey: 'K1',
|
|
110
|
+
paidAt: '2026-10-29T15:00:00.000Z',
|
|
111
|
+
amountCents: 100,
|
|
112
|
+
}),
|
|
113
|
+
).toEqual([]);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it('las lecturas privadas también exigen author y actor', () => {
|
|
117
|
+
expect(errorsOf(PrivateGetTransferNoteQuery, caller)).toEqual([]);
|
|
118
|
+
expect(errorsOf(PrivateGetTransferNoteQuery, { tenantId: 'surekeep' })).toEqual(expect.arrayContaining(['author', 'actor']));
|
|
119
|
+
expect(errorsOf(PrivateListTransferNotesQuery, { ...caller, limit: '20' })).toEqual([]);
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it('confirm-settlement pide el caller con el email del operador', () => {
|
|
123
|
+
expect(errorsOf(PrivateConfirmTransferNoteSettlementRequest, caller)).toEqual([]);
|
|
124
|
+
expect(errorsOf(PrivateConfirmTransferNoteSettlementRequest, service)).toContain('actor');
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it('el corte manual pide tenant, semana y author', () => {
|
|
128
|
+
expect(errorsOf(PrivateRunTransferNoteCutoffRequest, { ...service, isoWeek: '2026-W43' })).toEqual([]);
|
|
129
|
+
expect(errorsOf(PrivateRunTransferNoteCutoffRequest, { ...service, isoWeek: 'W43' })).toContain('isoWeek');
|
|
130
|
+
expect(Object.keys(plainToInstance(PrivateRunTransferNoteCutoffRequest, caller, { excludeExtraneousValues: true }))).not.toContain('actor');
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
it('el ajuste es idempotente por adjustmentKey y lleva monto entero distinto de cero', () => {
|
|
134
|
+
const adjustment = {
|
|
135
|
+
...service,
|
|
136
|
+
adjustmentKey: 'surekeep#def-1#item-9',
|
|
137
|
+
sourceItemId: 'item-9',
|
|
138
|
+
amountCents: -1500,
|
|
139
|
+
reason: 'cobro duplicado',
|
|
140
|
+
};
|
|
141
|
+
expect(errorsOf(PrivateCreateTransferNoteAdjustmentRequest, adjustment)).toEqual([]);
|
|
142
|
+
expect(errorsOf(PrivateCreateTransferNoteAdjustmentRequest, { ...adjustment, adjustmentKey: '', amountCents: 0 })).toEqual(
|
|
143
|
+
expect.arrayContaining(['adjustmentKey', 'amountCents']),
|
|
144
|
+
);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
it('by-source pide author, concepto del item y registro de origen, sin actor', () => {
|
|
148
|
+
expect(
|
|
149
|
+
errorsOf(PrivateGetTransferNoteItemBySourceQuery, {
|
|
150
|
+
tenantId: 'surekeep',
|
|
151
|
+
author: 'reconciliation-engine-business',
|
|
152
|
+
concept: TransferNoteConceptEnum.ORIGINATION_BONUS,
|
|
153
|
+
sourceRecordId: 'contract-1',
|
|
154
|
+
}),
|
|
155
|
+
).toEqual([]);
|
|
156
|
+
expect(errorsOf(PrivateGetTransferNoteItemBySourceQuery, { tenantId: 'surekeep', concept: 'SIGNED_CREDIT' })).toEqual(
|
|
157
|
+
expect.arrayContaining(['author', 'concept', 'sourceRecordId']),
|
|
158
|
+
);
|
|
159
|
+
expect(new PrivateGetTransferNoteItemBySourceQuery()).toBeInstanceOf(TransferNote.PrivateTransferNoteCaller);
|
|
160
|
+
expect(new PrivateGetTransferNoteItemBySourceQuery()).not.toBeInstanceOf(TransferNote.PrivateTransferNoteOperatorCaller);
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
describe('catálogos', () => {
|
|
165
|
+
it('conceptos de REQ-48 y feeds de notas', () => {
|
|
166
|
+
expect(Object.values(TransferNoteConceptEnum)).toEqual(
|
|
167
|
+
expect.arrayContaining([
|
|
168
|
+
'INSTALLMENT_COLLECTION',
|
|
169
|
+
'CREDIT_PROMOTION_REIMBURSEMENT',
|
|
170
|
+
'SALE_PROMOTION_REIMBURSEMENT',
|
|
171
|
+
'DEVICE_PAYMENT',
|
|
172
|
+
'DOWN_PAYMENT',
|
|
173
|
+
'ORIGINATION_BONUS',
|
|
174
|
+
'ACCOUNT_OPENING',
|
|
175
|
+
'ADJUSTMENT',
|
|
176
|
+
]),
|
|
177
|
+
);
|
|
178
|
+
expect(Object.values(TransferNoteFeedConceptEnum)).toEqual(['TRANSFER_NOTE_ITEM', 'TRANSFER_NOTE_SETTLEMENT']);
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
it('los bonos de retail-customer viajan en SALE_PROMOTION_REIMBURSEMENT', () => {
|
|
182
|
+
expect(Object.values(TransferNoteConceptEnum)).not.toContain('WELCOME_BONUS_REIMBURSEMENT');
|
|
183
|
+
expect(Object.values(TransferNoteConceptEnum)).not.toContain('REFERRAL_BONUS_REIMBURSEMENT');
|
|
184
|
+
expect(Object.values(TransferNoteConceptEnum)).toContain('SALE_COMMISSION');
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
it('tarifas por omisión de REQ-52 en centavos', () => {
|
|
188
|
+
expect(TRANSFER_NOTE_DEFAULT_FEE_CENTS).toEqual({
|
|
189
|
+
[TransferNoteConceptEnum.ORIGINATION_BONUS]: 5000,
|
|
190
|
+
[TransferNoteConceptEnum.ACCOUNT_OPENING]: 2500,
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
it('cada code tiene un status del catálogo cerrado', () => {
|
|
195
|
+
for (const code of Object.values(TransferNoteErrorCodeEnum)) {
|
|
196
|
+
expect([400, 404, 409, 422, 502]).toContain(TRANSFER_NOTE_ERROR_HTTP_STATUS[code]);
|
|
197
|
+
}
|
|
198
|
+
expect(TRANSFER_NOTE_ERROR_HTTP_STATUS[TransferNoteErrorCodeEnum.WEEK_ALREADY_CUT]).toBe(409);
|
|
199
|
+
expect(TRANSFER_NOTE_ERROR_HTTP_STATUS[TransferNoteErrorCodeEnum.AUTHOR_NOT_ALLOWED]).toBe(422);
|
|
200
|
+
expect(TRANSFER_NOTE_ERROR_HTTP_STATUS[TransferNoteErrorCodeEnum.TRANSFER_NOTE_ITEM_NOT_FOUND]).toBe(404);
|
|
201
|
+
});
|
|
202
|
+
});
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { readdirSync, readFileSync, statSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import * as Reconciliation from '../../../src/reconciliation';
|
|
5
|
+
import * as TransferNote from '../../../src/transferNote';
|
|
6
|
+
import { CurrencyId } from '../../../src/currency/enums/CurrencyId';
|
|
7
|
+
|
|
8
|
+
const { ReconciliationFeedConceptEnum, ReconciliationFeedErrorCodeEnum, RECONCILIATION_FEED_ERROR_HTTP_STATUS } = Reconciliation;
|
|
9
|
+
const { TransferNoteConceptEnum, TransferNotePartyTypeEnum, TransferNoteStatusEnum, TransferNoteErrorCodeEnum } = TransferNote;
|
|
10
|
+
|
|
11
|
+
// Lo que lee el cliente genérico de feeds del motor, sin saber de qué dueño viene.
|
|
12
|
+
const readGeneric = (record: Reconciliation.ReconciliationFeedRecord): string =>
|
|
13
|
+
`${record.concept}#${record.matchKey}#${record.amountCents}#${record.refs.reversesRecordId ?? ''}`;
|
|
14
|
+
|
|
15
|
+
const sourceFiles = (dir: string): string[] =>
|
|
16
|
+
readdirSync(dir).flatMap((name) => {
|
|
17
|
+
const path = join(dir, name);
|
|
18
|
+
return statSync(path).isDirectory() ? sourceFiles(path) : [path];
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
describe('eventos de transferNote', () => {
|
|
22
|
+
it('TransferNoteReconciled vive en transferNote con su source y detailType', () => {
|
|
23
|
+
expect(TransferNote.TRANSFER_NOTE_EVENTS_SOURCE).toBe('fiado.transferNote');
|
|
24
|
+
expect(TransferNote.TransferNoteEventDetailTypeEnum.TRANSFER_NOTE_RECONCILED).toBe('transferNote.TransferNoteReconciled');
|
|
25
|
+
const detail: TransferNote.TransferNoteReconciledEventDetail = {
|
|
26
|
+
eventId: 'surekeep#n-1#RECONCILED',
|
|
27
|
+
tenantId: 'surekeep',
|
|
28
|
+
noteId: 'n-1',
|
|
29
|
+
pairKey: 'FSA#SK',
|
|
30
|
+
isoWeek: '2026-W44',
|
|
31
|
+
netAmountCents: 125000,
|
|
32
|
+
currency: CurrencyId.MXN,
|
|
33
|
+
reconciledAt: '2026-10-29T10:00:00.000Z',
|
|
34
|
+
};
|
|
35
|
+
expect(detail.noteId).toBe('n-1');
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
describe('registros de feed de notas con la forma base', () => {
|
|
40
|
+
it('un item de nota se lee con el cliente genérico y su reversa va en refs', () => {
|
|
41
|
+
const reversal: TransferNote.TransferNoteItemFeedRecord = {
|
|
42
|
+
recordId: 'it-2',
|
|
43
|
+
tenantId: 'surekeep',
|
|
44
|
+
concept: ReconciliationFeedConceptEnum.TRANSFER_NOTE_ITEM,
|
|
45
|
+
matchKey: 'att-1',
|
|
46
|
+
amountCents: -15000,
|
|
47
|
+
currency: CurrencyId.MXN,
|
|
48
|
+
occurredAt: '2026-10-20T15:00:00.000Z',
|
|
49
|
+
feedDay: '2026-10-27',
|
|
50
|
+
refs: { noteId: 'n-1', itemId: 'it-2', attemptId: 'att-1', creditId: 'cr-1', reversesRecordId: 'it-1' },
|
|
51
|
+
itemConcept: TransferNoteConceptEnum.INSTALLMENT_COLLECTION,
|
|
52
|
+
pairKey: 'FSA#SK',
|
|
53
|
+
sourceRecordId: 'pay-1#rev',
|
|
54
|
+
includedAt: '2026-10-27T06:01:00.000Z',
|
|
55
|
+
};
|
|
56
|
+
expect(readGeneric(reversal)).toBe('TRANSFER_NOTE_ITEM#att-1#-15000#it-1');
|
|
57
|
+
expect(Object.keys(reversal)).not.toContain('reversedItemId');
|
|
58
|
+
expect(Object.keys(reversal)).not.toContain('noteId');
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('la liquidación de una nota se lee con el cliente genérico', () => {
|
|
62
|
+
const settlement: TransferNote.TransferNoteSettlementFeedRecord = {
|
|
63
|
+
recordId: 'n-1',
|
|
64
|
+
tenantId: 'surekeep',
|
|
65
|
+
concept: ReconciliationFeedConceptEnum.TRANSFER_NOTE_SETTLEMENT,
|
|
66
|
+
matchKey: 'n-1',
|
|
67
|
+
amountCents: 125000,
|
|
68
|
+
currency: CurrencyId.MXN,
|
|
69
|
+
occurredAt: '2026-10-27T06:01:00.000Z',
|
|
70
|
+
feedDay: '2026-10-27',
|
|
71
|
+
counterpartyType: TransferNotePartyTypeEnum.RETAILER,
|
|
72
|
+
refs: { noteId: 'n-1', trackingKey: 'BBVA123', retailerId: 'r-1' },
|
|
73
|
+
pairKey: 'FSA#SK',
|
|
74
|
+
payerPartyType: TransferNotePartyTypeEnum.GATEWAY,
|
|
75
|
+
payerPartyId: 'fsa',
|
|
76
|
+
payeePartyType: TransferNotePartyTypeEnum.RETAILER,
|
|
77
|
+
payeePartyId: 'r-1',
|
|
78
|
+
status: TransferNoteStatusEnum.SENT,
|
|
79
|
+
dueAt: '2026-10-29T06:00:00.000Z',
|
|
80
|
+
payeeClabe: '012180001234567890',
|
|
81
|
+
};
|
|
82
|
+
expect(readGeneric(settlement)).toBe('TRANSFER_NOTE_SETTLEMENT#n-1#125000#');
|
|
83
|
+
expect(Object.keys(settlement)).not.toContain('netAmountCents');
|
|
84
|
+
expect(Object.keys(settlement)).not.toContain('issuedAt');
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it('los refs de notas no admiten llaves fuera de la lista cerrada', () => {
|
|
88
|
+
const refs: TransferNote.TransferNoteItemFeedRecord['refs'] = {
|
|
89
|
+
noteId: 'n-1',
|
|
90
|
+
itemId: 'it-1',
|
|
91
|
+
// @ts-expect-error sourceRecordId no está en la lista cerrada de refs
|
|
92
|
+
sourceRecordId: 'pay-1',
|
|
93
|
+
};
|
|
94
|
+
expect(refs.noteId).toBe('n-1');
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
describe('FEED_RECORD_NOT_FOUND con una sola fuente', () => {
|
|
99
|
+
it('transferNote reusa el code y el status del feed genérico', () => {
|
|
100
|
+
expect(TransferNoteErrorCodeEnum.FEED_RECORD_NOT_FOUND).toBe(ReconciliationFeedErrorCodeEnum.FEED_RECORD_NOT_FOUND);
|
|
101
|
+
expect(TransferNote.TRANSFER_NOTE_ERROR_HTTP_STATUS[TransferNoteErrorCodeEnum.FEED_RECORD_NOT_FOUND]).toBe(
|
|
102
|
+
RECONCILIATION_FEED_ERROR_HTTP_STATUS[ReconciliationFeedErrorCodeEnum.FEED_RECORD_NOT_FOUND],
|
|
103
|
+
);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it('el string literal solo se declara en reconciliation', () => {
|
|
107
|
+
const declaring = [...sourceFiles(join(__dirname, '../../../src/transferNote')), ...sourceFiles(join(__dirname, '../../../src/reconciliation'))]
|
|
108
|
+
.filter((file) => readFileSync(file, 'utf8').includes("'FEED_RECORD_NOT_FOUND'"))
|
|
109
|
+
.map((file) => file.replace(/.*\/src\//, 'src/'));
|
|
110
|
+
expect(declaring).toEqual(['src/reconciliation/enums/ReconciliationFeedErrorCodeEnum.ts']);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { plainToInstance } from 'class-transformer';
|
|
3
|
+
import { validateSync } from 'class-validator';
|
|
4
|
+
import * as TransferNote from '../../../src/transferNote';
|
|
5
|
+
import { TransferNote as FromRoot } from '../../../src';
|
|
6
|
+
|
|
7
|
+
const {
|
|
8
|
+
IssueTransferNoteRequest,
|
|
9
|
+
PreviewTransferNoteRequest,
|
|
10
|
+
CaptureTransferNoteSpeiRequest,
|
|
11
|
+
CaptureRetailerTransferNoteSpeiRequest,
|
|
12
|
+
RevertTransferNoteSpeiRequest,
|
|
13
|
+
CancelTransferNoteRequest,
|
|
14
|
+
DisputeTransferNoteRequest,
|
|
15
|
+
ResolveTransferNoteDisputeRequest,
|
|
16
|
+
ListTransferNotesQuery,
|
|
17
|
+
ListRetailerTransferNotesQuery,
|
|
18
|
+
ListTransferNotePoolQuery,
|
|
19
|
+
ListTransferNoteItemsQuery,
|
|
20
|
+
TransferNoteDisputeCategoryEnum,
|
|
21
|
+
TransferNoteDisputeDecisionEnum,
|
|
22
|
+
TransferNoteStatusEnum,
|
|
23
|
+
TransferNoteItemStatusEnum,
|
|
24
|
+
TransferNoteConceptEnum,
|
|
25
|
+
} = TransferNote;
|
|
26
|
+
|
|
27
|
+
function errorsOf<T extends object>(cls: new () => T, payload: Record<string, unknown>): string[] {
|
|
28
|
+
const dto = plainToInstance(cls, payload, { excludeExtraneousValues: true });
|
|
29
|
+
return validateSync(dto).map((e) => e.property);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const longReason = 'el corte omitió dos cobros de la semana';
|
|
33
|
+
|
|
34
|
+
describe('export del dominio', () => {
|
|
35
|
+
it('se exporta desde el index raíz', () => {
|
|
36
|
+
expect(FromRoot.IssueTransferNoteRequest).toBe(IssueTransferNoteRequest);
|
|
37
|
+
expect(FromRoot.TransferNoteStatusEnum.ISSUED).toBe('ISSUED');
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
describe('IssueTransferNoteRequest', () => {
|
|
42
|
+
it('acepta selección de items o par + semana, con razón de 20+', () => {
|
|
43
|
+
expect(errorsOf(IssueTransferNoteRequest, { pairKey: 'p-1', itemIds: ['i-1'], reason: longReason })).toEqual([]);
|
|
44
|
+
expect(errorsOf(IssueTransferNoteRequest, { pairKey: 'p-1', isoWeek: '2026-W43', reason: longReason })).toEqual([]);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('exige exactamente uno de itemIds o isoWeek', () => {
|
|
48
|
+
expect(errorsOf(IssueTransferNoteRequest, { pairKey: 'p-1', reason: longReason })).toContain('itemIds');
|
|
49
|
+
expect(
|
|
50
|
+
errorsOf(IssueTransferNoteRequest, { pairKey: 'p-1', itemIds: ['i-1'], isoWeek: '2026-W43', reason: longReason }),
|
|
51
|
+
).toContain('itemIds');
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it('rechaza razón corta, semana mal formada y selección vacía', () => {
|
|
55
|
+
const errors = errorsOf(IssueTransferNoteRequest, { pairKey: '', isoWeek: '2026-43', reason: 'corta' });
|
|
56
|
+
expect(errors).toEqual(expect.arrayContaining(['pairKey', 'isoWeek', 'reason']));
|
|
57
|
+
expect(errorsOf(IssueTransferNoteRequest, { pairKey: 'p-1', itemIds: [], reason: longReason })).toContain('itemIds');
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('cuenta la razón sin espacios de relleno', () => {
|
|
61
|
+
expect(errorsOf(IssueTransferNoteRequest, { pairKey: 'p-1', isoWeek: '2026-W43', reason: ` corta${' '.repeat(20)}` })).toContain(
|
|
62
|
+
'reason',
|
|
63
|
+
);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
describe('PreviewTransferNoteRequest', () => {
|
|
68
|
+
it('no pide razón y aplica la misma selección', () => {
|
|
69
|
+
expect(errorsOf(PreviewTransferNoteRequest, { pairKey: 'p-1', isoWeek: '2026-W01' })).toEqual([]);
|
|
70
|
+
expect(errorsOf(PreviewTransferNoteRequest, { pairKey: 'p-1' })).toContain('itemIds');
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
describe('captura y reversa de SPEI', () => {
|
|
75
|
+
const spei = { trackingKey: 'BNET01002610290000001', paidAt: '2026-10-29T15:00:00.000Z', amountCents: 125000 };
|
|
76
|
+
|
|
77
|
+
it('acepta clave, fecha ISO y monto entero positivo', () => {
|
|
78
|
+
expect(errorsOf(CaptureTransferNoteSpeiRequest, spei)).toEqual([]);
|
|
79
|
+
expect(errorsOf(CaptureRetailerTransferNoteSpeiRequest, spei)).toEqual([]);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it('rechaza clave vacía, fecha inválida y monto no entero o no positivo', () => {
|
|
83
|
+
const errors = errorsOf(CaptureTransferNoteSpeiRequest, { trackingKey: '', paidAt: 'hoy', amountCents: 10.5 });
|
|
84
|
+
expect(errors).toEqual(expect.arrayContaining(['trackingKey', 'paidAt', 'amountCents']));
|
|
85
|
+
expect(errorsOf(CaptureTransferNoteSpeiRequest, { ...spei, amountCents: 0 })).toContain('amountCents');
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('la reversa y la cancelación exigen razón', () => {
|
|
89
|
+
expect(errorsOf(RevertTransferNoteSpeiRequest, { reason: 'SPEI duplicado' })).toEqual([]);
|
|
90
|
+
expect(errorsOf(RevertTransferNoteSpeiRequest, { reason: ' ' })).toContain('reason');
|
|
91
|
+
expect(errorsOf(CancelTransferNoteRequest, {})).toContain('reason');
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
describe('objeción', () => {
|
|
96
|
+
it('acepta las 4 categorías con razón de 20+', () => {
|
|
97
|
+
for (const category of Object.values(TransferNoteDisputeCategoryEnum)) {
|
|
98
|
+
expect(errorsOf(DisputeTransferNoteRequest, { category, reason: longReason })).toEqual([]);
|
|
99
|
+
}
|
|
100
|
+
expect(Object.values(TransferNoteDisputeCategoryEnum)).toHaveLength(4);
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it('rechaza categoría desconocida y razón corta', () => {
|
|
104
|
+
expect(errorsOf(DisputeTransferNoteRequest, { category: 'LATE', reason: 'mal' })).toEqual(
|
|
105
|
+
expect.arrayContaining(['category', 'reason']),
|
|
106
|
+
);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
it('la resolución acepta o rechaza con razón', () => {
|
|
110
|
+
expect(errorsOf(ResolveTransferNoteDisputeRequest, { decision: TransferNoteDisputeDecisionEnum.ACCEPT, reason: 'faltaban items' })).toEqual([]);
|
|
111
|
+
expect(errorsOf(ResolveTransferNoteDisputeRequest, { decision: 'MAYBE' })).toEqual(expect.arrayContaining(['decision', 'reason']));
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
describe('queries de listado', () => {
|
|
116
|
+
it('acepta filtros, límite y cursor', () => {
|
|
117
|
+
const query = { status: TransferNoteStatusEnum.SENT, isoWeek: '2026-W43', limit: '50', nextToken: 'abc' };
|
|
118
|
+
expect(errorsOf(ListTransferNotesQuery, query)).toEqual([]);
|
|
119
|
+
expect(errorsOf(ListRetailerTransferNotesQuery, query)).toEqual([]);
|
|
120
|
+
expect(
|
|
121
|
+
errorsOf(ListTransferNotePoolQuery, {
|
|
122
|
+
pairKey: 'p-1',
|
|
123
|
+
status: TransferNoteItemStatusEnum.POOLED,
|
|
124
|
+
concept: TransferNoteConceptEnum.INSTALLMENT_COLLECTION,
|
|
125
|
+
from: '2026-10-19',
|
|
126
|
+
to: '2026-10-25',
|
|
127
|
+
}),
|
|
128
|
+
).toEqual([]);
|
|
129
|
+
expect(errorsOf(ListTransferNoteItemsQuery, { limit: '10' })).toEqual([]);
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it('rechaza estado desconocido y límite fuera de rango', () => {
|
|
133
|
+
expect(errorsOf(ListTransferNotesQuery, { status: 'PAID', limit: '500' })).toEqual(expect.arrayContaining(['status', 'limit']));
|
|
134
|
+
expect(errorsOf(ListTransferNotePoolQuery, { status: TransferNoteStatusEnum.ISSUED, from: 'ayer' })).toEqual(
|
|
135
|
+
expect.arrayContaining(['status', 'from']),
|
|
136
|
+
);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
export declare class BankAccountMCSendTransferRequest {
|
|
2
2
|
transactionNumber: string;
|
|
3
3
|
amount: number;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/** Intención por email/teléfono: obligatorios salvo que venga beneficiaryExternalAccountId. */
|
|
5
|
+
beneficiaryEmail?: string;
|
|
6
|
+
beneficiaryPhoneNumber?: string;
|
|
6
7
|
beneficiaryName?: string;
|
|
7
8
|
beneficiaryLastName?: string;
|
|
8
9
|
concept?: string;
|
|
9
10
|
externalAccountId?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Push directo a una tarjeta del mismo programa (CARD_PUSH_FUNDS): cd_ de la tarjeta del
|
|
13
|
+
* beneficiario, usuario de Fiado. Si viene, CP acredita en la misma llamada sin intención.
|
|
14
|
+
*/
|
|
15
|
+
beneficiaryExternalAccountId?: string;
|
|
10
16
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { TransactionStatusEnum } from "../../transaction";
|
|
2
2
|
export declare class BankAccountMCSendTransferResponse {
|
|
3
|
+
/** Ids tx_ de los movimientos contables en CP, unidos por "|". */
|
|
3
4
|
externalTransactionId: string;
|
|
5
|
+
/** Id mt_ de la network transfer en CP: sirve para consultar, cancelar o auditar el envío. */
|
|
6
|
+
externalTransferId?: string;
|
|
4
7
|
transactionStatus: TransactionStatusEnum;
|
|
5
8
|
transactionNumber: string;
|
|
6
9
|
}
|
package/bin/index.d.ts
CHANGED
|
@@ -134,3 +134,5 @@ export * as Meetings from './meetings';
|
|
|
134
134
|
export * as LoanRetailAudit from './loanRetailAudit';
|
|
135
135
|
export * as TaskManager from './task-manager-business';
|
|
136
136
|
export * as CustomerMessages from './customerMessages';
|
|
137
|
+
export * as TransferNote from './transferNote';
|
|
138
|
+
export * as Reconciliation from './reconciliation';
|
package/bin/index.js
CHANGED
|
@@ -38,7 +38,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.FiadoIncFavorite = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.MessageMoments = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.UserTags = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.AppContent = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.Biometrics = exports.MetamapConnector = exports.Account = exports.Crypto = void 0;
|
|
40
40
|
exports.RetailCatalog = exports.RetailCommission = exports.RetailOrg = exports.EmailVerification = exports.NetworkConnector = exports.Modelias = exports.TotpSecurity = exports.Passport = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.WhatsappConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.GsfConnector = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.UsMarketGrowthBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = exports.AccountIssuanceBusiness = exports.AppSelectionData = exports.Device = exports.Observations = exports.IssuanceBusiness = exports.Blacklist = void 0;
|
|
41
|
-
exports.CustomerMessages = exports.TaskManager = exports.LoanRetailAudit = exports.Meetings = exports.Rules = exports.PdfRender = exports.DatalakeReports = exports.RewardsEligibility = exports.Rewards = exports.DynamicForm = exports.FileStorage = exports.MoneyTransfer = exports.RetailLoan = exports.Membership = exports.WebhookBusiness = exports.PeopleBusiness = exports.UserConfirmations = exports.Collection = exports.Shipping = exports.PhoneSales = exports.Onboarding = exports.Kyc = exports.LoanScoring = exports.LoanCredit = exports.LoanCollectorAssignment = exports.LoanOfferings = exports.Shortlink = exports.LoanConfig = exports.DatalakeQuery = exports.RetailIntegration = exports.RetailPromotions = exports.RetailWizard = exports.RetailCustomer = exports.RetailCards = void 0;
|
|
41
|
+
exports.Reconciliation = exports.TransferNote = exports.CustomerMessages = exports.TaskManager = exports.LoanRetailAudit = exports.Meetings = exports.Rules = exports.PdfRender = exports.DatalakeReports = exports.RewardsEligibility = exports.Rewards = exports.DynamicForm = exports.FileStorage = exports.MoneyTransfer = exports.RetailLoan = exports.Membership = exports.WebhookBusiness = exports.PeopleBusiness = exports.UserConfirmations = exports.Collection = exports.Shipping = exports.PhoneSales = exports.Onboarding = exports.Kyc = exports.LoanScoring = exports.LoanCredit = exports.LoanCollectorAssignment = exports.LoanOfferings = exports.Shortlink = exports.LoanConfig = exports.DatalakeQuery = exports.RetailIntegration = exports.RetailPromotions = exports.RetailWizard = exports.RetailCustomer = exports.RetailCards = void 0;
|
|
42
42
|
exports.Crypto = __importStar(require("./crypto"));
|
|
43
43
|
exports.Account = __importStar(require("./account"));
|
|
44
44
|
exports.MetamapConnector = __importStar(require("./metamapConnector"));
|
|
@@ -263,3 +263,9 @@ exports.LoanRetailAudit = __importStar(require("./loanRetailAudit"));
|
|
|
263
263
|
exports.TaskManager = __importStar(require("./task-manager-business"));
|
|
264
264
|
// CustomerMessages: historial de mensajes del cliente por venta o crédito, contador de cobranza y envío manual.
|
|
265
265
|
exports.CustomerMessages = __importStar(require("./customerMessages"));
|
|
266
|
+
// TransferNote: contrato de transfer-note-business (notas de transferencia entre partes de un tenant):
|
|
267
|
+
// endpoints públicos, rutas de retailer, espejo privado con author, ajustes y registros de sus feeds.
|
|
268
|
+
exports.TransferNote = __importStar(require("./transferNote"));
|
|
269
|
+
// Reconciliation: contrato de reconciliation-engine-business (definiciones, corridas, partidas y resoluciones),
|
|
270
|
+
// su espejo privado con author, el feed genérico que implementa cada dueño y sus eventos.
|
|
271
|
+
exports.Reconciliation = __importStar(require("./reconciliation"));
|
|
@@ -35,5 +35,16 @@ export declare enum AuditTrailActionEnum {
|
|
|
35
35
|
ADJUST = "ADJUST",
|
|
36
36
|
PAUSE = "PAUSE",
|
|
37
37
|
RESUME = "RESUME",
|
|
38
|
-
EXPIRE = "EXPIRE"
|
|
38
|
+
EXPIRE = "EXPIRE",
|
|
39
|
+
TRANSFER_NOTE_ISSUE = "TRANSFER_NOTE_ISSUE",
|
|
40
|
+
TRANSFER_NOTE_SPEI_CAPTURE = "TRANSFER_NOTE_SPEI_CAPTURE",
|
|
41
|
+
TRANSFER_NOTE_SPEI_REVERT = "TRANSFER_NOTE_SPEI_REVERT",
|
|
42
|
+
TRANSFER_NOTE_RECEPTION_CONFIRM = "TRANSFER_NOTE_RECEPTION_CONFIRM",
|
|
43
|
+
TRANSFER_NOTE_SETTLEMENT_CONFIRM = "TRANSFER_NOTE_SETTLEMENT_CONFIRM",
|
|
44
|
+
TRANSFER_NOTE_CANCEL = "TRANSFER_NOTE_CANCEL",
|
|
45
|
+
TRANSFER_NOTE_DISPUTE = "TRANSFER_NOTE_DISPUTE",
|
|
46
|
+
TRANSFER_NOTE_DISPUTE_RESOLVE = "TRANSFER_NOTE_DISPUTE_RESOLVE",
|
|
47
|
+
RECONCILIATION_ITEM_RESOLVE = "RECONCILIATION_ITEM_RESOLVE",
|
|
48
|
+
RECONCILIATION_ITEM_REACTIVATE = "RECONCILIATION_ITEM_REACTIVATE",
|
|
49
|
+
RECONCILIATION_ITEM_NOTE = "RECONCILIATION_ITEM_NOTE"
|
|
39
50
|
}
|
|
@@ -40,4 +40,16 @@ var AuditTrailActionEnum;
|
|
|
40
40
|
AuditTrailActionEnum["PAUSE"] = "PAUSE";
|
|
41
41
|
AuditTrailActionEnum["RESUME"] = "RESUME";
|
|
42
42
|
AuditTrailActionEnum["EXPIRE"] = "EXPIRE";
|
|
43
|
+
// M8: la configuración de notas y de definiciones reusa UPDATE.
|
|
44
|
+
AuditTrailActionEnum["TRANSFER_NOTE_ISSUE"] = "TRANSFER_NOTE_ISSUE";
|
|
45
|
+
AuditTrailActionEnum["TRANSFER_NOTE_SPEI_CAPTURE"] = "TRANSFER_NOTE_SPEI_CAPTURE";
|
|
46
|
+
AuditTrailActionEnum["TRANSFER_NOTE_SPEI_REVERT"] = "TRANSFER_NOTE_SPEI_REVERT";
|
|
47
|
+
AuditTrailActionEnum["TRANSFER_NOTE_RECEPTION_CONFIRM"] = "TRANSFER_NOTE_RECEPTION_CONFIRM";
|
|
48
|
+
AuditTrailActionEnum["TRANSFER_NOTE_SETTLEMENT_CONFIRM"] = "TRANSFER_NOTE_SETTLEMENT_CONFIRM";
|
|
49
|
+
AuditTrailActionEnum["TRANSFER_NOTE_CANCEL"] = "TRANSFER_NOTE_CANCEL";
|
|
50
|
+
AuditTrailActionEnum["TRANSFER_NOTE_DISPUTE"] = "TRANSFER_NOTE_DISPUTE";
|
|
51
|
+
AuditTrailActionEnum["TRANSFER_NOTE_DISPUTE_RESOLVE"] = "TRANSFER_NOTE_DISPUTE_RESOLVE";
|
|
52
|
+
AuditTrailActionEnum["RECONCILIATION_ITEM_RESOLVE"] = "RECONCILIATION_ITEM_RESOLVE";
|
|
53
|
+
AuditTrailActionEnum["RECONCILIATION_ITEM_REACTIVATE"] = "RECONCILIATION_ITEM_REACTIVATE";
|
|
54
|
+
AuditTrailActionEnum["RECONCILIATION_ITEM_NOTE"] = "RECONCILIATION_ITEM_NOTE";
|
|
43
55
|
})(AuditTrailActionEnum || (exports.AuditTrailActionEnum = AuditTrailActionEnum = {}));
|
|
@@ -8,5 +8,9 @@ export declare enum LoanAuditEntityTypeEnum {
|
|
|
8
8
|
SEGMENT = "SEGMENT",
|
|
9
9
|
LOAN_PARAMETER = "LoanParameter",
|
|
10
10
|
LOAN_ASSIGNMENT_RULE = "LoanAssignmentRule",
|
|
11
|
-
LOAN_COLLECTOR_ASSIGNMENT = "LoanCollectorAssignment"
|
|
11
|
+
LOAN_COLLECTOR_ASSIGNMENT = "LoanCollectorAssignment",
|
|
12
|
+
TRANSFER_NOTE = "TRANSFER_NOTE",
|
|
13
|
+
TRANSFER_NOTE_CONFIG = "TRANSFER_NOTE_CONFIG",
|
|
14
|
+
RECONCILIATION_DEFINITION = "RECONCILIATION_DEFINITION",
|
|
15
|
+
RECONCILIATION_ITEM = "RECONCILIATION_ITEM"
|
|
12
16
|
}
|
|
@@ -13,4 +13,8 @@ var LoanAuditEntityTypeEnum;
|
|
|
13
13
|
LoanAuditEntityTypeEnum["LOAN_PARAMETER"] = "LoanParameter";
|
|
14
14
|
LoanAuditEntityTypeEnum["LOAN_ASSIGNMENT_RULE"] = "LoanAssignmentRule";
|
|
15
15
|
LoanAuditEntityTypeEnum["LOAN_COLLECTOR_ASSIGNMENT"] = "LoanCollectorAssignment";
|
|
16
|
+
LoanAuditEntityTypeEnum["TRANSFER_NOTE"] = "TRANSFER_NOTE";
|
|
17
|
+
LoanAuditEntityTypeEnum["TRANSFER_NOTE_CONFIG"] = "TRANSFER_NOTE_CONFIG";
|
|
18
|
+
LoanAuditEntityTypeEnum["RECONCILIATION_DEFINITION"] = "RECONCILIATION_DEFINITION";
|
|
19
|
+
LoanAuditEntityTypeEnum["RECONCILIATION_ITEM"] = "RECONCILIATION_ITEM";
|
|
16
20
|
})(LoanAuditEntityTypeEnum || (exports.LoanAuditEntityTypeEnum = LoanAuditEntityTypeEnum = {}));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ReconciliationErrorCodeEnum as C } from '../enums/ReconciliationErrorCodeEnum';
|
|
2
|
+
import { ReconciliationFeedErrorCodeEnum } from '../enums/ReconciliationFeedErrorCodeEnum';
|
|
3
|
+
/** Status HTTP de cada code: 404 no existe · 409 conflicto de estado · 422 regla de negocio · 502 falló el dueño del dinero. */
|
|
4
|
+
export declare const RECONCILIATION_ERROR_HTTP_STATUS: Readonly<Record<C, 404 | 409 | 422 | 502>>;
|
|
5
|
+
/** Status HTTP de los codes del feed genérico. */
|
|
6
|
+
export declare const RECONCILIATION_FEED_ERROR_HTTP_STATUS: Readonly<Record<ReconciliationFeedErrorCodeEnum, 404>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RECONCILIATION_FEED_ERROR_HTTP_STATUS = exports.RECONCILIATION_ERROR_HTTP_STATUS = void 0;
|
|
4
|
+
const ReconciliationErrorCodeEnum_1 = require("../enums/ReconciliationErrorCodeEnum");
|
|
5
|
+
const ReconciliationFeedErrorCodeEnum_1 = require("../enums/ReconciliationFeedErrorCodeEnum");
|
|
6
|
+
/** Status HTTP de cada code: 404 no existe · 409 conflicto de estado · 422 regla de negocio · 502 falló el dueño del dinero. */
|
|
7
|
+
exports.RECONCILIATION_ERROR_HTTP_STATUS = {
|
|
8
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.DEFINITION_NOT_FOUND]: 404,
|
|
9
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.RUN_IN_PROGRESS]: 409,
|
|
10
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.ITEM_NOT_FOUND]: 404,
|
|
11
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.ITEM_ALREADY_RESOLVED]: 409,
|
|
12
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.ADJUSTMENT_IN_PROGRESS]: 409,
|
|
13
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.ADJUSTMENT_UNDER_EXECUTED]: 422,
|
|
14
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.ADJUSTMENT_NOT_ALLOWED]: 422,
|
|
15
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.ADJUSTMENT_REJECTED]: 422,
|
|
16
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.ADJUSTMENT_UNAVAILABLE]: 502,
|
|
17
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.ITEM_ADJUSTED]: 409,
|
|
18
|
+
[ReconciliationErrorCodeEnum_1.ReconciliationErrorCodeEnum.AUTHOR_NOT_ALLOWED]: 422,
|
|
19
|
+
};
|
|
20
|
+
/** Status HTTP de los codes del feed genérico. */
|
|
21
|
+
exports.RECONCILIATION_FEED_ERROR_HTTP_STATUS = {
|
|
22
|
+
[ReconciliationFeedErrorCodeEnum_1.ReconciliationFeedErrorCodeEnum.FEED_RECORD_NOT_FOUND]: 404,
|
|
23
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Periodo de una corrida: día `YYYY-MM-DD`, semana ISO `YYYY-Www` o mes `YYYY-MM`. */
|
|
2
|
+
export declare const RECONCILIATION_PERIOD_KEY_PATTERN: RegExp;
|
|
3
|
+
/** Mes `YYYY-MM`. */
|
|
4
|
+
export declare const RECONCILIATION_MONTH_PATTERN: RegExp;
|
|
5
|
+
/** Largo mínimo de una nota de investigación. */
|
|
6
|
+
export declare const RECONCILIATION_MIN_NOTE_LENGTH = 10;
|
|
7
|
+
/** Registros por página de un feed de dueño. */
|
|
8
|
+
export declare const RECONCILIATION_FEED_PAGE_SIZE = 500;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RECONCILIATION_FEED_PAGE_SIZE = exports.RECONCILIATION_MIN_NOTE_LENGTH = exports.RECONCILIATION_MONTH_PATTERN = exports.RECONCILIATION_PERIOD_KEY_PATTERN = void 0;
|
|
4
|
+
/** Periodo de una corrida: día `YYYY-MM-DD`, semana ISO `YYYY-Www` o mes `YYYY-MM`. */
|
|
5
|
+
exports.RECONCILIATION_PERIOD_KEY_PATTERN = /^\d{4}-((0[1-9]|1[0-2])(-(0[1-9]|[12]\d|3[01]))?|W(0[1-9]|[1-4]\d|5[0-3]))$/;
|
|
6
|
+
/** Mes `YYYY-MM`. */
|
|
7
|
+
exports.RECONCILIATION_MONTH_PATTERN = /^\d{4}-(0[1-9]|1[0-2])$/;
|
|
8
|
+
/** Largo mínimo de una nota de investigación. */
|
|
9
|
+
exports.RECONCILIATION_MIN_NOTE_LENGTH = 10;
|
|
10
|
+
/** Registros por página de un feed de dueño. */
|
|
11
|
+
exports.RECONCILIATION_FEED_PAGE_SIZE = 500;
|