{"_id":"meridian-sdk","_rev":"27-cc6aeff1b56f1aa3c1261e5f9ffc1c7c","name":"meridian-sdk","dist-tags":{"latest":"1.7.1"},"versions":{"0.1.0":{"name":"meridian-sdk","version":"0.1.0","_id":"meridian-sdk@0.1.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"f4a3edfd9bf4fd221f3d3344211e4fc1419cf100","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.1.0.tgz","fileCount":81,"integrity":"sha512-N9l9IxShczqXElzo7KVdP7/sooI/bJ8S8a/iZWHX/8RcBdySFcYbNV4AFJKidHw5EyOwFjci/aSK5pHnSkQZ8g==","signatures":[{"sig":"MEUCIQDDzxjzVBmaUp9k6Usdue5JRBtVxKAVQ751bz8U6bgSBgIgUsSPxL+CQky52GkJrawro/iZ6mW1T5ZEe+IK1zC/Z24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213607},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"f4a3edfd9bf4fd221f3d3344211e4fc1419cf100","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test","build":"tsc","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-N9l9IxShczqXElzo7KVdP7/sooI/bJ8S8a/iZWHX/8RcBdySFcYbNV4AFJKidHw5EyOwFjci/aSK5pHnSkQZ8g==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","msgpackr":"^1.11.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.1.0_1773406120887_0.07685610895060657","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"meridian-sdk","version":"0.1.1","_id":"meridian-sdk@0.1.1","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"fd8544c536b1cd958641bfdf4813562f53666144","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.1.1.tgz","fileCount":81,"integrity":"sha512-oFtXwYPuVOy7+c002zMeuG/fW7FnJ8RvVAEeZvfmDc76q3QByh0O8t3z/WkMGCGiDRbJV4wS6QXyOWrr2Dqldw==","signatures":[{"sig":"MEUCIGYxsuSvyD2AlFJgETWtJxZVMUmd14j+9fdEEhBJiqlvAiEAxaEhdSB6FRudjfdMGQmZ50P1jsWlqjOKvxP4jQj81Jk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213607},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"fd8544c536b1cd958641bfdf4813562f53666144","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test","build":"tsc","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-oFtXwYPuVOy7+c002zMeuG/fW7FnJ8RvVAEeZvfmDc76q3QByh0O8t3z/WkMGCGiDRbJV4wS6QXyOWrr2Dqldw==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","msgpackr":"^1.11.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.1.1_1773406550788_0.9458745889356077","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"meridian-sdk","version":"0.1.2","_id":"meridian-sdk@0.1.2","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"a344b25dc14bb8faf05bfa2d6cb8eecfaaea8753","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.1.2.tgz","fileCount":82,"integrity":"sha512-mUlj4zuVKf5kuEGxz77V9NxymGVi6Fkypbv626fjFjlHib+aSMFqH3cDN8xNjuf+zD97LuMwqeUdryfb/FwLfQ==","signatures":[{"sig":"MEYCIQC07zYRzchwfmFwmRMzBFO/uxY5mbUlrcWG/Yy8RgLyeQIhAINiZUnqvd+zUN7VHYHlLpw9Qp0yxEn3+e1s5RNGHLh8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235338},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"a344b25dc14bb8faf05bfa2d6cb8eecfaaea8753","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test","build":"tsc","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-mUlj4zuVKf5kuEGxz77V9NxymGVi6Fkypbv626fjFjlHib+aSMFqH3cDN8xNjuf+zD97LuMwqeUdryfb/FwLfQ==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","msgpackr":"^1.11.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.1.2_1773409246133_0.6142247851048481","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"meridian-sdk","version":"0.1.3","_id":"meridian-sdk@0.1.3","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"715baaa46335c72b920fe0c53f50b63fc10c33b6","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.1.3.tgz","fileCount":82,"integrity":"sha512-cl815f9TnWGM5v+uHYC2PTjeHxJDsJiJN3gXvE4r66rcfLfNtAHKg1CSfLqLn+XVuRU+i78Y8TbcQIfZQmsxyA==","signatures":[{"sig":"MEYCIQD1oeLNr5R1BvbzqUzsxWA1WUEPexoyfFQTpSqB6rMmpAIhANkXDoNQvNLvaCEpK8uOhkbVMN3wN+jYeaElp0VbGbvb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235820},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"715baaa46335c72b920fe0c53f50b63fc10c33b6","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test","build":"tsc","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-cl815f9TnWGM5v+uHYC2PTjeHxJDsJiJN3gXvE4r66rcfLfNtAHKg1CSfLqLn+XVuRU+i78Y8TbcQIfZQmsxyA==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","msgpackr":"^1.11.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.1.3_1773412953200_0.7539005565587977","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"meridian-sdk","version":"0.2.0","_id":"meridian-sdk@0.2.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"f30340a015a18663248e7635bf2208a8d1961ba5","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.2.0.tgz","fileCount":82,"integrity":"sha512-wbMU/4/gFdMFDqDb1pDe9fDskCNTmsaHwAjQ66lYRDqEmA0yvuVUr6O1/3//a49l2qJs0EdMyK0mzbGZzo95zA==","signatures":[{"sig":"MEQCIG5VVRIkAjvRFVQ+q/9LCKLBJAq6EyzCL6ZpLKybmYklAiARQmRVue6xxqYK3jyyIhf6Yp2+Yq/gYJKzMudLkqBlDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235976},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"f30340a015a18663248e7635bf2208a8d1961ba5","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test","build":"tsc","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-wbMU/4/gFdMFDqDb1pDe9fDskCNTmsaHwAjQ66lYRDqEmA0yvuVUr6O1/3//a49l2qJs0EdMyK0mzbGZzo95zA==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","msgpackr":"^1.11.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.2.0_1773423175760_0.3191202940742719","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"meridian-sdk","version":"0.2.1","_id":"meridian-sdk@0.2.1","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"c59f1bfb1d952eb0ddaf629d4a209f60c9bcba37","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.2.1.tgz","fileCount":82,"integrity":"sha512-9NkggIvBzcA4HbS2Fa2hioRaq4bu08Pi57wpRTWdEj2UTWFEkdkfOIwvtzSKBkqmhlTHiJrVfM5o8/yW1F2u3Q==","signatures":[{"sig":"MEUCIGBFVmvm1kI+IZHbgmkF04f5OyyiaclMFQVxtXJ3040dAiEAqtSO7LF/3sVxcDlNVyFiO0bl46UKLhxHf7MrE2CXqEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235606},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"c59f1bfb1d952eb0ddaf629d4a209f60c9bcba37","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test","build":"tsc","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-9NkggIvBzcA4HbS2Fa2hioRaq4bu08Pi57wpRTWdEj2UTWFEkdkfOIwvtzSKBkqmhlTHiJrVfM5o8/yW1F2u3Q==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","msgpackr":"^1.11.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.2.1_1773435207478_0.4275165634761362","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"meridian-sdk","version":"0.2.2","_id":"meridian-sdk@0.2.2","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"d448e15c2c31260a6925b906fa2af778c4ef771b","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.2.2.tgz","fileCount":93,"integrity":"sha512-jqt96ZXuhWwqH141vsHklpn5K3SLhlGFg6wfgP4bQ+vqiVSFVFO9MWn4Tg7954pZtFMol/xFKmA7qsL2dJjt9Q==","signatures":[{"sig":"MEUCIQCaYqwF5Ti8WxrYZRajiLDPnqPOZ1VSGcGCN/zHt2w7zgIgEZXEj1aFqb8bEYLogeULJeD6TUlfKX9hpNZuwrMURfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227852},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"d448e15c2c31260a6925b906fa2af778c4ef771b","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-jqt96ZXuhWwqH141vsHklpn5K3SLhlGFg6wfgP4bQ+vqiVSFVFO9MWn4Tg7954pZtFMol/xFKmA7qsL2dJjt9Q==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.2.2_1773527643958_0.1373989507694544","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"meridian-sdk","version":"0.2.3","_id":"meridian-sdk@0.2.3","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"cca773f9a36de269b86ef609c530f0748806ed59","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.2.3.tgz","fileCount":93,"integrity":"sha512-jjDoePwyZ4eYpfxM0B0x/e/76H/qML7wljiIWd5bNcZujsc/q1ZjqYDoJQ/6u9yf1nJTpcHTwzhR70eF8Z1xRw==","signatures":[{"sig":"MEQCICsdyZ/o4pEkD6N1qogQjqaf0mgp5mJyzfYF1Jr3tFZ4AiBT7yffUuwAV/qzkQGh2qUch5+c9by7m2Yxn57UbcwM9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227852},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"cca773f9a36de269b86ef609c530f0748806ed59","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-jjDoePwyZ4eYpfxM0B0x/e/76H/qML7wljiIWd5bNcZujsc/q1ZjqYDoJQ/6u9yf1nJTpcHTwzhR70eF8Z1xRw==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.2.3_1773528249281_0.15494300254584403","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"meridian-sdk","version":"0.2.4","_id":"meridian-sdk@0.2.4","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"f2698a9729d0a5582071c11cdded780eb99c0dac","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.2.4.tgz","fileCount":93,"integrity":"sha512-EyK4YVUGNFwZpBhuRlg4Pev2O/edRCijvxSfKTCzzA1M+0KI/odD/3Dv7AXiNAhQoPsFwsWPHHoMpiGoRqpqLw==","signatures":[{"sig":"MEUCIQCxj2om5DjXMBDB7OcUQhjXb7XmS+pF8q84tX/4OehekQIgWHEvCztHSaShIA69b3E/iz9C6uXS55ZjoIhXHzZdUHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227852},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"f2698a9729d0a5582071c11cdded780eb99c0dac","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-EyK4YVUGNFwZpBhuRlg4Pev2O/edRCijvxSfKTCzzA1M+0KI/odD/3Dv7AXiNAhQoPsFwsWPHHoMpiGoRqpqLw==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.2.4_1773529071558_0.9481835792691238","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"meridian-sdk","version":"0.3.0","_id":"meridian-sdk@0.3.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"86d7e5712ec85915183e644faa9eb423222a7dc5","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.3.0.tgz","fileCount":98,"integrity":"sha512-+GzsJthagQNvtCJI1KbOV3fj3+dV5++S85upAtGm7GhYuLybRm3TtA736iYLMaEOkHzUw6Vkt5VmMSNXlk4+rw==","signatures":[{"sig":"MEQCIESghQMKNm+EbdVo4QrQYBBaF5aJYCboBrcSN1D1Kq05AiBbjNUahQmgc2ufSHH7WIMjzfOhTvuC5IzGbwWlp/ufWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262335},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"86d7e5712ec85915183e644faa9eb423222a7dc5","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-+GzsJthagQNvtCJI1KbOV3fj3+dV5++S85upAtGm7GhYuLybRm3TtA736iYLMaEOkHzUw6Vkt5VmMSNXlk4+rw==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.3.0_1773605794851_0.10255220299708334","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"meridian-sdk","version":"0.3.1","_id":"meridian-sdk@0.3.1","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"dist":{"shasum":"153e704160a922bad816b1119f12f6e0f85ec74b","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.3.1.tgz","fileCount":98,"integrity":"sha512-tfJMi9A/2hV9gQpRoQfQsNgAVERKuo86t9eWWImOcXYbPUK3EsMZbZSLjU7dcfzH46111TJ1bAXPiai9i8uHnA==","signatures":[{"sig":"MEUCIC+XgpQ80YOsL8jqq5iLOTl5Upovid+17Jy9Ww/tj4HoAiEA6ghgfVK/nfFL1RONWaMX6BsCBFnubPzJBNnt3ZsPu2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262451},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"153e704160a922bad816b1119f12f6e0f85ec74b","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-tfJMi9A/2hV9gQpRoQfQsNgAVERKuo86t9eWWImOcXYbPUK3EsMZbZSLjU7dcfzH46111TJ1bAXPiai9i8uHnA==","_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.3.1_1773753034816_0.9381282584392174","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"meridian-sdk","version":"0.3.2","license":"MIT","_id":"meridian-sdk@0.3.2","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"be83704b5f376bb0518de438af8099d96bf73c93","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.3.2.tgz","fileCount":99,"integrity":"sha512-3X7ycpJGQrNgj+5eaJSpLKe1mdopJyicwPQrNFna/Mw3ujRfKbpKccDyNCFsCqi/ZDZRJF8IzogGgd84dv8R2Q==","signatures":[{"sig":"MEUCIFJ5zSMwYYtUCsQpDYbz1mBEeaa0DgG7kFjPyWriOfSMAiEA7NUWrX+iUtniuV4gLeL/DWakuYyXm0iLJxgBMkpGJ4w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274107},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"be83704b5f376bb0518de438af8099d96bf73c93","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-3X7ycpJGQrNgj+5eaJSpLKe1mdopJyicwPQrNFna/Mw3ujRfKbpKccDyNCFsCqi/ZDZRJF8IzogGgd84dv8R2Q==","repository":{"url":"https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.3.2_1773786479544_0.08687029286604764","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"meridian-sdk","version":"0.3.3","license":"MIT","_id":"meridian-sdk@0.3.3","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"aad033875f3da39685e70390ae8a5347b86488ff","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.3.3.tgz","fileCount":99,"integrity":"sha512-vNdI0b7moPzil1gXIUlyddQYZUbHNT361t6i/JO7PhdXTvx7jN1geCdUz5YGx+ISqj9LbVlIk6QXJShlhyeY5A==","signatures":[{"sig":"MEUCIQDjAUBj0kVCcX2PuKxY4LoAh6xUvYcU0Dz4hReGlH1U4wIgBjBGb6jv/HEYGYRWCVHkf+6Xc7lpqWGZA4ciR4el+6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291680},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"aad033875f3da39685e70390ae8a5347b86488ff","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-vNdI0b7moPzil1gXIUlyddQYZUbHNT361t6i/JO7PhdXTvx7jN1geCdUz5YGx+ISqj9LbVlIk6QXJShlhyeY5A==","repository":{"url":"https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.3.3_1773852089413_0.10244972149842213","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"meridian-sdk","version":"0.3.4","license":"MIT","_id":"meridian-sdk@0.3.4","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"290aba0185170293665b5734fe4306c0fb8197c3","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.3.4.tgz","fileCount":99,"integrity":"sha512-lKnm3t4rsjHmp+WkSUgd0WjIaSbzrNpFEO11pGf4L8AvqmHBz+GffHw74u+ct+l4aY9Rrc1rNq1uU7E7SocT7A==","signatures":[{"sig":"MEQCIEAWrYW6gxF/8KWOcnQyRNZJioFMB8OhfdCwSALbi2GVAiBuhIoPpu5GJEP8MiCB6yqd/E8TnSWg4ESKWCP3HRtcEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291680},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"290aba0185170293665b5734fe4306c0fb8197c3","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-lKnm3t4rsjHmp+WkSUgd0WjIaSbzrNpFEO11pGf4L8AvqmHBz+GffHw74u+ct+l4aY9Rrc1rNq1uU7E7SocT7A==","repository":{"url":"https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.3.4_1773852877681_0.8292898993823241","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"meridian-sdk","version":"0.3.5","license":"MIT","_id":"meridian-sdk@0.3.5","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"e1edbf99bfd291f924d7899f90f33201936cedb5","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.3.5.tgz","fileCount":104,"integrity":"sha512-do7M+8L+Ll3JvkozHLlbi7jrnVInTy+8c4RIuFCzqjWMG5BafO/1DxfK22P/x2GKd0TJnU8ujQds0kDNvwqV1g==","signatures":[{"sig":"MEUCIQC8yqNkmliy5vzTuWeptswLnHQ8lwaPCiRIE0y7bG2z9wIgYlc7U7OR+Eu5fGGmg7UZ5HGQZBv/JOehFb4cRCJdO40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321913},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"e1edbf99bfd291f924d7899f90f33201936cedb5","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"_integrity":"sha512-do7M+8L+Ll3JvkozHLlbi7jrnVInTy+8c4RIuFCzqjWMG5BafO/1DxfK22P/x2GKd0TJnU8ujQds0kDNvwqV1g==","repository":{"url":"https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.3","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.3.5_1773919996308_0.6036896462352395","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"meridian-sdk","version":"0.4.0","license":"MIT","_id":"meridian-sdk@0.4.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"54e097b6018f08c87e6c6427089ac470c6f3849f","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-0.4.0.tgz","fileCount":105,"integrity":"sha512-UxYoZupiBaeFAdgakQdvqejOzW6org2UFyRz6/jaWGgYVdZe6APu2PNfvL5b8zLrOnScofrD806sgnK8G/bG7g==","signatures":[{"sig":"MEYCIQDVUYJSgQA8lKVdefymN2Ul+gi77aBdHQ56MUvyG8/JewIhAIQ532OpGeykb47ULgSTJKlT38L9mJNUKEcIreE4qrD3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322103},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f10b8f7e10ec7420f090c6d116e8d2c5a866e4b6","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"20.20.1","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_0.4.0_1773920891821_0.3819026768510301","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"meridian-sdk","version":"1.0.1","license":"MIT","_id":"meridian-sdk@1.0.1","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"9123f27162cc3fdf081bd281f3ee308780c238b3","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.0.1.tgz","fileCount":105,"integrity":"sha512-ZI988BVc1hqkXskrGe7Ea14RbUmzD2QkLnZfLuGGoMzg8zLz7Tz9LTP+P8rpGBMcuSzxOPOxmTCJ5gXjd6g1mw==","signatures":[{"sig":"MEYCIQDcZkJ6+9whScTIcSAy6oc846B0xQCIjarJKy5suU0gxQIhAO7lCF7B8BqYJy9N4XHPSTHwx7nXNKzf6QHUn4mP+r+8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":327810},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"13981b0a1dabc5e9035599ab9e95c785d62ec3cb","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"20.20.1","dependencies":{"effect":"^3.19.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.0.1_1773937133459_0.15847640176717004","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"meridian-sdk","version":"1.1.0","license":"MIT","_id":"meridian-sdk@1.1.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"f9d0363783967ad1de04e015444b6ddc3c38fd5a","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.1.0.tgz","fileCount":116,"integrity":"sha512-qH8b8NhX6QmRCiK8rRTTrOuO5PZ+IyX5BN2EppqJbxpjGlxYPIDuROz8nzNKAha2xOkj0AHLtQQOWj6BMKs1jA==","signatures":[{"sig":"MEYCIQDaUQhR8HHy8AGOsrVQtPCuZXF4CxeAe7EhcNP2vO5HrgIhAOYqLmKCJL5SXQSK/RYBVW0OAKvoY67RvtnZZbHk9tdR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389552},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e8c5447ac68b7b65f2da2866b633f35371d3a733","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"20.20.1","dependencies":{"effect":"^3.21.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.1.0_1774343661364_0.07965877892370976","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"meridian-sdk","version":"1.2.0","license":"MIT","_id":"meridian-sdk@1.2.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"b115993e61ef6a0d58bc9e94f4cb45c82d29277d","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.2.0.tgz","fileCount":121,"integrity":"sha512-Uv9mT7c9fTI4ZI98ID/W9PyKA3b9xbCNigYa8DzvNZsfsnwl6fr7gzyipiJ02s2D02qQIKJ7dvSw6/G/Aiv04w==","signatures":[{"sig":"MEQCIHrdHJviei59PdB/vkLEMTKQKcdrNEJhW9B1Wuqi674/AiBNRyAzQnN6uUcG0LP+7TLAsdOn7Rqlx+AYXUE61GIDXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":410287},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8d0b23f41ccd3e7d0ac723ef0bfe654b1f034999","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"20.20.1","dependencies":{"effect":"^3.21.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.2.0_1774440310133_0.3640748017238171","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"meridian-sdk","version":"1.2.1","license":"MIT","_id":"meridian-sdk@1.2.1","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"e61cdef424fa77deccb7c4da993ad2ecbb331d1b","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.2.1.tgz","fileCount":126,"integrity":"sha512-VxePNvVqtckypO1ucbxxn0hmzjBrR++lp3qCOnAWQmz53aiZm0bkK6b6WTgtsTkRPoHYmTaTOk5QVCvpWJhQrA==","signatures":[{"sig":"MEYCIQDhEPcnQSg2SwcozOtnabRaWaYHuiZC5sbDT+PRHUXEdwIhAPddOnp2jbYBOzEsuObrOBdLlqMt6nYewPxewC2wD9VO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":438872},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2c14a9aaa26d51f164b32c48cf0cebed5cdb3b56","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"20.20.1","dependencies":{"effect":"^3.21.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.2.1_1774477357380_0.663560904763532","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"meridian-sdk","version":"1.3.0","license":"MIT","_id":"meridian-sdk@1.3.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"e22b388a4b0f632398e618a89c2f3f05e5735d1a","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.3.0.tgz","fileCount":155,"integrity":"sha512-H5SMiyXIGygGOfk3YT0KESkSHE7v6QRJ6AhEeZA/lJo/Pdy3dcmdqbxCvrmUC/RVAoCJJ460iBttuYKSHHojHQ==","signatures":[{"sig":"MEUCIH6M9LdG3v3SshucC9tuVuSFxYEf+g1Fg8QtilGHS1xzAiEAuE1p8Plo/eOXpoyapjmI7kuhW96ouBPzfcotiDfhSP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":599010},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6c41417f1610ebe32ddd6b374c554b23af5a6624","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"20.20.1","dependencies":{"effect":"^3.21.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.3.0_1774617002810_0.3211441060241105","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"meridian-sdk","version":"1.4.0","license":"MIT","_id":"meridian-sdk@1.4.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"53273b8f8329d19efbea32d7b94be06f6133d1cd","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.4.0.tgz","fileCount":155,"integrity":"sha512-eXHqFkK9NOmLPNc96lMH/9GyN+5GASPeh1yuuYWgtufhpUYhGguDueIAiTiGqBM7DWofeHnlanKYBfSoYe3rBA==","signatures":[{"sig":"MEUCIQCv2SD1MNHG3MlKx6uGYZrw7cLhQdkgS3MJloZtmW7o8AIgcYxLxqbmOpTetdEjLR04Br0DRLxRfQqTrdp+BTBWJKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620921},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a4b2d2cca7acce8ce3a2eb81070b05ff280345c8","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"20.20.1","dependencies":{"effect":"^3.21.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.4.0_1774814304473_0.9217795829567461","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"meridian-sdk","version":"1.4.1","license":"MIT","_id":"meridian-sdk@1.4.1","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"69d7201e6e8cd07257bd992305ced2665f5d8d50","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.4.1.tgz","fileCount":166,"integrity":"sha512-LbAkAkVOsQXua5SANsm1zt0oNkHF9N9ZwB6CDxQcd4/LREeGJkleILawdZFk0VHOtrcj5apyeITxFNSxKFCoaQ==","signatures":[{"sig":"MEYCIQCwKL6ZkIleuEhfb3dxlYe8y7USNsymWO4AJZZ+RbF7CAIhAJOkyGZR4qo/5N/HsUYuQdXoh17yiAP2smYcr4b2oaXX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":666996},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"cde9aa54082d9cf7af921bcf3461202e92622a24","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"20.20.1","dependencies":{"effect":"^3.21.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.4.1_1775120941222_0.13902078737913492","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"meridian-sdk","version":"1.5.0","license":"MIT","_id":"meridian-sdk@1.5.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"36adca0795a0b2250f382c0cc86b4ace087138d2","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.5.0.tgz","fileCount":182,"integrity":"sha512-thFnOPNNTBvmTACgmBEcxIsDlr6AtzYpvf9aq5v0RJ8nazpSHpETwHq/DdpEWSeD2KpVcMgH1KEDOIHS2KfJ2w==","signatures":[{"sig":"MEUCIQDh+vLt6elGHHboyK0vXd9ixLN9JvErp7TGgeluFi4ndAIgMLUHqavmsAJONxIRzrHbfxulhU2x2DpISUCorVnQfzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":736345},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1fe2f9010bde8bc65caef8febb6f40ca511626b5","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"20.20.2","dependencies":{"effect":"^3.21.0","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.0","@biomejs/biome":"^2.4.7"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.5.0_1775551681969_0.99654583238059","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"meridian-sdk","version":"1.6.0","license":"MIT","_id":"meridian-sdk@1.6.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"e012df29867a4082233ecceb813b351f74d625f6","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.6.0.tgz","fileCount":182,"integrity":"sha512-AkaSai4hUO1jfJJR29QQYb1TZiDDmyoDcxKolariJn1vvMNOxkDfJyZdDfrRXzdPOHW7IDrVhG20BMWNyNpO3A==","signatures":[{"sig":"MEUCIQCW61UyS6S5Q8aAqdUM6i0vlpqTpdMGkj0wXn4xodRmogIgCDDS00yppDPLbXTTZTvjhuw52TU85k6ZhsJtlju6EVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":791220},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bc07437716f4b203a7e1430f1fa126684171b3a5","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.8","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"22.23.0","dependencies":{"effect":"^3.21.4","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^6.0.0","@biomejs/biome":"^2.5.1"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.6.0_1782591363119_0.3056465228496279","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"meridian-sdk","version":"1.7.0","license":"MIT","_id":"meridian-sdk@1.7.0","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"dist":{"shasum":"5cf1424673351d053684121485b5e8521df9be19","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.7.0.tgz","fileCount":204,"integrity":"sha512-ZLn61XZpYkbfkKQBbt+tOpcWZg5GqVN34wCVnbeKKa0IGK0VOIcabzIGTNKOOMQ42hSrFBCzbs19uup77aGzzA==","signatures":[{"sig":"MEYCIQDVgZtTv4IMWYcwnXlIgDo1R3AIU2vIFvu0cBMZI3iR8QIhAOkeMFOBVykx2JmHfKDdKIJbQlfrqf+hY/VF5mXzT+Yg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858765},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e51f5156a688332615cad85ad78a35be2c8122b2","scripts":{"lint":"biome lint ./src","test":"bun test","build":"tsc","format":"biome format --write ./src","typecheck":"tsc --noEmit","test:watch":"bun test --watch"},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"repository":{"url":"git+https://github.com/Chahine-tech/meridian.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.8","description":"TypeScript SDK for Meridian CRDT server","directories":{},"_nodeVersion":"22.23.0","dependencies":{"effect":"^3.21.4","@msgpack/msgpack":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^6.0.0","@biomejs/biome":"^2.5.1"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meridian-sdk_1.7.0_1782721335714_0.6846804727446898","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"meridian-sdk","version":"1.7.1","description":"TypeScript SDK for Meridian CRDT server","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsc","test":"bun test","test:watch":"bun test --watch","typecheck":"tsc --noEmit","lint":"biome lint ./src","format":"biome format --write ./src"},"devDependencies":{"@biomejs/biome":"^2.5.1","@types/bun":"latest","typescript":"^6.0.0"},"dependencies":{"effect":"^3.21.4","@msgpack/msgpack":"^3.0.0"},"peerDependencies":{"typescript":">=5.0.0"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Chahine-tech/meridian.git","directory":"packages/sdk"},"homepage":"https://github.com/Chahine-tech/meridian#readme","bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"_id":"meridian-sdk@1.7.1","gitHead":"e98a4de06910c371ed281a024436faad05c2988b","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-LvP4CfSWvchWkA8Ndh2DllX2I7ZKidHe6nV5LPbAjPF7hGFvtH9eNIHMGgT8dxyznvyG4Qb68C4ecQZv+ulakg==","shasum":"761c4058fb6b075b65af703af7c63e801f8551f9","tarball":"https://registry.npmjs.org/meridian-sdk/-/meridian-sdk-1.7.1.tgz","fileCount":204,"unpackedSize":924363,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCVvVGiOXx9aae8hKc5yOaiAOu+EcBiQvpharWpqFmtVQIhAMdmR6VYUtcCzc1ppFS6kWh6lVqaOOOYefLKIsQovF4C"}]},"_npmUser":{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"},"directories":{},"maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/meridian-sdk_1.7.1_1782897900031_0.3346652017816776"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-13T12:48:40.803Z","modified":"2026-07-01T09:25:00.348Z","0.1.0":"2026-03-13T12:48:41.036Z","0.1.1":"2026-03-13T12:55:50.958Z","0.1.2":"2026-03-13T13:40:46.283Z","0.1.3":"2026-03-13T14:42:33.392Z","0.2.0":"2026-03-13T17:32:55.944Z","0.2.1":"2026-03-13T20:53:27.692Z","0.2.2":"2026-03-14T22:34:04.098Z","0.2.3":"2026-03-14T22:44:09.454Z","0.2.4":"2026-03-14T22:57:51.703Z","0.3.0":"2026-03-15T20:16:35.002Z","0.3.1":"2026-03-17T13:10:34.995Z","0.3.2":"2026-03-17T22:27:59.691Z","0.3.3":"2026-03-18T16:41:29.575Z","0.3.4":"2026-03-18T16:54:37.857Z","0.3.5":"2026-03-19T11:33:16.453Z","0.4.0":"2026-03-19T11:48:11.990Z","1.0.1":"2026-03-19T16:18:53.641Z","1.1.0":"2026-03-24T09:14:21.497Z","1.2.0":"2026-03-25T12:05:10.274Z","1.2.1":"2026-03-25T22:22:37.583Z","1.3.0":"2026-03-27T13:10:02.988Z","1.4.0":"2026-03-29T19:58:24.645Z","1.4.1":"2026-04-02T09:09:01.372Z","1.5.0":"2026-04-07T08:48:02.138Z","1.6.0":"2026-06-27T20:16:03.279Z","1.7.0":"2026-06-29T08:22:15.901Z","1.7.1":"2026-07-01T09:25:00.219Z"},"bugs":{"url":"https://github.com/Chahine-tech/meridian/issues"},"license":"MIT","homepage":"https://github.com/Chahine-tech/meridian#readme","repository":{"type":"git","url":"git+https://github.com/Chahine-tech/meridian.git","directory":"packages/sdk"},"description":"TypeScript SDK for Meridian CRDT server","maintainers":[{"name":"chahinedev","email":"chahine.benlahcen@gmail.com"}],"readme":"# meridian-sdk\n\nTypeScript SDK for [Meridian](../README.md) — Effect-based, fully typed, msgpack wire protocol.\n\n## Install\n\n```bash\nbun add meridian-sdk\n# or\nnpm install meridian-sdk\n```\n\n## Quick start\n\n```ts\nimport { Effect, Schema } from \"effect\";\nimport { MeridianClient } from \"meridian-sdk\";\n\nconst client = await Effect.runPromise(\n  MeridianClient.create({\n    url: \"http://localhost:3000\",\n    namespace: \"my-room\",\n    token: process.env.MERIDIAN_TOKEN!,\n  })\n);\n\n// GCounter\nconst views = client.gcounter(\"gc:views\");\nviews.increment(1);\nviews.onChange(v => console.log(\"views:\", v));\n\n// LWW Register with runtime schema validation\nconst Profile = Schema.Struct({ name: Schema.String, avatar: Schema.String });\nconst profile = client.lwwregister(\"lw:profile\", Profile);\nprofile.set({ name: \"Chahine\", avatar: \"https://...\" });\nprofile.onChange(v => console.log(\"profile:\", v)); // v: { name, avatar } | null\n\n// Presence\nconst Cursor = Schema.Struct({ x: Schema.Number, y: Schema.Number });\nconst room = client.presence(\"pr:room\", Cursor);\nroom.heartbeat({ x: 100, y: 200 }, 30_000);\nroom.onChange(entries => console.log(\"online:\", entries));\n\n// CRDTMap — composite document with named CRDT fields\nconst doc = client.crdtmap(\"doc:settings\");\ndoc.lwwSet(\"theme\", \"dark\");\ndoc.incrementCounter(\"edits\");\n\n// Close WebSocket when done\nclient.close();\n```\n\n## Error handling\n\nAll errors are `Data.TaggedError` — matchable with `Effect.catchTag`:\n\n```ts\nimport { Effect } from \"effect\";\nimport { MeridianClient, TokenExpiredError, HttpError, NetworkError } from \"meridian-sdk\";\n\nawait Effect.runPromise(\n  MeridianClient.create(config).pipe(\n    Effect.catchTag(\"TokenExpiredError\", (e) =>\n      Effect.die(`Token expired at ${new Date(e.expiredAt).toISOString()}`)\n    ),\n    Effect.flatMap(client =>\n      client.http.getCrdt(\"my-room\", \"gc:views\").pipe(\n        Effect.catchTag(\"HttpError\", e => Effect.succeed(`HTTP ${e.status}`)),\n        Effect.catchTag(\"NetworkError\", e => Effect.succeed(`Network: ${e.message}`)),\n      )\n    ),\n  )\n);\n```\n\n## API\n\n### `MeridianClient.create(config)` → `Effect<MeridianClient, TokenParseError | TokenExpiredError>`\n\n| Option | Type | Description |\n|--------|------|-------------|\n| `url` | `string` | Server base URL (`http://` or `ws://`) |\n| `namespace` | `string` | Namespace to connect to |\n| `token` | `string` | Meridian token |\n| `autoConnect` | `boolean?` | Open WebSocket immediately (default: `true`) |\n| `offline` | `boolean?` | Start without connecting — operate from cache, call `client.connect()` later |\n| `persistence` | `PersistenceConfig?` | Persist CRDT snapshots and the pending op queue across page loads |\n| `tabSync` | `boolean?` | Broadcast deltas to other tabs in the same namespace via `BroadcastChannel` |\n| `encryption` | `Record<string, CryptoKey>?` | Map from CRDT ID glob to AES-256-GCM key. Matching handles encrypt values before sending and decrypt on receive. Supports `LwwRegister`, `Presence`, `ORSet` (deterministic nonce), and `Tree`. |\n\n### CRDT handles\n\n| Method | Returns | Schema? |\n|--------|---------|---------|\n| `client.gcounter(id)` | `GCounterHandle` | — |\n| `client.pncounter(id)` | `PNCounterHandle` | — |\n| `client.orset(id, schema?)` | `ORSetHandle<T>` | Optional |\n| `client.lwwregister(id, schema?)` | `LwwRegisterHandle<T>` | Optional |\n| `client.presence(id, schema?)` | `PresenceHandle<T>` | Optional |\n| `client.crdtmap(id)` | `CRDTMapHandle` | — |\n| `client.awareness(key, schema?)` | `AwarenessHandle<T>` | Optional |\n| `client.rga(id)` | `RGAHandle` | — |\n| `client.tree(id)` | `TreeHandle` | — |\n\nWithout a schema, `T = unknown`. With a schema, incoming deltas are validated at runtime via `Schema.decodeUnknownSync`.\n\nEvery handle exposes a `stream()` method returning a `Stream.Stream<T, never, never>` — composable with the full Effect ecosystem:\n\n```ts\nimport { Stream, Effect } from \"effect\";\n\nconst views = client.gcounter(\"gc:views\");\n\n// Consume as an Effect Stream\nawait Effect.runPromise(\n  views.stream().pipe(\n    Stream.tap(v => Effect.log(`views: ${v}`)),\n    Stream.take(10),\n    Stream.runDrain,\n  )\n);\n```\n\n### Effect Layer (dependency injection)\n\n`MeridianLive` is an Effect `Layer` that provides `MeridianService` — use it to inject the client into any Effect program without manual wiring:\n\n```ts\nimport { Effect, Layer } from \"effect\";\nimport { MeridianLive, MeridianService } from \"meridian-sdk\";\n\nconst config = { url: \"http://localhost:3000\", namespace: \"my-room\", token };\n\nconst program = Effect.gen(function* () {\n  const meridian = yield* MeridianService;\n  const views = meridian.gcounter(\"gc:views\");\n  views.increment(1);\n});\n\nawait Effect.runPromise(program.pipe(Effect.provide(MeridianLive(config))));\n```\n\n### Awareness\n\nEphemeral pub/sub channel — updates are fanned out to all other subscribers in real time but are **not** persisted. Use this for high-frequency transient state like cursor positions or \"is typing\" indicators.\n\n```ts\nconst CursorSchema = Schema.Struct({ x: Schema.Number, y: Schema.Number });\nconst cursors = client.awareness(\"cursors\", CursorSchema);\n\n// Send our state (fire-and-forget)\ncursors.update({ x: 120, y: 80 });\n\n// Listen to peer updates\nconst unsub = cursors.onChange(peers => {\n  console.log(\"peers:\", peers); // AwarenessEntry<{ x, y }>[]\n});\n\n// Clear our entry when leaving (e.g. tab hidden, component unmount)\ncursors.clear();\n```\n\nUnlike `presence`, awareness entries are never stored — if a client connects after a peer's last update, it will not see that peer's state until the peer sends another update.\n\n### TTL-based expiry\n\nAny op can include an optional `ttlMs` to schedule automatic server-side deletion after the given duration. The GC task runs every 5 seconds and permanently removes expired entries.\n\n```ts\n// LWW register that auto-deletes after 60 seconds\nconst session = client.lwwregister(\"lw:session:abc\");\nsession.set({ userId: 42, role: \"editor\" }, 60_000);\n\n// GCounter with a 1-hour TTL\nconst views = client.gcounter(\"gc:daily-views\");\nviews.increment(1, 3_600_000);\n\n// ORSet entry with a 5-minute TTL\nconst cart = client.orset(\"or:cart\");\ncart.add({ sku: \"ABC\" }, 300_000);\n\n// CRDTMap with TTL on a single field write\nconst doc = client.crdtmap(\"cm:doc\");\ndoc.lwwSet(\"draft\", \"Hello world\", 86_400_000); // 24h\n```\n\n### Offline queue\n\nOperations sent while disconnected are buffered automatically and flushed in order on reconnect. No configuration needed — it works transparently for all CRDT handles.\n\n```ts\n// Check how many ops are pending (e.g. for a UI indicator)\nclient.pendingOpCount; // number\n\n// Subscribe to connection state changes\nconst unsub = client.onStateChange(state => {\n  console.log(\"connection state:\", state); // \"CONNECTED\" | \"DISCONNECTED\" | \"CONNECTING\" | \"CLOSING\"\n});\nunsub(); // unsubscribe\n\n// Subscribe to incoming deltas (devtools / debugging)\nconst unsubDelta = client.onDelta(event => {\n  console.log(event.crdtId, event.type, event.at); // \"gc:views\", \"gcounter\", 1718000000000\n});\nunsubDelta();\n```\n\nThe queue holds up to 500 ops. If the limit is reached, the oldest op is dropped to make room for the newest.\n\n### Persistence (offline-first)\n\nEnable persistence to cache CRDT state across page loads and survive disconnections:\n\n```ts\nimport {\n  MeridianClient,\n  indexedDbStateStorage,\n  localStorageSyncOpsAdapter,\n} from \"meridian-sdk\";\n\nconst client = await Effect.runPromise(\n  MeridianClient.create({\n    url: \"http://localhost:3000\",\n    namespace: \"my-room\",\n    token,\n    persistence: {\n      state: indexedDbStateStorage(),      // CRDT snapshots → IndexedDB\n      ops:   localStorageSyncOpsAdapter(), // pending op queue → localStorage (sync, survives tab close)\n    },\n  })\n);\n\nconst views = client.gcounter(\"gc:views\");\nconst cart  = client.orset(\"or:cart\");\nawait client.waitForRestore(); // wait for IndexedDB reads to complete\n\nconsole.log(views.value()); // populated from cache before the WebSocket connects\n```\n\nThe pending op queue is also flushed when the tab becomes hidden (`visibilitychange`), covering most crash and background-kill scenarios.\n\n### Multi-tab sync\n\nPass `tabSync: true` to broadcast CRDT deltas to other open tabs in the same origin and namespace via the [BroadcastChannel API](https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel):\n\n```ts\nconst client = await Effect.runPromise(\n  MeridianClient.create({\n    url: \"http://localhost:3000\",\n    namespace: \"my-room\",\n    token,\n    tabSync: true,\n  })\n);\n```\n\nWhen Tab A receives a delta from the server it immediately forwards it to Tab B — Tab B applies it without waiting for its own server round-trip. All CRDTs are convergent so applying the same delta twice is safe.\n\n### Op latency\n\n`client.getLatencyStats()` returns P50 and P99 round-trip latency in milliseconds, computed from the last 128 acknowledged ops. Returns `null` if fewer than 2 samples have been collected.\n\n```ts\nconst stats = client.getLatencyStats();\n// { p50: 12.4, p99: 87.1, count: 64 } | null\n```\n\nLatency is measured from the moment an op is sent over the WebSocket to the moment the server `Ack` is received. The `meridian-devtools` panel displays this automatically.\n\n### Query Engine — `client.query()`\n\nAggregate data across multiple CRDTs in a single HTTP request:\n\n```ts\n// Sum all page view counters matching a glob\nconst result = await client.query({ from: \"gc:views-*\", aggregate: \"sum\" });\nconsole.log(result.value);        // total\nconsole.log(result.matched);      // number of CRDTs matched\nconsole.log(result.execution_ms); // server latency\n```\n\nSupported aggregations: `sum`, `max`, `min`, `count`, `union`, `intersection`, `latest`, `collect`, `merge`.\n\n### Live Queries — `client.liveQuery()`\n\nSubscribe once — get a push every time matching CRDTs change. Uses the existing WebSocket connection, no extra socket opened.\n\n```ts\nconst handle = client.liveQuery({\n  from: \"gc:views-*\",\n  aggregate: \"sum\",\n});\n\nhandle.onResult(result => {\n  console.log(\"live total:\", result.value);  // pushed on every matching delta\n  console.log(\"matched:\", result.matched);\n});\n\n// Cancel\nhandle.close();\n```\n\nSet `type` to avoid re-execution for unrelated CRDT deltas:\n\n```ts\nclient.liveQuery({ from: \"gc:views-*\", type: \"gcounter\", aggregate: \"sum\" });\n```\n\nThe SDK automatically re-sends active subscriptions after a WebSocket reconnect.\n\n### Permission checks — `client.canRead()` / `client.canWrite()`\n\nCheck token permissions locally — no network round-trip. Useful for gating UI actions before attempting an op that would fail with 403.\n\n```ts\nimport { OpMasks } from \"meridian-sdk\";\n\n// Key-level check (V1 and V2)\nif (!client.canRead(\"or:cart-42\")) showLockedBadge();\nif (!client.canWrite(\"or:cart-42\")) disableCartButton();\n\n// Op-level check (V2 tokens only)\nif (!client.canWrite(\"or:cart-42\", OpMasks.OR_ADD)) disableAddButton();\nif (!client.canWrite(\"pn:balance\", OpMasks.PN_DECREMENT)) disableWithdrawButton();\n```\n\n`canRead` and `canWrite` are also exported as standalone functions for use outside a client instance:\n\n```ts\nimport { canRead, canWrite, OpMasks } from \"meridian-sdk\";\n\ncanRead(claims.permissions, \"lw:dashboard\", claims.client_id); // boolean\ncanWrite(claims.permissions, \"or:cart-42\", claims.client_id, OpMasks.OR_ADD); // boolean\n```\n\nThe check mirrors the server's logic exactly — V1 glob lists, V2 first-match-wins rules, per-rule TTLs, and `{clientId}` expansion are all handled. The server still enforces permissions independently; client checks are for UX only.\n\n### HTTP client (`client.http`)\n\nAll methods return `Effect<T, HttpError | NetworkError>`:\n\n```ts\nclient.http.getCrdt(ns, id)              // → Effect<CrdtGetResponse, ...>\nclient.http.postOp(ns, id, op)           // → Effect<CrdtOpResponse, ...>\nclient.http.syncCrdt(ns, id, sinceVc?)   // → Effect<CrdtGetResponse, ...>\nclient.http.issueToken(ns, opts)         // → Effect<TokenIssueResponse, ...>\nclient.http.tokenMe(ns)                  // → Effect<TokenClaims, ...>\nclient.http.revokeSession(ns, clientId)  // → Effect<{ revoked: boolean; client_id: number }, ...>\n```\n\n`revokeSession` forcefully closes a client's WebSocket connection (requires admin token). The server sends the target a `{ code: 4401, message: \"session revoked\" }` error frame before closing. Returns `HttpError` with status `404` if the client is not connected.\n\n`issueToken` accepts both V1 (glob lists) and V2 (fine-grained rules):\n\n```ts\n// V1\nawait Effect.runPromise(\n  client.http.issueToken(\"shop\", {\n    client_id: 42,\n    ttl_ms: 3_600_000,\n    permissions: { read: [\"*\"], write: [\"or:cart-42\"], admin: false },\n  })\n);\n\n// V2 — op masks, per-rule TTLs, {clientId} template, rate limit\nawait Effect.runPromise(\n  client.http.issueToken(\"shop\", {\n    client_id: 42,\n    ttl_ms: 3_600_000,\n    rules: {\n      r: [{ p: \"*\" }],\n      w: [{ p: \"or:cart-{clientId}\", o: 0x01 | 0x02 }],\n      rl: 200,\n    },\n  })\n);\n\n// Inspect current token claims (useful for debugging)\nconst claims = await Effect.runPromise(client.http.tokenMe(\"shop\"));\nconsole.log(claims.client_id, claims.expires_at, claims.permissions);\n```\n\n## Wire protocol\n\n- **Transport**: HTTP + WebSocket\n- **Serialization**: MessagePack (msgpackr)\n- **Auth**: Bearer token in `Authorization` header or `?token=` query param\n\n## Development\n\n```bash\nbun install\nbun test          # run tests\nbun run typecheck # tsc --noEmit\nbun run build     # compile to dist/\n```\n","readmeFilename":"README.md"}