{"_id":"@geonosis/testbed","_rev":"27-ae44181dd730b686856a69bed3d4fa87","name":"@geonosis/testbed","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"@geonosis/testbed","version":"1.0.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@1.0.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"5a8e0c0414b7935fde680dd6bf70ccc5282127ee","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-1.0.0.tgz","fileCount":15,"integrity":"sha512-6faGEbyVWEL2n7Ck+I4NMsd+ZIwv919W2wqNpegyXcLxEJL6VtaAnCoBUh9ZW/50k5+hVqEDF1LWNtHLpN+6nQ==","signatures":[{"sig":"MEUCIGQDl4VFudxAbODhadLEJTPYHWlfoH7TVTxcNGHMIDScAiEA1bYB8EoHeuswEFyLLS0x4Iu3W18vdNVyt+Gb8TXsDcI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78327},"main":"dist/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js","./workerd":"./dist/workerd/index.js","./medusa-built":"./dist/medusa-built/index.js"},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_1.0.0_1788106378837_0.773160596675819","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@geonosis/testbed","version":"1.1.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@1.1.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"f49cf3ace42af42a29d6509cac0130bb25eef269","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-1.1.0.tgz","fileCount":15,"integrity":"sha512-oueOV4HdZLVFhitssWsWEy7oGhPtVRmF7KSZRNZjm2a8C5aTMjhbSFgj1zPtvyWGyod0eyEJilmFoQNcqyvLVg==","signatures":[{"sig":"MEYCIQDBekTLZdEF4glu3adGSYyMT5fNRrhwlqHkoJLRbpDQlgIhALsdnCXHoxD2phVVp+8CPqUPXizohYyRMevUCnmDSTLO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79475},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./workerd":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"./medusa-built":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_1.1.0_1788114852285_0.5309149909394628","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@geonosis/testbed","version":"1.2.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@1.2.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"c71fb9cb89a2b12458754c99c6afd661679a7629","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-1.2.0.tgz","fileCount":15,"integrity":"sha512-w+vC75Vy62ZmYpVdS2lBuPN7DLJE2YhUMKwwatht/P/47OY6NyDDaDHf8FpPU6Ea50q2lFrqOa9h3Fojs2rlnA==","signatures":[{"sig":"MEUCIAL2c1NWkbuwUNqgzazt5wuomhi1Xd3sHz2iwVlTBfcVAiEAtSFwyu94f+/fA4LATnOAqlIjU/b7BeAyS67MWZyGZUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79475},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./workerd":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"./medusa-built":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_1.2.0_1788119038468_0.041675036592851544","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@geonosis/testbed","version":"1.3.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@1.3.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"40aedced5bd3ab3fd293db8de25c6846ce514936","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-1.3.0.tgz","fileCount":23,"integrity":"sha512-znZRbAsb+nUKvuVnvP1dOGbXAMMSdwEtcaap0dgW+1pEEZ4SaX3GDwqpHHMIPTcQHRjVnVMdudO2rEoqzsO5Mg==","signatures":[{"sig":"MEUCIFgLw8SRJ2vS9TPgSK1gLY6KCUD/23GH1wRnwvHQ+1jqAiEAjpeRiOMCWuLysrEig+WX6Bf4xRIbBDtWbWLwD1qHnNs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132570},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_1.3.0_1788254759351_0.03010304916782136","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@geonosis/testbed","version":"1.4.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@1.4.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"f37fc8102ce01c4bfdc2260ccac6cb75bd4a412d","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-1.4.0.tgz","fileCount":23,"integrity":"sha512-htb8g2SPhOXLAe9l/npWA5QtdkSvwJjX8rS7LswO0rc0XDAJQZiDnTmzIW/0i280Z+KPlGEVLVKACDF35xm7yg==","signatures":[{"sig":"MEYCIQDF7vgqLyA28r5bFbtvfQ7cV/FFFbHyVvtX2PQatR1hdgIhAK56na18v3Eth9haxRRLG3DmhiUyFa/aNkS7YRmgRwWv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132570},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_1.4.0_1788268908138_0.4591052101464921","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@geonosis/testbed","version":"2.0.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.0.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"186e0723e281a382b521fe3e114a80433b38946b","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.0.0.tgz","fileCount":23,"integrity":"sha512-kTQGcamJctholCSWOfATRUsw7PQEpyMmDy2ml3CrWnrc2qKQybxwcmghEu+bgrx1UvSeltZuOjQGsoXEfTG+jw==","signatures":[{"sig":"MEUCIBNrehBqCPsv0WwiqdupWy1uxTPVBHRuCjfjfL5Gve4CAiEA4PMpnIauK76kif40jQSok70evOASPPy5qfNIvpIZUJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135248},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.0.0_1788332151756_0.33168643455681424","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@geonosis/testbed","version":"2.1.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.1.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"55f5d9d45ca1d2bbf1fd395a5101e137f7bb5d3a","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.1.0.tgz","fileCount":23,"integrity":"sha512-oV/pd7VV2D+2t4RrzocSmAG3ivAvePSR2bJTykCLcKvBRU+XpMAjxs11EmkZdbn4+g7ALpXHE9W8PakJtxn7+g==","signatures":[{"sig":"MEQCIDvAo3qelwLWW4bOexiomB/D5GCBzatrxTQQZPqGSpXLAiBEECz+ShcK8TbMoXJTJeBmsYYfevLlnCfnS9xqJa8HPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135210},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.1.0_1788357160741_0.2662341056494788","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@geonosis/testbed","version":"2.2.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.2.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"f482707796548b4bedca181169599aec77b6ec09","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.2.0.tgz","fileCount":23,"integrity":"sha512-uUrxfZb++657XOvZJZ19pmL0yDYzNF3ViJ3xyh4o3P+MjfBQxQ8Q/bHkxAck3SZy8BMovq3J5irSI34wuZH1Zg==","signatures":[{"sig":"MEYCIQDxOV/xk4JHKcDNcN5sr1nx3c2JxI5VENFLkND39eL9DAIhAJdMhoNcOGnDsUhcxReIH55ApmGQgEsqQF+fl+3YAVWR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139209},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.2.0_1788369600624_0.13583222207682177","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@geonosis/testbed","version":"2.3.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.3.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"b2942a535ce836fd772e896349eb86d46e78ce05","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.3.0.tgz","fileCount":23,"integrity":"sha512-m+8pwRHe6wME/IKWEuDe7+795MR/Q+tcIIamARZT217c2MJ1OOkxZSsj2DxRgrgRmIto349Wzq/AXrVnWIhTAw==","signatures":[{"sig":"MEYCIQD3mytvOhiBamlzvazTUaffPI8LjVOXJ0UlJaKhNmUAHwIhAO12DYl8fnDT1h7ie1a13l7MxtKxrlkWXKtw1K7uUbHo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141766},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.3.0_1788419925929_0.27746881145641455","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@geonosis/testbed","version":"2.3.1","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.3.1","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"3e38bae7218352f0f2bffe8220562c26026e0608","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.3.1.tgz","fileCount":23,"integrity":"sha512-XOBXR89+sVcyoXFYGdLriUhj0KNvR09j976QWiMcrJeBIthAO7KIEfJo1AzA9riLwt9PyyGiG2N+7g5TneF6AA==","signatures":[{"sig":"MEQCIAX5nEM234IR7G0aiF1rpuhUtdnMs7BkSXwqQSk6mMmVAiBtC8CW0PNrbYEKcaeuCVh/2EVB1LFlA1J/r/VI0c1qnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141766},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.3.1_1788435299075_0.8439303027608629","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@geonosis/testbed","version":"2.4.2","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.4.2","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"e385958057df9f38432de57f4c44949210fec27a","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.4.2.tgz","fileCount":24,"integrity":"sha512-fNjwcvz02ni12rw0CBwu68LPg11rIiVS2umFsiuaSa5yjB4DzbwOX69aJeEw+B8RtrDKMxb7sIuO2PMUjzK3RA==","signatures":[{"sig":"MEYCIQDJPVjcm70keMwDTQDnwIkYtKCi9u1qsw4ZUKZ3GHSbEwIhAKu+Ff2xAfDjOgvTLzszBWgyqT9UGseV3CxHn3ou4i7D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157500},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.4.2_1788444807510_0.29438696058465874","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@geonosis/testbed","version":"2.4.3","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.4.3","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"cd93aee7b2c25d41eac6b0a46a5519a230dd486b","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.4.3.tgz","fileCount":24,"integrity":"sha512-x4mNwuXme5Jm0LMnCiTG/QevJN+dAeBQBScYoteyfLw7Ixo/xR9sgAGmQ5Gm1kZFlBEY9pSn8N8MXS+bHctwKQ==","signatures":[{"sig":"MEUCIQDENdMdoc+hc33ELFEIlDpmng5o7RdiTD7v27gtx6HlQwIgKPBJ560R96jS9/U0aK1568AHusNDMC9aa7Lxd1iuBhY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCGYBV+0yKOWQUUaHiFdY7YGzBPIuUdwahdIJT6Kx4KVwIhAJFVR8OTVVIcgm1uK0K0M1a7f2Ve2ILoyjQloO5asxha","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157510},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.4.3_1788566250398_0.23461062208666017","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@geonosis/testbed","version":"2.5.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.5.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"486b79788d8bd2f0413bee23f96d8f22aa1b15c8","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.5.0.tgz","fileCount":24,"integrity":"sha512-GGFGwZVvp3LTfNp+LLjkZzNrXlY/XI/DZolli7ejWHPEYuGJpCJuH0dpG4nHdo2XVI/PbSk9Q7YYz0Lx4Yu0ow==","signatures":[{"sig":"MEUCIQDeQqCdQKQ8U21jCqSrZYCy8AG/Jw32p+ku4hhJY7YC6QIgaXUsVOkmGqlDdppQLtH2567MGw2ZQZF6avUGlpF577k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCfYqeG5dpjo5qD70neI5bBjKpOh5PDP2pRhq6rF4pboQIgPsoMHkjUArvMCG0nhosqAs0ZhR2tn01Rckkmit/SXzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157520},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.5.0_1788595448277_0.4527488575718801","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@geonosis/testbed","version":"2.5.1","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.5.1","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"4ea839b2aa441e370cb437e7243d5f029dd4bad9","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.5.1.tgz","fileCount":24,"integrity":"sha512-ON/WKflTirpEooxBPdgyspRJrV7kYKt3hsgcCms97uTEf9QpaVmo3Yq6yMdQQiDDeuJbjLlpiWMA/1gRLdV3Nw==","signatures":[{"sig":"MEYCIQDMYNKRfmGgX9LOHcwDgC9qWTpvnof3Lfg93vBI/5PTNQIhAJvtlD9l1L2ezvvCv5OJay260temq33Jvn4rFNAi3cHi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHZmmwA010nxX9f0Jx+LsssQA0S308G2mu14rDP4LcfvAiEAjxgSiSmtnMssqVOYOk0WttCQf47jqoGcaTbMDxmw50Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157886},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.5.1_1788685810952_0.15746738301398278","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"@geonosis/testbed","version":"2.5.2","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.5.2","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"87906d9f2fa688b05ef2984fe810e7b1695f32bc","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.5.2.tgz","fileCount":24,"integrity":"sha512-jtUpY3tC9uHG/Zo5Teyz0sT+fbgEARfLnTywMd0/zlpK0xRcXNT2F4hkOllkO0Adctqf97D8KnWxapV7eEpRaA==","signatures":[{"sig":"MEYCIQDVShqlVQ/RDwpyxruNiP+MERx2EIQlg9DOO99G8UU6jAIhAOk/+StEv8EEWP8h2LrLJTWLmKenZK738xL3QRwExLWC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD4+Ve4JgEFIhuGF0Xi6ORp52IDNLV1SG6VT6fP1GlMmgIhAJH86HImib1ZHFnmT+j5mvel5Ig31RjCtNQjukWZXTA1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157896},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.5.2_1788701371385_0.6890146879749535","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"@geonosis/testbed","version":"2.5.3","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.5.3","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"3b8690321cf8f4278d2917349da3b0d3d86337e7","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.5.3.tgz","fileCount":24,"integrity":"sha512-UFABRa9Jlyk1h8wtQWMNydbEzmJRNRJKb6Nn4m80RcNy9KOi95ZliKaD8ba4uzXZfn6nwVLdgvEL+DlMkOurHw==","signatures":[{"sig":"MEUCIHSxBPDL/T8E76t55WO+k7u4TuO/HAu6HfDtrjCsr11+AiEAlweq4DU5uD7Gd5pMxWjCsrq4or2tAOgMItcJzZAilKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDosy642I/vhT2LS9utd9Wc6WHC8Jzu8WLHu9ouzk6x7wIhAMxuA1htK4oraAADrM+eve4bcovpDC0r+YvDxuVLFR8L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157906},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.5.3_1788712703331_0.061605065966672035","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@geonosis/testbed","version":"2.6.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.6.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"00f80e8674c5286619f57dad0a637da0b5f9ffb9","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.6.0.tgz","fileCount":24,"integrity":"sha512-+eC4q6rmt4R5IQa++GxGmyMKvlWgWMF3ZpFzZZbQUv9nUtJz7KFMwJV/3uTMEBTOVBOMdEx6zTVkePF32ULPNw==","signatures":[{"sig":"MEQCIG6xp5FZyTuXfCn8jaYPqdnXrrxSdPuwpOJiyPZSToCZAiBON71XHbeE+ggy6LZ31iWS1RscNpqkOe1fqVdbw8Fw0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF9CtvKWdQSuP4X0UGOcCVL+XGshdIjEbg2lTtrFU4azAiAZVH0rA3BRecYZ9PzJVkMXOX7bLICxeJy5Qv8xQl33IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158226},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.6.0_1788776401154_0.37489159970131825","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@geonosis/testbed","version":"2.6.1","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.6.1","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"1d9dd6f9e41ea90197d1eff6b87fe2b31529060f","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.6.1.tgz","fileCount":24,"integrity":"sha512-bDDoHqIkcd8N9tKmnWtreWu47CrxZfVij/qiM3UtCaZw4IZ4iMDLbJCd86/Nk95oSY0aBBJHXO9aUme1nHp6Ig==","signatures":[{"sig":"MEYCIQDB4vyP59QgKuw3YtNcY+/skwO1uXbHCDaPPdIhXMN75wIhAOwZEt7c8WSO0wFe3r4wro9GhLuPxw654Jsozbh6e1QH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGWtu9PTjljLukKm1pUbXethRN0IXjaxjXdC8GYBNrqmAiAY/+2PgAy2aEdNO6N7qo2gPgT7LANuGCil8Zk4FhxAhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158236},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.6.1_1788803974624_0.06587324117771498","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@geonosis/testbed","version":"2.7.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.7.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"7060c91a859a6caa0712d9b350fee611f63ac2e0","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.7.0.tgz","fileCount":24,"integrity":"sha512-QM8D8GWpwxSIIeRBkqZbgnZ0W133FV4i1q5fR32vKRwQF8YcqeqlfC7LHuRx5EnDdKAI4uT8erMM2qFy53YmqQ==","signatures":[{"sig":"MEYCIQCX+u0l6//zarCU8Vf+3jDneX1ZtI2LxDCetpj1AyqioQIhAKx9lNWG7dbJ5Rogkd9VD21ijvgVi8hJwOcvEAgaJCfs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHx61txbsNbqduFPdbtJgTQVOG+P/Et+EP6rkDrypPjVAiBQnqJ8yXtZcYKkV5sBP9Dg3ERW4yYdEr6LvBKnmxbF5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166205},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.7.0_1789209543318_0.5538349481651546","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@geonosis/testbed","version":"2.8.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.8.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"75baeea3848d3dbe4c9c28b6d8de373ff54261b3","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.8.0.tgz","fileCount":24,"integrity":"sha512-Zu/pcWzRfMwrrZDEan40OtTh5KcVBZp6o/KegkJGvsNV43J5NHNmbsNINSNMaGg4UO+4+sb9zOOjK47nAE/MIA==","signatures":[{"sig":"MEUCIQC8LRf6geA5u6hLGLTya58qlH+rEY6OwJADXOVGWQfd8QIgcgGkJnsaKbtq4SKPHM2qbOTWkgbRNHPu8hjRiVzWPaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDCcsPMJ6BO5Vs6A5k/F9wjQA3y4pIW8vsVUr4GD7oF3AiBWkVlhxDLsOWQ5+pZFrcjhGMgO6Kx9GFgzHdnD+Fe0rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166213},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.8.0_1789421413785_0.7709539703185284","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@geonosis/testbed","version":"2.9.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.9.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"814300c86a199f039fd9094623d3e486bc88f359","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.9.0.tgz","fileCount":24,"integrity":"sha512-6LDVS6TqWzSq0hry12pXZiyERUilUKM9Mulicoe5O6xlBd5NfSAhPlN5Y511ntkgOl/oF4jOAJZOHdGUKR2lmg==","signatures":[{"sig":"MEQCIBV42QdnerjMRLOD8CsXpRyBZhl8ZZ0L2/Uif0Djxve/AiBYwN9Q6cMQO4NrAbajboANQsqhyNCPhg+BIyKBToW/wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFoBhxMmGeQoQFJZ0QrB+p+cIl7MAKn4hV75qwv3ikhdAiA8zsGL3YQ2t/Sw23/jHJ4xnw1e73o/EpHsf3Zz70GZCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166223},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.9.0_1789468498947_0.4715235319499935","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"@geonosis/testbed","version":"2.10.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.10.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"67d025f9b4ba4914dc292885c614eaaae3bfe831","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.10.0.tgz","fileCount":24,"integrity":"sha512-FyIZ1RcgkVBgF+CrkAGBo98uTuI8BvfZS47qDi25ajO9HhwAsLxFU8peeTGP4U9SenxLTSYPOq2LyqqeBmuOUQ==","signatures":[{"sig":"MEUCIFusN3mZoo3vZMfqssVW33UthyzyfKQ34lacQbvWgnvDAiEAtk2mYaIUJmNY1JYIv0QTEPdizACbfiAqia0GRHZzKXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEskv7ErGsVqgiGVK23LgvwOLljq9gu58KWHM/h2EtIVAiEAyf7ogUlR54s08XGBkqym+7//TmsdCAwbpEYRlDLSVX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166235},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from dielime's Medusa runner and during.day's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.10.0_1789489913614_0.87780009535837","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"@geonosis/testbed","version":"2.11.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.11.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"f6fc446f6a39bde7e5bb0069ee0a3c85d92b7052","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.11.0.tgz","fileCount":24,"integrity":"sha512-rE3Y3WHEm9Yh7wYTdpXzAzKPGCbzEHgVCLYFeTGpasEBv4hNkdyjQs+x5ejZ8UaHEgOvH7aFq3lYIRDp/1WHbw==","signatures":[{"sig":"MEYCIQD+JlXRsmoa0AGMmPir0lTLVMYMjmtKdMNxI2DuE1tmigIhAO/9VScByZgBTyU8Dq/m9s+R2TrqpWex8jPh7hy5RMzI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCGNr83o9up89xoHosWO0F4UA+hBgN4pXOkwkdDL5TiWQIgaIRK4JZp5E2ZnRdOqKm/3uK5EZNhcZgnIwIG67YDKU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177088},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsx ../../tooling/build-step.ts tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from a Medusa storefront's Medusa runner and a Workers + D1 app's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.11.0_1790271783016_0.6614315660041021","host":"s3://npm-registry-packages-npm-production"}},"2.11.1":{"name":"@geonosis/testbed","version":"2.11.1","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.11.1","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"a150efab99daed6c640e143f4df99f1a1e97711c","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.11.1.tgz","fileCount":24,"integrity":"sha512-Vr9o4nI0lETaT09wwHX+GNs4Q0lFlWzLfLAU1TcQNOjYFuCUj1OC1G8mtxpdXmeTFJs0cZUiZAGufSM4aH/9Lg==","signatures":[{"sig":"MEUCIEUlt98n9pmsbDcdn9zlyviwCjT/5mJFKR38++8tG8ZGAiEA8LXQ3ZGI/AA7zT7XhiT+R1z1FwE81VjvvyvTq/fz20Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDnh0/m5bMdCG0l121turkMFM6cwNMh4NXo56aOeV+i7AIgH589YgaJszTf7odwiJ9moDjwdA5S4ifH+6w1tqP/f4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177099},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsx ../../tooling/build-step.ts tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from a Medusa storefront's Medusa runner and a Workers + D1 app's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.11.1_1790351444328_0.6883556696492188","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"@geonosis/testbed","version":"2.12.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.12.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"97b9415d21fd26fbd23c46e9fca22e215e733e19","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.12.0.tgz","fileCount":24,"integrity":"sha512-e1M4ZTYEbxK68llIBCWx6T93zYVUg/3CfRaQytrWAL2jhDA/2G3mkhVViujeTTgsUSUYmugb7pverLZPHII2zQ==","signatures":[{"sig":"MEQCIEwMt1sMzOQr5MFEEZzdY75KU1HAVCWqi5iW2E5o5ZJ3AiBti8QjJFkDWftK1FaL34I571D3lWptoD19GYQg4UT9KQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGSv7dxMSqvyl15vV1mqbz/tThg/YB/BI/9GD+P4m0vYAiEA3KKQnmJnYrXqUou/S4iNXe9+HxuoR3m0RcdB8ITu27o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177110},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsx ../../tooling/build-step.ts tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from a Medusa storefront's Medusa runner and a Workers + D1 app's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.12.0_1790356300685_0.20077730434832675","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"@geonosis/testbed","version":"2.13.0","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"license":"Apache-2.0","_id":"@geonosis/testbed@2.13.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"75b422081d7da2278b4f102d2325bbabda63e32f","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-2.13.0.tgz","fileCount":24,"integrity":"sha512-t4H2S2cOeoMlQ0QsHHadeI3rMYe+gPVjhXPfTZSUzQ/SnE87p9RbYX7hCMtFAeOOQNQCCe6PsFV9LDq1QzG/3w==","signatures":[{"sig":"MEQCIFtlmEo8LQpr+pDBUKLM6nqHv72vE89kMfaD6amqHkfGAiAJQ6UEWEH601Aeo2N7S8bkuadkRnPxnx6cTZ9S2eFCFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDzOkCHN/IA3WnVMRrU327S+hxt4T4QencwgPnRxeGa/QIhANAOGFJ/b0D+znl+tAVl9r3m2PAW1SXiZs6gTeKRW7Mp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168459},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsx ../../tooling/build-step.ts tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from a Medusa storefront's Medusa runner and a Workers + D1 app's workerd cell.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testbed_2.13.0_1790432639232_0.6892524557800066","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"@geonosis/testbed@3.0.0","bin":{"geonosis-testbed":"bin/geonosis-testbed.mjs"},"dist":{"shasum":"f97bea13c2653cf0fde53bcdf73efb3af788aa92","tarball":"https://registry.npmjs.org/@geonosis/testbed/-/testbed-3.0.0.tgz","fileCount":52,"integrity":"sha512-EM0RpdQ//0NhBsmsn9jO5aa4QfaNQTwfx67RWxCF8+GvOJUxkjHuaFVqu0WSoc8Y+3PHzbPhIRSLj40ZWxr6RQ==","signatures":[{"sig":"MEQCIFI0S8h0tZZeVN1+JfQe2Zrm3uovxyWPuTeddAmA4ANXAiBXaG9gzmtuvD7TtoTQX1NwL0RvHoCgzHRzlI/iMi/FXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAGemu4Dq+GogOnPmjM7hE3iU/2wQrjSdtiCJ5uSH1zYAiEA0Z9QCc4GxoUf7CZXPI2yq2msMPCQUXvBdW24Tk+8nfo="}],"unpackedSize":168052},"main":"dist/index.cjs","name":"@geonosis/testbed","type":"module","types":"./dist/index.d.ts","engines":{"bun":"^1.4.2","node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./workerd":{"import":{"types":"./dist/workerd/index.d.ts","default":"./dist/workerd/index.js"},"require":{"types":"./dist/workerd/index.d.cts","default":"./dist/workerd/index.cjs"}},"./medusa-built":{"import":{"types":"./dist/medusa-built/index.d.ts","default":"./dist/medusa-built/index.js"},"require":{"types":"./dist/medusa-built/index.d.cts","default":"./dist/medusa-built/index.cjs"}}},"license":"Apache-2.0","scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"bun ../../tooling/build-step.ts bun ../../tooling/bundle.ts","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"version":"3.0.0","_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from a Medusa storefront's Medusa runner and a Workers + D1 app's workerd cell.","directories":{},"maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/testbed_3.0.0_1790528999511_0.061563481985774215"}}},"time":{"created":"2026-08-30T16:12:58.662Z","modified":"2026-09-27T17:09:59.764Z","1.0.0":"2026-08-30T16:12:58.972Z","1.1.0":"2026-08-30T18:34:12.416Z","1.2.0":"2026-08-30T19:43:58.612Z","1.3.0":"2026-09-01T09:25:59.488Z","1.4.0":"2026-09-01T13:21:48.272Z","2.0.0":"2026-09-02T06:55:51.897Z","2.1.0":"2026-09-02T13:52:40.874Z","2.2.0":"2026-09-02T17:20:00.774Z","2.3.0":"2026-09-03T07:18:46.060Z","2.3.1":"2026-09-03T11:34:59.201Z","2.4.2":"2026-09-03T14:13:27.628Z","2.4.3":"2026-09-04T23:57:30.513Z","2.5.0":"2026-09-05T08:04:08.366Z","2.5.1":"2026-09-06T09:10:11.039Z","2.5.2":"2026-09-06T13:29:31.478Z","2.5.3":"2026-09-06T16:38:23.427Z","2.6.0":"2026-09-07T10:20:01.241Z","2.6.1":"2026-09-07T17:59:34.720Z","2.7.0":"2026-09-12T10:39:03.407Z","2.8.0":"2026-09-14T21:30:13.887Z","2.9.0":"2026-09-15T10:34:59.033Z","2.10.0":"2026-09-15T16:31:53.724Z","2.11.0":"2026-09-24T17:43:03.122Z","2.11.1":"2026-09-25T15:50:44.448Z","2.12.0":"2026-09-25T17:11:40.785Z","2.13.0":"2026-09-26T14:23:59.326Z","3.0.0":"2026-09-27T17:09:59.592Z"},"license":"Apache-2.0","homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/testbed","keywords":["testing","fixtures","integration","medusa","workerd","postgres"],"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/testbed"},"description":"The fixtures law as code, one adapter contract for an integration harness, and the conformance suite an adapter has to pass. Extracted from a Medusa storefront's Medusa runner and a Workers + D1 app's workerd cell.","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"readme":"# @geonosis/testbed\n\nThrough the front door: `geonosis testbed` — the metapackage pins this and every other kit tool at\nONE version, and passes the exit code through unchanged.\n\nAn integration harness is not its engine. It is the **arrangement around one engine call**: where\nfixtures live and that nothing outside them is readable, what a database is called and how long it\nlives, what the network may reach, and who boots it. Two shipping repos wrote that arrangement\nseparately — a Medusa storefront around `medusaIntegrationTestRunner`, a Workers + D1 app around workerd and a Postgres\ncell — and neither one's arrangement needs its engine in order to be expressed. This package is the\narrangement; the engines stay peer dependencies of the repo that runs them.\n\nWhat the two harnesses really do, measured file by file, is in\n[`docs/testbed-inventory-2026-08-30.md`](../../docs/testbed-inventory-2026-08-30.md).\n\n```bash\npnpm add -D @geonosis/testbed\n```\n\n## The fixtures law\n\n```ts\nimport { fixturesOnly } from '@geonosis/testbed'\n\nconst fixture = fixturesOnly(new URL('./__fixtures__', import.meta.url).pathname)\n\nfixture('invoices', 'march.yaml') // -> /…/__fixtures__/invoices/march.yaml\nfixture('..', 'Purchase Orders & Specs') // throws\n```\n\nA Workers + D1 app's §4.3 — \"a test reads and writes ONLY `apps/web/__tests__/__fixtures__/`\" — exists\nbecause the directory next door in that repo holds real customers' documents. Its own guard compares\nstrings, which three shapes get past, and all three are refused here:\n\n| shape | what a string-prefix guard does |\n|---|---|\n| `fixture('/etc/passwd')` | `resolve` reads /etc/passwd; `join` quietly reads `<root>/etc/passwd` |\n| a sibling named `<root>-production` | `resolved.startsWith(root)` is true, and it is a different directory |\n| a symlink inside the root pointing out | every character of the path is inside the root |\n\nThe first is refused for naming an absolute path rather than reinterpreted; the second by comparing\nagainst `root + path.sep`; the third by resolving through `realpath`. A path that does not exist yet\n— a fixture about to be written — is judged as if it had been.\n\n## Defining a testbed\n\n```ts\nimport { createHash } from 'node:crypto'\nimport { defineTestbed } from '@geonosis/testbed'\n\nexport const testbed = defineTestbed({\n  adapter: myAdapter,\n  database: {\n    name: (suite) => createHash('sha1').update(suite).digest('hex').slice(0, 12),\n    per: 'suite',\n  },\n  fixtures: new URL('./__fixtures__', import.meta.url).pathname,\n  network: 'none',\n})\n```\n\n`per` is `'suite'` (one database per `describe`), `'file'`, or `'run'` (one cell for the whole run,\nemptied per test). Both are idioms a consumer already runs.\n\nEverything it can refuse, it refuses **when it is defined**, not at the first boot:\n\n- an adapter with no `id` — every diagnostic names it\n- an adapter declaring `snapshot` without `restore`, or the reverse: half of per-test isolation is\n  not isolation\n- a `per` it does not know — a config read from JSON has whatever spelling someone typed\n- `network: { allow: [] }` — an allow list of nothing is `'none'` spelt so it reads as permission\n- no fixtures directory\n\nAnd when a database name is derived:\n\n- an empty name\n- a name over **63 bytes** — Postgres truncates there, and the truncation is a NOTICE nobody reads\n- a name a **different key already took**. `sha1(description).slice(0, 12)` is 48 bits; two suites\n  that collide share a database, and the second one's reset empties the first one's rows with both\n  green. Neither source repo notices this; this refuses it.\n\n## The adapter contract\n\n```ts\ntype TestbedAdapter<Db> = {\n  id: string\n  boot: (ctx: BootContext) => Promise<{ db: Db; teardown: () => Promise<void> }>\n  snapshot?: () => Promise<void>\n  restore?: () => Promise<void>\n  waitFor?: (kind: string, predicate: () => boolean | Promise<boolean>) => Promise<void>\n}\n```\n\n`boot` is all that is required. The rest is what a particular engine can do: Medusa snapshots to a\nPostgres TEMPLATE database and restores from it before every test; a Workers + D1 app's cell cannot, and\ntruncates instead. The `BootContext` is **frozen**, including its allow-list array — an adapter that\nwrote its own state onto it would carry it into the next boot.\n\n## The conformance suite\n\n```ts\nimport { runAdapterConformance } from '@geonosis/testbed'\n\nit('conforms', async () => {\n  const report = await runAdapterConformance(myAdapter, {\n    probe: { read: (db) => db.rows(), write: (db) => db.insert(…) },\n  })\n\n  expect(report.passed, JSON.stringify(report.checks, null, 2)).toBe(true)\n})\n```\n\nExported because consumers write adapters this repo never sees, and an adapter that has not been\nthrough this is a claim. Each check is a property one of the two harnesses really depends on:\n\n| check | why |\n|---|---|\n| `boot returns a handle` | a boot that resolves with `db: undefined` fails later, somewhere else |\n| `restore before a snapshot is refused` | Medusa spends a `databaseTemplateReady` flag on exactly this; restoring a template nobody took returns whatever the database happened to hold |\n| `restore returns the snapshot` | a no-op `restore` is invisible without writing a row — see the probe below |\n| `waitFor rejects when it never comes true` | a `waitFor` that resolves on timeout is worse than none |\n| `waitFor resolves when it comes true` | and one that never resolves is a hung suite |\n| `teardown is idempotent` | a Medusa storefront wires cleanup to `afterAll` **and** to SIGTERM/SIGINT; on a cancelled run both fire |\n| `boots again after teardown` | a run-lifetime adapter has to survive re-entry |\n\nIt never throws for the adapter's sake — a broken adapter is a failed check carrying its own message\nin `detail`, because a conformance run that dies tells the reader less than one that reports.\n\n**The probe.** This package cannot write a row through someone else's handle, and without writing\none a no-op `restore()` is indistinguishable from a real one. So `restore returns the snapshot` is\n**skipped by name** when no probe is given — `report.skipped` is a separate list from\n`report.checks`, because a check that did not run is not a check that passed. Adapters with no\n`snapshot`/`restore` and no `waitFor` skip those checks and still pass; they are optional, not\nabsent.\n\n## `@geonosis/testbed/medusa-built`\n\nA Medusa storefront's `runIntegrationTest` — 26 lines that 106 integration suites go through — generalised, and\ncarrying the refusals its own comments describe but its code does not make.\n\n```ts\nimport { medusaIntegrationTestRunner } from '@medusajs/test-utils'\nimport { createMedusaIntegrationTest } from '@geonosis/testbed/medusa-built'\nimport { describe } from 'vitest'\n\nexport const { adapterFor, runIntegrationTest } = createMedusaIntegrationTest({\n  describe,\n  root: resolve(import.meta.dirname, '../..'),\n  runner: medusaIntegrationTestRunner,\n})\n```\n\n**The engine is injected, never imported.** `@medusajs/test-utils` is a peer of the repo that runs\nit — a package that reached for it could not be installed by a repo on another runtime, and could\nnot be tested without a database. `MedusaSuiteLike` is a structural type over what the runner really\nhands a suite.\n\n| option | default | why |\n|---|---|---|\n| `root` | required | the app directory |\n| `builtDir` | `.medusa/server` | Medusa's own output; the loaders and migrations must run as in production |\n| `databaseName` | `sha1(description).slice(0, 12)` | a Medusa storefront's derivation, kept exactly — the engine appends `-integration-<worker>` and lowercases |\n| `connectionEnv` | `['DB_HOST', 'DB_PORT', 'DB_USERNAME']` | Medusa's own `getDatabaseURL` keys; `[]` to take its defaults deliberately |\n| `nodeEnv` | `'test'` | `false` when the repo checks it itself |\n| `requireBuilt` | `true` | |\n| `env`, `fixtures`, `waitForMs` | — | `fixtures` is optional: a Medusa storefront's suites build their world through the booted app |\n\n### What it refuses, and why each one is worth a refusal\n\n- **an unbuilt server.** \"`.medusa/server` must be rebuilt before integration tests\" is a law in\n  a Medusa storefront's docs enforced by nothing. Unbuilt, the run dies inside a Medusa loader *after* the\n  database has been created.\n- **`NODE_ENV` that is not `test`.** It selects the in-memory cache, event bus and workflow engine,\n  and it is read while the app loads — setting it afterwards is too late.\n- **a connection variable that is unset.** This is the sharp one. Medusa **defaults every one** of\n  `DB_HOST`/`DB_PORT`/`DB_USERNAME`, so an unset variable is not an error: the suite quietly\n  connects to whatever is on the default host and port. A Medusa storefront's Postgres moved from 5433 to 5434\n  because another project's embedded cell took 5433; with the defaults, a stale environment reaches\n  the other project's database and the suite goes green against it.\n- **two suites that derive one database name.** 48 bits of sha1. They share a database, and each\n  one's reset empties the other's rows, with both green.\n\n### The adapter\n\n`adapterFor(suiteOptions)` wraps what the runner hands a suite. It **attaches** rather than boots —\nthe runner owns the application's lifecycle, creating the database, migrating, snapshotting to a\nPostgres TEMPLATE and restoring from it before every test. Two things it adds:\n\n- **`restore()` refuses when this adapter took no `snapshot()`.** The runner keeps a\n  `databaseTemplateReady` flag for its own `beforeEach`; the `dbUtils` object it hands the suite\n  carries no such guard, so a direct `restore()` returns whichever template was last written.\n- **`waitFor('workflows', predicate)`** drains `utils.waitWorkflowExecutions()` and then reads the\n  predicate, on a deadline, rejecting when it never comes true. The engine calls\n  `waitWorkflowExecutions` in every `afterEach`; a test that asserts on a workflow's side effect\n  needs it *before* the assertion. A Medusa storefront never names it — `grep` over its tree returns nothing.\n\n### The real-engine smoke is the consumer's step\n\nThis package is proven against a **stub** of `medusaIntegrationTestRunner`, because the contract is\nwhat it owns. Booting a Medusa app needs a Postgres, a built server and about two minutes, and none\nof those belong in a kit's suite. The consumer's adoption step is: point one existing integration\nsuite at `createMedusaIntegrationTest`, run `pnpm test:integration`, and confirm the same pass line\nand the same database name as before.\n\n## `@geonosis/testbed/workerd`\n\nA Workers + D1 app's harness, in three pieces. Each one is a mechanism its repo built after a specific\nfailure, and each is proven here against stubs of the engine — the real workerd pool and a real\nPostgres are the consumer's.\n\n### 1. The runner whose exit code lies\n\n```ts\nimport { runStrict, verdictOf } from '@geonosis/testbed/workerd'\n\nconst { code, verdict } = await runStrict({ args: ['vitest', 'run', ...process.argv.slice(2)] })\nif (!verdict.ok) {\n  process.stderr.write(`\\n${verdict.why}\\n`)\n  process.exit(1)\n}\nprocess.exit(code)\n```\n\n`@cloudflare/vitest-pool-workers` **exits 0 with failing tests**. Every workerd green in the repo\nthis comes from was hollow until something read the report instead of the exit code. `verdictOf`\nrefuses three things:\n\n| report | verdict |\n|---|---|\n| absent | a crash before the reporter is not a pass |\n| `{ success: false, numFailedTests: 0 }` | the run did not finish; **checked first**, because anything counting failures reads this as a pass |\n| `{ success: true, numFailedTests: n > 0 }` | `n` test(s) failed |\n\nA clean report does **not** launder a non-zero exit: `code` is returned unchanged and the caller\nexits with it.\n\nThis judgement is deliberately **not** shared with `@geonosis/ratchet`'s `testFailures` counter,\nwhich reads the same field. They answer different questions — \"should this process fail\" versus \"how\nmuch debt is there\" — and they are installed for different reasons; coupling them would put a\nratchet in every repo that only wanted a harness. The contract is written down here, and each\npackage holds it independently. The proof is a real spawned process that lies in each of the three\nways above, not a mocked one.\n\n### 2. The config that has no remote binding to call\n\n```ts\nimport { deriveLocalOnlyConfig } from '@geonosis/testbed/workerd'\n\nconst configPath = deriveLocalOnlyConfig({\n  dropVars: ['LOCAL_AI_URL'],\n  source: new URL('./wrangler.jsonc', import.meta.url).pathname,\n})\n```\n\nAn `ai` binding is **always** remote: the pool resolves the account against `api.cloudflare.com` the\nmoment it sees one, before a single test runs — a network call, a credential and a bill in the\nmiddle of the suite. So the test worker gets the real config with those bindings removed.\n\n- **Derived, not duplicated.** Read from the real `wrangler.jsonc` on every start, so a binding added\n  there is in the suites the same day. This is what makes \"tests never call a model\" a property of\n  the runtime rather than a promise about the code: in the test worker there is no `env.AI` to call.\n- **Every named environment too.** They inherit nothing per binding, so each repeats it, and a block\n  missed is a network call nobody expected.\n- **Written BESIDE the source**, and a `target` containing a path separator is **refused**: every\n  relative path in a wrangler config (`main`, `migrations_dir`) resolves against the directory the\n  config sits in, so a copy one level deeper resolves `src/index.ts` to a file that is not there.\n- JSONC's line comments and trailing commas are stripped, since `JSON.parse` refuses both.\n\n`remoteOnly` defaults to `['ai']` — a platform fact, not a repo's — and is overridable.\n\n### 3. One cell for the run\n\n```ts\nimport EmbeddedPostgres from 'embedded-postgres'\nimport { createCellServer, workerdAdapter } from '@geonosis/testbed/workerd'\n\nconst cell = await createCellServer({\n  cluster: ({ databaseDir, port }) =>\n    new EmbeddedPostgres({ databaseDir, password: 'postgres', persistent: false, port, user: 'postgres' }),\n  prepare: async (connectionString) => {\n    await migrateCell(connectionString)\n    return appConnectionStringOf(connectionString, 'app-password')\n  },\n})\n```\n\n`embedded-postgres` is a **peer**, injected as a factory. `CELL_CONNECTION_STRING` (rename it with\n`connectionStringEnv`) takes an externally-owned cell instead — which is how the same suite runs\nagainst every Postgres major a deployment might use — and that one is prepared and **never\nstopped**: in CI the container is thrown away, and a managed instance is not the suite's to stop.\nOtherwise a throwaway cluster starts on a port found by binding `:0`, in a fresh temp directory.\n\nTwo things this adds to the shape it came from: `stop()` is idempotent, and **a cluster whose\n`prepare` throws is stopped rather than leaked** — a failed migration in that repo leaves a Postgres\nand its data directory up for the rest of the session.\n\n`workerdAdapter({ cell, execute, tables, before })` is the adapter. There is no template database,\nso `restore()` is a `TRUNCATE`, and **empty is the only state a truncate can return to**:\n`snapshot()` therefore does not record the current rows, it *empties* the tables and marks that\npoint. That is exactly the split the source repo already has between its two setup files — the\ntruncate-per-test suites are the unseeded ones. A suite that seeds re-seeds after each restore.\n\n`truncateAllStatement(tables)` is one statement for any number of tables, because a `DELETE` per\ntable inside a transaction cost twenty-eight round trips before every test. It refuses an empty\ntable list (a reset that resets nothing reads as isolation) and any name that is not a plain\nidentifier, since the list is usually derived from a schema object.\n\n**No `waitFor`.** The source repo has none — its raised timeouts carry the waiting — so this adapter\ndeclares none, and the conformance suite reports those checks as `skipped` rather than passed.\n\n### What a workerd suite costs\n\nThe floor is **per spec FILE**, and it is workerd instantiating the worker under test — not your\nsetup, not your fixtures.\n\n| measured | figure |\n|---|---|\n| a worker-under-test spec file, `@cloudflare/vitest-pool-workers` on a wrangler `main` worker (2026-09-02, a consumer's Workers repo) | ~4.5 s per file; setup hooks 0.2 s of it |\n| this repo's own single workerd spec file (2026-09-03, macOS, node 24.16) | 4.61 s wall, of which 1.09 s is the tests and 0.19 s collection — the remaining ~3.3 s is the pool |\n\nSo a suite of twelve spec files costs a minute before a single assertion runs, and splitting a file\nin two costs another 4.5 s. **Fewer spec files, or a targeted run, is the only lever that moves that\nnumber.** Cutting setup work moves 0.2 s of it.\n\n`isolate: false` and `singleWorker` share one module graph across files. Measured on the same day:\nthey changed the worker-under-test suite's time by nothing at all and **hung it once**, while\ncutting a plain database package from **77 s to 12.5 s**. The rule that follows:\n\n- a **library** suite — no worker under test, no bindings, code that would run anywhere — may share\n  a module graph, and that is where the 77 s → 12.5 s came from;\n- **never for a worker-under-test suite**: the cost there is instantiating the worker, which is the\n  thing the isolation was paying for, and sharing it buys nothing and can hang the run.\n\n## The database matrix, and `geonosis-testbed`\n\n```jsonc\n// geonosis.json\n{\n  \"testbed\": {\n    \"matrix\": {\n      \"command\": \"bun run --cwd packages/db test\",\n      \"connectionEnv\": \"CELL_CONNECTION_STRING\",\n      \"connectionString\": \"postgres://postgres:postgres@127.0.0.1:5432/postgres\",\n      \"majors\": [\"17\", \"18\"],\n      \"name\": \"cells\",\n      \"setup\": [\"bun install --frozen-lockfile\"]\n    }\n  }\n}\n```\n\n```bash\ngeonosis-testbed matrix --out .github/workflows/cells.yml\ngeonosis-testbed strict -- packages/db      # judge the report, not the exit code\n```\n\nThe rendered workflow is `templates/ci/db-matrix.yml`, which is checked in **as the renderer's own\noutput for the documented example** and tested to still equal it — a template committed beside a\ngenerator drifts from it the first time either is touched, and then the thing people copy is not the\nthing the code produces.\n\n**Two jobs, not one, and that is the point.** The source repo runs its data layer against Postgres\n17 and 18 in a matrix, and against an *embedded* cluster in every other job — because the connection\nvariable is unset there. The embedded leg is real, it is tested, and it is invisible: nothing in\nthat workflow says the suite has a second backend. Here it is `<name>-embedded`, with a name.\n\nWhat the renderer refuses: a matrix with no legs (`embedded: false` and no majors), no command, a\njob name that is not a name, and — the one that matters — **majors with an empty connection string**,\nwhich would run the embedded cell under a container's name and go green twice against the same\ndatabase while claiming to have tested two.\n\n`fail-fast: false` and the `pg_isready` health check are not decoration: one major failing must not\nhide whether the other passes, and without the health check the first connection races the container\nand the suite fails for a reason that is not in the code.\n\n## The rule: `no-mock-db-in-integration`\n\nPreset **`testbed`**, in `@geonosis/oxlint-plugin-biological-architecture`.\n\n```jsonc\n\"biological-architecture/no-mock-db-in-integration\": [\"error\", {\n  \"dbModules\": [\"@repo/db\"],\n  \"integrationDirs\": [\"__tests__/integration\"],\n  \"mockNames\": []\n}]\n```\n\nAn integration suite that mocks its database proves that a procedure calls what it says it calls,\nand nothing about what comes back — which is what an integration test exists to check.\n\n**Both consumers of this kit pass it today**, measured: a Medusa storefront's 106 integration files contain zero\n`vi.mock` calls, and a Workers + D1 app's whole tree contains zero. The landmine is a third repo's, where 35\nof 43 test files share one context helper carrying `db: mockDb`, and they are the gate. That is why\n`integrationDirs` and `dbModules` are required with no defaults — a default drawn from two repos\nthat do not have the pattern would match nothing and report a clean tree it never looked at.\n\n`mockNames` is for the shape no mock call can be seen in: a handle built in a setup file and threaded\nthrough a helper. It is empty by default; a repo that has one names it.\n\n## Adoption status — **NOT adopted** (D-027)\n\nNeither consumer depends on this package yet. `grep @geonosis/testbed` in a Medusa storefront and in a Workers + D1 app\nfinds nothing. What follows is what each migration is, written from what each repo measurably has\ntoday — see [`docs/testbed-inventory-2026-08-30.md`](../../docs/testbed-inventory-2026-08-30.md)\nfor the numbers.\n\n### A Medusa backend\n\nReplace the one integration runner every suite imports with:\n\n```ts\nimport { medusaIntegrationTestRunner } from '@medusajs/test-utils'\nimport { createMedusaIntegrationTest } from '@geonosis/testbed/medusa-built'\nimport { describe } from 'vitest'\n\nexport const { adapterFor, runIntegrationTest } = createMedusaIntegrationTest({\n  describe,\n  root: resolve(import.meta.dirname, '../..'),\n  runner: medusaIntegrationTestRunner,\n})\n```\n\nNothing else changes: the default `builtDir` is `.medusa/server`, the default derivation is the\n`sha1(description).slice(0, 12)` it already uses, and the default `connectionEnv` is the `DB_*` set\nits `setup.ts` already fills in. **The same 106 suites must produce the same database names**, which\nis the equivalence check — `moduleName` is printed by the engine's own `Creating database …` line.\n\nWhat it gains on the day it lands: a refusal instead of a loader crash when `.medusa/server` is\nstale, a refusal instead of a silent connection to port 5432 when the `DB_*` environment is not\nset — the failure that moving Postgres from 5433 to 5434 made possible, and which lands on another\nproject's database — and a refusal instead of a shared database when two suite descriptions collide\nin 48 bits of sha1.\n\nThen `.github/workflows/`: a Medusa storefront's CI is 26 lines and **has no integration job at all**. 106\nsuites exist, none runs on a push. `geonosis-testbed matrix` renders one; `majors` for a Medusa\nbackend is the Postgres versions it supports, and the embedded leg does not apply, so\n`embedded: false`.\n\n`no-mock-db-in-integration` costs nothing to enable — 0 findings today, proven not silent in\n`proofs/022-W9-consumers/`.\n\n### a Workers + D1 app\n\nFour replacements, none of which changes what runs:\n\n| today | becomes |\n|---|---|\n| `scripts/vitest-strict.ts` (57 lines, the `test` script of 3 packages) | `geonosis-testbed strict`, or `runStrict`/`verdictOf` |\n| `apps/api/testing/local-only-config.ts` (98 lines) | `deriveLocalOnlyConfig({ dropVars: ['LOCAL_AI_URL'], source })` |\n| `packages/db/testing/cell-server.ts` (72 lines) | `createCellServer({ cluster, prepare })` with `EmbeddedPostgres` injected |\n| `packages/db/testing/reset.ts` | `workerdAdapter({ before: ['drop trigger …'], tables })`, or `truncateAllStatement` |\n\nIts `.github/workflows/ci.yml` `cells` job becomes `geonosis-testbed matrix` output, with one\ndifference that is the reason to do it: the **embedded leg becomes a named job**. Today it is real\nand tested and invisible, running in every job where `CELL_CONNECTION_STRING` happens to be unset.\n\nTwo behaviour changes it gets for free: `stop()` becomes idempotent, and a cluster whose `prepare`\nthrows is **stopped** instead of left running with its data directory for the rest of the session.\n\nNothing its `CLAUDE.md` names is proposed for deletion here, per the 2026-08-30 boundary: `§4.3`'s\nfixtures law stays its law — `fixturesOnly` is that law with three more refusals in it, not a\nreplacement for the sentence.\n\n## Consumable from CommonJS\n\nA Medusa backend is `module: Node16` CommonJS **by upstream requirement**, not by preference. This\npackage ships both builds and a `require` condition carrying its own `.d.cts`, so a static import\ntype-checks and `require()` works:\n\n```ts\nimport { defineTestbed } from '@geonosis/testbed'      // ESM, module: Node16 or ESNext\nconst { defineTestbed } = require('@geonosis/testbed') // CommonJS\n```\n\nAn ESM-only package is a wall for such a backend, and no amount of parity gets over it: a Medusa storefront\nmeasured `@geonosis/testbed` at 15/15 identical and still could not adopt it, because a static\nimport is TS1479 and `await import()` cannot serve the synchronous `describe()` registration its 107\nsuites are built on.\n","readmeFilename":""}