From 696b9059f6690bce9e27ce70262cb6746fd822f3 Mon Sep 17 00:00:00 2001 From: defiQUG Date: Fri, 23 Jan 2026 16:40:29 -0800 Subject: [PATCH] Fix build errors: exclude test files, fix exports, update currency test types --- packages/types/src/audit.d.ts | 83 +++++++++++++ packages/types/src/audit.d.ts.map | 1 + packages/types/src/audit.js | 5 + packages/types/src/audit.js.map | 1 + packages/types/src/eo-uplift.d.ts | 22 ++++ packages/types/src/eo-uplift.d.ts.map | 1 + packages/types/src/eo-uplift.js | 5 + packages/types/src/eo-uplift.js.map | 1 + packages/types/src/fx-contract.d.ts | 31 +++++ packages/types/src/fx-contract.d.ts.map | 1 + packages/types/src/fx-contract.js | 5 + packages/types/src/fx-contract.js.map | 1 + packages/types/src/index.d.ts | 14 +++ packages/types/src/index.d.ts.map | 1 + packages/types/src/index.js | 14 +++ packages/types/src/index.js.map | 1 + packages/types/src/iso20022.d.ts | 111 ++++++++++++++++++ packages/types/src/iso20022.d.ts.map | 1 + packages/types/src/iso20022.js | 5 + packages/types/src/iso20022.js.map | 1 + packages/types/src/regulatory.d.ts | 96 +++++++++++++++ packages/types/src/regulatory.d.ts.map | 1 + packages/types/src/regulatory.js | 5 + packages/types/src/regulatory.js.map | 1 + packages/types/src/risk.d.ts | 79 +++++++++++++ packages/types/src/risk.d.ts.map | 1 + packages/types/src/risk.js | 5 + packages/types/src/risk.js.map | 1 + packages/types/src/transaction.d.ts | 45 +++++++ packages/types/src/transaction.d.ts.map | 1 + packages/types/src/transaction.js | 5 + packages/types/src/transaction.js.map | 1 + packages/types/src/treasury.d.ts | 86 ++++++++++++++ packages/types/src/treasury.d.ts.map | 1 + packages/types/src/treasury.js | 5 + packages/types/src/treasury.js.map | 1 + packages/utils/src/__tests__/currency.test.ts | 5 +- packages/utils/src/index.ts | 4 + packages/utils/tsconfig.json | 11 +- 39 files changed, 650 insertions(+), 9 deletions(-) create mode 100644 packages/types/src/audit.d.ts create mode 100644 packages/types/src/audit.d.ts.map create mode 100644 packages/types/src/audit.js create mode 100644 packages/types/src/audit.js.map create mode 100644 packages/types/src/eo-uplift.d.ts create mode 100644 packages/types/src/eo-uplift.d.ts.map create mode 100644 packages/types/src/eo-uplift.js create mode 100644 packages/types/src/eo-uplift.js.map create mode 100644 packages/types/src/fx-contract.d.ts create mode 100644 packages/types/src/fx-contract.d.ts.map create mode 100644 packages/types/src/fx-contract.js create mode 100644 packages/types/src/fx-contract.js.map create mode 100644 packages/types/src/index.d.ts create mode 100644 packages/types/src/index.d.ts.map create mode 100644 packages/types/src/index.js create mode 100644 packages/types/src/index.js.map create mode 100644 packages/types/src/iso20022.d.ts create mode 100644 packages/types/src/iso20022.d.ts.map create mode 100644 packages/types/src/iso20022.js create mode 100644 packages/types/src/iso20022.js.map create mode 100644 packages/types/src/regulatory.d.ts create mode 100644 packages/types/src/regulatory.d.ts.map create mode 100644 packages/types/src/regulatory.js create mode 100644 packages/types/src/regulatory.js.map create mode 100644 packages/types/src/risk.d.ts create mode 100644 packages/types/src/risk.d.ts.map create mode 100644 packages/types/src/risk.js create mode 100644 packages/types/src/risk.js.map create mode 100644 packages/types/src/transaction.d.ts create mode 100644 packages/types/src/transaction.d.ts.map create mode 100644 packages/types/src/transaction.js create mode 100644 packages/types/src/transaction.js.map create mode 100644 packages/types/src/treasury.d.ts create mode 100644 packages/types/src/treasury.d.ts.map create mode 100644 packages/types/src/treasury.js create mode 100644 packages/types/src/treasury.js.map diff --git a/packages/types/src/audit.d.ts b/packages/types/src/audit.d.ts new file mode 100644 index 0000000..b297bc8 --- /dev/null +++ b/packages/types/src/audit.d.ts @@ -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; + outputs: Record; + decision: 'Allow' | 'Hold' | 'Escalate'; + severity: 'Info' | 'Warning' | 'Critical'; + rationale: string; + userId?: string; + ipAddress?: string; + userAgent?: string; + action: string; + metadata?: Record; +} +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 \ No newline at end of file diff --git a/packages/types/src/audit.d.ts.map b/packages/types/src/audit.d.ts.map new file mode 100644 index 0000000..dbae35c --- /dev/null +++ b/packages/types/src/audit.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["audit.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/types/src/audit.js b/packages/types/src/audit.js new file mode 100644 index 0000000..9db16b4 --- /dev/null +++ b/packages/types/src/audit.js @@ -0,0 +1,5 @@ +/** + * Audit logging and compliance reporting types + */ +export {}; +//# sourceMappingURL=audit.js.map \ No newline at end of file diff --git a/packages/types/src/audit.js.map b/packages/types/src/audit.js.map new file mode 100644 index 0000000..872a237 --- /dev/null +++ b/packages/types/src/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sourceRoot":"","sources":["audit.ts"],"names":[],"mappings":"AAAA;;GAEG"} \ No newline at end of file diff --git a/packages/types/src/eo-uplift.d.ts b/packages/types/src/eo-uplift.d.ts new file mode 100644 index 0000000..4251345 --- /dev/null +++ b/packages/types/src/eo-uplift.d.ts @@ -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 \ No newline at end of file diff --git a/packages/types/src/eo-uplift.d.ts.map b/packages/types/src/eo-uplift.d.ts.map new file mode 100644 index 0000000..7c99261 --- /dev/null +++ b/packages/types/src/eo-uplift.d.ts.map @@ -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"} \ No newline at end of file diff --git a/packages/types/src/eo-uplift.js b/packages/types/src/eo-uplift.js new file mode 100644 index 0000000..afe0369 --- /dev/null +++ b/packages/types/src/eo-uplift.js @@ -0,0 +1,5 @@ +/** + * Errors & Omissions (E&O) Uplift types + */ +export {}; +//# sourceMappingURL=eo-uplift.js.map \ No newline at end of file diff --git a/packages/types/src/eo-uplift.js.map b/packages/types/src/eo-uplift.js.map new file mode 100644 index 0000000..25d00ad --- /dev/null +++ b/packages/types/src/eo-uplift.js.map @@ -0,0 +1 @@ +{"version":3,"file":"eo-uplift.js","sourceRoot":"","sources":["eo-uplift.ts"],"names":[],"mappings":"AAAA;;GAEG"} \ No newline at end of file diff --git a/packages/types/src/fx-contract.d.ts b/packages/types/src/fx-contract.d.ts new file mode 100644 index 0000000..7dc1177 --- /dev/null +++ b/packages/types/src/fx-contract.d.ts @@ -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; +} +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 \ No newline at end of file diff --git a/packages/types/src/fx-contract.d.ts.map b/packages/types/src/fx-contract.d.ts.map new file mode 100644 index 0000000..628b419 --- /dev/null +++ b/packages/types/src/fx-contract.d.ts.map @@ -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"} \ No newline at end of file diff --git a/packages/types/src/fx-contract.js b/packages/types/src/fx-contract.js new file mode 100644 index 0000000..94b88ef --- /dev/null +++ b/packages/types/src/fx-contract.js @@ -0,0 +1,5 @@ +/** + * FX Contract (Contrato de Câmbio) types + */ +export {}; +//# sourceMappingURL=fx-contract.js.map \ No newline at end of file diff --git a/packages/types/src/fx-contract.js.map b/packages/types/src/fx-contract.js.map new file mode 100644 index 0000000..ef6a136 --- /dev/null +++ b/packages/types/src/fx-contract.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fx-contract.js","sourceRoot":"","sources":["fx-contract.ts"],"names":[],"mappings":"AAAA;;GAEG"} \ No newline at end of file diff --git a/packages/types/src/index.d.ts b/packages/types/src/index.d.ts new file mode 100644 index 0000000..1f72b01 --- /dev/null +++ b/packages/types/src/index.d.ts @@ -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 \ No newline at end of file diff --git a/packages/types/src/index.d.ts.map b/packages/types/src/index.d.ts.map new file mode 100644 index 0000000..0f578f1 --- /dev/null +++ b/packages/types/src/index.d.ts.map @@ -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"} \ No newline at end of file diff --git a/packages/types/src/index.js b/packages/types/src/index.js new file mode 100644 index 0000000..952e399 --- /dev/null +++ b/packages/types/src/index.js @@ -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 \ No newline at end of file diff --git a/packages/types/src/index.js.map b/packages/types/src/index.js.map new file mode 100644 index 0000000..e21306c --- /dev/null +++ b/packages/types/src/index.js.map @@ -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"} \ No newline at end of file diff --git a/packages/types/src/iso20022.d.ts b/packages/types/src/iso20022.d.ts new file mode 100644 index 0000000..3553283 --- /dev/null +++ b/packages/types/src/iso20022.d.ts @@ -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; +} +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; +} +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 \ No newline at end of file diff --git a/packages/types/src/iso20022.d.ts.map b/packages/types/src/iso20022.d.ts.map new file mode 100644 index 0000000..039b108 --- /dev/null +++ b/packages/types/src/iso20022.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"iso20022.d.ts","sourceRoot":"","sources":["iso20022.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/types/src/iso20022.js b/packages/types/src/iso20022.js new file mode 100644 index 0000000..764c667 --- /dev/null +++ b/packages/types/src/iso20022.js @@ -0,0 +1,5 @@ +/** + * ISO 20022 message types and structures + */ +export {}; +//# sourceMappingURL=iso20022.js.map \ No newline at end of file diff --git a/packages/types/src/iso20022.js.map b/packages/types/src/iso20022.js.map new file mode 100644 index 0000000..d076831 --- /dev/null +++ b/packages/types/src/iso20022.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iso20022.js","sourceRoot":"","sources":["iso20022.ts"],"names":[],"mappings":"AAAA;;GAEG"} \ No newline at end of file diff --git a/packages/types/src/regulatory.d.ts b/packages/types/src/regulatory.d.ts new file mode 100644 index 0000000..c0bdba2 --- /dev/null +++ b/packages/types/src/regulatory.d.ts @@ -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; +} +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 \ No newline at end of file diff --git a/packages/types/src/regulatory.d.ts.map b/packages/types/src/regulatory.d.ts.map new file mode 100644 index 0000000..4995ad6 --- /dev/null +++ b/packages/types/src/regulatory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"regulatory.d.ts","sourceRoot":"","sources":["regulatory.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/types/src/regulatory.js b/packages/types/src/regulatory.js new file mode 100644 index 0000000..9ea7c7e --- /dev/null +++ b/packages/types/src/regulatory.js @@ -0,0 +1,5 @@ +/** + * Brazil regulatory rule evaluation types + */ +export {}; +//# sourceMappingURL=regulatory.js.map \ No newline at end of file diff --git a/packages/types/src/regulatory.js.map b/packages/types/src/regulatory.js.map new file mode 100644 index 0000000..12117b7 --- /dev/null +++ b/packages/types/src/regulatory.js.map @@ -0,0 +1 @@ +{"version":3,"file":"regulatory.js","sourceRoot":"","sources":["regulatory.ts"],"names":[],"mappings":"AAAA;;GAEG"} \ No newline at end of file diff --git a/packages/types/src/risk.d.ts b/packages/types/src/risk.d.ts new file mode 100644 index 0000000..ed49be7 --- /dev/null +++ b/packages/types/src/risk.d.ts @@ -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 \ No newline at end of file diff --git a/packages/types/src/risk.d.ts.map b/packages/types/src/risk.d.ts.map new file mode 100644 index 0000000..a02b72f --- /dev/null +++ b/packages/types/src/risk.d.ts.map @@ -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"} \ No newline at end of file diff --git a/packages/types/src/risk.js b/packages/types/src/risk.js new file mode 100644 index 0000000..d3bd6fc --- /dev/null +++ b/packages/types/src/risk.js @@ -0,0 +1,5 @@ +/** + * Risk, capital, and liquidity modeling types + */ +export {}; +//# sourceMappingURL=risk.js.map \ No newline at end of file diff --git a/packages/types/src/risk.js.map b/packages/types/src/risk.js.map new file mode 100644 index 0000000..40473c2 --- /dev/null +++ b/packages/types/src/risk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"risk.js","sourceRoot":"","sources":["risk.ts"],"names":[],"mappings":"AAAA;;GAEG"} \ No newline at end of file diff --git a/packages/types/src/transaction.d.ts b/packages/types/src/transaction.d.ts new file mode 100644 index 0000000..1f28a51 --- /dev/null +++ b/packages/types/src/transaction.d.ts @@ -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; +} +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 \ No newline at end of file diff --git a/packages/types/src/transaction.d.ts.map b/packages/types/src/transaction.d.ts.map new file mode 100644 index 0000000..02b243b --- /dev/null +++ b/packages/types/src/transaction.d.ts.map @@ -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"} \ No newline at end of file diff --git a/packages/types/src/transaction.js b/packages/types/src/transaction.js new file mode 100644 index 0000000..65c7023 --- /dev/null +++ b/packages/types/src/transaction.js @@ -0,0 +1,5 @@ +/** + * Canonical transaction model for cross-border payments + */ +export {}; +//# sourceMappingURL=transaction.js.map \ No newline at end of file diff --git a/packages/types/src/transaction.js.map b/packages/types/src/transaction.js.map new file mode 100644 index 0000000..db0125f --- /dev/null +++ b/packages/types/src/transaction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"transaction.js","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":"AAAA;;GAEG"} \ No newline at end of file diff --git a/packages/types/src/treasury.d.ts b/packages/types/src/treasury.d.ts new file mode 100644 index 0000000..c61ebad --- /dev/null +++ b/packages/types/src/treasury.d.ts @@ -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; +} +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; +} +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 \ No newline at end of file diff --git a/packages/types/src/treasury.d.ts.map b/packages/types/src/treasury.d.ts.map new file mode 100644 index 0000000..cc8f16c --- /dev/null +++ b/packages/types/src/treasury.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"treasury.d.ts","sourceRoot":"","sources":["treasury.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC3E,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;AACnD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,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,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,OAAO,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;IAC7D,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC5C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B"} \ No newline at end of file diff --git a/packages/types/src/treasury.js b/packages/types/src/treasury.js new file mode 100644 index 0000000..97f9794 --- /dev/null +++ b/packages/types/src/treasury.js @@ -0,0 +1,5 @@ +/** + * Treasury and subledger account types + */ +export {}; +//# sourceMappingURL=treasury.js.map \ No newline at end of file diff --git a/packages/types/src/treasury.js.map b/packages/types/src/treasury.js.map new file mode 100644 index 0000000..cf17b9d --- /dev/null +++ b/packages/types/src/treasury.js.map @@ -0,0 +1 @@ +{"version":3,"file":"treasury.js","sourceRoot":"","sources":["treasury.ts"],"names":[],"mappings":"AAAA;;GAEG"} \ No newline at end of file diff --git a/packages/utils/src/__tests__/currency.test.ts b/packages/utils/src/__tests__/currency.test.ts index 719b4e3..49bb4bc 100644 --- a/packages/utils/src/__tests__/currency.test.ts +++ b/packages/utils/src/__tests__/currency.test.ts @@ -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(); diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 9c70c11..1e26e58 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -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'; diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index e068ae4..cca693d 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -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"] }