{"_id":"@absolutejs/sync-automerge","_rev":"4-62a688a7e33a5919fe664c43b23aead6","name":"@absolutejs/sync-automerge","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@absolutejs/sync-automerge","version":"0.0.1","keywords":["absolutejs","sync","crdt","automerge","collaborative","multiplayer"],"author":"Alex Kahn","license":"CC BY-NC 4.0","_id":"@absolutejs/sync-automerge@0.0.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"9554ee2961dfab2ff58be979c3deae68b64d9c2c","tarball":"https://registry.npmjs.org/@absolutejs/sync-automerge/-/sync-automerge-0.0.1.tgz","fileCount":5,"integrity":"sha512-4GhYoc7evW871ApBgw0MtETyYUBPigXA/YwZMPd7dmnEeeGmK0e8KrK0LqbBFkJQF8OpxhGjKf5pMp9t8VkG3w==","signatures":[{"sig":"MEYCIQDnjpZMvx0jDSGrLVsesuVNsEsi4CH+35+7B2pg14jO1gIhAMq65zt6C3mNM4Lvs0zKQp6VL40zxBouyaSpwF4Kjf+j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11880},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"9554ee2961dfab2ff58be979c3deae68b64d9c2c","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun --external @absolutejs/sync --external @automerge/automerge && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-4GhYoc7evW871ApBgw0MtETyYUBPigXA/YwZMPd7dmnEeeGmK0e8KrK0LqbBFkJQF8OpxhGjKf5pMp9t8VkG3w==","repository":{"url":"https://github.com/absolutejs/sync-adapters.git","type":"git","directory":"automerge"},"_npmVersion":"10.8.3","description":"Automerge-backed collaborative-text CRDT adapter for @absolutejs/sync","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@automerge/automerge":"^3.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/sync":"^0.15.0"},"peerDependencies":{"@absolutejs/sync":">= 0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/sync-automerge_0.0.1_1779758744431_0.5532952407321063","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@absolutejs/sync-automerge","version":"0.0.2","keywords":["absolutejs","sync","crdt","automerge","collaborative","multiplayer"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/sync-automerge@0.0.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"43bffbfeeefb2111e6937a5d3d2b75f84ff74b60","tarball":"https://registry.npmjs.org/@absolutejs/sync-automerge/-/sync-automerge-0.0.2.tgz","fileCount":6,"integrity":"sha512-2Y/y8n2d6ZWKSq68In750GBNNe+597fSfTQNHCJp/jVAWI4I6TNfyX4tvm8cHCIv4ldbKu9xMEmJQro9P+MoMg==","signatures":[{"sig":"MEUCIAm7rtrcsGS2TPySsMDWXOSW26ngclJTf/hFV1ZlRlgIAiEAsbsBlMNOAbNY2CGZttTYADmuzd9OPZ0LFKjB2zBU9vg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23236},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"43bffbfeeefb2111e6937a5d3d2b75f84ff74b60","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun --external @absolutejs/sync --external @automerge/automerge && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-2Y/y8n2d6ZWKSq68In750GBNNe+597fSfTQNHCJp/jVAWI4I6TNfyX4tvm8cHCIv4ldbKu9xMEmJQro9P+MoMg==","repository":{"url":"https://github.com/absolutejs/sync-adapters.git","type":"git","directory":"automerge"},"_npmVersion":"10.8.3","description":"Automerge-backed collaborative-text CRDT adapter for @absolutejs/sync","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@automerge/automerge":"^3.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/sync":"^0.15.0"},"peerDependencies":{"@absolutejs/sync":">= 0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/sync-automerge_0.0.2_1780071583611_0.6253245664605667","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@absolutejs/sync-automerge","version":"0.0.3","keywords":["absolutejs","sync","crdt","automerge","collaborative","multiplayer"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/sync-automerge@0.0.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/sync-adapters/tree/main/automerge","bugs":{"url":"https://github.com/absolutejs/sync-adapters/issues"},"dist":{"shasum":"a949389200b1df2909b3e4d7fcd315dcc8a04d11","tarball":"https://registry.npmjs.org/@absolutejs/sync-automerge/-/sync-automerge-0.0.3.tgz","fileCount":10,"integrity":"sha512-cwo0wDNki7ztKZ7K0cO1CDE/3awDnEnJN0vWH1Gzk3n+eCnaYPqv1nclrKbhJN3M45ujDbswWpazYi+FQThtrQ==","signatures":[{"sig":"MEUCIQCn4GlcnoqRjr8CIqXr88NBOODwc9zvHywq1fTZylDgIQIgdqiYBd0B55ZoC6O5ANWhXxWCpCh5jt5HixtoXhYr+Ts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1113463},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"a949389200b1df2909b3e4d7fcd315dcc8a04d11","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/sync --external @automerge/automerge && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-cwo0wDNki7ztKZ7K0cO1CDE/3awDnEnJN0vWH1Gzk3n+eCnaYPqv1nclrKbhJN3M45ujDbswWpazYi+FQThtrQ==","absolutejs":{"manifestContract":1},"repository":{"url":"https://github.com/absolutejs/sync-adapters.git","type":"git","directory":"automerge"},"_npmVersion":"10.8.3","description":"Automerge-backed collaborative-text CRDT adapter for @absolutejs/sync","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0","@automerge/automerge":"^3.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/sync":"^0.15.0"},"peerDependencies":{"@absolutejs/sync":">= 0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/sync-automerge_0.0.3_1783965128376_0.4666643142304254","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@absolutejs/sync-automerge","version":"0.0.4","description":"Automerge-backed collaborative-text CRDT adapter for @absolutejs/sync","repository":{"type":"git","url":"https://github.com/absolutejs/sync-adapters.git","directory":"automerge"},"homepage":"https://github.com/absolutejs/sync-adapters/tree/main/automerge","bugs":{"url":"https://github.com/absolutejs/sync-adapters/issues"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","license":"Apache-2.0","author":"Alex Kahn","publishConfig":{"access":"public"},"keywords":["absolutejs","sync","crdt","automerge","collaborative","multiplayer"],"scripts":{"build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/sync --external @automerge/automerge && tsc --project tsconfig.build.json && absolute-manifest emit","test":"bun test","typecheck":"tsc --noEmit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish"},"dependencies":{"@absolutejs/manifest":"^0.7.1","@sinclair/typebox":"^0.34.0","@automerge/automerge":"^3.2.6"},"peerDependencies":{"@absolutejs/sync":">=2.11.0 <3"},"devDependencies":{"@absolutejs/sync":"2.11.0","@types/bun":"1.3.14","prettier":"3.5.3","typescript":"5.8.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"absolutejs":{"manifestContract":2,"runtimePeers":{"@absolutejs/sync":{"artifactImports":[],"buildExternals":["@absolutejs/sync"],"range":">=2.11.0 <3","tested":"2.11.0"}}},"_id":"@absolutejs/sync-automerge@0.0.4","_integrity":"sha512-dpki0CFAmte2sfLuEiMrNudCv9rgwO/OpqmoFyEOOvzORBo+JmaMAAY2n20ToKv5oXX9AtzxA5NtcW+FTSoeTw==","_nodeVersion":"24.3.0","_npmVersion":"10.8.3","shasum":"67ab7a50362b540d8d4df7bb73f48399e4754a32","dist":{"integrity":"sha512-dpki0CFAmte2sfLuEiMrNudCv9rgwO/OpqmoFyEOOvzORBo+JmaMAAY2n20ToKv5oXX9AtzxA5NtcW+FTSoeTw==","shasum":"67ab7a50362b540d8d4df7bb73f48399e4754a32","tarball":"https://registry.npmjs.org/@absolutejs/sync-automerge/-/sync-automerge-0.0.4.tgz","fileCount":10,"unpackedSize":476187,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDEJE095lLws3eqtCU7qkVVMd+ls/blax9VN6PgGII7oAIgYLb5N57pnbdT/h8KlEo4ladr3NPkCfQApf7+eN57y9U="}]},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"directories":{},"maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sync-automerge_0.0.4_1784913336524_0.3027354504471358"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-26T01:25:44.278Z","modified":"2026-07-24T17:15:36.872Z","0.0.1":"2026-05-26T01:25:44.578Z","0.0.2":"2026-05-29T16:19:43.779Z","0.0.3":"2026-07-13T17:52:08.581Z","0.0.4":"2026-07-24T17:15:36.658Z"},"bugs":{"url":"https://github.com/absolutejs/sync-adapters/issues"},"author":"Alex Kahn","license":"Apache-2.0","homepage":"https://github.com/absolutejs/sync-adapters/tree/main/automerge","keywords":["absolutejs","sync","crdt","automerge","collaborative","multiplayer"],"repository":{"type":"git","url":"https://github.com/absolutejs/sync-adapters.git","directory":"automerge"},"description":"Automerge-backed collaborative-text CRDT adapter for @absolutejs/sync","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# @absolutejs/sync-automerge\n\nAn [Automerge](https://automerge.org)-backed collaborative-text CRDT for\n[`@absolutejs/sync`](https://github.com/absolutejs/sync), behind the same\n`CrdtText` / `TextCrdtAdapter` contract as the core's zero-dependency `rgaText`\nand `@absolutejs/sync-yjs`.\n\n`@absolutejs/sync/crdt` ships a first-party RGA text CRDT that's great for\noffline-merge and moderate collaboration. Automerge is a mature, battle-tested\nCRDT library; this adapter lets you swap it in without touching your call sites.\n\n## Install\n\n```bash\nbun add @absolutejs/sync-automerge @automerge/automerge\n```\n\n`@absolutejs/sync` is a peer dependency. `@automerge/automerge` is a runtime\ndependency you install alongside.\n\n## Use\n\n```ts\nimport { automergeText } from '@absolutejs/sync-automerge';\n// ...instead of: import { rgaText } from '@absolutejs/sync/crdt';\n\n// Server — declare the CRDT field with this backend\nengine.registerCrdt('doc', { state: automergeText });\n\n// Client — same hook, just pass the backend's factory\nconst doc = useCollaborativeText({\n\tcollection: 'doc',\n\tfield: 'state',\n\tid: 'shared',\n\turl,\n\tcreate: (replica) => createAutomergeText(replica)\n});\n```\n\nThe serialized state is a base64 string of an Automerge document — JSON-safe for\nthe sync engine's change feed. `merge` is commutative/associative/idempotent.\n\n## The contract\n\nImplements `TextCrdtAdapter<string>` from `@absolutejs/sync/crdt`: `create`,\n`merge`, `empty`, `textOf`. The `replica` argument is accepted for contract\ncompatibility; Automerge manages actor identity internally.\n\n## License\n\nApache License 2.0. See [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}