{"_id":"frontlink","_rev":"49-36bf5ea272a4c48bf429a9ed4d388eff","name":"frontlink","dist-tags":{"latest":"0.0.52"},"versions":{"0.0.1":{"name":"frontlink","version":"0.0.1","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.1","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"dist":{"shasum":"0863c57a10bffa1bcb9287b3e70b11d82fc10325","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.1.tgz","fileCount":20,"integrity":"sha512-pSKdkz/UwnsKZSrhEpqMbSUMfUkAPApNFNJ2nSK6uB5LFB4i8Tzl6QOSyorqf1GCvCFixLrpcGIgjE0OH4E+7Q==","signatures":[{"sig":"MEUCIDTfVTxG+yHWJyZxGSYcOYgrRG+x/uw47l2/HRXY+AHDAiEAlIPNnxFrZvLs5uPg54DX299j2yt1Sy482QTtZ5+dWmw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28834},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"9598c5ebf45dcc904e5323267e927fe27b2d7ce3","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"_npmVersion":"10.2.3","description":"## Uniquely naming","directories":{},"_nodeVersion":"20.10.0","dependencies":{"events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.1_1706405416620_0.5145638458667203","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"frontlink","version":"0.0.2","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.2","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"dist":{"shasum":"38c7f6eeb0f345b230200d4ff7a3b66947542bbd","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.2.tgz","fileCount":20,"integrity":"sha512-BO39nf0CvVAxQlNZypZJ+9ApLmG1ELrm1Nvc/9Q/XPvjTrG4EBh8p3B+fuQP/nZtysjaVYv40wed+2KKrYkjZA==","signatures":[{"sig":"MEUCIQDELUUP0LqterAb7F3AJ4WdbMewte32cSY0HyPfkXbILgIgSSQD/ux2j51XSY5GiZZbGmqwTXhzRPfzyrUGb3Xnpzs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35057},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"7f633ced3301cbafd20546a3ec61f7da8f0869a5","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"_npmVersion":"10.2.3","description":"## Uniquely naming","directories":{},"_nodeVersion":"20.10.0","dependencies":{"events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.2_1706461717365_0.5392218131443072","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"frontlink","version":"0.0.3","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.3","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"3aec200e2a19312f101748a714866d8886f6cc88","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.3.tgz","fileCount":20,"integrity":"sha512-Uzv1GhIfCbqdHC4F5oViAweuDPsot6Q+EqSVPa8NPd1enIf6BkqZh2okdsfVmeYl7PjqIzmW4LmHLMhO+U8h8Q==","signatures":[{"sig":"MEQCIBwhSO2iRjQhCcMCBCfpl1G0GQKdLcn7FAmTKIBS8pHPAiBroJC1HWzDhA5Z/uUiGhHtIOVh6QQ4JnWwj9xJ70S3oQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35176},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"04b75d3e5f9e81f895d8e2cfa707a463d9363b17","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"## Uniquely naming","directories":{},"_nodeVersion":"20.10.0","dependencies":{"events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.3_1706461801335_0.9748747908492728","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"frontlink","version":"0.0.4","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.4","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"c7e6acfab0712e3760b209552c8c845bc45cf0d8","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.4.tgz","fileCount":20,"integrity":"sha512-tiMvB3bmvatVe60mopyw+xglDodnikQizpKpNFyCSuJf4AlqcC6J84t93y1NAROmhtDqJ5NpNCQ1IsnziieTYA==","signatures":[{"sig":"MEQCIF7mpVr3NTsHzYH22gwW162+QrR0Mk1ba/t0hkrqf1MAAiBnA4/mny30TAdFMXCF4j9d2dxebxQPFxa6C7C8YcgUEA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38401},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"9894da3401d1707f98913ea09f614545606be760","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"## Getting started","directories":{},"_nodeVersion":"20.10.0","dependencies":{"events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.4_1706463387571_0.1708924511952048","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"frontlink","version":"0.0.5","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.5","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"c1ebb218f685ebe54c9785ecea3c39606c5c236a","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.5.tgz","fileCount":20,"integrity":"sha512-V6e5ueBttOEF8pSzIi0yfo+MsGxtxmGWj/1QjfE49Csfwcgo3tZeSJEfkS4fAJ4e4mS/4nunuYrylhHl5r4yIg==","signatures":[{"sig":"MEYCIQDEC4TWn6RxxzxM6WhtwVVXNatdrf62Edz8yATpd41rkAIhAM0Kd/00tFAVAVql3Lf7JAVVqL7J6vuO6pFEb+xGlxL2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38390},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"702afaed3087ca0f4c8025e91606509c9390f7b9","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"## Getting started","directories":{},"_nodeVersion":"20.10.0","dependencies":{"events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.5_1706464944365_0.5862289114967063","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"frontlink","version":"0.0.6","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.6","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"95f82d169d2534b52d0b36b148421961409eb547","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.6.tgz","fileCount":20,"integrity":"sha512-A2K4GSosR5bKUUsYdJJswvDPSTtPQuup5nRlSPq2U6Kfu84dOVsQLm5obF3FMZgsHOWrohAo8jo4rXk0hl2bHQ==","signatures":[{"sig":"MEUCICLtvLOcZVrpYksjWcYsEh63wT11w1JYmQVHIWZVXnAWAiEAplb9KMpwcJw9HHgyZfCWaW4VniGqVZLvKuu4jGKoSMk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44738},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"1775041911af3abd3d5bd9b7758783c5293745c0","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"## Getting started","directories":{},"_nodeVersion":"20.10.0","dependencies":{"events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.6_1706468136391_0.141259376821689","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"frontlink","version":"0.0.7","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.7","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"a66c6fbc4dc2ca64e41d38acada1f36d8ef9323b","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.7.tgz","fileCount":20,"integrity":"sha512-ypdp0uCcTgx0cCzLPUY94vReEwOyjF2hbOfGB+8Iz8/bo7E7jC9onOuXcmt4Knz4hB9ul3Xu8Bh7VFtyktwmWw==","signatures":[{"sig":"MEQCIB+CsCc8ZbIzdUdE6wleAS+feMivuv+JpKS48i06LhRnAiBQlmulBKjwqcj0VJVyck6TmLrOUDOa5vrTjMmbdECDag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45477},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"2b9c210c8f59d00f895a002515bfe6d406d86976","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.7_1706494379754_0.08079404308018567","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"frontlink","version":"0.0.8","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.8","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"7118dbbb02769249db927cabd20fd795bef16288","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.8.tgz","fileCount":20,"integrity":"sha512-Jl6qjWlSpHfJ+QDH+K0pYdi19DVUawSh146FbK4gdh4+L3uYGGm8784cGhDMuEWLNfAJE3uZRFJKMGaN1p8t0Q==","signatures":[{"sig":"MEYCIQC6KMoXHahghLu9z0VI02j5ZbE0nBJpnaMpAwqgqZfKWwIhAJXDWgWtd67QCyeqNZeQgdFe6pYHAbcTaNgcNCpgeETO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45491},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"04f948a4b9bbe005abf94922d65246cefbd55a97","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.8_1706494650163_0.40857489566477656","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"frontlink","version":"0.0.9","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.9","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"d9d183cacaeb6ce9894327c62754ffbffebd1cf4","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.9.tgz","fileCount":20,"integrity":"sha512-Tav7Cp+XUupQn1LBqyNCkPrhrx7eyGqbWdWuG3xtb8Gr6TKLMfo5YBbsrewDpL/NqqhRo1F7BiPcG0E/DFRFQg==","signatures":[{"sig":"MEYCIQCvCV7WgJ0KU6/8X5jT+iPOmni/Rf2x9XTgnl/msKwp4gIhAJ1QlkG7uH0zDtnOFDEodrjPEbDtHnqgudjWgUEztJnM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45510},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"95ec1cb338b909c91d3cd056dfe6b0db231ee40c","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.9_1706532891650_0.46061765691829804","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"frontlink","version":"0.0.10","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.10","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"f0d32708d3c241b2ed740ae0f489755d5e7e0158","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.10.tgz","fileCount":20,"integrity":"sha512-TgCN/JECD8AtnlTnM500mR3pJRFrvHDsThDhQx+uK9hBpt2dqtWOLG0z/FVppA/KnimHQfzNM6pp9B84VpA2fA==","signatures":[{"sig":"MEUCIQCtMv5DTbTdjFgCd0McOUIxXshM51JX9z7q738fEnJclwIgDsFYGtxospLrqS5RNqqdop/J6Up8D7KW2D9V2s1nYas=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45975},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"89b502857f3590cd296e13600f13815b85abc8b8","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.10_1706576339845_0.38675986239803883","host":"s3://npm-registry-packages"}},"0.0.11":{"name":"frontlink","version":"0.0.11","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.11","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"8b707aecdbf9ae311d35073fb07b7e0ccdbb610b","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.11.tgz","fileCount":20,"integrity":"sha512-8wGpc+2ngOfF7kTljsWnoH1/BGV7EQ0r65KTj5hl6DdMJhIDv4Lg5gMVlmwb6+yK/DnB4bBdej/L+rseKtGHKQ==","signatures":[{"sig":"MEUCIGTUyrLghV9dOHNXcvR8vxF4wzTsGo5u2+NqAxQl7w1MAiEAi7XFD1awHDirnq5IffbsPYAbKEUWqdXGYIbnrb8vonw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":46084},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"a854a60d04bd030f6aa46a2767f868863b2a099d","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.11_1706576479747_0.5264017653575062","host":"s3://npm-registry-packages"}},"0.0.12":{"name":"frontlink","version":"0.0.12","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.12","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"f44c3e3a6aac63df9f8cfe1d602612327c41b7a3","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.12.tgz","fileCount":20,"integrity":"sha512-YgijPHhEl0pn6S9QFCUcq1xuyCpM7Sa5M8urzci7C/d7KiS/m4gYG4X8EKZa6KEUOOBJfjLVT4SxLAWzM03rxA==","signatures":[{"sig":"MEYCIQDuyfH0w9eORUy+M9fxPw+GrYqedFWWGQGgoF55zHLCkgIhAImAM+3UkBSfDT2GAPOVFUv1E4BJzM6dzT+JZRT9s9X8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50125},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"df9c35cb1259031512440f5cdf3ac2b6a7702ef8","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.12_1706826696862_0.9347222630384953","host":"s3://npm-registry-packages"}},"0.0.13":{"name":"frontlink","version":"0.0.13","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.13","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"7ec1b5fbc36c388d5d748a64c0acca1e500d8326","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.13.tgz","fileCount":20,"integrity":"sha512-Bm0dSV47Sz+VXfjiKEIH07QrAapY8Yz0flxiI+8XeP5XZNlWamUxCa7iMSjfI1o5L3gQL4u9+wbz7xH7pGdCVQ==","signatures":[{"sig":"MEUCIQCywuH6KKMBolepgFrIzyQRJWN+d+ydpivSW6lNI+lHwQIgKnKwfAd2aNRmHTRcxbg4Kkf7WyCIxH6waU62RS6GoOY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50428},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"f8ddfbc27bfe3ffe845f95759545fd7c735a8a05","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.13_1706827252970_0.9369544998526236","host":"s3://npm-registry-packages"}},"0.0.14":{"name":"frontlink","version":"0.0.14","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.14","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"4493d5c16e534ca33e18fb212c3715edcb3a2371","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.14.tgz","fileCount":20,"integrity":"sha512-8U7ZjDdet6+2NZnZeU666gBYazqxSVtjBhzMVAPYzT/vf9g7iM/zHWr3qmvs0ZpxqQRfadtBvqyT79GhOHAyXQ==","signatures":[{"sig":"MEUCIC/gRQeXU9q3MkuRs801Ow4OXubhLXFPL+Yaf21jytRtAiEA4UedKo8YpVlZ/1opvF+nCELm6XJFWwepnndpdryw4wI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50406},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"b336083924c5d524eaa264cc8a4a3ba0989eb259","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.14_1706827324697_0.9315990545719712","host":"s3://npm-registry-packages"}},"0.0.15":{"name":"frontlink","version":"0.0.15","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.15","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"e89fbe75aee024e6a86f9f976ab444bda458cb0a","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.15.tgz","fileCount":20,"integrity":"sha512-roIWSKRIho5ArIGZAnAnsE0FMYRmYT5PoqZeVVY66mRIrRA2U63VQwaJ/uDOC4HnK3qkJSeJvdMe9L6zcSqR4w==","signatures":[{"sig":"MEYCIQC7mWzhp56oyaHOAdvUqnoqza6zAIRdo50gBOuDmkk5YwIhAPPgnK4OWph5k4xxHzbLBa2eXym8w9S3MUAqdpx/FhtJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50582},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"b5d8d1d47ab232b2754323439472dea2ade974c8","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.15_1706827584414_0.08516040873645592","host":"s3://npm-registry-packages"}},"0.0.16":{"name":"frontlink","version":"0.0.16","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.16","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"4ee30c10f0a1f6e3c4e0f939cc10b71bc5324082","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.16.tgz","fileCount":20,"integrity":"sha512-B6+UgxEm30Oq5d5hHIZ7sVw0ALEaiWbbbQ/Bj/uvPV8U7eT3LMoFlsGMaQkedJx+UA5Z07aTEGSxcqFipMh8bQ==","signatures":[{"sig":"MEYCIQDJQUzcTCL8zyV6vQHF8W0/TWj417lgKZrCnSMiT71cpQIhAOm1G6AZyRfmAAuQihgzWdZvXv7HG5aPMGqV1JNMEUA7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50605},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"bf27fb75f55fc25ee06fc73f8948aed456b3194f","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.16_1706827630516_0.3565240110869534","host":"s3://npm-registry-packages"}},"0.0.17":{"name":"frontlink","version":"0.0.17","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.17","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"8d3027508c73dca44d3b3065e6d48ecf33f16742","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.17.tgz","fileCount":20,"integrity":"sha512-ROcQk2R/5UOLRomiMGHK7V2RzAXRXCMxDPm9Mid1RX1TKwVjNJ97oB0/VgK/2L5h7/mhiz0L8xX1PLuaBnZX4w==","signatures":[{"sig":"MEYCIQDuqHM4JbOhoLD6SoSeCXQOYHTFp8Lff/Q+DbNwaqDSrwIhALTAPFaB1Ekh3aeLHhBUE/iCR6tokwDymyriMbqU4Yz7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50740},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"9919fc729a5d558c749d8ac5f1bebd1477420083","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.17_1706829238050_0.5357031487349828","host":"s3://npm-registry-packages"}},"0.0.18":{"name":"frontlink","version":"0.0.18","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.18","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"d1e17b2f114ce95c9924d01c68b7006cdda9b18d","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.18.tgz","fileCount":20,"integrity":"sha512-V+V9QRS5jRpdgB/BEz3wmY54REIykyMUWPf1Punia1X5uMNjs0g6b62B7dtQJFrwK4BbS8y4TrFIfRHHwtqhuw==","signatures":[{"sig":"MEQCIG2P87kWs/rijeNYxG2TYusk6sIs3baN/xZy/YZpnAW8AiAP/o3JZfePxoPbW8cDu9fHcptcXvO1pMCSvAr3haZbfA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50282},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"56d355cee69fc56a7983b0526041f03d1a284c70","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.18_1706829961353_0.43599166517114996","host":"s3://npm-registry-packages"}},"0.0.19":{"name":"frontlink","version":"0.0.19","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.19","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"6544ecdeb54117460307745ffd6d051b083cd48f","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.19.tgz","fileCount":20,"integrity":"sha512-Q0zCmZH67rz00o8OoEv3KabQ8IW5N5ih7MDWUFiAeUGPgslTrNittYt+wCMHyNen595NzGA21farj7Z0natIWA==","signatures":[{"sig":"MEQCICMSzpfac1P44djzlYvWwJrM3QT5HB95fi931MANrtyvAiB8feelvRVk8UoN6+WqQzZGXwjPgRrHmGjurFzxfVRv5Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50290},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"d914bbcb83f258a8b8732876c224154cc16805ed","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.19_1706896934551_0.8645556461772561","host":"s3://npm-registry-packages"}},"0.0.20":{"name":"frontlink","version":"0.0.20","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.20","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"f4044725ae6f6795639cbe14ba0e744a4360bb33","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.20.tgz","fileCount":20,"integrity":"sha512-9j1xs3i8z0Aog5R39/q1dXPdSRdqXP9qzOaaZa0TE6moj8Ij5HD2DySK4Q9IOdD/fZi9ZOEZHjh0S4IG/NkeUA==","signatures":[{"sig":"MEUCIGIZwtlXWx3BAQn8v44QwaqdkZFzrS75x5TJLvD8w9hnAiEA2NuSXahTJRHu2OC9PhJZPnJCIfL6qKtm9+ahBaUvdDo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49855},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"ae273c56f12db208a4adcbd7bca4cdede3da4ec0","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.20_1706896996296_0.23975437938920074","host":"s3://npm-registry-packages"}},"0.0.21":{"name":"frontlink","version":"0.0.21","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.21","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"7729c7fb8b1c0e6a95177ae39941b59adec08de6","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.21.tgz","fileCount":20,"integrity":"sha512-zR6j1yJnxL7dGDDnuhWsgQKQL7NG6ESnSCcqaA0dyG88oQ25N+7cFynCZ4vo5njxMXDyE1SPOT8VtB2yMJndVg==","signatures":[{"sig":"MEUCIGCzF3rSuPv/59kT+o2d5Q1V4k4w0IoU/g8s3uinacQYAiEAtkoxlfSOgguCy/Q5z1X8Uqn2THynaRBWJqSYvuEAsz8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53683},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"61f5f390b5358271a4faa84eaf8f1096de4d2480","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.21_1706901129311_0.1435633182120486","host":"s3://npm-registry-packages"}},"0.0.22":{"name":"frontlink","version":"0.0.22","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.22","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"b657932e4323a35cfe2c9d15ea8f4ca15e9c3730","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.22.tgz","fileCount":20,"integrity":"sha512-rY7PCw2TrAzDpnqZhYgeetN+Fz+C6D+No84rxHx8q+ZLy+Io/xNEPxRh3Td5ODbHpI3FeRkj2WZZvix1x1SSUw==","signatures":[{"sig":"MEUCIB4FG2OFnSt5MhL9+rkxOnYFFQ2NG215GkrHiBqg94JIAiEAw2bdRRmOPxC72Sbe7WsWyUzO9x3l3s02v+voH2RHBNk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54465},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"7bffc0b7f919e99c33401b712321650985a3d8af","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.22_1706901312964_0.19778515126415996","host":"s3://npm-registry-packages"}},"0.0.23":{"name":"frontlink","version":"0.0.23","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.23","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"7e72615e04cdc7bd5cba330c80c5b7d7450d0586","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.23.tgz","fileCount":20,"integrity":"sha512-rSRl2SjY+tZIlx2Crhxf1dKMjsJhtSXNQRUznEKEx2RbmFRakhYL8igyac5cDGWs1Mq0LHnTcWQKcJMKQ++SIQ==","signatures":[{"sig":"MEYCIQC7dTVIJoiYPIG2v7CKHwW8JxnZdTvJKfuZVUoY1v+VdAIhAODJfLZpK1bjScmjxV/KPuDoAs+kvDJHMkU6P0K98PqF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54115},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"6572c7dd38aedb46875830c1ca9d0e0c4f72ed2c","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.23_1706901466858_0.14328028382901126","host":"s3://npm-registry-packages"}},"0.0.26":{"name":"frontlink","version":"0.0.26","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.26","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"1ddeac9946da0a3bedd0469b537ca918d73c77e6","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.26.tgz","fileCount":20,"integrity":"sha512-CZWfmRNFaSiCkgJpimfqDqgku2URZxAlpM9THdf4mUzVb8bl7w0xLbzzTGuACVdwIE4dblg4Qn66yJG23YvmNA==","signatures":[{"sig":"MEUCIHpc1cuGGlsKb5cayX+1ufKg0MGraf2N5r7uI8Fyjy2mAiEAubbNsM5dkscvKXXbbwzxPI7Gp8YCz5mnXQdSHLkFx3Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55403},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"488b1ed59320cfcd78154cd31785daeac62cb502","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.26_1706902322592_0.8855269950361828","host":"s3://npm-registry-packages"}},"0.0.27":{"name":"frontlink","version":"0.0.27","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.27","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"123098791422dab75d53284013ec2b6a8bd0de31","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.27.tgz","fileCount":20,"integrity":"sha512-MorX3by31vRNJ643O90Xg2c3UoFzJwzlpdRSgPm3JE40t5TYqrcq6HM/4HsCm8MxNbMv80UOJzEKSPKPZ3IF8A==","signatures":[{"sig":"MEYCIQCDrrNWFTMI+YDbcEjMzhc/LwMnyY6oCrA/0iKT9KCnQAIhAP1WKDbIAPGQ7ErgAcJUwd002Oa5Ur6yNXIS13tFr7e7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56148},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"35b6213c0dd4379125d7b38282fe472d5bb3cb49","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.27_1706902503723_0.43544225259079594","host":"s3://npm-registry-packages"}},"0.0.28":{"name":"frontlink","version":"0.0.28","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.28","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"16b386b2951faeda86d187fe2d4e2a6570321bf3","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.28.tgz","fileCount":20,"integrity":"sha512-hBdTYFMTTh9H27Q/ut52eVKdPZLdzZSitYNS3bkjRycTSZpKxoe1EZviCAvMUPtmh5jw2AkkjgFwbHtV/oA3cA==","signatures":[{"sig":"MEUCIHtkcJrC4B6/nFpySFBMiTjO77Tiqh05sq7dAvancDyaAiEAgMJxhrNyiWU1WOtn28vVCp6+/expTk2SvOvI39ty0ww=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56190},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"80a1301dd0e3350a12cf72df7ff85bd079df52da","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.28_1707060410049_0.9990649198948351","host":"s3://npm-registry-packages"}},"0.0.29":{"name":"frontlink","version":"0.0.29","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.29","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"7441004edc3e3136462381017c645d0717288704","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.29.tgz","fileCount":20,"integrity":"sha512-nGFfiR/XfdDIsdok5TCMO1mo3o1K50pxLhCHxJAD9jK8VPsIPd5jZfi6gu6YYY8GqFCNaOq8MT73SVSxPcQ56Q==","signatures":[{"sig":"MEUCIH0oi7BdMr4pbvOPVaByi77KmWGZmwD5LW4p/95LbEubAiEAuSsutpgQR7FrV5hT3nb2c0K1yjKMunrm5EZA4QysQ6M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56148},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"29566924e2aa37125894711f9ee43e5d71ae030f","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.29_1707060513962_0.022851186347160102","host":"s3://npm-registry-packages"}},"0.0.30":{"name":"frontlink","version":"0.0.30","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.30","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"5efc870ba3766e36ecd94c3280478dd65ff27bfc","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.30.tgz","fileCount":20,"integrity":"sha512-zPMBLHGXdNF5ZqdDEQzEegYG2WppQRFBbcpO/8ql0X/cVbhembOSnN80ISXlXxN1T8luv+gQVxLYk1PTkue6mA==","signatures":[{"sig":"MEQCIB6J+q5Pd9F99kHYVZwBk9S/5YxaMii+E6xJPOEaTj6TAiAeHKqlnXHlONJCXgr+IKBAKXjGU0bTL/1LP1GuzxKweQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56307},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"704ecc98a7732fa6a6d9cc55913169a1d8c8e36c","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.30_1707067468144_0.60314508244859","host":"s3://npm-registry-packages"}},"0.0.31":{"name":"frontlink","version":"0.0.31","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.31","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"b4cd2371d452c729ee3ec2344dc08da190eb7dca","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.31.tgz","fileCount":20,"integrity":"sha512-dZmkmf09atZr25Z/gFer8tQv2YLxVS+4SsssC2PrwGYES73kcN/+XcniWc+Fvv5AzNDB9/FZabe0hW1uT/eFag==","signatures":[{"sig":"MEUCIQCbq3FVfARDOIxnUYEaS2oBsj8tPDMhrKhcLbYA2R+QlAIgHuxBwqWMvxsKevqeoGXnxt67IK4xkP6y6xYvIO406ak=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56884},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"e1e862ad3580eee35af8deeb4cadd25d411fae7d","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.31_1707151552314_0.29204719281075353","host":"s3://npm-registry-packages"}},"0.0.32":{"name":"frontlink","version":"0.0.32","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.32","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"cb543ac72bf515861144f8b2b713034959631722","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.32.tgz","fileCount":20,"integrity":"sha512-3GvddEvrT7w+tnpCOTlW1TbQc26IjaYW0yhDLmHi3wwXAyNJp68yR6HBGmoojrFhHF9EyCrL1LK48AYr1YGK9A==","signatures":[{"sig":"MEUCIBOzr1dYUIgY647cWZG5pxLKGy0gEMPIamLwjDGDAbX0AiEAldi2j1xpTZ/epBiIxXeEfWpQFwzo6IckZ9d8nIo+6mc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58146},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"c695e677dcc2906c1563a549c5f66a64ef2a6eb4","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.32_1707151945335_0.518177304605872","host":"s3://npm-registry-packages"}},"0.0.33":{"name":"frontlink","version":"0.0.33","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.33","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"05c04ee000e2684dbbaa930b0aae346653862e94","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.33.tgz","fileCount":20,"integrity":"sha512-cA4s+y3qgMNsOof42BFiipyAlL09NFk/JNID/NIJSY7eOD96EIsQaKrASOj9noZ1Ctr/VpKQEtsNunhW+vybFA==","signatures":[{"sig":"MEUCIQCNv96WvJx5DMFjJoYFKJU1AkCFa5EvXyBuQYXagCEE4wIgM+2eWMEUp9OCw3HjD60ktW3GrDptQcC2ZbY1Bmf09Oc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58806},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"40799c7704338fc1697c07faa9302aa261eed699","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) XD.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.33_1707152350399_0.6268824401616313","host":"s3://npm-registry-packages"}},"0.0.34":{"name":"frontlink","version":"0.0.34","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.34","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"af862586bfbb700eb2eecf8ee689d1746de1639c","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.34.tgz","fileCount":20,"integrity":"sha512-RIgyRain72bVxMLbmWsEldEHYpZUdUAOx6QCEddADWycQoCkHuPiVV0Ed3Pk805c1Y2cNPkDkfnXDptejGC8yQ==","signatures":[{"sig":"MEQCIFrdomJM45erH/v5TsRmrqEJ6AadC3ySKu0pxMBcgVY+AiAs5c1WoZX06DQxsELlDjspw4zqDjaNRZ05AlAETctcVg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58806},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"94efff69e94b93df5f42dd0cf0c26949391255f6","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.34_1707398811944_0.3299467867699286","host":"s3://npm-registry-packages"}},"0.0.35":{"name":"frontlink","version":"0.0.35","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.35","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"a64aab6187697cc87e87a90f596e573e35dce082","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.35.tgz","fileCount":21,"integrity":"sha512-T0VrwteqQuMJLmoxs9nwSQJU9P0YqQxoQ5nTOSRcIW6/y3mXTUpQpFlGIGM40sUcywjL2Y9CZT3LGQHIWGaYiQ==","signatures":[{"sig":"MEQCIH+LazWfByByA3mqP4ztR6sCuQanSVQ1Hy8snjPNgLifAiApk1xThur7pVp2M0dDTWgamXTqFoaNrEnLgZcyxxnuOw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60012},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"25468f80eb246956116733d4ef227ce0f21abb1b","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates with your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.35_1708549152119_0.5858240159313044","host":"s3://npm-registry-packages"}},"0.0.36":{"name":"frontlink","version":"0.0.36","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.36","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"92141708cc535f4257f3955266c672efc4950660","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.36.tgz","fileCount":21,"integrity":"sha512-FEuszjRf8yjQOQRP49UEprJmzqS0l6ZOnIm2DFbDnfLdFkpnIzaQydNTnmDQIBTkyBSt/YEr9TBcXM1K2BIMzQ==","signatures":[{"sig":"MEQCIAilJC0hp+IhDG1eMCGtHfemgMfMnUVYXYnip8a7A58JAiBpeJtXNg3AzH1x8UoeQtq/CrOf1OsVMp+j+9IfpTffKA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59995},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"34443a93353e4678c896f7e293d53b5586ef5ed6","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.36_1708604844862_0.44562358255615186","host":"s3://npm-registry-packages"}},"0.0.37":{"name":"frontlink","version":"0.0.37","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.37","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"3d0832d06e34c3eafb507927270f7d2c5e980770","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.37.tgz","fileCount":21,"integrity":"sha512-tk4m1zOe5Nrw0PdMAZv80v/7kIRIKHaReR3EIed3k29e1qlTp+5DgwGoO6IZU4oQ0HiqxpNO39GokUzC5ufDAQ==","signatures":[{"sig":"MEQCIHL2azuX+lf9eDnM+1RhBp8O3smriKieCpAv11SHOGkTAiB601jElrX85cweUBZGNpSkR6VdudMttxo9AbQu6L50sA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60289},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"312ab8fda85fa742d0cee6d12c4f0c9662935e75","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.37_1708828161984_0.5129896739001361","host":"s3://npm-registry-packages"}},"0.0.38":{"name":"frontlink","version":"0.0.38","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.38","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"c30fe42f4990ccd644fb5a9a28a6513c27e2269f","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.38.tgz","fileCount":21,"integrity":"sha512-EUv4Mzo0E4zJIRUjvgMxymdUNDwP6qRDuvz6NLPYZw48g/EzxFxWgAuKsiDDptBHJ+AbqiC1GCrUFFyU7Hms3g==","signatures":[{"sig":"MEUCIQC9TEL5ZLA+8SvzJqqKXH82UXuLCTbUDhVElx82DUATewIgN2Xxpzeqsl6lSZX04xTg5pksXm15uxAp28h+QnSQqb8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60225},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"b6182412125971c8975927fd7c59c0080dd054c6","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.3","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.38_1709296414923_0.41379872089687497","host":"s3://npm-registry-packages"}},"0.0.39":{"name":"frontlink","version":"0.0.39","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.39","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"1a719bd0557a1811d7e100e719757c6e2896c5f7","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.39.tgz","fileCount":21,"integrity":"sha512-wrtCSriBXQc3ijzyys0lk8x55C8yzVybf8QxYjQZOOeXE9ftxFEER54hoW41J5HuuLaV7Dfrc6EW6ImoQP3yWw==","signatures":[{"sig":"MEUCIGcHa28gMdnZfTMcZwEuTEvYhZpDTX20dkGKI/GwaxX4AiEAyFRL6+q2nkNSgNZycZoyakEvPypz52BPRIr5573bZwI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60261},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"b6182412125971c8975927fd7c59c0080dd054c6","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.39_1717415992700_0.16749622755806137","host":"s3://npm-registry-packages"}},"0.0.40":{"name":"frontlink","version":"0.0.40","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.40","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"ba708c0063c0afcafb5f6db47c0e72fcdca8dfb4","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.40.tgz","fileCount":21,"integrity":"sha512-YEt6ObvwuiLoD6gBRnqqKHN6Ij28urkUipJQt/0+yOwOanK+lWeKBeYD5mG+8tCBlKhII/oT6h8+vXoO7JQBhQ==","signatures":[{"sig":"MEQCIDRk99MAadpQKijTywHv4HZd4q8kfBWAIrh1TYI+5oN4AiA+8CbJlW62M0iFKZmqBsou13aA+v1NbFK1Fz1dia2iwQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60958},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"22865e49d0e7c9497409efcc5427c7aaf8a1e761","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.40_1718016061399_0.1263563593261614","host":"s3://npm-registry-packages"}},"0.0.41":{"name":"frontlink","version":"0.0.41","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.41","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"910d08a65ae58575aa2ffdc1fbd97526c7075a40","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.41.tgz","fileCount":21,"integrity":"sha512-QXOKM57n/GAV8AiEsDiUSFWcVT4/yvGZOTDjAbjO/xvAneov+on98K0tSx5BIu2hllWaTDBjKeWOWOO1xJ4kJw==","signatures":[{"sig":"MEYCIQDyBc+t2xdtgkKTLhlN1rb3jlhda8taPsGB8SgujcaEjAIhAP7aeX8SXCp4jPFf2hueXLsEkixOtunklbumFxYzdj7B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60991},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"2ebb1c720485c583a3cadb44a83320090418e1f2","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.41_1725368314946_0.9365032742526511","host":"s3://npm-registry-packages"}},"0.0.42":{"name":"frontlink","version":"0.0.42","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.42","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"441463251098146beab7f7395a3969916aa75079","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.42.tgz","fileCount":21,"integrity":"sha512-TsWqTqX2KizdpFR3ioBZJqVHke641VwcncQMSVr7TIAepLCpt0UkqvxvyF/qhIjhFwGDUj4G7J4kKBo50Iijzg==","signatures":[{"sig":"MEQCIAHL3temxma2LbthpgEPtxcWXCxHiRoKN2OKy81YD4G5AiAvMOdbcxPuFhJbjUtEkW26CGc0AnSK/4Rzse6U8jlF7g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61048},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"98968d5c19398e4d9246df27792ec7bdedaa01d7","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.42_1725370131090_0.3170290222458454","host":"s3://npm-registry-packages"}},"0.0.43":{"name":"frontlink","version":"0.0.43","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.43","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"8830f66822bfc9843c646d8510946315bc386381","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.43.tgz","fileCount":21,"integrity":"sha512-PFsyCqSbACiuRU95UDLvdXVlXFH9+knjoxyyi888K7yMVuM/cxyyMmq1ahLIzzCLwmufb4NPWdZFO0q3Xbmgfg==","signatures":[{"sig":"MEQCIDEb5EcauzDSpSZBZz/4PWzoeKYXHvrr8/QY87dKvqIXAiBZbI/PCdF+AoIB8gmd1DBH8BDvNnbl96kVy2TVIhTi/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61930},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"94fdfb8dbcb3252c843c92ccbe698470321d8eb5","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.43_1725377294093_0.7813531647544405","host":"s3://npm-registry-packages"}},"0.0.44":{"name":"frontlink","version":"0.0.44","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.44","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"0ea5ee4d6b1df3cd3feaada01b46e0569efd1922","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.44.tgz","fileCount":21,"integrity":"sha512-gOZBC5AQZ/gMi1gEGaVpb1yLuNn0JOjXIbPZKK5QFPirNx8eKBJhjctzxI/4BhTeXozjUooqLkNkz822MTy49A==","signatures":[{"sig":"MEUCICdZdYA4A5dZf105xT0yFVXEPJWRblAMhOUmdtVJHBWoAiEA3VkIHUwWunzWOS0Nrm/Jy79VpIqrwtX6YGg0kuh9Psg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63185},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"55668134ab238df9e7b6f1ed48700a4a82a45eb4","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.44_1725378800215_0.5257195255696967","host":"s3://npm-registry-packages"}},"0.0.45":{"name":"frontlink","version":"0.0.45","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.45","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"b1df2b1dd852c40d67cd329b45f196d50c5ce181","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.45.tgz","fileCount":21,"integrity":"sha512-2dPsQPRJZUlA+8CXd1S/tJOPqlmpodbFqrGgo9NFcaSFLzlkKJrBfl4KiSkdw81z923ORLWb/F3xzk8YlYUe0A==","signatures":[{"sig":"MEUCIA7u1sXLxltTYj7PZQRfrlXB+qCOjmvvfhLHbewohbewAiEAicCPKzXlZGYI3CF8E1NVzCkl1YrOfFEOMhOUpRbQvmY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63299},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"581d0174301494952deb500eb55c73ba448999ac","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.45_1727208641975_0.5680868949957469","host":"s3://npm-registry-packages"}},"0.0.46":{"name":"frontlink","version":"0.0.46","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.46","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"a2bbba2bd251b273643e357caecbdef9b6d90ab6","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.46.tgz","fileCount":21,"integrity":"sha512-wO7kfKMBKsWTZFTiDslov0bDfStV2LUBdB3yq+qgwRtMBDd5FFqUaj3kME6cZ5WzIXIDN3/EKNMCPJUC4Iv9eQ==","signatures":[{"sig":"MEUCIEHZOld9DUu4o8/ePTx5403EW5dFJalZhzqv6WGNmALsAiEAupsi0P0GVk2dEpdIsW/BP8Bn/ErKvVmN/DjkZDt/f/c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63005},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"da0be173b14e7f4f1a8d3c8655bf3599b2341b0e","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.46_1727209486355_0.589637590055655","host":"s3://npm-registry-packages"}},"0.0.47":{"name":"frontlink","version":"0.0.47","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.47","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"e1b64c6ac05bcb53cd39e2eddb7410cb4c2467aa","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.47.tgz","fileCount":21,"integrity":"sha512-abMx5BjFM56ghmSfubzjAlpuVtQ5AOuaG1fThM/JmcdF6PlYnyKVj2ejQdGZqn7ogjtM5qsHITyJorSj25KL7g==","signatures":[{"sig":"MEUCIQCXy4tkjJCpJBdxnVYfLWRipvNsXVYOvXyiwlrzxbTOcQIgI8ASluvp8l9qNW9bMiGhVq4DGmkSHxm4DPC4fawThpc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63185},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"b99ce174eabbc10c0aaab1b45cb3df398ee50525","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.47_1727209888456_0.12385011086202402","host":"s3://npm-registry-packages"}},"0.0.48":{"name":"frontlink","version":"0.0.48","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.48","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"78ea4846a77c448af99851dad6d62cb9f36d58f4","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.48.tgz","fileCount":21,"integrity":"sha512-u5N6wyMkm2Sn4HHC6gTcFGpjtp+lA144dbIXFmquIfVkjlrAWPd5nwj/Ht5MVs8ssh6j2CrGsLxrY4Qzx5KK/g==","signatures":[{"sig":"MEYCIQCIUqNxWWbQmbvCZ5oL5N25NzSdyv2YPjSfyBl+pJcoLwIhAI9lVwbUehTJYqY6l2te1KAPomc5QkSbKR3KQ2dE13va","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63176},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"eceff741d21a8c8bda471f4b0c16919264ff15a2","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.48_1727269175670_0.12252756662024455","host":"s3://npm-registry-packages"}},"0.0.49":{"name":"frontlink","version":"0.0.49","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.49","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"41d222d863a3a15171914ef4b374c37e81ea2fa9","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.49.tgz","fileCount":21,"integrity":"sha512-PHAOhUKv7M5Cez18yG9Kp+RsYlFeT/5Yj2Cm5MrrX3dZXP8TNJ/yIbHtY+ZQuqtRS98Le4ML1DiRCFyAyabuZg==","signatures":[{"sig":"MEYCIQC1LC+Ls9jsKDuG5SG2NWb9lAyVNv630JtR/1HgPRGPlQIhAOZ3K9efOJZWtYVkZ0zEccLjd1O78cSbz0M7p8P5yB3m","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63371},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"613a39770be8f228dbb4f591c09a22b8845246b8","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.49_1727271069781_0.6612270272184146","host":"s3://npm-registry-packages"}},"0.0.50":{"name":"frontlink","version":"0.0.50","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.50","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"0b3efab3ce67852e89fc014a9a414de814397c4f","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.50.tgz","fileCount":21,"integrity":"sha512-RSsA6OA9MAPQnMrjRNARf84bWKwph5LN8QfFTw0ETbTGb6H9Xmr1gI22wyVagDDQvm31KNP97pof2ZEXHNMx3g==","signatures":[{"sig":"MEQCIH+YP2QNzUlNdaaWkMPeqeaynwK5ARSzvef4S+4fozp+AiACd0ZRri8YMcKi7thO6nRn12I75tIdPvKgW/T/bCmAsg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63377},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"ab7182d6828ba44f3b6d7bf098e9aa5c215f12a4","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.50_1727271371986_0.35407308972027995","host":"s3://npm-registry-packages"}},"0.0.51":{"name":"frontlink","version":"0.0.51","keywords":[],"author":"","license":"ISC","_id":"frontlink@0.0.51","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://frontlink.dev","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"dist":{"shasum":"abcf9744a6cf705cdd1c6a95bee38e82b0613623","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.51.tgz","fileCount":21,"integrity":"sha512-b9l8GR1JtaLkMm/+/5S5TRlX9b2eU3G22huFOowL3duFMXgyR5BC5zGRE0Q0BZhJaMToVhldkZhiHEogIPLhqg==","signatures":[{"sig":"MEYCIQCxw1cke717ByjT+X5QKCUBD2YE3GvV3oNw5tODRpfRQQIhAOw2D+A/849h3mfxZWYl5JzAIRCANjuGyyXLIxUI2NMy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61524},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"df4917f46e766b2d8b4fc5e04c248a81fb69b09b","scripts":{"build":"tsc"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"_npmVersion":"10.2.4","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"uuid":"^9.0.1","events":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.6.2","react-dom":"^18.2.0","typescript":"^5.3.3","@types/uuid":"^9.0.8","@types/react":"^18.2.48","@types/events":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/frontlink_0.0.51_1727272445273_0.9810622667158493","host":"s3://npm-registry-packages"}},"0.0.52":{"name":"frontlink","version":"0.0.52","description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","main":"dist/index.js","repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"homepage":"https://frontlink.dev","scripts":{"build":"tsc"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@types/events":"^3.0.3","@types/react":"^18.2.48","@types/uuid":"^9.0.8","react":"^18.2.0","react-dom":"^18.2.0","tslib":"^2.6.2","typescript":"^5.3.3"},"dependencies":{"events":"^3.3.0","uuid":"^9.0.1"},"_id":"frontlink@0.0.52","gitHead":"71b4d4a3e03368a83da2756d7a2d3a93dfe85653","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"_nodeVersion":"20.11.1","_npmVersion":"10.2.4","dist":{"integrity":"sha512-2sOH2nizjyxx8rfV7i5bOtqqHYpaseWUdMuySPOpRsTvFtIl+6UnTrcy7dYS8Hw8d1B9g6pfLAHCdjCrN6BIVw==","shasum":"b16a7fa3f222fae4265ff765b8c894834fd2c691","tarball":"https://registry.npmjs.org/frontlink/-/frontlink-0.0.52.tgz","fileCount":21,"unpackedSize":62041,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCH3Su3XwP91tnbTABs/v273XCA7OgTwcjOHm0l/ep/9QIhAM2cHMLfrcjTlMogeqnGm6BU4sYrHrReeM7MQZA5HnwO"}]},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"directories":{},"maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontlink_0.0.52_1728573925463_0.42667235069499965"},"_hasShrinkwrap":false}},"time":{"created":"2024-01-28T01:30:16.619Z","modified":"2024-10-10T15:25:25.812Z","0.0.1":"2024-01-28T01:30:16.798Z","0.0.2":"2024-01-28T17:08:37.533Z","0.0.3":"2024-01-28T17:10:01.548Z","0.0.4":"2024-01-28T17:36:27.719Z","0.0.5":"2024-01-28T18:02:24.510Z","0.0.6":"2024-01-28T18:55:36.606Z","0.0.7":"2024-01-29T02:12:59.923Z","0.0.8":"2024-01-29T02:17:30.290Z","0.0.9":"2024-01-29T12:54:51.803Z","0.0.10":"2024-01-30T00:59:00.088Z","0.0.11":"2024-01-30T01:01:19.935Z","0.0.12":"2024-02-01T22:31:37.043Z","0.0.13":"2024-02-01T22:40:53.253Z","0.0.14":"2024-02-01T22:42:04.924Z","0.0.15":"2024-02-01T22:46:24.557Z","0.0.16":"2024-02-01T22:47:10.677Z","0.0.17":"2024-02-01T23:13:58.271Z","0.0.18":"2024-02-01T23:26:01.507Z","0.0.19":"2024-02-02T18:02:14.737Z","0.0.20":"2024-02-02T18:03:16.639Z","0.0.21":"2024-02-02T19:12:09.615Z","0.0.22":"2024-02-02T19:15:13.174Z","0.0.23":"2024-02-02T19:17:47.011Z","0.0.26":"2024-02-02T19:32:02.794Z","0.0.27":"2024-02-02T19:35:03.880Z","0.0.28":"2024-02-04T15:26:50.254Z","0.0.29":"2024-02-04T15:28:34.154Z","0.0.30":"2024-02-04T17:24:28.341Z","0.0.31":"2024-02-05T16:45:52.466Z","0.0.32":"2024-02-05T16:52:25.528Z","0.0.33":"2024-02-05T16:59:10.540Z","0.0.34":"2024-02-08T13:26:52.139Z","0.0.35":"2024-02-21T20:59:12.254Z","0.0.36":"2024-02-22T12:27:25.093Z","0.0.37":"2024-02-25T02:29:22.135Z","0.0.38":"2024-03-01T12:33:35.065Z","0.0.39":"2024-06-03T11:59:52.851Z","0.0.40":"2024-06-10T10:41:01.564Z","0.0.41":"2024-09-03T12:58:35.162Z","0.0.42":"2024-09-03T13:28:51.247Z","0.0.43":"2024-09-03T15:28:14.259Z","0.0.44":"2024-09-03T15:53:20.394Z","0.0.45":"2024-09-24T20:10:42.224Z","0.0.46":"2024-09-24T20:24:46.560Z","0.0.47":"2024-09-24T20:31:28.692Z","0.0.48":"2024-09-25T12:59:35.929Z","0.0.49":"2024-09-25T13:31:10.057Z","0.0.50":"2024-09-25T13:36:12.203Z","0.0.51":"2024-09-25T13:54:05.481Z","0.0.52":"2024-10-10T15:25:25.659Z"},"bugs":{"url":"https://github.com/danthegoodman1/frontlink/issues"},"license":"ISC","homepage":"https://frontlink.dev","keywords":[],"repository":{"url":"git+https://github.com/danthegoodman1/frontlink.git"},"description":"React realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"readme":"# Frontlink\n\nReact realtime updates through your backend in a few lines of code. Heavily inspired by the [driftdb](https://driftdb.com) DX.\n\nYou can also read the [launch blog post](https://www.aspiring.dev/frontlink-react-realtime-collaboration-and-updates-with-your-backend/)\n\n## Getting started\n\n### Quick Demo (YouTube)\n\n[<img src=\"https://img.youtube.com/vi/1oHSYzt9kL4/0.jpg\">](https://www.youtube.com/watch?v=1oHSYzt9kL4)\n\n### Self-guided\n\nFirst, install the `frontlink` package:\n\n```\nnpm i frontlink\n```\n\nNext we need to wrap our components in a `FrontlinkProvider`. You can do this as far down as you need, and you may want to wait until you have known user information so you can attach auth to your URL.\n\n```tsx\nimport { FrontlinkProvider } from \"frontlink\"\n\nfunction App() {\n  return (\n    <FrontlinkProvider api=\"wss://yourapi.com\">\n      <RestOfYourApp />\n    </FrontlinkProvider>\n  )\n}\n```\n\nNow we can use shared state within components!\n\n```tsx\nimport { useSharedState } from \"frontlink\"\n\nexport default function SomeSharedComponent() {\n  const [value, setValue] = useSharedState(\"someRoomName\", \"my local value\")\n\n  return <p>My room is {value}</p>\n}\n```\n\nWe can also used shared functions:\n\n```tsx\nimport { useSharedState, useSharedFunction } from \"frontlink\"\n\nexport default function SomeSharedComponent() {\n  const { user } = getMyUser()\n\n  const [value, setValue] = useSharedState(\"someRoomName\", \"my local value\")\n\n  const sharedFunc = useSharedFunction(\"sharedFunc\", async (someArg) => {\n    console.log(\"I did something cool (hey... who triggered this?):\", someArg)\n  })\n\n  return (\n    <>\n      <p>My room is {value}</p>\n      <button\n        onClick={() => {\n          sharedFunc() // this gets called on all clients\n        }}\n      >\n        Click me to do something cool\n      </button>\n    </>\n  )\n}\n```\n\nYou can find a [minimal example React app here](https://github.com/danthegoodman1/frontlink-example) that includes a simple backend implementation.\n\n### `.noEmit()`\n\nSometimes you don't want to have everyone else call a function when you do, like if you need to use the same function for polling a resource as you would for revalidating, or you need to update state based on something that only applies to the local client.\n\nEvery shared function and state setter have a `.noEmit()` version of itself that allows you to execute the function without emitting it to roommates:\n\n```tsx\nimport { useSharedState, useSharedFunction } from \"frontlink\"\n\nexport default function SomeSharedComponent() {\n  const [value, setValue] = useSharedState(\"someRoomName\", \"my local value\")\n\n  const sharedFunc = useSharedFunction(\"sharedFunc\", async (someArg) => {\n    console.log(\"I did something cool (hey... who triggered this?):\", someArg)\n  })\n\n  return (\n    <>\n      <button\n        onClick={() => {\n          sharedFunc.noEmit() // does not emit over websocket\n        }}\n      >\n        Click me to do something cool (by myself)\n      </button>\n      <button\n        onClick={() => {\n          setValue.noEmit(\"a new local value\") // does not emit over websocket\n        }}\n      >\n        Update my local value\n      </button>\n    </>\n  )\n}\n```\n\n## Uniquely naming shared states and functions\n\nIn order to prevent errors and potential undefined behavior of naming collisions, frontlink will NOT let you attach multiple active shared states or functions with the same room name. Frontlink will error in the console, and emit a `RoomCollisionPrevented` event.\n\nYou can still break this system if you're not careful: For example if you name state the same on different pages that are not supposed to be shared. It's very important to give unique room IDs to all shared states and functions. Clients will ignore updates from the opposite type however (they are aware what kind of share they have), so in theory you can share a name between a function and a state (but maybe don't anyway).\n\nIf you pass `undefined` or `null` as the state/function ID, it will abort connecting. You can then later pass a string to connect.\n\n```tsx\nconst [userID, setUserID] = useState<string | undefined>()\nconst [sharedState, setSharedState] = useSharedState(\n  userID ? `room::${userID}` : undefined\n)\n```\n\nA few good tips are:\n\n1. Never use a shared state/function within a component that can have multiple of itself rendered at the same time: If you are listing something, put the shared state at the level above, not in the listed components.\n2. Name things based on their components and functionality: Instead of `useSharedState('count', 0)`, do something like `useSharedState('SpecificButtonOrPageCount', 0)` to prevent collisions.\n3. Use ARN-style room naming. For example `{roomType}::{uniqueID}` where the `uniqueID` is something like a user ID or an organization ID. That way on room join you can split by `::` and check permissions accordingly.\n4. Use `null` or `undefined` when you need to load into the state/function room after some other client-side initialization has occurred (like loading a user ID)\n\n## Auth\n\nBBecause the `WebSocket` API doesn't allow passing in headers, we have to look at some other mechanism for auth.\n\nIf you know your auth info at connection time (e.g. you are using something like `<SignedIn>` with Clerk) then you can pass a token as part of your WebSocket URL: `wss://yourapi.com/ws?token=<TOKEN>`. This method is greatly preferred, as you probably don't want unbound anonymous clients holding WebSocket connections.\n\nJust for this purpose there is also a `preConnect` prop that returns a `Promise<URLSearchParams>`. This appends the search params to the provided URL can be used for both waiting on an initial token, and for getting a new token during reconnects.\n\n```tsx\nreturn (\n  <FrontlinkProvider\n    api={`...`}\n    preConnect={async () => {\n      return new URLSearchParams({\n        token: (await getToken()) ?? \"<no token>\",\n      })\n    }}\n  >\n    {props.children}\n  </FrontlinkProvider>\n)\n```\n\nYou can also use the `undefined` or `null` as mentioned above.\n\n## Listening to events\n\nA [comprehensive suite of events](src/events.ts) are emitted for your app to react in response to.\n\n```tsx\nimport { Emitter, Events, Messages } from \"frontlink\"\n\nEmitter.on(Events.SocketOpened, (event: Event) => {\n  // connected to the socket\n})\n```\n\n## Building a backend\n\nYou can find a [minimal backend here](https://github.com/danthegoodman1/frontlink-example) for an example React app with an Express API. This implements simple room subscribe/unsubscribe, and relaying events to clients in the room. That is all you need!\n\nMessages are emitted to the backend as stringified JSON in the schema found in [`messages.ts`](/src/messages.ts).\n\nFrontlink expects that joining a room will work regardless of auth state or permissions. It's up to you on the backend to determine whether it will be able to send/receive messages to a given room, as it will only ever resubscribe if the component unmounts and remounts.\n\nYou should also use a single URL path (like `/frontlink?token={jwt}`) for all connections, rather than being per-user or per-org when possible. Then you can manage scope and permissions to join rooms based on the provided token.\n\n### Basic flow\n\nThere are only a few critical pieces to building a minimal backend:\n\n1. Clients connect to websocket - assign them some ClientID\n2. Clients subscribe to a room - Store this client ID to that room until they unsubscribe (\"room-client index\"). Emit a `RoommateSubscribed` ([see schema](/src/messages.ts)) message to all but the new client if presence is relevant\n3. Clients emit `SetState` and `CallFunction` messages to the backend. The backend should then relay these to all other connected clients in that room (do not send back to emitting client). Set the `ClientID` and `MessageMS` of the messages.\n4. When clients unsubscribe from a room, remove them from the room-client index. Emit a `RoommateUnsubscribed` ([see schema](/src/messages.ts)) message to all but the new client if presence is relevant.\n5. When clients disconnect, remove them from all room-client indexes\n\n### Joining Rooms\n\nClients will emit one or more `SubscribeState` or `SubscribeFunction` messages when joining a room. You should be able to deduplicate joins (ignore if they are already joined).\n\nWhen clients disconnect, they should be removed from all rooms.\n\n### Seeding state\n\nWhen a `useSharedState` or `useSharedFunction` is mounted, they will emit a `SubscribeState` and `SubscribeFunction` event respectively to the backend. For the `SubscribeState` event, the payload includes the `Value` property, which is the value of `JSON.stringify(initialValue)`. You can use this to seed the state for the room, and for clients that subsequently connect.\n\nYou can also seed the state on the client by immediately emitting a `SetState` message back to them to update their state.\n\n### Emitting events from the server\n\nYou can choose to emit `SetState` and `CallFunction` messages from the server to subscribed clients. For example you may want real-time updates to clients based on actions from an admin panel, or some global event like a notification triggering a toast.\n\nView [`messages.ts`](/src/messages.ts) for the schema of the JSON payload.\n\nEnsure to set the `MessageMS` to the current time, and leave `ClientID` blank to indicate it's from the server (or set to some constant like `\"server\"`).\n\n### Removing clients from a room on the server side\n\nJust remove them from the room-client index and drop incoming messages to that room if the client does not belong to the room.\n\n### Persisting room state\n\nIf you would like to persist `SetState` calls, it's best to process a room linearizably (in order) based on the order `SetState` events are received by the backend. When a room is ressurected, you can restore the state from persistent storage.\n\nYou can use non-linearizable datastores (e.g. S3, most databases) by processing them in order from memory. Based on your requirements, you can choose to collapse them to some interval so you are only writing once per interval (e.g. once per second).\n\nWhen a client subscribes to a room, you can immediately serve it a `SetState` event to sync the state with the room.\n\n### Presence\n\nUse the `Emitter` import to listen for `RoommateSubscribe` and `RoommateUnsubscribe`:\n\n```tsx\nimport { Emitter, Events, Messages } from \"frontlink\"\n\nEmitter.on(\n  Events.RoommateSubscribe,\n  (msg: Messages.RoommateSubscribedMessage) => {\n    // Present\n  }\n)\n\nEmitter.on(\n  Events.RoommateUnsubscribe,\n  (msg: Messages.RoommateUnsubscribedMessage) => {\n    // Removed\n  }\n)\n```\n","readmeFilename":"README.md"}