{"_id":"@blueshed/delta","_rev":"22-1d2093471f95cc967b00886ef0966272","name":"@blueshed/delta","dist-tags":{"latest":"0.11.0"},"versions":{"0.4.0":{"name":"@blueshed/delta","version":"0.4.0","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.0","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"dfc732f07bede1b7c4e418dc2ed945ab1d23355b","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.0.tgz","fileCount":32,"integrity":"sha512-a9+p1o+r4EPupDlq4zhXkcEi5f5Agi/vkxykCMZ9wfza+5MPi2H4QW/z4stR/R2pKPjIumIY2JGXOQHuf52+Ew==","signatures":[{"sig":"MEUCIEFaArmgFRlsyDbU3KruA3FaVr8z3hr0wlI6IPJl68KnAiEA0jyEIetQpqG/CFjfDCotZ8RJDcNrrHoUO1tAuIe4vVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205001},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"e9fccd1fb51935c0be1a41fbbc4d0455a152319b","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"spddo","email":"pete@blueshed.co.uk"},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.12.1","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","jose":"^6.2.2","@types/pg":"^8.20.0","@types/bun":"^1.3.12","typescript":"^5.9.3","@blueshed/railroad":"^0.6.3"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.6.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.0_1776683355439_0.8421307205728472","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@blueshed/delta","version":"0.4.4","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.4","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"7052ed465b5a0eeb88f93f5ec171994e7aee32d6","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.4.tgz","fileCount":32,"integrity":"sha512-xGgJBUeeWGGN9hQkoieW8WFOzEZw9Qxwq9wcLSs/yvR3YNUVR7p/3RlKacIQwh/hUdauIp81VRRwo96fQcOWbw==","signatures":[{"sig":"MEUCIB0llnDnR2SFD6xfEPj7YheaNUjxnmJkRs84zbsnsV0NAiEAmFaSVlxw9ne72SjOmreWxUt3fuaBoW0bZqJR2MsmH5U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":207584},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"eb0cfd3f25c65aa5a5ca20782df22e373a82a399","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.11.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","jose":"^6.2.2","@types/pg":"^8.20.0","@types/bun":"^1.3.12","typescript":"^5.9.3","@blueshed/railroad":"^0.6.3"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.6.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.4_1776685296353_0.971516180094969","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@blueshed/delta","version":"0.4.5","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.5","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"acf945b388b3c1ffd7ab32241c1067e38ed01898","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.5.tgz","fileCount":32,"integrity":"sha512-vxdBADlZ6iYh+Ms9lKD1FYHbzUy5z4LU5DWF0idFymiWDMV1JuV5/2aFlz5N7uPTfhstJjqq2aUHp0sF9OXc9A==","signatures":[{"sig":"MEYCIQD+1n0qrilViu4HJKUyILMH/mBDtUqXkubbEDNAV5hzsAIhAKLMaiPfXu91OkwFrbjC32n4BV6e/297gBBuOXY1V9SQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208818},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"d4b91d4c9bc99429a191708bf5c07a49ebbd17df","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.12.1","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","jose":"^6.2.2","@types/pg":"^8.20.0","@types/bun":"^1.3.12","typescript":"^5.9.3","@blueshed/railroad":"^0.7.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.7.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.5_1776945881846_0.02016519048087817","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@blueshed/delta","version":"0.4.7","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.7","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"983c754882677915e63cd8e2baf0cc223ea066b6","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.7.tgz","fileCount":32,"integrity":"sha512-rrdguFOoSC1W642IZPfj13akxKBSXx3fKTX2C+013Sn9LK0W9xbBukbLSX9TN+a2xP895W7wjynHcLqoFH1cag==","signatures":[{"sig":"MEQCIHErIw61ZRaLzU/XIdd9QHBTlAKkOL9pwTkpBm6K/vxEAiAgKtTU1wdIQZCKnhz1udkEOTvfkQ4InV5iKOcxs7+y/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":238299},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"7c850fce852e5e8e0a775fe6fcb163ca6a4221e1","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.11.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","jose":"^6.2.2","@types/pg":"^8.20.0","@types/bun":"^1.3.12","typescript":"^5.9.3","@blueshed/railroad":"^0.7.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.7.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.7_1777120176230_0.22711517178036345","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@blueshed/delta","version":"0.4.8","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.8","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"3de79706e043ee31a90f848a98d773aa26e0fb1e","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.8.tgz","fileCount":32,"integrity":"sha512-pY+hNjQRSDlUA3bcQWcNbxmwuxjgxAFzjyQm2RTq99tmxh8XyAMJpiVqWc+SlnAx8notiaUua0Zsjk7687JE2Q==","signatures":[{"sig":"MEUCIQDjj2IDv4qN5DPRAITgLDEHn46bifAsECLODpjv97lqjAIgF0V7Tcsd6xsf6qsbFNh51nl5tXLQnh+ita7DM9v7KxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244797},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"b07ad5dc73442c3872ee405887ed825975eb56ba","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.11.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","jose":"^6.2.2","@types/pg":"^8.20.0","@types/bun":"^1.3.12","typescript":"^5.9.3","@blueshed/railroad":"^0.7.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.7.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.8_1777122445293_0.4588633153209971","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"@blueshed/delta","version":"0.4.9","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.9","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"95223e2043a3536da9be6d3d617e768fee41a8f8","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.9.tgz","fileCount":32,"integrity":"sha512-qFgd+rZhtzsV91uzwPMpLH8iSpQlvxfW1U2Y+eSkL3frzdPIh5moQUq4QTvD12Z3gGYa2cs1BCcucZ5C6IkDqA==","signatures":[{"sig":"MEYCIQCLdEEWUJF7uvPAq1lHok1gJu74o5nCX1/w48sdyHkTmAIhALZgR1GrrqC/9Fb1hKnUXsguyDAKla04D/US2tNH/0dE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":248670},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"a5497ae0be727adb57543cd0cd8c5a674907778e","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.11.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","jose":"^6.2.2","@types/pg":"^8.20.0","@types/bun":"^1.3.12","typescript":"^5.9.3","@blueshed/railroad":"0.8.0"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.8.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.9_1777128981351_0.21106503849813807","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"@blueshed/delta","version":"0.4.10","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.10","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"0fdaeb160b278b14420246d3f09bed2483be031d","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.10.tgz","fileCount":32,"integrity":"sha512-aONXh+httw7Fr/BVSVqWvVS/UvVqhV3x2lgn8LzW81X2pXSyckRipWbyawqHr4XVt2oCHBAy3C5ka/B9XNVohw==","signatures":[{"sig":"MEUCIGsE7FPmCuPu1riXBn3Vq40O2ptuyR3J2XGzxQPTr5Q6AiEA8o9vUpm1GPNqfDoJmZPzHaQAYQbS3xYJrbbIHOUwIi4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":250837},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"f37378f47ee21e373d0475e4424a2ca6fac1248d","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.12.1","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.21.0","jose":"^6.2.3","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"0.8.0"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.8.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.10_1779358015243_0.4851758138815123","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"@blueshed/delta","version":"0.4.11","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.11","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"7022631a1337505cb7c682529d74ec5633142250","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.11.tgz","fileCount":32,"integrity":"sha512-l9+kikfjezTiLGl/KpzECA0YdA/zpEibMkVSfNZz3HrqtZBtphHe/Wn5ScV2LRGfSRz0V7aO7kNjfr1jtL7BRw==","signatures":[{"sig":"MEUCIQCgn4/eAH3udOFu14OIh3sEuy4Z2Hxy9cbi63CFWWNblgIgUGo3a8rT/JwX+V3KE/FpNnZqrd5lPOfXcT/FVAeERho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":255248},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"a046c816fefad94a15a4d86a1613125edfb071e5","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.12.1","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.21.0","jose":"^6.2.3","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"0.8.0"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.8.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.11_1779877067555_0.303293979858712","host":"s3://npm-registry-packages-npm-production"}},"0.4.12":{"name":"@blueshed/delta","version":"0.4.12","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.12","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"976127b1d8a4f34d037537d23f3805756be13d36","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.12.tgz","fileCount":32,"integrity":"sha512-aTRIPVrstYl0dtbLugb2+CVm812ub096xC9wQ7jKhLaM87YPPQAB3s4Mk3RjYMwUbyR22AjuHeJhoiUcmqJgHA==","signatures":[{"sig":"MEYCIQDpmmH/SYJoRBle0Yj0SvIm98kPksLO0FJBFF8t3GlGVgIhAPXlDTlkNbjpHuN2i4Whmo6G2AWVFQIEOe+Km6oX4XdL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":261855},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"cff067a3c71b2ee59d42aee05d6854e7bf210894","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.13.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.21.0","jose":"^6.2.3","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"0.8.0"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.8.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.12_1780216837067_0.6400988585121627","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"@blueshed/delta","version":"0.4.13","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.13","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"8abfb5d471d1146a437bb3d4fb25233b40f91e61","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.13.tgz","fileCount":32,"integrity":"sha512-SaLVDvaAN/MIllSTt4arModsn3QWcX58P08bFik+rg8COeqLum0RZefFHemSRo33VBpJ5txl1gCJWzS7Wi6hBA==","signatures":[{"sig":"MEUCIBNqkVfApeQhTEV/GXmuDE4nrDAlAZqh+FdubOGMM3xTAiEAhfY7866LbTyoGWokI40nhOSKv+mwBN9tqOAwo3gBbiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":266695},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"28a114f98037c87d959deb1f2fc0a0e68adf3e1d","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.13.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.21.0","jose":"^6.2.3","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"0.8.2"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.8.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.13_1780223136604_0.3769912208581234","host":"s3://npm-registry-packages-npm-production"}},"0.4.14":{"name":"@blueshed/delta","version":"0.4.14","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.14","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"1dd76f85eb37416aefd236941344319164bf6977","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.14.tgz","fileCount":32,"integrity":"sha512-SoMYdqQOBCfgQzR/UQx5RnJOS/tsTJHX6/5arJdU+41R/mPi8wUmSLGaJmNV3b4ytd0N0e70nqbKdC4yKkwx7w==","signatures":[{"sig":"MEQCIBD/xSnldfjdVhmxYsZMNGXI8RRUL1FmiEZGFXlfgI4VAiBTpt2UR2C6RweQPV0xmK3i7g583hu0BQTEmyA3EcJbRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":268820},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"3f6ca3da2e0abcf141911ddcc4b078c15ce75aa7","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.13.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.21.0","jose":"^6.2.3","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"0.8.2"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.8.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.14_1780395003356_0.1896665216029758","host":"s3://npm-registry-packages-npm-production"}},"0.4.15":{"name":"@blueshed/delta","version":"0.4.15","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.15","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"c658ad49c6356ed6914040572927fc94ed5039ba","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.15.tgz","fileCount":32,"integrity":"sha512-xZuIOc3jRJyQ8Im3NJ+1LpFX+LhhVux5pLPbx+9Fdrd4EcjbeRMxv0yn0mKka03ER7WYTmSDyYbz/Da6cgV2UQ==","signatures":[{"sig":"MEUCIQDWfXIYQCK8INmXSL9d3QYIBbChBeENtPZXSckKXyqT8gIgYgVhbmxa/8IXVuSdjOFCLIlWbeLYmJdbI2s+6YvHrDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":278142},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"36c54a9b20f20a3dc0414b2d9193cf93478533f9","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.13.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.21.0","jose":"^6.2.3","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"0.8.2"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.8.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.15_1780483360489_0.6826611514714371","host":"s3://npm-registry-packages-npm-production"}},"0.4.16":{"name":"@blueshed/delta","version":"0.4.16","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.4.16","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"3276fd95c83b554845d76a33b67bb9b280186a98","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.4.16.tgz","fileCount":32,"integrity":"sha512-FVjMJ09rhd5aMMDXG5Yg13u83OuVWWIQYT2/muof6Mtld1ZWdItVfGjBfV6nDbri5w+EKCX+zHJDQ1x91ZLTeg==","signatures":[{"sig":"MEQCICJvBd4qHnsbCN6ySMc3tGk2jDk408rkTlb6QEI957U3AiA+fJK4gWP6DX2ePkRxLR1PKncOECcCL0onBPjh3xQ8fA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.4.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":321754},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"8ce471e205d213dfa0716cc7ff894cccc8a378e3","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.13.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.21.0","jose":"^6.2.3","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"0.9.0"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.9.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.4.16_1780498630723_0.4534747361033231","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@blueshed/delta","version":"0.5.0","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.5.0","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"1e65504cc3c6e737b83be2203a64e509f79206c7","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.5.0.tgz","fileCount":32,"integrity":"sha512-kcfH0ayDgHGbF0bg6tmYSKDRrxlGha/oqWEbT+mI/SeiHRW+AYdzgBuhmq7j8qUdcSf5VQaav9J5NDlCH7sUUw==","signatures":[{"sig":"MEQCIG4x0QKThwKwoPwlHbjmXxI5/Wo6HU5RF34Gq3GPqOBLAiAXjylcKbWDkdF9S+2es+CjmiUkz38G3jkvzhNdboOsDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":327653},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{"./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"6b9c5467958f02f3539a43b34491fc34001fdcc2","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.13.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.21.0","jose":"^6.2.3","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"0.9.0"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.9.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.5.0_1781082736445_0.48223277235390305","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@blueshed/delta","version":"0.5.1","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.5.1","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"dcc15fc1f8415adbd8eb1423875c7b3807ae815b","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.5.1.tgz","fileCount":32,"integrity":"sha512-oUSqj3ok0+BP2ZGOFfZaLbXbB2THnXS/vEdJY05ZcgeXbOmTbRG1cpoGxW1shSvOWBJ/bcdj9kmUJ1pko2wUng==","signatures":[{"sig":"MEUCIQCAWnUjk0JjWBQO/zf638DkRfhmzXD1YNxR4kcUcI7PpgIgDwKGE2S+ORXzoiAyKtCdilETIL/PALTqXoZBXkdK1uQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":370468},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{".":"./src/core.ts","./auth":"./src/server/auth.ts","./core":"./src/core.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"8573a9aadb9a206baf8012a9f83b91dd936e6b32","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts tests/railroad-client.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.16.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","jose":"^6.2.4","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"^0.11.0","@happy-dom/global-registrator":"^20.11.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.11.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.5.1_1785254659449_0.8740685983129111","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@blueshed/delta","version":"0.6.0","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.6.0","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"ca5ed027fef833bedc552eea7c57af2fc2a5346d","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.6.0.tgz","fileCount":36,"integrity":"sha512-tbn8Dw9dDe5b5wGo50uMcvksNJNhmyEco6DZH/4W2Xqoab2V040TNUPO0KZXvLVyu8jGcVXI+90UGV/qOd8gEQ==","signatures":[{"sig":"MEYCIQDkGOIacrRDi2VV1vHGMDgWQl0f2NAfNaPh/mqyber6tAIhALBki1avExvhjkjkTGr3FeAdpZtgpxMXgR7XV0MNsu4t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAJVhIgmHqKGhTLMrJv3BE/wrgxSVvYuVDcw49fszXLbAiBWkErKwia1diRxarai73n2zjhQQasZFi4fr3E5TPzvhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":443620},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{".":"./src/core.ts","./auth":"./src/server/auth.ts","./core":"./src/core.ts","./kinds":"./src/server/kinds.ts","./local":"./src/server/local.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"934cb808452f70f728cbeb935850d34408f379c1","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts tests/railroad-client.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.19.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","jose":"^6.2.4","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"^0.12.0","@happy-dom/global-registrator":"^20.11.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.11.0 || ^0.12.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.6.0_1790286004503_0.09488556723094077","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@blueshed/delta","version":"0.7.0","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.7.0","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"651ae1d811ffde673beea46495379dae3dd64983","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.7.0.tgz","fileCount":36,"integrity":"sha512-rsMlz0gtyK9OAt9S7FvxghmDAxmgQYoBsy5QxxjjtHqtt9M3e/t5Shol6BQpHyfEoW5tvOSEVJnJLusI1k4oIA==","signatures":[{"sig":"MEQCIDYWvLDlFlYC/wNn1zqGe8HFbn2A68aK6uPQ9AjAlv7fAiAk6/KVZdceJEhKDLn2dGpUUuJ9wM7y10Xo0lIHSaAsWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFYw7tTXXDwocuty9e9O2VBKLzWgj+CZr9AYbt+LHYo1AiB+3ggqIlUwxxd+EhYiATw3d/+lUhSWPz98YSZAsWkcgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":515521},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{".":"./src/core.ts","./auth":"./src/server/auth.ts","./core":"./src/core.ts","./kinds":"./src/server/kinds.ts","./local":"./src/server/local.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"b4816cc06aa4359ffe82f8cb914487d97eceff0e","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts tests/railroad-client.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.19.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","jose":"^6.2.4","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"^0.13.0","@happy-dom/global-registrator":"^20.11.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.11.0 || ^0.12.0 || ^0.13.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.7.0_1790293372949_0.46792572485997574","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@blueshed/delta","version":"0.8.0","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.8.0","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"a231a474609883c8d292f8b42df4b7989e8c846c","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.8.0.tgz","fileCount":36,"integrity":"sha512-VXNawSiBYEBoGtogpuA7J8183QnZzgCGwDOyiO75obQXnVKLyQXqCrRFVF++BVjLPmwDi1rpXwiaW8eKAKWumg==","signatures":[{"sig":"MEYCIQCLzDlv1dndXl+60mjDKcQyRQqGdNM70ma3kOO7d9vORgIhANsT5SEhxRvzC1+i8x+cDzrAFvSnR54Q3NbsSmBbU1j5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDJ80+9G47Rr9UKwWVKJ5czwqgfE+lX9Uho4dIvrzynLgIhAIR8r52rVA3jlNAnIFS6VoRKUxv/hgnFZNpl00BIwE6U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":530945},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{".":"./src/core.ts","./auth":"./src/server/auth.ts","./core":"./src/core.ts","./kinds":"./src/server/kinds.ts","./local":"./src/server/local.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"9fb2c8b030d4ddba46828b7d638d074ed0466d88","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts tests/railroad-client.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.19.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","jose":"^6.2.4","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"^0.14.0","@happy-dom/global-registrator":"^20.11.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.8.0_1790338496897_0.6873047908618395","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@blueshed/delta","version":"0.9.0","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.9.0","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"9af06ad960d5798f96f96ddc861a6f48d41be3cc","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.9.0.tgz","fileCount":40,"integrity":"sha512-hPXIefBdqhnltHBX0kJD6XB2RRWer/9j6wLUrDIIYMFeXl49RIEE4dz0vIITf8y82x4wBgr1/bIx5L+pRK2ZMA==","signatures":[{"sig":"MEYCIQCFFUpGNYNlLwDdsYch4bG36U7370VE2XWFaWEoqcQcxgIhAKPvgWYTUqpvQ1OXLK5gZ+552WIDR7qQ7Tf8AwjIORgd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDXufamWp3h7LjVANONlzw1Bo868GFBTLfAGTiUr1cZ7gIgB8UTysgVcZPvG4rnB/07vRbs9YDpQvkTzTWE8MmcKVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":579415},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{".":"./src/core.ts","./auth":"./src/server/auth.ts","./core":"./src/core.ts","./json":"./src/server/json.ts","./kinds":"./src/server/kinds.ts","./local":"./src/server/local.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./pglite":"./src/server/pglite.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"90ca6737776dba973a811546a8b29cd21fa600dd","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts tests/railroad-client.test.ts tests/path-json.test.ts tests/path-sqlite.test.ts tests/path-pglite.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.19.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","jose":"^6.2.4","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"^0.14.0","@electric-sql/pglite":"^0.5.4","@happy-dom/global-registrator":"^20.11.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0","@electric-sql/pglite":"^0.5.4"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true},"@electric-sql/pglite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.9.0_1790366942690_0.7853072183129786","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@blueshed/delta","version":"0.9.1","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.9.1","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"8003026df25d544a3b1a420eef193497382f1af8","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.9.1.tgz","fileCount":40,"integrity":"sha512-OWggjE9Uo9OFGYfkq4L4ug4ZHuBzNM4SL2y5VOkULNF7H0XIea11FxHu8nmfEh9A0jHg4REd7/yFp8hEJeI0hA==","signatures":[{"sig":"MEQCIByx/Xe4mEmcyNsdR4pdjiDWRsR4XRRv9HhoGeHskI8eAiAEAxqoSo3IRI0cqC2nPw8StK+LRrBc4hsqQbb4oyHzew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDAmy+mDRNUDdQ0dkiYysA5qfzNJd20Msi5kKItcOtTeAIgfg0FmIrliInGH+1qQT9Gvs0iR9/ItYuK4guU1cpk8ww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":596347},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{".":"./src/core.ts","./auth":"./src/server/auth.ts","./core":"./src/core.ts","./json":"./src/server/json.ts","./kinds":"./src/server/kinds.ts","./local":"./src/server/local.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./pglite":"./src/server/pglite.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"e55ab39d9624a22e5f35140b64feca60e9dc1c28","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts tests/railroad-client.test.ts tests/path-json.test.ts tests/path-sqlite.test.ts tests/path-pglite.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.19.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","jose":"^6.2.4","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"^0.14.0","@electric-sql/pglite":"^0.5.4","@happy-dom/global-registrator":"^20.11.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0","@electric-sql/pglite":"^0.5.4"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true},"@electric-sql/pglite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.9.1_1790547589815_0.8851539927568399","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@blueshed/delta","version":"0.10.0","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","_id":"@blueshed/delta@0.10.0","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"homepage":"https://github.com/blueshed/delta","bugs":{"url":"https://github.com/blueshed/delta/issues"},"bin":{"delta":"cli.ts"},"dist":{"shasum":"b3278c5f848baeec057281e2e3c1d589d3bd43da","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.10.0.tgz","fileCount":40,"integrity":"sha512-6e4bnnlCbtX8RvDT27JQdsRSXC16vGFyhx93OHvGjwYX+pw/4vH3IUGAh9GJ5yRsv9nG+o7v1Mx+cLkUrKT+Dg==","signatures":[{"sig":"MEUCIQCg5yA7oUVCL4LvLfTyS62sIl7H9zhSmyiEpESJWTVNngIgJ5WBAiT7Rhc5nd3PK48tCNFBLzJuz9t2W41t8ebj7u0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICkEd9yIuu+4tJl/lodvXlINsEA4H2/kFvvJrMyC8ezcAiAvSt9TDP+y4QwdHZvSpNszh6NfQUjovSrQn/5ll5FC1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":781400},"main":"src/core.ts","type":"module","types":"src/core.ts","exports":{".":"./src/core.ts","./auth":"./src/server/auth.ts","./core":"./src/core.ts","./json":"./src/server/json.ts","./kinds":"./src/server/kinds.ts","./local":"./src/server/local.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./pglite":"./src/server/pglite.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"70b61b509b189ae8d33a9254b787cac583c4df14","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts tests/railroad-client.test.ts tests/path-json.test.ts tests/path-sqlite.test.ts tests/path-pglite.test.ts tests/client.test.ts tests/codegen.test.ts tests/dom-ops.test.ts tests/install-skills.test.ts tests/kinds.test.ts tests/ledger.test.ts tests/local.test.ts tests/package-exports.test.ts tests/schema.test.ts tests/sqlite-custom.test.ts tests/sqlite-fanout-scope.test.ts tests/sqlite-isolation.test.ts tests/sqlite-processes.test.ts tests/owns-sqlite.test.ts tests/owns-pglite.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.19.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","jose":"^6.2.4","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"^0.15.0","@electric-sql/pglite":"^0.5.4","@happy-dom/global-registrator":"^20.11.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0 || ^0.15.0","@electric-sql/pglite":"^0.5.4"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true},"@electric-sql/pglite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/delta_0.10.0_1790598961262_0.9132218502129137","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"_id":"@blueshed/delta@0.11.0","bin":{"delta":"cli.ts"},"bugs":{"url":"https://github.com/blueshed/delta/issues"},"dist":{"shasum":"54de6f8e57e1af99cc93505f58e745e14305c325","tarball":"https://registry.npmjs.org/@blueshed/delta/-/delta-0.11.0.tgz","fileCount":40,"integrity":"sha512-RTXjY3+2CCGNPJRH/hN+SjE6UaEF42+Ol8ufq0rDUiU66itgVeaQ5V3puxlSWZHCa4/9tN8ydArLL6MIXFTN6w==","signatures":[{"sig":"MEUCIQC5GvCW/LIrbbVf3R/YAbZuRRwawuv0BHdRHpHpLgarKAIgVkBg861WZl3ncP/zTDNISfgPMtsIb4xs2TiL5+QKZ2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDPFYys+DIf/ysnzch1T/TmaTRjzzl1cKQYdCiJAbkJOQIhANbiCNQtUN7JhQA0xZsYNfTsixkblTyvGNPD8aE5sdSW"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blueshed%2fdelta@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":794163},"main":"src/core.ts","name":"@blueshed/delta","type":"module","types":"src/core.ts","author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"exports":{".":"./src/core.ts","./auth":"./src/server/auth.ts","./core":"./src/core.ts","./json":"./src/server/json.ts","./kinds":"./src/server/kinds.ts","./local":"./src/server/local.ts","./client":"./src/client/client.ts","./logger":"./src/server/logger.ts","./pglite":"./src/server/pglite.ts","./server":"./src/server/server.ts","./sqlite":"./src/server/sqlite.ts","./dom-ops":"./src/client/dom-ops.ts","./auth-jwt":"./src/server/auth-jwt.ts","./postgres":"./src/server/postgres/index.ts"},"gitHead":"301b71b73c623d55ca6e28c122157b7f3efb7fcc","license":"MIT","scripts":{"ci":"bun run db:up && bun run check && bun run test:all; code=$?; bun run db:down; exit $code","test":"bun test tests/core.test.ts tests/server.test.ts tests/sqlite.test.ts tests/auth.test.ts tests/railroad-client.test.ts tests/path-json.test.ts tests/path-sqlite.test.ts tests/path-pglite.test.ts tests/client.test.ts tests/codegen.test.ts tests/dom-ops.test.ts tests/install-skills.test.ts tests/kinds.test.ts tests/ledger.test.ts tests/local.test.ts tests/package-exports.test.ts tests/schema.test.ts tests/sqlite-custom.test.ts tests/sqlite-fanout-scope.test.ts tests/sqlite-isolation.test.ts tests/sqlite-processes.test.ts tests/owns-sqlite.test.ts tests/owns-pglite.test.ts tests/ledger-0.10.0-sql.test.ts","bench":"bun run bench/run.ts","check":"bunx tsc --noEmit","db:up":"docker compose up -d --wait","db:down":"docker compose down -v","test:pg":"bun test tests/postgres.test.ts tests/auth-jwt.test.ts","test:all":"bun test tests/"},"version":"0.11.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ede490b4-b3c4-402e-a4e0-ec6c2b72cba2"}},"homepage":"https://github.com/blueshed/delta","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"_npmVersion":"11.19.0","description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","directories":{},"maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","jose":"^6.2.4","@types/pg":"^8.20.0","@types/bun":"^1.3.14","typescript":"^5.9.3","@blueshed/railroad":"^0.15.0","@electric-sql/pglite":"^0.5.4","@happy-dom/global-registrator":"^20.11.1"},"peerDependencies":{"pg":"^8.20.0","jose":"^6.0.0","@blueshed/railroad":"^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0 || ^0.15.0","@electric-sql/pglite":"^0.5.4"},"peerDependenciesMeta":{"pg":{"optional":true},"jose":{"optional":true},"@blueshed/railroad":{"optional":true},"@electric-sql/pglite":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/delta_0.11.0_1790619381174_0.15720706848801047"}}},"time":{"created":"2026-04-20T11:09:15.336Z","modified":"2026-09-28T18:16:21.723Z","0.4.0":"2026-04-20T11:09:15.584Z","0.4.4":"2026-04-20T11:41:36.508Z","0.4.5":"2026-04-23T12:04:42.000Z","0.4.7":"2026-04-25T12:29:36.368Z","0.4.8":"2026-04-25T13:07:25.494Z","0.4.9":"2026-04-25T14:56:21.496Z","0.4.10":"2026-05-21T10:06:55.418Z","0.4.11":"2026-05-27T10:17:47.723Z","0.4.12":"2026-05-31T08:40:37.250Z","0.4.13":"2026-05-31T10:25:36.772Z","0.4.14":"2026-06-02T10:10:03.509Z","0.4.15":"2026-06-03T10:42:40.643Z","0.4.16":"2026-06-03T14:57:10.867Z","0.5.0":"2026-06-10T09:12:16.588Z","0.5.1":"2026-07-28T16:04:19.595Z","0.6.0":"2026-09-24T21:40:04.585Z","0.7.0":"2026-09-24T23:42:53.069Z","0.8.0":"2026-09-25T12:14:57.000Z","0.9.0":"2026-09-25T20:09:02.818Z","0.9.1":"2026-09-27T22:19:49.969Z","0.10.0":"2026-09-28T12:36:01.366Z","0.11.0":"2026-09-28T18:16:21.309Z"},"bugs":{"url":"https://github.com/blueshed/delta/issues"},"author":{"url":"https://blueshed.co.uk","name":"Peter Bunyan","email":"peter@blueshed.co.uk"},"license":"MIT","homepage":"https://github.com/blueshed/delta","keywords":["delta-doc","json-patch","websocket","postgres","sqlite","realtime"],"repository":{"url":"git+https://github.com/blueshed/delta.git","type":"git"},"description":"Delta-doc — JSON-Patch document sync with SQLite and Postgres backends, WebSocket transport, and reactive client signals","maintainers":[{"name":"spddo","email":"pete@blueshed.co.uk"}],"readme":"# @blueshed/delta\n\n**delta keeps shared documents live in every browser that has one open: plain tables underneath,\none WebSocket between, from a JSON file on day one to a Postgres server in production.**\n\nAn app is a set of documents: a venue's map, a caterer's menu, a person's calendar. Each is a\nlive view over ordinary tables. A browser opens a document and changes it with three verbs\n(`add`, `replace`, `remove`) on paths like `/courses/3/name`. Every open document that\nholds a changed row hears about it straight away: the row arriving, changing, or leaving. With\nthe ledger on, each person can undo their own writes while others keep writing, and a table\nkeeps every version of its rows (unless you turn that off), so a document can be read as it\nstood last March.\n\nStart on a JSON file, move to SQLite, then to Postgres in the same process, and deliver on a\nPostgres server. Each step changes the few lines that say where the truth lives, and nothing\nelse: the schema, the documents, the writes and the data stay the same, and the rows move with\ntheir ids. No rewrite, no second data layer, no reload logic.\n\nIn one line: **live, undoable documents over plain tables, from a file to a Postgres server\nwithout rewriting the app.**\n\nIt exists because shared, live state should be one small idea rather than a stack of fetch\ncalls, caches and sockets. The whole package is small enough to read in one sitting (and to\nfit in an AI's context), and there is one way to do each thing. (The skill's *Backends side by\nside* says what is the same on every backend, and the little that differs.)\n\nDelta runs on [Bun](https://bun.sh). It ships TypeScript source (the exports are `.ts` files),\nthe SQLite backend uses `bun:sqlite` and the server uses `Bun.serve`. The browser code needs a\nbundler; Bun's HTML imports do it with no configuration.\n\n## Try it\n\n```sh\nmkdir try-delta && cd try-delta && bun add @blueshed/delta\n```\n\nSave this as `try.ts`:\n\n```ts\nimport { Database } from \"bun:sqlite\";\nimport { createLocal } from \"@blueshed/delta/local\";\nimport { setLogLevel } from \"@blueshed/delta/logger\";\nimport { createTables, defineDoc, defineSchema, registerDocs } from \"@blueshed/delta/sqlite\";\n\nsetLogLevel(\"warn\");\n\n// A shopping list: a row per list, its items in a map.\nconst schema = defineSchema({\n  lists: { columns: { title: \"text?\" }, temporal: false },\n  items: { parent: \"lists\", columns: { text: \"text\", done: { type: \"boolean\", default: false } }, temporal: false },\n});\nconst list = defineDoc(\"list:\", { root: \"lists\", include: [\"items\"], implied: true });\n\nconst db = new Database(\":memory:\");\ncreateTables(db, schema);\n\n// Delta in this process. registerDocs(createWs(), ...) serves the same documents to browsers.\nconst delta = createLocal();\nregisterDocs(delta.server, db, schema, [list], [], { ledger: true });\ndelta.onPublish((doc, change) => console.log(doc, `v${change.v}`, JSON.stringify(change.ops)));\n\nconst ada = delta.as(\"ada\");\nconst doc = \"list:groceries\";\nawait ada.call(\"open\", { doc });\nawait ada.call(\"delta\", { doc, cursor: \"tab-1\", ops: [{ op: \"add\", path: \"/items/milk\", value: { text: \"milk\" } }] });\nawait ada.call(\"delta\", { doc, cursor: \"tab-1\", ops: [{ op: \"replace\", path: \"/items/milk/done\", value: true }] });\nawait ada.call(\"undo\", { cursor: \"tab-1\" });\n\nconsole.log((await ada.call(\"open\", { doc })).result.items);\n```\n\nRun `bun try.ts`:\n\n```\nlist:groceries v1 [{\"op\":\"add\",\"path\":\"/items/milk\",\"value\":{\"id\":\"milk\",\"text\":\"milk\",\"lists_id\":\"groceries\",\"done\":false}}]\nlist:groceries v2 [{\"op\":\"replace\",\"path\":\"/items/milk\",\"value\":{\"id\":\"milk\",\"text\":\"milk\",\"lists_id\":\"groceries\",\"done\":true}}]\nlist:groceries v3 [{\"op\":\"replace\",\"path\":\"/items/milk\",\"value\":{\"id\":\"milk\",\"text\":\"milk\",\"lists_id\":\"groceries\",\"done\":false}}]\n{\n  milk: {\n    id: \"milk\",\n    text: \"milk\",\n    lists_id: \"groceries\",\n    done: false,\n  },\n}\n```\n\nThree writes, each heard as a change with its version. The last one is the undo, which the\nledger worked out for itself. The document did not exist until its first write made it\n(`implied: true`).\n\n## Where the truth lives\n\nEach kind of document registers on the same server, and the browser opens every one of them the\nsame way.\n\n| The truth is | Register it with | From |\n|---|---|---|\n| a JSON file | `registerDocs(ws, file, schema, docs)` | `@blueshed/delta/json` |\n| a SQLite database | `registerDocs(ws, db, schema, docs)` | `@blueshed/delta/sqlite` |\n| Postgres in this process | `openPglite(dir?)`, then as a Postgres database | `@blueshed/delta/pglite` |\n| a Postgres database, shared by processes | `createDocListener(ws, pool)` and `registerDocType(docTypeFromDef(def, pool))` | `@blueshed/delta/postgres` |\n| one free-form JSON document | `await registerDoc(ws, name, { file, empty })` | `@blueshed/delta/server` |\n| this process (who is online) | `registerMemory(ws, { prefix, empty })` | `@blueshed/delta/kinds` |\n| outside (a sensor, an API) | `registerSource(ws, { prefix, read, every })` | `@blueshed/delta/kinds` |\n| the release (countries, units) | `registerStatic(ws, { prefix, value })` | `@blueshed/delta/kinds` |\n\nStart with a JSON file; move to SQLite, then Postgres in this process, then a Postgres server,\nwithout changing the app: the same schema, the same documents, the same writes, and the same\nanswers from each -- serial ids, a write told to every open document that holds the rows it\nchanged, one scope rule. Carry the data with `exportTables` from where it is and\n`importTables` into where it goes; ids and sequences carry, so the next row named follows on.\n\n## Undo comes with the ledger\n\nPass `{ ledger: true }` to the JSON file, SQLite or Postgres and every write is recorded in the\nwrite's own transaction: what it did, its inverse, the document's version, who made it and the cursor undo\nwalks. `undo`, `redo` and `history` then work with no more code. Over a socket the cursor is\nthe connection, so a browser undoes only what it wrote:\n\n```ts\nconst ws = connectWs(\"/ws\");\nawait ws.send({ action: \"undo\" });   // or \"redo\"; answers null when there is nothing to walk\nawait ws.send({ action: \"undo\", change: 7 });   // one change of this cursor's, by its entry, not its last\n```\n\nOn Postgres the ledger is in the database, so a write made in one process can be undone from\nanother.\n\n## In the browser, or in the same process\n\nServed over a socket with `createWs()`, a browser opens a document as a reactive value (the\nclient needs `@blueshed/railroad`: `bun add @blueshed/railroad`):\n\n```ts\nimport { connectWs, openDoc } from \"@blueshed/delta/client\";\n\nconst doc = openDoc(\"list:groceries\", connectWs(\"/ws\"));\nawait doc.ready;\ndoc.onOps((ops) => render(ops));   // every change, including your own\nawait doc.send([{ op: \"replace\", path: \"/items/milk/done\", value: true }]);\n```\n\nIn a clone of this repository (`examples/` is not in the npm package),\n`bun examples/shared-state/server.ts` runs a chat in two browser tabs on a JSON file, with no\ndatabase and no schema.\n\nRun in the same process with `createLocal()`, as in the example above, a server that renders\nits own pages, a job or a test speaks to delta by function call. `as(identity)` says who is\nwriting, and `onPublish` is the one stream of changes to redraw from.\n\n## Pairs with\n\n- [`@blueshed/railroad`](https://www.npmjs.com/package/@blueshed/railroad) draws in the browser.\n  `doc.data` is a railroad signal, so its `list()` renders a collection row by row.\n- delta keeps the documents.\n- eta, a private server-rendering kernel, builds on delta in-process through `createLocal()`.\n\nStarting a new app? `bun create blueshed my-app` sets up delta and railroad together.\n\n## Optional peers\n\n`bun add @blueshed/delta` installs none of these; add the ones the parts you use need.\n\n| You use | Also add |\n|---|---|\n| `@blueshed/delta/client` (the browser) | `@blueshed/railroad` |\n| `@blueshed/delta/postgres` | `pg` (and `@types/pg` to type-check: delta ships TypeScript source) |\n| `@blueshed/delta/auth-jwt` | `jose` and `pg` |\n\nThe core, the JSON-file and SQLite backends, `local`, `kinds`, `dom-ops` and `logger` need\nnothing else.\n\n## Where to go next\n\n- The `delta-doc` skill is the manual: [`SKILL.md`](.claude/skills/delta-doc/SKILL.md) routes,\n  [`reference.md`](.claude/skills/delta-doc/reference.md) has the API, patterns, auth, row-level\n  security, the ledger, the kinds and the wire protocol. `bunx @blueshed/delta install-skills` copies it\n  into your project for Claude Code.\n- [`examples/`](examples/): `shared-state` (JSON file), `sites-bbox` (custom views on SQLite\n  and Postgres), `kanban` (Postgres with railroad), `todos-vs-rls` (row-level security).\n- [CHANGELOG.md](CHANGELOG.md) for what changed in each release.\n\nMIT licence.\n","readmeFilename":"README.md"}