{"_id":"birdcash-chat-sdk-alpha","_rev":"46-6f8bf54b70342d9cdb8d5e2147be9554","name":"birdcash-chat-sdk-alpha","dist-tags":{"latest":"7.1.0"},"versions":{"1.0.0":{"name":"birdcash-chat-sdk-alpha","version":"1.0.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"f792e30ac3056ac7f1e565632f536d528f579aba","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.0.tgz","fileCount":13,"integrity":"sha512-VmKTBjWZSLbGOtwDZe/ry3iRj/gajc1a84IoN0sVeaaMVABd3OA2EqSDLi1foO/DqMKLTfCtqnZfO1KBqW3+nA==","signatures":[{"sig":"MEUCIAq+PXd1v/OcDU5IuiSuZmmHIyimbME1OxikCd7xcfr1AiEA8RjBOJWtu5XXbi2Vktu6JBmu/j2TRvnovHpDvl28VIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27746},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"db0a2a327eb1eeeac2e940de42d7c93494ebad4c","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.0_1781405817366_0.9374817439719716","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"birdcash-chat-sdk-alpha","version":"1.0.1","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.1","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"908f46988ae71ed8d62b9a418963f5180b6851d8","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.1.tgz","fileCount":13,"integrity":"sha512-8j5x8rJ8JJXtmdG1K4xKPHknplX8fgcTO2od+dolXbOtij9Ce/uVQ2zTRkOH1BYDio5oHr7TzfalmXDGY0BqkQ==","signatures":[{"sig":"MEQCIGtelpMtOMwHpH4fSLuR5tTRUNCnRzU1DRRm7+dbsU+xAiA/GWc2k7/EvrIM9Fe8bGSRtzmh9YYMdC8QZ5ImARZKug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27243},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"db0a2a327eb1eeeac2e940de42d7c93494ebad4c","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.1_1781406090334_0.6293587519462573","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"birdcash-chat-sdk-alpha","version":"1.0.2","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.2","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"2edb6f7a26df323ba50eeb1b904c1f0040812fb5","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.2.tgz","fileCount":13,"integrity":"sha512-xWES/LNhHLdiusL9JfwVCZBh6oirvYZb4fjyBLa0hBX5LcO8lI3uadKxZvoBw4B1NGQ0GIp4HECbvPTYeLatTg==","signatures":[{"sig":"MEQCID/UslX3m5PwdnqxXiEOw9h4O1E82xvSxQGxdgcbk/rkAiA6mJYDdB0IkkWXzlZRn9cCAQu6bFe20s9DyGd8h+gPiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28674},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"db0a2a327eb1eeeac2e940de42d7c93494ebad4c","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.2_1781409796344_0.7235010389059007","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"birdcash-chat-sdk-alpha","version":"1.0.3","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.3","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"1c67011348b02991852c557f392ba57cfb3f95e0","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.3.tgz","fileCount":13,"integrity":"sha512-MEKx6Y4eJn6QDJhejrhSVe0exL/jshi0MYC6/RlL2SaJEnnF1l1phcYGB2N3GCAtCD4SvVfRHbqNVGLTQ+BeSA==","signatures":[{"sig":"MEUCIQClgPvfNcVzDFsMN4MP782ZtLzVyQkum/d47VDiT+XR1gIgOcwlQ7l0DAZL6LqPhNjbh9Nivs7x888V5Dcr6AwqgYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37125},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"db0a2a327eb1eeeac2e940de42d7c93494ebad4c","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.3_1781411301499_0.8096927871270778","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"birdcash-chat-sdk-alpha","version":"1.0.4","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.4","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"a056e5f36bfacab14e81d8c8618275f0a1ae3a28","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.4.tgz","fileCount":14,"integrity":"sha512-HwX7Fdf32mnr4meOkaej7ZidC9X88GQFnhNiBY9hQskRRWVZ6rT9SfM4KZiM/YzOFlKTCJqQysroAyhcxezgDg==","signatures":[{"sig":"MEQCIAtknmRubBUXL3+zgFCRNWm8a42D3doNlwEwyplPPguJAiAOTu+eUylpwyZFgqmKn7v8KYdjHOF4WNL0FcfMR3gxAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42076},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"db0a2a327eb1eeeac2e940de42d7c93494ebad4c","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.4_1781412481455_0.7903640762802817","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"birdcash-chat-sdk-alpha","version":"1.0.7","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.7","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"e1ec8577f8c297d5253da5ab414656b035593e69","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.7.tgz","fileCount":15,"integrity":"sha512-qyWZCi3iAXLmSVCnMGlm5VOz16RHC+ieuCX3smLsLOazWJk4oUWS9Y84Hkl0Gz8cMNoot8w8GUgm29xxmcEQvA==","signatures":[{"sig":"MEYCIQCX1/VbgUUWiucuLxB3lSlxxRMphaMMXD1rC5RZII1UoAIhALvVc1oG0kR3lNneQhLTtdL9wlJURMZtYA4IXfxtCbSr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47836},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"db0a2a327eb1eeeac2e940de42d7c93494ebad4c","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.7_1781413308412_0.7076159984062305","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"birdcash-chat-sdk-alpha","version":"1.0.8","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.8","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"c6e4f6c1348f43deb2ea99dacd46a0541207ed64","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.8.tgz","fileCount":15,"integrity":"sha512-7f30kHWYmhERvLp1F84QkiusWvs3BF5EIgARgCV1zrtj5zAbV0FJrynSpEfn+6sWg7I56+hhfPYnLtGOiPjmOw==","signatures":[{"sig":"MEUCIQC2Vx/1bPllASqaQgbvJsCi9VfA6lcMRw/oUHI53Lu8OwIgKUhPd4aKjQmJ3h1kxV2oDP7eD3h1N46RWg9TUORniCg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50892},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"db0a2a327eb1eeeac2e940de42d7c93494ebad4c","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.8_1781414785780_0.5873529594234643","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"birdcash-chat-sdk-alpha","version":"1.0.9","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.9","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"6f7eeb4d847c406ff6575abf32b11cb418e65e0a","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.9.tgz","fileCount":18,"integrity":"sha512-XXWmcUB5SnywLWnVvuyM7q9a5BzF1M3RWxNyeAvIIj0iU/Kn9bP47FS1Iqv3+MPT5/KVJ/aXYflfGF49mv5Ysw==","signatures":[{"sig":"MEYCIQDwXn/wPVu1M4ZqxV6e+wPjvTq8N9+pfw+iIk+fByfuhgIhANN2SLleNxcD9c+BFcZYrG4NI/Ji+Jr9VCWQULUmM/l8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59735},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"165b62058f07bea182d3e415b2295f5edefc3983","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.9_1781450110060_0.10811160644461015","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"birdcash-chat-sdk-alpha","version":"1.0.10","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.10","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"24c53489bb1873ffc21b5dde7a840cbec6bf52c8","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.10.tgz","fileCount":20,"integrity":"sha512-XYed4dBFt0E91VpuhmjzBtbWLk0556c9jM1YfSijFnusAmbs/lT8ZJP6XLSuKfbEio/oQlPcgpPNqvuViplftw==","signatures":[{"sig":"MEYCIQCVAqAyYCBE0valofNIS6CD6CyDWYr3q4RrBMPw8Um1LAIhAP9EXErgnWFSMbxm4Emlj3d+FXaWJtXhAH+KOLcEPQs0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69661},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"fbc0e805e4e8872b45f1623fb4039637b3b1e97d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.10_1781665835296_0.2610393243537976","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"birdcash-chat-sdk-alpha","version":"1.0.11","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.11","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"e410365d9c95a5d0fd4e901b81c4376e5ecf689e","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.11.tgz","fileCount":20,"integrity":"sha512-VvIxvS29J7iUtHWlBYg6QyF9F+2kXVMqgkGuopnGjedM98DTnlbk3Aa4/FtjUkeSzstqXZqNNjWg1eYNW2O3tg==","signatures":[{"sig":"MEUCIQDO4LQ2kmHYMHYbE7LpAlK0qUD2rOCiEg5OGpDh5tlGgAIgSTQQfEBn5b76yaRe4zP9kMvLAb1c1z2WFX8/ywGLpK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76141},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"fbc0e805e4e8872b45f1623fb4039637b3b1e97d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.11_1781667636134_0.03835639246293443","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"birdcash-chat-sdk-alpha","version":"1.0.12","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.12","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"8895938917a8ad6c5fb9ff5494e4042044b2c909","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.12.tgz","fileCount":20,"integrity":"sha512-5RSEmcITg7AmUUJ4ilNaKTLeMW9tqsMCL+HHbZtsWdtwQQumCE3JFIVHGvsdfS7GtupOgmZ63YI3cciWWR2hmA==","signatures":[{"sig":"MEUCIF4eDBNTRFUvSXRaj1Gj80UXJLTvL7oKRZnsDzif01JgAiEA88EcR8WacseTLc4hHjcyUQZ6QFm/NURVqYK8uywE2oE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77374},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"fbc0e805e4e8872b45f1623fb4039637b3b1e97d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.12_1781668650795_0.6533570061659983","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"birdcash-chat-sdk-alpha","version":"1.0.13","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.13","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"3f244a38869b8c929936c6ee6338a2f6d093979e","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.13.tgz","fileCount":20,"integrity":"sha512-8Fyz7GrGJ/4W9urHUpZEk9RwhqovktRY409nUnOlAEKGfAHN6JKPcTGYw3NL8kZB/s9CQPahwVEmnQHzejTq7Q==","signatures":[{"sig":"MEUCIQClqo4zEejW5Vxsan2ojsQPfjtTMk6PDCa9iOR/Wf1G4wIgMAZ/DjrCo6P2PiQCiI/JCSqyh85J4ltZu/RxyXMG0Tk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80181},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"8e8f6baaa322f0af27cdd6557de6d5095d54e73d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.13_1781720171122_0.44038604578413665","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"birdcash-chat-sdk-alpha","version":"1.0.14","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.14","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"98e774f6c889734ff9652d72bc290f534687977e","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.14.tgz","fileCount":20,"integrity":"sha512-wC7bkCgChHyULFrRTIzWKAViWPK0Zi8Cp2Qz4ptSrbpB23mYVs4Wl6ZPjF/RwbiKM/iSHjYUNXBHWNFG52p18Q==","signatures":[{"sig":"MEYCIQCAUB+o/jl2cVIEnG8L8CppFRnxjBU9JYqPeKFDRopE8AIhANjiTcFcqp/iATdDvfj4RE/h0fprXI5TObotH9qozxBd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80203},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"8657831465127c6167b173323d726ea16c208948","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.14_1781724719550_0.24927165457469647","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"birdcash-chat-sdk-alpha","version":"1.0.15","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.15","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"77e3a8c676792f66c05625e642051e121e7f82ad","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.15.tgz","fileCount":20,"integrity":"sha512-ZLaG1pUD3ZPleLJ0cQudR38D/3NDaMqY5Pt9M6/rBlD+XlHllAIuw5jNi8RQ4FC5yPLpfm2BD2i0E9dTY32GCw==","signatures":[{"sig":"MEUCIF9q835gMqKZ/J8koDy8yjpyCei2leNvBxWcHEQl8DQ+AiEAhL5+CT5BtTYUooGxa/+2laLPkNpuy0ZTgiOPK2i3Nx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85170},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"81d3bf68a096421903d32be800dbe56f7a62690d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.15_1782616810292_0.20358993443379858","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"birdcash-chat-sdk-alpha","version":"1.0.16","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.16","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"5028e7609e340b6d136522c22f5dd99eae8e6f30","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.16.tgz","fileCount":22,"integrity":"sha512-4OKLcj+zIJsS8eaVw8jHEGVHxdNrmjeeOGDh0u7KtAy56Qc46olQJXTS82mIbwT5mZsg/pcSCjEOWFuiSzi9ug==","signatures":[{"sig":"MEQCIHBgTqkpl/Gu8C6J6vfHkikEHx4fBtMb3DLIIafy8bxsAiAe+a8+XiICiAfh1+0IgbBEHLiXE6xpUjZoQFDBhiUPlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983445},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"81d3bf68a096421903d32be800dbe56f7a62690d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.16_1782619420568_0.05755680255234186","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"birdcash-chat-sdk-alpha","version":"1.0.17","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.17","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"28381e8d6a7587194b78267e1d07d14c1c351490","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.17.tgz","fileCount":23,"integrity":"sha512-UVjJ/LXVCiR+3oH0A+6eUd5g0EVH/S2fRaAKPHzeKRtlNiUzJziSIVEmS1NwbzhRCqFXFudzlf0dd1luaFrXkA==","signatures":[{"sig":"MEYCIQCcsyM+As0tUdyDDFZFjziXA/cMayr7v7jYPPCTlDGBBwIhALKxpvA5DVSJ93QvWA9DvpGemt5TutdPxHbDdgK4YEaI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":989759},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"81d3bf68a096421903d32be800dbe56f7a62690d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.17_1782620805666_0.46590419319027343","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"birdcash-chat-sdk-alpha","version":"1.0.18","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.18","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"d07d953cf92cd2f54e0c8b2bc4dac9384679b993","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.18.tgz","fileCount":23,"integrity":"sha512-B/sva4WkFkURJ7DzcjgtCqQRgeJrJaBpYxqE2imRlHI5C5lQMpR3BBfaWPejH3QYPa3K8tHNONmIpnq53I45kA==","signatures":[{"sig":"MEUCIDk61/xf6+YBldQRW2G9FYMezlY7ZkkAHZZPBEk4zq5SAiEAjqERtKpX5Mzc7BNxbCjFD0VBygMKC8+WNB4Jk9aB/Ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":989381},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"81d3bf68a096421903d32be800dbe56f7a62690d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.18_1782621276512_0.6739981454312245","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"birdcash-chat-sdk-alpha","version":"1.0.19","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.19","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"2b69d1da070a650747605f87cbe91607d617c405","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.19.tgz","fileCount":23,"integrity":"sha512-pHjy9WcIvxTPXJgCACx6SSYAQLaT3d6/vqdCk0LD1edNBSba1edX6AiZSW//vhn8EGWpnp+7tq7lTrh80z8DQg==","signatures":[{"sig":"MEYCIQChy/O1dMFtDBEfb+EdNpYz0w0YdoM2IRQrX0oYQyYcSQIhAK6ahTbzmBckDxGxuMcNpoB/JvmHwVXj5ZioMGR7uEfD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":989405},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"200263f2f71e73c2b32595cd3535e0caab3b7b54","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.19_1782703085666_0.7811779833036372","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"birdcash-chat-sdk-alpha","version":"1.0.20","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.20","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"628e46926e256b118e586b97eed32a28e9585b11","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.20.tgz","fileCount":24,"integrity":"sha512-hcFyCItZO23xeerkH/Rnh/XsoFYkvADg0L7Z1hozbXsGqLYRY+3QoxFgd+5t7PMVJUHY2cYC+f5W81ZZf2bFSw==","signatures":[{"sig":"MEQCIAypBCs544oRJuqO1FG91CrGDhDTqShI8Bqkb+Zyj10LAiB5tjQwa8Y30dtZvWAOWmXhmb9Tkger/iwMt0im1Rgkfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":995940},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"8cba2343506915d802d3d89f7b062101e917b8f6","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.20_1782853142090_0.5905345537995152","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"birdcash-chat-sdk-alpha","version":"1.0.21","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.21","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"09eccee1a5580a76ff339f812b6175f902e9f82c","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.21.tgz","fileCount":24,"integrity":"sha512-fVWwZovKWSKexR16c9g7a46Ozhj9EYs3N+o5NTLEiLkFpP7IXvJlbyRGbmOGyASylea+5epsscxH/ZnJjBjoHw==","signatures":[{"sig":"MEUCIQCMVPeGhsHlArN5R2qdIW1Zz3aDn8AZJfTtStmFSOvrIwIgDGWVvjHdKhmZcx1ZaEkxTW/4I+eCKqgMzaCYp0Eyvgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":995939},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"3e01b1e87aaeedf8404ca3545eb7d7faf2ecc27d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.21_1782926580749_0.28503316074171825","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"birdcash-chat-sdk-alpha","version":"1.0.22","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.22","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"c0fe707b817540f6fb097e9c1e3c383634dffb85","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.22.tgz","fileCount":24,"integrity":"sha512-TO0pk5NYsNkXxcU6ZcEvm4+Vu/P4aLl+kNW4lQx+QuRGku0ygFrIZprEwuWMbnhD33YnZh/PrQcPEpPbrmspqA==","signatures":[{"sig":"MEUCIA+7rMsSA5KD49LWcfnRB4gDt+VVNJg2aoDZtya/pUKyAiEAo4bSVsRn/lkYuTRh0IsCiayqTV6L7zCpWJkaSyef5MM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":998318},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"624d6bc868a57d097d021f497ced8e451351ec35","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.22_1784417425899_0.22612925035106635","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"birdcash-chat-sdk-alpha","version":"1.0.23","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.23","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"c5179a71adf9ca06fd5b5223cd63940d076407da","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.23.tgz","fileCount":24,"integrity":"sha512-tZQKdOWkYT8a978NfejklO1cqWkqoElxWxQmDvGAjDYnUpY/9fpRZaEL66wQsFKKKQXZxlcGkr7oL6rMNZnXZQ==","signatures":[{"sig":"MEUCIQCc++GoR/DwllyPSBfQ2MQrowefArsIsYXKGKlRD8GQNgIgXbY4mEu6P5Ei4WkVN3f3Y2UbTwVNgmjsxNqD4olDqGo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":999028},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"624d6bc868a57d097d021f497ced8e451351ec35","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.23_1784421866159_0.9246587456985387","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"birdcash-chat-sdk-alpha","version":"1.0.24","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.24","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"6c0bdd81eda15d65893878783896c40bb614ddee","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.24.tgz","fileCount":32,"integrity":"sha512-bhN2MLyjfGvDTx/G+VO/1Os4qa0nZF9eFUhg4+mH1yKVdOji5jEZ7eo7vQmydGGff7A3iPyO3R+nWEpP/WxT2g==","signatures":[{"sig":"MEUCIQCmt3Vd1oNp0H6T+g7U9rQvUpZx/1/NbSceV5z5jzRbzQIgN7Vidd1dDEKwVxgWiCMq8EVrOFB37791Zm4F/vy/cDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1004124},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"a6fdcb9461af7ca81cb897ae22d77b8fbcb3ae6f","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.24_1784655670882_0.13130108380299754","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"birdcash-chat-sdk-alpha","version":"1.0.25","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.25","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"5dc7d16abca3af668b055c4dd6554ecd398e0ccc","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.25.tgz","fileCount":32,"integrity":"sha512-MPAAe+shBZAQvubDV5402diOq10++zuGnqtOs7xjHCN5ecbMcBMnMxTBiBaX70OD0oHDhrB0uNYmWjd+WsGzYw==","signatures":[{"sig":"MEYCIQD4cArZWpcwpDGj/5+kd3+JGHXY2xpX2pgZ5+6djA6PfAIhAOP1muV/xdJNzrAoe0caBaUi2R5SQyE5dKz+FsCnVyoM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1006989},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"28f2ff149203d65a34e66a9cf41ca8dbfbbaec43","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.25_1785491975534_0.9156974214709368","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"birdcash-chat-sdk-alpha","version":"1.0.26","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.26","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"4f5aeabcdd72bf3fca6f1a946f54d313e2573dd6","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.26.tgz","fileCount":32,"integrity":"sha512-MU78GXd3qinRQnQhfhCheI1CvQHz9XSKGPI2onakomNPjyh9IJ9IKCgZcvgEH/zl66htgEdjN76TUpWeJdis0Q==","signatures":[{"sig":"MEUCIQCL/vJz0V5G0AypvCZbOPdF8AXXfvEdgzbG+mIIEoXaUAIgUlhMt6StsWLmiSRuzAvZW1jboO/rZD+AFaNT4MjSRNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1009503},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"756a8dbc95784c00ee11016c191b59f65ff8f7f9","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.26_1786393636839_0.5695807326507238","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"birdcash-chat-sdk-alpha","version":"1.0.27","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@1.0.27","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"bbd41733f70758cb4caf90acae4856359df17d9c","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-1.0.27.tgz","fileCount":32,"integrity":"sha512-94BEYT1PYXS8QiLiXm9uXtBE9Eq8nTJIpGtXtrbpx4M+yNliOOX0pQ/mRUkLY+7yXYuzChDqNi1yl7CQEo4FFg==","signatures":[{"sig":"MEQCIBYzgQJTKS6Qo/1U2A42eAXFBSqxn0xm/48zrLHq6H1BAiAZv75tRpECQ6Oq6Q5zaubUJU2sacW7bozR123Q0GfhyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1014444},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"7cfee24ea9e2498527d69db1125e2f624c2dd368","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"11.8.0","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"25.6.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_1.0.27_1787020638405_0.15594477706906962","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"birdcash-chat-sdk-alpha","version":"2.0.1","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@2.0.1","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"f0118db84cf26cbd53a8d44cec3b75d4c7e79c0d","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-2.0.1.tgz","fileCount":32,"integrity":"sha512-qvoobHelwXMOsOoO8h45/kIidgb6uwFBK2HUrR/KFu6yjUOPmIo5CeN2IMr3gwKnv4Sm6hr0oyZkBIDtTOfhvA==","signatures":[{"sig":"MEQCICeH0gw+RkF0dkI/KzJ6GItT26he0NoxM5VJM8lsPIntAiAak4wAw5qrWYW5Vz2iEThxWpaeMZ7OmgQlu6+C3OfMNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1035428},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"0b0cd8e3da1f814aea694511524e44a756e3dacc","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_2.0.1_1788907269530_0.2949483290828365","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"birdcash-chat-sdk-alpha","version":"2.1.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@2.1.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"1b45f050faad4b0d11569e16c0dd3c84f8c65e73","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-2.1.0.tgz","fileCount":34,"integrity":"sha512-WzUI3VqqZbWyz8MpfPq+YrBACCK0+boqsR/V14oW4tkrwd3abJcmHabY05aoiMlmiMT27FFVdBZ9leyS4e6XfA==","signatures":[{"sig":"MEUCIQCGoPn6yVJSXRZRNsaSOBdS3w+6Ep80qYW33yQxTRg0xgIgDS/Bzz2Q0LeLs8Ff/x6mFLucx6SAW8ufrmwHU+0D9rQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1062337},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"d18bffca38e0c41b7b620d3d70bedf59f8c18678","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_2.1.0_1788914660918_0.8798205065481621","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"birdcash-chat-sdk-alpha","version":"2.2.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@2.2.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"bdb9bf127078e9b277a643f4f45ce72922710159","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-2.2.0.tgz","fileCount":34,"integrity":"sha512-xoCDfN5rQcGY/41HZGp8dbydXWBwl7jyR4kxLLDRmhS8Yv99kI4FnkTMk3UEA/YWwEvoTQr2RmujidUlioJvxg==","signatures":[{"sig":"MEUCIHXR7HE/r0/vxwZ3W33OldaSnEiWfZQj3rwK43A/lB1hAiEA+TAbCgHlOtcPI799SM2fkXF+Gxjw4/FaBtUN8YjYbZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1064115},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"04521f3f2e17bf96b55dc3808e64020210dd7f55","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_2.2.0_1788925699009_0.2273497161377387","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"birdcash-chat-sdk-alpha","version":"2.2.1","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@2.2.1","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"78fc5b0e0c44f3a052a5221b4c15cc1305687fb6","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-2.2.1.tgz","fileCount":36,"integrity":"sha512-wqYiRjrtBxxamS5HhMjTXTwK9C6RYfDj21HJYvInPzSnrtbgF554fbz3balLL0EzcATI5SBd77/Yoq4qRvr0/Q==","signatures":[{"sig":"MEUCIQCYYx5CfC8lBNASWQZXiu6otCt4kaPirTgA9L1dptdvOQIgNREzhMrS/zF6ZBuO4Yd5FepCI//VCcRxaS0diTDoN0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1091294},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"f5e80369f6754faba28d88cea389cf617867e8bd","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_2.2.1_1789059907562_0.5175497264858353","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"birdcash-chat-sdk-alpha","version":"3.0.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@3.0.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"2def5b4ad6729995ecb41bf7e470fffcfcae4a9b","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-3.0.0.tgz","fileCount":36,"integrity":"sha512-pKx4i+CmlrtBzCrjm+612WpKgX2uo0fdV226TrmhPmitMscbVUSl3DL8lQYQJzfQ5ZIi7xmQRFm8dY3zyyE+qg==","signatures":[{"sig":"MEUCIEFPQw/Sw5jWXDXn8P/pTU7rqSbs1PivdGcu289xqm+KAiEAnvUVXZGA9/kIX8ui4FLCZbQMTYwzq73rdTholU4u7m0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFMlyeIbK4V8Cv9IDKBar/sz+JbEuvSLe++BUneIYa1KAiB4ZdwimJtTZ06BPf+k7qhcwcOs5zaAvZnS4nCxd8C/aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1091939},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"1b1e479d686b1742993f1fcb61a4fb5621ac6526","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_3.0.0_1789068678792_0.3865557872575469","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"birdcash-chat-sdk-alpha","version":"4.0.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.0.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"1864b9a6d2f2c8c45e7b217e7be8809ebccb3124","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.0.0.tgz","fileCount":36,"integrity":"sha512-7mtHPs9otsSYEer2OscAgwQuohhOUGokfBwFynXqGJ1P4EiDXVB8jTl9prOY13wx7lUia7hqo7LTvBtUbq9pqA==","signatures":[{"sig":"MEUCIQD0hdX+cYN3DawMQ0bo31xgnQncu4t2LWyAYe9O54qSIAIgTRnoTU7owHK3JCn6PI1HpbllnIhAHpdETPUBiFReFJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQChdw673c0n0MjYctjorcaEcvONadHw7dkaOlvYyxAy7AIgIs7D1wMWOjWWvpnin1iXfR2bOv/3FpCqGOVySIWnW4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1096807},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"5f9497d221a4badac7cf7134e556b0e84527b241","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.0.0_1789071657939_0.7433228600089159","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"birdcash-chat-sdk-alpha","version":"4.0.1","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.0.1","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"68fadc7ced04d79edad9825d35e19c85347e5999","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.0.1.tgz","fileCount":36,"integrity":"sha512-XdWdEPlKU9eMlrGjIlmfCWb/oencKcT2btEAhYhW7rr1P258YhMAUCoh0Yh1EXV090ivOONLjaYTSnaeBYpn8w==","signatures":[{"sig":"MEUCIBfaEJePW04YAqTVvwiSMO39QqFszdsYQW25xg1pSxQPAiEA+DR2mv1/FPRfM8HT5khW+ZWf9HvCuuDltdcXvVN/LX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDHrD89eDdVjdJ6K1xz/KDrMYtnhsrW7VXJkqJS+N+tMwIgSCBzUGm6OdVt8XRKa+ww5b9CjZtkYHkYB9wsIGQiDyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1097364},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"a65af5dc45a50c501563077b6898f49b858d0ac3","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.0.1_1789085240293_0.9611301776170029","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"birdcash-chat-sdk-alpha","version":"4.0.2","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.0.2","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"fbf875b9ad2beb7e74803fdbc08958ce6821a60c","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.0.2.tgz","fileCount":36,"integrity":"sha512-Lg20LKtlJvuMAKDhXZfTduraBPjZAAQzeft5WrdrxfWs73TqwD/x0vPhwUU6ff1CdlTPaX69sZ7ATDvmk74huQ==","signatures":[{"sig":"MEYCIQDhKEHnV+ft486lFm4/TGPY1UszrYE6glJDt2dQ1sK3EQIhAOO92CW1PRkt/HPnYMlo2pdXSIloqU1x74M8vcrgRNHt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDRR9PuTyxR3Mm1eXNb2/KQLaDYRchQxps5UbEjTxGL2gIhAInnEK7rWcYI9CLmsWHeCxiz3SkARKeJvFNA7jCAjOoF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1100291},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"2c70321d689a63a3f84ef08da13c567dbc6e50a0","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.0.2_1789595859060_0.8193349088187991","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"birdcash-chat-sdk-alpha","version":"4.0.3","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.0.3","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"b4e263189064dfa936a38cc3f39fcb94709b9c54","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.0.3.tgz","fileCount":36,"integrity":"sha512-7wxdJlrDWwUli3w+zQkyAvTJxIL9S/PvxVujie5bgRTUDoPJRt0Tj4oORlzR9t/BKBHL16ee9Kp8M9GxNWJu2Q==","signatures":[{"sig":"MEQCIDzPq6Z/FnPQs9M2SSN8TfKQz4GES1NLOA/W1BIyE1d2AiBooSyawny34Dsp4ASBC26ffK0R+GMcVLT+MfVjDsrtYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID6BIWjc2zh+fET8jP+/MMFBG8Er0HRTuXg5vzY5/6S6AiEAzfunT6x0bcZXRqN8Iv+ILiVC26vgxpIVPUNdtYIsPTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1107512},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"53a296df27f51e92971aa1c785a3bcf7f480ee29","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.0.3_1789682476384_0.3224538062108371","host":"s3://npm-registry-packages-npm-production"}},"4.0.4":{"name":"birdcash-chat-sdk-alpha","version":"4.0.4","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.0.4","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"7290dfa60a55f23f07ae52264149912e0fafea57","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.0.4.tgz","fileCount":36,"integrity":"sha512-IoW7AqfHe3B5rZEFNmE9oqvwhTqj7PI+4pSOqaDQXnzMpRjIChrEyc4eyrXxH0/tLHaLDkpD5qQtPrWEqeLWOw==","signatures":[{"sig":"MEUCIQD+RgpQ3WS3eLQSeO06cpF678nl3QMNilAZCkOamEH5wwIgenX0zrOUfKINcAsTY1iYxzsS5acx5ZNAMXFfWZFK7Mk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC24FG9xE6eWVbN3Lq9u06WPE56x1vIqxl0iElQCyvWrQIhAOpAoaFvE8gsEwkJMC28IPMsNCzt3un1+gvQAhrGdU28","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1126789},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"93515c286c6efaaa682dc66ad5aa4585d1c3c24e","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.0.4_1789711328630_0.8682413292988602","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"birdcash-chat-sdk-alpha","version":"4.1.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.1.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"b8c5e0a48ab20feca4c7a1c61c3f612921667ce0","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.1.0.tgz","fileCount":36,"integrity":"sha512-vXds1o356jFCHjmjq+sirXjN0v6X4pa6g/uj2JOkPfDmFkBapl35uQ51f2u/PEdhaa/DhyPmL5DC1F7pP5xUMw==","signatures":[{"sig":"MEUCIGAf9riTUCiCwoxP7uuGwkYJ2frj0ZG4rOANuAUGa5lFAiEAwoDCE/n8n5E/G0BAbNK+WBACir+Awx5PhCB65tGRZX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH+QKOQahuYb+4HGevdaYEAdJXAeleLe7QtS5uleszyPAiBMEEIsWU3MrkFwWg6/+aqTBF/kqDFxNu3lgbTS/UpTcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1135588},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"7b91a99248abcd54b6c7274dc321b3fbe51593a4","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.1.0_1790042167218_0.7558219698661885","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"birdcash-chat-sdk-alpha","version":"4.2.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.2.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"2613512576dc998770d2c8c39e5edc505a1782a9","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.2.0.tgz","fileCount":36,"integrity":"sha512-ZYOrqbLTWWs5NqGvwuIAmfJ24yR/Jjguzt587/su5JwoRAz4XwONejpxqdxKAJkkDXVMrv3g98TlmvVNLKnMsg==","signatures":[{"sig":"MEQCIDlCSyKRhIw/Naz3EppUADDEHd/gKa/Yhuk0+UMWJfg8AiATfb2TUW0u01zSihuozxqv9olb3Yrv8ACSLIwgQFVz1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFod6/hrzqUHcNsl7JS7Loh8JwGS9mW6saqFJUUOO4pcAiA41KSBGR0x/7TxFRWw6xDfKyLbFGvdM40pCrOzL24/PQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1139378},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"720e7642b2940180faf688d97dd925f7cc71a438","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.2.0_1790131836176_0.8962127494746854","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"birdcash-chat-sdk-alpha","version":"4.3.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.3.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"96c38b108f40b87330835d265b6ee5bccd951a00","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.3.0.tgz","fileCount":36,"integrity":"sha512-1ZJPslkxJ+FwwCdmixyphBdulpKGPphgfIp8Sn0CPGaFGdXsGejA5IXYSAsbJ65BCGGoinrcbOaR/1+gqRdoxQ==","signatures":[{"sig":"MEYCIQDgu/JQiWbtgFNXTIGmX4ofLdCRQy0MFHoz5IqzT+Sd3gIhAI0CEWkL0wxkN/a1CAoe6x2KjWXN1WLp/6n6d/80ftyO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCVdK1Jdr6Fd8+9lEvGHQtMKfeUpm3dxXa1aV2bry2vsgIhAI7UWeY2cznOdKpU6Xx+Fq1ZV/FA0jWr5fx1l9CXrNF+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1139454},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"432f777de8e3a6a097c0abdb18d9f6f8f41a6848","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.3.0_1790186109437_0.07596896245325468","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"birdcash-chat-sdk-alpha","version":"4.3.1","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.3.1","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"f37a7355d1f43406e13a4f0ec6f76aceb510ebd1","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.3.1.tgz","fileCount":36,"integrity":"sha512-Ktag/pqImupPF/7tGJuT9LJhsTZh//sFqlPbw8mN8pPC6+al4ckOJ2wCHzVU9Zz5VKFQwIaHIZZjIT/X1x8EJg==","signatures":[{"sig":"MEYCIQCdXDDWX9A7Cn2Vsb+skTH9xCyfaja+WpewExXBm6CvtgIhAJxv2PN3aD/c+tUhq48S/YGsKgYpRVUxQ5DOvaEbC9vd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC/hZN8DfEEXZrKLuEsEHOJTRZGidzn8ZzRlg9Zr/5LnAIgZHqP3/W9y72XOojE5ZltWrTLoOhv5jvN842qGfIY0A0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1144495},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"e04d4fc24acbf65876e2e743a281587a02f6b29e","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.3.1_1790271724037_0.8888731385183142","host":"s3://npm-registry-packages-npm-production"}},"4.3.2":{"name":"birdcash-chat-sdk-alpha","version":"4.3.2","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@4.3.2","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"68ac86ba6d9a139acd0ff0c54f05044ab07ccf09","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-4.3.2.tgz","fileCount":36,"integrity":"sha512-/pc/SDBPCRL86JYpwHoDQubH39RPbvvTEQB0dw13vi8PkCPuSop37uxufICALAXRukRdCR73/kJLRoBQPdkEhw==","signatures":[{"sig":"MEUCIQCY3qkL+UEF6DmJF9V/e4lkaHdNYzL0a3wbwAJYG0Vm4QIgZWz1hkagxTyj6LfTFisrX2XSAjdc12a9uqjTgvOQt2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDfXS8S769qTQaoefpXzLuRzpOXYLpNTDJfAIz+Xo8A/gIgXGvZAXLIYq1WImFEWfh4TZ8AvdG4D2dpmTyz1mOf0Sc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1144939},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"9d3e8a3da14cac40a5b1bbb6d9c181bc32377c0d","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_4.3.2_1790273564662_0.8700309349263577","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"birdcash-chat-sdk-alpha","version":"6.0.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@6.0.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"3693e5d44e275915c85faf725e36e4abe86fc324","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-6.0.0.tgz","fileCount":36,"integrity":"sha512-Aq51leeNG6YYE9XtudVe3Hlxy76LR3l4Dc9oJ+WZc+37dedsAKd2fEQTvaLKMdNVDg9QhNGdaX4cH/TyKYuBHA==","signatures":[{"sig":"MEUCIAJi0T5sq7rUzmRH52zBmo3Xb7UzSYKpGLqy7XR/u6waAiEAuSRWgpqD0qSeIvkma5auezQGynpue9XgWlkK3AazvNs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD3yySerxAUgubXOPBzJRFCbKJv2xbGTNPDnFBbYuOo9wIgCM6Lh9X/hXj2mSutLT5DlUgfxVsRh8cIP0CcQf8JD+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1137144},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"cbd3fedf888afc2bb8f38822b0482da425acbea6","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_6.0.0_1790376777599_0.052268551057646384","host":"s3://npm-registry-packages-npm-production"}},"6.0.1":{"name":"birdcash-chat-sdk-alpha","version":"6.0.1","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@6.0.1","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"56ea4e18cc4822940ea2acdbee56b9c3186f74af","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-6.0.1.tgz","fileCount":36,"integrity":"sha512-+bKuFTBv8LthRMdSOlvJA/eEPiIdn2l3kEwrnXXL8Q7NlVRFlueA1SW+6dhrn8e5rcolj7kZdo88Sn6dlhJBbw==","signatures":[{"sig":"MEUCIQDXDI5hDQIBViUp46z9H5unc9x5ax5ccJeDXw1M2UvrpAIgc7yO0b2rrxt5WiSXwgrxuM72DdSs4NsndQZ2gkioBZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDfLII2LfUQT0scO34jwsCjvR90542WDX6UcjhOmjMPBAIgHFQK49ZgH8IPiqJoRHAabcSy+PB3CflEPANSAn09i8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1138939},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"e181ba470d0b94a1b7fa98a6a909a22383d8b17c","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_6.0.1_1790444526734_0.7047220612233285","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"birdcash-chat-sdk-alpha","version":"6.1.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@6.1.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"832be0dd8a2dc9a39837856990f01ca185cf9e83","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-6.1.0.tgz","fileCount":37,"integrity":"sha512-IZfY4paiR7lrnrX2DUIwOCkhroQl9SNmHGjCIjVSFXXfUjqF1gJHhX9GP2p4R0CYo+fHn5Zz/usYXXccDozh6A==","signatures":[{"sig":"MEYCIQDeTOe3W5LoYf9hgnyI2Cj2Q3ndgO9A223uN0BmjUffTAIhALecnhqPC6705aKdrbQuskIGYyk6zgW1TChYSl+SI62K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFi17jPhZsN2xkopJcDiwoozH01drEaTFB3JCaUurXUnAiBOEnitf3bgVOjJYKbn0x4i7azmpL+RtMKAsXFHb5KLUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1159177},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"9f2a58d4e8b6a34e3dae78d0b31a0e9c16f42177","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_6.1.0_1790471939665_0.296942795714354","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"birdcash-chat-sdk-alpha","version":"7.0.0","author":{"name":"andy"},"license":"ISC","_id":"birdcash-chat-sdk-alpha@7.0.0","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"dist":{"shasum":"4398395077b7d839fba9ef672a496a26f58e713c","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-7.0.0.tgz","fileCount":38,"integrity":"sha512-ATJKvrOUMVaRgigKB+KGbyPtnWJF2RbSjAtED1jVxh5jFeGQzIbcuEhKXeUrAJd88jBQf5ydr499upJ9WiVpbA==","signatures":[{"sig":"MEYCIQDcMaTg/08Lu/QYMsdItJMo3B32UuBvdEcJ/F6eEHRFOQIhAKLpMpO4svmMF/MXCFW07dtx+XbQ7fTCubQoGwsfehht","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD0qHVN39WckPXCRjUcziEMREKsOHAeils0kghboXwkVQIgbDXdrwB+YhVSTVHp/Q/UOOwM5h6vfNCzXhTeGwi0Lh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1186330},"main":"dist/main.cjs.js","types":"dist/types/index.d.ts","module":"dist/main.esm.js","gitHead":"52d7fa9f2e5ca40239a88a9c912a8063f421613b","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/birdcash-chat-sdk-alpha_7.0.0_1791169069500_0.7944431786256456","host":"s3://npm-registry-packages-npm-production"}},"7.1.0":{"_id":"birdcash-chat-sdk-alpha@7.1.0","dist":{"shasum":"9cb5deed99c5a5aa81179e2a504a659debd95b71","tarball":"https://registry.npmjs.org/birdcash-chat-sdk-alpha/-/birdcash-chat-sdk-alpha-7.1.0.tgz","fileCount":40,"integrity":"sha512-WXC8W/iYIFxfkOZ9lPaCZbKxvX07sQc/yg31SZJgmViLEgHJZP7UAcDYfCgfede/g9+dbLL4orjk4EqZg3R88Q==","signatures":[{"sig":"MEUCIFHmoj5P2pUK7gq+2umXWwVLH98g7TWgKnAAEhHif263AiEA0IUtCKidNRUMJ8PBjL2zuPIQ9jRWf219TVrLhX6lT1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD8Z+vnviToXchz9feXYB73b35rln/kSVSX0CKqoH+ejgIhANl/5U/W7Dvh+HFs1aeX39yR5PKmjuOFJx8rnTWrkMmv"}],"unpackedSize":1268228},"main":"dist/main.cjs.js","name":"birdcash-chat-sdk-alpha","types":"dist/types/index.d.ts","author":{"name":"andy"},"module":"dist/main.esm.js","gitHead":"fc8d10870acb5f5eeffda4d3a463400880310355","license":"ISC","scripts":{"test":"jest","build":"rm -rf dist && rollup -c","prepublishOnly":"npm run build"},"version":"7.1.0","_npmUser":{"name":"andyfen","email":"andyf625@icloud.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","directories":{},"maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.7.0","@noble/curves":"^2.2.0","@noble/hashes":"^2.2.0","@noble/ciphers":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rollup":"^2.79.1","ts-jest":"^29.2.5","typescript":"^4.9.5","@types/jest":"^29.5.14","rollup-plugin-terser":"^7.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^26.0.1","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/birdcash-chat-sdk-alpha_7.1.0_1791230924079_0.4030641513387563"}}},"time":{"created":"2026-06-14T02:56:57.291Z","modified":"2026-10-05T20:08:44.386Z","1.0.0":"2026-06-14T02:56:57.508Z","1.0.1":"2026-06-14T03:01:30.505Z","1.0.2":"2026-06-14T04:03:16.502Z","1.0.3":"2026-06-14T04:28:21.632Z","1.0.4":"2026-06-14T04:48:01.595Z","1.0.7":"2026-06-14T05:01:48.595Z","1.0.8":"2026-06-14T05:26:25.933Z","1.0.9":"2026-06-14T15:15:10.190Z","1.0.10":"2026-06-17T03:10:35.426Z","1.0.11":"2026-06-17T03:40:36.272Z","1.0.12":"2026-06-17T03:57:30.936Z","1.0.13":"2026-06-17T18:16:11.258Z","1.0.14":"2026-06-17T19:31:59.701Z","1.0.15":"2026-06-28T03:20:10.434Z","1.0.16":"2026-06-28T04:03:40.724Z","1.0.17":"2026-06-28T04:26:45.880Z","1.0.18":"2026-06-28T04:34:36.729Z","1.0.19":"2026-06-29T03:18:05.901Z","1.0.20":"2026-06-30T20:59:02.236Z","1.0.21":"2026-07-01T17:23:00.982Z","1.0.22":"2026-07-18T23:30:26.062Z","1.0.23":"2026-07-19T00:44:26.307Z","1.0.24":"2026-07-21T17:41:11.023Z","1.0.25":"2026-07-31T09:59:35.686Z","1.0.26":"2026-08-10T20:27:17.187Z","1.0.27":"2026-08-18T02:37:18.570Z","2.0.1":"2026-09-08T22:41:09.666Z","2.1.0":"2026-09-09T00:44:21.076Z","2.2.0":"2026-09-09T03:48:19.196Z","2.2.1":"2026-09-10T17:05:07.735Z","3.0.0":"2026-09-10T19:31:18.988Z","4.0.0":"2026-09-10T20:20:58.056Z","4.0.1":"2026-09-11T00:07:20.456Z","4.0.2":"2026-09-16T21:57:39.180Z","4.0.3":"2026-09-17T22:01:16.574Z","4.0.4":"2026-09-18T06:02:08.791Z","4.1.0":"2026-09-22T01:56:07.327Z","4.2.0":"2026-09-23T02:50:36.265Z","4.3.0":"2026-09-23T17:55:09.605Z","4.3.1":"2026-09-24T17:42:04.138Z","4.3.2":"2026-09-24T18:12:44.852Z","6.0.0":"2026-09-25T22:52:57.697Z","6.0.1":"2026-09-26T17:42:06.820Z","6.1.0":"2026-09-27T01:18:59.765Z","7.0.0":"2026-10-05T02:57:49.603Z","7.1.0":"2026-10-05T20:08:44.241Z"},"author":{"name":"andy"},"license":"ISC","description":"TypeScript SDK for sending messages through the chat API (text, images, files, miniapp cards, streaming).","maintainers":[{"name":"andyfen","email":"andyf625@icloud.com"}],"readme":"# birdcash-chat-sdk\n\nA small TypeScript SDK for sending messages through the chat API. It wraps the\n`/v1/chat/{messages|events}/:id/reply`, `/v1/chat/streams` and `/v1/upload/*`\nendpoints so you can send text, media, cards, custom messages, typing status and\nstreaming (typewriter) responses, read `message.new` webhooks, and open or seal\nE2EE messages.\n\nFull guides live in [`docs/`](docs/README.md).\n\n## Install\n\n```bash\nnpm install birdcash-chat-sdk-alpha\n```\n\n## Quick start\n\n```ts\nimport { ChatClient } from \"birdcash-chat-sdk-alpha\";\n\nconst chat = new ChatClient({\n  token: \"<bearer-token>\",\n  // baseUrl: 'https://your-chat-api',   // optional, defaults to the hosted API\n  // logger: console,                    // optional, omit for silence\n});\n\n// …or exchange OAuth client credentials for a token automatically:\nconst chat2 = await ChatClient.fromCredentials({ clientId, clientSecret });\n\n// Send text (string = one element; array = one request, one element per item)\nawait chat.sendMessage(body.id, \"Hello there!\"); // the webhook body's event id (`wev_…`)\nawait chat.sendMessage(eventID, [\"First line\", \"Second line\"]);\n```\n\n## Options\n\n| Option    | Type           | Default         | Description                                |\n| --------- | -------------- | --------------- | ------------------------------------------ |\n| `token`   | `string`       | — (required)    | Bearer token sent with every request.      |\n| `baseUrl` | `string`       | hosted endpoint | Base URL of the chat API. `\"\"` / blank = unset. |\n| `logger`  | `Logger`       | `undefined`     | Pass `console` to log; omit for no output. |\n| `fetch`   | `typeof fetch` | global `fetch`  | Custom fetch (Node < 18, tests, etc.).     |\n\n## Sending messages\n\nEvery send posts reply elements — `{ type, content, … }`, snake_case, the\nmessage wire of docs/chat/messages/design.md — and resolves\nto what the server accepted (`{ index, id, seq, sent_at }`). The route answers\n`200` even when it refuses an element, so a refusal is thrown as `ReplyError`\n(`errors: [{ index, id, code, message }]`, plus `result` for what landed).\n\n```ts\n// Text (string = one message; array = one request, one message per line)\nconst [sent] = await chat.sendMessage(eventID, \"Hello there!\");\nawait chat.sendMessage(eventID, \"**bold**\", { format: \"markdown\" });\n\n// Every single-message send takes SendOptions:\n//   { id, quotedID, threadRootID, mentions: {all, user_ids}, extensions, fallbackText }\nawait chat.sendMessage(eventID, \"Answering this one\", { quotedID: msgID, threadRootID: rootID });\nawait chat.sendQuoteMessage(eventID, \"Agreed\", msgID);\n\n// Images: upload first, then send by upload_id (one message, up to 9 images)\nconst { upload_id } = await chat.uploadImage(bytes, \"photo.png\", \"image/png\");\nawait chat.sendImageMessage(eventID, [upload_id], { caption: \"Today\" });\n\n// File / voice / video (one attachment each)\nconst f = await chat.uploadFile(bytes, \"report.pdf\", \"application/pdf\");\nawait chat.sendFileMessage(eventID, f.upload_id, { fileName: \"report.pdf\" });\nawait chat.sendVoiceMessage(eventID, audioUploadID, { durationMs: 12_000 });\nawait chat.sendVideoMessage(eventID, videoUploadID);\n\n// Sticker, location\nawait chat.sendStickerMessage(eventID, \"weather\", \"Cloud with lightning\");\nawait chat.sendLocationMessage(eventID, {\n  latitude: 37.7749,\n  longitude: -122.4194,\n  name: \"Blue Bottle Coffee\",\n  address: \"66 Mint St, San Francisco, CA 94103\",\n});\n\n// Object cards — references only; the server builds and maintains the card\nawait chat.sendEventMessage(eventID, \"evt_calendarEvent\"); // see \"Calendar event cards\"\nawait chat.sendOrderMessage(eventID, \"ord_…\");\nawait chat.sendMiniAppShare(eventID, \"app_weather\", \"/forecast?city=sf\");\n\n// Link previews live on text content (`link_previews`), not on a custom card.\nawait chat.sendWebLinkMessage(eventID, { url: \"https://example.com\", title: \"Example\", siteName: \"Example\" });\nawait chat.reply(eventID, [\n  textWithPreviews(\"Worth a read\", [\n    { url: \"https://example.com/a\", title: \"A\", imageURL: \"https://example.com/a.png\", imageWidth: 1200, imageHeight: 630 },\n  ]),\n]);\n\n// Custom cards: {schema, v, data} + required fallback text. `data` keys travel verbatim.\nawait chat.sendChoicesMessage(eventID, {\n  prompt: \"Which shipping option do you want?\",\n  choices: [\n    { id: \"standard\", label: \"Standard (5–7 days)\" },\n    { id: \"express\", label: \"Express (2 days)\" },\n  ],\n});\n\n// Typing indicator (ephemeral `event.typing`)\nawait chat.sendTypingStatus(eventID, true);\n```\n\n### Builders and batches\n\nThe same elements are available as builders, to post several in one request:\n\n```ts\nimport { text, image, custom, quote, inThread, withID } from \"birdcash-chat-sdk-alpha\";\n\nawait chat.reply(eventID, [\n  inThread(quote(text(\"Here's the receipt\"), msgID), rootID),\n  image([uploadID]),\n  custom(\"com.acme.poll\", 1, { question: \"Rate us?\" }, \"Poll: Rate us?\"),\n]);\n\n// Refusals are thrown unless you ask for them back:\nconst result = await chat.reply(eventID, elements, { partial: true });\nfor (const e of result.errors ?? []) console.warn(e.index, e.code, e.message);\n```\n\nBuilders: `text`, `markdown`, `image`, `video`, `file`, `voice`, `sticker`,\n`location`, `eventCard`, `orderCard`, `shareMiniApp`, `custom`,\n`textWithPreviews` (text + `link_previews`), `linkPreview` (one preview, text\ndefaults to the url; also `text(value, { linkPreviews })`), `choicePrompt`,\n`oaPost`, and the modifiers `quote`, `inThread`, `withID`.\n\n`linkPreview` / `sendWebLinkMessage` send\n`{type: \"text\", content: {text, link_previews: [{url, title?, site_name?, image?: {url, width?, height?}}]}}`.\nThe server refuses a `link.preview` custom card from bots and clients, so\n`CUSTOM_TYPE_LINK_PREVIEW` is gone.\n\n## Note cards\n\nStyled text cards rendered by the server. You send text and a style id — never\npixels — and get back staged `upload_id`s that attach like any other image.\n\n```ts\n// The style registry. Read it rather than hardcoding ids: styles get added, and\n// `groups` is the order a picker should render its sections in.\nconst { styles, groups, canvas } = await chat.noteStyles();\n\n// Preview the user's own text in a style. Nothing is staged, so a picker can\n// render every style without burning an upload_id per swatch.\nconst png = await chat.noteCardPreview({ text: \"Back in stock.\", style: \"navy\" });\n\n// Render and stage. One upload_id per card, in order.\nconst { upload_ids } = await chat.uploadNoteCards([\n  { text: \"Starting the morning off right.\", style: \"navy\" },\n  { text: \"New drop this week.\", style: \"plain-statement\" },\n]);\n\n// Or render and send as a chat message in one call.\nawait chat.sendNoteCardMessage(eventID, [\n  { text: \"Back in stock.\", style: \"navy\", highlight_words: [\"stock\"] },\n]);\n```\n\nPer-card overrides are `highlight_words`, `highlight_color`, `highlight_style`\n(`marker` or `color`), `uppercase` and `sticker`. Everything else — font, ground,\nalignment, sizing — belongs to the style. Text is capped at 600 characters.\n\n`canvas` is `portrait` (default, 4:5), `square`, or `story` (9:16), and applies\nto the whole request so a carousel cannot end up with mixed aspect ratios.\n\n### Note posts\n\n```ts\nimport { createNotePost, getNoteStyles, noteCardPreviewURL } from \"birdcash-chat-sdk\";\n\nawait createNotePost(token, {\n  title: \"New drop this week.\",\n  // Hashtags live on the post caption — card text is pixels and is not parsed.\n  content: \"Heavyweight hoodie, back in stock. #fw26\",\n  notes: [\n    { text: \"Front.\", style: \"navy\" },\n    { text: \"New drop this week.\", style: \"plain-statement\" },\n  ],\n});\n\n// For a picker UI, put preview URLs straight in <img src> instead of fetching.\nconst src = noteCardPreviewURL({ text: draft, style: \"butter\" });\n```\n\n### Product posts\n\nA `product` post sells one product from your own catalog. Like a photo or video\npost it needs its own media (at least one image or video in `upload_ids`); the\nproduct card — title, images, prices, brand — is snapshotted by the server.\nThe token needs `posts:write` and `uploads:write`.\n\n```ts\nimport { createProductPost, createPost, uploadV1Video } from \"birdcash-chat-sdk\";\n\n// Upload + post in one call (an image, or pass `video` instead).\nconst post = await createProductPost(token, {\n  title: \"Back in stock\",\n  content: \"380gsm fleece. #fw26\",\n  productID: \"prod_9f1c…\",\n  sku: \"HOODIE-BLK-LRG\", // optional: preselected variant\n  imageBytes: photo,\n});\npost.product_elem?.price;        // { min: \"42.50\", max: \"45.00\", currency: \"USD\" }\npost.product_elem?.availability; // \"available\" | \"sold_out\" | \"unavailable\" (live)\n\n// Or stage the media yourself — POST /v1/upload/video for a clip.\nconst clip = await uploadV1Video(token, bytes, \"clip.mp4\", \"video/mp4\", { durationSec: 12 });\nawait createPost(token, {\n  type: \"product\",\n  title: \"Back in stock\",\n  upload_ids: [clip.upload_id],\n  product: { product_id: \"prod_9f1c…\" },\n});\n```\n\nEvery commerce helper takes an optional trailing `{ baseUrl, fetch }` so a call\nthat spans two endpoints — like `createNotePost`, which uploads then posts —\nsends both halves to the same host.\n\n## Editing & deleting\n\nAn edit is the same element re-POSTed under the same id (text and custom only,\nsame type). Re-POSTing an identical payload is a no-op (`already_applied`).\n\n```ts\nawait chat.sendMessage(eventID, \"Working on it…\", { id: \"job-42\" });\nawait chat.editMessage(undefined, \"job-42\", text(\"Done ✅\")); // addressed to the message itself\n\n// Revoke a message you sent (state becomes `recalled`)\nawait chat.deleteMessage(\"job-42\");\n```\n\n## Streaming (typewriter effect)\n\nStreams have their own routes: one message, opened on `POST /v1/chat/streams`\n— the server names it and returns the id — and advanced by frames on\n`POST /v1/chat/streams/{id}/frames`. A frame names a contiguous `revision` and\nany of five channels — `text`, `reasoning`, `sources`, `activity`,\n`suggestions` — each with `{set}` or `{append}`. Only a terminal status is ever\nnamed; the server derives `pending`/`streaming`.\n\n```ts\n// Recommended: reply with a throttled token stream\nconst streamId = await chat.sendStreamMessage(eventID, \"A long streamed reply…\");\n\n// Settle-only: the answer was ready all along — one open, one closing frame\n// carrying the whole text (+ sources / suggestions). A stream message in two requests.\nawait chat.sendStreamMessage(eventID, answer, { oneShot: true, sources: [{ title, url }] });\n\n// Low-level: drive each frame yourself. `quote: true` quotes the triggering message.\nconst { streamId } = await chat.openStream({ event_id: eventID, quote: true });\nawait chat.postFrame(streamId, deltaFrame(1, appendReasoning(\"The user wants a capital. \")));\nawait chat.postFrame(streamId, deltaFrame(2, appendText(\"Paris\"), setReasoning(\"\")));\nawait chat.postFrame(streamId, deltaFrame(3, appendSources([{ title: \"Source\", url: \"https://…\" }])));\nawait chat.settle(streamId, 4);                                       // no text: the server holds it\nawait chat.settle(streamId, 4, \"complete\", { repair: fullText });     // when a delta was lost\n\nconst ack = await chat.heartbeat(streamId);\nif (ack.cancelRequested) { /* the user pressed stop */ }\n\n// After a timeout: the content snapshot (snake_case: text, format, reasoning{text,duration_ms,truncated}, …)\nconst { snapshot } = await chat.getStream(streamId);\n```\n\n### Streaming a reply\n\n`streamWriter` owns revisions, buffering and cadence, the heartbeat that holds\nthe lease, the abort that stops your model when the user presses stop, and a\nsettle that closes the stream even when the server refuses what it carried.\n\n```ts\nconst stream = await chat.streamWriter(replyToFrom(msgID), { placeholder: \"Thinking…\" });\ntry {\n  for await (const chunk of model({ signal: stream.signal })) {\n    await stream.text.append(chunk);\n  }\n  await stream.settle();\n} catch (e) {\n  await stream.fail();\n}\n```\n\n`stream.text` and `stream.reasoning` take `append` / `set` / `flush` (and\n`stream.text.text` is everything handed to it); `stream.sources`,\n`stream.activity` and `stream.suggestions` take `push` / `set`.\n\nThe `placeholder` is on the message, not in `stream.reasoning`: the first\nreasoning flush REPLACES it with the model's own words, and the first answer\nframe clears it if no reasoning came. A user pressing stop reaches\n`stream.signal` from the `409` on the next frame, from `cancel_requested` on\nthe ack of a frame or heartbeat that landed, and from a refused heartbeat.\n\n### Suggested follow-ups\n\n```ts\nawait stream.settle(\"complete\", {\n  suggestions: [\n    { kind: \"command\", command: \"track\", label: \"Track it\", args: order.tracking },\n    { kind: \"open\", label: \"See your order\", target: { kind: \"order\", id: order.id } },\n    { kind: \"open\", label: \"Store\", target: { kind: \"miniApp\", id: \"app_1\", path: \"/orders\" } },\n    { kind: \"link\", url: \"https://example.com/help\", label: \"Get help\" },\n  ],\n});\n```\n\nThree kinds: `command` sends the server-derived `text` (`\"/track 1Z999AA1\"`) as\nan ordinary message; `open` opens a `target` (`miniApp` — yours, `path` only\nhere — `post`, `order` you sold with the payer present, `event`, `user`,\n`group`); `link` opens an `https:` URL. A refused chip rejects the whole frame,\nso `sendStreamMessage` and `streamWriter` drop the chips and settle on the\naccumulation rather than leaving the stream to the reaper.\n\nFrames are safe to retry **at the same revision**. `postFrame`/`settle` throw\n`StreamFrameRejected` — `isConflict`, `isRevisionTaken`, `isCancelled` (reason\n`stopped` | `recalled` | `removed`), `isRecalled`, `isRateLimited` (with\n`retryAfterMs`) and `isPermanent` name the cases. Frames on one stream are paced\n`MIN_FRAME_INTERVAL_MS` (50 ms) apart for you.\n\nThe bot also hears `stream.canceled` / `stream.abandoned` webhooks\n(`isStreamWebhookEvent`, `StreamEventPayload`).\n\n## OAuth\n\nIf you don't already have a bearer token, exchange client credentials for one:\n\n```ts\nimport { getAccessToken } from \"birdcash-chat-sdk-alpha\";\n\nconst token = await getAccessToken({\n  clientId,\n  clientSecret,\n  scope: \"chat:write uploads:write\", // default\n});\n// token.access_token, token.expires_in, …\n```\n\n## Verifying webhooks\n\nWebhooks follow [Standard Webhooks](https://www.standardwebhooks.com/):\n`webhook-id`, `webhook-timestamp` and `webhook-signature` (space-separated\n`v1,<base64>` HMAC-SHA256 signatures of `${id}.${timestamp}.${rawBody}`, keyed\nwith the base64 after your `whsec_` secret's prefix). Pass the **raw** body.\nEvery body is `{ id, kind, occurred_at, stream, version, data }`; `id`\n(`wev_…`) is the event a reply names. Register endpoints with\n`POST /v1/webhook-subscriptions` (see [docs/webhooks.md](docs/webhooks.md)).\n\n```ts\nimport {\n  verifyWebhookSignature,\n  isText,\n  textOf,\n  conversationKind,\n  type WebhookEventBody,\n} from \"birdcash-chat-sdk-alpha\";\n\nconst raw = await request.text();\nconst { valid, error } = await verifyWebhookSignature(request, env.WEBHOOK_SECRET, raw);\nif (!valid) return new Response(error ?? \"bad signature\", { status: 401 });\n\nconst event = JSON.parse(raw) as WebhookEventBody;\nif (event.kind === \"message.new\") {\n  const msg = event.data;                  // snake_case envelope\n  if (isText(msg)) console.log(msg.content?.text, msg.content?.mentions);\n  const direct = conversationKind(msg.conversation_id) === \"c2c\"; // conv_a.… vs conv_g.…\n  const who = msg.sender.id;               // oid_…: this app's id for the person\n}\n```\n\nA `message.new` / `message.modified` body's `data` is the message envelope,\nsnake_case: `{ id, conversation_id, seq, sender{id,name,avatar_url},\nsent_at, edited_at?, state, priority, type, content?, encrypted?, fallback_text?,\nmentions?{all,user_ids}, quoted?, thread?, extensions?, location?, viewer? }`.\n`MessageNewPayload` is a union discriminated by `type`, so `msg.type === \"image\"`\nnarrows `content`. A custom message's `content.data` and `extensions` keep their\nkeys verbatim. `location` is the sender's *session* location, not content.\n\nHelpers: `isType`, `isText`, `textOf`, `imagesOf` (image attachments),\n`isEventCard`, and for conversation ids `conversationKind`, `groupIDOf`,\n`groupConversationID`.\n\n**Ids an app sees (A3).** A person is your app's own `oid_…` (the same as\n`sub` in userinfo and ID tokens; another app sees someone else). A direct\nchat is your app's own alias `conv_a.<random>`; a group is its shared\n`conv_g.<groupID>`; a bot is `bot_…`. Platform `usr_…` and `conv_u.…` ids\nnever reach an app, and the API refuses them (`404 not_found`) if one is\nsent: quote back the ids your deliveries carry (`sender.id`,\n`conversation_id`, a ledger leg's `account_id`, …) as `?user_id`,\n`reply_to.user_id`, mention spans and suggestion targets.\n\n### Shared places\n\n```ts\nimport { readInboundLocation } from \"birdcash-chat-sdk-alpha\";\nconst place = await readInboundLocation(event.data); // null when not a (readable) location\n```\n\n### E2EE messages\n\nAn encrypted message has `encrypted` (protocol v4: the whole content sealed,\nAAD `{v, bind, msgID, type}`, where `bind` hashes the conversation, sender and\nsending device so no platform id travels in the clear) and no\n`content`/`fallback_text`. Register your bot's chat key with `POST /v1/device`\n(its public half, e.g. `CHAT_KEY_PUBLIC`); senders then seal a session key for\nthat device, and your app's `message.new` body carries it as\n`data.viewer.encrypted_session_key` (plus `device_id`). `decryptInbound` /\n`decryptInboundText` / `decryptInboundLocation` read it from the message and\nverify the AAD against the envelope (message id and type; the server has\nalready checked the signature and the bind):\n\n```ts\nif (event.data.encrypted) {\n  const { type, content } = await decryptInbound({\n    payload: event.data,\n    chatPrivateKey: env.CHAT_KEY_PRIVATE,\n    // encryptedSessionKey defaults to event.data.viewer?.encrypted_session_key\n  });\n}\n```\n\nNo `viewer` means the sender sealed nothing for your device\n(an older client, or your key was registered after the message was sent);\nthe decrypt throws `EncryptionError` and there is nothing to read.\n`isEncrypted(payload)` says whether there is plaintext to read at all;\n`isMessageNew(body)` narrows a webhook body to the `message.new` delivery\n(`MessageNewEvent`); `textOf` / `imagesOf` / `voiceOf` / `locationOf` read a\nplaintext message's content by type.\n\n#### Encrypted replies\n\nA reply can be sealed too. `sealReply` builds the element the reply route\ntakes — `{type, id, encrypted, key_envelopes}` and no `content` — with the\nkeys you registered through `POST /v1/device` (both halves:\n`CHAT_KEY_PRIVATE` + `CHAT_SIGN_KEY_PRIVATE`), and `replyEncrypted` posts it:\n\n```ts\nimport { loadBotIdentityKeys, sealReply } from \"birdcash-chat-sdk-alpha\";\n\nconst keys = loadBotIdentityKeys(env.CHAT_KEY_PRIVATE, env.CHAT_SIGN_KEY_PRIVATE);\n// Every live, keyed device of every member (your bot's own included), and\n// the AAD bind the server computed for each of your devices.\nconst { recipients, aadBinds } = await chat.encryptionRecipients(event.data.id);\nconst sealed = await sealReply({\n  type: \"text\",\n  content: { text: \"Sealed back to you.\" },\n  identityKeys: keys,\n  bind: aadBinds[event.data.viewer!.device_id], // your registered device (dev_…), on every E2EE delivery\n  recipients,\n  quotedID: event.data.id,\n});\nawait chat.replyEncrypted(event.id, sealed);\n```\n\nThe AAD is `{v: 4, bind, msgID, type}` with\n`bind = aadBind(conversationID, senderUserID, senderDeviceID)` over the\nplatform's ids. Your app is only given its own `oid_` / `conv_a.` ids, so it\ncan't compute that: the server returns it per device in `aadBinds`, and\n`sealReply` takes it as `bind`. Signed over `aad ‖ ephemeralPublicKey ‖ ciphertext`; `msgID` is the element's\n`id` (minted `msg_…` when you give none), so a sealed message cannot be\nedited. The server checks the keys are one registered device's pair, verifies\nthe signature and every AAD claim against the conversation, and refuses\nsealing in public / community groups and `key_envelopes` for devices that are not members'. Only\n`text`, `image`, `video`, `voice`, `file`, `sticker`, `location`, `forward` can\nbe sealed; cards stay plaintext.\n\n**Recipients.** `chat.encryptionRecipients(messageID)`\n(`GET /v1/chat/messages/{id}/encryption-recipients`, gated like the reply\nroute) lists every live device with keys of every member of the message's\nconversation — signed-in users' devices and all bot devices, your bot's own\nincluded — as the `Device[]` `sealReply` takes (`recipients`), plus\n`aadBinds` (your device id → the `bind` to seal with). So every member's devices,\nand your own webhook copy, can open the reply; you don't add `selfDevice`.\n`selfDevice(keys, userID, deviceID)` is only for sealing to keys the list\ndoesn't show yet (a device you just registered); the server refuses\n`key_envelopes` for a device it doesn't know, so that is rare. A device that\nsigns in after you sealed gets no key.\n\n#### Sealing automatically, and sealed streams\n\nConstruct the client with your keys and `reply` / `streamWriter` seal whenever\nthe conversation is E2EE (and send plaintext otherwise), re-sealing once on\n`roster_stale`:\n\n```ts\nconst chat = new ChatClient({\n  token,\n  e2ee: { identityKeys: loadBotIdentityKeys(env.CHAT_KEY_PRIVATE, env.CHAT_SIGN_KEY_PRIVATE) },\n});\nawait chat.reply(event.id, [text(\"hi\")], { messageID: event.data.id }); // the roster is read through a message\nawait chat.reply({ event_id: ledger.id, user_id: payload.user_id }, text(\"Paid\")); // …or the person's direct chat\nawait chat.reply(event.id, imageFrom({ bytes: png }), { messageID: event.data.id }); // an encrypted blob in an E2EE chat\nconst w = await chat.streamWriter(event.id, { messageID: event.data.id });\nfor await (const chunk of model(w.signal)) await w.text.append(chunk);\nawait w.settle(); // sealed: the whole body rides as the final\n```\n\nA sealed stream's frames are sealed under a stream key and signed by your\ndevice; the server runs only the envelope (status, revision, chips, the\nthinking time). `chat.openSealedStream(...)` (`SealedStream`) is the driver\nunderneath. Readers: `openStreamKey`, `openStreamFrame`, `foldFrames`,\n`openStreamFinal`, `readSealedStream`; the interop vector the apps test\nagainst is `test/fixtures/e2ee_stream_v4_vector.json`. Wire:\n[docs/chat/messages/stream-text.md](../../docs/chat/messages/stream-text.md#encrypted-streams).\n\n### Ledger and other rails\n\n`ledger.*` is the money-movement rail (one POST per committed ledger-event\nstatus). Types: `LedgerEventPayload` / `LedgerEventBody` / `isLedgerWebhookEvent`.\n\n### Calendar event cards (`calendar.*`)\n\n`calendar.*` deliveries arrive only for people who connected your client with\n`calendar:read`. Answer one with the event itself:\n\n```ts\nimport { EventCardRejected, isCalendarWebhookEvent } from \"birdcash-chat-sdk-alpha\";\n\nif (isCalendarWebhookEvent(event)) {\n  const { sub, event: calEvent, occurrence_start } = event.data;\n  const to = { event_id: event.id, user_id: sub }; // the delivery, and who it is about\n  try {\n    await chat.sendEventMessage(to, calEvent.id, { occurrenceAt: occurrence_start });\n  } catch (error) {\n    if (error instanceof EventCardRejected && error.isNotConnected) {\n      await chat.sendMessage(to, \"…\");\n    } else throw error;\n  }\n}\n```\n\nThe card carries only `{ref:{kind:\"event\", id}, occurrence_at?}`; the server\nwrites the rest and rewrites it as the event changes. `EventCardRejected`\n(a `ReplyError`) names the refusals:\n\n| `code` | Getter | Meaning |\n| --- | --- | --- |\n| `CALENDAR_NOT_CONNECTED` | `isNotConnected` | Someone the card would reach has not connected your client with `calendar:read`. |\n| `EVENT_NOT_FOUND` | `isNotFound` | No such event, **or** someone the card would reach cannot open it. |\n| `INVALID_EVENT_OCCURRENCE` | `isInvalidOccurrence` | `occurrenceAt` on a one-off, or an instant the series never starts at. |\n\n#### Receiving a shared event\n\n```ts\nimport { isEventCard } from \"birdcash-chat-sdk-alpha\";\n\nif (event.kind === \"message.new\" && isEventCard(event.data)) {\n  const { ref, title, start_at } = event.data.content;\n  await chat.sendMessage(event.id, `Got it — ${title} on ${start_at}.`);\n}\n```\n\n## 7.1.0 — encrypted streams (retrofit 27)\n\nAdditive. `ChatClientOptions.e2ee` (and a per-call `e2ee` / `messageID` on\n`reply` and `streamWriter`): seal when the conversation is E2EE, plaintext\notherwise. `SealedStream` / `chat.openSealedStream` write sealed streams;\n`sealStreamOpen`, `sealStreamFrame`, `sealStreamFinal`, `openStreamKey`,\n`openStreamFrame`, `foldFrames`, `openStreamFinal`, `readSealedStream` are the\ncrypto. `EncryptionManager.encrypt` takes an optional `sessionKey`;\n`EncryptionManager.open` returns the unwrapped key too. `postFrame` takes a\n`SealedStreamFrame`.\n\nWith no message to answer, `reply` and `streamWriter` read the roster through\nthe conversation: `conversationID`, else an event target's `user_id` (new\n`chat.conversationEncryptionRecipients(id)`, `chat.rosterFor(source)`,\n`rosterSourceFor`); on a first notice they send as given and seal what the new\nE2EE chat refuses (`encryption_required`). Media from bytes or a URL:\n`imageFrom`, `voiceFrom`, `fileFrom`, `videoFrom` (`MediaElement`) are sealed\nas encrypted blobs in an E2EE chat (`encryptAttachment` / `decryptAttachment`,\n`chat.uploadEncrypted`) and plain uploads otherwise; new `chat.uploadVideo`.\n\n## 7.0.0 — breaking: webhooks on Standard Webhooks\n\nThe server's webhooks moved onto durable deliveries (retrofit 17). No\ncompatibility shims.\n\n- `verifyWebhookSignature` verifies [Standard Webhooks](https://www.standardwebhooks.com/):\n  `webhook-id`, `webhook-timestamp`, `webhook-signature` (`v1,<base64>`, any of\n  several matching; the key is the base64 after `whsec_`). It returns\n  `webhookId` when valid. `X-Webhook-*` and hex `sha256=` signatures are gone.\n- Bodies are `{ id, kind, occurred_at, stream, version, data }`\n  (`WebhookBody<K, D>`), not `{ id, type, payload }`; every guard\n  (`isMessageNew`, `isLedgerWebhookEvent`, `isCalendarWebhookEvent`,\n  `isStreamWebhookEvent`) reads `kind`. Event ids are `wev_…` (kept 3 days):\n  `replyToFrom` routes `wev_…` to the event route.\n- An E2EE message's key moved from top-level `encrypted_session_key` /\n  `device_id` to `viewer: { encrypted_session_key, device_id }`\n  (`InboundViewer`); `decryptInbound` and `readInboundLocation` read it there.\n- New: `message.modified` (`MessageModifiedEvent`, `isMessageModified`),\n  `OrderEventBody`, `SubscriptionEventBody`.\n- Removed: `ExternalAccountActivityPayload` / `ExternalAccountActivityBody`,\n  the `failed` transaction and deposit kinds and `event.football.live` (never\n  sent).\n- Endpoints are registered with `POST /v1/webhook-subscriptions` (`/v1/webhook`\n  is gone); see [docs/webhooks.md](docs/webhooks.md).\n\n## 6.2.0 — breaking: E2EE v4, app-scoped ids (A3), external providers\n\n- **External providers.** The platform is an OAuth client of other providers\n  (GitHub, Plaid); your app holds named permissions on a user's connection\n  and calls the provider through the platform, never holding its token.\n  New `chat.external(provider).fetch(path, { connection, method?, body?, headers? })`\n  calls `ANY /v1/external/{provider}/api/{path}` with your token and\n  `X-External-Connection` (the raw `Response`: the provider's body, or the\n  platform's `insufficient_scope` / `not_found` / `conflict` + `needs_reauth`).\n  `TokenResponse.external` (`{ connection?, provider, granted, denied }`) is\n  set when your authorize request asked `external=…`. New\n  `chat.exchangePlaid(publicToken)` (with the user's grant token) links a bank\n  from Plaid Link; the Plaid Link handoff is gone from\n  `CreateExternalAccountRequest`'s `bank` (accounts come from the exchange).\n\n- **App-scoped ids.** Every id an app receives or sends is its own: people\n  are `oid_…`, direct chats `conv_a.…`; groups (`conv_g.`) and bots (`bot_`)\n  pass through. `message.new`, `stream.*`, `ledger.*`, `subscription.*`,\n  `external_account.*` bodies, stream acks, `encryptionRecipients`'s\n  `user_id`, external-account and post `user_id`s all use them, and\n  `?user_id`, `reply_to.user_id`, mention spans, suggestion targets and\n  calendar `conversation_id`s take them. A platform `usr_…` / `conv_u.…` id\n  sent by an app is `404 not_found`. `conversationKind` reads `conv_a.` as\n  `\"c2c\"`; `peerOf` and `c2cConversationID` are removed (an alias can't be\n  built or taken apart).\n\n- `ENCRYPTED_VERSION` is 4. The AAD is `{v, bind, msgID, type}`:\n  `bind = aadBind(conversationID, senderUserID, senderDeviceID)`, base64 of\n  SHA-256 over `\"chat-e2ee-aad-v4\"`, the conversation, sender and device\n  ids, NUL-separated. The server refuses v3. `AADv3` → `AADv4`; new\n  `aadBind`. File-stream metadata AADs carry `bind` instead of the ids too.\n- `decryptInbound` no longer compares the AAD with `sender.id` /\n  `conversation_id` (a bot will see those as `oid_` / `conv_a.`); message id\n  and type are still checked. A reader that holds the real ids (a phone or\n  desktop) passes `binding: { conversationID, senderUserID, senderDevices }`:\n  the sending device is found among `senderDevices` by its keys\n  (`publicKeySign` and `publicKeyChat` both match the envelope's) and `bind`\n  must equal `aadBind(conversationID, senderUserID, deviceID)`, else it\n  throws. The result gains `binding: \"verified\" | \"unknown_device\" |\n  \"unchecked\"` (+ `senderDeviceID` when verified). `unknown_device` (no\n  listed device has the keys — usually a device since signed out, or a stale\n  list) still decrypts: refetch the conversation's recipients once, then show\n  an \"unverified device\" indicator. Bots omit `binding` (`unchecked`); the\n  server already verified it. The same check is exported as\n  `verifyAADBind({ encrypted, conversationID, senderUserID, senderDevices })`\n  → `{ status: \"verified\" | \"unknown_device\", deviceID? }`, plus the types\n  `AADBindResult` and `BindingStatus`.\n- `senderDeviceOf` is removed (the v4 AAD no longer names the sending\n  device). New `ChatClient.encryptionRecipients(messageID): Promise<EncryptionRecipients>`\n  (`GET /v1/chat/messages/{id}/encryption-recipients`) → `{ recipients, aadBinds }`:\n  every member's keyed devices (the bot's own included) to seal to, and the\n  server-computed AAD `bind` for each of your bot's devices.\n- `sealReply` takes `bind` instead of `senderUserID` / `senderDeviceID` /\n  `conversationID` (an app can't compute a bind from its own ids).\n  `EncryptionManager.encrypt` takes either `bind` or those three ids.\n\n## 6.1.0\n\n- `StreamWriter`: the `placeholder` no longer seeds the reasoning buffer, so\n  the first reasoning flush `set`s the model's words alone instead of\n  restating `placeholder + words`; `reasoning.text` never contains it.\n- `StreamWriter` honours `cancel_requested` on the ack of a frame or heartbeat\n  that landed: `cancelled`, `signal` aborted, no further frames — not only on\n  the `409` of the next frame.\n- `ChatClient` / `getAccessToken` treat an empty or blank `baseUrl` as unset\n  (the hosted endpoint).\n- `getAccessToken` errors carry the OAuth body: `Token request failed: 401\n  Unauthorized — invalid_client: …`.\n- Ids are URL-encoded on the reply, typing, delete and stream routes.\n- `verifyWebhookSignature` with an empty / unset secret returns\n  `{ valid: false, error: \"Missing webhook secret\" }` instead of throwing a\n  WebCrypto `DataError` (a zero-length HMAC key), so a Worker whose\n  `WEBHOOK_SECRET` is not filled in answers 401, not 500.\n- `sendStreamMessage` takes `oneShot` (open + one closing frame with the whole\n  text) and `sources` (settled with the chips; dropped like them if refused).\n- Encrypted replies: `sealReply`, `ChatClient.replyEncrypted` (and `reply`\n  accepts a sealed element), `selfDevice`,\n  `EncryptedReplyElement`, `SealReplyOptions`, `KeyEnvelopeWire`,\n  `EncryptableReplyType`, `ENCRYPTABLE_REPLY_TYPES`, `toWireEncrypted`,\n  `OutboundElement`.\n- Webhook helpers: `MessageNewEvent` (the `message.new` body alone;\n  `MessageNewBody` is still the union), `isMessageNew`, `isEncrypted`,\n  `voiceOf`, `locationOf`, `placeOf`.\n\n## 6.0.1\n\n- `MessageNewPayload` gains optional `encrypted_session_key` and `device_id`:\n  the server now puts your business account's own session key on an E2EE\n  `message.new` webhook.\n- `decryptInbound`, `decryptInboundText`, `decryptInboundLocation` and\n  `readInboundLocation` default `encryptedSessionKey` to\n  `payload.encrypted_session_key` (an explicit key still wins). AAD checks\n  are unchanged.\n\n## 6.0.0 — breaking changes\n\nThe SDK moved to the redesigned message wire. No compatibility shims.\n\n- Removed: `ElemType`, `MessageElem`, every `*Elem` builder (`textElem`,\n  `imageElem`, `fileElem`, `soundElem`, `stickerElem`, `locationElem`,\n  `eventElem`, `quoteTextElem`, `customCard`, `linkPreviewElem`,\n  `choicePromptElem`, `oaPostElem`, `miniAppElem`), `ChatClient.ElemType`,\n  `replyElemErrors`/`ReplyElemError`, `modifyCustomMessage`,\n  `editTextMessage`/`editStickerMessage`/`editImageMessage`, `sendSoundMessage`,\n  `sendMiniAppMessage`, the hongbao/gift WS types, `QuoteReply`,\n  `MessageReplyCloudCustom`, `OfficialAccount`, `ChoicesPrompt`,\n  `inboundImages`/`inboundImage`, `isEventCardMessage`, the `*Elem` webhook\n  types, `decryptInboundTextMessage`, `decryptInboundLocationMessage`,\n  `getEncryptedPayload`, `EncryptionManager.decryptWithAgreementKey`, the v2\n  `EncryptedPayload`/`AAD`, stream `setAnswer`/`appendAnswer`, the `answer`\n  channel, `StreamElem`, suggestion kinds `miniapp`/`post`/`order`/`event`.\n- Added: `reply`, `editMessage`, `sendVideoMessage`, `sendVoiceMessage`,\n  `sendOrderMessage`, `sendMiniAppShare`, `ReplyError`, `parseReplyResult`,\n  `SendOptions`; builders `text`, `markdown`, `image`, `video`, `file`,\n  `voice`, `sticker`, `location`, `eventCard`, `orderCard`, `shareMiniApp`,\n  `custom`, `linkPreview`, `choicePrompt`, `oaPost`, `quote`, `inThread`,\n  `withID`; `MessageType` + content types; `setText`/`appendText`; suggestion\n  kind `open{target}`; webhook helpers `isType`, `isText`, `textOf`,\n  `imagesOf`, `isEventCard`, conversation-id helpers, `isStreamWebhookEvent`;\n  E2EE v3 `decryptInbound`, `decryptInboundText`, `decryptInboundLocation`,\n  `getEncrypted`, `EncryptedContent`, `AADv3`.\n- Changed: `ReplyTo` is snake_case (`{event_id, user_id?, quote?}` |\n  `{message_id}`); `send*` resolve to the server's `{index,id,seq,sent_at}`\n  and throw `ReplyError` on refusal; `sendFileMessage` takes one upload id;\n  `sendEventMessage` takes `occurrenceAt`/`id` options; `StreamWriter.answer` →\n  `StreamWriter.text` (the old `text` string getter is `text.text`), options\n  `answerChars`/`answerIntervalMs` → `textChars`/`textIntervalMs`, settle\n  `markdown` → `text`; `getStream().snapshot` is the snake_case `StreamContent`;\n  `StreamFrameRejected.isCancelled` matches reasons `stopped`/`recalled`/`removed`;\n  `EncryptionManager.encrypt`/`decrypt` are v3; `MessageNewPayload` is the\n  snake_case envelope.\n\n## Lower-level exports\n\nThe builders above, the stream helpers (`deltaFrame`, `settleFrame`,\n`channels`, `setText`, …) and the wire types are all exported from the package\nroot.\n","readmeFilename":"README.md"}