{"_id":"dromanis.finora.common","_rev":"45-6e32997795504bb21c72a271f1f35fa2","name":"dromanis.finora.common","dist-tags":{"latest":"3.3.10"},"versions":{"1.0.0":{"name":"dromanis.finora.common","version":"1.0.0","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.0.0","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"0bf506287f3fc5cdba305b00388634bf92c2eeee","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.0.0.tgz","fileCount":14,"integrity":"sha512-tngQwV1FSar8WvX9F67i34IWGVCgMqyrXGF6CgLDlB1SriDh6HKWKUpmdF31T4hlIQafzXBa6Op9OveMqd54JA==","signatures":[{"sig":"MEUCIF0CDkLFdcgUzd2EUOl+cm1Z4MlZ/SKz2Lwroc+HCP2+AiEA1tsklXIq20VtQzgwA95hr58yg3FJfDQG3RPZR7WM3L8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31489},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"5927070dee6c894925f0e03e462be69950129cfe","scripts":{"test":"jest","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","actor":{"name":"tariqkarim","type":"user","email":"tariq.karim@gmail.com"},"email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.0.0_1751716885966_0.010110368287256088","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"dromanis.finora.common","version":"1.1.0","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.1.0","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"96c0c1f6e2254b18528ebf3a1f15bf84c9ad0ce9","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.1.0.tgz","fileCount":14,"integrity":"sha512-gGmErrPn9dqQEtzS7e6FHQ+Ns8O9avwvWOGKoHtSm2b/iJb25r+TetP+X6h5ZJ3UJQrI/yI6enmH2EEPp2o7Jw==","signatures":[{"sig":"MEYCIQDZlFd1SKVKSHkCDtUhIEy5R7RlyndesoQk4+w/fC+DuAIhAN/MUR+RExOvfqHYrkF/DshUqoLF1zUKqlGkPEG7vSvu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32400},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"ec8bb35c4426694841500419e05e96df48f794f2","scripts":{"test":"jest","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","actor":{"name":"tariqkarim","type":"user","email":"tariq.karim@gmail.com"},"email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.1.0_1751717416602_0.2842605696377938","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"dromanis.finora.common","version":"1.2.0","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.2.0","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"03f20885467b6df59cca2b886f10b08480df90e2","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.2.0.tgz","fileCount":26,"integrity":"sha512-XuhEAUyh47Bcrq7vijsok6APzIj07Rsk5PUZxuLemfcDgyi7hBjq9L36ECbsH7jlqTvmOmPaD4YQeSJFyTVO9w==","signatures":[{"sig":"MEUCIQDlvbPiL5iNVN/CdLf5EzF0uaKTaWRFErCYhfbzKykETgIgKUY9bDQ2D0R2AZKlaiPBVvPWGzSplk8pXIn4KzgoC8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54958},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"172dd5b9efbcbdbdcee21c901de5a254bf781163","scripts":{"test":"jest","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","actor":{"name":"tariqkarim","type":"user","email":"tariq.karim@gmail.com"},"email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.2.0_1751727601490_0.9039957246085117","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"dromanis.finora.common","version":"1.3.0","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.3.0","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"a21198624d60cd9e86aa898f8e0962463cd25ce2","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.3.0.tgz","fileCount":26,"integrity":"sha512-o68oXQbzCrlvZPph6G2w2JyPfBuDHANGLVJLkVQnJDolDI1u4dS3AokCEyMndJYJPtzI8pUsAVqT+QZc3hXOQw==","signatures":[{"sig":"MEUCIQCo5aut51n1gEPFdEK8TIsByCfgfCxiTEmVNeGL+m0UQQIgL0K/wkTFiHXzy8a5sGCMKqHEWGsJTTG49QAwWierscY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54981},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"47e535f475b66b4eaa9d420d3134e487fe7134bc","scripts":{"test":"jest","build":"tsc","clean":"rm -rf dist","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","actor":{"name":"tariqkarim","type":"user","email":"tariq.karim@gmail.com"},"email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"22.17.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.3.0_1751758598753_0.23554831691609057","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"dromanis.finora.common","version":"1.4.0","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.0","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"64e6c93926e77a9c29a17c942c30132745ccf96d","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.0.tgz","fileCount":26,"integrity":"sha512-9/C6DkY7kQviwkRrUh95w2nG1MGU4MV1ChGY7BuLjB/v6eq3YDwZIffCOTNwEQehjCnBiqhu+YF/0WT3BJ/CLA==","signatures":[{"sig":"MEYCIQDJqYESAQtU4CnwiXPT0wo1kqGmDnOdAK3iCmUeaZAyTAIhAIufSgElsdwjSVFSkVryYih1MMBsXedhwtfuP0S/zcYT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54981},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"ff6eac3d23d7a1543d0ee1d22dac2bab1a8ddeac","scripts":{"test":"jest","build":"tsc","clean":"rm -rf dist","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","actor":{"name":"tariqkarim","type":"user","email":"tariq.karim@gmail.com"},"email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"22.17.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.0_1751759320756_0.6067102493547736","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"dromanis.finora.common","version":"1.4.1","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.1","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"d8c69bcbb6c43b5176c5c7b8b728dc070ca4ce60","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.1.tgz","fileCount":29,"integrity":"sha512-sTDmFB0+3ObGsGUbLoEjfDbbtmjBGbY449PArmdb52jKkXs4Z4fO7X7XcvP5AUJjYjwoH5PhMXDdWb/PQufRFg==","signatures":[{"sig":"MEYCIQDYOD5Rgaom57t09MOaYbd0XwJ7JJbd60vGN2U8HyrI3AIhAOEz8HYeVtTn2iAEO6Swh+DFJaVXVONH8VVtGMbyucIq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70840},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"5dbd7c0b67187a2b06c0941069e15cc193231e2b","scripts":{"test":"jest","build":"tsc","clean":"rm -rf dist","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","actor":{"name":"tariqkarim","type":"user","email":"tariq.karim@gmail.com"},"email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.1_1751804225032_0.6395985917293796","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"dromanis.finora.common","version":"1.4.2","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.2","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"4299032d9f930f7597ddc80bd11a5f113f29a078","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.2.tgz","fileCount":29,"integrity":"sha512-jMk56UwrwVf/dbhA4rnrWAGvMH+U9nmwsJGBvcGWLIIAXOhyxKWqXJTbiMvKhG/Xx4/H1KhgpFlBSzFsz5enyg==","signatures":[{"sig":"MEQCIBeWZVcjrBk08A2A71wrDPJOeQAMvInVsa77/TDl88VkAiBpYRQxIKIQ7YPifyIt9Z1gWBo2rL8rD1VSzGPdmc12Mg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70840},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"5dbd7c0b67187a2b06c0941069e15cc193231e2b","scripts":{"test":"jest","build":"tsc","clean":"rm -rf dist","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","actor":{"name":"tariqkarim","type":"user","email":"tariq.karim@gmail.com"},"email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.2_1751806465107_0.6890172293964039","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"dromanis.finora.common","version":"1.4.3","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.3","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"c2b6f677b46f5c7d7eb9b960465493b9f916d0b1","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.3.tgz","fileCount":56,"integrity":"sha512-NLrXQL7d2Re6ybAZ3c69H7BxBmgcPCkoAnsrKC4vYIv8iv/Svh/tTBr7tHBY5ssPywJgRFcnCOD9EQCdIJnDpg==","signatures":[{"sig":"MEUCIQDxkoD3zHAAZLs4AAS8Z1G3vvjtDLmSu2ovP/0A/q/PEwIgTKgBS9EPCL/MNhVy51cFbB3LcMjZ56WF/MrU7lZsVPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135967},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"f5c2aa5d8059351eee3cbff8de5e34e83f40b7a6","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","actor":{"name":"tariqkarim","type":"user","email":"tariq.karim@gmail.com"},"email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.3_1751901329678_0.8521508411288141","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"dromanis.finora.common","version":"1.4.4","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.4","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"f0dc40055d065a1f5dc9aaf1c1064729847631b8","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.4.tgz","fileCount":56,"integrity":"sha512-NzDu4AbcH57daSZfS/c7SKo7245CJ+5CSK4uslJy57FGD8hixIKEAbYV0pJSn+ifNDwkv1D7OLfGLcOVpLQvYw==","signatures":[{"sig":"MEUCIQCSmXhTEplVheXcKj3RCh+9UUCW5PdEMObRfSOrdzs7+AIgE4BlbZuWFnTmEHXHkuE4aK7DebmukJEWCsEbzZkHjKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135967},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"586a2d2d39670f1bfb6f8cffd30620317707fddc","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","actor":{"name":"tariqkarim","type":"user","email":"tariq.karim@gmail.com"},"email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.4_1751973956899_0.8151021771910649","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"dromanis.finora.common","version":"1.4.5","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.5","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"82f1de8f183d4a70633241b5c723fbf004e3d342","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.5.tgz","fileCount":62,"integrity":"sha512-LfTyr48pgRN5NRfynsHHpufzBv1D3V765BlrJ90URFgt3ASA9BceqeOyTNzPEY7gOb/6BKARO+Mmm0+IJN903g==","signatures":[{"sig":"MEUCID5LaFZviO9uouVANQY4fEYHr9oOFSHPIM0A2y0LotR4AiEAnvbaNO/MVpN3gcVpClTRN8E8D1RZPDxlIuzW7FDR1/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142259},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"df400a66fa736d278c5e16bda7b2f4a1854acfd7","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.5_1752305426303_0.9068913036625437","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"dromanis.finora.common","version":"1.4.6","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.6","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"887fbbd4e395445216c6cdba514c56e2814ad2b9","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.6.tgz","fileCount":68,"integrity":"sha512-YAYuU60/8T6n97k8qIFw5Uocuu+YdK61dytCkuVi84vp5w3MjR3MKwa67KkRlR1IPnMXIx1UhTg1gM9UQq+q4g==","signatures":[{"sig":"MEUCIE7GcA37jCCRQYTaXaZGFafDP7TN6rli6wEei9//M98cAiEAxmZwI2NU8TQVwgrCisC2dPlIygY5XLjTxu44HY96xZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208415},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"c14a251dd241b3ff668779524e4358df0b81081a","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.6_1752439233545_0.9965024065867951","host":"s3://npm-registry-packages-npm-production"}},"1.4.7":{"name":"dromanis.finora.common","version":"1.4.7","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.7","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"1ca67e44679671f4131f37b508050f45e5a04756","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.7.tgz","fileCount":74,"integrity":"sha512-lElRKwxPojlFXk04IEbMjb02QaGGnLxbRhJnDgOTVxzxHvKnNYuUpC/FPUYT3iESrGw9uZa7qaO7Q6T56LByqA==","signatures":[{"sig":"MEQCIBE6IfPQZjfL8n3CVepvpVPkUT3BnwRONKItUw+CJADzAiAzxbptL7A/gGRKnBSRKOEWIKvwP6UczriLUx2404P64g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241563},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"a0e818e4b2b10a3fd48b2fbf2d272dd1b2f70974","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.7_1752441830802_0.5952490658341667","host":"s3://npm-registry-packages-npm-production"}},"1.4.8":{"name":"dromanis.finora.common","version":"1.4.8","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.8","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"9f968a0edc6b397931cd2f209110615be5bcaeba","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.8.tgz","fileCount":68,"integrity":"sha512-JtNuVhnHT2yN8/nDysujYFPYQ6ZRPLmNYwoERrGaIS6cj/pU6cO2koWLBjYMAaU8Cbkk15E85LDRcU6OMeATGw==","signatures":[{"sig":"MEUCICZD2ta2sZu+WNF/vpn1tgWNY0PBgvcGTjLrU9y9ZzNLAiEAkkvjTq1fReneYPq2iU2sHHxBHLSCNcI84E798e8fqi0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167722},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"3a994fb3426981273ac275c348aadf061f8b075b","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.8_1752844892350_0.17193757545385147","host":"s3://npm-registry-packages-npm-production"}},"1.4.9":{"name":"dromanis.finora.common","version":"1.4.9","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.9","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"75b5c7a9cb9a6c16158f82be52610ad19d984b1f","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.9.tgz","fileCount":68,"integrity":"sha512-tOGSvfwvE3SGKZBjLw4fOMnSSXdOlxi0fwGiDGf/h5b6Qg78ARTuWs98eOn11p/lPET41iVcWDm30E3ZGB7SZQ==","signatures":[{"sig":"MEUCIB9mnoH+zoe84ql2jUD61RwjnHlcBC5elxT/FVmQfWPVAiEAzepJV43IXIfsjoKI5rlqRb1RAzj3XRvGXY4XnbsVR8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167722},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"2cfd91003e65d70a7f136f3e41277271eb5a66ec","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.9_1752851420951_0.2318854612886878","host":"s3://npm-registry-packages-npm-production"}},"1.4.10":{"name":"dromanis.finora.common","version":"1.4.10","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.10","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"56a0b399c96e90304589cac6ce601a33bd200360","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.10.tgz","fileCount":74,"integrity":"sha512-WFL2q3O/jI/+M7IOQbRGKysgvGPSFEhKAg54zIJtSWdH8BvfAbNmoeoxQW7x5kOhkeRzloIUrzxSDmfyz21bIQ==","signatures":[{"sig":"MEQCIB5MLWIw5gRnqsA86X7dbHQRgEjHmo25qfo6lT3Xp5zmAiAY4QPNQAJ+Hcpbhsih9wbuwwYYyddwWV2uxjFaqW3gBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177825},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"aba9991bc6eb540216b645dbb60cdde3c00df5d0","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.10_1752859510678_0.36950330354187644","host":"s3://npm-registry-packages-npm-production"}},"1.4.11":{"name":"dromanis.finora.common","version":"1.4.11","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.11","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"892f8c4486fe54abcbb5a529177fcd50adcd409d","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.11.tgz","fileCount":74,"integrity":"sha512-YY8mpvtsuNp/iFn6FFtpoqQevE78c3lpqdPIohXtpBWIp8f48I8wLjzb8DEjQDftPF1r4JyMmNzNDG9EpHPfsg==","signatures":[{"sig":"MEUCIQDrOeAZ5hig6F0VAUH6AbS+bRL7/AGwENf4gjq2LLHKugIgaCW7IWmmz4xr+WxOAZrOiBzw5CdCKNCa/MarS55m4cI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175339},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"2c32f3b909013e6afabbc1cf973feb98c715d3a2","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.11_1752880965196_0.5042474334689966","host":"s3://npm-registry-packages-npm-production"}},"1.4.12":{"name":"dromanis.finora.common","version":"1.4.12","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.12","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"ee9f355f8109dd135e459f937a38b675ce43046b","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.12.tgz","fileCount":74,"integrity":"sha512-9Wmi5yntrxxWQLJJbBuX6njwUjWt/njoHX5EKNiu55UWWleK/40OMc79hn1xxvntlBFZjd1gHI8sekUPAzunlg==","signatures":[{"sig":"MEUCIG52TUPCQIUmMQFbFLtSzoPc82U9t+IZQ0MgjRAqf4ytAiEA5SeRh4sOwHJeMSpFBDprCCHbn9F8S5FZl28yTVnvI3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175793},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"6b42c322c208ce8bf9827512195ae865448c583c","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.12_1752919691411_0.5701067031221032","host":"s3://npm-registry-packages-npm-production"}},"1.4.13":{"name":"dromanis.finora.common","version":"1.4.13","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.13","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"16a40addb4256117f26ae064a4ef9048be16b406","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.13.tgz","fileCount":74,"integrity":"sha512-pewo9rc+Yiyp2S/Hh+mahb5ink03HpHH/duCaN4viaSpaU+yGoXIL3cR08HqIhLymY5tkgb5QtR6sHY1/h0AnA==","signatures":[{"sig":"MEUCIQCBxcfwGOEaGt59V9APcF26ptQXESOn/3DGVcvCN/ynXgIgaeqcTm4cNpsj3x3sQFH36ZMCHYnFVpyxSvhNbj4W+u0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180892},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"560960c420ba2803a13e98b247b847330ea901f7","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.13_1752954145686_0.7555429680648873","host":"s3://npm-registry-packages-npm-production"}},"1.4.14":{"name":"dromanis.finora.common","version":"1.4.14","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.14","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"9b01f5beb842e2d0bf60d90f6fd86d2b39924676","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.14.tgz","fileCount":74,"integrity":"sha512-k+EhVw1VF+g9k88pe3mml/DYVRzgPrRYPbXV6WTF5ltqiFNzP+3PXIUKzVHoYLr+pFVINjCtgKgBUbBEmzUxIw==","signatures":[{"sig":"MEQCIAty83n4/nJaI899fhzdekujcvi8fnYMHYkWbpdx2UGrAiB8KWf43SVJxlK18MzYGGeYhd4SbeR4WYcaHjX7uKR3Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185107},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"77484293624d296c226f750fe59b4f124f998d74","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.14_1753025203171_0.7801508401104755","host":"s3://npm-registry-packages-npm-production"}},"1.4.15":{"name":"dromanis.finora.common","version":"1.4.15","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.15","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"337b734139f06700f3a33e35d4bdd2cf3ec06f19","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.15.tgz","fileCount":86,"integrity":"sha512-+mVuNAS6HfTtmzTf3cAXt/ShfFD//2WAYyR/D/npE6WfEqHS/MnwgDqiPl95nbXexxGGF/db/Trkd9sAvnMi2g==","signatures":[{"sig":"MEYCIQDJpT0nYyOcZmKz5pX2g+/oJFVANIUhfHa4VUlN7yADeAIhAJ4kxBNgLShQRdF7hs+0wx5qZAGoseYxKjqXC1Xt4dHl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218295},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"0ce2759ec920b91cbd4504c63eaaacf0c88714bd","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.15_1753029020119_0.3709552349877221","host":"s3://npm-registry-packages-npm-production"}},"1.4.16":{"name":"dromanis.finora.common","version":"1.4.16","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.16","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"4bf034d817cf014207f53ffba4bf1d81283addbc","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.16.tgz","fileCount":86,"integrity":"sha512-Vk20m+/6mpYXpH5z9c1JvK/k6Ig8NXlP4CMIdIrt/6Vi87QCyKpQNrY49gfQKhwtjZuoFt1CmamE+yPKUB5eMg==","signatures":[{"sig":"MEUCIBqomOnCdHF74u1wqcl9ZbhvFnYf53y9VZOtAidzF2LmAiEAqGzrb/7TT9ObPWwG2Q4zO/P6frFOXv+lduzaC+k2nYQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218247},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"726cbd8a2fdf7e4c8af525a6077e7bf639807fe5","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.16_1753170749989_0.1688408094690137","host":"s3://npm-registry-packages-npm-production"}},"1.4.17":{"name":"dromanis.finora.common","version":"1.4.17","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.17","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"1c1322b6534b7bebdd2504ce209f65dd7bd53f3d","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.17.tgz","fileCount":86,"integrity":"sha512-LwwjuMRVPceuM1Uie/QQQX5pAyNsmb3BnDyq9XgPFb7/7w7NHhmSa1bIr/Reii0r/9EkbvA07pmTzXhtbAHHdg==","signatures":[{"sig":"MEUCIHc1kaItQ8n1n7l92lklMJCbmtaV/YmUXRCKd3pcD6T5AiEAgPrCyyb2HcesE1YVqPJN17SItNJN07NddsNKL6Dvv1s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218247},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"642837d9a91b7f743f88378b279a6f0a3507de9b","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.17_1753197382172_0.2225949411978898","host":"s3://npm-registry-packages-npm-production"}},"1.4.18":{"name":"dromanis.finora.common","version":"1.4.18","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.18","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"79eecb9bf38bf4c60ed9296b0857517d34a8ba87","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.18.tgz","fileCount":86,"integrity":"sha512-n+nLg5oJO2jGgTeRYsLrq77BUPiF3g8l1vQOJi/TMPlzJ6IOrxa4d3bDqIQz708awY3qM7trQYp/SOxZRhJgKQ==","signatures":[{"sig":"MEUCIQDpPdGsewt7q1xJaRoQTn/C8e3dlvPdBw+zly5HATfxHwIgNppfGXNE2V4sOFzxpEEJU6hRfTJFl4bJQtyzxYcxPYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238809},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"6d4f6a040f8d2657fbeda7ab3be84a8d1abf489d","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.15"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.18_1753256667840_0.24065730643992955","host":"s3://npm-registry-packages-npm-production"}},"1.4.19":{"name":"dromanis.finora.common","version":"1.4.19","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.19","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"4b2ef0469de71a437efcb195c7c60f1c5248bb6a","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.19.tgz","fileCount":86,"integrity":"sha512-LpkkUlV1GxMqvE3Dp395aPtnmQaEXW7qP3oPwvVkjxe+61J/TbfXS5pMQXkqle4VTQb2ByCRLLBsEVIRHvAL1g==","signatures":[{"sig":"MEUCIDU/F0YmagFv29Z4dO2lbIOGzpiSwPHZXaiSq4vcIdIEAiEAyllzCZk+Zc7amww2dRZbgnKyfw5j4KvZFs4oa5ENCMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239207},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"187f70f243b39127d2371a6f30d426da3bad261f","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.15"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.19_1753342678043_0.913732959407836","host":"s3://npm-registry-packages-npm-production"}},"1.4.20":{"name":"dromanis.finora.common","version":"1.4.20","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.20","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"69a3dce59760403419591470f0f6cc4012d7e20c","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.20.tgz","fileCount":104,"integrity":"sha512-vcZGeHomZxi8/kK1otL8MPBjVxBmxpkOQIaMrqJlf7KaumsG1E+xR/GSSPhC4glpgYCRAe+KQDxOAu9QDHhCjg==","signatures":[{"sig":"MEUCIG8V/M2PnGa0XEpD3r/upEUPMUze5w11LzeH4Pj2AIWeAiEA7tpPLkNSnYULCt5CdnXKm86bhRdYnzl/iI2kOHXIQqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300851},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"b85666f027a515d66920f015579d82d4cb9d9fef","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.22"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.20_1753373178316_0.861517379391727","host":"s3://npm-registry-packages-npm-production"}},"1.4.21":{"name":"dromanis.finora.common","version":"1.4.21","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.21","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"a4fdb71705de46d5e3d2aac5a0824752257f9813","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.21.tgz","fileCount":110,"integrity":"sha512-O2mnHnIo+ym5Qt2LJYWLwkZFAkFhfrKdlcB00INCIuWzY9Op/h2bZCrrEfjBjxWYLdcWoefcNUhbO0jY2TzW0A==","signatures":[{"sig":"MEQCIHAQokJlBBy7ag08JO51ChpXZ+g+P1UCROvZP4nACClMAiAITXapKVIWj+bDYhhhCZkuEbsTOG5+EQJIxRHGDCvWkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322973},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"50b9072ca408626baa0fd8dfc877201c02f6af18","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.22"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.21_1753383470378_0.5907686715607003","host":"s3://npm-registry-packages-npm-production"}},"1.4.22":{"name":"dromanis.finora.common","version":"1.4.22","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.22","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"24e83408db173b265045d3b3e0d5d815d7ad84a1","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.22.tgz","fileCount":110,"integrity":"sha512-IHIb72RTvEy/jHsRQeiTFMqIiqYSUA7kUWDyCjDWX1rpMzYRd+H3u/ed5i7AHelmUiteUxiYpjCd3sVqtVIwbA==","signatures":[{"sig":"MEUCIB95ntJlQM1U5SIE08PVwWj4tDjoOLJOB+dfEVmWcjwtAiEArvuRN/YBdLIUpRSfUyOoc8Z0VcR24X24hM3a5hNk/nM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328469},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"6448ff14bef2d6c0c7c6c48d79f060bb49184ff4","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.24"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.22_1753545973704_0.9859884864817741","host":"s3://npm-registry-packages-npm-production"}},"1.4.23":{"name":"dromanis.finora.common","version":"1.4.23","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.23","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"2f2ba5dc9cd178cdc85a7bf308e6bafbed38eb59","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.23.tgz","fileCount":116,"integrity":"sha512-zoLrWoPbfC/aQuruQfiSGNIbKWNXvopD5dgouVeqPjt415qklYNN9caZPKKijBO7H6qrJKUQx6QXc8cEbu4XAw==","signatures":[{"sig":"MEUCIQC7l1wEwpMU0TwsTfBZCgy7JlpuIf9dACtpGfQWeUXL4AIgXDQv4QCiOpA2SRBmfS5LfKPbuPhxpZmgqTSdDhzzm1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332525},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"e4ce58467faadff03bdf8c748836815d1b7dba72","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.24"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.23_1753551639050_0.26912687206728525","host":"s3://npm-registry-packages-npm-production"}},"1.4.24":{"name":"dromanis.finora.common","version":"1.4.24","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.24","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"db6d2f393cadab5d2d97eb4dcfca712e53f9d3c2","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.24.tgz","fileCount":122,"integrity":"sha512-+CmxdzvN3SmgHpPlElWcyttkQb41eGlfVdDQep8d003IfClgZsP8w164YxKOWNrgC8RtiHEIq9ZyKXlNxdW11Q==","signatures":[{"sig":"MEUCIQCSMGZbrAIMQ4Z6dtogB72dZumyA0TytsrLsBReFFudkwIgUrAvV8PJ5jn/2BQR8sobj+oUjupRsndCxsEbka7n/oA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":351771},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"b1d10f4fe5d43ba001864d90f36b095667ddedb9","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.24"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.24_1753612300511_0.09257244044169921","host":"s3://npm-registry-packages-npm-production"}},"1.4.25":{"name":"dromanis.finora.common","version":"1.4.25","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@1.4.25","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"8696e5cab9c60e5078bcad3a11805cc63a6cf92c","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-1.4.25.tgz","fileCount":122,"integrity":"sha512-syW++0dofKwWNLmD7UJDbING34cOXVE8EsUA+/oDBAzXastUXL0VNRFW3/Da0/n+2/enQupdolw6mcCh0nAHYg==","signatures":[{"sig":"MEUCIAKSaGIn5/DQFBL2/SbzeyhnJCxM3X1H1u6Nx0fGo0LjAiEAkvp1XxUC2rKIqTb6wgQQRV8Pol+aeE1TwyGhbSuoveU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355499},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"bfafdbacdc33d404e7cde4c61a956ccb7d124ebf","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^1.8.28"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_1.4.25_1753636249053_0.5786340278833668","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"dromanis.finora.common","version":"3.0.1","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.0.1","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"bdaa935dc4e8efb9da7e972821e73fc8559fd1cc","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.0.1.tgz","fileCount":122,"integrity":"sha512-g+w2C6tiWP0GoucUJ07Muvk+UgAszhUIdHkAp3TgFP6wW9b0ZrzyKanQb1mibG+Qm8Lf6WB/lRxFuJUKvjfjhQ==","signatures":[{"sig":"MEQCIHkSptrLKOgNGhsGwRk0msh8vC37cfA5QN14XoMpDK80AiA91ojqEWCAoz/Z4UCHET+05yCSL9NeXbc8h3M+0wi/aQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353491},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"415225f2770da8265159fa97467eec8e59706737","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.0.1_1753815887268_0.25445639933115993","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"dromanis.finora.common","version":"3.0.2","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.0.2","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"dec1674a58111720de5d750a067b1c3e7d035f1e","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.0.2.tgz","fileCount":122,"integrity":"sha512-Mzs6tcHquo86aqiCVwr9mOZCB+ssQfpU5ycpU2/DR/FnQ+RIK8DP0IibgSTSXNBAa6xj1EsN8NnvGGZba0Njog==","signatures":[{"sig":"MEQCICkfJMxc+1tipjkCauvoT6mi4pqoG4ipve261K5LBlGpAiBuPBpyT+ZyvVxm7zmIFUUpxocna2L+kNj0p1rUHiTtTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354247},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"4a27481ee7be6ced6fd127ba04628d2d2f56d223","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.0.2_1754089580220_0.7186125106688395","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"dromanis.finora.common","version":"3.0.3","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.0.3","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"672406e48b303a50ccb61866cddc88190a43f4a0","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.0.3.tgz","fileCount":122,"integrity":"sha512-/XxiQbYQKKBEdCqqLPCTdbWZ2I8TJOmmkBE74wcPDQ02hFBamjanEc1jBxS2WuGRkV+vuChG/bevtHPbsPKSCg==","signatures":[{"sig":"MEUCICjXrB4rkJfrmdw+TFD+iF6bXANUA1Ef1+w/n0wojGngAiEAzr/DyTNbbvZ3VoNJZjzYFkMVpnE+nJ9l+TRs0y8cP4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355479},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"0b589968a493d67a8879a126183efc490ad9ad66","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.0.3_1754129379136_0.878043959667925","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"dromanis.finora.common","version":"3.3.1","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.1","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"9de19172f12a53d74c8efeb7009aee7f79e41b06","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.1.tgz","fileCount":122,"integrity":"sha512-fLhFKJVgI4Th9xvVRR29DUHZIDMEvO41J5cN1uINbBIWO0TgXi8gBqi5x1hL36R9hrMaEF/fmc1RAHE+9DJOWw==","signatures":[{"sig":"MEUCIA/jDqtHIzi02BRE6CcitpcCoLN6nDHoTyG9Q0QsaXvOAiEA+Y2p9poMW9RFj7xNRvPnbza9if3wsFO8UMHKisNrBIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355479},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"9e1cb6b542a2bb8f720f66ab31bd3298563ce4ad","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.1_1754138062679_0.7707224158710435","host":"s3://npm-registry-packages-npm-production"}},"3.3.2":{"name":"dromanis.finora.common","version":"3.3.2","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.2","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"1d5b1a0d7c364b9ba1680bf984fac482e042e77d","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.2.tgz","fileCount":122,"integrity":"sha512-GlJUT9llvsX4rRPXUj4jSrFuhPdoRfCyqMnRz1CGLXtuvGLlj4lmZEPPx5ZwzUa8QTJtRBs1hxZ7mTYMialp3A==","signatures":[{"sig":"MEQCIBYaIda5aliHgT0yVIcvYVCcz+dQwGAOh7jl/VjkesCqAiBHVpyxvqaDDgHNUJkyk2EcvrwejPDU4vkkSVg8S8QL7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355511},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"0c52d91853433e4ba6f86fbb5c8ebd5ca467fe1b","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.2_1754259043990_0.9459627052208268","host":"s3://npm-registry-packages-npm-production"}},"3.3.3":{"name":"dromanis.finora.common","version":"3.3.3","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.3","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"3787639e05f308fba61e96f7a9c55917f6fc4d43","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.3.tgz","fileCount":122,"integrity":"sha512-IpuFi+3W6vNTuwTVockgqeL15EcXuUNYRyuWGhnlA9tcvSkzXJ9lj8bKRkPMFunWymffXYg2vNvIlOVE2Dxz/w==","signatures":[{"sig":"MEQCICnY1UH+jc/3L5/EMVZby0fdOvQwrzQD400C008wLD4wAiAaRRjUfClE39vW0It2TeWkyF6j0XdVZV66IGgDO+pyXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357389},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"911c95bf77ce2eeb044869b12a82f53bc704151f","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.3_1754259746141_0.18279783909186742","host":"s3://npm-registry-packages-npm-production"}},"3.3.4":{"name":"dromanis.finora.common","version":"3.3.4","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.4","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"1b6ee0af25d33973b7767eb5ecae644d407ddf4b","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.4.tgz","fileCount":122,"integrity":"sha512-suhzI3U8T6yp9lKWwyQqVYpM/PGADekZ04j+a5dV7G7orrclUPA7PKc981vkkUzg/0j1c7UFF2nc6R6/wfVkSg==","signatures":[{"sig":"MEQCIGoKANYFekZClBTkMbv9PmE/rFetr4Ghp6snHt2osB0aAiBFOrTENy9Bd65e2Oj5FYpBk9uOUxHYGZiOlNS5ywOp7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355787},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"122b91aedd7ff452e3029f22af8636b6e1f66269","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.4_1754260974224_0.810412620220091","host":"s3://npm-registry-packages-npm-production"}},"3.3.5":{"name":"dromanis.finora.common","version":"3.3.5","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.5","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"0c3df7f38217dc5b3495fbc91034d398bbbbd2e4","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.5.tgz","fileCount":122,"integrity":"sha512-4d/zM9FdAoYjrUdayaoP/7hB2YWPCx1/5fmEAxVEsgvqqsJSU1/iD31CT7p8yhkR94h2Ixxpjhj0h7ivFuITVw==","signatures":[{"sig":"MEUCIQCQz8ICuVffL5TR002MDn5JOmv5ZPHlpDMurrvM9s/HzAIgNljMBlATwELFD0Bbs2uAKW1o45q8mMcbOs8dJMpYyDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355787},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"fb6088a06909c9564ae8413449782540bfd9ac2f","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.5_1754263168333_0.3669637566614077","host":"s3://npm-registry-packages-npm-production"}},"3.3.6":{"name":"dromanis.finora.common","version":"3.3.6","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.6","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"49ec4b17479f1acb6b9382f8dbbaea9137a0942c","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.6.tgz","fileCount":122,"integrity":"sha512-rE5I+7TIoskt3TtOorAiMHJc7UVCnhP0ra2kY9MU5lAiEQd+9D2EO5vezYCyE67Xr9z4EEWYtIbxyr7rkMzxkg==","signatures":[{"sig":"MEYCIQC2oVErYhqgmXyWAhHwJWfBpvJbOKsEq8vLTTiiqH9OKQIhAO7uiA0iYg1/lIJlOQNwKn8XRJeYDcn8xYGbsZPDhbjw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366639},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"94a1ddbb91912ef38452f756997184da28b9e402","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.6_1754303490064_0.006690929695301273","host":"s3://npm-registry-packages-npm-production"}},"3.3.7":{"name":"dromanis.finora.common","version":"3.3.7","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.7","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"2d5a30b400e0d8d2627614790142d2cf81e04126","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.7.tgz","fileCount":122,"integrity":"sha512-93vJfDQCdkwNprXg4uTVpXZRrVsDok03ujAmskH9z0fepVekiRsvnfc9jHFCrbt0NYNTg53+VBiBEr8zQ4J+bQ==","signatures":[{"sig":"MEYCIQDOpJQ0aXHAEdgUzu6qYjbCTeydjXvbS7+plsBbmun2xQIhANeBgBW4WYh8SgTbzJvpRtmOWLS5BPeBTvPHf9I41igG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368633},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"94a1ddbb91912ef38452f756997184da28b9e402","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.7_1754305141748_0.7072220945380596","host":"s3://npm-registry-packages-npm-production"}},"3.3.8":{"name":"dromanis.finora.common","version":"3.3.8","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.8","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"5bc8dd437c38298dd159bce7d64d98b5276a0671","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.8.tgz","fileCount":122,"integrity":"sha512-0qTbuxrh8Exiu+obmIyRFdepyld+GZbLExMOAAERTmJH2w5ZtprQVgops3pfkBVfT690mweLscVKYExE59gMGw==","signatures":[{"sig":"MEQCIGOtmwUMJ+Alkbh9fFN600d/5f7stbbZsDaMDz/s3Aq8AiBqoIw/whJ4dk4Nd4S31v25+e4GvI/xReHBzCNMCOGxrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":370739},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"acbe73a743352ca5f11f1644888a6e1b6b1e92bf","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.8_1754307611063_0.8713939089353411","host":"s3://npm-registry-packages-npm-production"}},"3.3.9":{"name":"dromanis.finora.common","version":"3.3.9","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.9","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"99e4d7de5cef3a84ba105afbeddd213ac6c6328a","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.9.tgz","fileCount":122,"integrity":"sha512-ar8HIIJ37zjVuQK1wbxGmrLix+STuCxkCdfJs7WlHOBAdsGDGOf5H5ecB5expeSL9wtx3yiQxusnqq//Dx7XZg==","signatures":[{"sig":"MEQCIFjPwpLlTOR/cRfWMZ0Ff3QrpVrYkyst0e/8s1nlrMlfAiB8XX2N6fmgcY+mEsOmgK1pTJ8/uWmVEaMINPrB5LS+4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":373599},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"af5bb37e19e5266c813585ae1805250cabafa6b2","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.9_1754400090145_0.6790251916519361","host":"s3://npm-registry-packages-npm-production"}},"3.3.10":{"name":"dromanis.finora.common","version":"3.3.10","keywords":["typescript","utilities","common","dromanis","finora"],"author":"","license":"MIT","_id":"dromanis.finora.common@3.3.10","maintainers":[{"name":"tariqkarim","email":"tariq.karim@gmail.com"}],"dist":{"shasum":"dd27b78ff63de0f80b1c72412c489605ddc3c92a","tarball":"https://registry.npmjs.org/dromanis.finora.common/-/dromanis.finora.common-3.3.10.tgz","fileCount":122,"integrity":"sha512-mQGpA2m5IWD13OweRrviYWQ5v1urrkp+2g3+3qTMTQkczllpefchtynU+sPG8hjnraD+YyTaY+YvAciJu4Q5Ow==","signatures":[{"sig":"MEUCIDVe9S0UptRVS5MrlJJ5OGshVXKExxlBXFMDh78Yj+UlAiEA1KcnrSljGpXbwvQpVAldxg/nXH01PjooGgQxvzEoLEo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386578},"main":"./dist-cjs/index.js","types":"./dist-esm/index.d.ts","module":"./dist-esm/index.js","exports":{"import":"./dist-esm/index.js","require":"./dist-cjs/index.js"},"gitHead":"a11144d21e11e76c3f2e9daacb628ca74bf69e7f","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs","clean":"rm -rf dist-cjs dist-esm","prepare":"husky install","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"tariqkarim","email":"tariq.karim@gmail.com"},"_npmVersion":"10.9.2","description":"Common utilities and functions for Dromanis Finora projects","directories":{},"_nodeVersion":"23.10.0","dependencies":{"moment":"^2.30.1","string":"^3.3.3","dromanis.finora.types":"^3.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^8.0.0","ts-jest":"^29.1.1","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.4","@types/moment":"^2.11.29"},"_npmOperationalInternal":{"tmp":"tmp/dromanis.finora.common_3.3.10_1754492894150_0.4863636780964713","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-07-05T12:01:25.808Z","modified":"2025-12-20T00:38:04.710Z","1.0.0":"2025-07-05T12:01:26.157Z","1.1.0":"2025-07-05T12:10:16.807Z","1.2.0":"2025-07-05T15:00:01.673Z","1.3.0":"2025-07-05T23:36:38.932Z","1.4.0":"2025-07-05T23:48:40.930Z","1.4.1":"2025-07-06T12:17:05.232Z","1.4.2":"2025-07-06T12:54:25.317Z","1.4.3":"2025-07-07T15:15:29.850Z","1.4.4":"2025-07-08T11:25:57.129Z","1.4.5":"2025-07-12T07:30:26.496Z","1.4.6":"2025-07-13T20:40:33.719Z","1.4.7":"2025-07-13T21:23:51.007Z","1.4.8":"2025-07-18T13:21:32.535Z","1.4.9":"2025-07-18T15:10:21.174Z","1.4.10":"2025-07-18T17:25:10.881Z","1.4.11":"2025-07-18T23:22:45.365Z","1.4.12":"2025-07-19T10:08:11.574Z","1.4.13":"2025-07-19T19:42:25.899Z","1.4.14":"2025-07-20T15:26:43.373Z","1.4.15":"2025-07-20T16:30:20.311Z","1.4.16":"2025-07-22T07:52:30.156Z","1.4.17":"2025-07-22T15:16:22.354Z","1.4.18":"2025-07-23T07:44:28.002Z","1.4.19":"2025-07-24T07:37:58.206Z","1.4.20":"2025-07-24T16:06:18.534Z","1.4.21":"2025-07-24T18:57:50.601Z","1.4.22":"2025-07-26T16:06:13.901Z","1.4.23":"2025-07-26T17:40:39.247Z","1.4.24":"2025-07-27T10:31:40.788Z","1.4.25":"2025-07-27T17:10:49.247Z","3.0.1":"2025-07-29T19:04:47.463Z","3.0.2":"2025-08-01T23:06:20.424Z","3.0.3":"2025-08-02T10:09:39.360Z","3.3.1":"2025-08-02T12:34:22.862Z","3.3.2":"2025-08-03T22:10:44.177Z","3.3.3":"2025-08-03T22:22:26.338Z","3.3.4":"2025-08-03T22:42:54.398Z","3.3.5":"2025-08-03T23:19:28.563Z","3.3.6":"2025-08-04T10:31:30.242Z","3.3.7":"2025-08-04T10:59:01.936Z","3.3.8":"2025-08-04T11:40:11.278Z","3.3.9":"2025-08-05T13:21:30.329Z","3.3.10":"2025-08-06T15:08:14.323Z"},"license":"MIT","keywords":["typescript","utilities","common","dromanis","finora"],"description":"Common utilities and functions for Dromanis Finora projects","maintainers":[{"email":"root@madida.io","name":"root-madida"}],"readme":"# Dromanis Finora Common\n\n[![npm version](https://badge.fury.io/js/dromanis.finora.common.svg)](https://badge.fury.io/js/dromanis.finora.common)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\n[![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](#)\n[![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)](#)\n\nA comprehensive TypeScript utility library for financial calculations and portfolio analytics. This library provides robust, well-tested components for investment portfolio management, trading analytics, risk assessment, and financial data processing.\n\n## 🌟 Features\n\n- **🧮 Financial Calculators**: Portfolio analytics, trade calculations, cash flow analysis\n- **📊 Distribution Analysis**: Risk, sector, industry, and instrument type distributions\n- **💱 Currency Support**: Multi-currency portfolio support with FX rate conversions\n- **📈 Performance Analytics**: P&L calculations, return percentages, daily change tracking\n- **🔧 Utility Functions**: Date handling, formatting, string manipulation, number operations\n- **📋 Logging**: Configurable logging with multiple levels and contexts\n- **🧪 Fully Tested**: 100% test coverage with 507+ comprehensive tests\n- **🔄 Async Support**: Modern async/await patterns with dependency injection\n- **📦 Dual Packaging**: Both CommonJS and ES Module builds included\n\n## 📦 Installation\n\n```bash\nnpm install dromanis.finora.common\n```\n\n## 🚀 Quick Start\n\n```typescript\nimport { \n  PortfolioCalculator, \n  RiskProfileCalculator,\n  TradeCalculator,\n  Formatter,\n  formatCurrency,\n  parseDate\n} from 'dromanis.finora.common';\n\n// Calculate investment summary\nconst portfolioCalculator = new PortfolioCalculator();\nconst investmentSummary = await portfolioCalculator.calculateInvestmentSummary(\n  asOfDateTime,\n  userProfile,\n  instruments,\n  portfolios,\n  transactions,\n  cashTransactions,\n  pricePoints,\n  fxRatePoints,\n  pricePointCalculator\n);\n\n// Analyze risk distribution\nconst riskCalculator = new RiskProfileCalculator();\nconst riskDistribution = riskCalculator.calculateRiskProfile(\n  instruments,\n  portfolioBreakdowns,\n  instrumentRiskProfiles,\n  userInstruments\n);\n\n// Format financial data\nconst formatter = new Formatter();\nconst formattedAmount = formatter.formatCurrency(1234.56, 'USD'); // \"$1,234.56\"\nconst formattedPercent = formatter.formatPercentage(12.345); // \"12.35%\"\n```\n\n## 📚 API Documentation\n\n### 🧮 Financial Calculators\n\n#### `PortfolioCalculator`\n\nCore calculator for comprehensive investment portfolio analytics.\n\n```typescript\nclass PortfolioCalculator {\n  async calculateInvestmentSummary(\n    asOfDateTime: string,\n    userProfile: UserProfile,\n    instruments: Instrument[],\n    portfolios: Portfolio[],\n    transactions: Transaction[],\n    cashTransactions: CashTransaction[],\n    pricePoints: PricePoint[],\n    fxRatePoints: FxRatePoint[],\n    pricePointCalculator: IPricePointCalculator\n  ): Promise<InvestmentSummary>\n}\n```\n\n**Features:**\n- Multi-portfolio aggregation with currency conversion\n- Real-time P&L calculations with daily change tracking\n- Cash balance integration\n- Instrument-level breakdown analysis\n- Asynchronous price point resolution\n\n**Returns:** `InvestmentSummary` containing:\n- `totalAnalytics`: Aggregated portfolio performance metrics\n- `totalCashBalance`: Combined cash positions across portfolios\n- `portfoliosAnalytics`: Individual portfolio breakdowns\n- `portfoliosCashBalance`: Per-portfolio cash balances\n\n#### `TradeCalculator`\n\nCalculates individual trades from transaction history with FIFO lot matching.\n\n```typescript\nclass TradeCalculator {\n  async calculateTrades({\n    asOfDateTime,\n    instruments,\n    portfolios,\n    pricePoints,\n    fxRatePoints,\n    transactions,\n    pricePointCalculator\n  }: TradeCalculatorParams): Promise<Trade[]>\n}\n```\n\n**Features:**\n- FIFO (First-In-First-Out) lot matching algorithm\n- Cross-currency position tracking\n- Real-time market value calculations\n- Previous day value and daily change percentage\n- Comprehensive analytics per trade\n\n#### `CashCalculator`\n\nProcesses cash transactions and calculates balances.\n\n```typescript\nclass CashCalculator {\n  calculateCashBalance(\n    asOfDateTime: string,\n    portfolio: Portfolio,\n    cashTransactions: CashTransaction[],\n    trades: Trade[],\n    fxRatePoints: FxRatePoint[]\n  ): CashBalance\n}\n```\n\n#### `FxRateCalculator`\n\nHandles currency conversions with interpolation and cross-currency support.\n\n```typescript\nclass FxRateCalculator {\n  convert(\n    amount: number,\n    fromCurrency: string,\n    toCurrency: string,\n    asOfDateTime: string,\n    fxRatePoints: FxRatePoint[]\n  ): number | null\n}\n```\n\n**Features:**\n- Direct and reverse currency pair lookup\n- Time-based rate interpolation\n- Cross-currency conversion via intermediate currencies\n- Automatic rate sorting and caching\n\n#### `PricePointCalculator`\n\nCalculates instrument prices with time-based interpolation.\n\n```typescript\nclass PricePointCalculator implements IPricePointCalculator {\n  async calculatePricePoint(\n    instrumentId: string,\n    asOfDateTime: string,\n    allPricePoints: PricePoint[]\n  ): Promise<PricePoint | null>\n}\n```\n\n### 📊 Distribution Analyzers\n\n#### `RiskProfileCalculator`\n\nAnalyzes portfolio risk distribution across high/medium/low risk categories.\n\n```typescript\nclass RiskProfileCalculator {\n  calculateRiskProfile(\n    instruments: Instrument[],\n    portfolioInstrumentBreakdowns: PortfolioInstrumentBreakdown[],\n    instrumentRiskProfiles: InstrumentRiskProfile[],\n    userInstruments: UserInstrument[]\n  ): RiskDistribution\n}\n```\n\n**Returns:** `RiskDistribution` with:\n- Risk percentage breakdowns (high/medium/low/unknown)\n- Absolute values per risk category\n- Instrument lists per risk level\n- Fallback to UserInstrument risk levels when profiles unavailable\n\n#### `SectorDistributionCalculator`\n\nCalculates portfolio distribution by market sectors.\n\n```typescript\nclass SectorDistributionCalculator {\n  calculateSectorDistribution(\n    instruments: Instrument[],\n    portfolioInstrumentBreakdowns: PortfolioInstrumentBreakdown[]\n  ): SectorDistribution\n}\n```\n\n**Features:**\n- Sector-based portfolio allocation analysis\n- Top 3 sector concentration metrics\n- Herfindahl-Hirschman Index (HHI) diversification scoring\n- Instrument lists per sector\n\n#### `IndustryDistributionCalculator`\n\nAnalyzes portfolio distribution by industries.\n\n```typescript\nclass IndustryDistributionCalculator {\n  calculateIndustryDistribution(\n    instruments: Instrument[],\n    portfolioInstrumentBreakdowns: PortfolioInstrumentBreakdown[]\n  ): IndustryDistribution\n}\n```\n\n#### `InstrumentDistributionCalculator`\n\nProvides granular instrument-level portfolio analysis.\n\n```typescript\nclass InstrumentDistributionCalculator {\n  calculateInstrumentDistribution(\n    instruments: Instrument[],\n    portfolioInstrumentBreakdowns: PortfolioInstrumentBreakdown[]\n  ): InstrumentDistribution\n}\n```\n\n**Features:**\n- Individual instrument allocation percentages\n- Top 5 and Top 10 holdings analysis\n- Small holdings concentration (under 1%)\n- Diversification scoring\n\n#### `InstrumentTypeDistributionCalculator`\n\nCalculates distribution by asset classes (stocks, ETFs, bonds, etc.).\n\n```typescript\nclass InstrumentTypeDistributionCalculator {\n  calculateInstrumentTypeDistribution(\n    instruments: Instrument[],\n    portfolioInstrumentBreakdowns: PortfolioInstrumentBreakdown[]\n  ): InstrumentTypeDistribution\n}\n```\n\n### 🔧 Utility Functions\n\n#### Date Utilities\n\nComprehensive UTC-based date handling functions:\n\n```typescript\n// Date parsing and validation\nparseDate(dateString: string): moment.Moment | null\nparseDateTime(dateTimeString: string): moment.Moment | null\n\n// Date generation\ngetTodayDate(): string // YYYY-MM-DD format\ngetTodayDateTime(): string // YYYY-MM-DD HH:mm:ss format\n\n// Date comparison\nisAfter(date1: string, date2: string): boolean\nisBefore(date1: string, date2: string): boolean\nisSame(date1: string, date2: string): boolean\nisSameOrAfter(date1: string, date2: string): boolean\nisSameOrBefore(date1: string, date2: string): boolean\n\n// Date arithmetic\naddHours(dateTime: string, hours: number): string\naddMinutes(dateTime: string, minutes: number): string\naddDays(dateTime: string, days: number): string\naddMonths(dateTime: string, months: number): string\naddYears(dateTime: string, years: number): string\n\n// Utility functions\ntoEndOfDayDateTime(dateOrDateTime: string): string\nisExchangeOpen(dateTime: string, exchange: string): boolean\n```\n\n#### Formatting Utilities\n\nProfessional formatting for financial data:\n\n```typescript\nclass Formatter {\n  formatCurrency(amount: number, currency: string): string\n  formatPercentage(percentage: number): string\n  formatQuantity(quantity: number): string\n  formatEnum(enumValue: string): string\n}\n\n// Standalone formatting functions\nformatCurrency(amount: number, currency?: string, locale?: string): string\nround(value: number, decimals?: number): number\npercentage(value: number, total: number, decimals?: number): number\n```\n\n#### String Utilities\n\nText processing and manipulation:\n\n```typescript\n// Case conversions\ncapitalize(str: string): string\ntoCamelCase(str: string): string\ntoKebabCase(str: string): string\n\n// Text processing\ntruncate(str: string, length: number, suffix?: string): string\nnormalizeWhitespace(str: string): string\nrandomString(length: number, charset?: string): string\n```\n\n#### Number Utilities\n\nMathematical operations and validations:\n\n```typescript\n// Range operations\nisInRange(value: number, min: number, max: number): boolean\nclamp(value: number, min: number, max: number): number\n\n// Validation\nisEven(value: number): boolean\nisOdd(value: number): boolean\nisNegative(value: number): boolean\n\n// Generation\nrandomNumber(min: number, max: number): number\n```\n\n#### Logging\n\nConfigurable logging system with multiple levels:\n\n```typescript\ninterface Logger {\n  debug(message: string, context?: string, data?: any): void\n  info(message: string, context?: string, data?: any): void\n  warn(message: string, context?: string, data?: any): void\n  error(message: string, context?: string, data?: any): void\n  child(context: string): Logger\n}\n\n// Usage\nimport { logger, createLogger } from 'dromanis.finora.common';\n\nlogger.info('Portfolio calculation completed', 'PortfolioService', { portfolioId: 'P123' });\nconst childLogger = logger.child('TradeCalculator');\n```\n\n**Configuration via Environment Variables:**\n- `LOG_LEVEL`: DEBUG, INFO, WARN, ERROR (default: DEBUG)\n- `LOG_TIMESTAMP`: true/false (default: true)\n\n#### ID Generation\n\nUnique identifier generation using UUID v4 (GUID):\n\n```typescript\nclass IdGenerator {\n  generateId(prefix?: string): string\n}\n\n// Global instance\nimport { idGenerator } from 'dromanis.finora.common';\nconst id = idGenerator.generateId('TXN'); // TXN-xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\nconst pureUuid = idGenerator.generateId(); // xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\n```\n\n**Features:**\n- Generates RFC 4122 compliant UUID v4 (random-based)\n- Optional prefix support with hyphen separator\n- Uses `crypto.randomUUID()` when available for better performance\n- Fallback implementation for older environments\n- Guaranteed global uniqueness\n\n#### Trade Utilities\n\nHelper functions for trade and portfolio analysis:\n\n```typescript\nclass TradeUtil {\n  getNumber(obj: any, key: string, fallback: number): number\n  inferPortfolioCurrency(portfolioId: string, portfolios: Portfolio[], userProfile: UserProfile): string\n  inferInstrumentDisplay(instrumentId: string, instruments: Instrument[]): { symbol: string; name: string }\n  getAverageBuyingPrice(breakdown: PortfolioInstrumentBreakdown): number\n  getAverageCurrentPrice(breakdown: PortfolioInstrumentBreakdown): number\n  getTotalProfit(breakdown: PortfolioInstrumentBreakdown): number\n  getTotalProfitPercentage(breakdown: PortfolioInstrumentBreakdown): number\n  calculateProfitLoss(transaction: Transaction, trades: Trade[], fxRatePoints: FxRatePoint[]): number\n}\n```\n\n### 🏗️ Type Interfaces\n\n#### `IPricePointCalculator`\n\nInterface for price point calculation services:\n\n```typescript\ninterface IPricePointCalculator {\n  calculatePricePoint(\n    instrumentId: string,\n    asOfDateTime: string,\n    allPricePoints: PricePoint[]\n  ): Promise<PricePoint | null>\n}\n```\n\n#### Distribution Result Types\n\n```typescript\ninterface RiskDistribution {\n  highRiskPercentage: number\n  mediumRiskPercentage: number\n  lowRiskPercentage: number\n  totalInvestmentValue: number\n  breakdown: {\n    highRisk: { value: number; percentage: number; instruments: string[] }\n    mediumRisk: { value: number; percentage: number; instruments: string[] }\n    lowRisk: { value: number; percentage: number; instruments: string[] }\n    unknown: { value: number; percentage: number; instruments: string[] }\n  }\n}\n\ninterface SectorDistribution {\n  sectors: Record<string, { percentage: number; value: number; instruments: string[] }>\n  totalInvestmentValue: number\n  diversificationScore: number\n  topThreeConcentration: number\n}\n\ninterface IndustryDistribution {\n  industries: Record<string, { percentage: number; value: number; instruments: string[] }>\n  totalInvestmentValue: number\n  diversificationScore: number\n}\n\ninterface InstrumentDistribution {\n  instruments: Record<string, { percentage: number; value: number }>\n  totalInvestmentValue: number\n  diversificationScore: number\n  topFiveConcentration: number\n  topTenConcentration: number\n  smallHoldingsConcentration: number\n  smallHoldingsCount: number\n}\n\ninterface InstrumentTypeDistribution {\n  instrumentTypes: Record<string, { percentage: number; value: number; instruments: string[] }>\n  totalInvestmentValue: number\n  diversificationScore: number\n  topThreeConcentration: number\n}\n```\n\n## 🛠️ Development\n\n### Prerequisites\n\n- Node.js 16+ \n- npm or yarn\n- TypeScript 5.0+\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone <repository-url>\ncd dromanis.finora.common\n\n# Install dependencies\nnpm install\n\n# Build the project\nnpm run build\n```\n\n### Available Scripts\n\n```bash\n# Development\nnpm run build          # Build both ESM and CommonJS\nnpm run build:esm      # Build ES modules only\nnpm run build:cjs      # Build CommonJS only\nnpm run clean          # Remove build artifacts\n\n# Testing\nnpm test               # Run all tests\nnpm run test:watch     # Run tests in watch mode\nnpm run test:coverage  # Generate coverage report\n\n# Code Quality\nnpm run prepare        # Setup husky hooks\n```\n\n### Project Structure\n\n```\nsrc/\n├── domain/           # Financial calculation classes\n│   ├── calculators/  # Core financial calculators\n│   └── analyzers/    # Distribution analysis tools\n├── utils/            # Utility functions\n│   ├── date.ts       # Date handling utilities\n│   ├── formatter.ts  # Data formatting\n│   ├── string.ts     # String manipulation\n│   ├── number.ts     # Mathematical operations\n│   └── logger.ts     # Logging system\n└── __tests__/        # Comprehensive test suite\n```\n\n### Build System\n\nThe library uses TypeScript with dual-module compilation:\n\n- **ESM Build** (`dist-esm/`): Modern ES modules for bundlers\n- **CommonJS Build** (`dist-cjs/`): Legacy CommonJS for Node.js\n\nBuild configurations:\n- `tsconfig.esm.json` - ES modules configuration\n- `tsconfig.cjs.json` - CommonJS configuration  \n- `tsconfig.test.json` - Test environment configuration\n\n## 🧪 Testing\n\nThe library maintains **100% test coverage** with comprehensive test suites:\n\n- **507+ Test Cases** across 17 test suites\n- **Numerical Validation** for all financial calculations\n- **Edge Case Coverage** including error scenarios\n- **Integration Tests** for complex workflows\n- **Performance Tests** for large datasets\n\n```bash\n# Run specific test suites\nnpm test -- --testPathPattern=portfolioCalculator\nnpm test -- --testPathPattern=riskProfile\nnpm test -- --testPathPattern=utils\n\n# Generate detailed coverage report\nnpm run test:coverage\n```\n\n### Test Categories\n\n- **Unit Tests**: Individual function and class testing\n- **Integration Tests**: Multi-component workflow testing  \n- **Numerical Validation**: Mathematical accuracy verification\n- **Edge Case Testing**: Boundary condition and error handling\n- **Performance Testing**: Large dataset handling verification\n\n## 📋 Dependencies\n\n### Runtime Dependencies\n\n- **[dromanis.finora.types](https://www.npmjs.com/package/dromanis.finora.types)** `^3.0.1` - Core type definitions\n- **[moment](https://momentjs.com/)** `^2.30.1` - Date manipulation and parsing\n- **[string](https://www.npmjs.com/package/string)** `^3.3.3` - Advanced string operations\n\n### Development Dependencies\n\n- **TypeScript** `^5.0.0` - Type-safe JavaScript development\n- **Jest** `^29.7.0` - Testing framework with TypeScript support\n- **Husky** `^8.0.0` - Git hooks for code quality\n\n## 🔄 Version History\n\n### Latest: v3.0.1\n\n**Major Features:**\n- ✨ UserInstrument fallback support in RiskProfileCalculator\n- 🔄 Asynchronous patterns with dependency injection\n- 📊 Enhanced daily change percentage calculations\n- 🧮 Comprehensive distribution analyzers\n- 🛡️ Improved error handling and edge case coverage\n\n**Breaking Changes:**\n- Method signatures updated to support async/await patterns\n- Additional required parameters for enhanced functionality\n\n### Migration Guide\n\nUpdating from v2.x to v3.x requires:\n\n1. **Async Method Calls**: Update to async/await pattern\n2. **Additional Parameters**: Provide required dependencies\n3. **Type Updates**: Update imports for new distribution types\n\n```typescript\n// v2.x (legacy)\nconst summary = portfolioCalculator.calculateInvestmentSummary(/*...*/);\n\n// v3.x (current)\nconst summary = await portfolioCalculator.calculateInvestmentSummary(\n  /*...existing params...*/, \n  pricePointCalculator\n);\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! Please follow these guidelines:\n\n### Code Standards\n\n- **TypeScript**: Use strict type checking\n- **Testing**: Maintain 100% test coverage\n- **Documentation**: Update README for new features\n- **Formatting**: Follow existing code style\n\n### Pull Request Process\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** changes (`git commit -m 'Add amazing feature'`)\n4. **Write** comprehensive tests\n5. **Push** to branch (`git push origin feature/amazing-feature`)\n6. **Open** a Pull Request\n\n### Issue Reporting\n\nWhen reporting issues, please include:\n\n- **Environment**: Node.js version, OS, package version\n- **Expected vs Actual**: Clear description of the problem\n- **Reproduction**: Minimal code example\n- **Error Messages**: Full stack traces if applicable\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🆘 Support\n\n- **Documentation**: This README and inline code documentation\n- **Issues**: [GitHub Issues](https://github.com/your-org/dromanis.finora.common/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/your-org/dromanis.finora.common/discussions)\n\n## 🔗 Related Packages\n\n- **[dromanis.finora.types](https://www.npmjs.com/package/dromanis.finora.types)** - Core type definitions\n- **[dromanis.finora.api](https://www.npmjs.com/package/dromanis.finora.api)** - API client library\n- **[dromanis.finora.ui](https://www.npmjs.com/package/dromanis.finora.ui)** - React component library\n\n---\n\n**Made with ❤️ for the financial technology community**","readmeFilename":"README.md"}