{"_id":"@chainvue/v402-storage","_rev":"3-61ef8802ac072f399746366d8a43b4bd","name":"@chainvue/v402-storage","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@chainvue/v402-storage","version":"0.1.0","author":{"url":"chainvue","name":"Robert Lech"},"license":"Apache-2.0","_id":"@chainvue/v402-storage@0.1.0","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/storage#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"0ffa711ea59088c5590b0f1ddc204b0e3ad5622f","tarball":"https://registry.npmjs.org/@chainvue/v402-storage/-/v402-storage-0.1.0.tgz","fileCount":19,"integrity":"sha512-jCu/iCnlsKyhyDyJV/JBoPTWo1vvcQR7Th8TKEi2KkzDv4BYQJw/KzuY9d50X/CvHK1YOp8c09pitm+HYwdojg==","signatures":[{"sig":"MEUCIGyaIUFUNgHoRXkP0oqNCd1UXViVPDwyH3wFyFp1Ekz5AiEAsBECqhMGl5NuYmV3FMcY0c7eJ66AK8c5X+Kp/8NNbBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67889},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-storage-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"devdudeio","email":"fLoAtivErImE@proton.me"},"_resolved":"/private/var/folders/lc/_1dmy3kd06b9ryyyvv7pk9vw0000gn/T/2459a9017d1016338db448e3d4633fec/chainvue-v402-storage-0.1.0.tgz","_integrity":"sha512-jCu/iCnlsKyhyDyJV/JBoPTWo1vvcQR7Th8TKEi2KkzDv4BYQJw/KzuY9d50X/CvHK1YOp8c09pitm+HYwdojg==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/storage"},"_npmVersion":"11.11.0","description":"Storage interface for the v402 facilitator (identities, deposits, spent requests, append-only ledger, blocklist, watcher cursor, reconciliation) plus an in-memory reference implementation for tests.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/v402-storage_0.1.0_1783727463233_0.09115258085829558","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@chainvue/v402-storage","version":"0.2.0","author":{"url":"chainvue","name":"Robert Lech"},"license":"Apache-2.0","_id":"@chainvue/v402-storage@0.2.0","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/storage#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"8093b1e2fac919a0205217588c4957e26516644e","tarball":"https://registry.npmjs.org/@chainvue/v402-storage/-/v402-storage-0.2.0.tgz","fileCount":19,"integrity":"sha512-t4kJkTF5dpea5thAumKxy9gompM5LDz5EK3pzVdkq7HlbMvzgGYCmhja5hywarerh53Xn04j0d/gfxF76S6ekw==","signatures":[{"sig":"MEUCIQCLTRjJ0udGEB71u32xq6CYun1PCDQba+gMsSPtd20DCQIgRnX+zWzMocrsEZ6R6V/Kn/Dja0LETPWbIdM/kNBAsDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-storage@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69089},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-storage-0.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c46b9e68-b8c8-4b71-b458-0b30bc43b1a1"}},"_resolved":"/tmp/f94dd44cc67089cc99a2d67c431d707b/chainvue-v402-storage-0.2.0.tgz","_integrity":"sha512-t4kJkTF5dpea5thAumKxy9gompM5LDz5EK3pzVdkq7HlbMvzgGYCmhja5hywarerh53Xn04j0d/gfxF76S6ekw==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/storage"},"_npmVersion":"11.17.0","description":"Storage interface for the v402 facilitator (identities, deposits, spent requests, append-only ledger, blocklist, watcher cursor, reconciliation) plus an in-memory reference implementation for tests.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/v402-storage_0.2.0_1783985687053_0.16179083714736708","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@chainvue/v402-storage","version":"0.3.0","description":"Storage interface for the v402 facilitator (identities, deposits, spent requests, append-only ledger, blocklist, watcher cursor, reconciliation) plus an in-memory reference implementation for tests.","repository":{"type":"git","url":"git+https://github.com/chainvue/v402.git","directory":"packages/storage"},"homepage":"https://github.com/chainvue/v402/tree/main/packages/storage#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"license":"Apache-2.0","author":{"name":"Robert Lech"},"type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json","test":"vitest run"},"_id":"@chainvue/v402-storage@0.3.0","_integrity":"sha512-/5wLGALqj/twW9SFJl/AZ8MelQM9u5kxAzhpi8kQQoLkFYvhjKXebMflK8blJuF6QNfho1IMlP63hfIWLtOlOA==","_resolved":"/tmp/08c48bf275d02c5db6093e91b253d857/chainvue-v402-storage-0.3.0.tgz","_from":"file:chainvue-v402-storage-0.3.0.tgz","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-/5wLGALqj/twW9SFJl/AZ8MelQM9u5kxAzhpi8kQQoLkFYvhjKXebMflK8blJuF6QNfho1IMlP63hfIWLtOlOA==","shasum":"edfaccf87d39375793fc3f254da8e4eb0d6ff758","tarball":"https://registry.npmjs.org/@chainvue/v402-storage/-/v402-storage-0.3.0.tgz","fileCount":19,"unpackedSize":75913,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-storage@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGv6Vi+LLgNtVnLrRaOPWxeLu4b5agRqce4pOUyJ7uCeAiA3nFz2RZa+GsS7bbYnsq24Gbz7oMoLtaBn1xgk4H2AAA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c46b9e68-b8c8-4b71-b458-0b30bc43b1a1"}},"directories":{},"maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/v402-storage_0.3.0_1784047010225_0.2609558147209621"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-10T23:51:03.094Z","modified":"2026-07-14T16:36:50.700Z","0.1.0":"2026-07-10T23:51:03.362Z","0.2.0":"2026-07-13T23:34:47.199Z","0.3.0":"2026-07-14T16:36:50.382Z"},"bugs":{"url":"https://github.com/chainvue/v402/issues"},"author":{"name":"Robert Lech"},"license":"Apache-2.0","homepage":"https://github.com/chainvue/v402/tree/main/packages/storage#readme","repository":{"type":"git","url":"git+https://github.com/chainvue/v402.git","directory":"packages/storage"},"description":"Storage interface for the v402 facilitator (identities, deposits, spent requests, append-only ledger, blocklist, watcher cursor, reconciliation) plus an in-memory reference implementation for tests.","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"readme":"# @chainvue/v402-storage\n\nStorage interface (`IStorage`) for the [v402](https://github.com/chainvue/v402)\nfacilitator: identities, deposits, spent requests (replay protection +\ntwo-phase debit), append-only ledger, blocklist, watcher cursor, and\nreconciliation queries. Ships `InMemoryStorage`, the reference implementation\nused by tests and simulated-mode deployments, plus a reusable contract test\nsuite that any implementation must pass.\n\nThe production SQLite implementation lives in\n[`@chainvue/v402-storage-sqlite`](https://www.npmjs.com/package/@chainvue/v402-storage-sqlite).\n\n```sh\nnpm install @chainvue/v402-storage\n```\n\nSemantics are documented on the interface itself; the load-bearing ones:\nreserve/commit/rollback are strictly conditional and idempotent (safe under\noverlapping cron runs), `insufficient` / `unknown-identity` outcomes burn the\n`requestId`, and all amounts are exact `bigint` sats.\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}