{"_id":"@dark-light-20/invest-domain","_rev":"9-87304427011d773021dd9df0caf847f0","name":"@dark-light-20/invest-domain","dist-tags":{"alpha":"1.0.0-alpha.1","latest":"1.0.2"},"versions":{"0.1.0":{"name":"@dark-light-20/invest-domain","version":"0.1.0","keywords":["investments","domain","typescript","clean-architecture"],"author":{"name":"Dark-Light-20"},"license":"MIT","_id":"@dark-light-20/invest-domain@0.1.0","maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"homepage":"https://github.com/Dark-Light-20/investments-project#readme","bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"dist":{"shasum":"7232f1cf76206c140e4ed7c991ef96ac1b298e58","tarball":"https://registry.npmjs.org/@dark-light-20/invest-domain/-/invest-domain-0.1.0.tgz","fileCount":23,"integrity":"sha512-sYF1nIujflCvE/+MnSJzJqBnSgwxavrtG9MdSOJZPKVVgQuF4zptSbWZf0HwlXj6UZ7k7OJjBFgaiVYiaQmR0Q==","signatures":[{"sig":"MEUCIE+xlqaCfXUBpW09zPtgFavFS749OQzKBdewT60+yJVlAiEAmKNkZbbsPiHLKoOLZsp3yWgX1hGrsVLFTiE/m1HkQg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10757},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"df18d0dcf0ba348304f4e60385eb653cc0a43a77","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","prepare":"tsc"},"_npmUser":{"name":"dark-light-20","email":"pazsebas@hotmail.com"},"repository":{"url":"git+https://github.com/Dark-Light-20/investments-project.git","type":"git"},"_npmVersion":"10.1.0","description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/invest-domain_0.1.0_1754769092195_0.8821922724748186","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dark-light-20/invest-domain","version":"0.2.0","keywords":["investments","domain","typescript","clean-architecture"],"author":{"name":"Dark-Light-20"},"license":"MIT","_id":"@dark-light-20/invest-domain@0.2.0","maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"homepage":"https://github.com/Dark-Light-20/investments-project#readme","bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"dist":{"shasum":"fe1dfa77d955dc5cae7364645d8bf24420805fc7","tarball":"https://registry.npmjs.org/@dark-light-20/invest-domain/-/invest-domain-0.2.0.tgz","fileCount":35,"integrity":"sha512-oq5EoqyxEXx/OAHdsBo2rcBFOF7ohQkvE1Ha/uG5ZGermflWmu5YdXtpaCPLg2Xq6q9KkG6hwGqeGfde4oG67g==","signatures":[{"sig":"MEQCIFgL8xQ3EEYo3kN5q8El2FZ502rAy0SzFuqhGgZ9MnOOAiBZ026i475Y5JXEMr2WwfBNUF0ZY1lWiX9IuvX+Fz3TrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13768},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"2b6f19835441cf605b06cd40fb6c47d7093ac278","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","prepare":"tsc"},"_npmUser":{"name":"dark-light-20","email":"pazsebas@hotmail.com"},"repository":{"url":"git+https://github.com/Dark-Light-20/investments-project.git","type":"git"},"_npmVersion":"10.1.0","description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/invest-domain_0.2.0_1754771530033_0.8077117572927446","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@dark-light-20/invest-domain","version":"0.3.0","keywords":["investments","domain","typescript","clean-architecture"],"author":{"name":"Dark-Light-20"},"license":"MIT","_id":"@dark-light-20/invest-domain@0.3.0","maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"homepage":"https://github.com/Dark-Light-20/investments-project#readme","bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"dist":{"shasum":"20b1d11bbe562d2ce96e5d6adf9660e1057daac8","tarball":"https://registry.npmjs.org/@dark-light-20/invest-domain/-/invest-domain-0.3.0.tgz","fileCount":43,"integrity":"sha512-/2NjAlgIfYVMqnE5YcIy3ZjS9mIouWo+2OhHJ50MxfanROOslIrCyTFqup6aYJ/EX82BECb2xIpqGGYj88yp6A==","signatures":[{"sig":"MEUCIQCzxnQqhu0EqqGQOssPb6yzZnvvKnCGx+mKgGh1wLbbiQIgM6nwCQQCl7YEziELj/tbRpwmwjr64CdcVqY+HfwPtos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17492},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"5e1d5b370bf400edcc40a544c5f5300c1140b537","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","prepare":"tsc"},"_npmUser":{"name":"dark-light-20","email":"pazsebas@hotmail.com"},"repository":{"url":"git+https://github.com/Dark-Light-20/investments-project.git","type":"git"},"_npmVersion":"11.6.1","description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/invest-domain_0.3.0_1762869316486_0.3857480374090283","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@dark-light-20/invest-domain","version":"0.3.1","keywords":["investments","domain","typescript","clean-architecture"],"author":{"name":"Dark-Light-20"},"license":"MIT","_id":"@dark-light-20/invest-domain@0.3.1","maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"homepage":"https://github.com/Dark-Light-20/investments-project#readme","bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"dist":{"shasum":"84ac95b4e2607f51028e9bd4fe258c3f4103a8fc","tarball":"https://registry.npmjs.org/@dark-light-20/invest-domain/-/invest-domain-0.3.1.tgz","fileCount":43,"integrity":"sha512-zu5g5VTCzPse8RtzEo8NSw7f6naogUfqh6WgcivKgz156g3wuM8vvcgksESAUvyBmsCrh7LGKGAIeXDrpxTIAg==","signatures":[{"sig":"MEUCIQCTEvcr93mXtD5L+O2jLdba6Zf9m519i2LkDy3kbHBgvgIgTo8dz1cA3G81ZtK85wV8EbGma5Dtsvw/r+lzNlGDICw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17814},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"f469f935313dde11827b8b161b8816fb1fff84e2","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","prepare":"tsc"},"_npmUser":{"name":"dark-light-20","email":"pazsebas@hotmail.com"},"repository":{"url":"git+https://github.com/Dark-Light-20/investments-project.git","type":"git"},"_npmVersion":"11.6.1","description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/invest-domain_0.3.1_1762869579823_0.8195355358385235","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@dark-light-20/invest-domain","version":"0.3.2","keywords":["investments","domain","typescript","clean-architecture"],"author":{"name":"Dark-Light-20"},"license":"MIT","_id":"@dark-light-20/invest-domain@0.3.2","maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"homepage":"https://github.com/Dark-Light-20/investments-project#readme","bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"dist":{"shasum":"889d4db53f0f19368ce51445deb4757483f1f8d7","tarball":"https://registry.npmjs.org/@dark-light-20/invest-domain/-/invest-domain-0.3.2.tgz","fileCount":43,"integrity":"sha512-aBf8/+FKWliDKCgtLwWQt+o+Gi95ZqAqHuzojxm13R0IMLxAq4f+0JcuRXIbFeQniPjeA2Bv5ZLxk9CWRYA6qg==","signatures":[{"sig":"MEQCIEgnPA+ziGKCE9uOg7DwNamlpp0dm6eSj499KzfgP7zwAiBl1beaqwhJbOlg6fwJ3+wLvJqU2S5p1bE0AN+fDr/NjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18049},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"fbb4cec505464ae06b6870418cc11b1e9386a158","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","prepare":"tsc"},"_npmUser":{"name":"dark-light-20","email":"pazsebas@hotmail.com"},"repository":{"url":"git+https://github.com/Dark-Light-20/investments-project.git","type":"git"},"_npmVersion":"11.6.1","description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/invest-domain_0.3.2_1762870969633_0.09961546189898551","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.1":{"name":"@dark-light-20/invest-domain","version":"1.0.0-alpha.1","keywords":["investments","domain","typescript","clean-architecture"],"author":{"name":"Dark-Light-20"},"license":"MIT","_id":"@dark-light-20/invest-domain@1.0.0-alpha.1","maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"homepage":"https://github.com/Dark-Light-20/investments-project#readme","bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"dist":{"shasum":"a06b82e9219fdf27a6252a38325e838121ddac10","tarball":"https://registry.npmjs.org/@dark-light-20/invest-domain/-/invest-domain-1.0.0-alpha.1.tgz","fileCount":51,"integrity":"sha512-ZAccKw71UKQyOYaZw0Qt/Zt6icclRFxhCXwYTOkWLwCDWEljJdi6aPq1J0WvvhYulHZQpWnQT+riK10yf9xKcw==","signatures":[{"sig":"MEUCIQDV0+eOIis3rJiRWLRvNItv4/G1AOUqg9mt0C49WfA24AIgXXOnOUbdeb/PbQAxOuMk4pbp/pZSPK0nNasdLGcLQa8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22877},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7b7db78cc185ba1404dc22259211edc3179f6bf7","scripts":{"test":"jest","build":"tsc","clean":"rm -rf dist","prepare":"tsc"},"_npmUser":{"name":"dark-light-20","email":"pazsebas@hotmail.com"},"repository":{"url":"git+https://github.com/Dark-Light-20/investments-project.git","type":"git"},"_npmVersion":"11.6.1","description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","typescript":"^5.9.2","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/invest-domain_1.0.0-alpha.1_1765672482877_0.567606290355041","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@dark-light-20/invest-domain","version":"1.0.0","keywords":["investments","domain","typescript","clean-architecture"],"author":{"name":"Dark-Light-20"},"license":"MIT","_id":"@dark-light-20/invest-domain@1.0.0","maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"homepage":"https://github.com/Dark-Light-20/investments-project#readme","bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"dist":{"shasum":"0c761fe64965a769a163c1024de13a9623cf9443","tarball":"https://registry.npmjs.org/@dark-light-20/invest-domain/-/invest-domain-1.0.0.tgz","fileCount":51,"integrity":"sha512-IWk2wEOpdyhP/utxMeOOPmMHtUpcyB4wJ/kkPgEv5dXuCgf34H5i7udrnu2pRTlNVsx3X98nY7ZDD5sBBQK5vw==","signatures":[{"sig":"MEUCIQC9ZFIQLH2sY0mXel23S2slyqp4pLmEIQhhuDm17ejeVQIgUOkcQqB0Aa+gOvDbiuUbnNWqTEVHIkRVXCOZq0xxaLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22869},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"29a08e49acfcb5a2599fc3bd73d7a3f59712c85a","scripts":{"test":"jest","build":"tsc","clean":"rm -rf dist","prepare":"tsc"},"_npmUser":{"name":"dark-light-20","email":"pazsebas@hotmail.com"},"repository":{"url":"git+https://github.com/Dark-Light-20/investments-project.git","type":"git"},"_npmVersion":"11.6.1","description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","typescript":"^5.9.2","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/invest-domain_1.0.0_1765674946904_0.9171472084914978","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dark-light-20/invest-domain","version":"1.0.1","keywords":["investments","domain","typescript","clean-architecture"],"author":{"name":"Dark-Light-20"},"license":"MIT","_id":"@dark-light-20/invest-domain@1.0.1","maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"homepage":"https://github.com/Dark-Light-20/investments-project#readme","bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"dist":{"shasum":"2ebc715bc73e07644be0dab5b07ffb151c95a26c","tarball":"https://registry.npmjs.org/@dark-light-20/invest-domain/-/invest-domain-1.0.1.tgz","fileCount":9,"integrity":"sha512-b4l6CAObPvrSl2gqASWNowM8LODjs4E5xYR5M2zE51mzFRSrrcYWmAtFPvneQNf+P/dQAOZym7jHwES3u1Pu2Q==","signatures":[{"sig":"MEQCIAXwMbQTh8OfmSegdAgRWOU4NHIjXJ0iQKz07CWAuz/AAiB+71KX3RGi+U4Bd2GMUMDmfa8RVnOjv/5roaTQWoxHww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28287},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b926096e3409ed085c8bfa2e7e763f3a0b8d8df5","scripts":{"test":"jest","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"dark-light-20","email":"pazsebas@hotmail.com"},"repository":{"url":"git+https://github.com/Dark-Light-20/investments-project.git","type":"git"},"_npmVersion":"11.6.1","description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.5.1","ts-jest":"^29.4.6","typescript":"^5.9.2","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/invest-domain_1.0.1_1765698698832_0.7345343845520369","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dark-light-20/invest-domain","version":"1.0.2","type":"module","description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/Dark-Light-20/investments-project.git"},"keywords":["investments","domain","typescript","clean-architecture"],"scripts":{"build":"tsup","clean":"rm -rf dist","test":"jest"},"author":{"name":"Dark-Light-20"},"license":"MIT","devDependencies":{"@types/jest":"^30.0.0","jest":"^30.2.0","ts-jest":"^29.4.6","tsup":"^8.5.1","typescript":"^5.9.2"},"publishConfig":{"access":"public"},"gitHead":"4beab5fbc12192060b2c5b3f3674e583790304c2","_id":"@dark-light-20/invest-domain@1.0.2","bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"homepage":"https://github.com/Dark-Light-20/investments-project#readme","_nodeVersion":"24.11.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-Nn5m9rolkTUy9XK1FY3ILP9Wqkvo7YyObEypL8ysti4f+cV58KkgJRnMCISGbhJJiN+d3Chymje5e143jjxdUg==","shasum":"0ad7b47bc28dc93eb959dbfe79d1460f0f269313","tarball":"https://registry.npmjs.org/@dark-light-20/invest-domain/-/invest-domain-1.0.2.tgz","fileCount":9,"unpackedSize":30283,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHhSmmTcRYVoHLQZHmFvN4o7zLCMPGjYoxV/XEgd1VAUAiEAo6BRWuNuwpJUeVcc18l1kQ2shIgfYsXaqnvoQthQPSQ="}]},"_npmUser":{"name":"dark-light-20","email":"pazsebas@hotmail.com"},"directories":{},"maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/invest-domain_1.0.2_1765939300302_0.5142993005760617"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-09T19:51:32.058Z","modified":"2025-12-17T02:41:40.616Z","0.1.0":"2025-08-09T19:51:32.433Z","0.2.0":"2025-08-09T20:32:10.216Z","0.3.0":"2025-11-11T13:55:16.696Z","0.3.1":"2025-11-11T13:59:40.060Z","0.3.2":"2025-11-11T14:22:49.848Z","1.0.0-alpha.1":"2025-12-14T00:34:43.012Z","1.0.0":"2025-12-14T01:15:47.046Z","1.0.1":"2025-12-14T07:51:38.965Z","1.0.2":"2025-12-17T02:41:40.453Z"},"bugs":{"url":"https://github.com/Dark-Light-20/investments-project/issues"},"author":{"name":"Dark-Light-20"},"license":"MIT","homepage":"https://github.com/Dark-Light-20/investments-project#readme","keywords":["investments","domain","typescript","clean-architecture"],"repository":{"type":"git","url":"git+https://github.com/Dark-Light-20/investments-project.git"},"description":"This package contains the core domain logic for the investments project, including entities, value objects, and business rules.","maintainers":[{"name":"dark-light-20","email":"pazsebas@hotmail.com"}],"readme":"# @dark-light-20/invest-domain\n\nThis package contains the core domain logic for the investments project, designed to be framework-agnostic and reusable across backend services and frontend applications. It enforces Clean Architecture principles by isolating business rules from infrastructure details.\n\n## 🚀 Features\n\n- **Domain Entities & Value Objects:** Type-safe definitions for financial products like CDTs, FICs, and Savings Pockets.\n- **Use Cases:** Pure business logic implementations for simulations and rate calculations.\n- **Abstract Gateways:** Interfaces defining contracts for data retrieval, enabling Dependency Inversion.\n- **Hybrid Build:** Bundled with **tsup** to support both **ESM** and **CommonJS**, ensuring compatibility with modern Angular apps and Node.js backends.\n- **Tested:** Comprehensive unit test suite using **Jest**.\n\n## 📦 Installation\n\n```bash\nnpm install @dark-light-20/invest-domain\n```\n\n## 🏗 Architecture\n\n### Domain Layer (Value Objects)\n\nDefines the core data structures and types:\n\n- `CdtRate`, `CdtSimulation`\n- `FicRate`\n- `PocketSimulation`\n\n### Application Layer (Use Cases)\n\nContains the business logic services:\n\n- **CDT:** `CdtUseCase` (Simulate returns based on amount and term).\n- **FIC:** `FicUseCase` (Retrieve historical rates).\n- **Pocket:** `PocketUseCase` (Simulate savings growth with monthly contributions).\n\n### Ports (Gateways)\n\nAbstract interfaces that must be implemented by the infrastructure layer (Dependency Inversion):\n\n- `CdtGateway`\n- `FicGateway`\n- `PocketGateway`\n\n## 🛠 Usage\n\n### Implementing a Gateway\n\n```typescript\nimport { CdtGateway, CdtRate } from \"@dark-light-20/invest-domain\";\n\nexport class MyCdtRepository implements CdtGateway {\n  async getAllCDTRates(): Promise<CdtRate[]> {\n    // Fetch data from API or Database\n    return [];\n  }\n}\n```\n\n### Using a Use Case\n\n```typescript\nimport { CdtUseCase, CDTTermUnit } from \"@dark-light-20/invest-domain\";\n\nconst useCase = new CdtUseCase(new MyCdtRepository());\nconst simulation = await useCase.simulateCDT(1000000, 360, CDTTermUnit.DAYS);\n```\n\n## 🧪 Testing\n\nThis library uses **Jest** for unit testing to ensure the reliability of business rules.\n\n```bash\nnpm run test\n```\n\n## ⚡ Build\n\nThe project uses **tsup** for efficient bundling, ensuring zero-config TypeScript compilation:\n\n```bash\nnpm run build\n```\n\nThis generates optimized output for both `esm` (ECMAScript Modules) and `cjs` (CommonJS) formats in the `dist` directory.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}