{"_id":"@altraplay/core","_rev":"25-b5285e49b4b68c1755e939f034881209","name":"@altraplay/core","dist-tags":{"latest":"2.1.3"},"versions":{"1.0.5":{"name":"@altraplay/core","version":"1.0.5","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@1.0.5","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"5fe42ad3cdc0719f723105d06336ad1a499d9bb9","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-1.0.5.tgz","fileCount":8,"integrity":"sha512-KS70JOkpEaQnP+LwKEMxwHnzSI/ukEVZqwLgXbw3xtMR822SOaoXSC/0hmC3+noUzASatjhD4NFYx3RwCrMKdg==","signatures":[{"sig":"MEQCIG2WK6bVCe1kkb7VsS6vsEKyKUDKUwT6ZLHBO20D7M/fAiB57uXlSahhGOtAvaVGhz5sFVkT+lcCxIHyBc4AvbvXSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60627},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.3.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.0.2","dependencies":{"kafkajs":"^2","jsonwebtoken":"^9","cassandra-driver":"^4","@aws-sdk/client-s3":"^3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","@types/bun":"latest","typescript":"^5.0.0","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.5_1748763690149_0.3297628202770102","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@altraplay/core","version":"1.0.6","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@1.0.6","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"44645718c878a73052121eae6188f686bbe2d768","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-1.0.6.tgz","fileCount":8,"integrity":"sha512-/u7eq9QAy6K3qgDKmg1Qa6bRMpWbEPfhRwMrx6MEK5a3SuTL3BB+maoyQTqqQDLSF4bz7eI89ChOVYZmSAQBMg==","signatures":[{"sig":"MEQCIHQujpPiQiXVEXs+dHf6MzdwdZQgm9+TJ6webiOLH08bAiB9fi8eBvJiRXzsOvkCUOGjfzqKB5aFVmX473wuxCvb5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72910},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.3.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.0.2","dependencies":{"kafkajs":"^2.2.4","jsonwebtoken":"^9.0.2","cassandra-driver":"^4.8.0","@aws-sdk/client-s3":"^3.821.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","@types/bun":"latest","typescript":"^5.8.3","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.6_1748951610965_0.9216375781381156","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@altraplay/core","version":"1.0.7","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@1.0.7","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"4da9204452ab486ac3d1837e6fb5b8cc0c2aaedd","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-1.0.7.tgz","fileCount":8,"integrity":"sha512-4zKkJw/O63VCNkftctff9OszLmgSKaJ913F4JfiGPHqoQxefeACVjuuvRe3pqVwUuqtJ4dx1GXGtRXWqxhzJ/g==","signatures":[{"sig":"MEUCIQC7eYBxk6vkA++bTPqy1Ihz5r4uffbAsp9st7NW36WL9AIgKS5SHNU3j8obJ8KYNl7AYfaIy7dfk7U3IVPJPpeys+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71522},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"b4d5d2f29d79a2189c3ce7e035b93b8bd91078c6","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.3.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.0.2","dependencies":{"kafkajs":"^2.2.4","jsonwebtoken":"^9.0.2","cassandra-driver":"^4.8.0","@aws-sdk/client-s3":"^3.821.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","@types/bun":"latest","typescript":"^5.8.3","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.7_1749023048608_0.2789401255692079","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@altraplay/core","version":"1.0.8","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@1.0.8","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"fa763fd24aea08522bbda44da281885a8113876f","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-1.0.8.tgz","fileCount":8,"integrity":"sha512-3i/dZiGIhJZRzMqduTZ5YnteiLAOPyKeErr8Q5JuldOYELXS0CmTCSFi0B6d/QHATub41LB6l702MZI8DNdW0Q==","signatures":[{"sig":"MEYCIQDrgviSUZ3KENlLI12W2512cRKnjVM+dpGqctxFSmT0mwIhAKXyk1K/Ss4awClX8gNDYKT+Jztq1knOsSaWsgxEUw2j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71704},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"55724e83d0880c4fa49dc922e2e3ce466dea9f20","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.3.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.0.2","dependencies":{"kafkajs":"^2.2.4","jsonwebtoken":"^9.0.2","cassandra-driver":"^4.8.0","@aws-sdk/client-s3":"^3.821.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","@types/bun":"latest","typescript":"^5.8.3","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.8_1749045432866_0.7656832811512861","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@altraplay/core","version":"1.0.9","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@1.0.9","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"6f6be5dc5871d87623fe7cb0e27ca5387ff8eb88","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-1.0.9.tgz","fileCount":8,"integrity":"sha512-yQzwVRE32OQREdgq0JYItnxT7T6zXHLM3e1q5YbUsnm3Pt8rN4gmfaS8EoDpk3dcojL5RK65C4Xn61zQTnnuRg==","signatures":[{"sig":"MEUCIF0Id15cnjoss2WbBLxw21VBfuAke2Xl7OxDetozcH2+AiEAuto7l7WMWYNMzRteQNM5H3rpRZ/1A8i+uSwxVGUMlRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84303},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"55724e83d0880c4fa49dc922e2e3ce466dea9f20","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.3.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.0.2","dependencies":{"ioredis":"^5.6.1","kafkajs":"^2.2.4","jsonwebtoken":"^9.0.2","cassandra-driver":"^4.8.0","@aws-sdk/client-s3":"^3.821.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","@types/bun":"latest","typescript":"^5.8.3","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.9_1749308105545_0.6786804392265711","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@altraplay/core","version":"1.0.10","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@1.0.10","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"c9e3b002d9546c5d43bf63ae5c3294a142e3d421","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-1.0.10.tgz","fileCount":8,"integrity":"sha512-df2OJtSF54QGE0kPJlZtWvj1BWWXvBwK/JXz2suac2AB+kMHNxl+VkHEUaLj5W9XImbUh2J6ZjNB2BK8CmFWgQ==","signatures":[{"sig":"MEQCIFFcjd5Tp2kWWgy+gnrYS7r7t97764ssmRLS6KCsBWvCAiBhtB0Orphgh0yqOmTR1+c07Adg+Qmgl//bNWv74zYS4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86139},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"14fa29b77ad306c2aa3168cd9824491e8bdffd5b","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.3.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.0.2","dependencies":{"ioredis":"^5.6.1","kafkajs":"^2.2.4","jsonwebtoken":"^9.0.2","cassandra-driver":"^4.8.0","@aws-sdk/client-s3":"^3.821.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","@types/bun":"latest","typescript":"^5.8.3","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.10_1749557045722_0.7975172444999821","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@altraplay/core","version":"1.0.11","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@1.0.11","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"1e8ed08c53d7d1272adc5aa8e34ee3552adb0fca","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-1.0.11.tgz","fileCount":8,"integrity":"sha512-AH9Ho5ZGjxAMxTFGL6SW6clH2HuuzaogF8yf47bMAHKlUM2tph81X83rqOeY0wiSsSPQNY7tLsbxlRJxlqft6w==","signatures":[{"sig":"MEQCIELe4rFTXI+GiTga5JifhLpXAt0Q9Aej0cDOwYe6+iw9AiA8XGo8EZNVFBhb80AtF1kWR8MKaXuAcpP5G2E1J8lY4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86886},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"e94dc34bbb42c03aa622ba82dfa42d89e7eb2ea5","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.3.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.0.2","dependencies":{"ioredis":"^5.6.1","kafkajs":"^2.2.4","jsonwebtoken":"^9.0.2","cassandra-driver":"^4.8.0","@aws-sdk/client-s3":"^3.821.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","@types/bun":"latest","typescript":"^5.8.3","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.11_1750055496799_0.939792003833956","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@altraplay/core","version":"1.0.12","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@1.0.12","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"e9cac9729a9dd8d71d39278a9e3587a0d16f50e0","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-1.0.12.tgz","fileCount":8,"integrity":"sha512-FisDDXkf7bYUM+W8Hx+nR6zwwTQ71D/ShQwutk7VmSwKJRi3jNfZPKqBwx9rbBqtjqwxYTAP6VkmMilTCHw7Sg==","signatures":[{"sig":"MEUCIQCdoALB6olGHja8q075FM7+dgQwvDVr9Z1tEFPi7wmugQIgEltuhwSzcV9X96s6YAHeq8inu3wQ7YFLQgUNKXX2ivw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91090},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"a046968825b6c3c808ad97007441413a08fcdd31","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.3.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.0.2","dependencies":{"ioredis":"^5.7.0","kafkajs":"^2.2.4","jsonwebtoken":"^9.0.2","cassandra-driver":"^4.8.0","@aws-sdk/client-s3":"^3.876.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","@types/bun":"latest","typescript":"^5.9.2","@types/jsonwebtoken":"^9.0.10"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.12_1756458164781_0.6171498108539162","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@altraplay/core","version":"2.0.0","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@2.0.0","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"a544d7a56b2169c005248e1371ccec3f3e8af5e5","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-2.0.0.tgz","fileCount":8,"integrity":"sha512-c7IBBdfwOzsSQeREXVplRNR9sPjwAyDbdljHgKUk14u9j22X/9bJG4OO2CdtpVZZScWYXS4QZe3PJAljhYn61Q==","signatures":[{"sig":"MEYCIQChBrXCGbn7MNb5jtm1LkP68QqZWpt/iLvhu6ylbhtCLQIhAKWhE2idGGS4UxplPLsii84YWzlqCxvXfMmnZuuLqCOq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113366},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"d31d19dcc03f0b859858ea71a34a264ea9e33c3d","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.6.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.8.0","dependencies":{"kafkajs":"^2.2.4","cassandra-driver":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","@types/bun":"latest","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/core_2.0.0_1761219879491_0.8787813293309488","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@altraplay/core","version":"2.0.2","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@2.0.2","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"d59e15999cfd2d6ba5dc6af35ac18f0e164a42fb","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-2.0.2.tgz","fileCount":8,"integrity":"sha512-WedTG1tDQujzbNfLEfdajzffWQT4eG3oz1xFLzcfjzSVQ+rcCJYVdVz1NpMQt+mFiSWaf2ENv8ZklMlgkboCAQ==","signatures":[{"sig":"MEUCIBsxBQ7zhT0nLMM809oBb/aDunti7kL11RN8iuTPG+C/AiEApYQwIzT15iz8krN0nDGdqaUqottubnCFl7AEd6yAdJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112255},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"58ab469deb1ca766eb50094c47308161428a56ce","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.6.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"24.8.0","dependencies":{"kafkajs":"^2.2.4","cassandra-driver":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"^1.3.4","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/core_2.0.2_1765360471332_0.13274989805052306","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@altraplay/core","version":"2.1.0","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@2.1.0","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"20f4dd50c7ffc44919f23f556afe36683ce12a23","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-2.1.0.tgz","fileCount":8,"integrity":"sha512-jN9CIrc8ho4yK1SfDxkgBc1khndkiOeVs29uSOupbHituj8UxvsJwTacb5t0Ktoo0eWCy4L75mgT7q1N18kgxA==","signatures":[{"sig":"MEQCIFxqWSuIIzi7cQuZn0dqGNEoI/o3JOkCPRJI42lmtakfAiAc7Rh8qlcUM52H1lfXWE31v0MIrudUtH7mta6LOAd1cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151441},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"6408514e260ef31b0c1247891699bcf1f47492ef","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.11.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"25.8.1","dependencies":{"kafkajs":"^2.2.4","cassandra-driver":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"^1.3.12","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.0_1775978960085_0.6140077010266767","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@altraplay/core","version":"2.1.1","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@2.1.1","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"9832df2b3dab9cd5615b9886f1b05ffcaaffc897","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-2.1.1.tgz","fileCount":9,"integrity":"sha512-HoDV6BncI5E8m2bqkpIi76aW5u8FVFSoMQ6+MXKuaFDwXO427bxelDWmaBEpicYMGt1obzAzzHP4OxVGtAHCHQ==","signatures":[{"sig":"MEYCIQCBcptUK9nWRenGL9eWgVDC8me7m4CWIK/0ZquRZIe/vgIhAJWnMrhliMq4toWhUsuJCDeiuo3q1mgdQwfjdkwIZKxQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151085},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"f2113e2b8fe416b3485d6d9002d9288a39f8b856","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.11.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"25.8.1","dependencies":{"ulid":"^3.0.2","kafkajs":"^2.2.4","cassandra-driver":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"^1.3.12","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.1_1776858497426_0.3427795906778819","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@altraplay/core","version":"2.1.2","keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","_id":"@altraplay/core@2.1.2","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"dist":{"shasum":"dd6fb7082dde251cceaac54c177f7e062522666d","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-2.1.2.tgz","fileCount":9,"integrity":"sha512-9meHTgF/4sF5x7AbsMdMfjCkUmvWcPyA18P+acFL3/jNTiB6WUaldCttpFY+QGphiQO2vU10xCsVdZiFNZlC/A==","signatures":[{"sig":"MEUCIQCH9JxsBXNM3BL5GlSgfTFYvZ4/nTmvStMO+gxNUqs3OQIgUCiBiV9HfxG37HQm8AjaKPw/cvURpPQc8yau2g7r/OU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151249},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"f2113e2b8fe416b3485d6d9002d9288a39f8b856","scripts":{"lint":"tsc --noEmit","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"_npmVersion":"11.11.0","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","directories":{},"_nodeVersion":"25.8.1","dependencies":{"ulid":"^3.0.2","kafkajs":"^2.2.4","cassandra-driver":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"^1.3.12","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.2_1776859009818_0.8398705465453327","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@altraplay/core","version":"2.1.3","description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","scripts":{"build":"tsup","prepublishOnly":"npm run build","lint":"tsc --noEmit"},"keywords":["altraplay","utilities","microservices","typescript"],"author":{"name":"Altraplay Team"},"license":"MIT","dependencies":{"cassandra-driver":"^4.8.0","kafkajs":"^2.2.4","ulid":"^3.0.2"},"devDependencies":{"@types/bun":"^1.3.12","tsup":"^8.5.1","typescript":"^5.9.3"},"gitHead":"a17c3ad179490965c7fd5e0e5afd980b16daff10","_id":"@altraplay/core@2.1.3","_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-NMRJ7wviMh1LeYqHB+97OvnbTGo/AHY+Rcjdu2E/xnmvOKIIe4+WS6XsDyTRmoOssgnTtFBRoKuZbCewTyIdVA==","shasum":"205f9f156ae99fa3d051f1d88225399df33f16e3","tarball":"https://registry.npmjs.org/@altraplay/core/-/core-2.1.3.tgz","fileCount":9,"unpackedSize":154419,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICfuarYDNMiGDZKnjX0S+JkTv4O9DgJmh6aTMxottHQYAiEAzvh1lKNIVpebhm7Tk95CWYpu8tlIu+QwUPv2v8Z8h00="}]},"_npmUser":{"name":"techgunner","email":"nottechgunner@gmail.com"},"directories":{},"maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_2.1.3_1777890880646_0.3379206719431438"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-01T07:41:30.078Z","modified":"2026-05-04T10:34:40.915Z","1.0.0":"2025-05-30T12:13:19.555Z","1.0.1":"2025-05-31T06:50:56.566Z","1.0.2":"2025-05-31T08:33:55.481Z","1.0.3":"2025-05-31T12:50:22.015Z","0.0.1":"2025-06-01T06:25:43.661Z","0.0.2":"2025-06-01T06:58:14.857Z","1.0.5":"2025-06-01T07:41:30.369Z","1.0.6":"2025-06-03T11:53:31.138Z","1.0.7":"2025-06-04T07:44:08.781Z","1.0.8":"2025-06-04T13:57:13.060Z","1.0.9":"2025-06-07T14:55:05.716Z","1.0.10":"2025-06-10T12:04:05.892Z","1.0.11":"2025-06-16T06:31:36.980Z","1.0.12":"2025-08-29T09:02:44.958Z","2.0.0":"2025-10-23T11:44:39.695Z","2.0.1":"2025-12-10T06:02:07.858Z","2.0.2":"2025-12-10T09:54:31.504Z","2.1.0":"2026-04-12T07:29:20.258Z","2.1.1":"2026-04-22T11:48:17.582Z","2.1.2":"2026-04-22T11:56:49.956Z","2.1.3":"2026-05-04T10:34:40.783Z"},"author":{"name":"Altraplay Team"},"license":"MIT","keywords":["altraplay","utilities","microservices","typescript"],"description":"A centralized NPM package for the utilities frequently used across Altraplay's TypeScript microservices","maintainers":[{"name":"techgunner","email":"nottechgunner@gmail.com"}],"readme":"# @altraplay/core\n\nA centralized NPM package for the utilities frequently used across our TypeScript microservices.\n\n## Installation\n\nYou can install this package using npm or bun:\n\n```bash\nnpm install @altraplay/core\n# or\nbun add @altraplay/core\n```\n\n## Configuration\n\nThis package uses standard environment variables for all configuration. No external secrets service required.\n\n**Naming Convention:**\n\nUse PascalCase in code - it automatically converts to `SCREAMING_SNAKE_CASE` env vars.\n\n```typescript\nimport { config } from '@altraplay/core'\n\n// Get value with optional fallback\nconfig.get('ApiKey', 'default-key')\n\n// Internally converts 'ApiKey' to 'API_KEY'\n```\n\n**Common Config Keys:**\n\n- `KafkaNodes`: Kafka broker nodes (comma-separated).\n- `LogsKafkaNodes`: Kafka brokers for logging.\n- `DbNodes`: ScyllaDB/Cassandra contact points (comma-separated).\n- `DbDc`: The datacenter for ScyllaDB (default: `datacenter1`).\n- `DbUser`: The username for ScyllaDB (default: `cassandra`).\n- `DbPass`: The password for ScyllaDB (default: `cassandra`).\n- `DbKs`: The keyspace for ScyllaDB (default: `altraplay`).\n- `RedisUrl`: The connection URL for Redis.\n- `S3Region`: AWS region for S3 (default: `ap-south-1`).\n- `S3AccessKeyId`: AWS access key ID for S3 authentication.\n- `S3SecretAccessKey`: AWS secret access key for S3 authentication.\n- `S3Endpoint`: Optional custom S3 endpoint.\n- `S3Bucket`: Default S3 bucket name.\n\n**Example:**\n \n```bash\nKAFKA_NODES=kafka1:9092,kafka2:9092\nLOGS_KAFKA_NODES=logs-kafka:9092\nDB_NODES=scylla1:9042\n```\n\n## Modules and Functions\n\n### `InitService` (Core Initialization)\n\nThe `InitService` class provides a convenient way to initialize and access various core utilities within your microservice. It aggregates functionalities from other modules and manages configuration.\n\n#### `new InitService(serviceName: string, configOverrides?: Record<string, string>)`\n\nInitializes the service synchronously.\n\n- `serviceName`: The name of the service, used as client ID for Kafka.\n- `configOverrides`: Optional config values to override env vars.\n\n**Aggregated Methods & Properties:**\n\n- `config`: The fully resolved configuration object.\n- `instanceId`: Unique UUID for this service instance.\n- `serviceName`: The name of the service.\n- `randomString`: Accesses the `ULID.gen` function for generating unique IDs.\n- `logger`: Accesses the `KafkaLogger` instance with `error`, `warn`, `info`, and `debug` methods.\n- `S3`: Creates an S3 client with credentials from env vars.\n- `exec`: Accesses the `exec` method of a `Scylla` instance.\n- `emit`: Accesses the `emit` method of a Kafka producer instance for publishing domain events.\n- `redis`: A Redis client instance using Bun's native client with `get`, `set`, `del`, and `updateConfig` methods.\n- `validate.isVisible`: Accesses the `isVisible` function from `src/validate.ts`.\n\n```typescript\nimport { InitService, config } from '@altraplay/core'\n\n// Access config directly\nconst apiKey = config.get('API_KEY', 'default')\nconst dbUrl = config.getRequired('DB_URL')\n\n// Initialize service\nconst service = new InitService('my-microservice')\n\n// Example usage:\nconst randomId = service.randomString() // Uses ULID.gen()\nawait service.logger.info({ \n  msg: 'Service started', \n  route: 'system', \n  action: 'init',\n  location: 'main.ts'\n})\nconst s3Client = service.S3({ defaultBucket: 'my-bucket' })\nconst dbResult = await service.exec('SELECT * FROM users')\nawait service.emit('user.signup', [{ \n  data: { userId: '123' }, \n  meta: { cid: 'request-id-123' }\n}])\n```\n\n**Re-exported Modules:**\nThe `Scylla` class, `createRedisClient`, `Config`, and config helpers are also directly re-exported.\n\n```typescript\nimport { Scylla, createRedisClient, Config, config } from '@altraplay/core'\n```\n\n### `validate.isVisible`\n\nChecks if a piece of content should be visible to a specific user.\n\n#### `isVisible(content?: Record<string, any> | null, viewer?: string | null): boolean`\n\n- `content`: An object containing content details, which must include a `uid` (the content owner's ID) and a `visibility` array.\n- `viewer`: The ID of the user attempting to view the content.\n\nReturns `true` if:\n\n- The viewer is the owner of the content (`content.uid === viewer`).\n- The content is public (`content.visibility?.includes('pub')`).\n- The viewer's ID is in the `visibility` array.\n\n```typescript\nconst { validate } = service // from InitService.start('my-microservice')\n\nconst publicContent = { uid: 'user-a', visibility: ['pub'] }\nconst privateContent = { uid: 'user-a', visibility: ['user-b'] }\n\nvalidate.isVisible(publicContent, 'user-c') // true\nvalidate.isVisible(privateContent, 'user-a') // true\nvalidate.isVisible(privateContent, 'user-b') // true\nvalidate.isVisible(privateContent, 'user-c') // false\n```\n\n### `createS3Client` (AWS S3 Utility)\n\nCreates an S3 client instance using **Bun's native S3 client**. Credentials are fetched from environment variables. It provides convenient methods for `get`, `put`, and `delete` operations, including support for generating presigned URLs.\n\n#### `service.S3(config?: S3ClientConfig)`\n\n- `config`: An optional configuration object extending Bun's `S3Options`, with an added `defaultBucket` property. S3 credentials are loaded from env vars.\n\n**Returned Methods:**\n\n- `get(params: GetParameters): Promise<GetOutput>`: Retrieves an object. Can return the body in various formats or a presigned URL.\n- `put(params: PutParameters): Promise<PutOutput>`: Uploads an object or generates a presigned URL for uploading.\n- `delete(params: DeleteParameters): Promise<DeleteOutput>`: Deletes an object or generates a presigned URL for deletion.\n\n```typescript\nconst s3 = service.S3({ defaultBucket: 'my-default-bucket' })\n\n// Upload a file\nawait s3.put({ Key: 'my-file.txt', Body: 'Hello, World!' })\n\n// Get a file\nconst { Body } = await s3.get({ Key: 'my-file.txt', ResponseType: 'text' })\nconsole.log(Body) // 'Hello, World!'\n\n// Generate a presigned URL for a GET request\nconst { PresignedUrl } = await s3.get({\n  Key: 'my-file.txt',\n  PresignConfig: { expiresIn: 60 } // URL expires in 60 seconds\n})\n```\n\n### `Scylla` (ScyllaDB/Cassandra Utility)\n\nThe `Scylla` class provides a robust interface for interacting with ScyllaDB or Apache Cassandra databases.\n\n#### `new Scylla(config: ScyllaClientOptions, logger: KafkaLogger)`\n\nInitializes a new database client instance with configuration and logger injection.\n\n- `config`: A `ScyllaClientOptions` object containing connection details (`nodes`, `dc`, `user`, `pass`, `ks`).\n- `logger`: A `KafkaLogger` instance for error logging.\n\n#### `exec`\n\nExecutes a database query or a batch of queries. This method is overloaded to support single queries, detailed results with pagination, and batch operations.\n\n```typescript\nconst { exec } = service // from InitService.start('my-microservice')\n\n// Fetching a single user\nconst user = await exec<{ id: string; name: string }>('SELECT id, name FROM users WHERE id = ?', [\n  'user123'\n])\n```\n\n#### `updateConfig`\n\nUpdates the database configuration and reconnects (for hot config reload).\n\n```typescript\nawait service.scylla.updateConfig({\n  nodes: ['new-node1:9042', 'new-node2:9042'],\n  dc: 'datacenter1',\n  user: 'cassandra',\n  pass: 'new-password',\n  ks: 'mykeyspace'\n})\n```\n\n### `createProducer` (Kafka Utility)\n\nCreates a Kafka producer instance with ZSTD compression.\n\n#### `createProducer(serviceName: string, config: Config): { emit: (event: string, data: KafkaMessage[]) => Promise<void>; producer: Producer; updateConfig: (config: Config) => Promise<void> }`\n\n- `serviceName`: The name of the service, used as the Kafka `clientId` and event source.\n- `config`: A configuration object with `nodes` array.\n\n**Event Format:**\n\nThe `emit` function expects events in the following format:\n\n```typescript\n{\n  data: Record<string, any>     // Event payload\n  meta?: {                       // Optional metadata (auto-enriched)\n    id?: string                  // Event UUID (auto-generated if not provided)\n    ts?: number                  // Timestamp (auto-generated if not provided)\n    cid?: string                 // Correlation ID\n    src?: string                 // Source service (auto-set)\n    ver?: string                 // Schema version (default: '1.0')\n  }\n  ctx?: Record<string, any>     // Optional context\n}\n```\n\n**Usage:**\n\n```typescript\nconst { emit } = service // from InitService.start('my-microservice')\n\n// Publish an event\nawait emit('user.signup', [{\n  data: { userId: '123', email: 'user@example.com' },\n  meta: { cid: 'request-123' },\n  ctx: { ip: '192.168.1.1' }\n}])\n\n// Event topic will be 'user.signup' or if no dot in event, 'servicename.event'\n```\n\n### `KafkaLogger` (Logging Utility)\n\nA comprehensive logging class that pushes structured log entries to a Kafka topic and logs to the console.\n\n#### `new KafkaLogger(serviceName: string, config: Config)`\n\nInitializes the Kafka logger.\n\n- `serviceName`: The name of the service generating the logs.\n- `config`: A configuration object with `nodes` array.\n\n#### Structured Logging Methods\n\nAll methods accept a structured log data object:\n\n```typescript\ninterface LogData {\n  msg: string                    // Log message\n  route: string                  // Route/endpoint\n  action: string                 // Action being performed\n  location: string               // Source file location\n  uid?: string                   // Optional user ID\n  coId?: string                  // Optional correlation ID\n  extra?: Record<string, any>    // Optional extra data\n}\n```\n\n**Methods:**\n\n- `error(data: Omit<LogData, 'level'>): Promise<void>`\n- `warn(data: Omit<LogData, 'level'>): Promise<void>`\n- `info(data: Omit<LogData, 'level'>): Promise<void>`\n- `debug(data: Omit<LogData, 'level'>): Promise<void>`\n\n```typescript\nconst { logger } = service // from InitService.start('my-microservice')\n\nawait logger.error({\n  msg: 'Database connection failed',\n  route: 'api/users',\n  action: 'database_query',\n  location: 'users.ts:45',\n  uid: 'user-123',\n  coId: 'req-456',\n  extra: { query: 'SELECT * FROM users', error: err.message }\n})\n\nawait logger.info({\n  msg: 'User created successfully',\n  route: 'api/users',\n  action: 'user_create',\n  location: 'users.ts:67',\n  uid: 'user-123'\n})\n```\n\n### `createRedisClient` (Redis Utility)\n\nCreates a Redis client instance using **Bun's native Redis client**.\n\n#### `createRedisClient(serviceName: string, config: RedisConfig, logger: KafkaLogger): RedisClient`\n\n- `serviceName`: The name of the service, used for logging errors.\n- `config`: A configuration object with `url` property.\n- `logger`: A `KafkaLogger` instance for error logging.\n\n**Returned Methods:**\n\n- `get<T>(key: string, meta?: Partial<LogData>): Promise<T | null>`: Retrieves a value by key.\n- `set<T>(key: string, value: T, ttlSeconds?: number, meta?: Partial<LogData>): Promise<'OK' | null>`: Sets a value with optional TTL (default: 3 days).\n- `del(key: string | string[], meta?: Partial<LogData>): Promise<number>`: Deletes one or more keys.\n- `updateConfig(config: RedisConfig): void`: Updates Redis configuration and reconnects.\n- `client`: Read-only access to the underlying Redis client instance.\n\n```typescript\nconst { redis } = service // from InitService.start('my-microservice')\n\n// Set with default TTL (3 days)\nawait redis.set('user:123', { name: 'John Doe' })\n\n// Set with custom TTL (1 hour)\nawait redis.set('session:456', { data: '...' }, 3600)\n\n// Get\nconst user = await redis.get('user:123')\n\n// Delete\nawait redis.del('user:123')\nawait redis.del(['key1', 'key2', 'key3'])\n```\n\n### `MatrixCollector` (Resource Monitoring)\n\nAutomatically collects and publishes system metrics (CPU, memory, uptime) to Kafka.\n\n#### `new MatrixCollector(service: InitService, uid: string)`\n\nCreates a new matrix collector for the service.\n\n#### `start(ms = 60000): void`\n\nStarts collecting metrics at the specified interval (default: 60 seconds).\n\n#### `stop(): void`\n\nStops the metrics collection.\n\n```typescript\n// Automatically started by InitService\n// Metrics are published to 'system.matrix' topic\n// Access via service.matrix if needed\nservice.matrix.stop() // Stop collecting\nservice.matrix.start(30000) // Restart with 30s interval\n```\n\n## Hot Configuration Reload\n\nAll major services support hot configuration reload without restart:\n\n```typescript\n// Manual config update\nawait service.scylla.updateConfig(newConfig.scylla)\nservice.redis.updateConfig(newConfig.redis)\nawait service.producerObj.updateConfig(newConfig.kafka)\n```\n\n## Dependencies\n\n- `cassandra-driver`\n- `kafkajs`\n- `bun` (native S3 and Redis clients)\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md) for version history and migration guides.\n","readmeFilename":"README.md"}