{"_id":"@eco-foundation/eco-message-contracts","_rev":"8-72a86289baa6771b417f94d91a8639c1","name":"@eco-foundation/eco-message-contracts","dist-tags":{"latest":"2.3.0"},"versions":{"1.1.0":{"name":"@eco-foundation/eco-message-contracts","version":"1.1.0","author":{"name":"Eco Engineering","email":"eng@eco.com"},"license":"MIT","_id":"@eco-foundation/eco-message-contracts@1.1.0","maintainers":[{"name":"mdavid123","email":"mdavid@eco.com"},{"name":"seveyeco","email":"matt@eco.com"},{"name":"paged","email":"dirkpage@hotmail.com"},{"name":"aleph2012","email":"satish@beam.io"},{"name":"carlosfebres","email":"carlosfebres97@gmail.com"}],"homepage":"https://github.com/eco/eco-messaging#readme","bugs":{"url":"https://github.com/eco/eco-messaging/issues"},"dist":{"shasum":"6ec6782d58b7bcf9f50bb815804616e9e8f4a397","tarball":"https://registry.npmjs.org/@eco-foundation/eco-message-contracts/-/eco-message-contracts-1.1.0.tgz","fileCount":48,"integrity":"sha512-FsZfEApgumMwa5m7gT1+uc8nmgSB6dgpeSjq0NOyjUoi2LYQdhMUDkq1Mmtle5VRRSgXTiV4FPKn/o4HDEU6Zg==","signatures":[{"sig":"MEQCICkLPGX6CBK1qpWI3E4uZZljB0JImZ8CtpU5H/S6ptPdAiBNXHBWhQh5vFVIsHqWrY4Pf8tpxfYhJH5oCxtp2ibL5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":426083},"main":"./dist/index.js","_from":"file:eco-foundation-eco-message-contracts-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./schema":"./schema/generated/index.json","./conformance":"./schema/conformance/index.json"},"scripts":{"build":"tsup && node ../../scripts/emit-contract-schemas.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit && tsc -p tsconfig.spec.json","generate-schemas":"tsup && node ../../scripts/emit-contract-schemas.mjs --write"},"_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_resolved":"/tmp/ffc1e093f822dea7a6b2896781aee859/eco-foundation-eco-message-contracts-1.1.0.tgz","_integrity":"sha512-FsZfEApgumMwa5m7gT1+uc8nmgSB6dgpeSjq0NOyjUoi2LYQdhMUDkq1Mmtle5VRRSgXTiV4FPKn/o4HDEU6Zg==","repository":{"url":"git+https://github.com/eco/eco-messaging.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.9.8","description":"Message envelope, contract definitions, and payload schemas for Eco AMQP messaging","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","zod-to-json-schema":"^3.25.2"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eco-message-contracts_1.1.0_1787585544963_0.9608221763318447","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@eco-foundation/eco-message-contracts","version":"1.2.0","author":{"name":"Eco Engineering","email":"eng@eco.com"},"license":"MIT","_id":"@eco-foundation/eco-message-contracts@1.2.0","maintainers":[{"name":"mdavid123","email":"mdavid@eco.com"},{"name":"seveyeco","email":"matt@eco.com"},{"name":"paged","email":"dirkpage@hotmail.com"},{"name":"aleph2012","email":"satish@beam.io"},{"name":"carlosfebres","email":"carlosfebres97@gmail.com"}],"homepage":"https://github.com/eco/eco-messaging#readme","bugs":{"url":"https://github.com/eco/eco-messaging/issues"},"dist":{"shasum":"461086f6160f3ca169794a825dfd25541d2cde79","tarball":"https://registry.npmjs.org/@eco-foundation/eco-message-contracts/-/eco-message-contracts-1.2.0.tgz","fileCount":48,"integrity":"sha512-04rNFijJHGrtilpvAswBqhUgBQWL/QDe6Hnh5/it5Nxkwb9sg7PuiYGX1DVrjhSVTj45I9hxla/H2IE85rkgig==","signatures":[{"sig":"MEYCIQDiElhcB3qPvw8Nf42JcfoFylPm9urtDr0EBz6l8MJ8xwIhAJgqz0I5Mgmf8K+Ims/msAVZHMbR12+xP1K8Oj4lEF6a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474958},"main":"./dist/index.js","_from":"file:eco-foundation-eco-message-contracts-1.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./schema":"./schema/generated/index.json","./conformance":"./schema/conformance/index.json"},"scripts":{"build":"tsup && node ../../scripts/emit-contract-schemas.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit && tsc -p tsconfig.spec.json","generate-schemas":"tsup && node ../../scripts/emit-contract-schemas.mjs --write"},"_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_resolved":"/tmp/6962ce7127f8caeffa1d9ccda0777bf0/eco-foundation-eco-message-contracts-1.2.0.tgz","_integrity":"sha512-04rNFijJHGrtilpvAswBqhUgBQWL/QDe6Hnh5/it5Nxkwb9sg7PuiYGX1DVrjhSVTj45I9hxla/H2IE85rkgig==","repository":{"url":"git+https://github.com/eco/eco-messaging.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.9.8","description":"Message envelope, contract definitions, and payload schemas for Eco AMQP messaging","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","zod-to-json-schema":"^3.25.2"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eco-message-contracts_1.2.0_1787674811343_0.27983496181653345","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@eco-foundation/eco-message-contracts","version":"1.3.0","author":{"name":"Eco Engineering","email":"eng@eco.com"},"license":"MIT","_id":"@eco-foundation/eco-message-contracts@1.3.0","maintainers":[{"name":"mdavid123","email":"mdavid@eco.com"},{"name":"seveyeco","email":"matt@eco.com"},{"name":"paged","email":"dirkpage@hotmail.com"},{"name":"aleph2012","email":"satish@beam.io"},{"name":"carlosfebres","email":"carlosfebres97@gmail.com"}],"homepage":"https://github.com/eco/eco-messaging#readme","bugs":{"url":"https://github.com/eco/eco-messaging/issues"},"dist":{"shasum":"8f1be0e44168dfda25ee9f8f7a8b1e931a3ecf39","tarball":"https://registry.npmjs.org/@eco-foundation/eco-message-contracts/-/eco-message-contracts-1.3.0.tgz","fileCount":49,"integrity":"sha512-OZDXle7l5YgO+lEn/9I9g4HJGUAfYRdQUknIguw0VtFuDk5I9torqrZ3AAL3MKoWwYUv7sy93D3o21bIVktK+g==","signatures":[{"sig":"MEQCIDwWiNyeQ7baOwSMcqi0MXmidpiupOm5UY6ziJlljNjXAiB5g+bjwh7VDWsCsaXR0UxacE2WpmZib7WXV5niTUkH+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":486677},"main":"./dist/index.js","_from":"file:eco-foundation-eco-message-contracts-1.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./schema":"./schema/generated/index.json","./conformance":"./schema/conformance/index.json"},"scripts":{"build":"tsup && node ../../scripts/emit-contract-schemas.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit && tsc -p tsconfig.spec.json","generate-schemas":"tsup && node ../../scripts/emit-contract-schemas.mjs --write"},"_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_resolved":"/tmp/807fdf8fffe9d89f52514192fb37a70c/eco-foundation-eco-message-contracts-1.3.0.tgz","_integrity":"sha512-OZDXle7l5YgO+lEn/9I9g4HJGUAfYRdQUknIguw0VtFuDk5I9torqrZ3AAL3MKoWwYUv7sy93D3o21bIVktK+g==","repository":{"url":"git+https://github.com/eco/eco-messaging.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.9.8","description":"Message envelope, contract definitions, and payload schemas for Eco AMQP messaging","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","zod-to-json-schema":"^3.25.2"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eco-message-contracts_1.3.0_1787698300790_0.9340431810393348","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@eco-foundation/eco-message-contracts","version":"2.0.0","author":{"name":"Eco Engineering","email":"eng@eco.com"},"license":"MIT","_id":"@eco-foundation/eco-message-contracts@2.0.0","maintainers":[{"name":"mdavid123","email":"mdavid@eco.com"},{"name":"seveyeco","email":"matt@eco.com"},{"name":"paged","email":"dirkpage@hotmail.com"},{"name":"aleph2012","email":"satish@beam.io"},{"name":"carlosfebres","email":"carlosfebres97@gmail.com"}],"homepage":"https://github.com/eco/eco-messaging#readme","bugs":{"url":"https://github.com/eco/eco-messaging/issues"},"dist":{"shasum":"c956f3196a18d92cd2c8dfa299b949d7a2fbe572","tarball":"https://registry.npmjs.org/@eco-foundation/eco-message-contracts/-/eco-message-contracts-2.0.0.tgz","fileCount":49,"integrity":"sha512-Y99BCpRvRMKbpyBsx8o/hZjYk9MMk8HPvtcmiu5QL9UqLBfkjzWDaB+m5FmtXdcXtcBMvTSsy8JQgr2Y+nzu+A==","signatures":[{"sig":"MEQCID82DsWHE5p3LGSZTdUOzyXx9UJDaeNnfnvHsNe9sIRHAiB3H1W4TeHWHatRCQjf6xZEg+c1BnSaqdTRmeGJiYzmxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506210},"main":"./dist/index.js","_from":"file:eco-foundation-eco-message-contracts-2.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./schema":"./schema/generated/index.json","./conformance":"./schema/conformance/index.json"},"scripts":{"build":"tsup && node ../../scripts/emit-contract-schemas.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit && tsc -p tsconfig.spec.json","generate-schemas":"tsup && node ../../scripts/emit-contract-schemas.mjs --write"},"_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_resolved":"/tmp/4ea55c6f28a2fb720b3cd4090c27c19d/eco-foundation-eco-message-contracts-2.0.0.tgz","_integrity":"sha512-Y99BCpRvRMKbpyBsx8o/hZjYk9MMk8HPvtcmiu5QL9UqLBfkjzWDaB+m5FmtXdcXtcBMvTSsy8JQgr2Y+nzu+A==","repository":{"url":"git+https://github.com/eco/eco-messaging.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.9.8","description":"Message envelope, contract definitions, and payload schemas for Eco AMQP messaging","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","zod-to-json-schema":"^3.25.2"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eco-message-contracts_2.0.0_1788204915669_0.5527341247876734","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@eco-foundation/eco-message-contracts","version":"2.1.0","author":{"name":"Eco Engineering","email":"eng@eco.com"},"license":"MIT","_id":"@eco-foundation/eco-message-contracts@2.1.0","maintainers":[{"name":"mdavid123","email":"mdavid@eco.com"},{"name":"seveyeco","email":"matt@eco.com"},{"name":"paged","email":"dirkpage@hotmail.com"},{"name":"aleph2012","email":"satish@beam.io"},{"name":"carlosfebres","email":"carlosfebres97@gmail.com"}],"homepage":"https://github.com/eco/eco-messaging#readme","bugs":{"url":"https://github.com/eco/eco-messaging/issues"},"dist":{"shasum":"b529d512c69a22130f93d7791cea3b8334afa72c","tarball":"https://registry.npmjs.org/@eco-foundation/eco-message-contracts/-/eco-message-contracts-2.1.0.tgz","fileCount":49,"integrity":"sha512-2lmdQVYVMsHuqEmINW8sdk7hHF0TGOfkNPeIO+QPTbSWnbi1vEVKAHwBUR/AyeuwlXYBmbW3VkLLY0lCFsFtpw==","signatures":[{"sig":"MEUCIGkt30cAehT+VRk95Ff04UZhrt0Xk4eQp5aPXlmjHXVjAiEAn68rJsiv8MiBmF7mSHb/Do1eHymaAA61U/8+IxVpgZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506536},"main":"./dist/index.js","_from":"file:eco-foundation-eco-message-contracts-2.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./schema":"./schema/generated/index.json","./conformance":"./schema/conformance/index.json"},"scripts":{"build":"tsup && node ../../scripts/emit-contract-schemas.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit && tsc -p tsconfig.spec.json","generate-schemas":"tsup && node ../../scripts/emit-contract-schemas.mjs --write"},"_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_resolved":"/tmp/764b753cc77a3dabaabc67f24ca4ba62/eco-foundation-eco-message-contracts-2.1.0.tgz","_integrity":"sha512-2lmdQVYVMsHuqEmINW8sdk7hHF0TGOfkNPeIO+QPTbSWnbi1vEVKAHwBUR/AyeuwlXYBmbW3VkLLY0lCFsFtpw==","repository":{"url":"git+https://github.com/eco/eco-messaging.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.9.8","description":"Message envelope, contract definitions, and payload schemas for Eco AMQP messaging","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","zod-to-json-schema":"^3.25.2"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eco-message-contracts_2.1.0_1788377902148_0.8645078727627735","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@eco-foundation/eco-message-contracts","version":"2.2.0","author":{"name":"Eco Engineering","email":"eng@eco.com"},"license":"MIT","_id":"@eco-foundation/eco-message-contracts@2.2.0","maintainers":[{"name":"mdavid123","email":"mdavid@eco.com"},{"name":"seveyeco","email":"matt@eco.com"},{"name":"paged","email":"dirkpage@hotmail.com"},{"name":"aleph2012","email":"satish@beam.io"},{"name":"carlosfebres","email":"carlosfebres97@gmail.com"}],"homepage":"https://github.com/eco/eco-messaging#readme","bugs":{"url":"https://github.com/eco/eco-messaging/issues"},"dist":{"shasum":"f7bfc9adbddf15999d4d192e333539652846e423","tarball":"https://registry.npmjs.org/@eco-foundation/eco-message-contracts/-/eco-message-contracts-2.2.0.tgz","fileCount":49,"integrity":"sha512-Xq3S4XUPcPQwbfGeho00VA74yqvObfmGwLMEGhRGQBqM/jJ3lD+a67NL3TNMIc17lkfQDGLLa9z1YwxIPGfJSQ==","signatures":[{"sig":"MEUCIQDblXjEZavZAisBw9ybkTQJ+fbLoJmgMrizkEQzXE118QIgMJTeocVU8EQziAo62YIMurDSO0/khpLZzltHF18F4Ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514411},"main":"./dist/index.js","_from":"file:eco-foundation-eco-message-contracts-2.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./schema":"./schema/generated/index.json","./conformance":"./schema/conformance/index.json"},"scripts":{"build":"tsup && node ../../scripts/emit-contract-schemas.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit && tsc -p tsconfig.spec.json","generate-schemas":"tsup && node ../../scripts/emit-contract-schemas.mjs --write"},"_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_resolved":"/tmp/53d72784b33c5922b95ef8ae2d2fad75/eco-foundation-eco-message-contracts-2.2.0.tgz","_integrity":"sha512-Xq3S4XUPcPQwbfGeho00VA74yqvObfmGwLMEGhRGQBqM/jJ3lD+a67NL3TNMIc17lkfQDGLLa9z1YwxIPGfJSQ==","repository":{"url":"git+https://github.com/eco/eco-messaging.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.9.8","description":"Message envelope, contract definitions, and payload schemas for Eco AMQP messaging","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","zod-to-json-schema":"^3.25.2"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eco-message-contracts_2.2.0_1788886810500_0.7511194300253257","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@eco-foundation/eco-message-contracts","version":"2.2.1","author":{"name":"Eco Engineering","email":"eng@eco.com"},"license":"MIT","_id":"@eco-foundation/eco-message-contracts@2.2.1","maintainers":[{"name":"mdavid123","email":"mdavid@eco.com"},{"name":"seveyeco","email":"matt@eco.com"},{"name":"paged","email":"dirkpage@hotmail.com"},{"name":"aleph2012","email":"satish@beam.io"},{"name":"carlosfebres","email":"carlosfebres97@gmail.com"}],"homepage":"https://github.com/eco/eco-messaging#readme","bugs":{"url":"https://github.com/eco/eco-messaging/issues"},"dist":{"shasum":"514677a5d8447015e0e205ba9392f90b8b0116ea","tarball":"https://registry.npmjs.org/@eco-foundation/eco-message-contracts/-/eco-message-contracts-2.2.1.tgz","fileCount":49,"integrity":"sha512-ZSYIb2LPruLAK7RU5Swq6q+Hvmo8Fv32fmeGQEO3f4UIRIWPudkSTLdIXbkUIOypG5VU1Y8GFyduMi+AK4fkvQ==","signatures":[{"sig":"MEYCIQDQdIZe1NWDoe9qUKIijI2NuRQNlgj0/omEjf2gzr0vEwIhAK7JxrC0kSt3r6BAN60mIDUiUsGv0YpuXvhy2YR0xrhf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":516294},"main":"./dist/index.js","_from":"file:eco-foundation-eco-message-contracts-2.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./schema":"./schema/generated/index.json","./conformance":"./schema/conformance/index.json"},"scripts":{"build":"tsup && node ../../scripts/emit-contract-schemas.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit && tsc -p tsconfig.spec.json","generate-schemas":"tsup && node ../../scripts/emit-contract-schemas.mjs --write"},"_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_resolved":"/tmp/e1fcdb05c7d2fe35fc9d351b20b624ff/eco-foundation-eco-message-contracts-2.2.1.tgz","_integrity":"sha512-ZSYIb2LPruLAK7RU5Swq6q+Hvmo8Fv32fmeGQEO3f4UIRIWPudkSTLdIXbkUIOypG5VU1Y8GFyduMi+AK4fkvQ==","repository":{"url":"git+https://github.com/eco/eco-messaging.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.9.8","description":"Message envelope, contract definitions, and payload schemas for Eco AMQP messaging","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","zod-to-json-schema":"^3.25.2"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eco-message-contracts_2.2.1_1788898717090_0.3704150632218828","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"_id":"@eco-foundation/eco-message-contracts@2.3.0","bugs":{"url":"https://github.com/eco/eco-messaging/issues"},"dist":{"shasum":"47363ff9d08d70bcda015fae0a4aa5f771d21541","tarball":"https://registry.npmjs.org/@eco-foundation/eco-message-contracts/-/eco-message-contracts-2.3.0.tgz","fileCount":52,"integrity":"sha512-EzlotMGre3nN5nKmVjVJCppacpHG38RnuTVDjlxhsLYeiGiscqswc9ghTf9ANVINrMnSXorXuJWHUOrc28SVFw==","signatures":[{"sig":"MEQCIE9NP/N2X5f2w/SxLWfmkvyRbHHPStZ0dKrIPt5hspu3AiBmQlWs3vY4lhOqLfTVvmS0ziyJAO9JOOnc76caBEKRTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCTkOd/UsEc+c0gOGFtaQuvBwPHuT+8ZZi0bmMb+W7o2wIhAKIZ5BhdxI787M5tagHNl2GzlUCUPOIPvqyNROk/JYNx"}],"unpackedSize":554823},"main":"./dist/index.js","name":"@eco-foundation/eco-message-contracts","_from":"file:eco-foundation-eco-message-contracts-2.3.0.tgz","types":"./dist/index.d.ts","author":{"name":"Eco Engineering","email":"eng@eco.com"},"module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./schema":"./schema/generated/index.json","./conformance":"./schema/conformance/index.json","./fixtures/fulfilled-unproven-v1":"./schema/fixtures/fulfilled-unproven-v1.json"},"license":"MIT","scripts":{"build":"tsup && node ../../scripts/emit-contract-schemas.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit && tsc -p tsconfig.spec.json","generate-schemas":"tsup && node ../../scripts/emit-contract-schemas.mjs --write"},"version":"2.3.0","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"homepage":"https://github.com/eco/eco-messaging#readme","_resolved":"/tmp/2cfc19728a54bb725720c6d954f5895f/eco-foundation-eco-message-contracts-2.3.0.tgz","_integrity":"sha512-EzlotMGre3nN5nKmVjVJCppacpHG38RnuTVDjlxhsLYeiGiscqswc9ghTf9ANVINrMnSXorXuJWHUOrc28SVFw==","repository":{"url":"git+https://github.com/eco/eco-messaging.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.9.8","description":"Message envelope, contract definitions, and payload schemas for Eco AMQP messaging","directories":{},"maintainers":[{"name":"mdavid123","email":"mdavid@eco.com"},{"name":"seveyeco","email":"matt@eco.com"},{"name":"paged","email":"dirkpage@hotmail.com"},{"name":"aleph2012","email":"satish@beam.io"},{"name":"carlosfebres","email":"carlosfebres97@gmail.com"}],"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","zod-to-json-schema":"^3.25.2"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eco-message-contracts_2.3.0_1790361498741_0.6523388463656934"}}},"time":{"created":"2026-08-24T15:32:24.849Z","modified":"2026-09-25T18:38:19.070Z","1.1.0":"2026-08-24T15:32:25.267Z","1.2.0":"2026-08-25T16:20:11.533Z","1.3.0":"2026-08-25T22:51:40.965Z","2.0.0":"2026-08-31T19:35:15.824Z","2.1.0":"2026-09-02T19:38:22.308Z","2.2.0":"2026-09-08T17:00:10.670Z","2.2.1":"2026-09-08T20:18:37.269Z","2.3.0":"2026-09-25T18:38:18.890Z"},"bugs":{"url":"https://github.com/eco/eco-messaging/issues"},"author":{"name":"Eco Engineering","email":"eng@eco.com"},"license":"MIT","homepage":"https://github.com/eco/eco-messaging#readme","repository":{"url":"git+https://github.com/eco/eco-messaging.git","type":"git","directory":"packages/contracts"},"description":"Message envelope, contract definitions, and payload schemas for Eco AMQP messaging","maintainers":[{"name":"mdavid123","email":"mdavid@eco.com"},{"name":"seveyeco","email":"matt@eco.com"},{"name":"paged","email":"dirkpage@hotmail.com"},{"name":"aleph2012","email":"satish@beam.io"},{"name":"carlosfebres","email":"carlosfebres97@gmail.com"}],"readme":"# @eco-foundation/eco-message-contracts\n\nThe message envelope, `defineContract()`, and the live cross-service payload schemas for Eco's AMQP\nbus. **Zero AMQP dependency** — install this alone if you only need to define, publish-shape, or\nparse contracts. The transport lives in\n[`@eco-foundation/eco-messaging`](https://www.npmjs.com/package/@eco-foundation/eco-messaging), which\ndeclares this package as a peer.\n\n```sh\npnpm add @eco-foundation/eco-message-contracts\n```\n\nRequires `zod` (`^3.25 || ^4`) as a peer. Note the `3.25` floor: a service declaring an older range\nmust raise the declared range even if its lockfile already resolves something newer.\n\n## What a contract is\n\nA contract binds a payload schema to its routing, its deterministic identity, and its publication\npolicy in one place, so those four facts cannot drift apart across the services that share the event.\n\n```ts\nimport * as z from 'zod/v4';\nimport { defineContract } from '@eco-foundation/eco-message-contracts';\n\nexport const InventorySnapshot = defineContract({\n  eventType: 'inventory.snapshot',\n  routingKey: 'inventory.snapshot',\n  bindingPattern: 'inventory.snapshot',\n  schema: z.object({\n    aggregateId: z.string().min(1),\n    snapshotVersion: z.number().int().nonnegative(),\n    actualBalance: z.string(), // decimal amount in base units, as a string wire type\n  }),\n  schemaVersion: 1,\n  // Deterministic identity: the SAME logical event always resolves to the same messageId,\n  // which is what makes an outbox retry safe rather than a duplicate.\n  identity: (p) => `${p.aggregateId}:${p.snapshotVersion}`,\n  // Optional: enforce apply-in-order-within-scope. A stale or out-of-order redelivery is\n  // rejected before the handler runs, rather than being left to regress state.\n  ordering: {\n    field: 'snapshotVersion',\n    version: (p) => p.snapshotVersion,\n    scope: (p) => p.aggregateId,\n  },\n  delivery: 'required',\n});\n```\n\n`delivery` may be static or payload-dependent, and `resolvePublicationPolicy(validatedPayload)` is\nthe single admission decision derived from it. A `required` contract must also declare\n`durability: 'caller-ledger'` to be publishable directly — otherwise it is refused before it reaches\nthe broker, because a persist-before-publish rule any call site can bypass silently is not a rule.\n\nDeclared field names are validated against the schema **at definition time**, so a typo in\n`digestExcludes` or an `ordering.field` that does not exist is a module-load failure rather than a\nsilently-ineffective declaration.\n\nEvery static routing key is also exposed as `routingKeyTemplate`. For a payload-derived key, add an\nexplicit template such as `<chainId>.inventory.snapshot`; the built-in catalog requires one for\nevery contract and publishes it in the generated schema index for compatibility checks.\n\n## The envelope\n\n`buildEnvelope`, `readEnvelope`, `envelopeToHeaders`, and the `ENVELOPE_HEADERS` constants are the\ncanonical envelope surface. Every message carries a message ID, causation and correlation IDs, event\ntype, schema version, source service, attempt count, and W3C trace context.\n\n`readEnvelope` returns a discriminated result rather than throwing, so a malformed envelope is a\nvalue your consumer can park deliberately instead of an exception in a hot path.\n\n## Live contracts\n\nNine contracts ship with the package, exported as `ALL_CONTRACTS` and described by\n`BALANCE_EVENTS_CATALOG` (which records the producer and consumers of each, so the catalog answers\n\"who breaks if I change this\" without a code search):\n\n| Event type                                  | Binding pattern                             |\n| ------------------------------------------- | ------------------------------------------- |\n| `withdrawal.created`                        | `*.withdrawal.created`                      |\n| `withdrawal.resolved`                       | `*.withdrawal.resolved`                     |\n| `withdrawal.refunded`                       | `*.withdrawal.refunded`                     |\n| `gateway-deposit.created`                   | `*.gateway-deposit.created`                 |\n| `gateway-burn.mint-confirmed`               | `*.gateway-burn.mint-confirmed`             |\n| `gateway-burn.burn-observed`                | `*.gateway-burn.burn-observed`              |\n| `rebalance.snapshot`                        | `rebalance.snapshot`                        |\n| `solver.actual-balance.update`              | `solver.actual-balance.update`              |\n| `solver.settlement-risk.fulfilled-unproven` | `solver.settlement-risk.fulfilled-unproven` |\n\nThe settlement-risk contract signs an immutable observation; its versioned inner schema and identity semantics are included in the schema index and compatibility gate. Shared valid/invalid vectors are exported at `@eco-foundation/eco-message-contracts/fixtures/fulfilled-unproven-v1`.\n\n## Breaking payload versions\n\nBreaking versions use real parsers, not a header allowlist. Define each historical schema with\n`defineVersionAdapter(schema, upcast)` under `legacyVersions`; consumers call\n`parseVersion(envelope.schemaVersion, body)` and handlers receive only the canonical current shape.\n\n## `payloadDigest`\n\n`payloadDigest(contract, payload)` answers \"does this publish carry anything a consumer can actually\nobserve?\" — for a producer whose version bump is unconditional and which would otherwise re-emit a\nterminal snapshot under a fresh version. Exclusions are declared per-contract via `digestExcludes`,\napply at the **root only**, and arrays are never sorted (order is part of identity). Values JSON\ncannot faithfully represent are refused with the offending path named rather than silently mangled.\n\n## For non-TypeScript consumers\n\nThe tarball ships versioned, language-neutral JSON Schema artifacts, so a service in another language\npins the published package (or vendors the files) instead of reimplementing the schemas:\n\n- `@eco-foundation/eco-message-contracts/schema` → `schema/generated/index.json`, the contract and\n  envelope index with per-version schema paths.\n- `@eco-foundation/eco-message-contracts/conformance` → machine-readable conformance clauses, the\n  AMQP wire mapping, and replay-verified delivery vectors.\n\nThe schemas deliberately **do not** reject unknown fields: a consumer must tolerate a field added by\na newer producer, so validation is not a compatibility trap.\n\n## Documentation\n\nThese packages are the reference implementation of the standard, not its definition. The definition\nis two language-agnostic documents that a non-TypeScript service can implement against — read them\nbefore changing envelope headers, queue topology, settlement semantics, or the durable-publish rule:\n\n- [Messaging conformance profile](https://github.com/eco/eco-messaging/blob/main/docs/spec/messaging-conformance-profile.md)\n  — the wire and the consumer.\n- [Persist-before-publish and rehydration](https://github.com/eco/eco-messaging/blob/main/docs/spec/persist-before-publish-and-rehydration.md)\n  — the producer.\n- [Contract versioning and ownership](https://github.com/eco/eco-messaging/blob/main/docs/contracts/versioning-and-ownership.md)\n  — which bump a payload change needs, and the consumer-first rollout order.\n- [Repository README](https://github.com/eco/eco-messaging#readme) — install matrix, peer ranges, and\n  the full transport guide.\n\nChanges are tracked in [CHANGELOG.md](https://github.com/eco/eco-messaging/blob/main/packages/contracts/CHANGELOG.md).\n","readmeFilename":"README.md"}