{"_id":"@convex-localfirst/component","_rev":"5-98f926be5172e768add0701f386c4626","name":"@convex-localfirst/component","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@convex-localfirst/component","version":"0.1.0","keywords":["convex","convex-component","local-first","sync"],"license":"MIT","_id":"@convex-localfirst/component@0.1.0","maintainers":[{"name":"fanzzzd","email":"fanzzzd@outlook.com"}],"dist":{"shasum":"0c76b1e2da7c2cc7860512e1eedd126837402b53","tarball":"https://registry.npmjs.org/@convex-localfirst/component/-/component-0.1.0.tgz","fileCount":13,"integrity":"sha512-P+5F5LN5FlrX46VYMG3wnaloF3UH59a7tW8hb/33YnoHusu2dnHOWtivuhFwwZrqg99YpxfXjsc8Y5a6GPM/BA==","signatures":[{"sig":"MEUCICJYk19aEem3JU/9UtS5lvWkgCuPr0FlbTCDH6588cj3AiEAmkq4OMWF9dt4rmzC9WcGK6VudCUHd446BD1wKXRzP0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25848},"main":"./convex/convex.config.ts","type":"module","_from":"file:convex-localfirst-component-0.1.0.tgz","exports":{"./convex.config.js":"./convex/convex.config.ts","./_generated/api.js":"./convex/_generated/api.ts","./_generated/component.js":"./convex/_generated/component.ts"},"scripts":{"test":"echo 'component functions are validated by Convex codegen + exercised end-to-end by the example live-sync scripts; pure engine logic is covered by @convex-localfirst/server serverSync tests'","build":"echo component package is built by Convex codegen","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"fanzzzd","email":"fanzzzd@outlook.com"},"_resolved":"/private/var/folders/2b/3_lqmflj4qx3nl8cf287333r0000gn/T/0c86562885af505aa07932bdd59e6f30/convex-localfirst-component-0.1.0.tgz","_integrity":"sha512-P+5F5LN5FlrX46VYMG3wnaloF3UH59a7tW8hb/33YnoHusu2dnHOWtivuhFwwZrqg99YpxfXjsc8Y5a6GPM/BA==","_npmVersion":"11.17.0","description":"Mountable Convex component for convex-localfirst: sync ledger, append-only change log, id map, field clocks.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"convex":">=1.0.0","typescript":"^5.7.0"},"peerDependencies":{"convex":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/component_0.1.0_1782715457760_0.45770250443980354","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved into convex-localfirst (one package). Install convex-localfirst and import convex-localfirst/<subpath> instead."},"0.1.1":{"name":"@convex-localfirst/component","version":"0.1.1","keywords":["convex","convex-component","local-first","sync"],"author":{"name":"Fanzzzd"},"license":"MIT","_id":"@convex-localfirst/component@0.1.1","maintainers":[{"name":"fanzzzd","email":"fanzzzd@outlook.com"}],"homepage":"https://github.com/Fanzzzd/convex-localfirst#readme","bugs":{"url":"https://github.com/Fanzzzd/convex-localfirst/issues"},"dist":{"shasum":"086bc49ad3fe8bde1eb1a51738d64ee91c0a34ab","tarball":"https://registry.npmjs.org/@convex-localfirst/component/-/component-0.1.1.tgz","fileCount":13,"integrity":"sha512-GdOMHesD/Ga1YwmjxOVou+dqietik2Np/Jwlic8DL/2DM3KYDqxxQSkKDgQwbSaeZ9P78dkYYMwUPlLsc8f8jw==","signatures":[{"sig":"MEQCIH3nsC4iIIWTcIkav7o1qwGUHpVgscxZY73ATRIr6Kz5AiAwQJfyCXiZLjTeuHhVwgRauHehuoCAd30y4DFjuUjz/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@convex-localfirst%2fcomponent@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26208},"main":"./convex/convex.config.ts","type":"module","_from":"file:convex-localfirst-component-0.1.1.tgz","engines":{"node":">=18"},"exports":{"./convex.config.js":"./convex/convex.config.ts","./_generated/api.js":"./convex/_generated/api.ts","./_generated/component.js":"./convex/_generated/component.ts"},"scripts":{"test":"echo 'component functions are validated by Convex codegen + exercised end-to-end by the example live-sync scripts; pure engine logic is covered by @convex-localfirst/server serverSync tests'","build":"echo component package is built by Convex codegen","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"fanzzzd","email":"fanzzzd@outlook.com"},"_resolved":"/tmp/8f05fecd435e2d1cdaf03dbc7a04d12e/convex-localfirst-component-0.1.1.tgz","_integrity":"sha512-GdOMHesD/Ga1YwmjxOVou+dqietik2Np/Jwlic8DL/2DM3KYDqxxQSkKDgQwbSaeZ9P78dkYYMwUPlLsc8f8jw==","repository":{"url":"git+https://github.com/Fanzzzd/convex-localfirst.git","type":"git","directory":"packages/component"},"_npmVersion":"10.8.2","description":"Mountable Convex component for convex-localfirst: sync ledger, append-only change log, id map, field clocks.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"convex":">=1.0.0","typescript":"^5.7.0"},"peerDependencies":{"convex":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/component_0.1.1_1782748210437_0.7902333355886138","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved into convex-localfirst (one package). Install convex-localfirst and import convex-localfirst/<subpath> instead."},"0.2.0":{"name":"@convex-localfirst/component","version":"0.2.0","keywords":["convex","convex-component","local-first","sync"],"author":{"name":"Fanzzzd"},"license":"MIT","_id":"@convex-localfirst/component@0.2.0","maintainers":[{"name":"fanzzzd","email":"fanzzzd@outlook.com"}],"homepage":"https://github.com/Fanzzzd/convex-localfirst#readme","bugs":{"url":"https://github.com/Fanzzzd/convex-localfirst/issues"},"dist":{"shasum":"63285d5fef970a83d5f45838d7b0e2804c198c16","tarball":"https://registry.npmjs.org/@convex-localfirst/component/-/component-0.2.0.tgz","fileCount":13,"integrity":"sha512-OBU8fFkBO3hYu2VwJCwosTyIndJhHTtF2cgMcGTuMojRBZm31nZDvL3vnxrdH3Fyv4Sxc78dgIRLokSzTodUGQ==","signatures":[{"sig":"MEYCIQC6xM7JE/EBddi4XMR5dqI3uL+wyamVuV0repax7I7rRgIhAIb83PrI3DKSx8bzm78hRAC/t+QS1v5WIQQkN9BnIS8M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@convex-localfirst%2fcomponent@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32958},"main":"./convex/convex.config.ts","type":"module","_from":"file:convex-localfirst-component-0.2.0.tgz","engines":{"node":">=18"},"exports":{"./convex.config.js":"./convex/convex.config.ts","./_generated/api.js":"./convex/_generated/api.ts","./_generated/component.js":"./convex/_generated/component.ts"},"scripts":{"test":"echo 'component functions are validated by Convex codegen + exercised end-to-end by the example live-sync scripts; pure engine logic is covered by @convex-localfirst/server serverSync tests'","build":"echo component package is built by Convex codegen","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"fanzzzd","email":"fanzzzd@outlook.com"},"_resolved":"/tmp/a68365e0981ae368263ab6c2e2176bb0/convex-localfirst-component-0.2.0.tgz","_integrity":"sha512-OBU8fFkBO3hYu2VwJCwosTyIndJhHTtF2cgMcGTuMojRBZm31nZDvL3vnxrdH3Fyv4Sxc78dgIRLokSzTodUGQ==","repository":{"url":"git+https://github.com/Fanzzzd/convex-localfirst.git","type":"git","directory":"packages/component"},"_npmVersion":"10.8.2","description":"Mountable Convex component for convex-localfirst: sync ledger, append-only change log, id map, field clocks.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"convex":">=1.0.0","typescript":"^5.7.0"},"peerDependencies":{"convex":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/component_0.2.0_1784389734024_0.45847831049542553","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved into convex-localfirst (one package). Install convex-localfirst and import convex-localfirst/<subpath> instead."},"0.2.1":{"name":"@convex-localfirst/component","version":"0.2.1","keywords":["convex","convex-component","local-first","sync"],"author":{"name":"Fanzzzd"},"license":"MIT","_id":"@convex-localfirst/component@0.2.1","maintainers":[{"name":"fanzzzd","email":"fanzzzd@outlook.com"}],"homepage":"https://github.com/Fanzzzd/convex-localfirst#readme","bugs":{"url":"https://github.com/Fanzzzd/convex-localfirst/issues"},"dist":{"shasum":"cd622548364daffd35a62e2c1d715b86823fb1f7","tarball":"https://registry.npmjs.org/@convex-localfirst/component/-/component-0.2.1.tgz","fileCount":13,"integrity":"sha512-BT5vuy1x23O8JN141XTIxkOwWi8xmL197nH65rzqajqvwTqD/YpBIAQ0CJ3Mt6e2gzT+blVdK39EDU64xismBA==","signatures":[{"sig":"MEQCIBLmjdxMCLY3M0/9ZIQDP/GNG9thaKj03ylJ8VqVL3wDAiBpHM0E/GckYwAC91gT2G02dxYdU/gWwvxK0InYuB1C+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@convex-localfirst%2fcomponent@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32958},"main":"./convex/convex.config.ts","type":"module","_from":"file:convex-localfirst-component-0.2.1.tgz","engines":{"node":">=18"},"exports":{"./convex.config.js":"./convex/convex.config.ts","./_generated/api.js":"./convex/_generated/api.ts","./_generated/component.js":"./convex/_generated/component.ts"},"scripts":{"test":"echo 'component functions are validated by Convex codegen + exercised end-to-end by the example live-sync scripts; pure engine logic is covered by @convex-localfirst/server serverSync tests'","build":"echo component package is built by Convex codegen","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7f944098-c566-40d8-b3ef-47365a061058"}},"_resolved":"/tmp/892d26fd3e990aa65cf27f68643834ee/convex-localfirst-component-0.2.1.tgz","_integrity":"sha512-BT5vuy1x23O8JN141XTIxkOwWi8xmL197nH65rzqajqvwTqD/YpBIAQ0CJ3Mt6e2gzT+blVdK39EDU64xismBA==","repository":{"url":"git+https://github.com/Fanzzzd/convex-localfirst.git","type":"git","directory":"packages/component"},"_npmVersion":"11.16.0","description":"Mountable Convex component for convex-localfirst: sync ledger, append-only change log, id map, field clocks.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"convex":">=1.0.0","typescript":"^5.7.0"},"peerDependencies":{"convex":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/component_0.2.1_1784445127733_0.19578545282789328","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved into convex-localfirst (one package). Install convex-localfirst and import convex-localfirst/<subpath> instead."}},"time":{"created":"2026-06-29T06:44:17.644Z","modified":"2026-07-19T08:07:08.981Z","0.1.0":"2026-06-29T06:44:17.926Z","0.1.1":"2026-06-29T15:50:10.598Z","0.2.0":"2026-07-18T15:48:54.146Z","0.2.1":"2026-07-19T07:12:07.863Z"},"bugs":{"url":"https://github.com/Fanzzzd/convex-localfirst/issues"},"author":{"name":"Fanzzzd"},"license":"MIT","homepage":"https://github.com/Fanzzzd/convex-localfirst#readme","keywords":["convex","convex-component","local-first","sync"],"repository":{"url":"git+https://github.com/Fanzzzd/convex-localfirst.git","type":"git","directory":"packages/component"},"description":"Mountable Convex component for convex-localfirst: sync ledger, append-only change log, id map, field clocks.","maintainers":[{"name":"fanzzzd","email":"fanzzzd@outlook.com"}],"readme":"# @convex-localfirst/component\n\nA mountable [Convex component](https://docs.convex.dev/components) that holds all\nlocal-first sync bookkeeping — the op ledger (idempotency), the change log (GC'd\nopportunistically after the retention window), the local→server id map, and per-row\nversions — so your app schema only carries its own tables.\n\n```bash\nnpm install @convex-localfirst/component\n```\n\n```ts\n// convex/convex.config.ts\nimport { defineApp } from \"convex/server\";\nimport localfirst from \"@convex-localfirst/component/convex.config.js\";\n\nconst app = defineApp();\napp.use(localfirst);\nexport default app;\n```\n\nPeer dependency: `convex`. MIT\n","readmeFilename":"README.md"}