{"_id":"@ontrails/store","_rev":"30-f421ac789ce323535f611ca045968790","name":"@ontrails/store","dist-tags":{"latest":"0.2.3"},"versions":{"1.0.0-beta.14":{"name":"@ontrails/store","version":"1.0.0-beta.14","_id":"@ontrails/store@1.0.0-beta.14","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"72a041a1caa8c193abb4ca1aa1ad1865c34faaa2","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.14.tgz","fileCount":46,"integrity":"sha512-0doQRHG6mPpcU3ijc5eZ3PF7dLa0NzrlMZJKsL0YVXpCpdDoUYQUVsxtcaYUKnVwLvo3aOHc2IEl8O7JHexiXw==","signatures":[{"sig":"MEUCIDM1JQsCRvEzW9aD1cPUedqAAc1o0T5Eex6T83fEly2iAiEApv5EwIBUWv0kfcs0jFGcHH5q6r+wRWFrA8j4CWpvdn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201667},"type":"module","shasum":"72a041a1caa8c193abb4ca1aa1ad1865c34faaa2","exports":{".":"./src/index.ts","./drizzle":"./src/drizzle/index.ts","./package.json":"./package.json"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-0doQRHG6mPpcU3ijc5eZ3PF7dLa0NzrlMZJKsL0YVXpCpdDoUYQUVsxtcaYUKnVwLvo3aOHc2IEl8O7JHexiXw==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.13"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^4.3.5","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.14_1775385718859_0.015017395696577784","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.15":{"name":"@ontrails/store","version":"1.0.0-beta.15","_id":"@ontrails/store@1.0.0-beta.15","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"9f7a5d61ebc6201e2b44a7c83cad38761174096e","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.15.tgz","fileCount":79,"integrity":"sha512-aYsp5lnVbwHICIt8ROniom41Fl4EtM9gU4U+KPsd47iN4uuJpwtKASnCULdjNEnJ1buq91PMwgizET1egGcI7w==","signatures":[{"sig":"MEYCIQCDvmbXG9XV7BpkIruCSQVNkUJj+oeq0zMMHWPe8v90CwIhAIyCTKWTmV2zLJJREgP7qjCvDG9EMUOqYby4iGMkfya+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335068},"type":"module","shasum":"9f7a5d61ebc6201e2b44a7c83cad38761174096e","exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./internal/signal-identity":"./src/internal/signal-identity.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-aYsp5lnVbwHICIt8ROniom41Fl4EtM9gU4U+KPsd47iN4uuJpwtKASnCULdjNEnJ1buq91PMwgizET1egGcI7w==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.14"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.15_1777054154296_0.1903763562186196","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.16":{"name":"@ontrails/store","version":"1.0.0-beta.16","_id":"@ontrails/store@1.0.0-beta.16","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"ca1a77675f23884fddef9061f38d669dfa0260b9","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.16.tgz","fileCount":17,"integrity":"sha512-WEExWrXFUy7mojAiotak3pR25qV7qoNRd4R1covMeTpSMfeyk+YDpMPt1pfNzsZtFYffY5Dme5oEvKblTYdI5w==","signatures":[{"sig":"MEUCIFUjzMMMzngb5/YQF2MZak20QltWNjxrCvEHdmqizXodAiEAnkYz31twk0KDHEwu+9gzXVcbk+g0O8rdBOc0LsgNvz8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116851},"type":"module","shasum":"ca1a77675f23884fddef9061f38d669dfa0260b9","exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-WEExWrXFUy7mojAiotak3pR25qV7qoNRd4R1covMeTpSMfeyk+YDpMPt1pfNzsZtFYffY5Dme5oEvKblTYdI5w==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.15"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.16_1778682403325_0.12119066543576684","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.17":{"name":"@ontrails/store","version":"1.0.0-beta.17","_id":"@ontrails/store@1.0.0-beta.17","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"d618b669a58fd44128bfcabb9fcb8e14d622271a","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.17.tgz","fileCount":17,"integrity":"sha512-Z22KANfkhSTp8s/L3lGoORu2YRj8Dm0QC0HIO6R0uvUzcaWDkO1tafPNtN85MSvk6s6JU0Ued1CYL4IlivtEzg==","signatures":[{"sig":"MEUCIQDpKnuLT7+F2Y07vNUSu/n6UQ11DS3gddDo7IG0he6M6AIgBrraF77wfqUJFqYyzEQJoygQcItZSKXk141hEfqAyxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116955},"type":"module","shasum":"d618b669a58fd44128bfcabb9fcb8e14d622271a","exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-Z22KANfkhSTp8s/L3lGoORu2YRj8Dm0QC0HIO6R0uvUzcaWDkO1tafPNtN85MSvk6s6JU0Ued1CYL4IlivtEzg==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.16"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.17_1778760563884_0.5790261917515913","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.18":{"name":"@ontrails/store","version":"1.0.0-beta.18","_id":"@ontrails/store@1.0.0-beta.18","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"ed14803e5a8c151e35d8b29c063b9c0c98892146","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.18.tgz","fileCount":17,"integrity":"sha512-eDee2i6u9ElUjdhR612GxzfaqreLSG2DyaRSk38nDNK+6W1puITDfn/K7g60xYpQZfvJENw5NVBM3WikFvplng==","signatures":[{"sig":"MEQCIFGM/wDYdKPcXwwGmRA9NuPBTTn4XfEKPW/lP4sNpGKiAiASAAZsCBDqE4BM5v9tVADaBVK7IKpyha2/Dyh9otemog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117024},"type":"module","shasum":"ed14803e5a8c151e35d8b29c063b9c0c98892146","exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-eDee2i6u9ElUjdhR612GxzfaqreLSG2DyaRSk38nDNK+6W1puITDfn/K7g60xYpQZfvJENw5NVBM3WikFvplng==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.17"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.18_1779127339816_0.8458643086775328","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.19":{"name":"@ontrails/store","version":"1.0.0-beta.19","_id":"@ontrails/store@1.0.0-beta.19","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"34534d807755b2c87dc530eea2e8d9f5b826a412","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.19.tgz","fileCount":17,"integrity":"sha512-7jrgFRetw1U82j3Uxiv5r6JXiuUojpkAcfkBN5/x+8NDJhIw5A9ewwnRbgk1PbBw1B22Me5LngtH64D9tI/xPA==","signatures":[{"sig":"MEUCIQCSK9vFscIkOc5J5e+v3KVqR7qU50lqCbvjie1liRIziwIgDfuto7VH2BQFjabu3pgH7tEmck7WW0qrN00Zi3AcoX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118372},"type":"module","shasum":"34534d807755b2c87dc530eea2e8d9f5b826a412","trails":{"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-7jrgFRetw1U82j3Uxiv5r6JXiuUojpkAcfkBN5/x+8NDJhIw5A9ewwnRbgk1PbBw1B22Me5LngtH64D9tI/xPA==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.19"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.19_1780495935359_0.6404922198745173","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.21":{"name":"@ontrails/store","version":"1.0.0-beta.21","_id":"@ontrails/store@1.0.0-beta.21","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"f0854e74c189f9b8d9925c3393aea39528b21284","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.21.tgz","fileCount":17,"integrity":"sha512-/6dJ6LnnF4aY6sCWpTTDhAcxuA53pcDxGB7eHcyRsWkm+B8y0bl0l2xO8veyoi00F/LfTU+4Pn1S907bA3TXvA==","signatures":[{"sig":"MEYCIQCOMAgcrGZGSqXqwY+CEjttp0tsJZ5xhWkrE7t04UzqMAIhALE+uhsREvwOZpBMfw8b+qpJdgCyuv2yH54lj8kkQFW9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118614},"type":"module","shasum":"f0854e74c189f9b8d9925c3393aea39528b21284","trails":{"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-/6dJ6LnnF4aY6sCWpTTDhAcxuA53pcDxGB7eHcyRsWkm+B8y0bl0l2xO8veyoi00F/LfTU+4Pn1S907bA3TXvA==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.21"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.21_1781199612119_0.4204142443751915","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.22":{"name":"@ontrails/store","version":"1.0.0-beta.22","_id":"@ontrails/store@1.0.0-beta.22","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"a8563bc888d4914022a1de9ce8f4f48ed5f3d59f","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.22.tgz","fileCount":17,"integrity":"sha512-KsOd04WABk7uQYH7Qc28GMn6NsDxhaN4f/masG7rzVBwBdbTqThqzgB54JTDV0t52g1bietdzORQ9fu/Krfzcw==","signatures":[{"sig":"MEQCICK+Wm3guptGPWdxg+OV5rMLrBXBlX+G5ygxkeelS23cAiBBeq+09X8B+LSj1CehCmVYemknCOUKjsrtCW3o0LLNZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118683},"type":"module","shasum":"a8563bc888d4914022a1de9ce8f4f48ed5f3d59f","trails":{"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-KsOd04WABk7uQYH7Qc28GMn6NsDxhaN4f/masG7rzVBwBdbTqThqzgB54JTDV0t52g1bietdzORQ9fu/Krfzcw==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.22"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.22_1781202351114_0.3348482303126086","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.23":{"name":"@ontrails/store","version":"1.0.0-beta.23","_id":"@ontrails/store@1.0.0-beta.23","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"121354c4f46aa9ada4cee0daeeb8e84e4748aabe","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.23.tgz","fileCount":17,"integrity":"sha512-vOlJ+4saLiugDK+HKGm85O2ulrnboDh1jdbJMO9U85CCfXsAHKrxV8s65KdCvJuzmJKx0wr2jdz5Xz00+XT0lQ==","signatures":[{"sig":"MEUCIHly9hkCgITrBG5Z8V87Xit5xr/y6fpofzdzf8F+iiOVAiEA4cQMj4tdfwvRVKc8KqrvK+sX1JWJZ//Katt3S4PDMsI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118752},"type":"module","shasum":"121354c4f46aa9ada4cee0daeeb8e84e4748aabe","trails":{"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-vOlJ+4saLiugDK+HKGm85O2ulrnboDh1jdbJMO9U85CCfXsAHKrxV8s65KdCvJuzmJKx0wr2jdz5Xz00+XT0lQ==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.23"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.23_1781266861719_0.8694153259611515","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.24":{"name":"@ontrails/store","version":"1.0.0-beta.24","_id":"@ontrails/store@1.0.0-beta.24","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"da7dab6193519ceed57e0f8f457fc662019aa967","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.24.tgz","fileCount":17,"integrity":"sha512-Ia2iehMLkZYIoKXMoTba25YdQoGKh9ch0BzwAGJCc4jYE7Z7UvSNS6cEWiazuYin7vdQu+QjRnAk/xJ6K8g5Fw==","signatures":[{"sig":"MEUCIHzwg+f27oectp7uC8gGHHmmyblfWqYGLVIjyLoZsY4bAiEA3mS6hgEcaxg9UrHeZZ9QzeXtf0Gah5F8/zIuj/A12wQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118821},"type":"module","shasum":"da7dab6193519ceed57e0f8f457fc662019aa967","trails":{"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-Ia2iehMLkZYIoKXMoTba25YdQoGKh9ch0BzwAGJCc4jYE7Z7UvSNS6cEWiazuYin7vdQu+QjRnAk/xJ6K8g5Fw==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.24"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.24_1781269860171_0.9979779659815637","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.29":{"name":"@ontrails/store","version":"1.0.0-beta.29","_id":"@ontrails/store@1.0.0-beta.29","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"1425919ae45a556f02f428e4a13a89f1fa8daed4","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.29.tgz","fileCount":17,"integrity":"sha512-omXGztDH+uQeBPXSy3aQSjBMpjgZ86FZQuHf+7T8wPWs5raL/ILN/xNKoWiKJOabgvKlQkHFceQeR1HACmLwHA==","signatures":[{"sig":"MEUCIQClMeJWh6tFgHz9S8Nxt5E4NlBGGhe9IB0za4azzW6w1QIgI89N/t37vQYiBViW7aiffqMB0iH3Gp+ZJobB2w6SL/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119368},"type":"module","shasum":"1425919ae45a556f02f428e4a13a89f1fa8daed4","trails":{"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-omXGztDH+uQeBPXSy3aQSjBMpjgZ86FZQuHf+7T8wPWs5raL/ILN/xNKoWiKJOabgvKlQkHFceQeR1HACmLwHA==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.29"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.29_1782404742313_0.8344396420435716","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.30":{"name":"@ontrails/store","version":"1.0.0-beta.30","_id":"@ontrails/store@1.0.0-beta.30","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"737818036406aa13ea141e72fe9e94929d00b439","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.30.tgz","fileCount":17,"integrity":"sha512-0mA4kqgN5wD7Ca8uL9dNYoUgV880VCA16+Rn1MU6D2GzL9noPaDcBBOurm6FGsrrhtKV1qW2NHC+QF6olwYjmQ==","signatures":[{"sig":"MEQCIFXMBTqbdsRmbV62IqznXXA1Tr3uABRwLw6BuAuKjKPFAiALhQdR5VLL6YsUi7mHLbCNJeCZqjWZFsS2b0JhP2fKZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119437},"type":"module","shasum":"737818036406aa13ea141e72fe9e94929d00b439","trails":{"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-0mA4kqgN5wD7Ca8uL9dNYoUgV880VCA16+Rn1MU6D2GzL9noPaDcBBOurm6FGsrrhtKV1qW2NHC+QF6olwYjmQ==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.30"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.30_1782407825986_0.6736128121521232","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.32":{"name":"@ontrails/store","version":"1.0.0-beta.32","_id":"@ontrails/store@1.0.0-beta.32","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"6a74ddb96c32832af21bd89e938532f2431bf830","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.32.tgz","fileCount":17,"integrity":"sha512-WtiZZ+g/QWiB+z2tWVkYJo7pjWyUlWJmQTFrPvd09zkcIqu5+q+zAll5GHu/CFcrOC2GoMryuaSFaSESUisNmw==","signatures":[{"sig":"MEYCIQCjbWeRXOEJlTx3Vr89udmAciSIACAQXBVMG2TUIW+i0gIhAL7/qHwYA4O7ImQHS2/gEBNQs6j+juNLF6wS4egi+sPI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119810},"type":"module","shasum":"6a74ddb96c32832af21bd89e938532f2431bf830","trails":{"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-WtiZZ+g/QWiB+z2tWVkYJo7pjWyUlWJmQTFrPvd09zkcIqu5+q+zAll5GHu/CFcrOC2GoMryuaSFaSESUisNmw==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.32"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.32_1782840643694_0.029811200799854554","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.39":{"name":"@ontrails/store","version":"1.0.0-beta.39","_id":"@ontrails/store@1.0.0-beta.39","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"f8340d45b0927937744c790ddad9d83fce4b020b","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.39.tgz","fileCount":17,"integrity":"sha512-/e2mxiiuHkmjyl4S1C7umzbx18VRtI0sDwA1MDLVkZzUEbXwLMYfp/gSAMMshzjKSPIY3HdIzwH/kdohTE3Ulw==","signatures":[{"sig":"MEYCIQCBb4tfv1hkAhLpLcnuAb7mlCzFT+UO59B6VAoUtjYaHQIhAP9kVC6hHvJ6QN128V+/fvVnl+Q6++wqW2GJbVFvVRRd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124801},"type":"module","shasum":"f8340d45b0927937744c790ddad9d83fce4b020b","trails":{"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-/e2mxiiuHkmjyl4S1C7umzbx18VRtI0sDwA1MDLVkZzUEbXwLMYfp/gSAMMshzjKSPIY3HdIzwH/kdohTE3Ulw==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.39"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.39_1783432281016_0.12361247111827933","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.41":{"name":"@ontrails/store","version":"1.0.0-beta.41","_id":"@ontrails/store@1.0.0-beta.41","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"bc69daf5a065f2a361920b1ccab0f96b751391e1","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.41.tgz","fileCount":17,"integrity":"sha512-CHoE/kgSnrYUDcBTJIk9hffuU1+/vib+iw5BNB5KnCj7QbZZZT1YbXoxzfqErS9huOHSkiSz9XsMAItUhPJq3A==","signatures":[{"sig":"MEUCIQCy+NZbq7fznHhJk3oBdErblK9ISn364Nape1l+kfgz7QIgLfBK7O3TUIxsE6MsK6g9j5mt/WRUdNR7XTiyfBUmH5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128922},"type":"module","shasum":"bc69daf5a065f2a361920b1ccab0f96b751391e1","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-CHoE/kgSnrYUDcBTJIk9hffuU1+/vib+iw5BNB5KnCj7QbZZZT1YbXoxzfqErS9huOHSkiSz9XsMAItUhPJq3A==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.41"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.41_1783856394556_0.43298239248582315","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.42":{"name":"@ontrails/store","version":"1.0.0-beta.42","_id":"@ontrails/store@1.0.0-beta.42","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"26ccaea0d0d2d11aec37a6e2f42a21e51b023a51","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.42.tgz","fileCount":17,"integrity":"sha512-pb23wYI2k4I6+JfpNO6X0ZfjjCbAhpd6gTWWhre2dgRv+WHnCZuHuSqdHuitKqUKw7hDrFnRHF0peyn+Kc82pg==","signatures":[{"sig":"MEYCIQDZjYUt7bMicFBWY1E1Fg3QicUP4D+kUlxnA1jvwyWy4gIhAKMKeEg3tl6+XTObuFzJmCO/wcLjyX5OBBs/xsQJW+43","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128940},"type":"module","shasum":"26ccaea0d0d2d11aec37a6e2f42a21e51b023a51","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-pb23wYI2k4I6+JfpNO6X0ZfjjCbAhpd6gTWWhre2dgRv+WHnCZuHuSqdHuitKqUKw7hDrFnRHF0peyn+Kc82pg==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.42"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.42_1783976102215_0.7931212583754494","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.43":{"name":"@ontrails/store","version":"1.0.0-beta.43","_id":"@ontrails/store@1.0.0-beta.43","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"dist":{"shasum":"cddfe20e537c929aac9c284dfbd2df2cf18f0ead","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.43.tgz","fileCount":17,"integrity":"sha512-24YUvf0EfhnrO5MBS3AHOYd3OorYYIXmgYiDZe6vyE3OEMIiYYx03quV+2j/6qw+94FjLTp/LXEZsmwYOCF2xQ==","signatures":[{"sig":"MEUCIG2CEhNdOo4E8ZyCJ6Ta63624jH8hH1dkVJUMYCmeFwWAiEApVbKOYEoRjnPDanNAjNyvAZAxlc5GFcQy2TllvBeO10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129442},"type":"module","shasum":"cddfe20e537c929aac9c284dfbd2df2cf18f0ead","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_integrity":"sha512-24YUvf0EfhnrO5MBS3AHOYd3OorYYIXmgYiDZe6vyE3OEMIiYYx03quV+2j/6qw+94FjLTp/LXEZsmwYOCF2xQ==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@ontrails/core":"^1.0.0-beta.43"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.43_1784121137752_0.5379908672779239","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.45":{"name":"@ontrails/store","version":"1.0.0-beta.45","_id":"@ontrails/store@1.0.0-beta.45","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"f20d5c7494736f1c13347c0d8b841ca5495b4a29","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.45.tgz","fileCount":17,"integrity":"sha512-ognDDSMSDzbvWI8aOgmUx/qxvQV1Iq/B8iTC4lR/VrpO4Cz5RAyRiB8y0iIU/zHoeyrycK6xaJMZ/m07A/ayjg==","signatures":[{"sig":"MEYCIQCW/xs66zCO8mbLkcH2kunlSACzderUIjaHOwONkEHpFgIhAL2cOuICeEZyfDBX4FRsJjMqZx7WMD9UVZTDeBbTzsEB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ontrails%2fstore@1.0.0-beta.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129980},"type":"module","_from":"file:/tmp/trails-publish-5cONIE/ontrails-store-1.0.0-beta.45.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d9448e8-4278-4c55-afbf-bfd1144aea47"}},"_resolved":"/tmp/trails-publish-5cONIE/ontrails-store-1.0.0-beta.45.tgz","_integrity":"sha512-ognDDSMSDzbvWI8aOgmUx/qxvQV1Iq/B8iTC4lR/VrpO4Cz5RAyRiB8y0iIU/zHoeyrycK6xaJMZ/m07A/ayjg==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.18.0","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@ontrails/core":"^1.0.0-beta.45"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.45_1784207501494_0.6683612890759099","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.46":{"name":"@ontrails/store","version":"1.0.0-beta.46","_id":"@ontrails/store@1.0.0-beta.46","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"c48a199afa46e1bb07344fe486889a40013c01fe","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.46.tgz","fileCount":17,"integrity":"sha512-S3zsM/et7S9AJ1w3FTf8bfYkHF71oO9Kdm1NRU8tw92+M5/Gk64uWT63oVcr/sjHmLu05fEj2FlTArihCpU8ww==","signatures":[{"sig":"MEYCIQCtDySjUYZf2eNHVFqfiNWIi5Z7wTyqEpiSQxyozy5iCQIhAMSDn4lp1sP3cBtI2lHqVqrbCtp4+3WQR7abKYPKA3tc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ontrails%2fstore@1.0.0-beta.46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129998},"type":"module","_from":"file:/tmp/trails-publish-PuJ7KB/ontrails-store-1.0.0-beta.46.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d9448e8-4278-4c55-afbf-bfd1144aea47"}},"_resolved":"/tmp/trails-publish-PuJ7KB/ontrails-store-1.0.0-beta.46.tgz","_integrity":"sha512-S3zsM/et7S9AJ1w3FTf8bfYkHF71oO9Kdm1NRU8tw92+M5/Gk64uWT63oVcr/sjHmLu05fEj2FlTArihCpU8ww==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.18.0","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@ontrails/core":"^1.0.0-beta.46"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.46_1784380863462_0.5160724865176853","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.47":{"name":"@ontrails/store","version":"1.0.0-beta.47","_id":"@ontrails/store@1.0.0-beta.47","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"1e1d2a9e78fd67f9a835b9d1279f0c82b9c80fb2","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.47.tgz","fileCount":17,"integrity":"sha512-r2SAqW45sU7EsLjn+y+r3tDNt3vzCmtnJyntfDb+BveSRnNFxnFyI9eF3BAc5+X70+NwzQgcu2OJ/86Is72pWQ==","signatures":[{"sig":"MEYCIQDqdSF53a9okYsl1WnD58CP2YYICMLUJRDjziYEA0VShAIhAJkQ0AOk4nPfv6d3rHKNZrB30pr8Cn2x/BXewi32bA8L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130016},"type":"module","_from":"file:/var/folders/b3/yvjlcyr172z__9w1kvv4dl3c0000gn/T/trails-publish-eOS7ao/ontrails-store-1.0.0-beta.47.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"galligan","email":"matt.galligan@gmail.com"},"_resolved":"/var/folders/b3/yvjlcyr172z__9w1kvv4dl3c0000gn/T/trails-publish-eOS7ao/ontrails-store-1.0.0-beta.47.tgz","_integrity":"sha512-r2SAqW45sU7EsLjn+y+r3tDNt3vzCmtnJyntfDb+BveSRnNFxnFyI9eF3BAc5+X70+NwzQgcu2OJ/86Is72pWQ==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.12.1","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"@ontrails/core":"^1.0.0-beta.47"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.47_1786043785420_0.19505288617579764","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.48":{"name":"@ontrails/store","version":"1.0.0-beta.48","_id":"@ontrails/store@1.0.0-beta.48","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"36a8c36b7ed7758fe789098a9d75c997d846ff47","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.48.tgz","fileCount":17,"integrity":"sha512-m/1UwdxED/IKYiv2v0ZiowI+lwWInxOPJGPnarX2UaSTG5dNWFM5BElQpobeMgThA3oXy6sJtZ4iiO6Q0mqCqA==","signatures":[{"sig":"MEQCIHZbcRNcgR50+9wDZtB3gFFGbvvhrOEx+HRWu2yedZ0AAiBEXSbxoYqoXuOltufdbcydsGnRgbmGTDUteYn1Q/mgAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ontrails%2fstore@1.0.0-beta.48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130034},"type":"module","_from":"file:/tmp/trails-publish-DJBkms/ontrails-store-1.0.0-beta.48.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d9448e8-4278-4c55-afbf-bfd1144aea47"}},"_resolved":"/tmp/trails-publish-DJBkms/ontrails-store-1.0.0-beta.48.tgz","_integrity":"sha512-m/1UwdxED/IKYiv2v0ZiowI+lwWInxOPJGPnarX2UaSTG5dNWFM5BElQpobeMgThA3oXy6sJtZ4iiO6Q0mqCqA==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.18.0","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@ontrails/core":"^1.0.0-beta.48"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.48_1786476652019_0.39192205098343114","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.49":{"name":"@ontrails/store","version":"1.0.0-beta.49","_id":"@ontrails/store@1.0.0-beta.49","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"76f90a767db9f84776a5cda75c1dbd944e7788ad","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.49.tgz","fileCount":17,"integrity":"sha512-Jm7fiNNdq/ThQpU0BHucGKbUToX2xqManEekU1R0qAM+VzhJg+fc8RXCO7IZ5kiJmhTwndmKj3IycuvfZDQ/Pw==","signatures":[{"sig":"MEUCIGUNkGWLLN0b6eZU/vj1a4J6GkXxJ1w8RqSk98WvdOFJAiEAt1yLFA045o6HbvDZhEQhjwzr0UNmjmtZVfwcg9O79b0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ontrails%2fstore@1.0.0-beta.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130052},"type":"module","_from":"file:/tmp/trails-publish-40FZmn/ontrails-store-1.0.0-beta.49.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d9448e8-4278-4c55-afbf-bfd1144aea47"}},"_resolved":"/tmp/trails-publish-40FZmn/ontrails-store-1.0.0-beta.49.tgz","_integrity":"sha512-Jm7fiNNdq/ThQpU0BHucGKbUToX2xqManEekU1R0qAM+VzhJg+fc8RXCO7IZ5kiJmhTwndmKj3IycuvfZDQ/Pw==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.18.0","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@ontrails/core":"^1.0.0-beta.49"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.49_1787263076847_0.9124578024503136","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.50":{"name":"@ontrails/store","version":"1.0.0-beta.50","_id":"@ontrails/store@1.0.0-beta.50","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"2d634c686f7d7066f4e1f6731058cc80526895b0","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-1.0.0-beta.50.tgz","fileCount":17,"integrity":"sha512-BthzEr38mObz+hWKaBBh87SR3dSHzuEvagku4DpkIEcgxtsNjMB3BhAFRaB3vGhWaAjRwFcxLn02n9y8ojZ/nQ==","signatures":[{"sig":"MEUCIQCQkbKMRkeq8vp2fczChM6e0gHKBOaq0qfyp0UnEMiY0wIgZXpzDMyyU0dQ8TSup1cDVzv58hG6dtcaen0QFxoQU28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ontrails%2fstore@1.0.0-beta.50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130070},"type":"module","_from":"file:/tmp/trails-publish-pOjjU4/ontrails-store-1.0.0-beta.50.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d9448e8-4278-4c55-afbf-bfd1144aea47"}},"_resolved":"/tmp/trails-publish-pOjjU4/ontrails-store-1.0.0-beta.50.tgz","_integrity":"sha512-BthzEr38mObz+hWKaBBh87SR3dSHzuEvagku4DpkIEcgxtsNjMB3BhAFRaB3vGhWaAjRwFcxLn02n9y8ojZ/nQ==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.18.0","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@ontrails/core":"^1.0.0-beta.50"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_1.0.0-beta.50_1787266752790_0.9439109307882996","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ontrails/store","version":"0.2.0","_id":"@ontrails/store@0.2.0","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"523451bc62cd2a0496cd92d0cc74859c1e5d3e13","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-0.2.0.tgz","fileCount":17,"integrity":"sha512-GqaGuB+gmfjpxiHQ7nTjBcf9YaoHFkiRFn45rQkPa0Pq6zUbmclnQ+WlOiNNOIjmc5wJFA3/lgbhm78oLGDAxA==","signatures":[{"sig":"MEUCIGDxWHzuJ+TBv/nrbeM7TcPpMBlNLirUY2pY9Q7qW1fSAiEAj4y4Lo8308J6Z3wnlpj/GnzQPzAX2I31tr/B5vn3fDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ontrails%2fstore@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":138300},"type":"module","_from":"file:/tmp/trails-publish-3SAK56/ontrails-store-0.2.0.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d9448e8-4278-4c55-afbf-bfd1144aea47"}},"_resolved":"/tmp/trails-publish-3SAK56/ontrails-store-0.2.0.tgz","_integrity":"sha512-GqaGuB+gmfjpxiHQ7nTjBcf9YaoHFkiRFn45rQkPa0Pq6zUbmclnQ+WlOiNNOIjmc5wJFA3/lgbhm78oLGDAxA==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.18.0","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@ontrails/core":"^0.2.0"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_0.2.0_1789154675474_0.039341326329397575","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@ontrails/store","version":"0.2.1","_id":"@ontrails/store@0.2.1","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"494b030f8c10cc9a575b9a43a4a3bd7739b2c3af","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-0.2.1.tgz","fileCount":17,"integrity":"sha512-5FI8kpdkLckGbjXx5Rh1+IqyLmwdDWGr6aJ2ckKyfU7FRpXWI80fo7X4SvBA1AOSoTbF9ZPF09OrzQWP3o1gLg==","signatures":[{"sig":"MEUCIQCGrYoVmUAMnIYIztcRgtUgF7yET+fa6Ht+ZjRM6/NhAgIgbTrW5T9jL8MD8HkcAySwQzExt6nqZ6h6prd8y6vPqSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ontrails%2fstore@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":138846},"type":"module","_from":"file:/tmp/trails-publish-q4UUnq/ontrails-store-0.2.1.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d9448e8-4278-4c55-afbf-bfd1144aea47"}},"_resolved":"/tmp/trails-publish-q4UUnq/ontrails-store-0.2.1.tgz","_integrity":"sha512-5FI8kpdkLckGbjXx5Rh1+IqyLmwdDWGr6aJ2ckKyfU7FRpXWI80fo7X4SvBA1AOSoTbF9ZPF09OrzQWP3o1gLg==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.18.0","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@ontrails/core":"^0.2.1"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_0.2.1_1789172073653_0.9178547006067539","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@ontrails/store","version":"0.2.2","_id":"@ontrails/store@0.2.2","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"ec9c795805f2b79d1c28e4b54ac8ff6846e882f8","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-0.2.2.tgz","fileCount":17,"integrity":"sha512-8RJr24fUKRJMTr2eNVqkuSlNVBEnH2ScbOlsRzAMbiqLjhg6bjMv1ViU44wRqY7ojiF1pU5XPkjPIwLijeOKMg==","signatures":[{"sig":"MEQCIFmBQpw8cyrALo4WU33zQpiIoKresiTDdpVng6mIewPCAiBuTsAkHHGW06xKUaQK3jsvvT6+b9f8VA2Z+T9zOpP+dA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ontrails%2fstore@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":138885},"type":"module","_from":"file:/tmp/trails-publish-0UhkLs/ontrails-store-0.2.2.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d9448e8-4278-4c55-afbf-bfd1144aea47"}},"_resolved":"/tmp/trails-publish-0UhkLs/ontrails-store-0.2.2.tgz","_integrity":"sha512-8RJr24fUKRJMTr2eNVqkuSlNVBEnH2ScbOlsRzAMbiqLjhg6bjMv1ViU44wRqY7ojiF1pU5XPkjPIwLijeOKMg==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.18.0","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@ontrails/core":"^0.2.2"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_0.2.2_1789232946308_0.885239403461942","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@ontrails/store","version":"0.2.3","_id":"@ontrails/store@0.2.3","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"homepage":"https://github.com/outfitter-dev/trails#readme","bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"dist":{"shasum":"a7e1baeabf6a2e6a824b825a0356558b3975ed02","tarball":"https://registry.npmjs.org/@ontrails/store/-/store-0.2.3.tgz","fileCount":17,"integrity":"sha512-mZG/VwFhl9LdWrF6mbutTc7paGvtWr1m4kKYuOSd8EzbCif7KK/18noBDtTnlpDFMMasbRFIaTUfasLnrrSdWw==","signatures":[{"sig":"MEUCIQCYSv9GL8VnPKChhdZusPnMMWbnMg8YCGGnMs/Qq/V15QIgXvSoKFeBqwy9UQlp8tVXlzpG6DrLqlk7HCsgOwZJ38A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICEz+BpmU8UoyndPu2iCTo9iUgFRTcJ8uhbytqcKZGjCAiEA18R2Blc8evE85RUEq9SyomjRD/73yUxT0tckIBmFFDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ontrails%2fstore@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":138924},"type":"module","_from":"file:/tmp/trails-publish-vEcVqz/ontrails-store-0.2.3.tgz","trails":{"adapters":{"./jsonfile":{"target":"store"}},"adapterTargets":{"store":{"placements":["extracted","subpath"],"supportImport":"@ontrails/store/adapter-support","testingImport":"@ontrails/store/testing"}}},"exports":{".":"./src/index.ts","./trails":"./src/trails/index.ts","./testing":"./src/testing.ts","./jsonfile":"./src/jsonfile/index.ts","./package.json":"./package.json","./adapter-support":"./src/adapter-support.ts"},"scripts":{"lint":"oxlint ./src","test":"bun test","build":"tsc -b","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d9448e8-4278-4c55-afbf-bfd1144aea47"}},"_resolved":"/tmp/trails-publish-vEcVqz/ontrails-store-0.2.3.tgz","_integrity":"sha512-mZG/VwFhl9LdWrF6mbutTc7paGvtWr1m4kKYuOSd8EzbCif7KK/18noBDtTnlpDFMMasbRFIaTUfasLnrrSdWw==","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"_npmVersion":"11.18.0","description":"Schema-derived persistence for Trails.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@ontrails/core":"^0.2.3"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^4.3.5"},"_npmOperationalInternal":{"tmp":"tmp/store_0.2.3_1790080869016_0.09012798143713163","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-05T10:41:58.756Z","modified":"2026-09-22T17:34:10.422Z","1.0.0-beta.14":"2026-04-05T10:41:59.010Z","1.0.0-beta.15":"2026-04-24T18:09:14.504Z","1.0.0-beta.16":"2026-05-13T14:26:43.471Z","1.0.0-beta.17":"2026-05-14T12:09:24.043Z","1.0.0-beta.18":"2026-05-18T18:02:19.983Z","1.0.0-beta.19":"2026-06-03T14:12:15.492Z","1.0.0-beta.21":"2026-06-11T17:40:12.245Z","1.0.0-beta.22":"2026-06-11T18:25:51.292Z","1.0.0-beta.23":"2026-06-12T12:21:01.887Z","1.0.0-beta.24":"2026-06-12T13:11:00.314Z","1.0.0-beta.29":"2026-06-25T16:25:42.435Z","1.0.0-beta.30":"2026-06-25T17:17:06.130Z","1.0.0-beta.32":"2026-06-30T17:30:43.841Z","1.0.0-beta.39":"2026-07-07T13:51:21.231Z","1.0.0-beta.41":"2026-07-12T11:39:54.709Z","1.0.0-beta.42":"2026-07-13T20:55:02.453Z","1.0.0-beta.43":"2026-07-15T13:12:17.871Z","1.0.0-beta.45":"2026-07-16T13:11:41.667Z","1.0.0-beta.46":"2026-07-18T13:21:03.596Z","1.0.0-beta.47":"2026-08-06T19:16:25.707Z","1.0.0-beta.48":"2026-08-11T19:30:52.159Z","1.0.0-beta.49":"2026-08-20T21:57:57.001Z","1.0.0-beta.50":"2026-08-20T22:59:12.939Z","0.2.0":"2026-09-11T19:24:35.631Z","0.2.1":"2026-09-12T00:14:33.804Z","0.2.2":"2026-09-12T17:09:06.485Z","0.2.3":"2026-09-22T12:41:09.103Z"},"bugs":{"url":"https://github.com/outfitter-dev/trails/issues"},"homepage":"https://github.com/outfitter-dev/trails#readme","repository":{"url":"git+https://github.com/outfitter-dev/trails.git","type":"git","directory":"packages/store"},"description":"Schema-derived persistence for Trails.","maintainers":[{"name":"galligan","email":"matt.galligan@gmail.com"}],"readme":"# @ontrails/store\n\nSchema-derived persistence for Trails.\n\nThe root package owns the backend-agnostic `store(...)` declaration. External adapter packages such as `@ontrails/drizzle` bind that declaration to a concrete runtime, and first-party built-ins such as `@ontrails/store/jsonfile` live as opt-in subpaths on the same package.\n\n## The two layers\n\n### 1. Declare the store contract\n\n```typescript\nimport { store } from '@ontrails/store';\n\nexport const db = store({\n  gists: {\n    schema: gistSchema,\n    identity: 'id',\n    generated: ['id', 'createdAt', 'updatedAt'],\n    indexed: ['owner', 'createdAt'],\n    versioned: true,\n  },\n  files: {\n    schema: fileSchema,\n    identity: 'id',\n    generated: ['id'],\n    references: { gistId: 'gists' },\n  },\n});\n```\n\nThis declaration is pure metadata:\n\n- full entity schema\n- insert schema\n- update schema\n- fixture schema\n- derived change-signal handles (`table.signals.created|updated|removed`)\n- identity field\n- generated-field metadata\n- optional framework-managed version tracking\n- indexed markers\n- references\n\nNo database connection is opened here. The returned value is the durable authored source of truth.\n\n### 2. Bind it to a concrete runtime\n\n```typescript\nimport { store } from '@ontrails/store';\nimport { connectDrizzle } from '@ontrails/drizzle';\n\nconst definition = store({\n  gists: {\n    schema: gistSchema,\n    identity: 'id',\n    generated: ['id', 'createdAt', 'updatedAt'],\n  },\n});\n\nexport const db = connectDrizzle(definition, {\n  id: 'db.main',\n  url: ':memory:',\n});\n```\n\nThe bound store is a resource. Use it directly in trails:\n\n```typescript\nexport const list = trail('gist.list', {\n  resources: [db],\n  intent: 'read',\n  implementation: async (_input, ctx) => {\n    const conn = db.from(ctx);\n    const gists = await conn.gists.list();\n    return Result.ok(gists);\n  },\n});\n```\n\n### Built-in local backend\n\nFor a zero-extra-package local backend, use the first-party JSON file binding:\n\n```typescript\nimport { store } from '@ontrails/store';\nimport { jsonFile } from '@ontrails/store/jsonfile';\n\nconst definition = store({\n  gists: {\n    schema: gistSchema,\n    identity: 'id',\n    generated: ['id', 'createdAt', 'updatedAt'],\n  },\n});\n\nexport const db = jsonFile(definition, {\n  dir: './data',\n});\n```\n\n## Typed accessors\n\nEvery writable table on a bound connection exposes the backend-agnostic accessor contract:\n\n```typescript\nconst conn = db.from(ctx);\n\nconst created = await conn.gists.upsert({\n  ownerId: 'matt',\n  description: 'Hello, Trails',\n});\n\nconst found = await conn.gists.get(created.id);\nconst page = await conn.gists.list({ ownerId: 'matt' }, { limit: 20, offset: 0 });\nconst updated = await conn.gists.upsert({\n  description: 'Updated description',\n  id: created.id,\n  ownerId: 'matt',\n});\nconst removed = await conn.gists.remove(created.id);\n```\n\nTypes are derived from the Zod schema:\n\n- `upsert()` uses the fixture/entity shape with generated fields optional\n- `get()` returns `Entity | null`\n- `list()` accepts typed partial filters and pagination options\n- `versioned: true` adds a framework-managed `version` field to returned entities and lets `upsert()` accept an expected `version` for optimistic concurrency\n\nEach normalized table also derives typed change signals from the same schema:\n\n```typescript\nconst createdHandle = definition.tables.gists.signals.created;\nconst updatedHandle = definition.tables.gists.signals.updated;\nconst removedHandle = definition.tables.gists.signals.removed;\n```\n\nThese pre-bind handles preserve payload shape, but the canonical signal id materializes only when an adapter binds the store to a resource. The bound form is always `resource:table.change`:\n\n```typescript\nconst created = db.store.tables.gists.signals.created;\n\ncreated.id;\n// \"db.main:gists.created\"\n```\n\n## Adapter Support Subpath\n\nAdapter authors who bind a `store(...)` definition to a concrete backend should import signal-binding helpers from `@ontrails/store/adapter-support`:\n\n```typescript\nimport { bindStoreDefinition } from '@ontrails/store/adapter-support';\n```\n\nThe subpath owns `bindStoreDefinition`, `createStoreTableSignals`, `composeStoreSignalId`, `isValidResourceId`, and `StoreSignalChange`. The root package stays focused on backend-agnostic store contracts.\n\nWritable bindings fire those canonical scoped signals automatically when you access the resource through `db.from(ctx)` inside a trail context.\n\nSee [Store Signal Identity Migration](../../docs/store-signal-identity-migration.md) when updating existing `on:` clauses, surface-map fixtures, or custom resource wrappers from bare ids to scoped ids.\n\nTabular adapters such as `@ontrails/drizzle` also expose `insert()` and `update()` as convenience methods when the backend natively distinguishes create and patch operations.\n\n## Fixtures and mocks\n\nFixtures belong on the root definition:\n\n```typescript\nexport const db = store({\n  gists: {\n    schema: gistSchema,\n    identity: 'id',\n    generated: ['id', 'createdAt', 'updatedAt'],\n    fixtures: [\n      { id: 'g_1', ownerId: 'matt', description: 'Seed gist' },\n    ],\n  },\n});\n```\n\nWhen an adapter binds the store, those fixtures feed the resource mock automatically. Adapter options can also add or override seed data for tests.\n\nThat means `testAll(app)` can auto-resolve adapter-bound store resources without extra ceremony, as long as the resource is registered in the topo.\n\n## Read-only bindings\n\nUse the Drizzle adapter's read-only binding when a trail should inspect persisted state without exposing writes:\n\n```typescript\nimport { connectReadOnlyDrizzle } from '@ontrails/drizzle';\n\nconst analytics = connectReadOnlyDrizzle(definition, {\n  id: 'analytics.db',\n  url: './data/analytics.sqlite',\n});\n```\n\nRead-only bindings expose `get()`, `list()`, and `query()`, but not `upsert()`, `remove()`, `insert()`, or `update()`.\n\n## Accessor contract testing\n\nAdapters can reuse the shared writable-accessor contract tests from `@ontrails/store/testing`:\n\n```typescript\nimport { createStoreAccessorContractCases } from '@ontrails/store/testing';\n```\n\nThat helper provides reusable cases for the baseline `get()`, `list()`, `upsert()`, and `remove()` behavior so adapter suites only need to wrap them with their normal `test(...)` calls and add backend-specific coverage on top.\n\n## Drizzle escape hatch\n\nComplex queries use the adapter-native query builder through `query()`:\n\n```typescript\nconst conn = db.from(ctx);\n\nconst rows = await conn.query(({ drizzle, tables }) =>\n  drizzle\n    .select()\n    .from(tables.gists)\n);\n```\n\nThis keeps the default happy path derived and typed, while still giving you full access to the underlying adapter when the CRUD accessors are not enough.\n\n## Adapter binding\n\n`@ontrails/drizzle` keeps the durable `store(...)` declaration in `@ontrails/store` and binds it to a concrete runtime:\n\n```typescript\nimport { connectDrizzle, connectReadOnlyDrizzle } from '@ontrails/drizzle';\nimport { store } from '@ontrails/store';\n\nconst definition = store({\n  gists: {\n    schema: gistSchema,\n    identity: 'id',\n    generated: ['id', 'createdAt', 'updatedAt'],\n  },\n});\n\nexport const writable = connectDrizzle(definition, { url: ':memory:' });\n\nexport const readonly = connectReadOnlyDrizzle(definition, {\n  url: './data/gists.sqlite',\n});\n```\n\nThe root package still owns the authored persistence model; adapter packages render that model into runnable resources.\n\n## Schema export for external tooling\n\nIf you need the raw derived Drizzle tables for tooling such as `drizzle-kit`, read them from the bound resource's `tables` field:\n\n```typescript\nimport { connectDrizzle } from '@ontrails/drizzle';\nimport { store } from '@ontrails/store';\n\nconst definition = store({\n  gists: {\n    schema: gistSchema,\n    identity: 'id',\n    generated: ['id', 'createdAt', 'updatedAt'],\n  },\n});\n\nconst db = connectDrizzle(definition, { url: ':memory:' });\nconst schema = db.tables;\n```\n\n## Installation\n\nThese installation examples target Trails `0.2.1` on the normal npm release line.\n\n```bash\nbun add --exact @ontrails/store@0.2.1 zod\n```\n\nAdd Drizzle only when you want the external SQLite/ORM adapter:\n\n```bash\nbun add --exact @ontrails/drizzle@0.2.1\n```\n\n## Migration\n\nThe Drizzle binding now lives in `@ontrails/drizzle`.\n\n<!-- warden-ignore-next-line -->\n- Replace `import { ... } from '@ontrails/store/drizzle'` with `import { ... } from '@ontrails/drizzle'`\n- Keep backend-agnostic store declarations on `@ontrails/store`\n","readmeFilename":"README.md"}