{"_id":"@codeforbreakfast/eventsourcing-store-postgres","_rev":"22-e2937af720ad9db2a55df5448c6517a4","name":"@codeforbreakfast/eventsourcing-store-postgres","dist-tags":{"latest":"0.6.14"},"versions":{"0.3.0":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.3.0","keywords":["event-sourcing","postgresql","postgres","event-store","effect","functional-programming"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.3.0","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"c77cb5ead254616c8b4805ee4ba4562c0eda98ce","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.3.0.tgz","fileCount":13,"integrity":"sha512-nia3lvKHTswPbqRy1++pBjEizwydcWN5qCbguZCFKa+biF7AU2fUBZCVycHrt6uDHrFhakHOFTbCpRp9gkjZIg==","signatures":[{"sig":"MEYCIQCyPocTQRnfP2/cAZGg5YHIH0TfzY85cHEcVa+D9shLGQIhAMIEh9wY/oKi2lgRkBlrkEGlXm3cZjaXMbMJQcg19Rd3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70357},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"fb64ff2d03d1d1940de91d498ce77963573ea2e5","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","prepublishOnly":"bun run clean && bun run build","publish:package":"bun publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"repository":{"url":"git+https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.2","description":"PostgreSQL implementation for event sourcing store","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/sql":"0.44.2","@effect/sql-pg":"0.45.1","@effect/experimental":"0.54.6","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","typescript":"5.9.2","@types/node":"24.5.2"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.3.0_1758455504451_0.49719725229556455","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.4.0","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.4.0","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"f9893bdcbb9781f2beabf4f66aa01b7fa39d29ee","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.4.0.tgz","fileCount":14,"integrity":"sha512-ElWnSNMBbUf4fHx4xQHV9982mci40Q7rNy+o/eIRs30N1uAFODPDKxltYleQTQaHiGflywECed2RAQpmjczbeA==","signatures":[{"sig":"MEUCIQCn24AF9Wb2hTlpva3kL33Coc2BR7Zm+QMDCsRs0/tCQgIgSegs6r5Xus/mN1CZbYeuNOCxGqak18hVvymTZRsQ/mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87370},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"91a605488848987629e10ba81fdec39412844f8b","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","prepublishOnly":"bun run clean && bun run build","publish:package":"bun publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"repository":{"url":"git+https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/sql":"0.44.2","@effect/sql-pg":"0.45.1","@effect/experimental":"0.54.6","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","typescript":"5.9.2","@types/node":"24.5.2"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.4.0_1758457381610_0.48222917283326305","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.4.1","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.4.1","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"cc423fb933c9f430c1587f8928913a51ff14b884","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.4.1.tgz","fileCount":14,"integrity":"sha512-BFxA8tZtOgVDlsF+F61jCvACzM/rW1og56N0MXcFHZWApVU0LjDKyEiAczfW6kKc7O6epl5WCveh5p600WsFzg==","signatures":[{"sig":"MEUCIQD9OZ1kBsSMGDSk/tUZCZceF/gkaB+ozcqFfA+zhKI/uQIgPSv79loqEOUFZkEo4OLDr5+95lj5LyLEdwk1gyAx8XU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87370},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"d66a71f2237dac8eb5a2b344fa6bc474ec6cce72","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","prepublishOnly":"bun run clean && bun run build","publish:package":"bun publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"repository":{"url":"git+https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/sql":"0.44.2","@effect/sql-pg":"0.45.1","@effect/experimental":"0.54.6","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","typescript":"5.9.2","@types/node":"24.5.2"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.4.1_1758459655953_0.932410148959312","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.5.0","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.5.0","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"e136ccf6c72118776755a34b0008eb7ef2575a04","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.5.0.tgz","fileCount":14,"integrity":"sha512-6k8kHxS4kLzFXxW/Ut8yXoE6LXDWMV4ikAfCq7P/wqaXujLm6W69PXWvS/H/5Bc/MADsZspp/Gdo5itxc9g+JA==","signatures":[{"sig":"MEUCIQCkBQS9gwph15ItSW+zHNZEFDam40Crae/poYa90haiXwIgHqhch3HmfTikLt+RnyldzrlQ/GldZkyiFQZLLUVhGfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81532},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"cb3f8719089467198209dafda72aedfa33f910db","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","prepublishOnly":"bun run clean && bun run build","publish:package":"bun publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"repository":{"url":"git+https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/sql":"0.44.2","@effect/sql-pg":"0.45.1","@effect/experimental":"0.54.6","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","typescript":"5.9.2","@types/node":"24.5.2"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.5.0_1758462658747_0.9400409806068672","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.5.1","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.5.1","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"3808df15dcd9fccaf05cbf0a33e3ab0461e70b2a","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.5.1.tgz","fileCount":14,"integrity":"sha512-+Zu9pYqwFs3GzbdnT//DUDbL/ylw6D5h7CdUzF9/m/hfegqvInnQx74RH0uOAqSE8CGox5pCjLDcFtexpcw3kQ==","signatures":[{"sig":"MEQCIBPDTAGUanTQVUohhWLXhI/A3hZ4PgIQ/FIYxFlhBSLnAiBDDoArzzi63BbsLi65cU/zLYTH5d0tV5CuVld6P81gVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81532},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"d2171855d7ad9b419abb1b213586048a0199001e","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","prepublishOnly":"bun run clean && bun run build","publish:package":"bun publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"repository":{"url":"git+https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/sql":"0.44.2","@effect/sql-pg":"0.45.1","@effect/experimental":"0.54.6","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","typescript":"5.9.2","@types/node":"24.5.2"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.5.1_1758469474487_0.4965597681800318","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.5.2","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":"Code for Breakfast","license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.5.2","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"4dbd436f517313fe4fcfec492235548b9aca7536","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.5.2.tgz","fileCount":14,"integrity":"sha512-X2XeZ3spUQqMxkurZDnCek6c7B6kM035mScROKFmwTHNpDYtsWKpIqVCWVG6l26n4Vgu4k3mc8KuAjX7f4eb4Q==","signatures":[{"sig":"MEQCIG34Rjs6RfnqF9IUVJ6B9jysLNbWq006gyVATgitKh9kAiAujELwgr5F5z4yOj+tDZhGSG8jLyIKZx4mnJpw5WowWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81526},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"4dbd436f517313fe4fcfec492235548b9aca7536","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","prepublishOnly":"bun run clean && bun run build","publish:package":"bun publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"_integrity":"sha512-X2XeZ3spUQqMxkurZDnCek6c7B6kM035mScROKFmwTHNpDYtsWKpIqVCWVG6l26n4Vgu4k3mc8KuAjX7f4eb4Q==","repository":{"url":"https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.3","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@effect/sql":"0.44.2","@effect/sql-pg":"0.45.1","@effect/experimental":"0.54.6","@codeforbreakfast/eventsourcing-store":"0.6.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","typescript":"5.9.2","@types/node":"24.5.2"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.5.2_1758470928583_0.6807839452461413","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.5.4","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":"Code for Breakfast","license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.5.4","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"efb3ba1ec9509f2ede799d96391c75851a7cdf04","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.5.4.tgz","fileCount":34,"integrity":"sha512-z7v+B4/M29SUxpVPqkBjQ1QmQ0woqsCrs6tQT5mebT3HZPQZ7a8JyKiBz4w4TATVNpbvt4YuKDLA4yLVQrOFHg==","signatures":[{"sig":"MEUCIF1QjCyPA6yPIEIHj7k5zVl6AnJO8smzwDl2cyOXztkjAiEAyFZX35P9CRLOE8/PKL5a2p+Tojepk5JOk8cxv2rpQDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108131},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"efb3ba1ec9509f2ede799d96391c75851a7cdf04","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build --force","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","prepublishOnly":"bun run build","publish:package":"bun publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"_integrity":"sha512-z7v+B4/M29SUxpVPqkBjQ1QmQ0woqsCrs6tQT5mebT3HZPQZ7a8JyKiBz4w4TATVNpbvt4YuKDLA4yLVQrOFHg==","repository":{"url":"https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.3","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@effect/sql":"0.44.2","@effect/sql-pg":"0.45.1","@effect/experimental":"0.54.6","@codeforbreakfast/eventsourcing-store":"0.6.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","typescript":"5.9.2","@types/node":"24.5.2"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.5.4_1758474864166_0.12944903235829663","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.5.5","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":"Code for Breakfast","license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.5.5","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"dffc9a48d58538c0c831e40123fb6e7d83caa171","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.5.5.tgz","fileCount":34,"integrity":"sha512-uZai8qm5YCMdMDTd1h95Y4LYXwaCYZ0JlOMhaxEVJQ71jR3rSysZkExkaQlQxKU63qGm9qluASdOowZ6VZOrnQ==","signatures":[{"sig":"MEUCIQDXfBwxeE9x11XuubcVbj0RCKtobm5T5tPdC9pXTMMkQgIgBblGoju4Ogo44HCb0vCuo9ZTPIlgb/DRYDo0DC8loT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108131},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"dffc9a48d58538c0c831e40123fb6e7d83caa171","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build --force","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","prepublishOnly":"bun run build","publish:package":"bun publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"_integrity":"sha512-uZai8qm5YCMdMDTd1h95Y4LYXwaCYZ0JlOMhaxEVJQ71jR3rSysZkExkaQlQxKU63qGm9qluASdOowZ6VZOrnQ==","repository":{"url":"https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.3","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@effect/sql":"0.44.2","@effect/sql-pg":"0.45.1","@effect/experimental":"0.54.6","@codeforbreakfast/eventsourcing-store":"0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","typescript":"5.9.2","@types/node":"24.5.2"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.5.5_1758476924265_0.9095884483226562","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.5.7","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.5.7","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"c48691c1c5eaaa304cde3d60fbcff3393b4a2361","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.5.7.tgz","fileCount":34,"integrity":"sha512-7dhFhVyDaIJipwiFdl9Opm1e9Xo9QbsXmMgb5GFs3GZhMF7oHEk3RHAIb9ekE+Wrfy06B+hJC5cActifb74DzQ==","signatures":[{"sig":"MEQCIFfQIWxx3r4Vsp+21Pk633rD8ALpky8Tm8Bve7gI0gbjAiAce0YP6FX62/i+eHELS2qnUJG4QGwU8jGEUGBsGSZ0nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108098},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"9510ad686c016cbbf486f3572a78ce3b8e031131","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build --force","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","publish:package":"npm publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"repository":{"url":"git+https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/sql":"0.44.2","@effect/sql-pg":"0.45.1","@effect/experimental":"0.54.6","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","typescript":"5.9.2","@types/node":"24.5.2"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.5.7_1758706997301_0.4034420617377332","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.0","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.0","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"9513277b98757cd8f33fbfaf0b81b52211060722","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.0.tgz","fileCount":36,"integrity":"sha512-uo34USjqFVlZ+YyUeFGumHos9b5kHz3a069Zzp9atemtLEcSt3vXbOzqqG1iogcEQbsEYaJM+GGJ0IDyqKA7Rg==","signatures":[{"sig":"MEUCID+JD0Iz5UL2HB+QisXrc/G9SktYlpObo1gpm/Yiytx6AiEAi6gJc6k46eXXEupPveU7Kz9YLxoUTBwwbCb3h8H3JiA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104576},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"18e324d0d06e1524923d166cf7f6d84958155b5a","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build --force","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","publish:package":"npm publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"repository":{"url":"git+https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"10.8.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/sql":"0.45.0","@effect/sql-pg":"0.46.0","@effect/experimental":"0.55.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","typescript":"5.9.2","@types/node":"24.5.2","@effect/platform-bun":"0.80.0","@codeforbreakfast/buntest":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.0_1759054233874_0.8605168987454945","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.3","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.3","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"49f9453384d097d5a566c52a90c38a769b8cf4db","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.3.tgz","fileCount":36,"integrity":"sha512-dXMW7mY8I3XGeOZhiR80gvvSI7SuOG5PEMyiQAS01q0DJN3/SeWPSVQyP+Uk1sh9aeBdMyyFAXfkS9aEIXYF+g==","signatures":[{"sig":"MEYCIQCt7m99SmY2AtHxZ0aggULoYZbxCHMVHzpRIst6T6CVhQIhAJqpqEdbOb5TuUGjMKfVpVnUVJUa1EFiLrIWZAqgyjwL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104738},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b51721207db43b5ba8b9228b79cfa36219146005","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build --force","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.1","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/sql":"0.45.0","@effect/sql-pg":"0.46.0","@effect/experimental":"0.55.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","typescript":"5.9.2","@types/node":"24.5.2","@effect/platform-bun":"0.80.0","@codeforbreakfast/buntest":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.3_1759068014432_0.5854239276347195","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.4","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.4","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"9c93622e3d1fa1db03f80adde45c4e7e05dbd438","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.4.tgz","fileCount":36,"integrity":"sha512-FVsGfYMX/dJquQ18lPi6D2yQR/VCO1/U9bOQXHMkOmKgAg9tpj1g82apnKZ0tI/+j0hY4ml7daRAwc9b39woSA==","signatures":[{"sig":"MEYCIQDDJWhGEyAXlF+KjURzPDueMeQhtkd4mps0uZQ1XEl51AIhALvF6nrysVCckcrFjxE2DExViJugi7z2G/YahlW6J1w2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107142},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"35106a1245f942e488807eea940f69a8a8af3b13","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build --force","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.1","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/sql":"0.45.0","@effect/sql-pg":"0.46.0","@effect/experimental":"0.55.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","typescript":"5.9.2","@types/node":"24.5.2","@effect/platform-bun":"0.80.0","@codeforbreakfast/buntest":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.4_1759154766466_0.8020237133319068","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.5","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.5","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"3687247bf89bbb76c8e1ee8cc7ec1756ed962644","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.5.tgz","fileCount":36,"integrity":"sha512-5+kJ/RLzTygPpyNtzkw8SM+KGsfdXUF5Idvv/zcjgjFyNFCoaZnofBn54aYtykUSGcntc4zBdotSzxKCo8FAWw==","signatures":[{"sig":"MEYCIQCiiZQ+Rh9Kneyw9Cik9eXIoeJObMSZgFoJmJBBAKubaAIhAIkO9nP8J73VFUO2oh7BFeiPYd9VXym9TWwGpyEUWFAB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123641},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"25c05b1804fe30d707ce5508addc73813ed6ebfc","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build --force","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.1","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/sql":"0.46.0","@effect/sql-pg":"0.47.0","@effect/experimental":"0.56.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.1","eslint":"9.36.0","typescript":"5.9.3","@types/node":"24.6.2","@effect/platform-bun":"0.81.0","@codeforbreakfast/buntest":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.5_1759677753998_0.2894785332052694","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.6","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.6","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"e0a9c76ddd8829affde8c3518d92ec07bd98f272","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.6.tgz","fileCount":36,"integrity":"sha512-VPLrmvXCOTqzNR5TxZHth7tA5PaosWfSR28WcZ1LtqbtjH8sZQdIw5dH09EJiemoy78XfS0RUcEaf5phq/NXYA==","signatures":[{"sig":"MEUCIQDBNWWALBxedvd+gSWPqyiUsWhRgXtr2NzpTejgfyE3QQIgcAtBjjxhNoglTV7y/FS5ZsEWKayMqYgu2eJZzOTNO/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123641},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"64395671cd2e58b786dc4f009dca9a0db2e22214","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build --force","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.1","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/sql":"0.46.0","@effect/sql-pg":"0.47.0","@effect/experimental":"0.56.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.1","eslint":"9.36.0","typescript":"5.9.3","@types/node":"24.6.2","@effect/platform-bun":"0.81.0","@codeforbreakfast/buntest":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.6_1759689712599_0.3041676534410125","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.7","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.7","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"33c687e4213ed6948ce418a219abd9dda213c88f","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.7.tgz","fileCount":36,"integrity":"sha512-P2+KQYy9KWF8z4i9hkT/7+tje3HZSf5Ogc5XV/OY3r4C5Z35BXrAWDp451745Cnnztzzr3uQpONd95B1A1QdNw==","signatures":[{"sig":"MEYCIQCNAV5UCT6CO6qL1FxSej+24Rj03XA82/jn8GMT5j0NYgIhANOBZLzlN5Y+W4AOnlXS1Ig5zlZPIMTrzzP64WvIwTXV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118787},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"37f4fc8c1953c6018760271ab3d6b8c4d30ec88c","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.1","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/sql":"0.46.0","@effect/sql-pg":"0.47.0","@effect/experimental":"0.56.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.1","eslint":"9.36.0","typescript":"5.9.3","@types/node":"24.6.2","@effect/platform-bun":"0.81.1","@codeforbreakfast/buntest":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.7_1759854549973_0.92428542251713","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.8","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.8","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"41a0f0786b6e24810cc3cb8f68d83ab5d3d94b5d","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.8.tgz","fileCount":34,"integrity":"sha512-+czyQBaqVt780bpOthea6bTOCJS0SZesUgBijKWwrFjXY7ZA9gknhXj2cWwtbunA4G8NzpXmh5+GpTNySuEBoQ==","signatures":[{"sig":"MEUCIBIRlgCYbZyQftakTnivo/ooNKjFLOfKBFJG0eEzYzQDAiEAiM8QDHdHoiz2sJArZ6n9j6oMXe9Umh5XzvCjQMPb7rM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117068},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"6b33e587b5948de08c6fcfd7bebc0f93e22cd24b","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.1","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/sql":"0.46.0","@effect/sql-pg":"0.47.0","@effect/experimental":"0.56.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.36.0","typescript":"5.9.3","@types/node":"24.6.2","@effect/platform-bun":"0.81.1","@codeforbreakfast/buntest":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.8_1760267626732_0.9231154889992887","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.9","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.9","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"bf00515283c66b46f498bbb2643483f2992ec471","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.9.tgz","fileCount":34,"integrity":"sha512-ENfsUC/c6aVi1uplHJ3jsA5m8n+ljAM0a0Gu/CqdsDi9v/TKQJKWWw3msgGG8ALJkBtJXZR1ORcCtD/Ijdgygg==","signatures":[{"sig":"MEQCIEzIzlV5CdkYOl7TEOzPEYU4I01d4Kee0TdKN9iOGXH7AiB7+zTdmsc9GsTmYt970aPRVo+HHwnIlYl7ISIiesiZLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117053},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"209ef435978ce052d57ea888fdc847b07011a674","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/sql":"0.46.0","@effect/sql-pg":"0.47.0","@effect/experimental":"0.56.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.37.0","typescript":"5.9.3","@types/node":"24.7.1","@effect/platform-bun":"0.81.1","@codeforbreakfast/buntest":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.9_1760430179536_0.5082651648154923","host":"s3://npm-registry-packages-npm-production"}},"0.6.10":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.10","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.10","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"d599b1d9f763d10ea34b97baf75c88478cb670cf","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.10.tgz","fileCount":34,"integrity":"sha512-tlOob27bg/nC37fLbOF2sUU+6fc1zGheKrj04VyeshKGrFviSmhq5NLcLGm1nbhrdvo/BmZ3ge/stT651zQthw==","signatures":[{"sig":"MEUCIDHWTCjn+WFgHq3ggJ+qlpwdzSdU11Wppp7Rrkl1zR9WAiEAyBPXQEiiJlXmL0m1AHoT4ARwbDcpe8y2FMarw4LW9s0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117054},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b86d91ea14ffcb2c9209ebfcbf6c48b4a9ff5876","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.1.0","@effect/sql":"0.46.0","@effect/sql-pg":"0.47.0","@effect/experimental":"0.56.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.37.0","typescript":"5.9.3","@types/node":"24.7.2","@effect/platform-bun":"0.81.1","@codeforbreakfast/buntest":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.10_1760796634099_0.5450532568622561","host":"s3://npm-registry-packages-npm-production"}},"0.6.11":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.11","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.11","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"116815a47b7decb7cc6c1eebbe0052b6e5f1809f","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.11.tgz","fileCount":40,"integrity":"sha512-hb0Rns4SSEpVghcQamyNw6z4+HA/9vcrZOFc2QOSs6BD4hn36DHVU1ySUD+j4f8aDWaHJ7u7ojHQIUIllQEpQQ==","signatures":[{"sig":"MEUCIQD6SsaGrgJNCq2tTA5tipjumyl5zBr5fBj2buP10CnIrgIgOKK9mJpYoSzT8Yqmil2zAg+gCpXJnhuCHg2WJJeaSvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141745},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"8aeb86d53d72d178720c7a9543b57a8a85177f25","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.1.0","@effect/sql":"0.46.0","@effect/sql-pg":"0.47.0","@effect/experimental":"0.56.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.38.0","typescript":"5.9.3","@types/node":"24.9.1","@effect/platform-bun":"0.81.1","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.11_1761488004651_0.5119965308309951","host":"s3://npm-registry-packages-npm-production"}},"0.6.12":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.12","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.12","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"f9bd950e1c4c3f159eca9766a956b8541e6824a2","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.12.tgz","fileCount":40,"integrity":"sha512-9vk2pbKX1Vd+wXLekzIFLjTCYLe9d1Y7qOFAWmFsSI9T3LHUa0M956rreTQorWb24kQxrHhKCWUGc4CpYjLjww==","signatures":[{"sig":"MEYCIQDXZ1fO7XMGIRiT638xZLYY3zj1ZrMVS13SuhppxrVTSgIhAM5rxcgrW5YFFS54PkvNgHsB1hI40rybRGdZs82Ik9SM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141463},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"7f67156700fc3a5d4036c8d9fd4f905897e41917","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.1.0","@effect/sql":"0.46.0","@effect/sql-pg":"0.47.0","@effect/experimental":"0.56.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.38.0","typescript":"5.9.3","@types/node":"24.9.2","@effect/platform-bun":"0.81.1","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.12_1762159722324_0.5990304619412095","host":"s3://npm-registry-packages-npm-production"}},"0.6.13":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.13","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.13","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"aa7596ba7e50b61a49e82e48f072afe1732f2629","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.13.tgz","fileCount":40,"integrity":"sha512-wkRGQ0bjI1Qs6j1Qi/J5hy1K5VSzjdHgO3F9YHxXi/NhVgC7DZKeIYBeYb//Me8A6V4mfzv6i8mLwFAg6wukAA==","signatures":[{"sig":"MEYCIQCTV5vPvnhrBZZ91mbPKNoWUJ0Q+kEqbLWEWouIBGMn/AIhAPdWE3Rr8W9uxd/qi2w7+Rm+YWQTcJnclhuE2V+A9cqW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141480},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"572968daaa6a79b98fb010df951d5f75bcd7f1c7","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-store-postgres"},"_npmVersion":"11.6.2","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.2.0","@effect/sql":"0.46.0","@effect/sql-pg":"0.47.0","@effect/experimental":"0.56.0","@codeforbreakfast/eventsourcing-store":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.39.1","typescript":"5.9.3","@types/node":"24.10.0","@effect/platform-bun":"0.81.1","@codeforbreakfast/bun-test-effect":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-store-postgres_0.6.13_1764059356767_0.6862376887452128","host":"s3://npm-registry-packages-npm-production"}},"0.6.14":{"name":"@codeforbreakfast/eventsourcing-store-postgres","version":"0.6.14","description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","test":"bun test","test:watch":"bun test --watch","lint":"eslint . --ext .ts,.tsx","typecheck":"tsc --noEmit","clean":"rm -rf dist","publish:package":"npm publish --access public","validate:pack":"bun pm pack --dry-run","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0","validate:docs":"bun ../../scripts/validate-markdown-examples.ts"},"keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"author":{"name":"Code for Breakfast"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","directory":"packages/eventsourcing-store-postgres"},"bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","peerDependencies":{"effect":"^3.17.0","@effect/platform":"^0.90.0 || ^0.91.0 || ^0.92.0 || ^0.93.0"},"dependencies":{"@codeforbreakfast/eventsourcing-store":"workspace:*","@effect/experimental":"0.57.11","@effect/sql":"0.48.6","@effect/sql-pg":"0.49.7","type-fest":"5.2.0"},"devDependencies":{"@codeforbreakfast/bun-test-effect":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*","@effect/platform-bun":"0.86.0","@types/node":"24.10.0","effect":"3.19.9","eslint":"9.39.1","typescript":"5.9.3"},"publishConfig":{"access":"public"},"sideEffects":false,"engines":{"node":">=18.0.0"},"gitHead":"dc9291553d278cb59572e9fb1569fe0c01194eea","_id":"@codeforbreakfast/eventsourcing-store-postgres@0.6.14","_nodeVersion":"20.19.6","_npmVersion":"11.6.2","dist":{"integrity":"sha512-I4zinZRIA7xsRt3YePX1X4GY/ZmkpFR8wlKqNIm43co07Rz6w2AaDdBz6dNWsri4vNcc6Y5RfSi9lZj89YTl8w==","shasum":"4709616a7b44f217c78adaece52dab2304095ce3","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-store-postgres/-/eventsourcing-store-postgres-0.6.14.tgz","fileCount":40,"unpackedSize":141406,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-store-postgres@0.6.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEfXIBr+rtxXXth6IJI3j61TTeVl0qTbZ7PRzJja7Mf+AiB/20FetP7V9HGIgxqAx2tIri2e8lt0LcuBZMl3E+uSuQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f02a571c-53f2-425c-af86-ff79f026fdc9"}},"directories":{},"maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventsourcing-store-postgres_0.6.14_1765443331501_0.794007074910825"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-21T11:51:44.340Z","modified":"2025-12-11T08:55:32.014Z","0.3.0":"2025-09-21T11:51:44.659Z","0.4.0":"2025-09-21T12:23:01.807Z","0.4.1":"2025-09-21T13:00:56.128Z","0.5.0":"2025-09-21T13:50:58.950Z","0.5.1":"2025-09-21T15:44:34.739Z","0.5.2":"2025-09-21T16:08:48.764Z","0.5.4":"2025-09-21T17:14:24.362Z","0.5.5":"2025-09-21T17:48:44.455Z","0.5.7":"2025-09-24T09:43:17.533Z","0.6.0":"2025-09-28T10:10:34.075Z","0.6.3":"2025-09-28T14:00:14.673Z","0.6.4":"2025-09-29T14:06:06.648Z","0.6.5":"2025-10-05T15:22:34.196Z","0.6.6":"2025-10-05T18:41:52.777Z","0.6.7":"2025-10-07T16:29:10.173Z","0.6.8":"2025-10-12T11:13:46.918Z","0.6.9":"2025-10-14T08:22:59.712Z","0.6.10":"2025-10-18T14:10:34.306Z","0.6.11":"2025-10-26T14:13:24.851Z","0.6.12":"2025-11-03T08:48:42.508Z","0.6.13":"2025-11-25T08:29:16.977Z","0.6.14":"2025-12-11T08:55:31.653Z"},"bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"author":{"name":"Code for Breakfast"},"license":"MIT","homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","keywords":["event-sourcing","event-store","postgresql","postgres","database","persistence","effect","effect-ts","functional-programming","fp","typescript","type-safe","streaming","acid","scalable","production","sql","cqrs"],"repository":{"type":"git","url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","directory":"packages/eventsourcing-store-postgres"},"description":"Production-ready PostgreSQL event store with Effect integration - Scalable, ACID-compliant event persistence with type-safe database operations and streaming","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"readme":"# @codeforbreakfast/eventsourcing-store-postgres\n\nProduction-ready PostgreSQL implementation for event sourcing with Effect integration. This package provides a robust, scalable event store implementation using PostgreSQL with advanced features like optimistic concurrency control, event streaming, and real-time notifications.\n\n## Installation\n\n```bash\nnpm install @codeforbreakfast/eventsourcing-store-postgres effect @effect/platform @effect/sql @effect/sql-pg\n```\n\n```bash\nbun add @codeforbreakfast/eventsourcing-store-postgres effect @effect/platform @effect/sql @effect/sql-pg\n```\n\n## Key Features\n\n- **PostgreSQL Backend**: Production-ready event store using PostgreSQL\n- **Effect Integration**: Built on Effect with full functional programming support\n- **ACID Transactions**: Guaranteed consistency with PostgreSQL transactions\n- **Optimistic Concurrency**: Prevent race conditions with event number tracking\n- **Real-time Notifications**: PostgreSQL LISTEN/NOTIFY for immediate event streaming\n- **Connection Pooling**: Efficient database connection management\n- **Schema Migrations**: Automated database schema setup and versioning\n- **Performance Optimized**: Indexed queries and streaming support for large datasets\n\n## Quick Start\n\n```typescript\nimport { Effect, Layer, Redacted, Schema, Stream, pipe } from 'effect';\nimport {\n  sqlEventStore,\n  EventSubscriptionServicesLive,\n  EventRowServiceLive,\n  PostgresLive,\n  PgConfiguration,\n} from '@codeforbreakfast/eventsourcing-store-postgres';\nimport {\n  type EventStore,\n  beginning,\n  toStreamId,\n  encodedEventStore,\n} from '@codeforbreakfast/eventsourcing-store';\n\nconst UserRegistered = Schema.Struct({\n  type: Schema.Literal('UserRegistered'),\n  userId: Schema.String,\n  email: Schema.String,\n  timestamp: Schema.String,\n});\n\nconst UserEmailUpdated = Schema.Struct({\n  type: Schema.Literal('UserEmailUpdated'),\n  userId: Schema.String,\n  oldEmail: Schema.String,\n  newEmail: Schema.String,\n  timestamp: Schema.String,\n});\n\nconst UserEvent = Schema.Union(UserRegistered, UserEmailUpdated);\ntype UserEvent = typeof UserEvent.Type;\n\nconst PgConfigLive = Layer.succeed(PgConfiguration, {\n  host: 'localhost',\n  port: 5432,\n  database: 'eventstore',\n  username: 'postgres',\n  password: Redacted.make('password'),\n});\n\nconst createTypedEventStore = (stringEventStore: EventStore<string>) =>\n  encodedEventStore(Schema.parseJson(UserEvent))(stringEventStore);\n\nconst writeAndReadEvents = (eventStore: EventStore<UserEvent>) =>\n  pipe(\n    toStreamId('user-123'),\n    Effect.flatMap((streamId) =>\n      pipe(\n        beginning(streamId),\n        Effect.flatMap((position) =>\n          pipe(\n            Stream.make({\n              type: 'UserRegistered' as const,\n              userId: 'user-123',\n              email: 'user@example.com',\n              timestamp: new Date().toISOString(),\n            }),\n            Stream.run(eventStore.append(position)),\n            Effect.tap((newPosition) =>\n              Effect.logInfo(`Events written at position: ${JSON.stringify(newPosition)}`)\n            ),\n            Effect.flatMap(() => eventStore.read(position)),\n            Effect.flatMap(Stream.runCollect),\n            Effect.tap((allEvents) =>\n              Effect.logInfo(`Retrieved events: ${JSON.stringify(allEvents)}`)\n            )\n          )\n        )\n      )\n    )\n  );\n\nconst program = pipe(\n  sqlEventStore,\n  Effect.map(createTypedEventStore),\n  Effect.flatMap(writeAndReadEvents)\n);\n\nconst AppLayer = pipe(\n  Layer.mergeAll(EventSubscriptionServicesLive, EventRowServiceLive),\n  Layer.provide(PostgresLive),\n  Layer.provide(PgConfigLive)\n);\n\nconst runProgram = pipe(program, Effect.provide(AppLayer));\n```\n\n## Database Setup\n\n### Automatic Migrations\n\nThe package includes automatic database schema management:\n\n```typescript\nimport { Effect, pipe } from 'effect';\n\ndeclare const runMigrations: (config: {\n  readonly migrationsTable: string;\n  readonly schemaName: string;\n}) => Effect.Effect<void>;\n\nconst setupDatabase = pipe(\n  runMigrations({\n    migrationsTable: 'schema_migrations',\n    schemaName: 'eventstore',\n  }),\n  Effect.tap(() => Effect.logInfo('Database schema is up to date'))\n);\n```\n\n### Manual Schema Setup\n\nIf you prefer manual control, here's the core schema:\n\n```sql\n-- Events table\nCREATE TABLE IF NOT EXISTS events (\n    id BIGSERIAL PRIMARY KEY,\n    stream_id VARCHAR(255) NOT NULL,\n    event_number INTEGER NOT NULL,\n    event_type VARCHAR(255) NOT NULL,\n    event_data JSONB NOT NULL,\n    event_metadata JSONB,\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),\n    UNIQUE(stream_id, event_number)\n);\n\n-- Indexes for performance\nCREATE INDEX IF NOT EXISTS idx_events_stream_id ON events(stream_id);\nCREATE INDEX IF NOT EXISTS idx_events_stream_id_event_number ON events(stream_id, event_number);\nCREATE INDEX IF NOT EXISTS idx_events_created_at ON events(created_at);\nCREATE INDEX IF NOT EXISTS idx_events_event_type ON events(event_type);\n\n-- Snapshots table (optional, for performance)\nCREATE TABLE IF NOT EXISTS snapshots (\n    stream_id VARCHAR(255) PRIMARY KEY,\n    event_number INTEGER NOT NULL,\n    snapshot_data JSONB NOT NULL,\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()\n);\n```\n\n## Advanced Configuration\n\n### Connection Management\n\n```typescript\nimport { Layer, Redacted, pipe } from 'effect';\nimport {\n  sqlEventStore,\n  EventSubscriptionServicesLive,\n  EventRowServiceLive,\n  PostgresLive,\n  PgConfiguration,\n} from '@codeforbreakfast/eventsourcing-store-postgres';\n\ninterface UserEvent {\n  readonly type: string;\n}\n\nconst PgConfigLive = Layer.succeed(PgConfiguration, {\n  host: 'localhost',\n  port: 5432,\n  database: 'eventstore',\n  username: 'postgres',\n  password: Redacted.make('password'),\n});\n\nconst EventStoreLive = pipe(\n  Layer.mergeAll(EventSubscriptionServicesLive, EventRowServiceLive),\n  Layer.provide(PostgresLive),\n  Layer.provide(PgConfigLive)\n);\n```\n\n### Event Streaming with Notifications\n\nEnable real-time event streaming using PostgreSQL LISTEN/NOTIFY:\n\n```typescript\nimport { Effect, Schema, Stream, pipe } from 'effect';\nimport { sqlEventStore } from '@codeforbreakfast/eventsourcing-store-postgres';\nimport {\n  type EventStore,\n  beginning,\n  toStreamId,\n  encodedEventStore,\n} from '@codeforbreakfast/eventsourcing-store';\n\ninterface ProcessedEvent {\n  readonly type: string;\n  readonly data: string;\n}\n\nconst MyEvent = Schema.Struct({\n  type: Schema.String,\n  data: Schema.String,\n});\ntype MyEvent = typeof MyEvent.Type;\n\ndeclare const processEvent: (event: MyEvent) => Effect.Effect<void>;\n\nconst subscribeAndProcessEvents = (eventStore: EventStore<MyEvent>) =>\n  pipe(\n    toStreamId('my-stream'),\n    Effect.flatMap((streamId) =>\n      pipe(\n        beginning(streamId),\n        Effect.flatMap((position) => eventStore.subscribe(position)),\n        Effect.flatMap((eventStream) =>\n          pipe(\n            eventStream,\n            Stream.runForEach((event) =>\n              pipe(\n                Effect.logInfo(`New event received: ${JSON.stringify(event)}`),\n                Effect.flatMap(() => processEvent(event))\n              )\n            )\n          )\n        )\n      )\n    )\n  );\n\nconst program = pipe(\n  sqlEventStore,\n  Effect.map(encodedEventStore(Schema.parseJson(MyEvent))),\n  Effect.flatMap(subscribeAndProcessEvents)\n);\n```\n\n### Event Stream Tracking\n\nTrack stream positions for reliable event processing:\n\n```typescript\nimport { Effect, Option, Schema, Stream, pipe } from 'effect';\nimport { sqlEventStore, EventStreamTracker } from '@codeforbreakfast/eventsourcing-store-postgres';\nimport {\n  type EventStore,\n  type EventStreamPosition,\n  beginning,\n  toStreamId,\n  encodedEventStore,\n} from '@codeforbreakfast/eventsourcing-store';\n\ninterface TrackedEvent {\n  readonly type: string;\n  readonly position: EventStreamPosition;\n}\n\nconst MyEvent = Schema.Struct({\n  type: Schema.String,\n  data: Schema.String,\n});\ntype MyEvent = typeof MyEvent.Type;\n\ndeclare const processEvent: (event: MyEvent) => Effect.Effect<void>;\n\nconst processEventsWithTracking = (\n  eventStore: EventStore<MyEvent>,\n  tracker: {\n    readonly processEvent: <T>(\n      position: EventStreamPosition,\n      event: T\n    ) => Effect.Effect<Option.Option<T>>;\n  }\n) =>\n  pipe(\n    toStreamId('user-events'),\n    Effect.flatMap((streamId) =>\n      pipe(\n        beginning(streamId),\n        Effect.flatMap((startPosition) => eventStore.subscribe(startPosition)),\n        Effect.flatMap((eventStream) =>\n          pipe(\n            eventStream,\n            Stream.mapEffect((event) => processEvent(event)),\n            Stream.runDrain\n          )\n        )\n      )\n    )\n  );\n\nconst program = pipe(\n  Effect.all({\n    eventStore: pipe(sqlEventStore, Effect.map(encodedEventStore(Schema.parseJson(MyEvent)))),\n    tracker: EventStreamTracker,\n  }),\n  Effect.flatMap(({ eventStore, tracker }) => processEventsWithTracking(eventStore, tracker))\n);\n```\n\n## Performance Optimization\n\n### Batch Operations\n\nEfficiently process multiple events:\n\n```typescript\nimport { Effect, Schema, Stream, pipe } from 'effect';\nimport { sqlEventStore } from '@codeforbreakfast/eventsourcing-store-postgres';\nimport {\n  type EventStore,\n  currentEnd,\n  toStreamId,\n  encodedEventStore,\n} from '@codeforbreakfast/eventsourcing-store';\n\nconst UserEvent = Schema.Struct({\n  type: Schema.String,\n  userId: Schema.String,\n});\ntype UserEvent = typeof UserEvent.Type;\n\nconst appendEventsToStream = (\n  eventStore: EventStore<UserEvent>,\n  streamId: string,\n  events: readonly UserEvent[]\n) =>\n  pipe(\n    toStreamId(streamId),\n    Effect.flatMap((stream) =>\n      pipe(\n        currentEnd(eventStore)(stream),\n        Effect.flatMap((position) =>\n          pipe(Stream.fromIterable(events), Stream.run(eventStore.append(position)))\n        )\n      )\n    )\n  );\n\nconst batchAppendEvents = (\n  eventStore: EventStore<UserEvent>,\n  batches: ReadonlyArray<{ readonly streamId: string; readonly events: readonly UserEvent[] }>\n) =>\n  pipe(\n    batches.map((batch) => appendEventsToStream(eventStore, batch.streamId, batch.events)),\n    (effects) => Effect.all(effects, { concurrency: 10 })\n  );\n\nconst program = pipe(\n  sqlEventStore,\n  Effect.map(encodedEventStore(Schema.parseJson(UserEvent))),\n  Effect.flatMap((eventStore) =>\n    batchAppendEvents(eventStore, [\n      {\n        streamId: 'stream-1',\n        events: [{ type: 'test', userId: 'user-1' }],\n      },\n    ])\n  )\n);\n```\n\n### Stream Projection with Checkpoints\n\n```typescript\nimport { Chunk, Effect, Option, Schema, Stream, pipe } from 'effect';\nimport { sqlEventStore, EventStreamTracker } from '@codeforbreakfast/eventsourcing-store-postgres';\nimport {\n  type EventStore,\n  type EventStreamPosition,\n  beginning,\n  toStreamId,\n  encodedEventStore,\n} from '@codeforbreakfast/eventsourcing-store';\n\nconst MyEvent = Schema.Struct({\n  type: Schema.String,\n  data: Schema.String,\n});\ntype MyEvent = typeof MyEvent.Type;\n\ndeclare const updateProjection: (event: MyEvent) => Effect.Effect<void>;\n\nconst updateProjectionForChunk = (chunk: Chunk.Chunk<MyEvent>) =>\n  pipe(\n    chunk,\n    Chunk.map(updateProjection),\n    (effects) => Effect.all(effects, { concurrency: 'unbounded' }),\n    Effect.asVoid\n  );\n\nconst buildProjectionWithCheckpoints = (\n  eventStore: EventStore<MyEvent>,\n  tracker: {\n    readonly processEvent: <T>(\n      position: EventStreamPosition,\n      event: T\n    ) => Effect.Effect<Option.Option<T>>;\n  }\n) =>\n  pipe(\n    toStreamId('user-events'),\n    Effect.flatMap((streamId) =>\n      pipe(\n        beginning(streamId),\n        Effect.flatMap((startPos) => eventStore.subscribe(startPos)),\n        Effect.flatMap((eventStream) =>\n          pipe(\n            eventStream,\n            Stream.chunks,\n            Stream.mapEffect((chunk) => updateProjectionForChunk(chunk)),\n            Stream.runDrain\n          )\n        )\n      )\n    )\n  );\n\nconst program = pipe(\n  Effect.all({\n    eventStore: pipe(sqlEventStore, Effect.map(encodedEventStore(Schema.parseJson(MyEvent)))),\n    tracker: EventStreamTracker,\n  }),\n  Effect.flatMap(({ eventStore, tracker }) => buildProjectionWithCheckpoints(eventStore, tracker))\n);\n```\n\n## Error Handling and Resilience\n\n### Retry Policies\n\n```typescript\nimport { Effect, Layer, Schedule, Schema, Sink, Stream, pipe } from 'effect';\nimport { sqlEventStore } from '@codeforbreakfast/eventsourcing-store-postgres';\nimport {\n  type EventStore,\n  type EventStreamPosition,\n  encodedEventStore,\n} from '@codeforbreakfast/eventsourcing-store';\n\nconst UserEvent = Schema.Struct({\n  type: Schema.String,\n});\ntype UserEvent = typeof UserEvent.Type;\n\nconst createRetrySchedule = () =>\n  pipe(Schedule.exponential('1 second', 2.0), Schedule.intersect(Schedule.recurs(3)));\n\nconst createFixedRetrySchedule = () =>\n  pipe(Schedule.fixed('500 millis'), Schedule.compose(Schedule.recurs(2)));\n\nconst createResilientRead = (baseStore: EventStore<string>) => (position: EventStreamPosition) =>\n  pipe(baseStore.read(position), Effect.retry(createFixedRetrySchedule()));\n\nconst createResilientSubscribe =\n  (baseStore: EventStore<string>) => (position: EventStreamPosition) =>\n    pipe(baseStore.subscribe(position), Effect.retry(createFixedRetrySchedule()));\n\nconst createResilientSubscribeAll = (baseStore: EventStore<string>) => () =>\n  pipe(baseStore.subscribeAll(), Effect.retry(createFixedRetrySchedule()));\n\nconst createResilientEventStore = (baseStore: EventStore<string>): EventStore<string> => ({\n  append: baseStore.append,\n  read: createResilientRead(baseStore),\n  subscribe: createResilientSubscribe(baseStore),\n  subscribeAll: createResilientSubscribeAll(baseStore),\n});\n\nconst program = pipe(sqlEventStore, Effect.map(createResilientEventStore));\n```\n\n### Connection Recovery\n\n```typescript\nimport { Effect, pipe } from 'effect';\n\ninterface ConnectionManager {\n  readonly healthCheckIntervalMs: number;\n  readonly reconnectOnFailure: boolean;\n  readonly maxReconnectAttempts: number;\n}\n\ndeclare const createConnectionManager: (config: ConnectionManager) => Effect.Effect<{\n  readonly onConnectionLost: (effect: Effect.Effect<void>) => Effect.Effect<void>;\n  readonly onConnectionRestored: (effect: Effect.Effect<void>) => Effect.Effect<void>;\n}>;\n\nconst handleConnectionLost = (manager: {\n  readonly onConnectionLost: (effect: Effect.Effect<void>) => Effect.Effect<void>;\n}) =>\n  manager.onConnectionLost(\n    Effect.logWarning('Database connection lost, attempting to reconnect...')\n  );\n\nconst handleConnectionRestored = (manager: {\n  readonly onConnectionRestored: (effect: Effect.Effect<void>) => Effect.Effect<void>;\n}) => manager.onConnectionRestored(Effect.logInfo('Database connection restored'));\n\nconst connectionRecovery = pipe(\n  createConnectionManager({\n    healthCheckIntervalMs: 10000,\n    reconnectOnFailure: true,\n    maxReconnectAttempts: 5,\n  }),\n  Effect.flatMap((manager) =>\n    pipe(\n      handleConnectionLost(manager),\n      Effect.flatMap(() => handleConnectionRestored(manager))\n    )\n  )\n);\n```\n\n## Monitoring and Observability\n\n### Metrics Collection\n\n```typescript\nimport { Effect, Metric, Schema, pipe } from 'effect';\nimport { sqlEventStore } from '@codeforbreakfast/eventsourcing-store-postgres';\nimport {\n  type EventStore,\n  type EventStreamPosition,\n  encodedEventStore,\n} from '@codeforbreakfast/eventsourcing-store';\n\nconst UserEvent = Schema.Struct({\n  type: Schema.String,\n});\ntype UserEvent = typeof UserEvent.Type;\n\nconst eventsWritten = Metric.counter('eventstore_events_written_total');\n\nconst recordEventWritten = pipe(Metric.increment(eventsWritten), Effect.asVoid);\n\nconst createMetricsWrapper = (baseStore: EventStore<string>) => (position: EventStreamPosition) =>\n  baseStore.append(position);\n\nconst eventStoreMetrics = pipe(\n  sqlEventStore,\n  Effect.map((eventStore) => ({\n    ...eventStore,\n    append: createMetricsWrapper(eventStore),\n  }))\n);\n```\n\n### Health Checks\n\n```typescript\nimport { Effect, Schema, pipe } from 'effect';\nimport { sqlEventStore } from '@codeforbreakfast/eventsourcing-store-postgres';\nimport {\n  type EventStore,\n  beginning,\n  toStreamId,\n  encodedEventStore,\n} from '@codeforbreakfast/eventsourcing-store';\n\nconst MyEvent = Schema.Struct({\n  type: Schema.String,\n});\ntype MyEvent = typeof MyEvent.Type;\n\ninterface HealthStatus {\n  readonly status: string;\n  readonly timestamp: string;\n  readonly error?: string;\n}\n\nconst createHealthyStatus = (): HealthStatus => ({\n  status: 'healthy',\n  timestamp: new Date().toISOString(),\n});\n\nconst createUnhealthyStatus = (error: unknown): HealthStatus => ({\n  status: 'unhealthy',\n  error: String(error),\n  timestamp: new Date().toISOString(),\n});\n\nconst performHealthCheck = (eventStore: EventStore<MyEvent>) =>\n  pipe(\n    toStreamId('health-check'),\n    Effect.flatMap((testStreamId) =>\n      pipe(\n        beginning(testStreamId),\n        Effect.flatMap((position) => eventStore.read(position)),\n        Effect.map(() => createHealthyStatus()),\n        Effect.catchAll((error) => Effect.succeed(createUnhealthyStatus(error)))\n      )\n    )\n  );\n\nconst healthCheck = pipe(\n  sqlEventStore,\n  Effect.map(encodedEventStore(Schema.parseJson(MyEvent))),\n  Effect.flatMap(performHealthCheck)\n);\n```\n\n## Testing\n\n### Integration Testing\n\n```typescript\nimport { Chunk, Effect, Layer, Redacted, Schema, Stream, pipe } from 'effect';\nimport {\n  sqlEventStore,\n  EventSubscriptionServicesLive,\n  EventRowServiceLive,\n  PostgresLive,\n  PgConfiguration,\n} from '@codeforbreakfast/eventsourcing-store-postgres';\nimport {\n  type EventStore,\n  beginning,\n  toStreamId,\n  encodedEventStore,\n} from '@codeforbreakfast/eventsourcing-store';\n\nconst UserRegistered = Schema.Struct({\n  type: Schema.Literal('UserRegistered'),\n  userId: Schema.String,\n  email: Schema.String,\n  timestamp: Schema.String,\n});\ntype UserRegistered = typeof UserRegistered.Type;\n\nconst UserEvent = UserRegistered;\ntype UserEvent = UserRegistered;\n\ninterface TestContainer {\n  getHost: () => string;\n  getMappedPort: (port: number) => number;\n  stop: () => Promise<void>;\n}\n\ndeclare const TestContainer: {\n  new (image: string): {\n    withEnvironment: (env: Record<string, string>) => {\n      withExposedPorts: (port: number) => {\n        start: () => Promise<TestContainer>;\n      };\n    };\n  };\n};\n\nconst createTestDatabase = pipe(\n  Effect.promise(() =>\n    new TestContainer('postgres:15')\n      .withEnvironment({ POSTGRES_PASSWORD: 'test' })\n      .withExposedPorts(5432)\n      .start()\n  ),\n  Effect.map((container) => ({\n    container,\n    config: {\n      host: container.getHost(),\n      port: container.getMappedPort(5432),\n      database: 'postgres',\n      username: 'postgres',\n      password: Redacted.make('test'),\n    },\n  }))\n);\n\nconst testStoreAndRetrieveEvents = (eventStore: EventStore<UserEvent>) =>\n  pipe(\n    toStreamId('test-stream'),\n    Effect.flatMap((streamId) =>\n      pipe(\n        beginning(streamId),\n        Effect.flatMap((position) =>\n          pipe(\n            Stream.make({\n              type: 'UserRegistered' as const,\n              userId: 'test-user',\n              email: 'test@example.com',\n              timestamp: new Date().toISOString(),\n            }),\n            Stream.run(eventStore.append(position)),\n            Effect.flatMap(() => eventStore.read(position)),\n            Effect.flatMap(Stream.runCollect),\n            Effect.tap((retrievedEvents) =>\n              Effect.sync(() => {\n                if (Chunk.size(retrievedEvents) !== 1) {\n                  throw new Error('Expected 1 event');\n                }\n                const firstEvent = Chunk.unsafeGet(retrievedEvents, 0);\n                if (firstEvent.type !== 'UserRegistered') {\n                  throw new Error('Expected UserRegistered event');\n                }\n              })\n            )\n          )\n        )\n      )\n    )\n  );\n\nconst runTest = pipe(\n  createTestDatabase,\n  Effect.flatMap(({ config, container }) =>\n    pipe(\n      sqlEventStore,\n      Effect.map(encodedEventStore(Schema.parseJson(UserEvent))),\n      Effect.flatMap(testStoreAndRetrieveEvents),\n      Effect.provide(\n        pipe(\n          Layer.mergeAll(EventSubscriptionServicesLive, EventRowServiceLive),\n          Layer.provide(PostgresLive),\n          Layer.provide(Layer.succeed(PgConfiguration, config))\n        )\n      ),\n      Effect.ensuring(Effect.promise(() => container.stop()))\n    )\n  )\n);\n```\n\n## Production Deployment\n\n### Docker Configuration\n\n```dockerfile\n# Dockerfile for PostgreSQL with extensions\nFROM postgres:15\n\n# Install required extensions\nRUN apt-get update && apt-get install -y postgresql-contrib\n\n# Copy initialization scripts\nCOPY ./sql/init.sql /docker-entrypoint-initdb.d/\n\n# Set up database\nENV POSTGRES_DB=eventstore\nENV POSTGRES_USER=eventstore\nENV POSTGRES_PASSWORD=your-secure-password\n```\n\n### Environment Configuration\n\n```typescript\nimport { Config, Effect, Layer, Redacted, pipe } from 'effect';\nimport {\n  sqlEventStore,\n  EventSubscriptionServicesLive,\n  EventRowServiceLive,\n  PostgresLive,\n  PgConfiguration,\n} from '@codeforbreakfast/eventsourcing-store-postgres';\nimport { type EventStore, encodedEventStore } from '@codeforbreakfast/eventsourcing-store';\n\ninterface YourEvent {\n  readonly type: string;\n}\n\nconst DatabaseConfig = Config.all({\n  host: pipe(Config.string('DB_HOST'), Config.withDefault('localhost')),\n  port: pipe(Config.integer('DB_PORT'), Config.withDefault(5432)),\n  database: pipe(Config.string('DB_NAME'), Config.withDefault('eventstore')),\n  username: pipe(Config.string('DB_USER'), Config.withDefault('postgres')),\n  password: Config.secret('DB_PASSWORD'),\n  maxConnections: pipe(Config.integer('DB_MAX_CONNECTIONS'), Config.withDefault(20)),\n  ssl: pipe(Config.boolean('DB_SSL'), Config.withDefault(false)),\n});\n\nconst createPgConfigLayer = (config: {\n  readonly host: string;\n  readonly port: number;\n  readonly database: string;\n  readonly username: string;\n  readonly password: Redacted.Redacted;\n  readonly ssl: boolean;\n}) =>\n  Layer.succeed(PgConfiguration, {\n    host: config.host,\n    port: config.port,\n    database: config.database,\n    username: config.username,\n    password: config.password,\n  });\n\nconst ProductionEventStoreLayer = pipe(\n  DatabaseConfig,\n  Effect.map(createPgConfigLayer),\n  Effect.map((pgConfigLayer) =>\n    pipe(\n      Layer.mergeAll(EventSubscriptionServicesLive, EventRowServiceLive),\n      Layer.provide(PostgresLive),\n      Layer.provide(pgConfigLayer)\n    )\n  ),\n  Layer.unwrapEffect\n);\n```\n\n## Related Packages\n\n- **[@codeforbreakfast/eventsourcing-store](../eventsourcing-store)** - Core event store interfaces\n- **[@codeforbreakfast/eventsourcing-aggregates](../eventsourcing-aggregates)** - Aggregate root patterns\n- **[@codeforbreakfast/eventsourcing-projections](../eventsourcing-projections)** - Read-side projection patterns\n- **[@codeforbreakfast/eventsourcing-websocket-transport](../eventsourcing-websocket-transport)** - Real-time event streaming\n\n## API Reference\n\nFor detailed API documentation, see the [TypeScript definitions](./src/index.ts) included with this package.\n\n## Contributing\n\nThis package is part of the [@codeforbreakfast/eventsourcing](https://github.com/codeforbreakfast/eventsourcing) monorepo. Please see the main repository for contributing guidelines.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}