{"_id":"@jayalfredprufrock/handshake","_rev":"40-dfb3de1ddd6642ba45eef2d54d89fb13","name":"@jayalfredprufrock/handshake","dist-tags":{"latest":"2.3.0"},"versions":{"0.1.0":{"name":"@jayalfredprufrock/handshake","version":"0.1.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.1.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"7ceeaee3ced0b7d5cda4b09fd7f3200345fb001d","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.1.0.tgz","fileCount":37,"integrity":"sha512-mu5qIPCk3wLbGiV9gbpA7U9ENi5LOTpDXBVuVDIgeDWGppMCc1yJc7d9uu/DyL7iQI8wur9/yt5sOkx/oR8eAw==","signatures":[{"sig":"MEYCIQCOJgL3arXtQw8NqHZQRaYNFYcOhmoI/ZkHB6x5TQWLdwIhAKzZ//2JUpcPvmY4i2G5kjMDY6AIH4h0MZND31Mc2Wvu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106471},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":"./src/adapters/hono/index.ts","./client":"./src/client/index.ts","./server":"./src/server/index.ts","./contract":"./src/contract/index.ts","./package.json":"./package.json"},"gitHead":"7a695841df41a09815926c14bd26d84c3dff33a7","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev","prepare":"vp config"},"_npmUser":{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"},"repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"}},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.1.0_1775239701747_0.1393950490702669","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@jayalfredprufrock/handshake","version":"0.2.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.2.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"7b09a68625917438a3848cf4e2afca849c4fa4c8","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.2.0.tgz","fileCount":37,"integrity":"sha512-kse4y831cN8ZKPxW6ZPdtnDchzdWdR4mTu+as1zukzauWQqWk/W0rqM0gw+rcBrawC1Xrnc4KoayDojCBYCsVw==","signatures":[{"sig":"MEUCIQDJL936Q7km4TC104Q8YYEE6F3kWIY+gkBg+JkN3KzFVQIgPsliQc5ukvMrqZc8FUPC7vSme+6wkw+iRJxSpUR5KvQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":112281},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.2.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/5624db575f634f8fa31129e531f3c087/jayalfredprufrock-handshake-0.2.0.tgz","_integrity":"sha512-kse4y831cN8ZKPxW6ZPdtnDchzdWdR4mTu+as1zukzauWQqWk/W0rqM0gw+rcBrawC1Xrnc4KoayDojCBYCsVw==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.2.0_1776436242380_0.2482533499132582","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@jayalfredprufrock/handshake","version":"0.3.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.3.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"cb9d5f0e9b74ee26013b25a204899abbf6ed74dc","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.3.0.tgz","fileCount":37,"integrity":"sha512-pajMU/XTa0Flvsunvk9Ec5hUEgoN3hSR7k880/OVSmNpN9qGINxhpE0EvuQ7j0edP9H+zL4D40LSJu5cgKaBkQ==","signatures":[{"sig":"MEYCIQDCV402+deU1YvdlfGs/R+2Y1qDHAedEfMrq0/RbNjQaQIhAIG4LGUUnR+F219OCiWiuM+apX46AXUWBtASU2oGcanv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118189},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.3.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/0ecad2343fcf7cfb9763a601565ee8ef/jayalfredprufrock-handshake-0.3.0.tgz","_integrity":"sha512-pajMU/XTa0Flvsunvk9Ec5hUEgoN3hSR7k880/OVSmNpN9qGINxhpE0EvuQ7j0edP9H+zL4D40LSJu5cgKaBkQ==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.3.0_1776805058108_0.575992620583897","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@jayalfredprufrock/handshake","version":"0.4.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.4.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"2928023cad638a9dfb20ac715623341e2f5cc561","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.4.0.tgz","fileCount":37,"integrity":"sha512-8fdPIeiDytepe2eOtEO8NzO7thhJSTN7reAYQC9YrDqq03mZryrDo7GKQ9Mj8ecOi+PyhfAPFOV9HsgPz1oUEg==","signatures":[{"sig":"MEQCIH6xjLPiC/ME2T4CUQg6xArDM+N2BgvM3s8PLNpP5nu2AiA+cGF9/PtvEz5ZkypNwI6KF2R72g7mY0Y8mYcoF8PBNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133601},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.4.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/5ebbb7dec8fc975f34a4b133ef5b00e4/jayalfredprufrock-handshake-0.4.0.tgz","_integrity":"sha512-8fdPIeiDytepe2eOtEO8NzO7thhJSTN7reAYQC9YrDqq03mZryrDo7GKQ9Mj8ecOi+PyhfAPFOV9HsgPz1oUEg==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.4.0_1776871084232_0.9453767787916296","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@jayalfredprufrock/handshake","version":"0.5.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.5.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"ce5629a06641ef43a4e7ac974d519bf11e2ac2b8","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.5.0.tgz","fileCount":37,"integrity":"sha512-sCmUvuilifB88k3GJsRPjd5OqIQ1AM2dFkkTed3J8QXn0YzODO82uiXjVXN/LVIVelUiU5OHyA2r65Ne8i0qHw==","signatures":[{"sig":"MEUCIQCyYqKXGdp90/6hqctFYB0EbUMB5bCjWCCD8ZVf6oEcIQIgUzcifrtCVhfpM4qdQgClVXDa1d+pFVShHUZy1OTyKXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131695},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.5.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/ef67f7fad43640bbcf6fb2a97eae88de/jayalfredprufrock-handshake-0.5.0.tgz","_integrity":"sha512-sCmUvuilifB88k3GJsRPjd5OqIQ1AM2dFkkTed3J8QXn0YzODO82uiXjVXN/LVIVelUiU5OHyA2r65Ne8i0qHw==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.5.0_1776872012956_0.3015890249212798","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@jayalfredprufrock/handshake","version":"0.6.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.6.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"556c9f50be4bbbcefcf36924766abac8745c68ac","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.6.0.tgz","fileCount":37,"integrity":"sha512-+pcWXo/tM/MoeR5ODci9sq60hHXbOQRcjnEwXB+TaynB3gX2Dw7Y7m3EKhaH4QsfeekrV3X3sEDs3iNk8Mdiww==","signatures":[{"sig":"MEQCIDc3sH8JD3JrCceu3bQFz73FDijSkax94d8pqwj+yxY+AiBJuWtDwFW40JU1qookAuY5X0ihY2ZvsLgfh8i4z8DkFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141138},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.6.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/aef9934b1d4069d3141a27f9c67d3bb7/jayalfredprufrock-handshake-0.6.0.tgz","_integrity":"sha512-+pcWXo/tM/MoeR5ODci9sq60hHXbOQRcjnEwXB+TaynB3gX2Dw7Y7m3EKhaH4QsfeekrV3X3sEDs3iNk8Mdiww==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.6.0_1776874871408_0.21333635377581084","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@jayalfredprufrock/handshake","version":"0.6.1","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.6.1","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"5c913dfe0c32e3a3157f69b3c754b4efbbbbbe90","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.6.1.tgz","fileCount":37,"integrity":"sha512-UB/DbAcfs8UV8XjWH2YNJFeLMOvPTUqUdfcc2ziexFbw1F+kzqtiM7g0CrxFTlV+yXD9VyF/xzxRtEHOtPnmIg==","signatures":[{"sig":"MEUCIQDF+S2Lu5cjj8uiM0vhFHxVxG3l+HFVFtYhFIuLwT5ihQIgaPzkMjvfX8vpnu91X9Qq086Dn4y0cgXdgJbu7P720a4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":140256},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.6.1.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/8786f86f0631f6bc8214afa03025b8c0/jayalfredprufrock-handshake-0.6.1.tgz","_integrity":"sha512-UB/DbAcfs8UV8XjWH2YNJFeLMOvPTUqUdfcc2ziexFbw1F+kzqtiM7g0CrxFTlV+yXD9VyF/xzxRtEHOtPnmIg==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.6.1_1776878097699_0.22215788988021057","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@jayalfredprufrock/handshake","version":"0.6.2","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.6.2","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"10695b87232946b4c29c0ed6be28a0460952a23a","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.6.2.tgz","fileCount":38,"integrity":"sha512-Dvwo96O00acQGOOf4JTvTDiprTq2h+/CJvnaTd+PJjEhueOaSfa7O5lWFms6IAWKM2/TfTeVStV6WEAzHtokZg==","signatures":[{"sig":"MEUCIGyyCGKyks7p4dH2/vH0cF9CQRB7CRa7ee7HUc2c3+ZiAiEAkkGZ3wCwmclowJfPHYOYrFXeqbZC+Ns8UKNP5m4jpF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145512},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.6.2.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/3e6ce02a7b6c30d56e778cb3583049f8/jayalfredprufrock-handshake-0.6.2.tgz","_integrity":"sha512-Dvwo96O00acQGOOf4JTvTDiprTq2h+/CJvnaTd+PJjEhueOaSfa7O5lWFms6IAWKM2/TfTeVStV6WEAzHtokZg==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.6.2_1778096289882_0.9380691922020885","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@jayalfredprufrock/handshake","version":"0.7.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.7.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"54c4d76be839da0b1c3ac094a27130e0511f0ec7","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.7.0.tgz","fileCount":38,"integrity":"sha512-PXnDiETuZy8J2wZ2oYKn5DAI4s7aiK5NO8LmeXXgNOXrzNl2OoIIblCs+8fRHhZLz2ac7iqnLALM3drej5UyHA==","signatures":[{"sig":"MEUCIQCPv2nmiPUfBUfNKW+4YNhtjdRX6upAuOTWeJ3oqKmo0gIgKrn4m44auWXMgBicX9SxTaAASURBWezsBZZKSCvUq0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147910},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.7.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/928579489f70ddb195625444a1998631/jayalfredprufrock-handshake-0.7.0.tgz","_integrity":"sha512-PXnDiETuZy8J2wZ2oYKn5DAI4s7aiK5NO8LmeXXgNOXrzNl2OoIIblCs+8fRHhZLz2ac7iqnLALM3drej5UyHA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.7.0_1778624273711_0.121312521254342","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@jayalfredprufrock/handshake","version":"0.7.1","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.7.1","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"1004cfa08d7691fb5a2006d89393a9ad28fb6a9b","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.7.1.tgz","fileCount":38,"integrity":"sha512-pcZRXEuN39tAkwocpAmL6CULyYiKnk0Bfk+T2Ehc11hUU18VmwaSHVJ0YsojS3X35poso8tJemPv2G/Vi9GBYg==","signatures":[{"sig":"MEQCIGcjiBT6HpAcV01JKh8unoWAmSkYblCHjSObbMQaG23mAiBjMb6tcSNZ7mEN9f4SzAV0Kh92sRiCqRodYDCFnu2CeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149680},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.7.1.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/2368cb5b4c678e6d4c35548958a6e1ae/jayalfredprufrock-handshake-0.7.1.tgz","_integrity":"sha512-pcZRXEuN39tAkwocpAmL6CULyYiKnk0Bfk+T2Ehc11hUU18VmwaSHVJ0YsojS3X35poso8tJemPv2G/Vi9GBYg==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.7.1_1778624983099_0.23599167487643702","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@jayalfredprufrock/handshake","version":"0.8.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.8.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"13a5d4d9d6f36c16a062b7e1303ef3e378389bf3","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.8.0.tgz","fileCount":38,"integrity":"sha512-CSygFV/EMd7nsgqFdgpKkgMmGa6A4bvXDiZgj42B9dRGgvwX2xMRTTG/oKPjEM9ieZWEmcw8FczTWYF2c0tklQ==","signatures":[{"sig":"MEYCIQDIEQEK12OjpOb9COrfBqtXbgRKfu4bjp96sIG0Rj0GVgIhAIzdaX6u01r34/Uk+dNX8kNzeAVDTgwIvvG57bn5V5Gb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180811},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.8.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/4f23abc9732f6248911f9636c35897ba/jayalfredprufrock-handshake-0.8.0.tgz","_integrity":"sha512-CSygFV/EMd7nsgqFdgpKkgMmGa6A4bvXDiZgj42B9dRGgvwX2xMRTTG/oKPjEM9ieZWEmcw8FczTWYF2c0tklQ==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.8.0_1778697414776_0.6060901763498394","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@jayalfredprufrock/handshake","version":"0.8.1","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.8.1","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"0c7bda75d950ce3c0110162246ce59df25706aac","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.8.1.tgz","fileCount":38,"integrity":"sha512-0ogKUFW3szZb9C3q7zyMiJyn/WlYI9xsyShzdW6tVJipTiUNm/1UsLdNsLYCPWigKRxJjIahF1RFB4ZjMYG6FA==","signatures":[{"sig":"MEQCIEnw/K8XYDcI1FW0GNv/66l00bnUkCKQ0llzRYfync7BAiBtffWWFHg9NEIOL5DLvqg2TFVcuvY9EPNp2wx1KZg8+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":183958},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.8.1.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/15d7530bf478dbb5ba8266e13091479a/jayalfredprufrock-handshake-0.8.1.tgz","_integrity":"sha512-0ogKUFW3szZb9C3q7zyMiJyn/WlYI9xsyShzdW6tVJipTiUNm/1UsLdNsLYCPWigKRxJjIahF1RFB4ZjMYG6FA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.8.1_1778699021209_0.6529957257441426","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@jayalfredprufrock/handshake","version":"0.8.2","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.8.2","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"4dff2820e6ae2f774ca83d6ec64fd2ff359f20bb","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.8.2.tgz","fileCount":38,"integrity":"sha512-c8anl0q+p2WgMk8FI9oE/ItlnYVoN02B7PJzK5AR+fULgLE+EUGga8h+6Xg/gMCjXjeU8QlyjcaYjUYn9Q/xPA==","signatures":[{"sig":"MEQCIC+wBuk+Tfzw2rbqrXgL3BVvYQg2DSjtrDfKVySJM0xtAiBliCgr4PtwI0tPcS4echIA6pMcRqzPjUpkBMwWTIqTPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":184278},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.8.2.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/7f1b9539c60520d0b5262210b899864e/jayalfredprufrock-handshake-0.8.2.tgz","_integrity":"sha512-c8anl0q+p2WgMk8FI9oE/ItlnYVoN02B7PJzK5AR+fULgLE+EUGga8h+6Xg/gMCjXjeU8QlyjcaYjUYn9Q/xPA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.8.2_1778704256839_0.17279761437980778","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@jayalfredprufrock/handshake","version":"0.9.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.9.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"fddbbd8923c67a6dadcda3241c619e613ebd5899","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.9.0.tgz","fileCount":38,"integrity":"sha512-FhMn6zPl5hJgZOCOf1nbFhEd2j1QNczXoDzJUAA02AJTf/qTSlMhG57z1g97Zt50yxPovGksZ+Ud001dFdoACw==","signatures":[{"sig":"MEUCIGfA6VuUPACV2yHit0EJ5a8eR1hUelBFnNVSAn2S6Y/EAiEA1qO7Qjju6nO70yuvPlbG+/MnIW0IIOXFybeGnJ8ZAnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":198123},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.9.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/7a293f368f918b9c0e90f64a6bd82b39/jayalfredprufrock-handshake-0.9.0.tgz","_integrity":"sha512-FhMn6zPl5hJgZOCOf1nbFhEd2j1QNczXoDzJUAA02AJTf/qTSlMhG57z1g97Zt50yxPovGksZ+Ud001dFdoACw==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.9.0_1779299749304_0.11505086326629432","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@jayalfredprufrock/handshake","version":"0.10.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.10.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"98fdfb69ceff7c4d3188afff850cb0b7510ab2c0","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.10.0.tgz","fileCount":38,"integrity":"sha512-mnCPuAcsq64XfzhWoNPyx+zb6Zj6gil/g/MeMNtLjLjTs+wtHdY4pE3635UmwROKYp8kN/Osl4gK3Qyuf/KsQA==","signatures":[{"sig":"MEQCIESM3ugxCOHMU7uLuzrazBO4VmCF84HQxL+VQul53xMtAiBAgzHsRFg0CJ97+AMylrg33mGeAHXXBUcpX9+qL2Mmjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":201364},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.10.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/1e4c0810f16540e2733cc9061ea107b5/jayalfredprufrock-handshake-0.10.0.tgz","_integrity":"sha512-mnCPuAcsq64XfzhWoNPyx+zb6Zj6gil/g/MeMNtLjLjTs+wtHdY4pE3635UmwROKYp8kN/Osl4gK3Qyuf/KsQA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.10.0_1779983427500_0.4757526375465022","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@jayalfredprufrock/handshake","version":"0.11.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.11.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"87f0cec24c79f46bc7046df6ebb1d1c7a9c0e33b","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.11.0.tgz","fileCount":38,"integrity":"sha512-j2TAO3RXu71sdBlBgVtFfoeucn9RWNbvl9Dnh9xm12RZ4DIp2TtIuS9QHFAMk3wPibAbHs/Yvrjmb/sHn0o1bw==","signatures":[{"sig":"MEQCIAvUDzSudq+j2fARBAK5t7W20JBGYz88ZqJJ5U9C9Ry1AiAf/+eiJ57PNCrLFIFZGbxBbIbpgSMovTaLEHvhPqF+cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204490},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.11.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/a1a3adea3266057d23427006b2af7d44/jayalfredprufrock-handshake-0.11.0.tgz","_integrity":"sha512-j2TAO3RXu71sdBlBgVtFfoeucn9RWNbvl9Dnh9xm12RZ4DIp2TtIuS9QHFAMk3wPibAbHs/Yvrjmb/sHn0o1bw==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.11.0_1779987781229_0.7395946350332798","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@jayalfredprufrock/handshake","version":"0.11.1","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.11.1","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"628e0af83ecdd9694863dc99e870506db8a54e39","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.11.1.tgz","fileCount":38,"integrity":"sha512-UBrRrnID3bC+sprn726Ge4wOwZnShua42mYNsJBoZdH/FFqBcDH5qfF2W6HeyaK1Hir5zBXEvmky+wuJHidLtg==","signatures":[{"sig":"MEQCIC6rLfmh0TULXnq/L8jHqJ9ZRl9Eo96/lXq3dbMZYrNAAiAhcS1MljJonPPkZryVeSIeerzjaySPlOn5uofsArKOsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205454},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.11.1.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/f79a96ff912dd35b62cf3a89c3b6679b/jayalfredprufrock-handshake-0.11.1.tgz","_integrity":"sha512-UBrRrnID3bC+sprn726Ge4wOwZnShua42mYNsJBoZdH/FFqBcDH5qfF2W6HeyaK1Hir5zBXEvmky+wuJHidLtg==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.11.1_1779989364185_0.45770348894038015","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@jayalfredprufrock/handshake","version":"0.12.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.12.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"ba1ece605540d680638f2816720daeec97d8613f","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.12.0.tgz","fileCount":38,"integrity":"sha512-Yadq7qrOKvqFjfcv+B8SxvOabVx3iO2wlKR6J8k5ovzNg/A5yqFWrnmAGGCNOsgfgsJ/d+RDnAiQFCLy5OYjAA==","signatures":[{"sig":"MEQCIHdYFG/DVz7Giu/FYlvljyWRMxJ4wH/lVmnG4M9OGM4pAiARx/4/hTxt+hhzD4IIFndEDkZArkz2Qryx1Hx3J2V9KA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205629},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.12.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/239d471cbbedd75f863d138099d02993/jayalfredprufrock-handshake-0.12.0.tgz","_integrity":"sha512-Yadq7qrOKvqFjfcv+B8SxvOabVx3iO2wlKR6J8k5ovzNg/A5yqFWrnmAGGCNOsgfgsJ/d+RDnAiQFCLy5OYjAA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.12.0_1780001087444_0.16280410013150615","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@jayalfredprufrock/handshake","version":"0.12.1","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.12.1","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"2ac568b0485b951ef4df7cf17b4f209a02668cb8","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.12.1.tgz","fileCount":38,"integrity":"sha512-I8n6IP/pd/ZXVcRFR1W19UoZbIA+1PAHHQhFnMUdl+N9g/oUI446iyxRaiMez5lztm3dty7Ufl/qQSu6fTVmJg==","signatures":[{"sig":"MEUCIQDzmo+RgitACUZ3xWIHES1TrMZRdGyDK9XuQTAfGpbAfgIgRzbcGM0+Zanb2wf6KIjKgJ3d22ASmNIjd2apxeTGCw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208153},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.12.1.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/e3895ced7b77683d53972853076e69ed/jayalfredprufrock-handshake-0.12.1.tgz","_integrity":"sha512-I8n6IP/pd/ZXVcRFR1W19UoZbIA+1PAHHQhFnMUdl+N9g/oUI446iyxRaiMez5lztm3dty7Ufl/qQSu6fTVmJg==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.12.1_1780062777631_0.27359789557834313","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"@jayalfredprufrock/handshake","version":"0.12.2","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.12.2","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"6392728d308131710e964cd0944b2a98dc40f314","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.12.2.tgz","fileCount":38,"integrity":"sha512-hpgKejMwM6A+FqQ1IGoqPinSvDhXkrEgxTEsPLaaGjbpval+zBVP7gI7CSGAAhHD1g0P4cvJxdT811wp+npwUg==","signatures":[{"sig":"MEYCIQComA/akX4u97yZAMbIEKAYOsCmO+GcDUAAajsM2Npw6QIhAJ4KPKgkaK65L09bk9IM05MvqopfYkw3dl1DcoUlvpeI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.12.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208173},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.12.2.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/9c39e8eed78fd7aa2b06a818eb942e0d/jayalfredprufrock-handshake-0.12.2.tgz","_integrity":"sha512-hpgKejMwM6A+FqQ1IGoqPinSvDhXkrEgxTEsPLaaGjbpval+zBVP7gI7CSGAAhHD1g0P4cvJxdT811wp+npwUg==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.12.2_1780063721888_0.21385128178205304","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@jayalfredprufrock/handshake","version":"0.13.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.13.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"23ea6e1228c9910787e1790e023e5e2a2d87d96b","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.13.0.tgz","fileCount":38,"integrity":"sha512-z9s9ufHyimw5k/pj8q1O7O6dDiUEP5pz4mo4OAkOHyt6/dxRIh5OLuyy3LVV2zyPqtXkiZHVkPdqR4k+6TBTMA==","signatures":[{"sig":"MEUCIQCZMW2AXS5IybLKEH4lzatnjOmptDQHlSbtMzTOaiLVegIgY8VwVCgI+WWRuv0PsObpy5qsLV70F5cYF781OSuysQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":209405},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.13.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/0818d93ee844e3aab861a9e6c2301f16/jayalfredprufrock-handshake-0.13.0.tgz","_integrity":"sha512-z9s9ufHyimw5k/pj8q1O7O6dDiUEP5pz4mo4OAkOHyt6/dxRIh5OLuyy3LVV2zyPqtXkiZHVkPdqR4k+6TBTMA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.13.0_1780064459256_0.9700809080311323","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@jayalfredprufrock/handshake","version":"0.13.1","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.13.1","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"31a31cfbf29b1f33a4cbaf175585caef2bfa81a7","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.13.1.tgz","fileCount":38,"integrity":"sha512-3HRJimJyclNK9f2eZv80jGeEyDgUCeqSMZ9v8sFep2JS/ChqjEPMlJzGyXXLdzYOaeENhBfBl1Kdy6gtAgCK2A==","signatures":[{"sig":"MEUCICXS1pfPjVci2aE4I3uEl+/CYQfMB7Yk6kVvjsIegIytAiEAtYoHQPw/QhsfHRSypWwjg82N+OyXWFVXtASHfhEVx1w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":209721},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.13.1.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/b9a355bb6bd69c5cfaada2cbefa0b2e8/jayalfredprufrock-handshake-0.13.1.tgz","_integrity":"sha512-3HRJimJyclNK9f2eZv80jGeEyDgUCeqSMZ9v8sFep2JS/ChqjEPMlJzGyXXLdzYOaeENhBfBl1Kdy6gtAgCK2A==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.13.1_1780064979540_0.8619958487345378","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@jayalfredprufrock/handshake","version":"0.14.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@0.14.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"9957f1883ead4017dca51fe7fad8b7e3fff0c893","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-0.14.0.tgz","fileCount":48,"integrity":"sha512-Vee1GVCRGV09Pr4qa+wWsrJa9Kj5gKxq0sOwVAeDK6ufyYjhPf9o8GejCi/wZdkJo5zLX3bPEXkjJgHt3YrrLg==","signatures":[{"sig":"MEYCIQCagUHus1U8Sl+/YOp6Fa4XwBthq3bSOlnxu4YP2wiHtAIhAM9ECym4RuVORt9dO3Q14wH0wUCqKQvmUFGXii6GOTrf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243184},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-0.14.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/575ba6e8c21b4922420c965d35cf2375/jayalfredprufrock-handshake-0.14.0.tgz","_integrity":"sha512-Vee1GVCRGV09Pr4qa+wWsrJa9Kj5gKxq0sOwVAeDK6ufyYjhPf9o8GejCi/wZdkJo5zLX3bPEXkjJgHt3YrrLg==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_0.14.0_1781556804890_0.9128259084153885","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@jayalfredprufrock/handshake","version":"1.0.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.0.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"91e792606674d407c60a339117409e048f46242f","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.0.0.tgz","fileCount":48,"integrity":"sha512-NIVgsalVgQeavv2IajxaYs4R9/5PQapvq3PrwM9obEv3llqd5IOMBnxGuCqdyD5ZAL4f6lzWEyLAzIgqWg0qGA==","signatures":[{"sig":"MEUCIGNpMBxhmlZ8HGOYk36mWtxq0TklsBL2a7gPE5VsS7S/AiEA7Ou3vAhVk9QUQ/oqoe0+1Tn38nqMeRruP/QwcYaE9e8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":276153},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-1.0.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/793c36ab98df30b89c18e08c8f675716/jayalfredprufrock-handshake-1.0.0.tgz","_integrity":"sha512-NIVgsalVgQeavv2IajxaYs4R9/5PQapvq3PrwM9obEv3llqd5IOMBnxGuCqdyD5ZAL4f6lzWEyLAzIgqWg0qGA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.0.0_1782431252893_0.1412022380474347","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@jayalfredprufrock/handshake","version":"1.0.1","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.0.1","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"8bb16f487fd9d1ce114a239c22ef208d0ec1725d","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.0.1.tgz","fileCount":48,"integrity":"sha512-mosM/lMCPfahtAmXhMCXoh4lRo3fCYl+hhOn+7n1Klv5eIyiKIyCnAGVUyNHpmWb/cNFDAvRx5qBWi8vd9UwHw==","signatures":[{"sig":"MEUCIBuRA0Jv1PkObiNhxLx6GnPPxE/vpF0c5aURoDC5PEpnAiEArB0TDS9Pn41UFalPGOI2rYORlowNTGOB+cbpSrk3q6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":298660},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-1.0.1.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/dab777dfcb23d0f0c615544f8f92ee3c/jayalfredprufrock-handshake-1.0.1.tgz","_integrity":"sha512-mosM/lMCPfahtAmXhMCXoh4lRo3fCYl+hhOn+7n1Klv5eIyiKIyCnAGVUyNHpmWb/cNFDAvRx5qBWi8vd9UwHw==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.0.1_1782487637116_0.7699489180182444","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@jayalfredprufrock/handshake","version":"1.0.2","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.0.2","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"e7e949162b39793aa088f486041f5081c047fd0f","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.0.2.tgz","fileCount":48,"integrity":"sha512-wQWQx2QpHq7l5OzniphxecQAikMJqPGJp5GW8adi67N+za5U29TAsLtRx/sQ28OL0gOkUg3ZhoqfQOCNAPWhZg==","signatures":[{"sig":"MEUCIAQj5eQ2cBRoovDST2juex+tAhn7PO7BobIYhKrABtOiAiEAogWc0lvCFaT3+euJHI5RW9luDcxPYSQdJN8H2JuuQiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":313675},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-1.0.2.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/fff618b75c5d7af3e94627cb255625d1/jayalfredprufrock-handshake-1.0.2.tgz","_integrity":"sha512-wQWQx2QpHq7l5OzniphxecQAikMJqPGJp5GW8adi67N+za5U29TAsLtRx/sQ28OL0gOkUg3ZhoqfQOCNAPWhZg==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.0.2_1782496094984_0.9889114819414089","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@jayalfredprufrock/handshake","version":"1.1.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.1.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"e1304e925a2ef70146c95de0d8328f1a23a7b3ed","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.1.0.tgz","fileCount":56,"integrity":"sha512-RdZEe8+m5xjW1Y71VV9Eq+n9OknAHRULHeTz5uYJCNQyadMeRzJhlZ+O3dJvvmzO88JdTCDNgwrgSbu6ou1UVw==","signatures":[{"sig":"MEUCIBF8U9eXQxulRwwhvvS0dgqOFmLd2kmhWVA4EAovQJwmAiEA7pzQNgEdGkZJ3F1MW9sZEIsjTT24Wmg2SBxZiDmQlc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":378529},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-1.1.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/842c885abbf0a0249525bcfc0eed9330/jayalfredprufrock-handshake-1.1.0.tgz","_integrity":"sha512-RdZEe8+m5xjW1Y71VV9Eq+n9OknAHRULHeTz5uYJCNQyadMeRzJhlZ+O3dJvvmzO88JdTCDNgwrgSbu6ou1UVw==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.1.0_1782509885526_0.0801696620725818","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@jayalfredprufrock/handshake","version":"1.2.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.2.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"0187a948be20063e96bc78a8528d52be6b6645a0","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.2.0.tgz","fileCount":56,"integrity":"sha512-heyovidTRVbRmnbuAfpBudMqKFoKd7qnWwdMLgL6Mau331CHzgl1/PFJiRFH7LL5nc8D2Z1rEatO8WKD7nqO6A==","signatures":[{"sig":"MEYCIQCci6zd1JMaxMgaW4pyCFsETrExgpZaKfFHD7k/EIgRGQIhANTDTlveQGqRmN29pobJ3QD9uBdoVVeoL2AbQbi5Wc2d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382860},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-1.2.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/fe2ab92b9c5f69d96da135f6c2a5b4da/jayalfredprufrock-handshake-1.2.0.tgz","_integrity":"sha512-heyovidTRVbRmnbuAfpBudMqKFoKd7qnWwdMLgL6Mau331CHzgl1/PFJiRFH7LL5nc8D2Z1rEatO8WKD7nqO6A==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.2.0_1782521142705_0.7822310346658641","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@jayalfredprufrock/handshake","version":"1.3.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.3.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"434c406cf66738f403670ee27ef1b2e89912b54b","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.3.0.tgz","fileCount":56,"integrity":"sha512-/a6NqfZQhUDzXUsnWguEsqDzV1CwPPZPHxqzr7GgK040USm4xF/VGsTucuxKozvw5ys3wEuzE5X1g12feb8nHQ==","signatures":[{"sig":"MEYCIQDplPWwdG8zMTuBBwKMSZG0MzbQ/JGE+oyzJFiUHB1QhAIhAPPuhVqI+tBd78Vhp1ZUsloAyC9kpyJXNuPZZeIJM7K6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":399934},"main":"./dist/index.cjs","type":"module","_from":"file:jayalfredprufrock-handshake-1.3.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/14c7ccdd9db296988703b7d4c7ab6104/jayalfredprufrock-handshake-1.3.0.tgz","_integrity":"sha512-/a6NqfZQhUDzXUsnWguEsqDzV1CwPPZPHxqzr7GgK040USm4xF/VGsTucuxKozvw5ys3wEuzE5X1g12feb8nHQ==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","typebox":"^1.1.13"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.3.0_1782525611035_0.24726737338488536","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@jayalfredprufrock/handshake","version":"1.4.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.4.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"9bc3d36cdf04c19d2e35d5448445134aa3bd9f1c","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.4.0.tgz","fileCount":66,"integrity":"sha512-stNzyaDp9rFGpVebXmTeLni3yFFOXdS/9MkE5htm5WMlMbr09Hlqc4ah8e0JJfMcGwFsJjC4YkHLbpiXPpgkoA==","signatures":[{"sig":"MEQCIH8euLjJ21dSwHRqZ1lZ5xlqL8CQXuFo8y0Xp+qjBAF2AiBKhV9CW0HVUk0fh8dhFMmHapAxF6hsOH+vplAdtlFrRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":488029},"type":"module","_from":"file:jayalfredprufrock-handshake-1.4.0.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/e65f9ea430b7f543a86b8438e6ba3594/jayalfredprufrock-handshake-1.4.0.tgz","_integrity":"sha512-stNzyaDp9rFGpVebXmTeLni3yFFOXdS/9MkE5htm5WMlMbr09Hlqc4ah8e0JJfMcGwFsJjC4YkHLbpiXPpgkoA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"^0.1.14","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.4.0_1782824637878_0.39071256192758796","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@jayalfredprufrock/handshake","version":"1.5.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.5.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"b8cbebb60afb22f0c8a1b5f93607f85f923eb7ed","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.5.0.tgz","fileCount":66,"integrity":"sha512-6l38jAjnzHfh37CrINw/370jgmQh2dXUrzTun1A78T/EkwqbHGYetOkFUDXeximwJsrSQg9uGtL+MDB+yeCp+w==","signatures":[{"sig":"MEUCIFEjbB7M7yl/HqYTysJKW8R3cEuqLIbe0haHc4DSDukAAiEA1HtZuEOleWDitkBnvD2ZatACYA4AmWBLzHw5//7WxeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505387},"type":"module","_from":"file:jayalfredprufrock-handshake-1.5.0.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/faf23ec25c22ff667c77e20a3a8b5dcc/jayalfredprufrock-handshake-1.5.0.tgz","_integrity":"sha512-6l38jAjnzHfh37CrINw/370jgmQh2dXUrzTun1A78T/EkwqbHGYetOkFUDXeximwJsrSQg9uGtL+MDB+yeCp+w==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"0.2.1","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.5.0_1783019693296_0.8550295875184","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@jayalfredprufrock/handshake","version":"1.6.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.6.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"81dd25d59d1464c0a7311e83da67add155647d74","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.6.0.tgz","fileCount":66,"integrity":"sha512-vflOI5CVFMV3voW9I76aKsiYvkeg3+WOOyeKgrJJP1dx0UX8O6DPzrV26i/XZL0PFVVFRPmPF8hsntEpB74+WA==","signatures":[{"sig":"MEYCIQC747CshsHiSVd6pyD3GWlfdFX+yyCJBCdZ0l7lLEdrNAIhALVBZd1MBq21xB+m6Lm+PitN/zODp/CYJHg7/B392h0a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":511573},"type":"module","_from":"file:jayalfredprufrock-handshake-1.6.0.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/cca0a2022132268407b5141b70a6445c/jayalfredprufrock-handshake-1.6.0.tgz","_integrity":"sha512-vflOI5CVFMV3voW9I76aKsiYvkeg3+WOOyeKgrJJP1dx0UX8O6DPzrV26i/XZL0PFVVFRPmPF8hsntEpB74+WA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"0.2.1","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.6.0_1783025939458_0.76983052286464","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@jayalfredprufrock/handshake","version":"1.6.1","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@1.6.1","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"d88a551fb63ca6ee8bf7beb0bd20ede9f6318bf0","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-1.6.1.tgz","fileCount":66,"integrity":"sha512-uOJggV+0muszQwxGBmoEzWIoUYuT13l5ef2ktkywnmMxJ7nKT/KbyQ2a8DagKSWMeauEzcoDr22jlx2IbAf45w==","signatures":[{"sig":"MEYCIQDJ6pPbp77kgiSY+yyIO6aVMwT8laPa4pPjZj5W9xcYawIhAKgkf/m6KXANj6C3PubPptaONaTt6SFKoclu/7pmjRhi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":514709},"type":"module","_from":"file:jayalfredprufrock-handshake-1.6.1.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/a6caa8aeb24d832a28554ea1df6a785e/jayalfredprufrock-handshake-1.6.1.tgz","_integrity":"sha512-uOJggV+0muszQwxGBmoEzWIoUYuT13l5ef2ktkywnmMxJ7nKT/KbyQ2a8DagKSWMeauEzcoDr22jlx2IbAf45w==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"0.2.1","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_1.6.1_1783183207016_0.9738239107859594","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@jayalfredprufrock/handshake","version":"2.0.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@2.0.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"3bac2e43584422d9eb6595b57aa00cfc3a76aa97","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-2.0.0.tgz","fileCount":66,"integrity":"sha512-Yd2nOcmuV9w53g5AFNHtZCmoYXFXD6+BQaPkCJDJXKHqPPm8rK7OjEpi/cnpG9SGXKszguoejiv7jME3rwFNSA==","signatures":[{"sig":"MEYCIQCPip/2A3lmaZHxXJbs5Up2LlX3ngEfJuAPKotnw546PQIhAIeY6Pw31A096Z6/0BUy9WxdqhP1GoyNYUIb+NzsiEFx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":535448},"type":"module","_from":"file:jayalfredprufrock-handshake-2.0.0.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/a497d03f938205c5aec892d6c883d34a/jayalfredprufrock-handshake-2.0.0.tgz","_integrity":"sha512-Yd2nOcmuV9w53g5AFNHtZCmoYXFXD6+BQaPkCJDJXKHqPPm8rK7OjEpi/cnpG9SGXKszguoejiv7jME3rwFNSA==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"0.2.1","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_2.0.0_1783371570864_0.1564797707771579","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@jayalfredprufrock/handshake","version":"2.0.1","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@2.0.1","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"a31e16f1946396f9ce4292c283d606d516a6ec92","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-2.0.1.tgz","fileCount":66,"integrity":"sha512-hbUt79K1KPiNyXuEyqgi2aEG+GwSgzshQD1jYvzkjrXOk9qWo/LNtUwyP4n39iiAZ7MoCYzsLYBMxnUap7zdDQ==","signatures":[{"sig":"MEQCIE+mu6xeX6575VIOHwiPmjb4kLD75J+D5r8RMh4vJ2gxAiAH+3IiA8/TERxxCBd2i0XxVHkKxLbPTmdz0L73eR0kig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":539154},"type":"module","_from":"file:jayalfredprufrock-handshake-2.0.1.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/d528838240e8443c1290ec1e43f87e45/jayalfredprufrock-handshake-2.0.1.tgz","_integrity":"sha512-hbUt79K1KPiNyXuEyqgi2aEG+GwSgzshQD1jYvzkjrXOk9qWo/LNtUwyP4n39iiAZ7MoCYzsLYBMxnUap7zdDQ==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"0.2.1","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_2.0.1_1783626725260_0.22864738239403115","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@jayalfredprufrock/handshake","version":"2.0.2","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@2.0.2","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"748c4ea0a615783f3b1bb2559ec95f3e8f5e5d70","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-2.0.2.tgz","fileCount":66,"integrity":"sha512-qZM2oghVRmBOof3TpkTzPzCAlysnu+we14rug+2AQPmyM2yN0mQIjWQkTFT2i0Qkw0Ie+tKw5NRPZximJM2N8A==","signatures":[{"sig":"MEQCICYOe4lnPya44RwVeSQSqVnvBxYW/umaA0HjHFY1hPoTAiAJnMjqzGVOM9i8sdNSh7c+bSOLGHPlDITAFHq64eQSNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":542614},"type":"module","_from":"file:jayalfredprufrock-handshake-2.0.2.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/bc1f924cba89fbc37f38049c4d9723ca/jayalfredprufrock-handshake-2.0.2.tgz","_integrity":"sha512-qZM2oghVRmBOof3TpkTzPzCAlysnu+we14rug+2AQPmyM2yN0mQIjWQkTFT2i0Qkw0Ie+tKw5NRPZximJM2N8A==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"0.2.1","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_2.0.2_1784152951397_0.663043418979615","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@jayalfredprufrock/handshake","version":"2.0.3","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@2.0.3","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"0d17781cb9f184c388dbd5ad275f39d1398ebfce","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-2.0.3.tgz","fileCount":66,"integrity":"sha512-ANO/UCc0u06nGJ6dz6InSDIMLyLGyxXvswC4WNRV9V5sTYG4xXAd5splonyBmY8MM5imeX0SU1eO9HQAGYSwXQ==","signatures":[{"sig":"MEUCIG+jroJBUqpIcScQConk0c6WnB4cd2nLf9dKqfnLtCfbAiEAl9G4QOJVUzH/V1u/wW/f1na7Bl4kTpcYijRVtBFOYSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":546532},"type":"module","_from":"file:jayalfredprufrock-handshake-2.0.3.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/0f5c7e5c0ae68e79ebf2093d5839d194/jayalfredprufrock-handshake-2.0.3.tgz","_integrity":"sha512-ANO/UCc0u06nGJ6dz6InSDIMLyLGyxXvswC4WNRV9V5sTYG4xXAd5splonyBmY8MM5imeX0SU1eO9HQAGYSwXQ==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"0.2.1","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_2.0.3_1784159106232_0.14850036231835784","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@jayalfredprufrock/handshake","version":"2.1.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@2.1.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"387418f245ff9015b443480c3920c3f54e3e42a5","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-2.1.0.tgz","fileCount":70,"integrity":"sha512-UcQL94Srk+ox7K/6b5OhWZJ8cEMpTVH56Afm9DcSAu5kr0f+E7M2aKx7Ckl0MOcWmfpMTxa70DGLnqQ/97KjVw==","signatures":[{"sig":"MEYCIQDK3utiQ3+XBdwZrj9K08U8i06atWj3u5ZQIrWEugo2wQIhALw2pCZZf+Aje9Q24HI0xMiHOj3j0/BchPq1Cfew2Vtb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":584375},"type":"module","_from":"file:jayalfredprufrock-handshake-2.1.0.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/00e6ed552fc6116565f71e860928c4fb/jayalfredprufrock-handshake-2.1.0.tgz","_integrity":"sha512-UcQL94Srk+ox7K/6b5OhWZJ8cEMpTVH56Afm9DcSAu5kr0f+E7M2aKx7Ckl0MOcWmfpMTxa70DGLnqQ/97KjVw==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"0.2.1","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_2.1.0_1786109674777_0.38956875283981973","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@jayalfredprufrock/handshake","version":"2.2.0","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","_id":"@jayalfredprufrock/handshake@2.2.0","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"dist":{"shasum":"65d6c159d8ec19632869a66ad15fdfa7d3ec27b8","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-2.2.0.tgz","fileCount":70,"integrity":"sha512-PLlBiGAO6xP5KqsF1nuwu6XT/d3geMqOer7OXrzb5n/yqcVPfGPHXS1bcdjMU7AjoTxwH3JWQHjeLktA10JcRQ==","signatures":[{"sig":"MEYCIQD2iBf9u+d3Kv5HsW+7byyVCSmd5NMSAWpeXhZo+So6JQIhAPo/Y2mxeNgf1kc/QYttuRmB0NIq9Fzhd4ZPFWPMAq2e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":593905},"type":"module","_from":"file:jayalfredprufrock-handshake-2.2.0.tgz","exports":{"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./package.json":"./package.json"},"release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"vp run -r dev"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"_resolved":"/tmp/c143afa6f85da57eca29a6c4d16f0e79/jayalfredprufrock-handshake-2.2.0.tgz","_integrity":"sha512-PLlBiGAO6xP5KqsF1nuwu6XT/d3geMqOer7OXrzb5n/yqcVPfGPHXS1bcdjMU7AjoTxwH3JWQHjeLktA10JcRQ==","repository":{"url":"git+https://github.com/jayalfredprufrock/handshake.git","type":"git"},"_npmVersion":"11.11.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.9","rxjs":"^7.8.2","tslib":"^2.8.1","vite-plus":"0.2.1","typescript":"^6.0.2","@types/node":"^24.12.0","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@nestjs/testing":"^11.1.27","@tsconfig/node24":"^24.0.4","reflect-metadata":"^0.2.2","semantic-release":"^25.0.3","@semantic-release/exec":"^7.1.0","@nestjs/platform-express":"^11.1.27","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1"},"peerDependencies":{"hono":"^4.12.9","rxjs":"^7.8","typebox":"^1.1.13","@nestjs/core":"^10 || ^11","@nestjs/common":"^10 || ^11","reflect-metadata":"^0.1.13 || ^0.2"},"peerDependenciesMeta":{"hono":{"optional":true},"rxjs":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/handshake_2.2.0_1787166254663_0.3034797639268447","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@jayalfredprufrock/handshake","version":"2.3.0","description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","homepage":"https://github.com/jayalfredprufrock/handshake#readme","bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"license":"MIT","author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/jayalfredprufrock/handshake.git"},"type":"module","sideEffects":false,"exports":{"./client":{"import":"./dist/client.mjs","require":"./dist/client.cjs"},"./contract":{"import":"./dist/contract.mjs","require":"./dist/contract.cjs"},"./hono":{"import":"./dist/hono.mjs","require":"./dist/hono.cjs"},"./nestjs":{"import":"./dist/nestjs.mjs","require":"./dist/nestjs.cjs"},"./openapi":{"import":"./dist/openapi.mjs","require":"./dist/openapi.cjs"},"./server":{"import":"./dist/server.mjs","require":"./dist/server.cjs"},"./typebox":{"import":"./dist/typebox.mjs","require":"./dist/typebox.cjs"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"dependencies":{"openapi-types":"^12.1.3"},"devDependencies":{"@nestjs/common":"^11.1.27","@nestjs/core":"^11.1.27","@nestjs/platform-express":"^11.1.27","@nestjs/testing":"^11.1.27","@semantic-release/exec":"^7.1.0","@tsconfig/node24":"^24.0.4","@types/node":"^24.12.0","@typescript/native-preview":"7.0.0-dev.20260328.1","conventional-changelog-conventionalcommits":"^9.3.1","hono":"^4.12.9","reflect-metadata":"^0.2.2","rxjs":"^7.8.2","semantic-release":"^25.0.3","tslib":"^2.8.1","typescript":"^6.0.2","vite-plus":"0.2.1"},"peerDependencies":{"@nestjs/common":"^10 || ^11","@nestjs/core":"^10 || ^11","hono":"^4.12.9","reflect-metadata":"^0.1.13 || ^0.2","rxjs":"^7.8","typebox":"^1.1.13"},"peerDependenciesMeta":{"@nestjs/common":{"optional":true},"@nestjs/core":{"optional":true},"hono":{"optional":true},"reflect-metadata":{"optional":true},"rxjs":{"optional":true}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],["@semantic-release/exec",{"prepareCmd":"pnpm version ${nextRelease.version} --no-git-tag-version","publishCmd":"pnpm publish --no-git-checks"}],"@semantic-release/github"]},"scripts":{"dev":"vp run -r dev"},"_id":"@jayalfredprufrock/handshake@2.3.0","_integrity":"sha512-XaxOsSblHR+iyzg49zpfx0L05n/wh6Eak5/LfhMcPpwN6uh34XiynQNG+tee6A7XfWwXd5PYpix205rvCpCp0A==","_resolved":"/tmp/cca23ec371cfe8fb72123bc827614996/jayalfredprufrock-handshake-2.3.0.tgz","_from":"file:jayalfredprufrock-handshake-2.3.0.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-XaxOsSblHR+iyzg49zpfx0L05n/wh6Eak5/LfhMcPpwN6uh34XiynQNG+tee6A7XfWwXd5PYpix205rvCpCp0A==","shasum":"30e10fd15278dacdf0b594f43a7f8d3491ba1420","tarball":"https://registry.npmjs.org/@jayalfredprufrock/handshake/-/handshake-2.3.0.tgz","fileCount":70,"unpackedSize":611934,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jayalfredprufrock%2fhandshake@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBtwPI2tYvNmg4wCgv6lNm5KOYLDmNIdAuSmLCprivvRAiEA50ARqfIlMw8pEahWvacYNwH8J+KbgEpxhZ4D5BHofLo="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98fe36df-34e4-4328-9591-6be1097338bd"}},"directories":{},"maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/handshake_2.3.0_1789581877710_0.012828070671196512"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-03T18:08:21.625Z","modified":"2026-09-16T18:04:38.157Z","0.1.0":"2026-04-03T18:08:21.904Z","0.2.0":"2026-04-17T14:30:42.521Z","0.3.0":"2026-04-21T20:57:38.260Z","0.4.0":"2026-04-22T15:18:04.383Z","0.5.0":"2026-04-22T15:33:33.121Z","0.6.0":"2026-04-22T16:21:11.555Z","0.6.1":"2026-04-22T17:14:57.866Z","0.6.2":"2026-05-06T19:38:10.015Z","0.7.0":"2026-05-12T22:17:53.857Z","0.7.1":"2026-05-12T22:29:43.239Z","0.8.0":"2026-05-13T18:36:54.946Z","0.8.1":"2026-05-13T19:03:41.433Z","0.8.2":"2026-05-13T20:30:57.003Z","0.9.0":"2026-05-20T17:55:49.447Z","0.10.0":"2026-05-28T15:50:27.654Z","0.11.0":"2026-05-28T17:03:01.368Z","0.11.1":"2026-05-28T17:29:24.340Z","0.12.0":"2026-05-28T20:44:47.590Z","0.12.1":"2026-05-29T13:52:57.779Z","0.12.2":"2026-05-29T14:08:42.026Z","0.13.0":"2026-05-29T14:20:59.414Z","0.13.1":"2026-05-29T14:29:39.723Z","0.14.0":"2026-06-15T20:53:25.026Z","1.0.0":"2026-06-25T23:47:33.017Z","1.0.1":"2026-06-26T15:27:17.262Z","1.0.2":"2026-06-26T17:48:15.121Z","1.1.0":"2026-06-26T21:38:05.676Z","1.2.0":"2026-06-27T00:45:42.841Z","1.3.0":"2026-06-27T02:00:11.167Z","1.4.0":"2026-06-30T13:03:58.027Z","1.5.0":"2026-07-02T19:14:53.473Z","1.6.0":"2026-07-02T20:58:59.614Z","1.6.1":"2026-07-04T16:40:07.157Z","2.0.0":"2026-07-06T20:59:31.068Z","2.0.1":"2026-07-09T19:52:05.548Z","2.0.2":"2026-07-15T22:02:31.549Z","2.0.3":"2026-07-15T23:45:06.423Z","2.1.0":"2026-08-07T13:34:34.946Z","2.2.0":"2026-08-19T19:04:14.821Z","2.3.0":"2026-09-16T18:04:37.861Z"},"bugs":{"url":"https://github.com/jayalfredprufrock/handshake/issues"},"author":{"name":"Andrew Smiley","email":"jayalfredprufrock@gmail.com"},"license":"MIT","homepage":"https://github.com/jayalfredprufrock/handshake#readme","repository":{"type":"git","url":"git+https://github.com/jayalfredprufrock/handshake.git"},"description":"Describe your backend API as a contract and get a fully-typed http client without a compile step.","maintainers":[{"name":"jayalfredprufrock","email":"jayalfredprufrock@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"handshake-logo.png\" alt=\"Handshake\" width=\"200\" />\n</p>\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@jayalfredprufrock/handshake\"><img src=\"https://img.shields.io/npm/v/@jayalfredprufrock/handshake.svg\" alt=\"npm version\" /></a>\n  <a href=\"https://github.com/jayalfredprufrock/handshake/blob/main/LICENSE\"><img src=\"https://img.shields.io/npm/l/@jayalfredprufrock/handshake.svg\" alt=\"license\" /></a>\n</p>\n\nTired of managing API schemas in multiple places? With handshake, you define each resource once using [TypeBox](https://github.com/sinclairzx81/typebox) schemas and compose those contracts into a single api. Server adapters consume that api, automatically providing strongly-typed and validated request and response objects. Consumers get a fully-typed HTTP client — no code generation, no compile step.\n\n## Installation\n\n```sh\nnpm install @jayalfredprufrock/handshake typebox\n```\n\nHono is an optional peer dependency — install it if you're using the server adapter:\n\n```sh\nnpm install hono\n```\n\n## Quick Start\n\n### 1. Define a Contract\n\nA contract describes a group of related endpoints — each with its HTTP method, path, request shapes (`params`, `query`, `body`, `headers`), and `response`. Compose one or more contracts into a single **api** with `createApi`; the api is the unit the server adapters, client, and OpenAPI generator all consume.\n\n```ts\n// contract.ts\nimport { createApi, createContract } from \"@jayalfredprufrock/handshake/contract\";\nimport { Type } from \"typebox\";\n\n// A resource contract — endpoint paths are relative to the group's base path\nexport const users = createContract(\"/users\", {\n  getUser: {\n    method: \"GET\",\n    path: \"/:id\",\n    params: Type.Object({ id: Type.String() }),\n    response: Type.Object({ id: Type.String(), name: Type.String(), email: Type.String() }),\n  },\n  listUsers: {\n    method: \"GET\",\n    path: \"/\",\n    response: Type.Array(Type.Object({ id: Type.String(), name: Type.String() })),\n  },\n  createUser: {\n    method: \"POST\",\n    path: \"/\",\n    body: Type.Object({ name: Type.String(), email: Type.String() }),\n    response: Type.Object({ id: Type.String(), name: Type.String(), email: Type.String() }),\n    responseCode: 201, // success status (defaults to 200)\n  },\n});\n\n// Compose the api — routes resolve to /api/users, /api/users/:id, etc.\nexport const api = createApi(\"/api\", { users });\n```\n\nThe first argument to both `createContract` and `createApi` is an optional base path that prefixes the paths beneath it (defaults to `\"/\"`). Pass only the endpoints/groups object to omit it.\n\n### 2. Create a Server\n\nUse `buildRoutes(api, \"group\", handlers)` to bind handlers to a named group, then assemble the Hono app with `createHonoApp`.\n\n```ts\n// server.ts\nimport { serve } from \"@hono/node-server\";\nimport { buildRoutes, createHonoApp } from \"@jayalfredprufrock/handshake/hono\";\nimport { api } from \"./contract\";\n\nconst users = new Map<string, { id: string; name: string; email: string }>();\nlet nextId = 1;\n\nconst routes = buildRoutes(api, \"users\", {\n  getUser: ({ params }) => {\n    const user = users.get(params.id);\n    if (!user) throw api.error(\"NOT_FOUND\", \"user not found\"); // see \"Errors\" below\n    return user;\n  },\n  listUsers: () => [...users.values()],\n  createUser: ({ body }) => {\n    const id = String(nextId++);\n    const user = { id, ...body };\n    users.set(id, user);\n    return user;\n  },\n});\n\nconst app = createHonoApp({ routes: [routes] });\n\nserve({ fetch: app.fetch, port: 3000 });\n```\n\nHandler inputs are fully typed — `params`, `query`, `body`, and `headers` are inferred from the api. Handlers return plain objects (serialized as JSON) or a raw `Response` for full control. The named form implements the whole group, so `buildRoutes` throws immediately if any handler is missing.\n\nThe adapter validates every request automatically:\n\n- **Path params, query params, and headers** are coerced to the schema (e.g. `\"42\"` → `42`).\n- **Request bodies** are validated and reject missing or extra properties.\n- **Responses** are validated by default — unknown properties are stripped, and a mismatch is treated as a server bug (see [Error handling](#error-handling)). Disable per group or per handler:\n\n```ts\nconst routes = buildRoutes(api, \"users\", handlers, { validateResponse: false });\n\n// or per handler via the closure form\nconst routes = buildRoutes(api, \"users\", (group) => {\n  group.implement(\"listUsers\", () => [...users.values()], { validateResponse: false });\n});\n```\n\nRoutes are sorted by path specificity before registration — literal segments take precedence over `:param` segments, so `/users/me` resolves to the literal handler regardless of definition order.\n\n### 3. Create a Client\n\nThe client is generated directly from the api — no code generation. Each endpoint becomes a typed method.\n\n```ts\n// client.ts\nimport { createFetchClient } from \"@jayalfredprufrock/handshake/client\";\nimport { api } from \"./contract\";\n\nconst client = createFetchClient(api, { baseUrl: \"http://localhost:3000\" });\n\nconst users = await client.listUsers();\nconst created = await client.createUser({ name: \"Alice\", email: \"alice@example.com\" });\nconst user = await client.getUser({ id: created.id });\n```\n\n`fetch` defaults to `globalThis.fetch`; pass your own (Node fetch, a mock, etc.) via `fetch`. The client serializes JSON bodies, builds the URL, and parses the response for you.\n\nMethod signatures adapt to the endpoint: endpoints with path params take a params object first, endpoints with a body take it next, and an `options` object (`query`, `headers`, `request`) comes last. The `options` argument — and each of its fields — is **required only when the corresponding schema has a required property**, and optional otherwise.\n\n## Errors\n\nErrors are declared as a **code-keyed map**, where each `code` maps to its HTTP `status` and an optional `details` schema. Declare them on a contract (shown here) or api-wide in `createApi`'s options:\n\n```ts\nimport { Type } from \"typebox\";\nimport { createApi, createContract } from \"@jayalfredprufrock/handshake/contract\";\n\nexport const accounts = createContract(\n  \"/accounts\",\n  {\n    getUser: {\n      method: \"GET\",\n      path: \"/:id\",\n      params: Type.Object({ id: Type.String() }),\n      response: Type.Object({ id: Type.String() }),\n    },\n    transfer: { method: \"POST\", path: \"/transfer\", body: Transfer, response: Receipt },\n  },\n  {\n    errors: {\n      UNAUTHORIZED: { status: 401 },\n      NOT_FOUND: { status: 404 },\n      CONFLICT: { status: 409, details: Type.Object({ conflictingId: Type.String() }) },\n    },\n  },\n);\n\nexport const api = createApi(\"/api\", { accounts });\n```\n\nErrors are **api-wide** — once composed, the api merges every group's errors (plus any declared on the api itself), and any endpoint may return any of them. Codes are unique by construction (map keys).\n\n### Raising errors (server)\n\nThe api exposes a typed `error` factory (each contract exposes the same for its own codes). The status comes from the code's definition; the second argument is the `Error.message`; the third is the code's `details` payload (required only when the code declares a `details` schema). Then just `throw` the result:\n\n```ts\ngetUser: ({ params }) => {\n  const user = db.find(params.id);\n  if (!user) throw api.error(\"NOT_FOUND\", `no user ${params.id}`); // → 404\n  return user;\n},\ntransfer: ({ body }) => {\n  const dup = db.findTransfer(body.idempotencyKey);\n  if (dup) throw api.error(\"CONFLICT\", \"duplicate transfer\", { conflictingId: dup.id }); // → 409\n  return db.transfer(body);\n},\n```\n\n`ApiError` mirrors the wire envelope exactly — `{ code, status, message, details }` (plus a client-only `response`) — and the client reconstructs the same `ApiError` from the response. Undeclared codes and bad details are compile errors. You can also `throw new ApiError({ code, status, message, details })` directly for one-off cases.\n\n### Handling errors (client)\n\nA handshake error response is thrown as an `ApiError`; a non-handshake error response (proxy, gateway, foreign backend) is thrown as an [`HttpError`](#handling-errors-client); network failures propagate as-is. Recognize and narrow api errors with `api.isError` (the api is reachable from the client as `client.$api`):\n\n```ts\nimport { api } from \"./contract\";\n\ntry {\n  await client.getUser({ id: \"42\" });\n} catch (err) {\n  if (api.isError(err)) {\n    switch (err.code) {\n      case \"NOT_FOUND\":\n        return null;\n      case \"UNAUTHORIZED\":\n        return login();\n    }\n  }\n  throw err; // HttpError / network / unexpected\n}\n\n// or check a specific code directly\nif (api.isError(err, \"CONFLICT\")) {\n  err.details.conflictingId; // typed\n}\n```\n\n`ApiError` is reserved for handshake errors. Anything else non-OK is an `HttpError` (`{ status, body, response }`), so `api.isError(err)` is `false` for it and it falls through to your unexpected-error branch.\n\n### Error handling\n\nEvery error the server emits — declared or not — is a handshake error envelope, so clients reconstruct them uniformly as `ApiError`. Two codes are **reserved** by the framework and cannot be declared in a contract (but are always available to `api.error`/`api.isError`, since the client can receive them on any endpoint):\n\n- **`VALIDATION_ERROR`** (400) — a request failed schema validation; `details` is a normalized `{ path?, keyword?, message }[]` array of issues.\n- **`UNKNOWN_ERROR`** (500) — an unexpected error, or a handler response that failed validation. The cause is **never leaked** to the client; inspect or log it in `onError`. (The library never writes to the console itself.)\n\nA thrown `ApiError` with a **recognized code** (declared by the api, or a built-in `VALIDATION_ERROR`/`UNKNOWN_ERROR`) is serialized automatically — wherever it's thrown (handler, middleware, service), with no `onError` needed. `onError` handles everything else: plain exceptions, Hono `HTTPException`s, and `ApiError`s with an unrecognized code. Return an `ApiError` to shape the response, or return nothing for the default — an `HTTPException` keeps its own status, anything else becomes `UNKNOWN_ERROR`. The server can **never** emit a non-`ApiError` body, regardless of what `onError` does:\n\n```ts\nimport { ApiError } from \"@jayalfredprufrock/handshake/contract\";\nimport { ResponseValidationError } from \"@jayalfredprufrock/handshake/server\";\n\nconst app = createHonoApp({\n  routes: [routes],\n  onError: (err, c) => {\n    // take special action on a known internal error — client still gets UNKNOWN_ERROR\n    if (err instanceof ResponseValidationError) alert(\"contract drift\", err.issues);\n    if (err instanceof PaymentGatewayError) return api.error(\"UNAUTHORIZED\", \"gateway rejected\");\n    // return nothing → UNKNOWN_ERROR (cause never sent to the client)\n  },\n});\n```\n\nAny error that isn't a recognized contract error reaches `onError` fully intact (every property, the stack) while the client only ever sees the generic `UNKNOWN_ERROR` — so you can carry internal context on your own error classes and inspect it there.\n\n## Request headers\n\nDeclare request headers per route (names **must be lowercase**), and the client sends them like query params:\n\n```ts\nsecret: {\n  method: \"GET\",\n  path: \"/secret\",\n  headers: Type.Object({ \"x-api-key\": Type.String() }),\n  response: Type.Object({ ok: Type.Boolean() }),\n},\n```\n\n```ts\nawait client.secret({ headers: { \"x-api-key\": key } }); // typed; required because the schema is\n```\n\nTo enforce headers across **every** route, pass `headers` at the contract (or `createApi`) level — it's merged into each route's own headers:\n\n```ts\nconst contract = createContract(endpoints, {\n  headers: Type.Object({ authorization: Type.String() }),\n});\n\n// or api-wide, applied to every group\nconst api = createApi(\n  \"/api\",\n  { users },\n  {\n    headers: Type.Object({ authorization: Type.String() }),\n  },\n);\n```\n\n## Larger Apps\n\n### Splitting contracts across files\n\nDefine each resource as its own contract and compose them into an api with `createApi`. The named-record form gives each group a name used by `buildRoutes` on the server:\n\n```ts\n// contracts/index.ts\nimport { createApi } from \"@jayalfredprufrock/handshake/contract\";\nimport { usersContract } from \"./users\";\nimport { postsContract } from \"./posts\";\n\nexport const api = createApi(\n  \"/api\",\n  { users: usersContract, posts: postsContract },\n  {\n    // optional api-wide `errors`, `headers`, and `meta`\n  },\n);\n```\n\nThis barrel has zero server dependencies — safe to import from client bundles.\n\nEach route file imports the api and calls `buildRoutes` with the group name:\n\n```ts\n// routes/users.ts\nimport { buildRoutes } from \"@jayalfredprufrock/handshake/hono\";\nimport { api } from \"../contracts\";\n\nexport const usersRoutes = buildRoutes(api, \"users\", {\n  getUser: ({ params }) => ({ id: params.id, name: \"Alice\" }),\n  listUsers: () => [],\n});\n```\n\nUse the closure form for per-group middleware:\n\n```ts\nimport { bearerAuth } from \"hono/bearer-auth\";\n\nexport const postsRoutes = buildRoutes(api, \"posts\", (group) => {\n  group.use(bearerAuth({ token: process.env.API_TOKEN! }));\n  group.implement(\"getPost\", ({ params }) => ({ id: params.id, title: \"Hello\" }));\n});\n```\n\nAssemble the server by importing the route bundles — each is fully built at import time, with no shared mutable app instance:\n\n```ts\nimport { createHonoApp } from \"@jayalfredprufrock/handshake/hono\";\n\nconst app = createHonoApp({ routes: [usersRoutes, postsRoutes] });\n```\n\n### Global middleware\n\n`createHonoApp` returns a plain `Hono` instance. For app-level middleware (logging, CORS), mount it on your own root Hono:\n\n```ts\nimport { Hono } from \"hono\";\nimport { logger } from \"hono/logger\";\n\nconst root = new Hono();\nroot.use(\"*\", logger());\nroot.get(\"/health\", (c) => c.json({ ok: true }));\nroot.route(\"/\", createHonoApp({ routes: [usersRoutes, postsRoutes] }));\n```\n\n## Advanced client behavior\n\n`createFetchClient` accepts hooks that run around the standard `fetch`:\n\n```ts\nimport { createFetchClient } from \"@jayalfredprufrock/handshake/client\";\nimport { api } from \"./contract\";\n\nconst client = createFetchClient(api, {\n  baseUrl: \"https://api.example.com\",\n\n  // mutate/replace the outgoing request (re-runs each attempt — picks up a refreshed token)\n  handleRequest: (ctx) => ctx.request.headers.set(\"authorization\", `Bearer ${tokens.access}`),\n\n  // reject an otherwise-successful response (e.g. an AWS WAF 202 challenge) or reshape an error\n  handleResponse: (ctx) => {\n    if (ctx.response?.status === 202) throw new WafChallenge();\n  },\n\n  // decide whether to retry a failed attempt; ctx.error is the ApiError / thrown error\n  retry: async (ctx) => {\n    if (ctx.error instanceof WafChallenge) {\n      await solveChallenge();\n      return true;\n    }\n    if (api.isError(ctx.error, \"TOKEN_EXPIRED\")) {\n      await tokens.refresh();\n      return true;\n    }\n    return false;\n  },\n});\n```\n\n## TypeBox utilities\n\n`@jayalfredprufrock/handshake/typebox` ships `DeepPick` / `DeepOmit` — like `Type.Pick`/`Type.Omit`, but they support unions of objects and one level of nested keys via dot notation, with strongly-typed key paths:\n\n```ts\nimport { DeepOmit } from \"@jayalfredprufrock/handshake/typebox\";\n\nconst Public = DeepOmit(User, [\"password\", \"profile.secretToken\"]);\n```\n\n## CRUD contracts\n\n`createCrud` (from `/contract`) generates `get`/`list`/`create`/`update`/`delete` endpoints from a single schema, with `create` defaulting to `201`. See the docs for `params`/`hidden`/`readonly`/`immutable` options.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}