{"_id":"@techfinityedge/koolbase-react-native","_rev":"29-923d63056ccbead9b0d1d72039ecc22e","name":"@techfinityedge/koolbase-react-native","dist-tags":{"latest":"8.0.0"},"versions":{"1.6.1":{"name":"@techfinityedge/koolbase-react-native","version":"1.6.1","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@1.6.1","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"008cbffdfe96284f985dd3940cce519c7c7c4be7","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-1.6.1.tgz","fileCount":32,"integrity":"sha512-S+zRgi6QRMF3sBlg+iQw0af5wGxKyucZiyNJ/P8YKGH83IPT6qwO3cNwoDf2ISlt93IhuZeNGJbEfCei3EhHdw==","signatures":[{"sig":"MEYCIQDvbRLL1vQU4R/HXiISnTO9PRJqYa+ONuALYNf10KJRMwIhAPTR8tL/xM57Mxm4/NfqFEyUkEY5K7EP5qV3tFn2hzXT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86359},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"dd37f2976c572dbe31956062a05dd4e1e35cc1ec","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0"},"peerDependencies":{"react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_1.6.1_1775857825781_0.07897506763724138","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@techfinityedge/koolbase-react-native","version":"1.7.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@1.7.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"977e488f91f920f33391b2c1b4a415c0607a8eb9","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-1.7.0.tgz","fileCount":34,"integrity":"sha512-GA/Iksu/GQYhxpIz7wt52AYvz4hbmr1Di9bd6sRCOHV5wPazN9ImIJP2gCqlJAArjgkldXdf36AvyYKuxg7Xhg==","signatures":[{"sig":"MEUCIARgRGu3HEZGi5wkiT3m64Zjietw5RdqsOw18jnYrK6CAiEAoJ88NS3QHcBR22nC5dj7itPr3NC6VgNPeJvV1xMVzpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94431},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b3ff844aa7122ac511902eec8a98ccaf25321271","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0"},"peerDependencies":{"react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_1.7.0_1778288598479_0.3925207467992322","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@techfinityedge/koolbase-react-native","version":"1.8.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@1.8.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"2bdbc1215eabc5028f3ed6ae17e2817e5d33bb3b","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-1.8.0.tgz","fileCount":34,"integrity":"sha512-n+96FTrymrAj4fRYGMYF8OJNWb3k9QYlhQX9BZkE+RZpTbzLUjkBEAdD+9KDTFvvFPcv8TobcXE3tx0S29dljQ==","signatures":[{"sig":"MEUCIFCTBkfeZ190EY94hfZ3HXViURk939T9ADLE63I99DH0AiEAzm1m+pwL07uvMWqR0cFCZzjrWd/NUObSQJUZwCCiEyo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94778},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"13de099010e7d1c97228712be048d59cc7c5b089","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0"},"peerDependencies":{"react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_1.8.0_1778612262425_0.8331059532124827","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@techfinityedge/koolbase-react-native","version":"1.9.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@1.9.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"6a9104431ec332b57c71fb226e37008644e79bfe","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-1.9.0.tgz","fileCount":38,"integrity":"sha512-0NmCTvt5LqpuR9fopB3gawXoLNhYrrh4/sFmfNZLKOaEVYMQQJTfdU62Nq3LeenxeEj3BOxlGnCHROI+qNjFNQ==","signatures":[{"sig":"MEQCIH3h7iXZCEWbmtnohYNNKGICmOvPYRPSiOf3ZWBiZ+QPAiA5+qdDXFaT+VN/+mYD0SqnXGy+ersdIio8Y/0sPpJuag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141447},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0ac7d731849a93771414bd9f2289eb48107ee49e","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_1.9.0_1779175486508_0.3795035660820989","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@techfinityedge/koolbase-react-native","version":"1.10.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@1.10.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"e14e76d47f4f245dfc277a9ef6322aabb1ceb188","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-1.10.0.tgz","fileCount":38,"integrity":"sha512-pso0R/v90UVZ37SAkM3GpXhqkr2sVw4Ybc0a8bp3178GRedibDuVe77ZuKzEXjixstohAhiEXdV2aRxENNgquQ==","signatures":[{"sig":"MEYCIQD7YKjDwq18Ng8TgO6inb5u/ud5OxKxdDcnL2pNzb3h6gIhAPR4ihrZegBjTupqCZlI5pHEOsYtwe+Aig1jTBLAhA6o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149764},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0ac7d731849a93771414bd9f2289eb48107ee49e","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_1.10.0_1779193221238_0.23396592542581818","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@techfinityedge/koolbase-react-native","version":"1.10.1","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@1.10.1","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"d02cf6d681ce5eef1de30c14083176861540ad15","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-1.10.1.tgz","fileCount":38,"integrity":"sha512-S4HJOcg016YwaxwsiwgeKLXChgx302y51BaXyV9RkFKhUhj9bSgvvnEeGPHpPC8YdWZabqr/0FJbPoh+Zm0d0A==","signatures":[{"sig":"MEUCIQC4he3Oi4PO2CQMlva5w/9v/SHVmyw7eA4oILJijB94/wIgVOiQgdUSXUcMMy5TnHjCgRCqZTR8FtUDPdHoFOcDFko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150300},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0ac7d731849a93771414bd9f2289eb48107ee49e","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_1.10.1_1779195516535_0.22920033449363642","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@techfinityedge/koolbase-react-native","version":"1.11.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@1.11.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"4e627aa218f3ee3a3b6bb50a784941a44022c25d","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-1.11.0.tgz","fileCount":38,"integrity":"sha512-vOt4UZ+zfd3kUO4s5sIp6c99ux//uPXwL8tpwoBH0NKnpdd9LFIjorsMqcynesNj9xhusWPjCA57oHmqP2cBSw==","signatures":[{"sig":"MEQCIFRDtW/+fnDz+KIFurvqdkbv7WIzASgl4CxcPQ4TSj65AiB8/msAsENdXqr9Lqagj0vm6/FGDsia82af8sbE3arC5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157947},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e5469f1b498db0db6c911f594b48df8c5f7fe089","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_1.11.0_1779211387340_0.1737013434110135","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@techfinityedge/koolbase-react-native","version":"2.0.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@2.0.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"9f904a3e461a6781a00b91178273ae5dd593a779","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-2.0.0.tgz","fileCount":40,"integrity":"sha512-P8PkclIVIQr4G5KmO+7Ub052lD2tqcrBR6B6AI53pXSAkanhAqNTDDR2WSV7BUSwPu9jixOugJZ7bTj9ilB61Q==","signatures":[{"sig":"MEUCIQCTBAyaW6sIJojAgnhQVQnscAYg7WAol+YqKJTdk7+amgIgQy4XOTjVTwNpHzQa2qV8gNFA+Bk8gGKAnBaXHXdDw10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158816},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2bda6281e6f976c70f4d26e3f0c2aba3a8f84c8a","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_2.0.0_1779458844681_0.13571161199530257","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@techfinityedge/koolbase-react-native","version":"2.1.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@2.1.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"516d60dd83d87f528be2ed832ad8fb8166eb03e8","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-2.1.0.tgz","fileCount":40,"integrity":"sha512-rq4EEBTyGBjsAYtAtYzvcLa2G2QIPVLLwznlHfCJ8UHyYyOEp6tSnStzG/fEHT+QzUoQH3zoDMUqrpaDUW/JpQ==","signatures":[{"sig":"MEQCIHRbxybp7VDhaTdcnB6LFqPg66n51MUUpqgsCrNBRwPuAiBcY6g0X8GYlAyJ6EMEk4xlo8QuMcMVczAjtIodT3MHmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164289},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0ff9367bc9af2289488e98dc1974bf696b949bd1","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_2.1.0_1779561997447_0.5425095029800373","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@techfinityedge/koolbase-react-native","version":"2.2.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@2.2.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"a0e63f62e4d07673205dcf4d31d6d8824912a802","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-2.2.0.tgz","fileCount":42,"integrity":"sha512-etBVH+Cb36jemLj3pGdwzkGtUkaN0PbdpJg8kyX8rQ7eyMVc/C12GxL+A04MUXTAEg7dV+vnQBBLHlK2KgWoLA==","signatures":[{"sig":"MEUCIQCRqkkARmGWk0oSrgC1MCSxdaxSf/MJRXho3RjK0i8GLgIgEH2k7RrL0vwyi0hxOA4X+yrjTPiaQDtcSuicrMaaVkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166923},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0c9aead188bf5c520e04f0bff199d6e6cc493541","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_2.2.0_1779587967229_0.5292819231224772","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@techfinityedge/koolbase-react-native","version":"2.3.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@2.3.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"def455015299bd67063427d911e62040bde52ef0","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-2.3.0.tgz","fileCount":42,"integrity":"sha512-Qqo18dwCgoRiiEyIkSj2fDoM2YU/4jKrX5/5un6BQLbNeR7lzb/oSga3D2LVn89X3HjWQpw9kDXTI/7oG+2ZIw==","signatures":[{"sig":"MEUCICTcnbdK2FlTaGMhoU0G46Vz5tSimcjYPhTWtJ5St4xJAiEArs1q4OdwnR/Vq3KrOsdHkMQOpX/Y/olTBtmYp8ilxPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181653},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f7d8feaaa03bda62c15c6b79c73ab2b08324847f","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_2.3.0_1779636293347_0.08679776639606662","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@techfinityedge/koolbase-react-native","version":"2.4.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@2.4.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"10456fbe14cb0464254f9f2f96c1d3a51a7ef4b5","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-2.4.0.tgz","fileCount":42,"integrity":"sha512-bdSgZcGcvaU8LEQKa1Yg27wHSTuwP614DLBhUEoKXdZiezE8OlzYvLvjy4jX6PdVocLneQEvaEP75BhtU0K68g==","signatures":[{"sig":"MEUCIQCD41Dv2/m75VFfKWuH82SbxIqLJmU55qGnhFFC41VlGAIgITwttqf36y4to9+48KcQVc0mbkEjWpwZ3F1QWAK9SpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183898},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1fae5f36050c7e17345b5d7933c63e90070bf774","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_2.4.0_1779741165584_0.7600676379532245","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@techfinityedge/koolbase-react-native","version":"3.0.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@3.0.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"9028b256db7ff57dca3b2ed779261779b7714637","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-3.0.0.tgz","fileCount":42,"integrity":"sha512-FJFm9Zk2pMDMTfFKPnXke2Os8Li9uc2+oOOUZ/NBh6NUTobbamONof1XnEZNMkDKP5SOptOpKUViwdQWPZEXCQ==","signatures":[{"sig":"MEUCIQCGJsFgaxZ2oIt91Og0zVlPYUt+bDLAycmIZkq3vwjVmQIgU0FDGxI9wqIqdTjyWTQsqplr0HSbfZDRKqAv/QrA1EU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186014},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1e5844a88e5c302a3427bb6c59278b158810e605","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_3.0.0_1779798504932_0.7151485983618211","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@techfinityedge/koolbase-react-native","version":"3.1.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@3.1.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"62ed985641e315bb16ad232917135f4db8f9b6e1","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-3.1.0.tgz","fileCount":42,"integrity":"sha512-1hRaa9yI+Ow/bwcpk0ElWbZfP025KPSe3xUDG/ngD2D/oxOYygwerjXvjSziWjrTB3oEMW0eHpZh75tkxbk4bQ==","signatures":[{"sig":"MEYCIQCMDKIYDFOsSn0eeqfbs7j4KPR1RGDiPH94c1ImyBiOfwIhAMD8MK2pSCcCkKGQbvOwxcuzugD8yqMEUiBd894sfMmk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193553},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8fe44ec915d04bd15f01475008f40b372ddbbac8","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_3.1.0_1779930558678_0.8559797298237559","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@techfinityedge/koolbase-react-native","version":"4.0.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@4.0.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"36764d3bdc136e29be96e60bbb9adccf095770a1","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-4.0.0.tgz","fileCount":42,"integrity":"sha512-2atsZFBE2C8XX98Sp9sp2Udm2IYa2D8Ksx2agcODsdXV+hOr+VjwXS/KqTlswHQjc6YTkfRGBCibqCVl7tzmCA==","signatures":[{"sig":"MEYCIQDlV31RTaCe0/+JoQL4q9cPKzA3nmPW28WwqcFA0BNACQIhAPaonwwzf/PWH5ZxJdz/FNFQ0sZVWldVBHtQ/oxmlVHq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197764},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"17c44de3e75f1f7e538fbd295e475a015262561c","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_4.0.0_1779934800980_0.4392071590201525","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@techfinityedge/koolbase-react-native","version":"4.2.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@4.2.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"e0b7cdc05641ab519bcf7572f18fb0cb73974c45","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-4.2.0.tgz","fileCount":42,"integrity":"sha512-qduIFuDDXukeusRkUbs0NfYDAHImH7K+JTgGNDlEUk5kjVEy4KJWWftKaCUZy3/aEx2ZLna6n6ifCDK6G2Pj9Q==","signatures":[{"sig":"MEUCIQCCBOfqPTpA8eGLYEoPER20nt2qfzFZkaEj58EjoaiKGQIgFx6/hEe0t2Y5HUzbJQUTZldieMg4HaOU2EGFrs6dhC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201547},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e654eebb5f0b2c962e92018bc3ce678d6a143eb2","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_4.2.0_1779980591169_0.42495744058260065","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"@techfinityedge/koolbase-react-native","version":"4.2.1","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@4.2.1","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"6fa09ec525759e9be059ad89e0428d0bc240e7d7","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-4.2.1.tgz","fileCount":42,"integrity":"sha512-QcYPfRpoeZh0JXijnj3BbqibX10JQdyvBEF7WwReJqCgdJhFX+xXRZ6czXYAwzrvH0m8Y5ykFU4jIs+2kJvJEA==","signatures":[{"sig":"MEUCID5ijDDPtJ7RUiMIE+gvfnvby6vwzASBJecsmc/UU16PAiEAn7Sc6oFckLneEU8GxmC4kzTulIGOVsx1shleoL0n+Rk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201672},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c5ecc2845a3d62bbcb5ff147809fd5fb763bb73c","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_4.2.1_1779982104411_0.42863164648603025","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@techfinityedge/koolbase-react-native","version":"5.0.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@5.0.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"be8d788b8157e990a68f9958a4d061349b83e9cc","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-5.0.0.tgz","fileCount":44,"integrity":"sha512-pB9Mex0C3f626v9+ZaMfMWnWeYS+kEiFe2YJ5J2/aNksoir7L6RRclzw5NqVGgk6quege4gKb5IAVBE3TnVF1g==","signatures":[{"sig":"MEUCIFOl6RYhqFAVIZqUsc0e5skegPY4nLVuIfTP6yApTpWUAiEAz7JImuKpk6E4LmoCeT2yBVSXrExmZYyC8JdLNSemtzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218688},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d0e93edc25cafbea32aff06c8794e2f4a0de9245","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_5.0.0_1780283030407_0.9790688807549677","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@techfinityedge/koolbase-react-native","version":"5.1.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@5.1.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"845017a156effed74f0d8327100c223f3e9a8d45","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-5.1.0.tgz","fileCount":44,"integrity":"sha512-a17Od5BX1rKiiCElhezeC/wePvEIvjwPobiPMXH2cP5iAWD3nS9qSxVe2BvTLAAyMv/HSWHzIrassBTdG5fp9A==","signatures":[{"sig":"MEUCICSiwKRMUmL/k4FM0rerW/qrbIDUDXLmnDMjFrbd0HNfAiEAhkl5sONNsdyTfYmj071ea2BgChIiGJpzkcbZCoPNnvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226032},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e44b816089cc61b8bc77bd5694511ede6deaaf14","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_5.1.0_1780323724087_0.9868206606865266","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"@techfinityedge/koolbase-react-native","version":"5.1.1","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@5.1.1","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"44dcdf9690218a8dcd6158cd3b2a493b1b3f9474","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-5.1.1.tgz","fileCount":44,"integrity":"sha512-gWXXgJN4z4Mv0+5RLmapyiGZZZAIph9fQOvhzx7SvIoRYZcuI3oP7dEH2kv0nXrFDnR2wbhD9LXIJtMKu+Db3w==","signatures":[{"sig":"MEUCIDWeVR+hI0eLe91yv9tp2sDJHDMcHDE/NcLFft/YTsmpAiEA+HtywW+i+5yciWI5cjmBjjc1a9QIlSzoLYhJ7YBHCbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226032},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7d77cc9d06349dfe7c3b129f8d3c30486706e2b4","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_5.1.1_1780340226432_0.1785646734541959","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"@techfinityedge/koolbase-react-native","version":"5.2.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@5.2.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"ac30edfbb18ce7a27abd5a2c5faa65572445a127","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-5.2.0.tgz","fileCount":44,"integrity":"sha512-SiGl5Zs45VggauEFuh/Q7QvWAZYnIf7SjPxhQbYLhCXXTIuwAp3tBY0zDhXfEpdvIxxkouy6Zcl4muJyFvaUGw==","signatures":[{"sig":"MEQCIFf55LVsYFSj0twamYGVWcpjlEzNVw0keo+b1+X5YxrlAiBx6hFpYD1+neaKG2z+oWSHjFBSx8uugR0Qt/sin4aAPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235719},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1bfa2a447c18a15bda546329969eaeaccafc650c","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/jszip":"^3.4.0","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_5.2.0_1780368006351_0.341740332239145","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"@techfinityedge/koolbase-react-native","version":"5.3.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@5.3.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"7a96e93d7e0ddb62a2885f57d2d1b59dc3de0da5","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-5.3.0.tgz","fileCount":44,"integrity":"sha512-euBmyJrx5317AYZfzK3wYXPZ87vToWHiyLLpjHiUiKUP0p55yEIjgI8Pv+hiJb1uArnm4/k/mZmfrnstFpKUEQ==","signatures":[{"sig":"MEUCIQD9e9/PwoxfM591BNpcRhLbj2fC0X4XZERnFTUCb+nM0QIgIPauaUzMjRxY63AnEktk2WPdeK5BmaknJwFa6Snp31M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241016},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4cb7c3c5e461cedc44ccc05062d28e8b4ea88b7d","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.1","@types/jszip":"^3.4.0","react-native":"^0.85.3","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_5.3.0_1780589765582_0.742641653246976","host":"s3://npm-registry-packages-npm-production"}},"5.4.0":{"name":"@techfinityedge/koolbase-react-native","version":"5.4.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@5.4.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"a49b10e8fa2dcf39a4f179e93f439e0ff316feec","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-5.4.0.tgz","fileCount":44,"integrity":"sha512-YdE0pksh/DEAymmjsM1wiQBnS8aIm14/2oUrfvEqoKX3qa1HINB3+aEh6Pg2ogylqdMCPcu8N6Ar0WpCJsYfHQ==","signatures":[{"sig":"MEQCIDfaQHB0XBAN2kxhm0IN0oSHgSansVggp4GM2BXYFkWlAiBkrBUkSdjw8uxC0ueUhOjt8JHpWjTEeJrhpWAi8ncOtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248502},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c96a85dae4d34eb75fbb6fbcfda62147d30ef2e7","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.1","@types/jszip":"^3.4.0","react-native":"^0.85.3","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_5.4.0_1780624937773_0.9773168242815753","host":"s3://npm-registry-packages-npm-production"}},"5.5.0":{"name":"@techfinityedge/koolbase-react-native","version":"5.5.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@5.5.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"6effb0d70e02a76e79617ea75a7b23d1c8d13356","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-5.5.0.tgz","fileCount":44,"integrity":"sha512-8H4+lMnFnMLonT8BaHcrqSanofQ1ZpnPP8iRbFqK5xEO7GztdSXnZPZ3noSsnO1H7XE4j3tXocD5tJgO7Pk0fQ==","signatures":[{"sig":"MEUCIQCzLTSeRKLcBejAXiJoMo8ekdGustMzdN7jvU5cbZVdcQIgNAgn9MZL0M7tBKYq7Rv4IbpvwiOP1EBlfsRj1FXm4C4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258839},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1946ecced7ad0400c27b1fcaf4a778543ce958a8","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.1","@types/jszip":"^3.4.0","react-native":"^0.85.3","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_5.5.0_1780686555659_0.3597840708105442","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@techfinityedge/koolbase-react-native","version":"6.0.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@6.0.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"1c2b4d1b2f1acbbbbd079d0cdd9907d82106bbb6","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-6.0.0.tgz","fileCount":44,"integrity":"sha512-pugnSxkM2Is2aQ44MwzFF/Ik95Ixc9dXseuEldPw01SGeiqOcoh+sUAcO6dOn3x7Tra8afb+WDeBeJ2HU9GYoQ==","signatures":[{"sig":"MEUCIF+R15f63dG7PLU/ZCfot4qYB0oV0c7hZat4t65gYNhmAiEArGBB4xufv8DTF3jK6AI3+aHYx5uecIjXmj18VjDqMvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272417},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"004b45c28d4d41aad92d883cf341aa6cfb0101e8","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.1","@types/jszip":"^3.4.0","react-native":"^0.85.3","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_6.0.0_1780746868275_0.4081845636409871","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@techfinityedge/koolbase-react-native","version":"7.0.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@7.0.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"f2aaa30f320f4a694a464521a0542d9084d5a965","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-7.0.0.tgz","fileCount":44,"integrity":"sha512-3kirG76MDemwO6qS6ccbxUtTRYQkra17Fmp3x8Q0aoY1/gxSbjYG6isZBqkeKnrZ5N0lMkDh36E57af3gAaBOg==","signatures":[{"sig":"MEUCIQD1Q7gYwvBotOqGx2jbwFVZtris436NKwQPnZ90VNulIgIgQlhM6HqN+H/1QQUzqQSmbwCiOF+k3YAyHmL2vUXvYAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274714},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"004b45c28d4d41aad92d883cf341aa6cfb0101e8","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.1","@types/jszip":"^3.4.0","react-native":"^0.85.3","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_7.0.0_1780793250463_0.4971736229781689","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@techfinityedge/koolbase-react-native","version":"8.0.0","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"author":{"name":"Kennedy Owusu"},"license":"MIT","_id":"@techfinityedge/koolbase-react-native@8.0.0","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"homepage":"https://koolbase.com","bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"dist":{"shasum":"5c39c048d85b434d1f2cb920b63983010701ae23","tarball":"https://registry.npmjs.org/@techfinityedge/koolbase-react-native/-/koolbase-react-native-8.0.0.tgz","fileCount":44,"integrity":"sha512-UIe+s/nQnMd7XdXK6VXfK7CwojFXAzjOicWQ6RT69jzcle4r0mVfzjjEsvoanQtApwdGl/B5/dWdm+cLZwrFCA==","signatures":[{"sig":"MEQCID30yhHVL6+uGwi/k8gnI7AlVMDTvpOqSjCqy/W9KhKIAiBY1lBENIIarWZFXbdc6mI6h1lPpoO92Y7cmU5DrRaeQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279541},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"43ec49eebbed70cfbb772eb4ece422b141d06caf","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"kennedyowusu","email":"kennediowusu@gmail.com"},"deprecated":"Moved to @koolbase/react-native","repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","@react-native-community/netinfo":"^12.0.1","@react-native-async-storage/async-storage":"^3.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.1","@types/jszip":"^3.4.0","react-native":"^0.85.3","react-native-keychain":"^10.0.0"},"peerDependencies":{"react-native":">=0.70.0","react-native-keychain":">=8.0.0"},"peerDependenciesMeta":{"react-native-keychain":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/koolbase-react-native_8.0.0_1780916261328_0.18305423711901447","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-10T21:50:25.718Z","modified":"2026-09-18T15:47:10.611Z","1.6.1":"2026-04-10T21:50:25.911Z","1.7.0":"2026-05-09T01:03:18.611Z","1.8.0":"2026-05-12T18:57:42.566Z","1.9.0":"2026-05-19T07:24:46.639Z","1.10.0":"2026-05-19T12:20:21.455Z","1.10.1":"2026-05-19T12:58:36.687Z","1.11.0":"2026-05-19T17:23:07.485Z","2.0.0":"2026-05-22T14:07:24.835Z","2.1.0":"2026-05-23T18:46:37.623Z","2.2.0":"2026-05-24T01:59:27.357Z","2.3.0":"2026-05-24T15:24:53.493Z","2.4.0":"2026-05-25T20:32:45.728Z","3.0.0":"2026-05-26T12:28:25.093Z","3.1.0":"2026-05-28T01:09:18.818Z","4.0.0":"2026-05-28T02:20:01.143Z","4.2.0":"2026-05-28T15:03:11.327Z","4.2.1":"2026-05-28T15:28:24.551Z","5.0.0":"2026-06-01T03:03:50.545Z","5.1.0":"2026-06-01T14:22:04.230Z","5.1.1":"2026-06-01T18:57:06.578Z","5.2.0":"2026-06-02T02:40:06.494Z","5.3.0":"2026-06-04T16:16:05.808Z","5.4.0":"2026-06-05T02:02:17.948Z","5.5.0":"2026-06-05T19:09:15.854Z","6.0.0":"2026-06-06T11:54:28.414Z","7.0.0":"2026-06-07T00:47:30.603Z","8.0.0":"2026-06-08T10:57:41.491Z"},"bugs":{"url":"https://github.com/kennedyowusu/koolbase-react-native/issues"},"author":{"name":"Kennedy Owusu"},"license":"MIT","homepage":"https://koolbase.com","keywords":["koolbase","react-native","baas","firebase-alternative","flutter"],"repository":{"url":"git+https://github.com/kennedyowusu/koolbase-react-native.git","type":"git"},"description":"React Native SDK for Koolbase — auth, database, storage, realtime, feature flags, and functions in one package.","maintainers":[{"name":"kennedyowusu","email":"kennediowusu@gmail.com"}],"readme":"# @techfinityedge/koolbase-react-native\n\n[![npm](https://img.shields.io/npm/v/@techfinityedge/koolbase-react-native.svg)](https://www.npmjs.com/package/@techfinityedge/koolbase-react-native)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nReact Native SDK for [Koolbase](https://koolbase.com) — Backend as a Service built for mobile developers.\n\nAuth, database, storage, realtime, functions, feature flags, remote config, version enforcement, code push, logic engine, analytics, and cloud messaging — one SDK, one `initialize()` call.\n\n---\n\n## Get started in 2 minutes\n\n1. Create a free account at [app.koolbase.com](https://app.koolbase.com)\n2. Create a project and copy your public key from Environments\n3. Add the SDK:\n\n```bash\n   npm install @techfinityedge/koolbase-react-native\n   # or\n   yarn add @techfinityedge/koolbase-react-native\n   # or\n   pnpm add @techfinityedge/koolbase-react-native\n   # or\n   bun add @techfinityedge/koolbase-react-native\n```\n\n4. Initialize at app startup:\n\n```typescript\n   import { Koolbase } from '@techfinityedge/koolbase-react-native';\n\n   await Koolbase.initialize({\n     publicKey: 'pk_live_xxxx',\n     baseUrl: 'https://api.koolbase.com',\n   });\n```\n\nThat's it. Every feature below is now available via `Koolbase.*`.\n\n---\n\n> **Auth is automatic (v3+).** Database, storage, and functions calls\n> authenticate as the currently signed-in user — nothing to pass, no manual\n> wiring. Log in (or restore a session) and every request carries that\n> identity. `owner`/`authenticated` collections require an active session.\n\n---\n\n## Authentication\n\nEmail + password, Apple Sign-In, Google Sign-In, and phone + OTP — out of the box.\n\n```typescript\n// Register\nawait Koolbase.auth.register({ email: 'user@example.com', password: 'password' });\n\n// Login\nconst session = await Koolbase.auth.login({ email: 'user@example.com', password: 'password' });\n\n// Current user\nconst me = Koolbase.auth.currentUser;\n\n// Logout\nawait Koolbase.auth.logout();\n\n// Password reset\nawait Koolbase.auth.forgotPassword('user@example.com');\n\n// Listen to auth state changes (fires immediately with current state)\nconst unsubscribe = Koolbase.auth.onAuthStateChange((user) => {\n  console.log(user ? 'signed in' : 'signed out');\n});\n```\n\n---\n\n### OAuth — Apple\n\nApple Sign-In uses the native authentication flow via `@invertase/react-native-apple-authentication` as a peer dependency:\n\n```typescript\nimport appleAuth from '@invertase/react-native-apple-authentication';\nimport { Koolbase } from '@techfinityedge/koolbase-react-native';\n\nconst response = await appleAuth.performRequest({\n  requestedOperation: appleAuth.Operation.LOGIN,\n  requestedScopes: [appleAuth.Scope.EMAIL, appleAuth.Scope.FULL_NAME],\n});\n\nconst session = await Koolbase.auth.signInWithApple({\n  identityToken: response.identityToken!,\n  nonce: response.nonce,\n  fullName: response.fullName\n    ? {\n        givenName: response.fullName.givenName ?? undefined,\n        familyName: response.fullName.familyName ?? undefined,\n      }\n    : undefined,\n});\n```\n\nConfigure Apple Sign-In for your environment with your iOS app's Bundle ID. Full setup guide at [docs.koolbase.com/auth/oauth](https://docs.koolbase.com/auth/oauth).\n\n---\n\n### OAuth — Google\n\nGoogle Sign-In uses the native authentication flow via `@react-native-google-signin/google-signin` as a peer dependency:\n\n```typescript\nimport { GoogleSignin } from '@react-native-google-signin/google-signin';\nimport { Koolbase } from '@techfinityedge/koolbase-react-native';\n\nGoogleSignin.configure({\n  webClientId: '<your-web-client-id>.apps.googleusercontent.com',\n});\n\nconst userInfo = await GoogleSignin.signIn();\n\nconst session = await Koolbase.auth.signInWithGoogle({\n  idToken: userInfo.idToken!,\n});\n```\n\nConfigure Google Sign-In for your environment with the OAuth client IDs from Google Cloud Console (typically one each for iOS, Android, and web). Full setup guide at [docs.koolbase.com/auth/oauth](https://docs.koolbase.com/auth/oauth).\n\n---\n\n### Phone + OTP\n\n```typescript\n// Send a one-time code\nawait Koolbase.auth.sendOtp({ phoneNumber: '+233200000000' });\n\n// Verify and sign in\nawait Koolbase.auth.verifyOtp({\n  phoneNumber: '+233200000000',\n  code: '123456',\n});\n\n// Or link a phone to an existing account\nawait Koolbase.auth.linkPhone({\n  phoneNumber: '+233200000000',\n  code: '123456',\n});\n```\n\nConfigure your SMS provider (Twilio, Africa's Talking, or Hubtel) in the dashboard under Phone Auth.\n\n---\n\n## Database\n\n```typescript\n// Insert\nawait Koolbase.db.insert('posts', { title: 'Hello', published: true });\n\n// Query\nconst { records } = await Koolbase.db.query('posts', {\n  filters: { published: true },\n  limit: 10,\n  orderBy: 'created_at',\n  orderDesc: true,\n});\n\n// Read fields off a record\nconst post = records[0];\nconsole.log(post.data.title);          // your fields live under .data\nconsole.log(post.id, post.collection); // metadata\n\n// Populate related records\nconst { records: postsWithAuthor } = await Koolbase.db.query('posts', {\n  populate: ['author_id:users'],\n});\n\n// Update / Delete\nawait Koolbase.db.update('record-id', { title: 'Updated' });\nawait Koolbase.db.delete('record-id');\n```\n\n---\n\n### Handling unique-constraint conflicts\n\nA write that would violate a unique constraint throws `KoolbaseConflictError`:\n\n```ts\ntry {\n  await Koolbase.db.upsert('users', { email }, { name });\n} catch (e) {\n  if (e instanceof KoolbaseConflictError) {\n    showError('That email is already registered.');\n  }\n}\n```\n\n---\n\n### Public bucket URLs\n\nFor files in public buckets, you can construct the stable CDN URL directly — no\nnetwork call, no expiry, embeddable anywhere a browser fetches a URL.\n\n```typescript\nimport { KoolbaseStorage } from '@techfinityedge/koolbase-react-native';\n\n// From a KoolbaseObject you already have (e.g. from upload() or another read)\nconst { object } = await Koolbase.storage.upload({\n  bucket: 'avatars',\n  path: `user-${userId}.jpg`,\n  file: { uri: imageUri, name: 'avatar.jpg', type: 'image/jpeg' },\n});\n\nconst url = KoolbaseStorage.publicUrlForObject(object, 'avatars');\n// url is null for private-bucket objects; the CDN URL for public-bucket ones.\n\nif (url) {\n  // Safe to use — file lives in the public R2 bucket\n  return <Image source={{ uri: url }} />;\n}\n\n// For build-time URL construction (no Object on hand)\nconst url = KoolbaseStorage.publicUrl({\n  projectId: 'proj_abc',\n  bucket: 'avatars',\n  path: 'user-123.jpg',\n});\n// Always returns the URL pattern; caller is responsible for knowing\n// the file lives in a public bucket. For files in private buckets,\n// the resulting URL will 404.\n```\n\nURLs follow the pattern `https://cdn.koolbase.com/{project_id}/{bucket}/{path}` — long-lived, edge-cached, no authentication. For files in private buckets, use `getDownloadUrl` instead, which returns a 1-hour presigned URL.\n\n---\n\n### Image transforms\n\nPublic bucket URLs can be transformed at the edge — resize, reformat,\noptimize — without any preprocessing. Two ways:\n\n**Direct transforms** — pass a `transform` option to `publicUrl`:\n\n```ts\nconst url = KoolbaseStorage.publicUrl({\n  projectId: 'proj_abc',\n  bucket: 'avatars',\n  path: 'user-123.jpg',\n  transform: {\n    width: 200,\n    height: 200,\n    fit: 'cover',\n    format: 'auto',\n    quality: 85,\n  },\n});\n```\n\n**Named presets** — store an option set server-side (via the dashboard or\nREST API), reference it by name:\n\n```ts\nconst url = KoolbaseStorage.publicUrlWithPreset({\n  projectId: 'proj_abc',\n  presetName: 'thumbnail',\n  bucket: 'avatars',\n  path: 'user-123.jpg',\n});\n\n// Or from a KoolbaseObject instance:\nconst url = KoolbaseStorage.publicUrlForObjectWithPreset(object, 'avatars', 'thumbnail');\n```\n\nAvailable options: `width` and `height` (1–2000), `format`\n(`auto`/`webp`/`avif`/`jpeg`/`png`), `quality` (1–100), `fit`\n(`scale-down`/`contain`/`cover`/`crop`/`pad`), `dpr` (1–3), `gravity`\n(`auto`/`center`/`top`/`bottom`/`left`/`right`/`top-left`/`top-right`/\n`bottom-left`/`bottom-right`). Transformed responses are edge-cached for 4\nhours; Cloudflare includes 5,000 unique transformations/month free per\naccount.\n\nSee the [Image Transforms docs](https://docs.koolbase.com/storage/image-transforms)\nfor the full reference.\n\n---\n\n### Upsert\n\nInsert a record, or update the existing one matching a filter.\n\n```ts\nconst result = await Koolbase.db.upsert(\n  'profiles',\n  { user_id: userId },\n  { weightKg: 70 }\n);\n\nconsole.log(result.created); // true if inserted, false if updated\nconsole.log(result.record.id);\n```\n\n> Online-only: needs the server's view to decide insert vs update, so unlike\n> `insert` it isn't queued offline and throws on network failure.\n\n### Delete where\n\nBulk-delete every record matching a filter. Returns the number deleted.\n\n```ts\nconst deleted = await Koolbase.db.deleteWhere('sessions', {\n  user_id: userId,\n  status: 'expired',\n});\n```\n\n> A non-empty filter is required. The collection's delete rule applies; for\n> `owner`/`scoped` rules the delete is scoped to your own records. Online-only.\n\n---\n\n### Offline-first\n\n```typescript\nconst { records, isFromCache } = await Koolbase.db.query('posts', { limit: 20 });\nif (isFromCache) console.log('Served from local cache');\n\nawait Koolbase.db.syncPendingWrites();\n```\n\n---\n\n### Atomic batch writes\n\nRun multiple writes in a single server-side transaction. All operations commit together or none are applied — any failure rolls back the entire batch.\n\n```ts\nimport { Koolbase, BatchOp } from '@techfinityedge/koolbase-react-native';\n\nconst results = await Koolbase.db.batch([\n  BatchOp.insert('orders', { total: 50, customer_id: customerId }),\n  BatchOp.update(inventoryId, { stock: 9 }),\n  BatchOp.upsert('counters', {\n    match: { name: 'orders' },\n    data: { value: 1 },\n  }),\n  BatchOp.delete(cartItemId),\n]);\n\n// results[i] corresponds to operations[i]:\n//   - insert / update: { type, record }\n//   - upsert:          { type, record, created }   // created = true if inserted\n//   - delete:          { type, deleted: true }\n```\n\n**Online-only by design.** Atomicity needs the server's authoritative view, so `batch()` is never queued offline — it throws on network failure (like `upsert` and `deleteWhere`). A server-side rejection throws a `KoolbaseDataError` with the failing operation's details; nothing was persisted.\n\n---\n\n### Handling write conflicts\n\n`insert`, `update`, and `upsert` are online-first: when the server is reachable they throw a typed error on rejection. Catch `KoolbaseConflictError` to handle unique-constraint violations (e.g. a duplicate email):\n\n```ts\nimport { KoolbaseConflictError } from '@techfinityedge/koolbase-react-native';\n\ntry {\n  await Koolbase.db.insert('users', { email, name });\n} catch (e) {\n  if (e instanceof KoolbaseConflictError) {\n    showError(`That ${e.field ?? 'value'} is already in use.`);\n  } else {\n    throw e;\n  }\n}\n```\n\nWhen the device is offline, these writes are queued and synced automatically when connectivity returns.\n\n---\n\n### Semantic, lexical, and hybrid search\n\nFind records by meaning, exact terms, or both. Koolbase ships three\nretrieval modes from a single API — pick the one that matches your\nquery characteristics, or use `'hybrid'` as a strong production default.\n\nDeclare a vector field on the collection from the dashboard or CLI first\n(picking a dimension; v1 supports 384, 768, 1024, and 1536).\n\n#### The three search modes\n\n```typescript\n// Semantic (default) — pure vector search via HNSW + cosine. Best for\n// fuzzy or conceptual queries where exact words don't have to match.\nconst result = await Koolbase.db.searchSemantic({\n  collection: 'articles',\n  field: 'content_embedding',\n  queryText: 'how do I move quicker?',\n  limit: 10,\n});\n\n// Lexical — pure BM25 over the field's source text (Postgres\n// ts_rank_cd). Best for exact terms, product codes, names, acronyms.\nconst result = await Koolbase.db.searchSemantic({\n  collection: 'articles',\n  field: 'content_embedding',\n  queryText: 'CVE-2024-1234',\n  mode: 'lexical',\n  limit: 10,\n});\n\n// Hybrid — vector + lexical fused with reciprocal rank fusion (k=60).\n// Generally the strongest default; both rankers vote and the fused\n// score promotes records that score well on either signal.\nconst result = await Koolbase.db.searchSemantic({\n  collection: 'articles',\n  field: 'content_embedding',\n  queryText: 'production deploy pipeline',\n  mode: 'hybrid',\n  limit: 10,\n});\n```\n\n#### Filtering weak matches\n\nFor `'semantic'` and `'hybrid'` modes, pass `minSimilarity` (0..100) to\ndrop results below a similarity threshold server-side — saves bandwidth\non weak matches:\n\n```typescript\nconst result = await Koolbase.db.searchSemantic({\n  collection: 'articles',\n  field: 'content_embedding',\n  queryText: 'how do I move quicker?',\n  mode: 'hybrid',\n  minSimilarity: 70, // only matches at least 70% similar\n  limit: 10,\n});\n```\n\n`minSimilarity` is rejected by the server when used with `'lexical'` —\nBM25 rank scores aren't comparable to cosine similarity, and silently\nignoring the parameter would produce confusing behavior.\n\n#### Server-side embedding (recommended)\n\nConfigure an AI provider on the project once (Gemini's free tier works;\nOpenAI also supported), tag the vector field with the\nprovider/model/source_field, and Koolbase auto-embeds records as\nthey're inserted or updated. Lexical indexing happens automatically on\nthe same write, so all three search modes work without extra setup:\n\n```typescript\n// One-time setup via dashboard. Then just write records normally —\n// vectors AND lexical rows land within ~1s.\nawait Koolbase.db.insert({\n  collection: 'articles',\n  data: {\n    title: 'How to ship faster',\n    content: 'Cut scope ruthlessly. Ship the smallest useful slice...',\n  },\n});\n\n// Iterate over hits the same way regardless of mode:\nfor (const hit of result.hits) {\n  console.log(`${hit.record.data.title}  ${hit.distance.toFixed(3)}`);\n}\n\n// Backfill records that pre-date the auto-embed config:\nawait Koolbase.db.embedText({\n  collection: 'articles',\n  recordId: article.$id,\n  vectorField: 'content_embedding',\n});\n\n// Or override the source — useful for combining fields:\nawait Koolbase.db.embedText({\n  collection: 'articles',\n  recordId: article.$id,\n  vectorField: 'content_embedding',\n  text: `${article.title}\\n\\n${article.summary}`,\n});\n```\n\n#### Client-side embedding (advanced)\n\nIf you'd rather control the embedding model yourself, pass a vector\ninstead of text. Note that lexical and hybrid modes require text, since\nBM25 has no notion of \"vector queries\":\n\n```typescript\n// Set a vector you've encoded yourself\nawait Koolbase.db.setVector(\n  articleId,\n  'embedding',\n  await myEmbeddingModel.encode(article.content),\n);\n\n// Read it back\nconst v = await Koolbase.db.getVector(articleId, 'embedding');\nconsole.log(`${v.vector.length}-dim, updated ${v.updatedAt}`);\n\n// Search with a precomputed vector — semantic mode only.\nconst result = await Koolbase.db.searchSemantic({\n  collection: 'articles',\n  field: 'embedding',\n  queryVector: await myEmbeddingModel.encode(userQuery),\n  limit: 10,\n  where: { category: 'tech' },\n});\n\n// Remove a record's vector when no longer needed\nawait Koolbase.db.deleteVector(articleId, 'embedding');\n```\n\n#### Behaviors worth knowing\n\n- **Pass exactly one of `queryVector` or `queryText`.** Supplying both\n  or neither throws an `Error`.\n- **`queryVector` is for semantic mode only.** Lexical and hybrid need\n  raw text — the server uses it for BM25 ranking (and embeds it inline\n  for the vector half of hybrid).\n- **Vector length must match the declared dimension.** Mismatches throw\n  `KoolbaseVectorDimensionMismatchError`.\n- **`minSimilarity` must be 0..100.** Values outside that range throw\n  an `Error` client-side before the request is sent.\n- **Online-only.** Vector operations are not cached locally or queued\n  offline — HNSW similarity and BM25 ranking have no useful offline\n  semantics.\n- **Read rule applies post-search.** `owner`/`scoped`/`conditional`\n  records are filtered to the caller after retrieval, so strict rules\n  may return fewer than `limit` results.\n- **`embedText` is async.** Returns when the job is queued (~100ms).\n  The vector lands within 1 second once the worker picks it up.\n- **Higher dimensions coming.** `text-embedding-3-large` (3072 dim)\n  supported once pgvector is upgraded. Use `dimensions=1536`\n  Matryoshka truncation in the meantime.\n\nSee [Semantic search docs](https://docs.koolbase.com/database/vectors)\nfor setup, provider configuration, embedding model recommendations,\nand when to pick each mode.\n\n---\n\n## Storage\n\nUpload and serve files via presigned URLs to Cloudflare R2. Uploads are\n**safe-by-default** (v5+) — uploading to a path that's already taken throws\n`KoolbaseStorageConflictError` instead of silently replacing the existing\nfile. Pass `overwrite: true` for true upsert semantics.\n\n```typescript\n// Upload — rejects if `user-${userId}.jpg` already exists\nconst { object, downloadUrl } = await Koolbase.storage.upload({\n  bucket: 'avatars',\n  path: `user-${userId}.jpg`,\n  file: { uri: imageUri, name: 'avatar.jpg', type: 'image/jpeg' },\n});\n\n// Upload — silently replaces any existing object at this path\nawait Koolbase.storage.upload({\n  bucket: 'avatars',\n  path: `user-${userId}.jpg`,\n  file: { uri: imageUri, name: 'avatar.jpg', type: 'image/jpeg' },\n  overwrite: true,\n});\n\n// Get download URL\nconst url = await Koolbase.storage.getDownloadUrl('avatars', `user-${userId}.jpg`);\n\n// Delete\nawait Koolbase.storage.delete('avatars', `user-${userId}.jpg`);\n```\n\n---\n\n### Handling upload conflicts\n\nFor user-supplied filenames, prompt the user before overwriting:\n\n```typescript\nimport { KoolbaseStorageConflictError } from '@techfinityedge/koolbase-react-native';\n\ntry {\n  await Koolbase.storage.upload({\n    bucket: 'documents',\n    path: filename,\n    file: { uri, name: filename, type: mimeType },\n  });\n} catch (e) catch (e) {\nif (e instanceof KoolbaseStorageConflictError) {\nconst ok = await confirm(${e.path} already exists. Overwrite?);\nif (ok) {\nawait Koolbase.storage.upload({\nbucket: 'documents',\npath: filename,\nfile: { uri, name: filename, type: mimeType },\noverwrite: true,\n});\n}\n} else {\nthrow e;\n}\n}\n```\n\nSee [Error handling](#error-handling) for the full set of storage errors.\n\n---\n\n### Handling bucket limits\n\nBuckets can be configured at creation time with a total size cap\n(`max_size_bytes`), a per-file cap (`max_file_size_bytes`), and a\ncontent-type allowlist (`allowed_mime_types`, supports `image/*`-style\nwildcards). The server surfaces violations as typed errors:\n\n````typescript\nimport {\n  KoolbaseStorageQuotaError,\n  KoolbaseStorageFileTooLargeError,\n  KoolbaseStorageMimeTypeError,\n} from '@techfinityedge/koolbase-react-native';\n\ntry {\n  await Koolbase.storage.upload({\n    bucket: 'user-photos',\n    path: filename,\n    file: { uri, name: filename, type: mimeType },\n  });\n} catch (e) {\n  if (e instanceof KoolbaseStorageMimeTypeError) {\n    showError('That file type is not allowed in this bucket.');\n  } else if (e instanceof KoolbaseStorageFileTooLargeError) {\n    showError('That file is too big — pick a smaller one.');\n  } else if (e instanceof KoolbaseStorageQuotaError) {\n    showError('This bucket is full — delete some files and try again.');\n  } else {\n    throw e;\n  }\n}\n````\n\nMIME enforcement runs at presign time — no bytes are transferred before\nrejection. File-size and quota enforcement run at confirm time; the\nserver cleans up the underlying R2 object before returning the error,\nso nothing leaks.\n\n---\n\n### Object versioning\n\nFor buckets with versioning enabled, every overwrite preserves the prior\ncontent as a history version, and deletes are soft (recoverable until\nforce-purged). Enable versioning on a bucket from the dashboard.\n\n```typescript\n// List all versions of a path, newest first\nconst versions = await Koolbase.storage.listVersions('documents', 'contract.pdf');\n\nfor (const v of versions) {\n  console.log(`${v.versionId}: size=${v.size} isCurrent=${v.isCurrent}`);\n}\n\n// Download a specific historical version\nconst url = await Koolbase.storage.getDownloadUrl(\n  'documents',\n  'contract.pdf',\n  '019e98ed-eed6-7e71-...',\n);\n\n// Bring a history version back as current\n// (the existing current is snapshotted to history first)\nconst restored = await Koolbase.storage.restoreVersion(\n  'documents',\n  'contract.pdf',\n  '019e98ed-eed6-7e71-...',\n);\n\n// Hard-remove a single history version (row + R2 bytes)\nawait Koolbase.storage.purgeVersion(\n  'documents',\n  'contract.pdf',\n  'old-version-id',\n);\n\n// Wipe the entire timeline for a path - every version, every R2 key\nawait Koolbase.storage.delete('documents', 'contract.pdf', true);\n```\n\nA few behaviors worth knowing:\n\n- **Overwrite snapshots automatically.** Upload to a path that already\n  exists in a versioned bucket and the prior bytes are preserved as\n  history; the upload becomes the new current.\n- **Delete is soft by default.** On a versioned bucket, `delete`\n  snapshots the current content and records a delete marker. The\n  content is still recoverable via `restoreVersion` until force-purged.\n- **Restore is itself a versioned event.** The previously-current row\n  gets snapshotted before the target's bytes overwrite canonical. The\n  restored row gets a fresh `versionId`; the target stays in history at\n  its original id - so you can always undo a restore.\n- **Delete markers can be listed but not downloaded.** A marker has\n  `size === 0`, `isDeleteMarker === true`, and no bytes. Calling\n  `getDownloadUrl` with a marker's `versionId` throws.\n\n---\n\n## Realtime\n\nSubscribe to live changes on a collection. Uses the signed-in user's session, so\nsubscribe after login. Streams `created`, `updated`, and `deleted` events for\ncollections whose read rule is `public` or `authenticated`.\n\n```ts\nconst unsubscribe = Koolbase.realtime.subscribe('messages', (event) => {\n  // event.type -> 'created' | 'updated' | 'deleted'\n  if (event.type === 'deleted') {\n    console.log('deleted', event.recordId);   // recordId on deletes\n  } else {\n    console.log(event.type, event.record!.data); // record on created/updated\n  }\n});\n\nunsubscribe();\n```\n\nThe socket opens lazily, is shared, and reconnects automatically. The project is\ntaken from the user's session.\n\n---\n\n## Functions\n\nInvoke deployed serverless functions. When a user is signed in via `Koolbase.auth`, their access token is automatically forwarded — the function receives the caller's identity via `ctx.auth`. No token handling on the client side.\n\n```typescript\n// Invoke a deployed function\nconst result = await Koolbase.functions.invoke('send-welcome-email', {\n  userId: '123',\n});\nif (result.success) console.log(result.data);\n```\n\nInside the function, read the caller:\n\n```typescript\nexport async function handler(ctx) {\n  const userId = ctx.auth?.user_id;\n  if (!userId) {\n    return { error: { code: 'AUTH_REQUIRED' }, status: 401 };\n  }\n  // Authenticated logic here\n  return { ok: true };\n}\n```\n\nToken refresh is transparent — the SDK reads the current token fresh on every invoke. Full docs at [docs.koolbase.com/functions/authentication](https://docs.koolbase.com/functions/authentication).\n\n---\n\n## Feature Flags & Remote Config\n\n```typescript\nif (Koolbase.isEnabled('new_checkout')) { /* ... */ }\n\nconst timeout = Koolbase.configNumber('timeout_seconds', 30);\nconst apiUrl = Koolbase.configString('api_url', 'https://api.myapp.com');\nconst dark = Koolbase.configBool('force_dark_mode', false);\n```\n\n---\n\n## Version Enforcement\n\n```typescript\nconst result = Koolbase.checkVersion('1.2.3');\nif (result.status === 'force_update') {\n  // block and show update screen\n}\n```\n\n---\n\n## Code Push\n\nPush config overrides, feature flag overrides, and directive-driven behaviour without a store release.\n\n```typescript\nawait Koolbase.initialize({\n  publicKey: 'pk_live_xxxx',\n  baseUrl: 'https://api.koolbase.com',\n  codePushChannel: 'stable',\n});\n\n// Bundle values override Remote Config + Feature Flags transparently\nconst timeout = Koolbase.configNumber('api_timeout_ms', 3000);\n\n// Directive handlers\nKoolbase.codePush.onDirective('force_logout_all', (value) => {\n  if (value) Koolbase.auth.logout();\n});\nKoolbase.codePush.applyDirectives();\n```\n\n---\n\n### Mandatory updates\n\nMark a bundle **mandatory** in the dashboard (or via `PATCH /mandatory`) when every device must apply it before continuing — surfaced as a push callback and a pollable flag:\n\n```typescript\nawait Koolbase.initialize({\n  publicKey: 'pk_live_xxxx',\n  baseUrl: 'https://api.koolbase.com',\n  // Fires the moment a mandatory bundle is staged for the next launch\n  onMandatoryUpdate: ({ version }) => {\n    showRestartRequiredDialog(version);\n  },\n});\n\n// Or poll it — e.g. on app resume — before letting the user proceed\nif (Koolbase.codePush.hasMandatoryUpdate) {\n  showRestartRequiredDialog();\n}\n```\n\nA mandatory bundle still activates on the next cold launch like any other; the callback and flag just let you prompt the user to restart now instead of waiting.\n\n---\n\n## Logic Engine\n\nDefine conditional app behavior as data in your Runtime Bundle — no code changes required.\n\n```typescript\nconst result = Koolbase.executeFlow('on_checkout_tap', {\n  plan: user.plan,\n  usage: user.usage,\n});\n\nif (result.hasEvent) {\n  switch (result.eventName) {\n    case 'show_upgrade': navigation.navigate('Upgrade'); break;\n    case 'go_checkout': navigation.navigate('Checkout'); break;\n  }\n}\n```\n\n**v2 operators:** `eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `contains`, `starts_with`, `ends_with`, `in_list`, `not_in_list`, `between`, `is_true`, `is_false`, `exists`, `not_exists`, `and`, `or`\n\nFull docs at [docs.koolbase.com/sdk/logic-engine](https://docs.koolbase.com/sdk/logic-engine).\n\n---\n\n## Analytics\n\nTrack screen views, custom events, and user behaviour. View DAU, WAU, MAU, funnels, and retention in the Koolbase dashboard.\n\n```typescript\nawait Koolbase.initialize({\n  publicKey: 'pk_live_xxxx',\n  baseUrl: 'https://api.koolbase.com',\n  analyticsEnabled: true,\n  appVersion: '1.0.0',\n});\n\n// Custom events\nKoolbase.analytics.track('purchase', { value: 1200, currency: 'GHS' });\n\n// Screen views\nKoolbase.analytics.screenView('checkout');\n\n// User identity\nKoolbase.analytics.identify(user.id);\nKoolbase.analytics.setUserProperty('plan', 'pro');\n\n// On logout\nKoolbase.analytics.reset();\n```\n\n---\n\n## Cloud Messaging\n\n```typescript\nawait Koolbase.initialize({\n  publicKey: 'pk_live_xxxx',\n  baseUrl: 'https://api.koolbase.com',\n  messagingEnabled: true,\n});\n\n// Register FCM token (after obtaining from @react-native-firebase/messaging)\nconst fcmToken = await messaging().getToken();\nawait Koolbase.messaging.registerToken({\n  token: fcmToken,\n  platform: 'android', // or 'ios'\n});\n\n// Send to a specific device\nawait Koolbase.messaging.send({\n  to: deviceToken,\n  title: 'Your order is ready',\n  body: 'Pick up at counter 3',\n  data: { order_id: '123' },\n});\n```\n\n---\n\n## Error handling\n\nKoolbase throws typed errors selected from the server's stable error `code`, so\nhandling doesn't depend on message text.\n\n### Database errors\n\nAll data-layer failures extend `KoolbaseDataError` (which extends `Error`):\n\n| Error | When |\n|---|---|\n| `KoolbaseConflictError` | A write violates a unique constraint (409). Exposes `.field` — the field that collided, when the server reports it. |\n| `KoolbaseNotFoundError` | The record or collection doesn't exist (404). |\n| `KoolbaseValidationError` | The request was rejected as invalid (400). |\n| `KoolbasePermissionError` | An access rule denied the operation (403). |\n| `KoolbaseRateLimitError` | The caller is being rate-limited (429). |\n| `KoolbaseVectorDimensionMismatchError` | A vector's length doesn't match the field's declared dimension (400, code `vector_dimension_mismatch`). |\n\n```ts\nimport { KoolbaseConflictError, KoolbaseDataError } from '@techfinityedge/koolbase-react-native';\n\ntry {\n  await Koolbase.db.upsert('users', { email }, { name });\n} catch (e) {\n  if (e instanceof KoolbaseConflictError) {\n    showError(`That ${e.field ?? 'value'} is already taken.`);\n  } else if (e instanceof KoolbaseDataError) {\n    showError(e.message);\n  }\n}\n```\n\n> `query`, `get`, `upsert`, and `deleteWhere` throw these typed errors. `insert`,\n> `update`, and `delete` are optimistic/offline-first — they queue and sync in\n> the background, so their conflicts surface via the sync engine, not as a\n> thrown error.\n\n---\n\n### Storage errors\n\nAll storage failures extend `KoolbaseStorageError` (which extends `Error`):\n\n| Error | When |\n|---|---|\n| `KoolbaseStorageConflictError` | An upload targets a path that's already taken and `overwrite: false` (409, code `PATH_CONFLICT`). Exposes `.path` — the colliding path. |\n| `KoolbaseStorageNotFoundError` | The bucket or object doesn't exist (404). |\n| `KoolbaseStorageValidationError` | The request was rejected as invalid — bad path, missing field (400). |\n| `KoolbaseStoragePermissionError` | The caller is not allowed to perform the operation (403). |\n\n```ts\nimport {\n  KoolbaseStorageConflictError,\n  KoolbaseStorageError,\n  KoolbaseStoragePermissionError,\n} from '@techfinityedge/koolbase-react-native';\n\ntry {\n  await Koolbase.storage.upload({\n    bucket: 'avatars',\n    path: 'me.png',\n    file: { uri, name: 'me.png', type: 'image/png' },\n  });\n} catch (e) {\n  if (e instanceof KoolbaseStorageConflictError) {\n    // Already exists — prompt user to confirm overwrite\n    promptOverwrite(e.path);\n  } else if (e instanceof KoolbaseStoragePermissionError) {\n    showError('You do not have permission to upload here.');\n  } else if (e instanceof KoolbaseStorageError) {\n    // Catch-all for any other storage error\n    showError(e.message);\n  } else {\n    throw e;\n  }\n}\n```\n\n---\n\n## What's included\n\n- Authentication: email + password, Apple Sign-In, Google Sign-In, phone + OTP\n- Database with offline-first cache, realtime subscriptions, populate for related records, semantic search over vectors\n- Storage with presigned uploads and downloads, safe-by-default conflict handling, image transforms, object versioning (history + restore + soft-delete)\n- Realtime subscriptions over WebSocket\n- Authenticated functions (`ctx.auth` exposes the caller automatically)\n- Feature flags and remote config\n- Version enforcement\n- Code push (config + flag overrides + directives, no store release)\n- Logic engine (conditional flows as data, updatable OTA)\n- Analytics (DAU/WAU/MAU, funnels, retention)\n- Cloud Messaging (FCM token registration, targeted send, broadcast)\n- TypeScript-native with full type definitions\n\n---\n\n## Documentation\n\nFull documentation at [docs.koolbase.com](https://docs.koolbase.com)\n\n## Dashboard\n\nManage your projects at [app.koolbase.com](https://app.koolbase.com)\n\n## Support\n\n- [GitHub Issues](https://github.com/kennedyowusu/koolbase-react-native/issues)\n- [docs.koolbase.com](https://docs.koolbase.com)\n- Email: <hello@koolbase.com>\n\n## License\n\nMIT\n","readmeFilename":"README.md"}