{"_id":"schema-stream","_rev":"21-34f0e2404f911738cc17b77d7351be52","name":"schema-stream","dist-tags":{"latest":"4.2.0"},"versions":{"0.0.1":{"name":"schema-stream","version":"0.0.1","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@0.0.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://oss.hack.dance","bugs":{"url":"https://github.com/hack-dance/agents/issues"},"dist":{"shasum":"871605cc35f26f2c639e2c307899cbc9aa5b7127","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-0.0.1.tgz","fileCount":8,"integrity":"sha512-S+T6MxlfUsBwtmmYdN03gZ5RSD2YnjLoyttTzCdy+bexWNOvQ8LonJ1/crKcqmIOn4NPoUdoW6YgimKbpT7maQ==","signatures":[{"sig":"MEUCIDvoPTFp7wOQfjBGdDTiJR4IPPmQIW2w95LFlvVzN1PTAiEA9s77+TH3EEyfvIHSjZN5Xcnegj8kY/CnAtZkDv3HTUQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62751},"main":"./dist/index.js","_from":"file:schema-stream-0.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"_resolved":"/private/var/folders/_h/tvprsr4d3dbg5pnbs274phn80000gn/T/b26f5112e0ff5bbcab409180b26e3b90/schema-stream-0.0.1.tgz","_integrity":"sha512-S+T6MxlfUsBwtmmYdN03gZ5RSD2YnjLoyttTzCdy+bexWNOvQ8LonJ1/crKcqmIOn4NPoUdoW6YgimKbpT7maQ==","repository":{"url":"git+https://github.com/hack-dance/agents.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"`schema-stream` is a utility class for parsing streams of JSON data. It provides a safe-to-read-from stubbed version of the data before the stream has fully completed.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0","@streamparser/json":"^0.0.15"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.21.4","tsup":"^6.4.0","tsconfig":"0.0.3"},"peerDependencies":{"zod":">=3.21.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_0.0.1_1696990702148_0.9674286829507703","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"schema-stream","version":"0.0.2","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@0.0.2","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://oss.hack.dance","bugs":{"url":"https://github.com/hack-dance/agents/issues"},"dist":{"shasum":"9b39baca7ec63a67ad1ea6cd6a2679eb4c9f9aa0","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-0.0.2.tgz","fileCount":8,"integrity":"sha512-lit1AatE8YcLGDyKoLPj8wvyv2lFZmM/JNc/RymfapL+wPU2YXPMs9glqcvIJtpAIn/Skhhwgn2lcrZzvWxCBw==","signatures":[{"sig":"MEYCIQCoZ9Gn4WrgtEdzbUFHZptgt00JbTGMb/mZuqwF1xdlcQIhANX1i9rq3XBoU7FEWX8ZgLwQ8NmzfdSpQ/FjFod3IxFx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63329},"main":"./dist/index.js","_from":"file:schema-stream-0.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"_resolved":"/tmp/a7678d146f46d778867b3cfbc2120c0d/schema-stream-0.0.2.tgz","_integrity":"sha512-lit1AatE8YcLGDyKoLPj8wvyv2lFZmM/JNc/RymfapL+wPU2YXPMs9glqcvIJtpAIn/Skhhwgn2lcrZzvWxCBw==","repository":{"url":"git+https://github.com/hack-dance/agents.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"`schema-stream` is a utility class for parsing streams of JSON data. It provides a safe-to-read-from stubbed version of the data before the stream has fully completed.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0","@streamparser/json":"^0.0.15"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.21.4","tsup":"^6.4.0","tsconfig":"0.0.3"},"peerDependencies":{"zod":">=3.21.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_0.0.2_1697045150309_0.9426587272167788","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"schema-stream","version":"1.0.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@1.0.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://oss.hack.dance","bugs":{"url":"https://github.com/hack-dance/agents/issues"},"dist":{"shasum":"f54a2d60f82ed99e7156bad908a7de48d8e0e676","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-1.0.0.tgz","fileCount":8,"integrity":"sha512-qHbQnYSWzwB0EnNdEx8Gke2sZumfpg87iTH+jL+Tr0qxsmgBYi1Tbu6NkWVpnj6XFMzIQIc0Fizq/h0IprQslg==","signatures":[{"sig":"MEUCIQD4Ox25FOZsMlCZ17VgoZI9IcHbbE2IswuCNwXIn9L/iAIgZujK6EAxGpTBsqWV/rxaEQ/S3TrqVtsNCM1/nyzmE9A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185325},"main":"./dist/index.js","_from":"file:schema-stream-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"_resolved":"/tmp/bb8cd3ce6bb4ba869756801639118d24/schema-stream-1.0.0.tgz","_integrity":"sha512-qHbQnYSWzwB0EnNdEx8Gke2sZumfpg87iTH+jL+Tr0qxsmgBYi1Tbu6NkWVpnj6XFMzIQIc0Fizq/h0IprQslg==","repository":{"url":"git+https://github.com/hack-dance/agents.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"`schema-stream` is a utility for parsing streams of JSON data. It provides a safe-to-read-from stubbed version of the data before the stream has fully completed.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^6.4.0","tsconfig":"0.0.3"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_1.0.0_1701984360067_0.22051808730966127","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"schema-stream","version":"1.1.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@1.1.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://oss.hack.dance","bugs":{"url":"https://github.com/hack-dance/agents/issues"},"dist":{"shasum":"07cd35e7d473c67b503e5c71aa7418f535f423b9","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-1.1.0.tgz","fileCount":8,"integrity":"sha512-QUbHi/OfXbZ2hl3HTYxbSe8xzcH0Vef03i2zR0LkW1VFueaQXW9APapZTOHWvfOgQxyYqpgRjZpbAMFCkJKYSA==","signatures":[{"sig":"MEYCIQDvpbf8dtvbaldpt1fqQhJ+T96OTfceiXrmsv0hPea4sAIhAOtZwvpJbGsxzbfcUs1zCM9HtrLWr5Xc2/SuRzYPVQHX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":190445},"main":"./dist/index.js","_from":"file:schema-stream-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"_resolved":"/tmp/5e137d23f3461212b62f2229bed21fbf/schema-stream-1.1.0.tgz","_integrity":"sha512-QUbHi/OfXbZ2hl3HTYxbSe8xzcH0Vef03i2zR0LkW1VFueaQXW9APapZTOHWvfOgQxyYqpgRjZpbAMFCkJKYSA==","repository":{"url":"git+https://github.com/hack-dance/agents.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"`schema-stream` is a utility for parsing streams of JSON data. It provides a safe-to-read-from stubbed version of the data before the stream has fully completed.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^6.4.0","tsconfig":"0.0.3"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_1.1.0_1702059872436_0.8544873557121417","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"schema-stream","version":"1.2.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@1.2.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://oss.hack.dance","bugs":{"url":"https://github.com/hack-dance/agents/issues"},"dist":{"shasum":"d16aec61e2b3d26ce6865a6ec2f5eff087ef7770","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-1.2.0.tgz","fileCount":8,"integrity":"sha512-tpCfE8JBaAWRapTVo/C2+89twB57UJvds6Xbhw7oemsw7Rl1G3SbYzB8I58TjHqZZG0mm9Jd69HV+QPudL8QjQ==","signatures":[{"sig":"MEQCIH+in2jYv5DjvbpZbesn0SuioTd0PGYieppuSkS6Ziy6AiBAdwE8u6nmZjF8p4y/b4koenDbrI3YdlDXppIfYluEbw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191491},"main":"./dist/index.js","_from":"file:schema-stream-1.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"_resolved":"/tmp/4bedb28822e791bf33b06a710924d2a9/schema-stream-1.2.0.tgz","_integrity":"sha512-tpCfE8JBaAWRapTVo/C2+89twB57UJvds6Xbhw7oemsw7Rl1G3SbYzB8I58TjHqZZG0mm9Jd69HV+QPudL8QjQ==","repository":{"url":"git+https://github.com/hack-dance/agents.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"`schema-stream` is a utility for parsing streams of JSON data. It provides a safe-to-read-from stubbed version of the data before the stream has fully completed.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^6.4.0","tsconfig":"0.0.3"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_1.2.0_1704253848487_0.49780036510457926","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"schema-stream","version":"1.2.1","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@1.2.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://oss.hack.dance","bugs":{"url":"https://github.com/hack-dance/agents/issues"},"dist":{"shasum":"ef04c87d69f74d91241bf8f80659f960f854ecf8","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-1.2.1.tgz","fileCount":8,"integrity":"sha512-+qm7S0bLzwJqXsVzD97WNkiyJ+ehbEkPhu46jaBEWvGMPfyxnA1skUwhLNhjeyA8jEMrIVSIAKG1YHXm02tezQ==","signatures":[{"sig":"MEYCIQDPmC9+2Fpnvi938WVhGP5+C3FZvKJE1xMzcfIUHJsCfQIhAOIgZAB4kxvmAYA0+khWIM67JSwcBPTxCWzJOR5qDSak","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191287},"main":"./dist/index.js","_from":"file:schema-stream-1.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"_resolved":"/tmp/b760c9d534dbcfda65d4d067f385a2f9/schema-stream-1.2.1.tgz","_integrity":"sha512-+qm7S0bLzwJqXsVzD97WNkiyJ+ehbEkPhu46jaBEWvGMPfyxnA1skUwhLNhjeyA8jEMrIVSIAKG1YHXm02tezQ==","repository":{"url":"git+https://github.com/hack-dance/agents.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"`schema-stream` is a utility for parsing streams of JSON data. It provides a safe-to-read-from stubbed version of the data before the stream has fully completed.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^6.4.0","tsconfig":"0.0.3"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_1.2.1_1704254634800_0.23451116572126773","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"schema-stream","version":"1.3.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@1.3.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://oss.hack.dance","bugs":{"url":"https://github.com/hack-dance/agents/issues"},"dist":{"shasum":"74db57cbbc9668814c58899ed2adfdd333d2e17d","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-1.3.0.tgz","fileCount":8,"integrity":"sha512-yB04qxwlsnOiUnV8HZdsyQg85TuzgtsvtBBsi8kTtjBhJn39kp5ZKoMGbfswDySVwdsd7YqXt+q9RQF/BdvX9g==","signatures":[{"sig":"MEYCIQDLfOK+abEL/yHuWyzYlJU25H/sMr6bOghU6/rILkw8bQIhANNokaaLwO7yPJMMfj9pSX/AEgCCYeWh2MfBBbX4T3Wx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192806},"main":"./dist/index.js","_from":"file:schema-stream-1.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"_resolved":"/tmp/b625a1ef891942a3b00b03c680fccbcc/schema-stream-1.3.0.tgz","_integrity":"sha512-yB04qxwlsnOiUnV8HZdsyQg85TuzgtsvtBBsi8kTtjBhJn39kp5ZKoMGbfswDySVwdsd7YqXt+q9RQF/BdvX9g==","repository":{"url":"git+https://github.com/hack-dance/agents.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"`schema-stream` is a utility for parsing streams of JSON data. It provides a safe-to-read-from stubbed version of the data before the stream has fully completed.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^6.4.0","tsconfig":"0.0.3"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_1.3.0_1704416428456_0.9375832249483591","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"schema-stream","version":"1.4.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@1.4.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://schema-stream.hack.dance","bugs":{"url":"https://github.com/hack-dance/schema-stream/issues"},"dist":{"shasum":"c70a6fbeabcd430553baa94302c1cc28b945319a","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-1.4.0.tgz","fileCount":2,"integrity":"sha512-YrkCuQoh43ZubcsJBEmzv8BK3Y1n4Hq0TfmWN80wbBxGy6P0YL1FnBOt2/OVgR+UIPFtED9JpQMb4tb5GgUzxA==","signatures":[{"sig":"MEUCIAlJuIhkuy1GByfUOBMiR4nX8iwmLqGiS4OE40XCK/m3AiEA2aMQWBxkrhiRRWIZcRQItKraIV+PiDsJVk3tbO4WHQk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1141},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"c94f586f1aebc578a468685820ece0dec73ec558","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/schema-stream.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.21","typescript":"^5.2.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_1.4.0_1704560745284_0.7853343587436095","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"schema-stream","version":"1.4.1","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@1.4.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://schema-stream.hack.dance","bugs":{"url":"https://github.com/hack-dance/schema-stream/issues"},"dist":{"shasum":"74ca7314fe85b2c1ae7764e127f7d114fd64e2c6","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-1.4.1.tgz","fileCount":2,"integrity":"sha512-KbXgrjXVKtCXWuvy0lrvqGaSrXacKtXgHpJcMkM0b01f8Op/CPuERsn87r8YZfR7wKb25Qu3wZX2r4jxrUKnpQ==","signatures":[{"sig":"MEUCIQDeEet9Pch2wjUR2Ote8Rr5KHnsnogrY7IHoFS1Eg87UwIgBumhG/39HgjvOKykbdA0Bp8qsLdMIqM6nKg/pB5PQ5c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3779},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"48291a6e56231b5f3ccac2b8125dda80e618ca32","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/schema-stream.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"[![GitHub Actions Status](https://img.shields.io/github/workflow/status/hack-dance/schema-stream/CI)](https://github.com/hack-dance/schema-stream/actions)","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.21","typescript":"^5.2.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_1.4.1_1704561665600_0.82767403778453","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"schema-stream","version":"1.6.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@1.6.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://schema-stream.hack.dance","bugs":{"url":"https://github.com/hack-dance/schema-stream/issues"},"dist":{"shasum":"9978b8185458d00e6234d0063f8e938ba032a72f","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-1.6.0.tgz","fileCount":8,"integrity":"sha512-mSAAUr+oxQMJ3qdFdqP7T5NDGNhr/fnhprkm7MELIP2zxTmybKkxKP07bU8eorzSIWim1cDNIiEcVVfw5sFUPw==","signatures":[{"sig":"MEUCIBKpNETW57VCFOoB5iczZhKPmmbAEZQDLj5m+wWfoLsWAiEA2gQFu4m1XzZMYE3H/8vwRUghyZGU3XdjfTmA26aEpBE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":179507},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"6695e8f72e49bda315db10ff220e7d4d37a09749","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/schema-stream.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"![GitHub Actions Status](https://github.com/github/docs/actions/workflows/test.yml/badge.svg?branch=main) [![NPM Version](https://img.shields.io/npm/v/schema-stream.svg)](https://www.npmjs.com/package/schema-stream)","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.21","typescript":"^5.2.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_1.6.0_1704562852464_0.2123478611933498","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"schema-stream","version":"2.0.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@2.0.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://schema-stream.hack.dance","bugs":{"url":"https://github.com/hack-dance/schema-stream/issues"},"dist":{"shasum":"c78af95f58fac801577b993bd46c853d21511a4c","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-2.0.0.tgz","fileCount":8,"integrity":"sha512-dkBN3BatdclVtU1Ub6607kyTw5+MS4lGIxHxWP608vej+1ybvZxwBLw61U1y3AHB/2LU2/saJFArglA+yJUnTw==","signatures":[{"sig":"MEYCIQDQisa/1qJ4e2rlNTvWO7KFekqLklq4t2on+VpYdEPQRgIhAM8j/SX2msm5gi+LrNBHMrCMp2Rdhpa6Tl0UGHuLtwtv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183377},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"95c902d3365b582068efbdd78b5af29f2c4ceb08","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/schema-stream.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"![GitHub Actions Status](https://github.com/github/docs/actions/workflows/test.yml/badge.svg?branch=main) [![NPM Version](https://img.shields.io/npm/v/schema-stream.svg)](https://www.npmjs.com/package/schema-stream)","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.15","typescript":"^5.2.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_2.0.0_1704865258383_0.15521989696303717","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"schema-stream","version":"2.0.1","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@2.0.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://schema-stream.hack.dance","bugs":{"url":"https://github.com/hack-dance/schema-stream/issues"},"dist":{"shasum":"2f42fb704808318d5ea890dce616941c2144be22","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-2.0.1.tgz","fileCount":8,"integrity":"sha512-UAZQTY8COLAIMQ4xElI9jET/DGXlURX6BhbXygaZEBsX+YFxUDLzZo4Dg7rIqmWGewq+3h8PI8kEANmTXOYHfg==","signatures":[{"sig":"MEUCIHpTIOksN/Qk0IrJPu/uQR0ZFIAHKHOxyvUWvKKZFgr2AiEA40MuNRgbpLseehaJFtTZcd34eIVQhDX3g8BembilCSw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183407},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"136ccf25cc89605d75c1e008d9f6655b301d0026","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/schema-stream.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"9.5.1","description":"![GitHub Actions Status](https://github.com/github/docs/actions/workflows/test.yml/badge.svg?branch=main) [![NPM Version](https://img.shields.io/npm/v/schema-stream.svg)](https://www.npmjs.com/package/schema-stream)","directories":{},"sideEffects":false,"_nodeVersion":"18.16.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.15","typescript":"^5.2.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_2.0.1_1704865667821_0.1359942709970665","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"schema-stream","version":"2.1.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@2.1.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://schema-stream.hack.dance","bugs":{"url":"https://github.com/hack-dance/schema-stream/issues"},"dist":{"shasum":"0f67ec54ee97bd3d0c155919818f0136ea8f6cf9","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-2.1.0.tgz","fileCount":8,"integrity":"sha512-Rcmd9jBGkYybO/01W0/aNqmsexERzhVfc7DzN3RUstzNtBi6kEhQHF93QRb6hGQCykhApj8RLj3LcJeRU86S/A==","signatures":[{"sig":"MEUCIQCYDtyKdsgd7ZQfBmmhIqpNT5t7lMxOiBkZspl3YtUWIQIgTYGzd94v+ObXqbCcZYd0UgcEwblxfPn1ZrN7iEsJqww=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":184631},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"2a643a990c2f0fbb3d53413445e546edadcadfd9","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/schema-stream.git","type":"git","directory":"packages/schemaStream"},"_npmVersion":"10.1.0","description":"![GitHub Actions Status](https://github.com/github/docs/actions/workflows/test.yml/badge.svg?branch=main) [![NPM Version](https://img.shields.io/npm/v/schema-stream.svg)](https://www.npmjs.com/package/schema-stream)","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.15","typescript":"^5.2.2","@types/ramda":"^0.29.9","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_2.1.0_1705886986336_0.5527050203110484","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"schema-stream","version":"3.0.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@3.0.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"bd2b47c3412ea3254a496c48225ab2020c779d12","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-3.0.0.tgz","fileCount":8,"integrity":"sha512-GmflBc9wXqDnVmsPLq8JQA7nP5VKqkshHzdKbUlMQfvhfWiDvXofYtXXkAfIqsZe4FEHstVC8Uv/Qf0yAZYuHg==","signatures":[{"sig":"MEUCIHCLtmN1Hcn92uNTkRs2EqAKPFwgHhyNJfKZ08hH+DsVAiEAtZz6oDpxFaC47QUNEsuBDuM9pG6hP9JE9pL/sepig6o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185615},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"ff246a657832ab9ad8dd8cf7d7e33f2ba99907c5","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/schemaStream"},"_npmVersion":"10.1.0","description":"![GitHub Actions Status](https://github.com/github/docs/actions/workflows/test.yml/badge.svg?branch=main) [![NPM Version](https://img.shields.io/npm/v/schema-stream.svg)](https://www.npmjs.com/package/schema-stream)","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.15","typescript":"^5.2.2","@types/ramda":"^0.29.9","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_3.0.0_1708546138093_0.16058872789620748","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"schema-stream","version":"3.1.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@3.1.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"9ab525288f23ff9f893e779a2962f4406170c5cd","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-3.1.0.tgz","fileCount":8,"integrity":"sha512-R4PoSFJnMORRGJ5i5BTHRO2Ed3Lf2h8DMofHd5XBU4ZE0lEBCTGRqOXBurjTEO2QntPSYAhv93jLt8PFMqDEPw==","signatures":[{"sig":"MEUCIBolKoPRqoXAqno0GXF6fWrgZWNyqEwrI4FbTouEPLf4AiEA3QZTOjbJV5x2wdnwIl6Jueo2UxWNHd9l3MnfWEOZx9E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":186375},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"c176af84866163190dbf69f0792df32cd3f8d897","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/schemaStream"},"_npmVersion":"10.1.0","description":"![GitHub Actions Status](https://github.com/github/docs/actions/workflows/test.yml/badge.svg?branch=main) [![NPM Version](https://img.shields.io/npm/v/schema-stream.svg)](https://www.npmjs.com/package/schema-stream)","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"3.22.4","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.15","typescript":"^5.2.2","@types/ramda":"^0.29.9","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_3.1.0_1711378014124_0.5162239851888424","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"schema-stream","version":"3.2.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@3.2.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"cc6785f24c0153ed40b38968341032df76dabf6c","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-3.2.0.tgz","fileCount":8,"integrity":"sha512-bjDLWg7avl1uvE0LfpFUIx7XVpo2nvYV9YpfXKqzj09DfcGni4sb1xAoc9uc9Q1RdglOKMbjAXNpgjbAnOGrNg==","signatures":[{"sig":"MEQCIGnALjNBF8Cgzr7vFeVLNtCzRVkrqQ6sx/wkPBmXwL7TAiAehYmmAMdtyPjUqhs6wY9jPFLzxpEH2T1kHJvl3aklag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":186377},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"409fb8d1964b310de59d275fc6311701268a6acc","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/schemaStream"},"_npmVersion":"10.1.0","description":"![GitHub Actions Status](https://github.com/github/docs/actions/workflows/test.yml/badge.svg?branch=main) [![NPM Version](https://img.shields.io/npm/v/schema-stream.svg)](https://www.npmjs.com/package/schema-stream)","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.3","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.15","typescript":"^5.2.2","@types/ramda":"^0.29.9","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"^3.23.3"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_3.2.0_1722749046029_0.013522813347054852","host":"s3://npm-registry-packages"}},"3.2.1":{"name":"schema-stream","version":"3.2.1","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@3.2.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.hack.dance","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"1bc533dfa69ee73ec11f430dfb6d11eeed31f6cb","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-3.2.1.tgz","fileCount":8,"integrity":"sha512-ZYmu7GvxCAMeMlx9uLC4XzHpRMd4+O3BzOosN2VPbIWc7MkIBpBNTl3iDrSBkBtOOdtkJkLH2X3TYwTO96jwXw==","signatures":[{"sig":"MEYCIQC39figPP35FjSE8jYev2tEp9BxdSMaGgIs+aa1Cc5joQIhAMDIv//9A71e9mjJtUIltMt7/C4Lc8qkJCNGaUDINZbZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":197169},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"e12d985b85d19bdb65164fe600bf5adb49d86b78","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/schemaStream"},"_npmVersion":"10.1.0","description":"<div align=\"center\">   <h1>schema-stream</h1> </div> <br />","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.3","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.15","typescript":"^5.2.2","@types/ramda":"^0.29.9","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"^3.23.3"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_3.2.1_1732677395442_0.7812172781590165","host":"s3://npm-registry-packages"}},"3.2.2":{"name":"schema-stream","version":"3.2.2","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@3.2.2","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.hack.dance","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"65c025c02e7cf6fa87aeb30c5ff6d4b4f058ee8a","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-3.2.2.tgz","fileCount":8,"integrity":"sha512-7hwI/4lbo8sOs7sRbKW9Bh+5qPHOj12tVpskHq1tYakVlWEpdLgeEKXXgzGLaAP1Bw+DcoB4DmdA7/nSxGI5OA==","signatures":[{"sig":"MEYCIQDfoUPtHNQzllx8HTb0IJIujs+ln7YIcHQld4soR3B0wgIhAM1rjZJpEJRDZOi9dWOF8h4VLML7hGZcAkxK2NxWXAA/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":197169},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"a6e694ac5ada0facf9a9777fe688ff2ed7d402e4","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/schemaStream"},"_npmVersion":"10.1.0","description":"<div align=\"center\">   <h1>schema-stream</h1> </div> <br />","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"ramda":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.3","tsup":"^8.0.1","eslint":"^8.53.0","bun-types":"^1.0.15","typescript":"^5.3.3","@types/ramda":"^0.29.9","@types/eslint":"^8.56.1","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"^3.23.3"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_3.2.2_1732682464277_0.48199163017980085","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"schema-stream","version":"4.0.0","author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@4.0.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.hack.dance","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"73061ffd7da08e8c80bd5a54181c3903be3d1e46","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-4.0.0.tgz","fileCount":8,"integrity":"sha512-zJO0+IYyloZvOZsOVexSpUNL0ifrUxR8o88sQswNslq573hj2n6hH975U8bBpg9aIyFD20lEjUX0zDGeEUbNSw==","signatures":[{"sig":"MEYCIQD5ZbVTNjxXUuMgz122zeubMHAD69VRxzvp9FcLYs8AuAIhAP5dRRHlnrUow6OB+ZpE4LN60bkuvNZf2DP36/StCQpg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/schema-stream@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":237209},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a736930aea286066c1f1514d033f54c891bbde6a","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7496e6fe-b836-4aa8-ad62-2b5004dc0188"}},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/schemaStream"},"_npmVersion":"11.16.0","description":"<div align=\"center\">   <h1>schema-stream</h1> </div> <br />","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.19","zod":"^4.4.3","tsup":"^8.5.1","zod3":"npm:zod@^3.25.0","eslint":"^8.53.0","bun-types":"^1.0.15","typescript":"^5.9.3","@types/eslint":"^8.56.1","@openai/agents":"0.13.1","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_4.0.0_1783653494758_0.04650971215521871","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"schema-stream","version":"4.1.0","keywords":["ai","json","llm","streaming","structured-output","web-streams","zod"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"schema-stream@4.1.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://hack.dance","bugs":{"url":"https://github.com/hack-dance/schema-stream/issues"},"dist":{"shasum":"4c3677d5d5da30c65716c7a640d3fa8cb326ed47","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-4.1.0.tgz","fileCount":27,"integrity":"sha512-r05JvixLaaa5NGqT1bqQNttQWY8gHMcORPmVPw4xpH6svWU/izM5fZeU5kqB0CzFkxjTIvrCBrsyVShRoFUZwA==","signatures":[{"sig":"MEUCIHE409C78UjZOr7wxycrldDijc0cBlOV9i+2qY93zs44AiEA0fSxT4+DPodnJ11PYkr1G5ef1Kba4Eu2jriPbhacSCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/schema-stream@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":298071},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.3.14","node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"5f11bfbe944f9e9136e74c42c5c28083b9e19c24","scripts":{"dev":"tsup --watch","lint":"ultracite check","test":"bun test --timeout=25000","build":"tsup && tsc --project tsconfig.build.json","check":"bun run lint && bun run type-check && bun run test && bun run test:packed","clean":"rm -rf coverage dist node_modules","format":"ultracite fix","prepack":"bun run build","release":"bun run build && changeset publish","version":"changeset version","lint:fix":"ultracite fix","changeset":"changeset","type-check":"tsc --noEmit","test:packed":"bash tests/packed-consumer/verify.sh","format:check":"ultracite check","test:coverage":"bun test --coverage --timeout=25000","benchmark:snapshots":"bun tests/snapshot-policy.benchmark.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ee64b612-fda0-462e-84be-8066a9c61153"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/hack-dance/schema-stream.git","type":"git"},"_npmVersion":"11.16.0","description":"Progressively parse streamed JSON into typed, schema-shaped snapshots","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ai":"7.0.19","zod":"^4.4.3","tsup":"^8.5.1","zod3":"npm:zod@^3.25.0","ultracite":"7.9.3","@types/bun":"^1.3.14","typescript":"7.0.2","@biomejs/biome":"2.5.2","@openai/agents":"0.13.1","@changesets/cli":"^2.31.0","@changesets/changelog-github":"^0.7.0"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/schema-stream_4.1.0_1783731478354_0.18651983216264267","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"schema-stream","version":"4.2.0","description":"Progressively parse streamed JSON into typed, schema-shaped snapshots","author":{"name":"Dimitri Kennedy","email":"dimitri@sick.email","url":"https://hack.dance"},"license":"MIT","homepage":"https://schema.stream","repository":{"type":"git","url":"git+https://github.com/hack-dance/schema-stream.git"},"bugs":{"url":"https://github.com/hack-dance/schema-stream/issues"},"keywords":["ai","json","llm","streaming","structured-output","web-streams","zod"],"publishConfig":{"access":"public"},"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js","default":"./dist/index.mjs"},"./package.json":"./package.json"},"sideEffects":false,"engines":{"bun":">=1.3.14","node":">=22"},"packageManager":"bun@1.3.14","workspaces":[".","site"],"scripts":{"benchmark":"bun tests/snapshot-policy.benchmark.mts","benchmark:snapshots":"bun tests/snapshot-policy.benchmark.mts","build":"tsup && tsc --project tsconfig.build.json","check":"bun run lint && bun run type-check && bun run release:check && bun run test && bun run test:packed && bun run docs:check && bun run demo:check && bun run docs:build","changeset":"changeset","clean":"rm -rf coverage dist node_modules","dev":"tsup --watch","demo:check":"cd media/schema-stream-demo && bun x --yes hyperframes@0.7.54 check --strict","demo:render":"bash scripts/media/render-schema-stream-demo.sh","docs:build":"bun run docs:generate && bun run docs:prepare && bun run build && bun run --cwd site build","docs:check":"bun scripts/docs/generate.ts --check","docs:dev":"bun run docs:generate && bun run docs:prepare && bun run build && bun scripts/docs/dev.ts","docs:generate":"bun scripts/docs/generate.ts","docs:prepare":"bun scripts/docs/prepare.ts","docs:start":"bun run --cwd site start","docs:watch":"bun scripts/docs/watch.ts","example:mastra":"bun examples/mastra.ts","example:progressive":"bun examples/progressive-json.ts","example:sdk":"bun examples/sdk-mocks.ts","example:websocket":"bun examples/websocket-ui/server.ts","examples":"bun run example:progressive && bun run example:sdk && bun run example:mastra","format":"ultracite fix","format:check":"ultracite check","lint":"ultracite check","lint:fix":"ultracite fix","prepack":"bun run build","release":"bun run build && changeset publish","release:check":"changeset status","test":"bun test --timeout=25000","test:coverage":"bun test --coverage --timeout=25000","test:live":"bun test tests/live-model.e2e.test.ts --timeout=300000","test:packed":"bash tests/packed-consumer/verify.sh","type-check":"tsc --noEmit && tsc --project scripts/docs/tsconfig.json --noEmit","version":"changeset version"},"devDependencies":{"@biomejs/biome":"2.5.2","@changesets/changelog-github":"^0.7.0","@changesets/cli":"^2.31.0","@mastra/core":"1.50.1","@openai/agents":"0.13.1","@types/bun":"^1.3.14","ai":"7.0.19","next":"16.2.10","tsup":"^8.5.1","typescript":"7.0.2","ultracite":"7.9.3","zod":"^4.4.3","zod3":"npm:zod@^3.25.0"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"overrides":{"esbuild":"^0.28.1"},"gitHead":"416077351055e31cb8b8cc86e92275027f7ccf23","_id":"schema-stream@4.2.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-uMobPTLn285uyw/DoOgYnljqi6luQlWlWM6ZFfVcYi41AFgtL/b61NyZeFTPBEoyYpnbxeXSFVXlv75SiG+XtA==","shasum":"da33f3e4cce18ed392e73679ad41a3dd1eb28050","tarball":"https://registry.npmjs.org/schema-stream/-/schema-stream-4.2.0.tgz","fileCount":32,"unpackedSize":388449,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/schema-stream@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEsG3Og0hLq/UmNdnEwNKNLHrKxJFxF2s6zaoAey69LOAiAX8q98IPVzGmYb1KjKQpmJQDpXWLYpLvzblxUOLxwImg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ee64b612-fda0-462e-84be-8066a9c61153"}},"directories":{},"maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/schema-stream_4.2.0_1783825594269_0.9682031089908518"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-11T02:18:22.042Z","modified":"2026-07-12T03:06:34.734Z","0.0.1":"2023-10-11T02:18:22.431Z","0.0.2":"2023-10-11T17:25:50.533Z","1.0.0":"2023-12-07T21:26:00.260Z","1.1.0":"2023-12-08T18:24:32.693Z","1.2.0":"2024-01-03T03:50:48.694Z","1.2.1":"2024-01-03T04:03:54.991Z","1.3.0":"2024-01-05T01:00:28.641Z","1.4.0":"2024-01-06T17:05:45.446Z","1.4.1":"2024-01-06T17:21:05.775Z","1.6.0":"2024-01-06T17:40:52.645Z","2.0.0":"2024-01-10T05:40:58.519Z","2.0.1":"2024-01-10T05:47:47.979Z","2.1.0":"2024-01-22T01:29:46.540Z","3.0.0":"2024-02-21T20:08:58.311Z","3.1.0":"2024-03-25T14:46:54.319Z","3.2.0":"2024-08-04T05:24:06.188Z","3.2.1":"2024-11-27T03:16:35.609Z","3.2.2":"2024-11-27T04:41:04.451Z","4.0.0":"2026-07-10T03:18:14.894Z","4.1.0":"2026-07-11T00:57:58.487Z","4.2.0":"2026-07-12T03:06:34.417Z"},"bugs":{"url":"https://github.com/hack-dance/schema-stream/issues"},"author":{"name":"Dimitri Kennedy","email":"dimitri@sick.email","url":"https://hack.dance"},"license":"MIT","homepage":"https://schema.stream","keywords":["ai","json","llm","streaming","structured-output","web-streams","zod"],"repository":{"type":"git","url":"git+https://github.com/hack-dance/schema-stream.git"},"description":"Progressively parse streamed JSON into typed, schema-shaped snapshots","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"readme":"# schema-stream\n\n[![npm](https://img.shields.io/npm/v/schema-stream.svg)](https://www.npmjs.com/package/schema-stream)\n[![CI](https://github.com/hack-dance/schema-stream/actions/workflows/ci.yml/badge.svg)](https://github.com/hack-dance/schema-stream/actions/workflows/ci.yml)\n[![Follow @dimitrikennedy](https://img.shields.io/twitter/follow/dimitrikennedy?style=social&labelColor=000000)](https://twitter.com/dimitrikennedy)\n\n[Documentation](https://schema.stream/docs) · [Examples](https://schema.stream/examples) ·\n[Approach](https://schema.stream/approach) · [Playground](https://schema.stream/playground)\n\nParse JSON while it is still arriving. `schema-stream` turns a Web Stream or async iterable into\ntyped, schema-shaped snapshots, so a UI can render partial strings, nested objects, and arrays\nbefore the response is complete.\n\n- SDK-neutral `iterate()` API for Web Streams and async iterables\n- Schema-derived placeholders, progressive nested values, and low-overhead completion events\n- Opt-in snapshot policies for per-value, byte-threshold, and final-only updates\n- OpenAI Agents and Vercel AI SDK text streams, plus a live-tested Mastra compatibility canary\n- Zod 4 Classic, Zod Mini, and Zod 3.25+\n- ESM and CommonJS builds with no runtime dependency beyond the Zod peer\n\nSnapshots are progressive parser output, not validation results. `schema-stream` uses the schema for\ntypes and initial placeholders, but it does not validate partial or final values. Validate the\nsettled value with your schema or use the producing SDK's validated result.\n\n![Schema Stream progressing from raw JSON chunks to completion events, snapshot policies, and a materialized dashboard](https://raw.githubusercontent.com/hack-dance/schema-stream/main/docs/assets/schema-stream-demo.gif)\n\n## One stream, many snapshots\n\nEvery value yielded by `iterate()` is a complete, independent snapshot. If this JSON arrives in\nsmall chunks:\n\n```json\n{\"title\":\"Hello\",\"details\":{\"score\":42}}\n```\n\nthe snapshots can progress like this:\n\n```json\n{\"title\":\"Hel\",\"details\":{\"score\":null}}\n{\"title\":\"Hello\",\"details\":{\"score\":null}}\n{\"title\":\"Hello\",\"details\":{\"score\":42}}\n```\n\nThe default cadence follows the source chunks with `snapshotPolicy: { mode: \"chunk\" }` and\n`stringBufferSize: 0`. That disables the fixed-size byte buffer; the decoded value is still\naccumulated. It is not necessarily one character per snapshot: an SDK or network chunk may contain\npart of a Unicode code point or many complete code points. Opt-in snapshot policies can instead emit\nat completed-value boundaries, byte thresholds, or only once at the end.\n\n## Install\n\n```bash\nnpm install schema-stream zod\n```\n\n```bash\nbun add schema-stream zod\n```\n\n## Progressive JSON\n\n```typescript\nimport { SchemaStream, type SchemaStreamChunk } from \"schema-stream\"\nimport { z } from \"zod\"\n\nconst schema = z.object({\n  summary: z.string(),\n  details: z.object({ score: z.number() }),\n  tags: z.array(z.string())\n})\n\nconst parser = new SchemaStream(schema, {\n  onValueComplete({ path, value }) {\n    if (path[0] === \"details\" && path[1] === \"score\") {\n      routeScore(value)\n    }\n  }\n})\n\nfor await (const partial of parser.iterate(response.body!)) {\n  const update: SchemaStreamChunk<typeof schema> = partial\n  renderProgress(update)\n}\n```\n\n`iterate()` accepts `ReadableStream<string | Uint8Array>` or\n`AsyncIterable<string | Uint8Array>`. It preserves backpressure, handles UTF-8 code points split\nacross byte chunks, cancels the source when iteration ends early, and yields an independent snapshot\nfor every input chunk.\n\nSnapshot cadence is opt-in and shared with `parse()`. Omitting the option retains one snapshot per\ninput chunk:\n\n```typescript\nparser.iterate(source, { snapshotPolicy: { mode: \"value\" } })\nparser.iterate(source, { snapshotPolicy: { mode: \"bytes\", bytes: 256 * 1024 } })\nparser.iterate(source, { snapshotPolicy: { mode: \"final\" } })\n```\n\nSee [snapshot policies](./docs/snapshot-policies.md) for exact semantics and performance tradeoffs.\nSee [completion events](./docs/completion-events.md) for nested path ordering, filtering, and the\nlegacy progress callback.\n\n## Server-to-browser streaming\n\nProvider text deltas and raw response chunks are not standalone JSON documents. A raw Fetch response\ncan split a UTF-8 code point or JSON token anywhere. SSE and WebSocket add application framing:\n`EventSource` assembles a complete SSE event, and WebSocket exposes a complete logical message after\nprotocol-frame reassembly. Either can carry a complete server-materialized snapshot.\n\nFor most provider-backed applications, keep the API key, SDK, and SchemaStream on the server. Parse\nthe provider text once, choose an intentional snapshot cadence, then send each selected snapshot as\none versioned JSON message. The browser can use ordinary `JSON.parse` on every message without\nunderstanding partial JSON or provider event formats.\n\n```typescript\nfor await (const snapshot of parser.iterate(providerTextStream, {\n  snapshotPolicy: { mode: \"value\" }\n})) {\n  socket.send(JSON.stringify({ type: \"snapshot\", revision: revision++, value: snapshot }))\n}\n```\n\nBrowser-side parsing remains supported for local-first, offline, and client-only cases. Server-side\nplacement is usually preferable when it centralizes secrets, validation, cancellation, coalescing,\nand backpressure. WebSocket is often the cleaner browser hop when start, cancel, policy changes, and\nprogress should share one connection; SSE remains a sound choice for one-way progress and automatic\nreconnect. Do not blindly send a growing full snapshot for every token: repeated serialization and\nnetwork bytes can become the new bottleneck.\n\nFrom a repository checkout, run the interactive comparison at <http://127.0.0.1:3400>:\n\n```bash\nbun run example:websocket\n```\n\nSee the [transport guide](./docs/transports.md) and the repository's\n[Bun WebSocket UI](./examples/websocket-ui/) for an interactive localhost visualization of the\nmessage protocol and snapshot-policy controls.\n\n## OpenAI Agents SDK\n\nPass the Agents SDK text stream directly to `iterate()`:\n\n```typescript\nimport { Agent, run } from \"@openai/agents\"\nimport { SchemaStream } from \"schema-stream\"\nimport { z } from \"zod\"\n\nconst outputSchema = z.object({\n  summary: z.string(),\n  details: z.object({ score: z.number() }),\n  tags: z.array(z.string())\n})\n\nconst agent = new Agent({\n  name: \"Analyst\",\n  model: \"gpt-5.6-luna\",\n  instructions: \"Return a structured analysis.\",\n  outputType: outputSchema\n})\n\nconst result = await run(agent, input, { stream: true })\nconst parser = new SchemaStream(outputSchema)\n\nfor await (const partial of parser.iterate(result.toTextStream())) {\n  renderProgress(partial)\n}\n\nawait result.completed\nconst finalOutput = result.finalOutput\n```\n\nThe progressive chunks are for immediate UX. After `completed` resolves, `finalOutput` is the\nAgents SDK's authoritative schema-validated result.\n\n## Vercel AI SDK\n\nPass `streamText().textStream` to SchemaStream to receive schema-shaped defaults and updates inside\nincomplete strings and nested values:\n\n```typescript\nimport { Output, streamText } from \"ai\"\nimport { SchemaStream } from \"schema-stream\"\nimport { z } from \"zod\"\n\nconst outputSchema = z.object({\n  summary: z.string(),\n  details: z.object({ score: z.number() }),\n  tags: z.array(z.string())\n})\n\nconst result = streamText({\n  model: \"openai/gpt-5.6-luna\",\n  output: Output.object({ schema: outputSchema }),\n  prompt: input\n})\n\nconst parser = new SchemaStream(outputSchema)\n\nfor await (const partial of parser.iterate(result.textStream)) {\n  renderProgress(partial)\n}\n\nconst finalOutput = await result.output\n```\n\nAI SDK's `partialOutputStream` is a good fit when its partial-object semantics are sufficient.\nSchemaStream consumes the raw text stream when you need schema-derived stubs or finer-grained\nupdates. `result.output` remains the authoritative validated result.\n\n## Mastra\n\nMastra's documented progressive structured-output surface is `objectStream`; its `textStream` is a\nnatural-language stream and is not generally a raw-JSON contract. Use `objectStream` directly when\nits partial-object cadence is sufficient, and keep `object` as the authoritative validated result:\n\n```typescript\nimport { Agent } from \"@mastra/core/agent\"\nimport { z } from \"zod\"\n\nconst outputSchema = z.object({\n  summary: z.string(),\n  details: z.object({ score: z.number() }),\n  tags: z.array(z.string())\n})\n\nconst agent = new Agent({\n  id: \"analyst\",\n  name: \"Analyst\",\n  model: \"openai/gpt-5.6-luna\",\n  instructions: \"Return a structured analysis.\"\n})\n\nconst result = await agent.stream(input, {\n  structuredOutput: {\n    schema: outputSchema,\n    errorStrategy: \"strict\"\n  }\n})\n\nfor await (const partial of result.objectStream) {\n  renderProgress(partial)\n}\n\nconst finalOutput = await result.object\n```\n\nSome pinned Mastra/provider combinations currently expose direct structured JSON through\n`textStream` because the schema is forwarded as the model's response format. That behavior is not\nMastra's public cross-provider contract. The repository's [executable Mastra compatibility\nexample](./examples/mastra.ts) guards the stream before passing it to SchemaStream, and the weekly\nlive test verifies `@mastra/core@1.50.1` with `openai/gpt-5.6-luna`. This optional lane provides\nSchemaStream's incomplete-string updates, completion events, and snapshot policies, while failing\nclosed if an upstream version begins emitting prose.\n\nThe repository runs credential-free runtime integrations against all three surfaces and provides\nan opt-in live-provider matrix for the OpenAI Agents SDK, Mastra, and Vercel AI SDK with varied\nprompts and schemas. See\n[integration testing](./docs/integration-testing.md) for the commands and environment contract.\n\n## Zod compatibility\n\nThe peer range is `zod@^3.25.0 || ^4.0.0`.\n\n```typescript\n// Zod 4 Classic\nimport { z } from \"zod\"\n\n// Zod Mini\nimport * as z from \"zod/mini\"\n\n// Zod 3.25+\nimport { z } from \"zod/v3\"\n```\n\nSchema-derived stubs support objects, arrays, records, strings, numbers, booleans, enums, defaults,\nprefaults, optionals, nullables, readonly/catch wrappers, lazy schemas, and transform/pipe inputs.\nAmbiguous or non-JSON schema nodes begin as `null` and are replaced when streamed JSON arrives.\n\n## Defaults and completion events\n\n```typescript\nconst parser = new SchemaStream(schema, {\n  defaultData: {\n    summary: \"Waiting for the model...\"\n  },\n  typeDefaults: {\n    string: \"\",\n    number: null,\n    boolean: null\n  },\n  onValueComplete({ path, value }) {\n    routeCompletedValue(path, value)\n  }\n})\n```\n\nZod defaults are used when present. `defaultData` overrides individual fields, including falsy\nvalues. `onValueComplete` emits the completed value with its path, reports leaves before their\ncontainers, and uses an empty path for the completed root document. Event values are syntactically\ncomplete but not schema-validated. The legacy `onKeyComplete` callback remains available when a\nconsumer needs character-level string progress and cumulative completion history; new completion\nlisteners should use `onValueComplete` to avoid repeatedly copying that history.\n\n## Low-level transform\n\n`parse()` remains available for pipelines that need serialized JSON snapshots:\n\n```typescript\nconst transform = new SchemaStream(schema).parse()\nconst snapshots = response.body!.pipeThrough(transform)\n\nfor await (const bytes of snapshots) {\n  const partial = JSON.parse(new TextDecoder().decode(bytes))\n  renderProgress(partial)\n}\n```\n\n`parse()` accepts the same `snapshotPolicy` option as `iterate()`.\n\n## Development\n\n```bash\nmise install\nbun install\nbun run format\nbun run lint\nbun run examples\nbun run docs:dev\nbun run docs:check\nbun run docs:build\nbun run check\n```\n\n`mise.toml` pins Bun 1.3.14 and the current Node 24 release. Maintainers type-check and emit\ndeclarations with TypeScript 7.0.2. TypeScript is a development-only dependency, so installing\n`schema-stream` does not install or require TypeScript 7.\n\nUltracite and Biome own formatting and linting. `bun run format` applies safe fixes, `bun run lint`\nchecks the repository without writing, and `bun run check` includes linting before type checks,\ntests, packed-consumer verification, generated-doc drift checks, and the production docs build.\n\nThe checked-in Markdown in `README.md`, public guides under `docs/`, and `CHANGELOG.md` is the\ndocumentation source of truth for both GitHub and [schema.stream](https://schema.stream). Public API\nreference Markdown is generated from exported TSDoc, and `site/content/docs` is an ignored\nbuild-stage copy. Run `bun run docs:generate` after changing exports or public TSDoc; never edit the\nstaged site content directly. Contributor guidance and engineering evidence remain repository-only\nmaterial.\n\n`test:packed` installs the generated tarball into clean consumers and verifies ESM, CommonJS,\nZod 4/Mini, Zod 3, OpenAI Agents SDK, Mastra, and Vercel AI SDK compatibility with TypeScript 5.9\nunder Node and Bun without contacting a model. This protects the declaration surface from\naccidental TS7-only syntax.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}