{"_id":"@alwaysmeticulous/backend-recorder-workerd","_rev":"20-1ec6dd906a1db2ee861e9770b4ecb06e","name":"@alwaysmeticulous/backend-recorder-workerd","dist-tags":{"latest":"2.339.0"},"versions":{"2.308.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.308.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.308.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"a275aba267ea94ab7571a8ae6b8765a74caaf0fe","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.308.0.tgz","fileCount":20,"integrity":"sha512-Kxs8fTzJigSHlPGYfo1z5ch7VENQFdLq82iw409BtcEDsXk+CE0uQWPFScQANWL9JHhxQwa521OPCKs7z6c9Wg==","signatures":[{"sig":"MEYCIQDN9gFRATi8SBxI1vPMKk9+ryDs6ThI7X6R1VIJFBCcAAIhAKszluSpqlW7sCYPA5FL2OALB/LSiWHshi4rjkyWLNYe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49748},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"15ac00a53895b198eeff06ffe35a5933d059b78c","scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"meticulous.eng","email":"eng@meticulous.ai"},"repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.11.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.7","vitest":"catalog:","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.308.0_1785172181060_0.38990297410057284","host":"s3://npm-registry-packages-npm-production"}},"2.315.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.315.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.315.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"55e5cd5d9cad65dd1c83f6c5acf0a8dc20d7bd66","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.315.0.tgz","fileCount":20,"integrity":"sha512-NJ8s/KfA8tdYTIygjD3Ebd9T0+JXFsZA1p1U4EShtw8pi7l1/rklpxZTmMw2m2Y55Ss6X4ENI4ZbgqrrhMRiGA==","signatures":[{"sig":"MEUCICSBntOn0ybvAm239BJac4G5mi2isgebMJhZ+hBweBDfAiEAzoNfkQq39uxUR9/HU4SMtIn6upQ7WcbbkyEK48q3vSQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52608},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.315.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/d65c07a261e677ea448aed08648f152e/alwaysmeticulous-backend-recorder-workerd-2.315.0.tgz","_integrity":"sha512-NJ8s/KfA8tdYTIygjD3Ebd9T0+JXFsZA1p1U4EShtw8pi7l1/rklpxZTmMw2m2Y55Ss6X4ENI4ZbgqrrhMRiGA==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.16.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.7","vitest":"^4.1.7","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.315.0_1785409838459_0.6899326508661099","host":"s3://npm-registry-packages-npm-production"}},"2.319.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.319.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.319.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"94e539ccaf9402d5f3f0e6210367daa387583958","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.319.0.tgz","fileCount":36,"integrity":"sha512-cieKjMYH9XV07abgGrRb59LYJ4LqF4A85BK8bjFua8if2H5y/VQbJv/BTaE+dqrg23ZCmVlS2LdrD6qZ9NlzGw==","signatures":[{"sig":"MEYCIQD3hUTE+agUmX0cYjzf1ff0s52ZL8aI7xaAQe298bVavgIhAP9dGq53KQ3txYTracUfk40Iv4bIxIG/qS0ZhHTY4piD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150172},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.319.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/14b178a5e889cd79f345a8dae2c73c92/alwaysmeticulous-backend-recorder-workerd-2.319.0.tgz","_integrity":"sha512-cieKjMYH9XV07abgGrRb59LYJ4LqF4A85BK8bjFua8if2H5y/VQbJv/BTaE+dqrg23ZCmVlS2LdrD6qZ9NlzGw==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.16.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.7","vitest":"^4.1.7","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.319.0_1785588738242_0.7127273569841144","host":"s3://npm-registry-packages-npm-production"}},"2.321.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.321.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.321.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"11e0420d25f1a829c3af823d2f7330562e4477a9","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.321.0.tgz","fileCount":40,"integrity":"sha512-Mkvhh4kwBUHN7dmjuPjN2sTdY/owApWry5rIQgEev0zcn8u2fBCKvNz1prZurPsFfYmFNhyN+ASrrwkYLRTMtg==","signatures":[{"sig":"MEYCIQDGvv3gGm6nWBJnc13Gwgskmv/rpnOFTnhTvYlZQ73C2QIhAPrWmzjd7MGkN3qO3nEEoJhB4i0JMc9tNoH6xUoZ6a0T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213862},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.321.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/f435174c7b3327bf52a0707f658b4903/alwaysmeticulous-backend-recorder-workerd-2.321.0.tgz","_integrity":"sha512-Mkvhh4kwBUHN7dmjuPjN2sTdY/owApWry5rIQgEev0zcn8u2fBCKvNz1prZurPsFfYmFNhyN+ASrrwkYLRTMtg==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.16.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.7","vitest":"^4.1.7","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.321.0_1785762059553_0.06764084886728261","host":"s3://npm-registry-packages-npm-production"}},"2.323.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.323.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.323.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"cb38828bbc01f8eb1c7aea6620895815bdacf310","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.323.0.tgz","fileCount":40,"integrity":"sha512-X6Rp4ss7hjnmlAkNcM6SL3WvOt4uC0kngQmf2D4O2BaaFpnCZK+aiJM7veFmdLczhWhk6Xo8VT06q5V1twdvgw==","signatures":[{"sig":"MEQCIG7fkSl4IEofVDbk5m7pe2jBZEXn0gtjF9VuGU2zQguIAiBC5QW/F0+s3MPE/S6hr1FgaJDf5yuHFgSE3oxlICaWIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":229325},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.323.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/3f20c40aa2d56838c5016f99ab542896/alwaysmeticulous-backend-recorder-workerd-2.323.0.tgz","_integrity":"sha512-X6Rp4ss7hjnmlAkNcM6SL3WvOt4uC0kngQmf2D4O2BaaFpnCZK+aiJM7veFmdLczhWhk6Xo8VT06q5V1twdvgw==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.16.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.7","vitest":"^4.1.7","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.323.0_1786005957969_0.7072649019825723","host":"s3://npm-registry-packages-npm-production"}},"2.324.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.324.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.324.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"fd2c2bb7a6858ec81ef6b24fba3e83389ab416f5","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.324.0.tgz","fileCount":40,"integrity":"sha512-msYyGB9h4+Xn3RgszCyQII23fsE7a6K/vS690iyDOyAcbgSpi6T0wrrQcyx0diKSPKLqQLG442ew37CR+nRSrA==","signatures":[{"sig":"MEYCIQCTruDQsHCvVMX5VnAVrrUoAsPQH0QPlSAbBAgpO/iXAQIhAN1L5GIdKWM26InDwS8wrWAmnUHk05ljKEnPMftIeM7T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231017},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.324.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/2e77b7d0b13117fb93dc172d41241f6e/alwaysmeticulous-backend-recorder-workerd-2.324.0.tgz","_integrity":"sha512-msYyGB9h4+Xn3RgszCyQII23fsE7a6K/vS690iyDOyAcbgSpi6T0wrrQcyx0diKSPKLqQLG442ew37CR+nRSrA==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.16.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.7","vitest":"^4.1.7","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.324.0_1786383258983_0.23755888562217908","host":"s3://npm-registry-packages-npm-production"}},"2.325.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.325.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.325.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"1e344d8ebd12f7d23d0f4305f81a32ac586ebe0d","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.325.0.tgz","fileCount":43,"integrity":"sha512-O+2G3QWfzXbuIfr0di1N02rjZ+bILmgtUMQqCyJ8GKtCBq1idLcAH458Ao95FD7p6T22K6e0QqBxm4lgyTVd0A==","signatures":[{"sig":"MEUCIQCUL3SwT3fkzELg5wSxTpbgEPJaqxKBeMI7UAkW87y5QgIgQRDMEHJ3LzMvYl5wB/mnKAlo2+ZQlDz6XWi2ZIANpPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236988},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.325.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/e53ec8d71b5480e5d920641b4fc848b7/alwaysmeticulous-backend-recorder-workerd-2.325.0.tgz","_integrity":"sha512-O+2G3QWfzXbuIfr0di1N02rjZ+bILmgtUMQqCyJ8GKtCBq1idLcAH458Ao95FD7p6T22K6e0QqBxm4lgyTVd0A==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.16.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.7","vitest":"^4.1.7","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.325.0_1786454730147_0.03663730070010529","host":"s3://npm-registry-packages-npm-production"}},"2.326.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.326.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.326.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"048a06bb40aa54f39969926e10113c497ea6432d","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.326.0.tgz","fileCount":83,"integrity":"sha512-VEiHctN0+I+Z+DDqU13kVnbPy3KeQYZyneHva6L6o7xrDt1DwUkRkzymBEKRHfgF2fL/IqkDW6QPPscIDixa4Q==","signatures":[{"sig":"MEQCIFBUHXS64JQ16/zrNbTvM4VHfQb6qYe0xi6/vxzt7budAiBF/hPbdq58fh1SoK21xRXA6lSIVrlXI6n/lCNWuI+I3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":449731},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.326.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/027a3ebf9b7b80675a12b44691bd64c0/alwaysmeticulous-backend-recorder-workerd-2.326.0.tgz","_integrity":"sha512-VEiHctN0+I+Z+DDqU13kVnbPy3KeQYZyneHva6L6o7xrDt1DwUkRkzymBEKRHfgF2fL/IqkDW6QPPscIDixa4Q==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.17.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.7","vitest":"^4.1.7","postgres":"^3.4.7","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.326.0_1786807158832_0.3024068304678518","host":"s3://npm-registry-packages-npm-production"}},"2.327.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.327.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.327.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"b9f67671389f48485ab5482e7321bfd421dcd719","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.327.0.tgz","fileCount":83,"integrity":"sha512-sAOwmLXn0VFnP4UqzviR+f5giG1u6AhBFxUUTloJz2CQ8Yz2RfV20w7Uji5McZ0imCzG21AsrpmCrkx0Zhdv5w==","signatures":[{"sig":"MEUCIQCJuHlV8zIvEX4khyDw3Ec3OQhjdF4XsGEv1mHuRfkXFwIgC/YYDU8DegvqedsAZkgi4VYsMZHfsyi4mIZG/9jO3oM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":453971},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.327.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/8c3ab2d8eb943e84ce69eb65c81a8ca7/alwaysmeticulous-backend-recorder-workerd-2.327.0.tgz","_integrity":"sha512-sAOwmLXn0VFnP4UqzviR+f5giG1u6AhBFxUUTloJz2CQ8Yz2RfV20w7Uji5McZ0imCzG21AsrpmCrkx0Zhdv5w==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.17.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.7","vitest":"^4.1.7","postgres":"^3.4.7","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.327.0_1787047016360_0.34684776901437786","host":"s3://npm-registry-packages-npm-production"}},"2.329.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.329.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.329.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"5b3632dfe8fbedebc12ff4a624cce59d7eb9d197","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.329.0.tgz","fileCount":99,"integrity":"sha512-A0aSc0xlQJ1TpuiQU44XhQuIs4IE3VFnLL/hCK9qdZgQwEzhvi699ExZpzZ4NQAspvaI/zpFabqOgq8iLpAfVQ==","signatures":[{"sig":"MEUCIQC1xrO7UFdZJrPe4LZ6Mf2Db37dxSMwOLXjxvP37+YK6AIgDn0gZCL3drwFUPCLUSDqRNR96CRelvy4OXl4C+cSlAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1224286},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.329.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./vite":"./dist/vite/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/0ef5ff93d62427ed4b4d77a3b8ccbc18/alwaysmeticulous-backend-recorder-workerd-2.329.0.tgz","_integrity":"sha512-A0aSc0xlQJ1TpuiQU44XhQuIs4IE3VFnLL/hCK9qdZgQwEzhvi699ExZpzZ4NQAspvaI/zpFabqOgq8iLpAfVQ==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.17.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"^8.17.0","tsdown":"^0.21.7","vitest":"^4.1.7","postgres":"^3.4.7","@types/node":"^20.0.0","magic-string":"^0.30.17"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.329.0_1787145521068_0.5903406553535313","host":"s3://npm-registry-packages-npm-production"}},"2.330.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.330.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.330.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"dfcfed4a9c35b5e981eebe4d0dcd9e5fb607ef44","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.330.0.tgz","fileCount":99,"integrity":"sha512-tAMgGuR5RjxHxnpy+mFfCw5V0AggpXcD01A9vawKXRHVh6pT7zOVW1hMi5W7Z7kL6f3s35TkcwztgRY+Z4n6rw==","signatures":[{"sig":"MEUCICPOIfrbO+cJy/4umh6ifSlYLhuF6lweKvHcpGHZdqTJAiEAzPlyEMtExeHGcCMDFS03pFleq3gdOlPXc+5Pn7MS3ZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1223527},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.330.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./vite":"./dist/vite/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/c433904f0b67581e75139c57f9e5ff65/alwaysmeticulous-backend-recorder-workerd-2.330.0.tgz","_integrity":"sha512-tAMgGuR5RjxHxnpy+mFfCw5V0AggpXcD01A9vawKXRHVh6pT7zOVW1hMi5W7Z7kL6f3s35TkcwztgRY+Z4n6rw==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.17.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"^8.17.0","tsdown":"^0.21.7","vitest":"^4.1.7","postgres":"^3.4.7","@types/node":"^20.0.0","magic-string":"^0.30.17"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.330.0_1787219462011_0.5486332857905354","host":"s3://npm-registry-packages-npm-production"}},"2.331.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.331.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.331.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"ff58b3c4ceabeffd2f790183509e537165ab4931","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.331.0.tgz","fileCount":99,"integrity":"sha512-dlFPdBmlFS9Qhn7SrBVBdv0QUS/h+3DI6V/ptFzKiXNM/h1WkPxx8gA8XPQQt8HhpTvLs7lT66Gyouc0MaF2SQ==","signatures":[{"sig":"MEYCIQDc7NuZSjCGFM73l3W9PzToOd09fe22HvGfnLfKwHggFAIhANdx0E6d1K0+GdTgF9UTjb+Q1yh2wvmORmGHoBH+i0CO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1228122},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.331.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./vite":"./dist/vite/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/b801944ce2bacc13c1567ef59e782433/alwaysmeticulous-backend-recorder-workerd-2.331.0.tgz","_integrity":"sha512-dlFPdBmlFS9Qhn7SrBVBdv0QUS/h+3DI6V/ptFzKiXNM/h1WkPxx8gA8XPQQt8HhpTvLs7lT66Gyouc0MaF2SQ==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.17.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"^8.17.0","tsdown":"^0.21.7","vitest":"^4.1.7","postgres":"^3.4.7","@types/node":"^20.0.0","magic-string":"^0.30.17"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.331.0_1787242208698_0.3123451561760089","host":"s3://npm-registry-packages-npm-production"}},"2.331.3":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.331.3","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.331.3","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"2d71b8a1c6568328455127536582467e6caa757b","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.331.3.tgz","fileCount":99,"integrity":"sha512-yrNem3XaNbBwfRwp9LbF0Tz5xGskwn4AbKZOvRaLOx8Y0EUujrfTnS1qugeI5fgT8fU/Sjn+Bgj+a+bbgnZhsQ==","signatures":[{"sig":"MEYCIQC9e86SSwqMgmhP3LbpkIDSN3MXc+1rBAY8qmA0J0BlHgIhAJoNDHBPMV/uAOpsjkithq7LRwkfNDRjgoPRFnxMnuwn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDkhsr7EbSRL5Zc0K2xpyPvTQ+eK2n1wh9Ef9z4iEkmWAIgaXL/WAEHsf3VvApf3EaNNDgNCrQdOekPIXHrJJYyVcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1229192},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.331.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./vite":"./dist/vite/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/a79d6896a058e0bb0bca7ca16a933142/alwaysmeticulous-backend-recorder-workerd-2.331.3.tgz","_integrity":"sha512-yrNem3XaNbBwfRwp9LbF0Tz5xGskwn4AbKZOvRaLOx8Y0EUujrfTnS1qugeI5fgT8fU/Sjn+Bgj+a+bbgnZhsQ==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.17.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"^8.17.0","tsdown":"^0.21.7","vitest":"^4.1.7","postgres":"^3.4.7","@types/node":"^20.0.0","magic-string":"^0.30.17"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.331.3_1787498762100_0.5505499238283738","host":"s3://npm-registry-packages-npm-production"}},"2.333.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.333.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.333.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"9eae37b8035c8a3b342d5a41bfa8e8fd51d143f0","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.333.0.tgz","fileCount":99,"integrity":"sha512-lA2no9KaT6+8tEeZ+ySrQAORolY+2VB5wRQ9ZwXcci+kDV7hUOOEEdoTrGmMwflmyULkfcssE0CTla+ohkmmyA==","signatures":[{"sig":"MEYCIQC1aEwnPUW7MqqIr+/IEq6vSlyLyJD2PRKXRUAsS8IDmAIhALoMlqlpvSquNsseykypqSaXZXj9dFH5yORzCVS3VnZQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDY36TcisKz4YGP9G/OqXHCqejLND2NahlFPhJrXFZ0JQIgW4NpOevIDbBD2BNeFr2Bu+ujU0I+Js6SdLLARuy5zfQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1229838},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.333.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./vite":"./dist/vite/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00029ab3-c5d2-4c96-89ce-196038890003"}},"_resolved":"/tmp/a67ab6c041c53b3295787f0f708a09e1/alwaysmeticulous-backend-recorder-workerd-2.333.0.tgz","_integrity":"sha512-lA2no9KaT6+8tEeZ+ySrQAORolY+2VB5wRQ9ZwXcci+kDV7hUOOEEdoTrGmMwflmyULkfcssE0CTla+ohkmmyA==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.6.2","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"^8.17.0","tsdown":"^0.21.7","vitest":"^4.1.7","postgres":"^3.4.7","@types/node":"^20.0.0","magic-string":"^0.30.17"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.333.0_1787732578191_0.3502140160603118","host":"s3://npm-registry-packages-npm-production"}},"2.333.1":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.333.1","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.333.1","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"5d46bd4935ca6d67fd3863d9fe4d6e34926dbf3b","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.333.1.tgz","fileCount":100,"integrity":"sha512-BM2X2WDFca6yLyEm8r3p+qO5LqOxAHDg+5DEljf4k9SQ4Rpsotb0fLbJLJ34EUbS8F8zxsu6YViZYtgm7LBoJQ==","signatures":[{"sig":"MEUCIQD3ycf9X+KgqLW9Sol25Rg3JeeInc1PDnyGu7sr/MR8KQIgSpwmVOUL6uaLEK2RGlmrt6rrgUKaN0aj/9P/2NPQckw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDkkey8dDe1SotuYZ3N1Bxv5FYa/Gr4psLAA9JFOCSXUgIgW8CFfaNPnD940KOaMXeZnTmsxuzPtr12OpoKBEcvRw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2fbackend-recorder-workerd@2.333.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1216418},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.333.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./vite":"./dist/vite/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6229aed6-221b-49b0-bc96-038ddd34c459"}},"_resolved":"/tmp/28168520fd9ae82a3aae3fd2b1a24cbf/alwaysmeticulous-backend-recorder-workerd-2.333.1.tgz","_integrity":"sha512-BM2X2WDFca6yLyEm8r3p+qO5LqOxAHDg+5DEljf4k9SQ4Rpsotb0fLbJLJ34EUbS8F8zxsu6YViZYtgm7LBoJQ==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.17.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"^8.17.0","tsdown":"^0.21.7","vitest":"^4.1.4","postgres":"^3.4.7","@types/node":"^20.0.0","magic-string":"^0.30.17"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.333.1_1787739880558_0.11058863608156444","host":"s3://npm-registry-packages-npm-production"}},"2.334.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.334.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.334.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"9c2915c39e1b2b4f0f037509029f01850b947ec5","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.334.0.tgz","fileCount":106,"integrity":"sha512-c8dFq9toPmdNKehG+jD7VIiNPgvm3iDwB4nJTLZnFrsTEr53KMghn5esloH2cTJIJd+lqM/ET8JOUipMm24IHA==","signatures":[{"sig":"MEUCICgh/qjkdkumtfXtqkQfhGHzpUcS+lLXdE2CeMs6ZbnnAiEAh830UgzVrkDVMs67Uif9A6uJ4yoYcpl/AW2AmRuVUDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDWIzabnPupljK9WUSszLcUpTjX1Aa+eicDGzJRBpo7AgIgTvtwVWWe66IIQOwmK6GGWKM7x3+m0jeAzt9kP3ZvTJ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2fbackend-recorder-workerd@2.334.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1240732},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.334.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./vite":"./dist/vite/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6229aed6-221b-49b0-bc96-038ddd34c459"}},"_resolved":"/tmp/1d8794667419081be554006913313bf2/alwaysmeticulous-backend-recorder-workerd-2.334.0.tgz","_integrity":"sha512-c8dFq9toPmdNKehG+jD7VIiNPgvm3iDwB4nJTLZnFrsTEr53KMghn5esloH2cTJIJd+lqM/ET8JOUipMm24IHA==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.17.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"^8.17.0","tsdown":"^0.21.7","vitest":"^4.1.4","postgres":"^3.4.7","@types/node":"^20.0.0","magic-string":"^0.30.17"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.334.0_1787746958633_0.3611829147150276","host":"s3://npm-registry-packages-npm-production"}},"2.336.0":{"name":"@alwaysmeticulous/backend-recorder-workerd","version":"2.336.0","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/backend-recorder-workerd@2.336.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"29d83034bac60d380ce5407535d6b0bba54dbb71","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.336.0.tgz","fileCount":109,"integrity":"sha512-WL1raEARPGnF9oU0K/BiW1IfpKRN8qSNmWdI5uW8AiNnxcZL3JBG/Z41xWhkZAvZr1+20Q/bPNIOFN581sP9YQ==","signatures":[{"sig":"MEUCIQDH18/RG4TvycMcPOazVRt97/G9gXfgHxCl/Z0WDWbdxgIgLhLtdGqch9bFGQ5AhTYj0jTKOCKgDpbVSsvhvMoh8fo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEAt/s+FGkoC5UcSxsPgqYUbKm38c027sTRRWjdgpihAAiEA/7x7yoDZN/AfUy3WyYbOikG9OBikh3G8hbYEDjgN0fI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2fbackend-recorder-workerd@2.336.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1255486},"main":"./dist/index.js","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.336.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./vite":"./dist/vite/index.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6229aed6-221b-49b0-bc96-038ddd34c459"}},"_resolved":"/tmp/bf70e6fdadc892ca1a62a1a2a59d964e/alwaysmeticulous-backend-recorder-workerd-2.336.0.tgz","_integrity":"sha512-WL1raEARPGnF9oU0K/BiW1IfpKRN8qSNmWdI5uW8AiNnxcZL3JBG/Z41xWhkZAvZr1+20Q/bPNIOFN581sP9YQ==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.17.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"^8.17.0","tsdown":"^0.21.7","vitest":"^4.1.4","postgres":"^3.4.7","@types/node":"^20.0.0","magic-string":"^0.30.17"},"_npmOperationalInternal":{"tmp":"tmp/backend-recorder-workerd_2.336.0_1788077681414_0.4714551738390642","host":"s3://npm-registry-packages-npm-production"}},"2.339.0":{"_id":"@alwaysmeticulous/backend-recorder-workerd@2.339.0","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"68af0a5575f60042b7b2c98c148218f79e3bd813","tarball":"https://registry.npmjs.org/@alwaysmeticulous/backend-recorder-workerd/-/backend-recorder-workerd-2.339.0.tgz","fileCount":112,"integrity":"sha512-ccipx4/HQ87a10ontPpvdqJSalcpbBGXFKwX04GXr8uzRM0B+JDUVYMETsE29zOtyzGdTPARyfCBOpGKrcpySQ==","signatures":[{"sig":"MEQCIAIeo0EVX64uCej+VOQ4WH/BUyGKS2KzOi0avcsTc1JEAiAD1AJecgj21IICcUrIC7Ao5GVxJpvgJNO974z0vPVCEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDY5jHP9zKfx1A/5yFX0c+8HLjbKfcdudhJXZpUqGOcJAiEAlkYdAUpDsgbx0sNh84l5JwcM5qg1jcfQ6uLzJzxGyvU="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2fbackend-recorder-workerd@2.339.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1282262},"main":"./dist/index.js","name":"@alwaysmeticulous/backend-recorder-workerd","type":"module","_from":"file:alwaysmeticulous-backend-recorder-workerd-2.339.0.tgz","types":"./dist/index.d.ts","author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./vite":"./dist/vite/index.js","./package.json":"./package.json"},"license":"ISC","scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"version":"2.339.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6229aed6-221b-49b0-bc96-038ddd34c459"}},"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"_resolved":"/tmp/2367723f648992a39add8519c87e1af7/alwaysmeticulous-backend-recorder-workerd-2.339.0.tgz","_integrity":"sha512-ccipx4/HQ87a10ontPpvdqJSalcpbBGXFKwX04GXr8uzRM0B+JDUVYMETsE29zOtyzGdTPARyfCBOpGKrcpySQ==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"_npmVersion":"11.19.0","description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","directories":{},"maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"^8.17.0","tsdown":"^0.21.7","vitest":"^4.1.4","postgres":"^3.4.7","@types/node":"^20.0.0","magic-string":"^0.30.17"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/backend-recorder-workerd_2.339.0_1789123368163_0.13308126209501592"}}},"time":{"created":"2026-07-27T17:09:40.883Z","modified":"2026-09-11T10:42:48.586Z","2.308.0":"2026-07-27T17:09:41.214Z","2.315.0":"2026-07-30T11:10:38.618Z","2.319.0":"2026-08-01T12:52:18.383Z","2.321.0":"2026-08-03T13:00:59.693Z","2.323.0":"2026-08-06T08:45:58.221Z","2.324.0":"2026-08-10T17:34:19.147Z","2.325.0":"2026-08-11T13:25:30.515Z","3.0.0":"2026-08-15T08:46:05.168Z","2.326.0":"2026-08-15T15:19:18.978Z","2.327.0":"2026-08-18T09:56:56.499Z","2.329.0":"2026-08-19T13:18:41.210Z","2.330.0":"2026-08-20T09:51:02.156Z","2.331.0":"2026-08-20T16:10:08.869Z","2.331.3":"2026-08-23T15:26:02.191Z","2.333.0":"2026-08-26T08:22:58.302Z","2.333.1":"2026-08-26T10:24:40.707Z","2.334.0":"2026-08-26T12:22:38.740Z","2.336.0":"2026-08-30T08:14:41.499Z","2.339.0":"2026-09-11T10:42:48.255Z"},"bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","keywords":["meticulous","cloudflare","workers","workerd","recorder"],"repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/backend-recorder-workerd"},"description":"Meticulous backend recorder shim for Cloudflare Workers (workerd). Reports inbound and outbound HTTP capture events to a local Meticulous recorder sidecar during development recording.","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"readme":"# Meticulous Backend Recorder for Cloudflare Workers (workerd)\n\nIn-worker shim for recording backend sessions from Cloudflare Workers — during local development (`wrangler dev`), and from a **deployed** Worker or Pages project. It reports the worker's inbound requests, outgoing `fetch` calls (including request/response bodies, capped at 256 KB), binding and KV calls and postgres.js queries as capture events to a Meticulous recorder sidecar, which turns them into backend session recordings.\n\nThe shim is passive: outgoing requests go straight to their real destination; the sidecar is never in the request path, and an unreachable sidecar or any capture failure never affects your app.\n\nWhere the sidecar lives is the only difference between the two setups:\n\n|                                                                 | Sidecar                                                                                                                                                                           | Configured by                          |\n| --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |\n| `wrangler dev`                                                  | a local process (`npx @alwaysmeticulous/cli record backend`)                                                                                                                      | the `METICULOUS_SIDECAR_URL` var       |\n| deployed (`wrangler deploy`, `wrangler pages deploy`, previews) | [`@alwaysmeticulous/backend-recorder-sidecar-worker`](https://www.npmjs.com/package/@alwaysmeticulous/backend-recorder-sidecar-worker), deployed into your own Cloudflare account | a `METICULOUS_SIDECAR` service binding |\n\n## Setup for local development\n\n1. Install the shim:\n\n   ```bash\n   npm install @alwaysmeticulous/backend-recorder-workerd\n   ```\n\n2. Wrap your ES-module Worker handler:\n\n   ```ts\n   import { withMeticulous } from \"@alwaysmeticulous/backend-recorder-workerd\";\n\n   export default withMeticulous({\n     async fetch(request, env, ctx) {\n       // your app\n     },\n   });\n   ```\n\n3. Enable the `nodejs_als` (or `nodejs_compat`) compatibility flag in `wrangler.toml`:\n\n   ```toml\n   compatibility_flags = [\"nodejs_als\"]\n   ```\n\n4. Run your dev command through the Meticulous CLI, which starts the recorder sidecar and passes its URL to `wrangler dev` automatically:\n\n   ```bash\n   npx @alwaysmeticulous/cli record backend -- npx wrangler dev\n   ```\n\n   If the recorder cannot start — no credentials, no network to fetch the sidecar bundle, an unusable port — the CLI warns and runs your dev command unrecorded rather than failing, so this is safe to leave in a `dev` script.\n\n   Or run the sidecar standalone with `npx @alwaysmeticulous/cli record backend` and point the shim at it yourself — the value must be a worker var/binding (host environment variables are not visible inside workerd), e.g. in `.dev.vars`:\n\n   ```\n   METICULOUS_SIDECAR_URL=http://127.0.0.1:9670\n   ```\n\n   or `wrangler dev --var METICULOUS_SIDECAR_URL:http://127.0.0.1:9670`.\n\nWithout a sidecar configured the wrapper is a complete pass-through, so it is safe to leave in code that gets deployed.\n\n## Setup for a deployed Worker or Pages project\n\n1. Deploy the sidecar into your own Cloudflare account, following the [`@alwaysmeticulous/backend-recorder-sidecar-worker`](https://www.npmjs.com/package/@alwaysmeticulous/backend-recorder-sidecar-worker) README. It is one file and one `wrangler deploy`.\n\n2. Add a service binding to your app, in every environment you want recorded:\n\n   ```toml\n   [[services]]\n   binding = \"METICULOUS_SIDECAR\"\n   service = \"meticulous-recorder-sidecar\"\n   ```\n\n3. Wrap your handler. For an ES-module Worker that is `withMeticulous`, as above. For a **Cloudflare Pages** project, whose worker exports `onRequest` rather than `{ fetch }`, use `withMeticulousPagesFunction`:\n\n   ```ts\n   import { withMeticulousPagesFunction } from \"@alwaysmeticulous/backend-recorder-workerd\";\n\n   export const onRequest = withMeticulousPagesFunction(handler);\n   ```\n\n   Apply it **outermost**, before any wrapper of your own that re-writes `context.env`: the recorder discovers bindings on the `env` it is handed, so a wrapper substituting its own façades first would hide the real instances.\n\n4. If your app queries Postgres — over Hyperdrive, say — hand us the client so its queries are recorded too. There is no seam to patch automatically in a Worker: `postgres` was inlined into your bundle at build time and never passes through a module loader.\n\n   ```ts\n   import { withMeticulousPostgres } from \"@alwaysmeticulous/backend-recorder-workerd\";\n\n   const sql = withMeticulousPostgres(\n     postgres(env.HYPERDRIVE.connectionString),\n   );\n   ```\n\n   One call covers every client in the isolate, and it returns the client unchanged. Apply it outermost if something else also wraps the client (Sentry's `instrumentPostgresJsSql`, a logging proxy).\n\nNothing needs to change between environments: the wrapper activates on whichever sidecar it finds, and a deployment with neither configured is a pass-through. A binding wins over a `METICULOUS_SIDECAR_URL` var when both are present, since only the binding can have been added to that deployment's wrangler configuration deliberately.\n\nA request's capture events are batched into **one** report, sent under `ctx.waitUntil` after your response has gone out — so an SSR request making twenty calls costs one round trip, not twenty.\n\n## What is captured\n\n- **Inbound requests** (method, URL, headers, status; no bodies), correlated to the frontend session via the `x-meticulous-session-id` header stamped by the Meticulous frontend recorder — or, for the page's initial navigation, via an id the shim mints itself (see [Session ids for the first page render](#session-ids-for-the-first-page-render)).\n- **Outgoing `fetch` calls** made while handling an inbound request: method, URL, headers, status, and request/response bodies (UTF-8, capped at 256 KB; long-lived streams such as SSE are captured truncated).\n- **Calls through `fetch`-shaped bindings** — service bindings and Durable Object stubs — recorded like outgoing fetches, plus the `env` key the call went through. No code change is needed: the binding's `fetch` is instrumented wherever the app reads it from, including via `cloudflare:workers` rather than the handler's `env` argument.\n- **KV namespace operations** — `get`, `getWithMetadata`, `put`, `delete` and `list` on a namespace found on `env`, recorded with the binding name, the key, the call's arguments and the value as JSON (so one `JSON.parse` reconstructs exactly what the app saw, whichever `type` the read asked for). Also no code change needed. A value read as a stream is never read by the recorder — that would take the bytes from the app — and binary values are skipped; both cases are recorded with the reason instead of the value.\n- **postgres.js queries**, when you apply `withMeticulousPostgres` (see above): the SQL with `$1`-style placeholders, the interpolated parameters, the row shape the query asked for, and the resolved rows — or the error, so a query that legitimately failed replays as the same failure rather than as a gap. Cursors, `.forEach()`, COPY streams and `.describe()` pass through unrecorded, since they do not resolve with a single result.\n\n## Session ids for the first page render\n\nA browser cannot put a custom header on a top-level navigation, and on the navigation that starts a session the frontend recorder has not minted an id yet — it does that only once the HTML has arrived and the snippet has run. So the request that produces your server-side render is the one request that can never arrive tagged, and everything it does (the render's own `fetch` calls, its binding and KV reads) would be recorded against no session at all.\n\nThe shim closes that gap from the other end: for such a request it **mints the session id itself**, records the whole request under it, and publishes it to the page, which adopts it instead of minting its own. The entire page load then sits under one session id.\n\n**When it mints.** Only for what is plausibly a browser loading a page: a `GET`/`HEAD` with `Sec-Fetch-Dest: document`, `iframe` or `frame` (or, absent that header, an `Accept` containing `text/html`) and no inbound `x-meticulous-session-id`. An in-page `fetch`, an RSC navigation, a health check and a crawler all decline. It only ever happens while recording, so a deployed worker with no sidecar configured is untouched.\n\nA subframe is included because it does not reliably fold into the top frame's session: the frontend recorder forwards a subframe's data to the top frame and suppresses its own session only when the top frame is recording under the same token, so a cross-origin frame whose parent has no recorder is a session in its own right — and its render needs the id as much as a top-level one does. Where the subframe _does_ defer, nothing adopts the id, and an id nothing adopts costs nothing: minted ids carry `meticulous.session_id_origin: \"backend\"`, and ingestion counts one that no session adopted as unstamped rather than as a stamp.\n\n**How the page learns it.** Two channels, either sufficient:\n\n1. `Server-Timing: metsession;desc=\"<id>\"` on the response. The recorder reads it from `performance.getEntriesByType(\"navigation\")[0].serverTiming` — the one response header a document's own script can read back, and it persists for the document's lifetime, so this works however late the snippet loads. **No app change needed.** Restricted to secure contexts, and a cache or proxy may strip it.\n2. Your app renders it, via `getMeticulousSessionId()` — typically as `data-session-id` on the recorder's own `<script>` tag (`window.METICULOUS_SESSION_ID` also works). Exact and immune to header caching; costs one line.\n\n```ts\nimport {\n  getMeticulousSessionId,\n  withMeticulous,\n} from \"@alwaysmeticulous/backend-recorder-workerd\";\n\nexport default withMeticulous({\n  async fetch() {\n    const sessionId = getMeticulousSessionId();\n    return new Response(\n      `<script src=\"/recorder.js\" data-session-id=\"${escapeHtml(sessionId ?? \"\")}\"></script>`,\n      { headers: { \"content-type\": \"text/html\" } },\n    );\n  },\n});\n```\n\nEscape it as you would any other value you interpolate into markup: on a document navigation it is our own minted id, but on any other request it is the inbound header verbatim.\n\nEither way the recorder adopts an id only while its mint time is **within 60s of now, in either direction** (session ids embed their mint time). That bound is what stops a response cached at a CDN or by the browser from handing one session id to every visitor who receives it. Within the window that sharing is still possible, so **an app whose HTML is cacheable is not yet a good candidate** — turn minting off there:\n\n```ts\nexport default withMeticulous(handler, { mintProvisionalSessionIds: false });\n```\n\nor set the `METICULOUS_BACKEND_PROVISIONAL_SESSION_IDS` var to `\"false\"` (a worker var/binding, like `METICULOUS_SIDECAR_URL` — host environment variables are not visible inside workerd).\n\n`getMeticulousSessionId()` is also how the id reaches another process. A document navigation has no inbound header for your app to forward, so a worker that fans out to its own services has to pass the id on as `x-meticulous-session-id` itself; the shim does not add it to outbound requests.\n\nRequest bodies have secret-looking JSON fields (`clientSecret`, `apiKey`, `token`, `password`, …) replaced with `REDACTED` before they leave the worker, since plenty of APIs carry a credential in the body rather than a header. Response bodies are stored verbatim. A KV `put` value is redacted the same way, for the same reason; a value read back from KV is stored verbatim, like a response body.\n\n## Replay\n\nThe same wrapper serves the recording back when Meticulous replays a session against your app: outgoing `fetch` calls are answered from the recording instead of reaching the real service, the clock is frozen at the recorded session's end, and `Math.random` / `crypto.randomUUID` / `crypto.getRandomValues` are seeded so ids the app mints are identical in every replay. Replay is activated by a header the Meticulous replay runner injects, so nothing extra is needed to enable it.\n\nReplay is **hermetic**: a call the recording does not cover fails with a `[backend-recorder] workerd replay: …` error rather than quietly reaching the real service, so a gap in the recording surfaces instead of turning a replay into live traffic. For a call that must stay live during a replay, set the `meticulous-passthrough` header to `true` on the request:\n\n```ts\nawait fetch(url, { headers: { \"meticulous-passthrough\": \"true\" } });\n```\n\nWhile serving a replay, the shim prefixes request-scoped `console.debug`, `console.log`,\n`console.info`, `console.warn`, `console.error`, and `console.trace` output with the active replay\nID. Each request reads its own ID from `AsyncLocalStorage`, so logs stay correctly attributed when\none Worker isolate serves concurrent replays. Startup and other work outside a replay request stays\nuntagged.\n\nCalls through bindings and KV namespaces are not served from the recording (see Limitations) and are never failed — they always reach the real binding.\n\n## Code coverage\n\nMeticulous can report which of your server lines each replayed session executed. Workerd exposes no usable V8 coverage — its inspector never dispatches `Profiler.enable`, so `Profiler.startPreciseCoverage` is unreachable, and the one coverage call it does forward reports binary counts that never reset, which cannot be split per request. So the lines are marked at build time instead.\n\nAdd the plugin to the build you **upload for testing**, not the one you deploy:\n\n```ts\nimport { defineConfig } from \"vite\";\nimport { meticulousCoverage } from \"@alwaysmeticulous/backend-recorder-workerd/vite\";\n\nexport default defineConfig({\n  plugins: [meticulousCoverage()],\n});\n```\n\nThen replays report coverage automatically — the wrapper posts the lines each request ran to the Meticulous replay sidecar, which attributes them to that session.\n\n- Only **server** modules are instrumented; the client build is untouched unless you pass `includeClient: true`.\n- `node_modules` and virtual modules are always skipped. `exclude: [/pattern/]` skips more.\n- The instrumented bundle is safe to run with coverage off: every marker is a no-op when nothing is collecting, so the same image still works for ordinary replays and for local development.\n- A module the plugin cannot parse is passed through unchanged. Coverage is never worth failing your build for.\n- Some lines are deliberately not marked, because marking them would mean rewriting code rather than adding to it: statements at module top level (they run at isolate startup, outside any request), class `static` blocks, the body of a braceless single statement such as `if (x) return;`, and the condition of an `else if` (only the first `if` of a chain gets a marker, though every branch body still gets its own). Those lines therefore read as uncovered even in a run that executed them.\n\nReported line numbers are lines in your source, not in the bundle. The plugin runs after your build's TypeScript/JSX pass, which re-prints each module and drops comments and blank lines — so it resolves every line back through that pass's source map. Two consequences worth knowing:\n\n- A module whose source map your build does not produce is still instrumented, but its lines are reported as the build printed them. The plugin says how many modules this affected at the end of the build.\n- A module whose source map covers some other file is skipped entirely rather than reported against the wrong lines.\n\nBecause each function re-reads the current request's sink, a callback that outlives the request that created it is credited to the request that actually runs it, not the one that built it.\n\n## Limitations\n\n- Streamed responses are captured truncated: the inbound request is reported once the handler returns, which for a streamed response is before the stream ends, and outbound bodies cap at 256 KB. An app whose main endpoints are SSE will not record them faithfully.\n- Bindings other than `fetch`-shaped ones and KV namespaces are not captured: D1, R2, Queues, and RPC method calls on a named entrypoint (`env.SVC.someMethod()`) — an RPC method is not a patchable property, so it cannot be intercepted this way.\n- A KV value that is not text is recorded without its value: reading a `stream` would take the bytes away from the app, and binary values are skipped because KV blobs are large and not UTF-8. The operation, key and arguments are still recorded, with `omitted` saying which case it was.\n- Assets bindings are skipped by default (`ASSETS`, `__STATIC_CONTENT`): asset bytes are large and often binary, and asset serving is usually a worker's highest-volume call. Use `options.skipBindings` to skip others.\n- An outbound `fetch` headed for a Datadog agent, carrying no frontend session id, is recorded as nothing. A tracer flushes on its own timer, so nothing can attribute the call, and the payload is every span it had buffered. A destination counts as the agent only when its port is `8126` **and** its path is one of the agent's own API endpoints (`/info`, `/v0.4/traces` and the rest of that family, `/profiling/v1/input`, `/telemetry/proxy/…`, `/evp_proxy/…`, …); either half alone would risk dropping a real call, since an app may serve anything on 8126 and a `/v0.4/traces`-shaped path elsewhere is the app's own endpoint. Agentless submission to a `datadoghq.com` intake is not covered, and neither is a call a session made. Record mode only; a replay is unaffected.\n- Health probes are recorded as nothing at all — not the inbound request, and not what it fans out to. A GET/HEAD to a conventional probe path (`/health`, `/healthz`, `/healthcheck`, `/health-check`, `/_health`, `/api/health`, `/api/healthz`, `/readyz`, `/livez`, `/ping`) carrying no `x-meticulous-session-id` never enters the capture context. A request that names its session is real app traffic and is recorded whatever its path, so an app is still free to serve `/api/health` as a page's data source. Record mode only; a replay is unaffected.\n- A Durable Object stub is recorded without a binding name, since the stub comes from `namespace.get()` rather than being a binding itself.\n- A binding reference bound before the first instrumented request (`const f = env.SVC.fetch.bind(env.SVC)` at module scope) escapes instrumentation. Holding the binding _object_ and calling `.fetch()` on it per request — what SDKs normally do — is captured.\n- WebSocket upgrades and TCP sockets (`connect()`) are not captured.\n- `fetch` calls made outside a request handled by `withMeticulous` (e.g. in `scheduled` handlers) are not captured.\n- postgres.js queries are recorded but **not replayed inside workerd**: a recording made in a Worker is served back by the Node recorder's mock store when the app under replay runs on Node. A workerd replay reaches the real database.\n","readmeFilename":"README.md"}