{"_id":"@carlos-tzin/tzin","_rev":"21-981c700d75fe20a62b38099ed18e8eac","name":"@carlos-tzin/tzin","dist-tags":{"latest":"1.0.8"},"versions":{"0.1.0":{"name":"@carlos-tzin/tzin","version":"0.1.0","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.0","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"4f3618fb2d4fc8c6e1f1d65220ddb2f3e5c51afb","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.0.tgz","fileCount":58,"integrity":"sha512-oA1RyV5w7Mx6MMhCpphhIO2BLcUYAA/qdAMITjV52lu9KkEKG45FqcMOOEVATnwkRkDKdhwwxqwb0werPgGmrQ==","signatures":[{"sig":"MEYCIQDZ1strO9B7ZJGViPlTeeQ9Jb1t69kxKGeFiVoR5JmK8QIhAKlXE4Fx48Yh0P9PQEV/fdvpLUYImfIzlOOk8iEkzv0e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116638},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"c02fc999c32991eea0131b81d35989af0a024f41","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.0_1787689423120_0.6486032703792055","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@carlos-tzin/tzin","version":"0.1.1","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.1","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"c245b55b49114ba05b7e114ea7897276c7c67929","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.1.tgz","fileCount":58,"integrity":"sha512-Eh1ZujVQpSO98VYQRuLl0sZ8zvEj769yP1GZWNkRWgpCAp6l565UrwqTK4R8yHS5vHWU0eFdgwDHW0ZZhWq/uw==","signatures":[{"sig":"MEYCIQDBTvc9CJPox3p6ZrHyw3EW9xtAGl2I18mc7dC4QCHIKQIhAO77WF8Xtcro9uMcuC3THL7SY+nZr2D/j6D7M6x6ljHU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115566},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"a9889e778cb45ea029d1daa821c57b9f36aff8d5","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.1_1787690032860_0.009421171382794746","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@carlos-tzin/tzin","version":"0.1.2","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.2","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"c731893260fa497acf2102ded8243325d53f1e13","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.2.tgz","fileCount":58,"integrity":"sha512-ncO74Xk8zDNrQ+DKjiV5DdNkS4Fp+k6HxYncKpV1io7iSMg/Hhq8TAC/6J02ls9jzBuKEXckCcX9chCBKPqsmQ==","signatures":[{"sig":"MEQCIDhT0V7nYQlvqzmxJpF7kKuGC6epEpxvFGjNVyty+KmMAiAZdckdDk5vul1rGZMgvCM9HCtnPrdkVVHwO7KzCPi5yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115628},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"9c9c4e865b14bba67294b96989aaf59389653330","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.2_1787691727948_0.3133533680677676","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@carlos-tzin/tzin","version":"0.1.3","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.3","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"c8594083d1f0e363eac05e1b166622ce06f29237","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.3.tgz","fileCount":58,"integrity":"sha512-+t2GOypJZZTF4q0tLKNjwJa8kTRdBITv/HVt8Kp3I7mLCa7j/caMp4nLMheY3A7SPE4h1tXasf0ZXjLwwEQbvg==","signatures":[{"sig":"MEUCIDGKxIuPbL5V/m8twvrr/QQtdBeliKL9gnZD+UiuzqSuAiEAqPr59y2SyH7zl6+TcNk+Ew0qd+62QQtab8fZE/M+wxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116127},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"4714862cb047e98a47e3732af3ae8ae4c8c34152","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.3_1787692869205_0.20207248713384596","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@carlos-tzin/tzin","version":"0.1.4","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.4","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"481aaa9ea4dc5f0e2bdf15467759b74aa20aa275","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.4.tgz","fileCount":64,"integrity":"sha512-O2HzgeOyEfebD+PjV3wprUHmkF2J9lac1NhPV5JtOsFRNlCC1GVZgAjiiyLIhmagsaC4WBZzhjVnKqg25isu9Q==","signatures":[{"sig":"MEQCIDLsgQ+qVsgFOWj0vJdE38umw2bzPtsikSw/nx806RQhAiBgLSVzwgTe6P7cj906XX0/Vf1hjERxwIigQqTBt3LO/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128101},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"3f32139df5e9924e96dcedb0e79afb00757cc2b4","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.4_1787697601533_0.6381883367712395","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@carlos-tzin/tzin","version":"0.1.5","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.5","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"0dcc1d9be12a313416b9650cc02462f7e7e0b1d0","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.5.tgz","fileCount":64,"integrity":"sha512-lQRD49OkSNpitxH6Uj5lnTS3Ec0MoN84Cd+WqgcNjT+8U1NRZ2kLSd3dHVxw4d7580rYdIAxWXwQwM6lkTd2ug==","signatures":[{"sig":"MEQCICxgt5V5Ohy3WGkBWnc6tvp9guQOeuNE0M/PgdL16Ez0AiB6vGO9UqqVBS7nJw2stsTABMw8SAx4QFczi3DPQ5OD2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131435},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"6c01e0b4727ec3504afc59507834554b9a5e9afd","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.5_1787697927119_0.13032136124801164","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@carlos-tzin/tzin","version":"0.1.6","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.6","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"c062700e2061f1fc61628fcd34e351571e7b273d","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.6.tgz","fileCount":64,"integrity":"sha512-CGE6l6AmBeI7uFSZwQVC8A27Tmybc3qeIScrCBiizaTzaBG1NSW3WPpD/nxOtgGtEy6c8YbAHAvN4UJJ4iidxA==","signatures":[{"sig":"MEQCIDnuVj6xmMxTUlvqOd4TbqekYopdNrMP+pyLMNTKGh5fAiAjgwW+AMiB2VHVNx9oE7npWCDS4yvzrBAl2cIH7LjLEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133786},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"9feab44ecd094c64e80439063ce1a4ba8b9eed2e","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.6_1787698089366_0.2789838401732334","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@carlos-tzin/tzin","version":"0.1.7","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.7","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"f757f02ee55151d1dca9af46b2e5e9f908bac4d7","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.7.tgz","fileCount":66,"integrity":"sha512-QNAF5KycymRPzrjC/Qxqq9vdeTi0PrJ7vtQV558WF5SpgMZBjFej0QwXJuzZRcM2AaaLOW3C2HPzkbUR7TZRug==","signatures":[{"sig":"MEYCIQCxbooO9R8AuRl5B9MnrSLGvRqdLDWvCWNguKJ3KoRMIwIhAKNdSWWo5q/K71QQHraKyZ4ebVQr+B/LMwA9e9BYTEGl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145376},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"afc29eb263a847b62c780c4c0c0b62d50c55fcc6","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.7_1787698234813_0.7955834545597138","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@carlos-tzin/tzin","version":"0.1.8","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.8","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"b6113bf50a42c52b021b4beb823525acec160e97","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.8.tgz","fileCount":68,"integrity":"sha512-iAA5AN6oIjcKX2B4bbBUcd0jAMEiqwX5TLZjNu32POxIY1eW5Ro9Jc6hkVJrKoYOIaexB6Noo4amy1iAWJVJLQ==","signatures":[{"sig":"MEUCIFqzbhznAIWNqtJY723Cphj9FCWoIdTixd1eahL6q2OjAiEA9AY/fboifSgJe9BjKiq+Mc9/jT7s0k5fYQ/KU38EUiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153816},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"9e9ecd9b0174512de0fb1895370f416301fcda63","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.8_1787698378608_0.7201169290600438","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@carlos-tzin/tzin","version":"0.1.9","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.9","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"505fbf4c5383273c68e7679d377af1f09620bd30","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.9.tgz","fileCount":70,"integrity":"sha512-sn3C1mDfkFi28oz7eB4yXP5E3uR0FOORuaiHaBD2nA3ZxdGG90XHamy8oh16jA74YGiblSDrA4ovjOzHICsMGg==","signatures":[{"sig":"MEUCIQDWb/ZztUnX4hIUg45O/zoi0Fwp8stw3Ux1sGLiBiN3sAIgY2LMJbzsqFukvUsTd5ADu02dY5yg21waHvNL0IlEp2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163677},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"7c2daf651dffb88e2fa4d0a75c2160223fd4bc03","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.9_1787698510057_0.38841071145988026","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@carlos-tzin/tzin","version":"0.1.10","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.10","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"e2f71f39f09a4c05e65cc305b9c8793b33a7f879","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.10.tgz","fileCount":72,"integrity":"sha512-UEPCXo3uQA8W5Fm5JgCym9ak4vtn4EHo4WE2kY11EUyVZNQaqXLlUBmHm4oeimyuD5YA/5Fr8XxTfxi0BCNY7g==","signatures":[{"sig":"MEUCIQDcpJsxPnotNFAFhhRHUOySxAca9Dk7D3afJTAljaqE9wIgcE6g9emjiQSq8Ur/F+5Bf3yPsPUMPeeUtwWJFVKJhIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168975},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"60ff4dd8bb6ae158e36cf5185cd889d31f3c5f7f","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.10_1787698595659_0.6514214947898178","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@carlos-tzin/tzin","version":"0.1.11","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@0.1.11","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"e99b1ca56c098f580a5390706ce88b5cdb89b239","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-0.1.11.tgz","fileCount":76,"integrity":"sha512-GBrmaECLzx2LMLnBzG7CnStVkXryDLSU6NMphVL4WsHkjs0dsNXQHFRltPAANQkA99B5Z9Nyf7qlg2TZLwalnQ==","signatures":[{"sig":"MEQCIHAhVBgGxSHNEbiJxJ1XoKVMJByMvgYtY/MSNnWxRpgOAiBhThn1B+29vV4Asv6TPvDCrLeonbLvJ1kcVVH1UHk/SQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184522},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"cafb29955e0e70fd7c9fa99eb3200872a4e9ef08","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_0.1.11_1787699494547_0.5093185243194169","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@carlos-tzin/tzin","version":"1.0.0","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@1.0.0","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Charly921/tzin#readme","bugs":{"url":"https://github.com/Charly921/tzin/issues"},"dist":{"shasum":"17d37a8daa712c1e0d6e275081003e6fd4388043","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-1.0.0.tgz","fileCount":76,"integrity":"sha512-C/9GMv+jJznBWpDNo958rrNBx+S5rSxpvitPJxGzM7BsZJG5qVQKt95Vq5YzYWKRSZ2oVB4aKk1eD+mF8Aiwuw==","signatures":[{"sig":"MEUCIQCtPPrvD+fQOVyWReuI/ce8EwLFfaUxasGl79WwqHQHkgIgdOewqxLva1NPRwOftOqZlS8bSaABo8S1zEezd7tDK7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186865},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"fe807cfa1d74e1964f944995dd11f5a24dd0f912","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Charly921/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_1.0.0_1787699645368_0.08864442401509143","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@carlos-tzin/tzin","version":"1.0.1","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@1.0.1","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Tzinny-dev/tzin#readme","bugs":{"url":"https://github.com/Tzinny-dev/tzin/issues"},"dist":{"shasum":"e48524d088af7f9306fb91d812f2d6197add2f9b","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-1.0.1.tgz","fileCount":76,"integrity":"sha512-yk2PrVT2gjkYINpvU1FkSSkJqBvAKvVMZXgPqbE2gA4dzd83HALPrRWyUWhTB0cNQiEINLvjX5B3ijbQEr06Sw==","signatures":[{"sig":"MEUCIQDL0cIWHcQkEWnEtsWRU0R4he6Nil9IBPxmejfT09VjOAIgCCVPDsclx64FDV1VcgcQaffPHOxt6VK6klARNeNDH3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187046},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"d4eb50276de622e7265a9202f43b1706ff9fcf24","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Tzinny-dev/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_1.0.1_1788310333421_0.5392997643789728","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@carlos-tzin/tzin","version":"1.0.2","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@1.0.2","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Tzinny-dev/tzin#readme","bugs":{"url":"https://github.com/Tzinny-dev/tzin/issues"},"dist":{"shasum":"26a13eadd95634fda1aadbebb26ef7b3d475c5a4","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-1.0.2.tgz","fileCount":76,"integrity":"sha512-dH3g6Tb/RE7lu/ulhYReyJCdTB5ODSsmDvXQm7cOgjUJ5CPmV7zmQFUCxxcXqwfcBubimzoxhFzUzJbKn2cGIQ==","signatures":[{"sig":"MEUCIQCJdWxAxTsuQ7vn/gZhfIEdxfrdCKgl3q78YjGDpD7wHQIgbJ1/d0IY8xjdfURpNMwF8s1XZUeIG36bUE/5ck9U8k4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187167},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"f08be78524375103ab063dad768a5115d0063c6f","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Tzinny-dev/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/tzin_1.0.2_1788505632520_0.6657610696508054","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@carlos-tzin/tzin","version":"1.0.3","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@1.0.3","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Tzinny-dev/tzin#readme","bugs":{"url":"https://github.com/Tzinny-dev/tzin/issues"},"dist":{"shasum":"6111c51dccdb7553083f0527f526abfa2a132c9f","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-1.0.3.tgz","fileCount":76,"integrity":"sha512-dyEkdUmkoFHRcy+9pKWyB4uOzOfIEPzO3PUvSCvY+Pknk/L3uXYo/Wq9UyKFhx3e+1sMksxZc9iQZ/pwPxTXQQ==","signatures":[{"sig":"MEUCIDrHOerbiWKk2gSbiUa8z5ZUZ8fbNrOd7XpAg8x1HqpcAiEAsgEUvnW+ow0NJ7jc2z2/d1TrotN1ia2jiO+BpMhYZys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD/xTldxalAltSPHmUmEwtG0Yl0VhP/uaJIQGicvy+kwQIgFSo9Apv6H60V5TEMncrCpNoyUG0ykQ/Aezlj6Q11ccM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189227},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"55f7855041aa849943c013c25ebb4fe57b98ba8b","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","test:coverage":"vitest run --coverage","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Tzinny-dev/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","esbuild":"^0.28.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1","@vitest/coverage-v8":"^2.1.9"},"_npmOperationalInternal":{"tmp":"tmp/tzin_1.0.3_1789432895963_0.11281903093212242","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@carlos-tzin/tzin","version":"1.0.4","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@1.0.4","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Tzinny-dev/tzin#readme","bugs":{"url":"https://github.com/Tzinny-dev/tzin/issues"},"dist":{"shasum":"b098ca7b353ca4ae92bcb7173435272f6989087f","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-1.0.4.tgz","fileCount":76,"integrity":"sha512-a526oSzwpLwmXRzOU5oGtOBHafjE1Zk8KLUpHjh3k7pdXO6N9/4NG7kFEmwktAQc+mQ6fERcgXNWXGxmUk7nDw==","signatures":[{"sig":"MEUCIQDQpdUGc6aKKMEhXEO6JuhsLKAZjvgHqNKDpwgYy4r70gIgC5qI83y/xGXJIBe2xrHvfaMU5qqEetyZPlo8q7PbHL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFSxh9ebAVPNYBTV2n9W6B+YNDogppcPjv+gEirTarNIAiEAgMXxKwqg2PybHcUH4LTZucrswwgnkfcHOEdo/jR03K0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189551},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"3cecf7ff4335e1d9ee6f4a554bfc638ea2548c98","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","test:coverage":"vitest run --coverage","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Tzinny-dev/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","esbuild":"^0.28.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1","@vitest/coverage-v8":"^2.1.9"},"_npmOperationalInternal":{"tmp":"tmp/tzin_1.0.4_1789436995631_0.8818831625875312","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@carlos-tzin/tzin","version":"1.0.5","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@1.0.5","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Tzinny-dev/tzin#readme","bugs":{"url":"https://github.com/Tzinny-dev/tzin/issues"},"dist":{"shasum":"3781964f0688122866b2735ea66a042d6be1477c","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-1.0.5.tgz","fileCount":76,"integrity":"sha512-NKD4UX/XMwws5sFK3hnqSKyZ+AG6NtwYxygIotq0IwRrWVMwI1OscXpWbnhid3min/dwBytRcvmo9HSq9jLnDg==","signatures":[{"sig":"MEQCIHAzLC8JSZI778p2fFBxQ3ykM3O9do0/88NV6aEIcbtMAiAf6BjVFwoAcrY+5Fp+rJ34PWTgktocjRsLTRvSPRDJng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAsNlfXndrGL1qVIMsMiu0K9WIHE4GRYF5CBJSU0gqSFAiAIPmFq3d9d7UULh393C0DenMKh9lwlT8fy+5dCOiNeUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195737},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"a181e40909b13c167db2fea4f05a73c1cc89af48","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","test:coverage":"vitest run --coverage","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Tzinny-dev/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","esbuild":"^0.28.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1","@vitest/coverage-v8":"^2.1.9"},"_npmOperationalInternal":{"tmp":"tmp/tzin_1.0.5_1790047146096_0.18944146727420352","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@carlos-tzin/tzin","version":"1.0.6","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@1.0.6","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Tzinny-dev/tzin#readme","bugs":{"url":"https://github.com/Tzinny-dev/tzin/issues"},"dist":{"shasum":"23b9f276ba82c6d5b7e59a786e871c4ed6443dff","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-1.0.6.tgz","fileCount":76,"integrity":"sha512-YX8siCaKtb4FTSHB1Od7DcP7OLez2NkSfqtbNn/Kf1On6sI8QFINK7KOW/hfMEqxsv/2QSkaKWNX/BeABkYJ4w==","signatures":[{"sig":"MEQCIC1+Gui0+GVKuJpoxslXKReQk3s8BjE+i7LtuWnrGeBZAiAaPojrDtTAqaLz5jFW4h0ZK2d8CvK10RRPm1ihO5bbdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCpm7gAEASwqhPx7imPmcVqit4KUyZjwXVvRPxj+rFVoAIhAJrvmQoiEmSBq/erNGhBliMXfryOj5iFr8vbqyyh3EcF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195752},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"c2e6ac9b21ffd20d3192c784c62fa85324790924","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","test:coverage":"vitest run --coverage","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Tzinny-dev/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","esbuild":"^0.28.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1","@vitest/coverage-v8":"^2.1.9"},"_npmOperationalInternal":{"tmp":"tmp/tzin_1.0.6_1790049900389_0.5482908672385787","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@carlos-tzin/tzin","version":"1.0.7","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"author":{"name":"The tzin authors"},"license":"MIT","_id":"@carlos-tzin/tzin@1.0.7","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"homepage":"https://github.com/Tzinny-dev/tzin#readme","bugs":{"url":"https://github.com/Tzinny-dev/tzin/issues"},"bin":{"tzin":"dist/cli.js"},"dist":{"shasum":"24b30e730dfbd154ce4f1f357b1f7ad20b48b81a","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-1.0.7.tgz","fileCount":76,"integrity":"sha512-Z1J8PIgqi6aOVyXaeOx8/NRznhXAWtac754Cm6pNAapK3CQ9z3pYM80yWc5MIZEZlnXQnCgsH62QTk2Wm6Wxlg==","signatures":[{"sig":"MEUCIQCv21baH6YObJNSQtbZj1HH/pScxVqIeiq0yWX5tkaYzAIgHw7kgWtvwTLU0wD/5JfAjZ4VTUOwiv6uA/Qx5sdjstQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID3m1jXFo8M8qTjb5yLYux1F9jhBmAfdgteYRnyapmqUAiBNmzKCAmFVzrT3iJYlZ3zOmKQHHDymQj4Ool/+DsU6/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202885},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"1e47f8634d615b726aad904fa7bb7ecdbd8d382d","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","test:coverage":"vitest run --coverage","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"repository":{"url":"git+https://github.com/Tzinny-dev/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","esbuild":"^0.28.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1","@vitest/coverage-v8":"^2.1.9"},"_npmOperationalInternal":{"tmp":"tmp/tzin_1.0.7_1790819852954_0.4690669731880781","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"_id":"@carlos-tzin/tzin@1.0.8","bin":{"tzin":"dist/cli.js"},"bugs":{"url":"https://github.com/Tzinny-dev/tzin/issues"},"dist":{"shasum":"8a06412518c91a9a6f59e806cec8395be61b7731","tarball":"https://registry.npmjs.org/@carlos-tzin/tzin/-/tzin-1.0.8.tgz","fileCount":76,"integrity":"sha512-KX8T9mHPZ2ciQl4bzBFgi9/2QIuBGdIqFzWMuLnpIOrtPeQR52Ukn745rx/HiDxvqFfCfoG5f6Hc6blwhU4pUQ==","signatures":[{"sig":"MEUCIHoGT1yNA4lM79IxrpwmxEdexOx8MRmDJbAK/5wQ/fsqAiEA3AFVZS69d+4iaLHZNfhvTDMLUJfzXAlfUqmWwl0pMrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFic5KH4IZUlQgZXkRmEa3iH9M4HGQiOXjjypLommN41AiEA30RJzeJ4vP73KIJXdiDsrEd9/VRAxRSEzwWKWVxifTM="}],"unpackedSize":204713},"main":"./dist/index.js","name":"@carlos-tzin/tzin","type":"module","types":"./dist/index.d.ts","author":{"name":"The tzin authors"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","default":"./dist/db.js"},"./ws":{"types":"./dist/ws.d.ts","default":"./dist/ws.js"},"./bus":{"types":"./dist/bus.d.ts","default":"./dist/bus.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./auth":{"types":"./dist/auth.d.ts","default":"./dist/auth.js"},"./jobs":{"types":"./dist/jobs.d.ts","default":"./dist/jobs.js"},"./test":{"types":"./dist/test.d.ts","default":"./dist/test.js"},"./cache":{"types":"./dist/cache.d.ts","default":"./dist/cache.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","default":"./dist/rate-limit.js"},"./client-browser":{"types":"./dist/client-browser.d.ts","default":"./dist/client-browser.js"}},"gitHead":"949ea4c95ed75215726ceb6b4f4ffa9dbfd690a0","license":"MIT","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","probe:mcp":"node scripts/mcp-client.mjs","typecheck":"tsc --noEmit","bench:http":"tsx bench/http.bench.mjs","bench:lookup":"tsx bench/lookup.bench.mjs","probe:workers":"node scripts/workers-probe.mjs","test:coverage":"vitest run --coverage","bench:pipeline":"tsx bench/pipeline.bench.mjs","prepublishOnly":"npm run build && npm test","typecheck:hono":"tsc -p bench/tsconfig.hono.json --noEmit --extendedDiagnostics","typecheck:ours":"tsc -p bench/tsconfig.ours.json --noEmit --extendedDiagnostics"},"version":"1.0.8","_npmUser":{"name":"carlos-tzin","email":"921charly@gmail.com"},"homepage":"https://github.com/Tzinny-dev/tzin#readme","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"repository":{"url":"git+https://github.com/Tzinny-dev/tzin.git","type":"git"},"_npmVersion":"11.12.1","description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","directories":{},"maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","hono":"^4.0.0","vitest":"^2.1.0","esbuild":"^0.28.0","express":"^5.2.1","@types/ws":"^8.18.1","miniflare":"^5.20260820.0-alpha","autocannon":"^8.0.0","typescript":"^5.6.0","@types/node":"^26.2.0","@hono/node-server":"^2.1.1","@vitest/coverage-v8":"^2.1.9"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tzin_1.0.8_1790822905787_0.6554018682960785"}}},"time":{"created":"2026-08-25T20:23:42.920Z","modified":"2026-10-01T02:48:26.092Z","0.1.0":"2026-08-25T20:23:43.267Z","0.1.1":"2026-08-25T20:33:52.998Z","0.1.2":"2026-08-25T21:02:08.086Z","0.1.3":"2026-08-25T21:21:09.358Z","0.1.4":"2026-08-25T22:40:01.674Z","0.1.5":"2026-08-25T22:45:27.260Z","0.1.6":"2026-08-25T22:48:09.506Z","0.1.7":"2026-08-25T22:50:34.938Z","0.1.8":"2026-08-25T22:52:58.782Z","0.1.9":"2026-08-25T22:55:10.188Z","0.1.10":"2026-08-25T22:56:35.806Z","0.1.11":"2026-08-25T23:11:34.732Z","1.0.0":"2026-08-25T23:14:05.510Z","1.0.1":"2026-09-02T00:52:13.554Z","1.0.2":"2026-09-04T07:07:12.652Z","1.0.3":"2026-09-15T00:41:36.051Z","1.0.4":"2026-09-15T01:49:55.720Z","1.0.5":"2026-09-22T03:19:06.195Z","1.0.6":"2026-09-22T04:05:00.466Z","1.0.7":"2026-10-01T01:57:33.044Z","1.0.8":"2026-10-01T02:48:25.900Z"},"bugs":{"url":"https://github.com/Tzinny-dev/tzin/issues"},"author":{"name":"The tzin authors"},"license":"MIT","homepage":"https://github.com/Tzinny-dev/tzin#readme","keywords":["typescript","framework","contract-first","typebox","openapi","mcp","realtime","websockets","sse","presence","channels","http","api"],"repository":{"url":"git+https://github.com/Tzinny-dev/tzin.git","type":"git"},"description":"Contract-first TypeScript framework. Types that scale, realtime channels with presence, and an MCP server for every API.","maintainers":[{"name":"carlos-tzin","email":"921charly@gmail.com"}],"readme":"# tzin\n\n**Contract-first TypeScript framework. Types that scale. Realtime built in. AI-native from day one.**\n\n> `tzin` — from Nahuatl *-tzin*, an honorific suffix for what is valued and beloved.\n> A pact between client and server, declared once.\n\n[![CI](https://github.com/Tzinny-dev/tzin/actions/workflows/ci.yml/badge.svg)](https://github.com/Tzinny-dev/tzin/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/@carlos-tzin/tzin)](https://www.npmjs.com/package/@carlos-tzin/tzin)\n[![Donate](https://img.shields.io/badge/Donate-PayPal-00457C?logo=paypal&logoColor=white)](https://paypal.me/carlostzin)\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy_Me_A_Coffee-FFDD00?logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/tzinny)\n\n**Status: stable (1.0.x).** The core works end-to-end (see [Benchmarks](#benchmarks));\n1.0.0 shipped the stable API, and 1.0.2 adds test coverage gates, a wider CI\nmatrix and a public type-clean surface.\n\n```sh\nnpm install @carlos-tzin/tzin\n```\n\nOr scaffold a new project:\n\n```sh\nnpx create-tzin my-app\n```\n\n## Documentation\n\nHosted site: **[tzin.tzinny.com](https://tzin.tzinny.com)**\n\n- **[API Reference](docs/api-reference.md)** — all exports, types, and options\n- **[Architecture Guide](docs/architecture.md)** — request pipeline, design decisions, internals\n- **[Deployment Guide](docs/deployment.md)** — Docker, Cloudflare Workers, multi-node clustering\n- **[Roadmap](docs/roadmap.md)** — future features\n\n## Why another framework?\n\nThe TypeScript backend landscape is crowded — and still leaves real gaps:\n\n| Gap | Evidence |\n|---|---|\n| Type inference collapses at scale | Hono issues [#2399](https://github.com/honojs/hono/issues/2399), [#3869](https://github.com/honojs/hono/issues/3869); chained route builders force one giant expression per app |\n| No architecture in lightweight frameworks | Hono issue [#4121](https://github.com/honojs/hono/issues/4121) |\n| Extractors don't exist in TS | Only Rust's Axum gets handler input right |\n| OpenAPI is a bolt-on | Every TS framework translates its own schema DSL to JSON Schema at runtime or via codegen |\n| AI-native toolchain | One framework ships an MCP server; the window is closing |\n\ntzin's answer: **declare a contract once**, get everything else for free.\n\n```ts\nimport { t } from '@carlos-tzin/tzin'\nimport { contract, impl, createApp, listen } from '@carlos-tzin/tzin'\n\nconst getUser = contract({\n  method: 'GET',\n  path: '/users/:id',\n  params: t.Object({ id: t.String() }),\n  responses: {\n    200: t.Object({ id: t.String(), name: t.String(), tags: t.Array(t.String()) }),\n    404: t.Object({ error: t.String() }),\n  },\n})\n\nexport const getUserRoute = impl(getUser, async ({ params }) => {\n  const user = await findUser(params.id)\n  if (!user) throw new HttpError(404, 'user not found')\n  return { status: 200, body: user }\n})\n\nconst app = createApp([getUserRoute])\nlisten(app, 3000)\n```\n\nFrom that single declaration:\n\n- **Handler input is extracted, not guessed**: `{ params }` exists because you declared\n  it; add `query`, `body`, `headers` or `cookies` to the contract and they appear,\n  fully typed and validated per request.\n- **The compiler enforces your responses**: returning a shape that doesn't match the\n  declared `200` body is a type error. Thrown `HttpError`s map to their status.\n- **OpenAPI 3.1 is free**: contracts are JSON Schema (TypeBox), so\n  `generateOpenApi(routes)` needs no translation layer.\n\n## Features\n\n### Core\n\n| Feature | Import | Description |\n|---|---|---|\n| Contracts | `@carlos-tzin/tzin` | Type-safe API contracts |\n| Routes | `@carlos-tzin/tzin` | Bind contracts to handlers |\n| Middleware | `@carlos-tzin/tzin` | Onion-style middleware |\n| DI | `@carlos-tzin/tzin` | Typed dependency injection |\n\n### Runtime\n\n| Feature | Import | Description |\n|---|---|---|\n| Node server | `@carlos-tzin/tzin` | `listen(app, port)` |\n| Bun server | `@carlos-tzin/tzin` | `serveBun(app, port)` |\n| Workers | `@carlos-tzin/tzin` | `toWorker(app)` |\n| Dev server | CLI | `tzin dev` with hot reload |\n\n### Realtime\n\n| Feature | Import | Description |\n|---|---|---|\n| Channels | `@carlos-tzin/tzin` | SSE + POST channels |\n| Presence | `@carlos-tzin/tzin` | Phoenix-style presence |\n| WebSocket | `@carlos-tzin/tzin/ws` | Native WS channels |\n| Browser client | `@carlos-tzin/tzin/client-browser` | Zero-dep browser client |\n\n### AI-Native\n\n| Feature | Import | Description |\n|---|---|---|\n| MCP Server | `@carlos-tzin/tzin` | Streamable HTTP + stdio |\n| OpenAPI | `@carlos-tzin/tzin` | Auto-generated from contracts |\n| LLMs.txt | `@carlos-tzin/tzin` | AI-readable API index |\n\n### Database\n\n| Feature | Import | Description |\n|---|---|---|\n| Models | `@carlos-tzin/tzin/db` | Type-safe ORM |\n| Query builder | `@carlos-tzin/tzin/db` | Chainable queries |\n| Store adapters | `@carlos-tzin/tzin/db` | Swappable backends |\n\n### Auth\n\n| Feature | Import | Description |\n|---|---|---|\n| Bearer auth | `@carlos-tzin/tzin/auth` | JWT validation |\n| Optional auth | `@carlos-tzin/tzin/auth` | Non-strict JWT |\n| API key | `@carlos-tzin/tzin/auth` | Header-based auth |\n| JWT utils | `@carlos-tzin/tzin/auth` | sign/verify |\n\n### Jobs\n\n| Feature | Import | Description |\n|---|---|---|\n| Define jobs | `@carlos-tzin/tzin/jobs` | Background tasks |\n| Enqueue | `@carlos-tzin/tzin/jobs` | Job queue |\n| Retry | `@carlos-tzin/tzin/jobs` | Auto-retry on failure |\n\n### Logging\n\n| Feature | Import | Description |\n|---|---|---|\n| Logger | `@carlos-tzin/tzin/log` | Structured logging |\n| Child loggers | `@carlos-tzin/tzin/log` | Scoped context |\n| Pretty/JSON | `@carlos-tzin/tzin/log` | Configurable output |\n\n### Testing\n\n| Feature | Import | Description |\n|---|---|---|\n| Test client | `@carlos-tzin/tzin/test` | API testing |\n| Schema validation | `@carlos-tzin/tzin/test` | Type assertions |\n| Mock data | `@carlos-tzin/tzin/test` | Generate mocks |\n\n## Quick Start\n\n### 1. Scaffold\n\n```bash\nnpx create-tzin my-api\ncd my-api\n```\n\n### 2. Define a contract\n\n```ts\n// src/routes/users.ts\nimport { t, contract, impl } from '@carlos-tzin/tzin'\n\nexport const getUser = contract({\n  method: 'GET',\n  path: '/users/:id',\n  params: t.Object({ id: t.String() }),\n  responses: {\n    200: t.Object({ id: t.String(), name: t.String() }),\n    404: t.Object({ error: t.String() }),\n  },\n})\n\nexport const getUserRoute = impl(getUser, async ({ params }) => {\n  return { status: 200, body: { id: params.id, name: 'Ada' } }\n})\n```\n\n### 3. Create the app\n\n```ts\n// src/app.ts\nimport { createApp } from '@carlos-tzin/tzin'\nimport { getUserRoute } from './routes/users.js'\n\nexport const app = createApp([getUserRoute], {\n  openapi: true,\n  mcp: true,\n  meta: { title: 'My API', version: '1.0.0' },\n})\n```\n\n### 4. Run\n\n```bash\nnpm run dev    # tzin dev  -> dev server at http://localhost:3000\nnpm run build  # tzin build -> production build\n```\n\nThe `tzin` binary ships with the package, so these scripts work after `npm install`. Without\na local install, run it through npm exec:\n\n```bash\nnpx --package @carlos-tzin/tzin tzin dev\n```\n\n## CLI\n\n```bash\ntzin dev [--port N]                                # dev server with hot reload\ntzin build                                         # build for production\ntzin deploy --target node|workers [--pack] [--docker <tag> [--push]]  # deploy\ntzin generate route <name>                         # scaffold a route\ntzin generate middleware <name>                    # scaffold middleware\ntzin generate test <name>                          # scaffold a test\n```\n\n## Benchmarks\n\n100 endpoints with distinct schemas, checked by `tsc --extendedDiagnostics`:\n\n| N routes | tzin: types | Hono: types | tzin: instantiations | Hono: instantiations |\n|---|---|---|---|---|\n| 20 | 4,851 | 72,368 | 22,472 | 156,054 |\n| 100 | 15,779 | 111,952 | 93,128 | 240k |\n| 300 | 43,099 | 210,912 | 270k | 590k |\n\ntzin grows **strictly linearly** (~130 types/endpoint).\n\n### Runtime throughput\n\n| Framework | req/s | p99 |\n|---|---|---|\n| raw node:http (floor) | ~42k | 2–3ms |\n| hono | ~34–36k | 3ms |\n| tzin | ~30–31k | 6ms |\n| express | ~15k | 7ms |\n\n## Examples\n\n| Example | Runtime | What it shows |\n|---|---|---|\n| `examples/node-demo.ts` | Node | Minimal HTTP server with contracts |\n| `examples/bun-demo.ts` | Bun | Bun.serve with validation |\n| `examples/todo-api.ts` | Node | Full CRUD: auth middleware, DI, OpenAPI, MCP |\n| `examples/mcp-demo.ts` | Node | MCP server over stdio |\n| `examples/ws-demo.ts` | Bun | WebSocket channels with presence |\n| `examples/workers-quickstart/` | Workers | Copy-paste wrangler project: DO + channels + presence |\n| `examples/workers-quickstart.md` | Workers | Same project, explained file-by-file |\n\n## Design principles\n\n- **Contract-first, flat registry.** A route is data (`contract({...})`), not a link\n  in a builder chain. Inference cost stays O(1) per endpoint.\n- **JSON Schema native.** TypeBox schemas double as OpenAPI with zero conversion.\n- **Web Standards runtime.** `Request` in, `Response` out; adapters stay thin.\n- **Extractors over magic.** Handlers receive exactly what the contract declares.\n- **Errors are control flow.** Throw typed errors; the response union already knows.\n- **Light DI without ceremony.** `provide(key, value)` at app level seeds typed\n  singletons into every request's context — handlers just `ctx.require(db)`.\n\n## Development\n\n```sh\nnpm install\nnpm test          # vitest — runtime + end-to-end client + type assertions\nnpm run typecheck # strict tsc across src/test/bench fixtures\n```\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}