{"_id":"@baldim/plugin-eventual-consistency","name":"@baldim/plugin-eventual-consistency","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@baldim/plugin-eventual-consistency","version":"0.1.0","type":"module","description":"Eventually consistent counters, aggregations, analytics, and coordinated workers for Baldim.","license":"MIT","engines":{"node":">=24"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/forattini-dev/baldim.git","directory":"plugins/eventual-consistency"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tickets":{"types":"./dist/tickets.d.ts","import":"./dist/tickets.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"peerDependencies":{"@baldim/core":"^0.2.0"},"devDependencies":{"@types/node":"25.5.2","typescript":"6.0.2","@baldim/adapter-memory":"0.1.0","@baldim/core":"0.2.0"},"scripts":{"build":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run"},"_id":"@baldim/plugin-eventual-consistency@0.1.0","bugs":{"url":"https://github.com/forattini-dev/baldim/issues"},"homepage":"https://github.com/forattini-dev/baldim#readme","_integrity":"sha512-tdOnTBnXQKjBEvues/S3Sn4FG9gxQ5U2QIDILL8Pi1b4GQ5HVR/FvaxW05AjoSCb5trKgvlO8YmXxp8nHnQIuQ==","_resolved":"/tmp/5ca3a7b677bb65c9b045d578cb3d7346/baldim-plugin-eventual-consistency-0.1.0.tgz","_from":"file:baldim-plugin-eventual-consistency-0.1.0.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-tdOnTBnXQKjBEvues/S3Sn4FG9gxQ5U2QIDILL8Pi1b4GQ5HVR/FvaxW05AjoSCb5trKgvlO8YmXxp8nHnQIuQ==","shasum":"ba5a9d82c8096a23581a07ce767b0b864ff60ed5","tarball":"https://registry.npmjs.org/@baldim/plugin-eventual-consistency/-/plugin-eventual-consistency-0.1.0.tgz","fileCount":51,"unpackedSize":400179,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDAMeXM8Ic+1bLHP/hqrwXl+hwQ+o4WUpM4yN3/K/qUzAIgQICmQ+mwT4+XJZiQ4Ox8IsTA7wSEBiC0CHwQ/RdFHYY="}]},"_npmUser":{"name":"fforattini","email":"filipeforattini1@gmail.com"},"directories":{},"maintainers":[{"name":"fforattini","email":"filipeforattini1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-eventual-consistency_0.1.0_1788985559161_0.5094789974410068"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-09T20:25:58.952Z","0.1.0":"2026-09-09T20:25:59.300Z","modified":"2026-09-09T20:25:59.654Z"},"maintainers":[{"name":"fforattini","email":"filipeforattini1@gmail.com"}],"description":"Eventually consistent counters, aggregations, analytics, and coordinated workers for Baldim.","homepage":"https://github.com/forattini-dev/baldim#readme","repository":{"type":"git","url":"git+https://github.com/forattini-dev/baldim.git","directory":"plugins/eventual-consistency"},"bugs":{"url":"https://github.com/forattini-dev/baldim/issues"},"license":"MIT","readme":"# @baldim/plugin-eventual-consistency\n\nEventually consistent counters and aggregations for Baldim resources. The plugin\nsupports synchronous and asynchronous updates, coordinated ticket workers,\nconsolidation, recalculation, retention, and time-series analytics.\n\n```sh\npnpm add @baldim/core @baldim/plugin-eventual-consistency\n```\n\n```ts\nimport { Baldim } from '@baldim/core';\nimport { EventualConsistencyPlugin } from '@baldim/plugin-eventual-consistency';\n\nconst database = new Baldim({ connectionString: 'memory://analytics' });\nawait database.connect();\nconst posts = await database.createResource({\n  name: 'posts',\n  attributes: { views: 'number|default:0' },\n});\n\nawait database.usePlugin(new EventualConsistencyPlugin({\n  mode: 'async',\n  resources: { posts: ['views'] },\n}));\n\nawait posts.insert({ id: 'post-1', views: 0 });\nawait posts.add('post-1', 'views', 1);\n\n// Applies pending transactions for post-1 only.\nawait posts.consolidate('post-1', 'views');\n```\n\nThe plugin adds `add`, `sub`, `set`, `increment`, `decrement`, `consolidate`,\n`getConsolidatedValue`, and `recalculate` helpers to configured resources. It\nrestores any previous methods when stopped. Background consolidation and garbage\ncollection use Baldim's plugin storage and coordinator contracts, so the plugin\ndoes not depend on a specific storage adapter.\n","readmeFilename":"README.md","_rev":"1-c2e7f70576bf29d83379c8d7f1c6a992"}