Fix build errors: exclude test files, fix exports, update currency test types
This commit is contained in:
83
packages/types/src/audit.d.ts
vendored
Normal file
83
packages/types/src/audit.d.ts
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
/**
|
||||
* Audit logging and compliance reporting types
|
||||
*/
|
||||
export interface AuditLog {
|
||||
id: string;
|
||||
timestamp: Date;
|
||||
transactionId?: string;
|
||||
batchId?: string;
|
||||
ruleSetVersion: string;
|
||||
inputs: Record<string, unknown>;
|
||||
outputs: Record<string, unknown>;
|
||||
decision: 'Allow' | 'Hold' | 'Escalate';
|
||||
severity: 'Info' | 'Warning' | 'Critical';
|
||||
rationale: string;
|
||||
userId?: string;
|
||||
ipAddress?: string;
|
||||
userAgent?: string;
|
||||
action: string;
|
||||
metadata?: Record<string, unknown>;
|
||||
}
|
||||
export interface RuleVersion {
|
||||
version: string;
|
||||
effectiveDate: Date;
|
||||
approvalAuthority: string;
|
||||
deprecated: boolean;
|
||||
deprecatedDate?: Date;
|
||||
description?: string;
|
||||
changes?: string[];
|
||||
}
|
||||
export interface BCBReport {
|
||||
reportId: string;
|
||||
reportType: 'transaction' | 'batch' | 'periodic';
|
||||
generatedAt: Date;
|
||||
periodStart?: Date;
|
||||
periodEnd?: Date;
|
||||
transactions: BCBReportTransaction[];
|
||||
summary: BCBReportSummary;
|
||||
format: 'json' | 'csv';
|
||||
data: string;
|
||||
}
|
||||
export interface BCBReportTransaction {
|
||||
transactionId: string;
|
||||
executionDate: Date;
|
||||
direction: 'inbound' | 'outbound';
|
||||
amount: number;
|
||||
currency: string;
|
||||
usdEquivalent: number;
|
||||
orderingCustomer: {
|
||||
name: string;
|
||||
taxId?: string;
|
||||
country: string;
|
||||
};
|
||||
beneficiary: {
|
||||
name: string;
|
||||
taxId?: string;
|
||||
country: string;
|
||||
accountNumber?: string;
|
||||
};
|
||||
purposeOfPayment?: string;
|
||||
fxContractId?: string;
|
||||
iofAmount?: number;
|
||||
reportingRequired: boolean;
|
||||
}
|
||||
export interface BCBReportSummary {
|
||||
totalTransactions: number;
|
||||
totalAmount: number;
|
||||
totalUsdEquivalent: number;
|
||||
inboundCount: number;
|
||||
inboundAmount: number;
|
||||
outboundCount: number;
|
||||
outboundAmount: number;
|
||||
reportingRequiredCount: number;
|
||||
totalIOF: number;
|
||||
}
|
||||
export interface RetentionPolicy {
|
||||
policyId: string;
|
||||
dataType: 'audit_log' | 'transaction' | 'report' | 'all';
|
||||
retentionPeriodDays: number;
|
||||
archivalAfterDays?: number;
|
||||
autoDelete: boolean;
|
||||
effectiveDate: Date;
|
||||
}
|
||||
//# sourceMappingURL=audit.d.ts.map
|
||||
1
packages/types/src/audit.d.ts.map
Normal file
1
packages/types/src/audit.d.ts.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["audit.ts"],"names":[],"mappings":"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"}
|
||||
5
packages/types/src/audit.js
Normal file
5
packages/types/src/audit.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* Audit logging and compliance reporting types
|
||||
*/
|
||||
export {};
|
||||
//# sourceMappingURL=audit.js.map
|
||||
1
packages/types/src/audit.js.map
Normal file
1
packages/types/src/audit.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"audit.js","sourceRoot":"","sources":["audit.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
||||
22
packages/types/src/eo-uplift.d.ts
vendored
Normal file
22
packages/types/src/eo-uplift.d.ts
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Errors & Omissions (E&O) Uplift types
|
||||
*/
|
||||
export interface EOUplift {
|
||||
baseAmount: number;
|
||||
upliftRate: number;
|
||||
upliftAmount: number;
|
||||
adjustedExposure: number;
|
||||
treatment: 'off_balance_sheet';
|
||||
}
|
||||
export interface TransactionEOUplift extends EOUplift {
|
||||
transactionId: string;
|
||||
currency: string;
|
||||
usdEquivalent?: number;
|
||||
}
|
||||
export interface BatchEOUplift extends EOUplift {
|
||||
batchId: string;
|
||||
transactionCount: number;
|
||||
currency: string;
|
||||
usdEquivalent?: number;
|
||||
}
|
||||
//# sourceMappingURL=eo-uplift.d.ts.map
|
||||
1
packages/types/src/eo-uplift.d.ts.map
Normal file
1
packages/types/src/eo-uplift.d.ts.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"eo-uplift.d.ts","sourceRoot":"","sources":["eo-uplift.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
||||
5
packages/types/src/eo-uplift.js
Normal file
5
packages/types/src/eo-uplift.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* Errors & Omissions (E&O) Uplift types
|
||||
*/
|
||||
export {};
|
||||
//# sourceMappingURL=eo-uplift.js.map
|
||||
1
packages/types/src/eo-uplift.js.map
Normal file
1
packages/types/src/eo-uplift.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"eo-uplift.js","sourceRoot":"","sources":["eo-uplift.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
||||
31
packages/types/src/fx-contract.d.ts
vendored
Normal file
31
packages/types/src/fx-contract.d.ts
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* FX Contract (Contrato de Câmbio) types
|
||||
*/
|
||||
export interface FXContract {
|
||||
contractId: string;
|
||||
type: 'inbound' | 'outbound';
|
||||
counterparty: string;
|
||||
counterpartyTaxId?: string;
|
||||
amount: number;
|
||||
currency: string;
|
||||
effectiveDate: Date;
|
||||
expiryDate: Date;
|
||||
remainingAmount: number;
|
||||
usedAmount: number;
|
||||
status: 'active' | 'expired' | 'exhausted' | 'cancelled';
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
metadata?: Record<string, unknown>;
|
||||
}
|
||||
export interface FXContractValidation {
|
||||
contractId: string;
|
||||
contractExists: boolean;
|
||||
contractValid: boolean;
|
||||
contractActive: boolean;
|
||||
amountWithinLimit: boolean;
|
||||
transactionAmount: number;
|
||||
contractRemainingAmount: number;
|
||||
errors: string[];
|
||||
warnings: string[];
|
||||
}
|
||||
//# sourceMappingURL=fx-contract.d.ts.map
|
||||
1
packages/types/src/fx-contract.d.ts.map
Normal file
1
packages/types/src/fx-contract.d.ts.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"fx-contract.d.ts","sourceRoot":"","sources":["fx-contract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,IAAI,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;IACzD,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB"}
|
||||
5
packages/types/src/fx-contract.js
Normal file
5
packages/types/src/fx-contract.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* FX Contract (Contrato de Câmbio) types
|
||||
*/
|
||||
export {};
|
||||
//# sourceMappingURL=fx-contract.js.map
|
||||
1
packages/types/src/fx-contract.js.map
Normal file
1
packages/types/src/fx-contract.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"fx-contract.js","sourceRoot":"","sources":["fx-contract.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
||||
14
packages/types/src/index.d.ts
vendored
Normal file
14
packages/types/src/index.d.ts
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* @brazil-swift-ops/types
|
||||
*
|
||||
* Shared TypeScript types and interfaces for the Brazil SWIFT Operations Platform
|
||||
*/
|
||||
export * from './transaction';
|
||||
export * from './iso20022';
|
||||
export * from './regulatory';
|
||||
export * from './treasury';
|
||||
export * from './audit';
|
||||
export * from './risk';
|
||||
export * from './fx-contract';
|
||||
export * from './eo-uplift';
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
1
packages/types/src/index.d.ts.map
Normal file
1
packages/types/src/index.d.ts.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
||||
14
packages/types/src/index.js
Normal file
14
packages/types/src/index.js
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* @brazil-swift-ops/types
|
||||
*
|
||||
* Shared TypeScript types and interfaces for the Brazil SWIFT Operations Platform
|
||||
*/
|
||||
export * from './transaction';
|
||||
export * from './iso20022';
|
||||
export * from './regulatory';
|
||||
export * from './treasury';
|
||||
export * from './audit';
|
||||
export * from './risk';
|
||||
export * from './fx-contract';
|
||||
export * from './eo-uplift';
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
packages/types/src/index.js.map
Normal file
1
packages/types/src/index.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
||||
111
packages/types/src/iso20022.d.ts
vendored
Normal file
111
packages/types/src/iso20022.d.ts
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
/**
|
||||
* ISO 20022 message types and structures
|
||||
*/
|
||||
export type ISO20022MessageType = 'pacs.008' | 'pacs.009' | 'pain.001';
|
||||
export type ISO20022Version = string;
|
||||
export interface ISO20022Message {
|
||||
messageId: string;
|
||||
messageType: ISO20022MessageType;
|
||||
version: ISO20022Version;
|
||||
creationDateTime: Date;
|
||||
groupHeader: GroupHeader;
|
||||
paymentInformation: PaymentInformation[];
|
||||
rawMessage?: Record<string, unknown>;
|
||||
}
|
||||
export interface GroupHeader {
|
||||
messageIdentification: string;
|
||||
creationDateTime: Date;
|
||||
numberOfTransactions: number;
|
||||
controlSum?: number;
|
||||
initiatingParty: PartyIdentification;
|
||||
}
|
||||
export interface PartyIdentification {
|
||||
name?: string;
|
||||
postalAddress?: PostalAddress;
|
||||
identification?: PartyIdentificationDetails;
|
||||
}
|
||||
export interface PostalAddress {
|
||||
streetName?: string;
|
||||
buildingNumber?: string;
|
||||
postCode?: string;
|
||||
townName?: string;
|
||||
country: string;
|
||||
}
|
||||
export interface PartyIdentificationDetails {
|
||||
organisationIdentification?: string;
|
||||
privateIdentification?: string;
|
||||
}
|
||||
export interface PaymentInformation {
|
||||
paymentInformationIdentification: string;
|
||||
paymentMethod: string;
|
||||
requestedExecutionDate: Date;
|
||||
debtor: PartyIdentification;
|
||||
debtorAccount: CashAccount;
|
||||
debtorAgent?: FinancialInstitutionIdentification;
|
||||
creditTransferTransactionInformation: CreditTransferTransactionInformation[];
|
||||
}
|
||||
export interface CashAccount {
|
||||
identification: string;
|
||||
name?: string;
|
||||
currency?: string;
|
||||
type?: string;
|
||||
iban?: string;
|
||||
}
|
||||
export interface FinancialInstitutionIdentification {
|
||||
bic?: string;
|
||||
name?: string;
|
||||
postalAddress?: PostalAddress;
|
||||
}
|
||||
export interface CreditTransferTransactionInformation {
|
||||
paymentIdentification: PaymentIdentification;
|
||||
amount: Amount;
|
||||
chargeBearer?: string;
|
||||
creditor: PartyIdentification;
|
||||
creditorAccount: CashAccount;
|
||||
creditorAgent?: FinancialInstitutionIdentification;
|
||||
remittanceInformation?: RemittanceInformation;
|
||||
purpose?: string;
|
||||
}
|
||||
export interface PaymentIdentification {
|
||||
instructionId?: string;
|
||||
endToEndId: string;
|
||||
transactionId?: string;
|
||||
}
|
||||
export interface Amount {
|
||||
currency: string;
|
||||
value: number;
|
||||
}
|
||||
export interface RemittanceInformation {
|
||||
unstructured?: string;
|
||||
structured?: Record<string, unknown>;
|
||||
}
|
||||
export interface Pacs008Message extends ISO20022Message {
|
||||
messageType: 'pacs.008';
|
||||
creditTransferTransaction: CreditTransferTransaction[];
|
||||
}
|
||||
export interface CreditTransferTransaction {
|
||||
paymentIdentification: PaymentIdentification;
|
||||
amount: Amount;
|
||||
chargeBearer?: string;
|
||||
debtor: PartyIdentification;
|
||||
debtorAccount: CashAccount;
|
||||
debtorAgent?: FinancialInstitutionIdentification;
|
||||
creditor: PartyIdentification;
|
||||
creditorAccount: CashAccount;
|
||||
creditorAgent?: FinancialInstitutionIdentification;
|
||||
remittanceInformation?: RemittanceInformation;
|
||||
purpose?: string;
|
||||
}
|
||||
export interface Pacs009Message extends ISO20022Message {
|
||||
messageType: 'pacs.009';
|
||||
creditTransferTransaction: CreditTransferTransaction[];
|
||||
}
|
||||
export interface Pain001Message extends ISO20022Message {
|
||||
messageType: 'pain.001';
|
||||
customerCreditTransferInitiation: CustomerCreditTransferInitiation;
|
||||
}
|
||||
export interface CustomerCreditTransferInitiation {
|
||||
groupHeader: GroupHeader;
|
||||
paymentInformation: PaymentInformation[];
|
||||
}
|
||||
//# sourceMappingURL=iso20022.d.ts.map
|
||||
1
packages/types/src/iso20022.d.ts.map
Normal file
1
packages/types/src/iso20022.d.ts.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"iso20022.d.ts","sourceRoot":"","sources":["iso20022.ts"],"names":[],"mappings":"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"}
|
||||
5
packages/types/src/iso20022.js
Normal file
5
packages/types/src/iso20022.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* ISO 20022 message types and structures
|
||||
*/
|
||||
export {};
|
||||
//# sourceMappingURL=iso20022.js.map
|
||||
1
packages/types/src/iso20022.js.map
Normal file
1
packages/types/src/iso20022.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"iso20022.js","sourceRoot":"","sources":["iso20022.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
||||
96
packages/types/src/regulatory.d.ts
vendored
Normal file
96
packages/types/src/regulatory.d.ts
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
/**
|
||||
* Brazil regulatory rule evaluation types
|
||||
*/
|
||||
export type RuleSeverity = 'Info' | 'Warning' | 'Critical';
|
||||
export type RuleDecision = 'Allow' | 'Hold' | 'Escalate';
|
||||
export interface RuleResult {
|
||||
ruleId: string;
|
||||
ruleName: string;
|
||||
passed: boolean;
|
||||
severity: RuleSeverity;
|
||||
decision: RuleDecision;
|
||||
rationale: string;
|
||||
details?: Record<string, unknown>;
|
||||
}
|
||||
export interface BrazilRegulatoryResult {
|
||||
transactionId: string;
|
||||
timestamp: Date;
|
||||
ruleSetVersion: string;
|
||||
overallDecision: RuleDecision;
|
||||
overallSeverity: RuleSeverity;
|
||||
rules: RuleResult[];
|
||||
thresholdCheck?: ThresholdCheckResult;
|
||||
documentationCheck?: DocumentationCheckResult;
|
||||
fxContractCheck?: FXContractCheckResult;
|
||||
iofCalculation?: IOFCalculationResult;
|
||||
amlCheck?: AMLCheckResult;
|
||||
}
|
||||
export interface ThresholdCheckResult {
|
||||
passed: boolean;
|
||||
transactionAmount: number;
|
||||
currency: string;
|
||||
usdEquivalent: number;
|
||||
threshold: number;
|
||||
requiresReporting: boolean;
|
||||
rationale: string;
|
||||
}
|
||||
export interface DocumentationCheckResult {
|
||||
passed: boolean;
|
||||
hasOrderingCustomerName: boolean;
|
||||
hasOrderingCustomerAddress: boolean;
|
||||
hasOrderingCustomerTaxId: boolean;
|
||||
hasBeneficiaryName: boolean;
|
||||
hasBeneficiaryAccount: boolean;
|
||||
hasBeneficiaryTaxId: boolean;
|
||||
hasPurposeOfPayment: boolean;
|
||||
missingFields: string[];
|
||||
rationale: string;
|
||||
}
|
||||
export interface FXContractCheckResult {
|
||||
passed: boolean;
|
||||
fxContractId?: string;
|
||||
contractExists: boolean;
|
||||
contractActive?: boolean;
|
||||
contractType?: 'inbound' | 'outbound';
|
||||
contractAmount: number;
|
||||
contractRemainingAmount: number;
|
||||
transactionAmount: number;
|
||||
amountWithinLimit: boolean;
|
||||
rationale: string;
|
||||
}
|
||||
export interface IOFCalculationResult {
|
||||
direction: 'inbound' | 'outbound';
|
||||
transactionAmount: number;
|
||||
currency: string;
|
||||
brlAmount: number;
|
||||
iofRate: number;
|
||||
iofAmount: number;
|
||||
netAmount: number;
|
||||
effectiveDate: Date;
|
||||
rateVersion: string;
|
||||
}
|
||||
export interface AMLCheckResult {
|
||||
passed: boolean;
|
||||
singleTransactionCheck: SingleTransactionAMLResult;
|
||||
structuringCheck?: StructuringCheckResult;
|
||||
overallRiskLevel: 'Low' | 'Medium' | 'High';
|
||||
rationale: string;
|
||||
}
|
||||
export interface SingleTransactionAMLResult {
|
||||
passed: boolean;
|
||||
transactionAmount: number;
|
||||
usdEquivalent: number;
|
||||
threshold: number;
|
||||
requiresEnhancedReview: boolean;
|
||||
riskLevel: 'Low' | 'Medium' | 'High';
|
||||
}
|
||||
export interface StructuringCheckResult {
|
||||
detected: boolean;
|
||||
windowDays: number;
|
||||
transactionCount: number;
|
||||
totalAmount: number;
|
||||
totalUsdEquivalent: number;
|
||||
individualAmounts: number[];
|
||||
rationale: string;
|
||||
}
|
||||
//# sourceMappingURL=regulatory.d.ts.map
|
||||
1
packages/types/src/regulatory.d.ts.map
Normal file
1
packages/types/src/regulatory.d.ts.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"regulatory.d.ts","sourceRoot":"","sources":["regulatory.ts"],"names":[],"mappings":"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"}
|
||||
5
packages/types/src/regulatory.js
Normal file
5
packages/types/src/regulatory.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* Brazil regulatory rule evaluation types
|
||||
*/
|
||||
export {};
|
||||
//# sourceMappingURL=regulatory.js.map
|
||||
1
packages/types/src/regulatory.js.map
Normal file
1
packages/types/src/regulatory.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"regulatory.js","sourceRoot":"","sources":["regulatory.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
||||
79
packages/types/src/risk.d.ts
vendored
Normal file
79
packages/types/src/risk.d.ts
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
/**
|
||||
* Risk, capital, and liquidity modeling types
|
||||
*/
|
||||
export interface ReserveImpact {
|
||||
transactionId: string;
|
||||
transactionAmount: number;
|
||||
currency: string;
|
||||
reserveRatio: number;
|
||||
reserveImpact: number;
|
||||
availableLiquidityBefore: number;
|
||||
availableLiquidityAfter: number;
|
||||
requiredReserves: number;
|
||||
complianceCheck: boolean;
|
||||
rationale: string;
|
||||
}
|
||||
export interface CapitalImpact {
|
||||
transactionId: string;
|
||||
transactionAmount: number;
|
||||
currency: string;
|
||||
riskWeight: number;
|
||||
riskWeightedAssets: number;
|
||||
capitalRatio: number;
|
||||
capitalConsumed: number;
|
||||
capitalBufferBefore: number;
|
||||
capitalBufferAfter: number;
|
||||
complianceCheck: boolean;
|
||||
rationale: string;
|
||||
}
|
||||
export interface LCRImpact {
|
||||
transactionId: string;
|
||||
transactionAmount: number;
|
||||
currency: string;
|
||||
runoffFactor: number;
|
||||
outflowStress: number;
|
||||
hqlaBefore: number;
|
||||
netOutflowsBefore: number;
|
||||
netOutflowsAfter: number;
|
||||
lcrBefore: number;
|
||||
lcrAfter: number;
|
||||
minimumLCR: number;
|
||||
complianceCheck: boolean;
|
||||
rationale: string;
|
||||
}
|
||||
export interface RiskWeightTable {
|
||||
id: string;
|
||||
version: string;
|
||||
effectiveDate: Date;
|
||||
weights: RiskWeight[];
|
||||
}
|
||||
export interface RiskWeight {
|
||||
category: string;
|
||||
description: string;
|
||||
weight: number;
|
||||
minWeight?: number;
|
||||
maxWeight?: number;
|
||||
}
|
||||
export interface EscalationState {
|
||||
transactionId: string;
|
||||
currentLevel: EscalationLevel;
|
||||
previousLevel?: EscalationLevel;
|
||||
reason: string;
|
||||
escalatedAt: Date;
|
||||
escalatedBy?: string;
|
||||
approvalRequired?: boolean;
|
||||
approvedBy?: string;
|
||||
approvedAt?: Date;
|
||||
}
|
||||
export type EscalationLevel = 'Allow' | 'Hold' | 'ComplianceReview' | 'TreasuryApproval' | 'ExceptionApproval';
|
||||
export interface StressTestResult {
|
||||
transactionId: string;
|
||||
reserveImpact: ReserveImpact;
|
||||
capitalImpact: CapitalImpact;
|
||||
lcrImpact: LCRImpact;
|
||||
overallCompliance: boolean;
|
||||
blockingIssues: string[];
|
||||
warnings: string[];
|
||||
recommendedAction: 'Allow' | 'Hold' | 'Escalate';
|
||||
}
|
||||
//# sourceMappingURL=risk.d.ts.map
|
||||
1
packages/types/src/risk.d.ts.map
Normal file
1
packages/types/src/risk.d.ts.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"risk.d.ts","sourceRoot":"","sources":["risk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,IAAI,CAAC;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,eAAe,CAAC;IAC9B,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAE/G,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;CAClD"}
|
||||
5
packages/types/src/risk.js
Normal file
5
packages/types/src/risk.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* Risk, capital, and liquidity modeling types
|
||||
*/
|
||||
export {};
|
||||
//# sourceMappingURL=risk.js.map
|
||||
1
packages/types/src/risk.js.map
Normal file
1
packages/types/src/risk.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"risk.js","sourceRoot":"","sources":["risk.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
||||
45
packages/types/src/transaction.d.ts
vendored
Normal file
45
packages/types/src/transaction.d.ts
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* Canonical transaction model for cross-border payments
|
||||
*/
|
||||
export type TransactionDirection = 'inbound' | 'outbound';
|
||||
export type TransactionStatus = 'pending' | 'approved' | 'held' | 'rejected' | 'escalated';
|
||||
export type Currency = string;
|
||||
export interface Party {
|
||||
name: string;
|
||||
address?: string;
|
||||
city?: string;
|
||||
country: string;
|
||||
taxId?: string;
|
||||
email?: string;
|
||||
phone?: string;
|
||||
accountNumber?: string;
|
||||
iban?: string;
|
||||
bic?: string;
|
||||
}
|
||||
export interface Transaction {
|
||||
id: string;
|
||||
direction: TransactionDirection;
|
||||
amount: number;
|
||||
currency: Currency;
|
||||
usdEquivalent?: number;
|
||||
orderingCustomer: Party;
|
||||
beneficiary: Party;
|
||||
purposeOfPayment?: string;
|
||||
fxContractId?: string;
|
||||
swiftReference?: string;
|
||||
iso20022MessageId?: string;
|
||||
status: TransactionStatus;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
metadata?: Record<string, unknown>;
|
||||
}
|
||||
export interface BatchTransaction {
|
||||
batchId: string;
|
||||
transactions: Transaction[];
|
||||
totalAmount: number;
|
||||
totalUsdEquivalent: number;
|
||||
currency: Currency;
|
||||
createdAt: Date;
|
||||
status: 'pending' | 'processing' | 'completed' | 'failed';
|
||||
}
|
||||
//# sourceMappingURL=transaction.d.ts.map
|
||||
1
packages/types/src/transaction.d.ts.map
Normal file
1
packages/types/src/transaction.d.ts.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,CAAC;AAC1D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAC3F,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,oBAAoB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,KAAK,CAAC;IACxB,WAAW,EAAE,KAAK,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC3D"}
|
||||
5
packages/types/src/transaction.js
Normal file
5
packages/types/src/transaction.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* Canonical transaction model for cross-border payments
|
||||
*/
|
||||
export {};
|
||||
//# sourceMappingURL=transaction.js.map
|
||||
1
packages/types/src/transaction.js.map
Normal file
1
packages/types/src/transaction.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
||||
86
packages/types/src/treasury.d.ts
vendored
Normal file
86
packages/types/src/treasury.d.ts
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
/**
|
||||
* Treasury and subledger account types
|
||||
*/
|
||||
export type AccountStatus = 'active' | 'inactive' | 'closed' | 'suspended';
|
||||
export type AccountType = 'treasury' | 'subledger';
|
||||
export type PostingType = 'debit' | 'credit';
|
||||
export interface TreasuryAccount {
|
||||
id: string;
|
||||
accountNumber: string;
|
||||
name: string;
|
||||
type: 'treasury';
|
||||
currency: string;
|
||||
status: AccountStatus;
|
||||
parentAccountId?: string;
|
||||
balance: number;
|
||||
availableBalance: number;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
metadata?: Record<string, unknown>;
|
||||
}
|
||||
export interface SubledgerAccount {
|
||||
id: string;
|
||||
accountNumber: string;
|
||||
name: string;
|
||||
type: 'subledger';
|
||||
currency: string;
|
||||
status: AccountStatus;
|
||||
parentAccountId: string;
|
||||
balance: number;
|
||||
availableBalance: number;
|
||||
routingRules?: RoutingRule[];
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
metadata?: Record<string, unknown>;
|
||||
}
|
||||
export type Account = TreasuryAccount | SubledgerAccount;
|
||||
export interface RoutingRule {
|
||||
id: string;
|
||||
subledgerAccountId: string;
|
||||
conditions: RoutingCondition[];
|
||||
priority: number;
|
||||
active: boolean;
|
||||
}
|
||||
export interface RoutingCondition {
|
||||
field: string;
|
||||
operator: 'equals' | 'greaterThan' | 'lessThan' | 'contains';
|
||||
value: string | number;
|
||||
}
|
||||
export interface AccountPosting {
|
||||
id: string;
|
||||
accountId: string;
|
||||
transactionId: string;
|
||||
postingType: PostingType;
|
||||
amount: number;
|
||||
currency: string;
|
||||
fxRate?: number;
|
||||
balanceBefore: number;
|
||||
balanceAfter: number;
|
||||
postedAt: Date;
|
||||
description?: string;
|
||||
}
|
||||
export interface SubledgerTransfer {
|
||||
id: string;
|
||||
fromAccountId: string;
|
||||
toAccountId: string;
|
||||
amount: number;
|
||||
currency: string;
|
||||
transactionId?: string;
|
||||
description?: string;
|
||||
executedAt: Date;
|
||||
status: 'pending' | 'completed' | 'failed';
|
||||
}
|
||||
export interface SubledgerReport {
|
||||
subledgerId: string;
|
||||
periodStart: Date;
|
||||
periodEnd: Date;
|
||||
openingBalance: number;
|
||||
closingBalance: number;
|
||||
totalDebits: number;
|
||||
totalCredits: number;
|
||||
netPosition: number;
|
||||
currency: string;
|
||||
transactionCount: number;
|
||||
postings: AccountPosting[];
|
||||
}
|
||||
//# sourceMappingURL=treasury.d.ts.map
|
||||
1
packages/types/src/treasury.d.ts.map
Normal file
1
packages/types/src/treasury.d.ts.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"treasury.d.ts","sourceRoot":"","sources":["treasury.ts"],"names":[],"mappings":"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"}
|
||||
5
packages/types/src/treasury.js
Normal file
5
packages/types/src/treasury.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* Treasury and subledger account types
|
||||
*/
|
||||
export {};
|
||||
//# sourceMappingURL=treasury.js.map
|
||||
1
packages/types/src/treasury.js.map
Normal file
1
packages/types/src/treasury.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"treasury.js","sourceRoot":"","sources":["treasury.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
||||
@@ -1,8 +1,9 @@
|
||||
import { describe, it, expect, beforeEach } from 'vitest';
|
||||
import { SimpleCurrencyConverter, getDefaultConverter } from '../currency';
|
||||
import { getDefaultConverter } from '../currency';
|
||||
import type { CurrencyConverter } from '../currency';
|
||||
|
||||
describe('Currency Conversion', () => {
|
||||
let converter: SimpleCurrencyConverter;
|
||||
let converter: CurrencyConverter;
|
||||
|
||||
beforeEach(() => {
|
||||
converter = getDefaultConverter();
|
||||
|
||||
@@ -11,3 +11,7 @@ export * from './input-validation';
|
||||
export * from './eo-uplift';
|
||||
export * from './institution-config';
|
||||
export * from './errors';
|
||||
export * from './version';
|
||||
export * from './logging';
|
||||
export * from './config';
|
||||
export * from './fx-rates';
|
||||
|
||||
@@ -3,13 +3,10 @@
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src",
|
||||
"composite": true
|
||||
"composite": true,
|
||||
"declaration": true,
|
||||
"declarationMap": true
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "dist"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../types"
|
||||
}
|
||||
]
|
||||
"exclude": ["src/**/__tests__/**", "src/**/*.test.ts", "node_modules", "dist"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user