{"_id":"@eidos.space/graft-remote-hono","_rev":"6-b3a354caf06656192c9f34360b111a87","name":"@eidos.space/graft-remote-hono","dist-tags":{"latest":"0.2.4"},"versions":{"0.1.0":{"name":"@eidos.space/graft-remote-hono","version":"0.1.0","license":"MIT","_id":"@eidos.space/graft-remote-hono@0.1.0","maintainers":[{"name":"agodrich","email":"dreama9ain@gmail.com"}],"homepage":"https://github.com/eidos-space/graft","bugs":{"url":"https://github.com/eidos-space/graft/issues"},"dist":{"shasum":"7624e490eecd1b49092fceff1ce9f54eba43ffef","tarball":"https://registry.npmjs.org/@eidos.space/graft-remote-hono/-/graft-remote-hono-0.1.0.tgz","fileCount":7,"integrity":"sha512-KtqvakfkYUedxKUp2SohUGxqMNvlgWBayr2KlxeE7esQPP3dc5XNMjUNEfhvOEbFHRIZCpTfLITNXWbkt9Lp6A==","signatures":[{"sig":"MEQCIBkbhR0/dYjbYMfqfP5w6Mhblw/6zPk2Um0AOf7wMx4PAiBGU4JUmb81bhtOlgmXucTfpCs/XiCAxYACBvfJl4n/Pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eidos.space%2fgraft-remote-hono@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7175},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run --pool=threads --maxWorkers=1","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"agodrich","email":"dreama9ain@gmail.com"},"_resolved":"/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.1.0.tgz","_integrity":"sha512-KtqvakfkYUedxKUp2SohUGxqMNvlgWBayr2KlxeE7esQPP3dc5XNMjUNEfhvOEbFHRIZCpTfLITNXWbkt9Lp6A==","repository":{"url":"git+https://github.com/eidos-space/graft.git","type":"git","directory":"packages/graft-remote-hono"},"_npmVersion":"11.16.0","description":"Hono adapter for @eidos.space/graft-remote","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@eidos.space/graft-remote":"^0.1.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"hono":"4.12.31","vitest":"4.1.10","typescript":"7.0.2"},"peerDependencies":{"hono":"^4.12.31"},"_npmOperationalInternal":{"tmp":"tmp/graft-remote-hono_0.1.0_1785353114347_0.7304718205039002","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@eidos.space/graft-remote-hono","version":"0.2.0","license":"MIT","_id":"@eidos.space/graft-remote-hono@0.2.0","maintainers":[{"name":"agodrich","email":"dreama9ain@gmail.com"}],"homepage":"https://github.com/eidos-space/graft","bugs":{"url":"https://github.com/eidos-space/graft/issues"},"dist":{"shasum":"54738b8657d7c50608f674f2194b58e6c6754078","tarball":"https://registry.npmjs.org/@eidos.space/graft-remote-hono/-/graft-remote-hono-0.2.0.tgz","fileCount":7,"integrity":"sha512-PaXzBAnRvxoG6wNZzQymo6xwXswkzbUWsE1768sUKPmCNyvc02vvKKlZwX96wxrtTPyEkbsj0m1mbEOqwDESKg==","signatures":[{"sig":"MEUCIEKRBJ22b80hrRBYTW2kZi2tzw0vYiW7dLCpGEAwYBlrAiEAqUWMBz/HSlUcNsoMc6s+5fObLzjiXAS+de4SNNa3Evg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eidos.space%2fgraft-remote-hono@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7175},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run --pool=threads --maxWorkers=1","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"agodrich","email":"dreama9ain@gmail.com"},"_resolved":"/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.0.tgz","_integrity":"sha512-PaXzBAnRvxoG6wNZzQymo6xwXswkzbUWsE1768sUKPmCNyvc02vvKKlZwX96wxrtTPyEkbsj0m1mbEOqwDESKg==","repository":{"url":"git+https://github.com/eidos-space/graft.git","type":"git","directory":"packages/graft-remote-hono"},"_npmVersion":"11.16.0","description":"Hono adapter for @eidos.space/graft-remote","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@eidos.space/graft-remote":"^0.2.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"hono":"4.12.31","vitest":"4.1.10","typescript":"7.0.2"},"peerDependencies":{"hono":"^4.12.31"},"_npmOperationalInternal":{"tmp":"tmp/graft-remote-hono_0.2.0_1785411175598_0.46884539922444035","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@eidos.space/graft-remote-hono","version":"0.2.1","license":"MIT","_id":"@eidos.space/graft-remote-hono@0.2.1","maintainers":[{"name":"agodrich","email":"dreama9ain@gmail.com"}],"homepage":"https://github.com/eidos-space/graft","bugs":{"url":"https://github.com/eidos-space/graft/issues"},"dist":{"shasum":"4595c15ae28c6dae34b8471993fcb54c478adbbe","tarball":"https://registry.npmjs.org/@eidos.space/graft-remote-hono/-/graft-remote-hono-0.2.1.tgz","fileCount":7,"integrity":"sha512-yKaan1JuSlFMwS5K/Dsuiu/RXAcTAjKBuYjPaPdHFKC4eZlsWofh5Sv7tRGqBbcPxX+d7C+8NOo3cyyv/f77GA==","signatures":[{"sig":"MEUCIQC6+IhNfohfbGRLXm8s7oeyVtUqdCbUEvq9iDd1LOD1sgIgTn4zFQlzM3v25QygNhxk5m7ksuTlVbDcANQjCX+24nM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eidos.space%2fgraft-remote-hono@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7175},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run --pool=threads --maxWorkers=1","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"agodrich","email":"dreama9ain@gmail.com"},"_resolved":"/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.1.tgz","_integrity":"sha512-yKaan1JuSlFMwS5K/Dsuiu/RXAcTAjKBuYjPaPdHFKC4eZlsWofh5Sv7tRGqBbcPxX+d7C+8NOo3cyyv/f77GA==","repository":{"url":"git+https://github.com/eidos-space/graft.git","type":"git","directory":"packages/graft-remote-hono"},"_npmVersion":"11.16.0","description":"Hono adapter for @eidos.space/graft-remote","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@eidos.space/graft-remote":"^0.2.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"hono":"4.12.31","vitest":"4.1.10","typescript":"7.0.2"},"peerDependencies":{"hono":"^4.12.31"},"_npmOperationalInternal":{"tmp":"tmp/graft-remote-hono_0.2.1_1785654997323_0.7689489367164057","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@eidos.space/graft-remote-hono","version":"0.2.2","license":"MIT","_id":"@eidos.space/graft-remote-hono@0.2.2","maintainers":[{"name":"agodrich","email":"dreama9ain@gmail.com"}],"homepage":"https://github.com/eidos-space/graft","bugs":{"url":"https://github.com/eidos-space/graft/issues"},"dist":{"shasum":"ab23d10eee95aca4b674b7b0e188c5bcdba2aee8","tarball":"https://registry.npmjs.org/@eidos.space/graft-remote-hono/-/graft-remote-hono-0.2.2.tgz","fileCount":7,"integrity":"sha512-oJGcWKlGzLTwvfoSKcWn+RVl+xj0UAV08NNMCVr8WkYoQp+DXCwwJy0HicYATZOaHe2rcwF4+d9zVUUPiUdUHA==","signatures":[{"sig":"MEQCIBd3FgWUYDjvHn1PFMy7JyAX6hyjt7vVqBUkIVA066zVAiAzlHtQxGltfGZpwNr74mlgfgkxP9HU6/9UHsGUv8XpSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eidos.space%2fgraft-remote-hono@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7175},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run --pool=threads --maxWorkers=1","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:34610cb4-4a85-4f6e-8d25-42cc8c1fe41d"}},"_resolved":"/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.2.tgz","_integrity":"sha512-oJGcWKlGzLTwvfoSKcWn+RVl+xj0UAV08NNMCVr8WkYoQp+DXCwwJy0HicYATZOaHe2rcwF4+d9zVUUPiUdUHA==","repository":{"url":"git+https://github.com/eidos-space/graft.git","type":"git","directory":"packages/graft-remote-hono"},"_npmVersion":"11.16.0","description":"Hono adapter for @eidos.space/graft-remote","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@eidos.space/graft-remote":"^0.2.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"hono":"4.12.31","vitest":"4.1.10","typescript":"7.0.2"},"peerDependencies":{"hono":"^4.12.31"},"_npmOperationalInternal":{"tmp":"tmp/graft-remote-hono_0.2.2_1786631486741_0.5562728067584899","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@eidos.space/graft-remote-hono","version":"0.2.3","license":"MIT","_id":"@eidos.space/graft-remote-hono@0.2.3","maintainers":[{"name":"agodrich","email":"dreama9ain@gmail.com"}],"homepage":"https://github.com/eidos-space/graft","bugs":{"url":"https://github.com/eidos-space/graft/issues"},"dist":{"shasum":"136ebe08cbd180145ff682dcd622a8f786092a0f","tarball":"https://registry.npmjs.org/@eidos.space/graft-remote-hono/-/graft-remote-hono-0.2.3.tgz","fileCount":7,"integrity":"sha512-yzsmPyJUMAnphM6PX+kvZAoDAyF5aETJVfTiYYWe5iFgwkV/qrud1ryM8l6F7sxvrxEohEPrQHmHUHQrBNmnJA==","signatures":[{"sig":"MEQCIEKGwd+yD8qWv2o1TUyZL4PruuRA/vnOpaE0Ud0JyTSoAiB7TqiV2WGsex80Dszfx0arIPIdY931nPQ2UwX+OOhekQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eidos.space%2fgraft-remote-hono@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7175},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run --pool=threads --maxWorkers=1","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:34610cb4-4a85-4f6e-8d25-42cc8c1fe41d"}},"_resolved":"/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.3.tgz","_integrity":"sha512-yzsmPyJUMAnphM6PX+kvZAoDAyF5aETJVfTiYYWe5iFgwkV/qrud1ryM8l6F7sxvrxEohEPrQHmHUHQrBNmnJA==","repository":{"url":"git+https://github.com/eidos-space/graft.git","type":"git","directory":"packages/graft-remote-hono"},"_npmVersion":"11.16.0","description":"Hono adapter for @eidos.space/graft-remote","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@eidos.space/graft-remote":"^0.2.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"hono":"4.12.31","vitest":"4.1.10","typescript":"7.0.2"},"peerDependencies":{"hono":"^4.12.31"},"_npmOperationalInternal":{"tmp":"tmp/graft-remote-hono_0.2.3_1786935932788_0.11760300203798946","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@eidos.space/graft-remote-hono","version":"0.2.4","description":"Hono adapter for @eidos.space/graft-remote","type":"module","license":"MIT","repository":{"type":"git","url":"git+https://github.com/eidos-space/graft.git","directory":"packages/graft-remote-hono"},"homepage":"https://github.com/eidos-space/graft","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"main":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"@eidos.space/graft-remote":"^0.2.4"},"peerDependencies":{"hono":"^4.12.31"},"devDependencies":{"hono":"4.12.31","typescript":"7.0.2","vitest":"4.1.10"},"engines":{"node":">=20"},"publishConfig":{"access":"public","provenance":true},"scripts":{"build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","test":"vitest run --pool=threads --maxWorkers=1"},"_id":"@eidos.space/graft-remote-hono@0.2.4","bugs":{"url":"https://github.com/eidos-space/graft/issues"},"_integrity":"sha512-vz5JWJ10u9m4W1Sg/fb6xp8QcFyEdnpYzckFahR22Kx/CSzivT6Cs4H/cgy9jHH73i4tCO+HAmuwSQSwuZQTDg==","_resolved":"/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.4.tgz","_from":"file:/home/runner/work/graft/graft/release-assets/graft-remote/eidos.space-graft-remote-hono-0.2.4.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-vz5JWJ10u9m4W1Sg/fb6xp8QcFyEdnpYzckFahR22Kx/CSzivT6Cs4H/cgy9jHH73i4tCO+HAmuwSQSwuZQTDg==","shasum":"f74ffce6090eaa0c8ce92c1efe3af407bfcda66f","tarball":"https://registry.npmjs.org/@eidos.space/graft-remote-hono/-/graft-remote-hono-0.2.4.tgz","fileCount":7,"unpackedSize":7175,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eidos.space%2fgraft-remote-hono@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCdKB8w1y5IvIBO4g1+k9MGxwGicnn/7Y08INyPVNs46wIhAOKD2O9kVevuhiKK/pBV9kOTA03p0v/xlUwuV5tRrUIF"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:34610cb4-4a85-4f6e-8d25-42cc8c1fe41d"}},"directories":{},"maintainers":[{"name":"agodrich","email":"dreama9ain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/graft-remote-hono_0.2.4_1788862767965_0.5693590533572319"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-29T19:25:14.106Z","modified":"2026-09-08T10:19:28.467Z","0.1.0":"2026-07-29T19:25:14.494Z","0.2.0":"2026-07-30T11:32:55.751Z","0.2.1":"2026-08-02T07:16:37.467Z","0.2.2":"2026-08-13T14:31:26.872Z","0.2.3":"2026-08-17T03:05:32.932Z","0.2.4":"2026-09-08T10:19:28.107Z"},"bugs":{"url":"https://github.com/eidos-space/graft/issues"},"license":"MIT","homepage":"https://github.com/eidos-space/graft","repository":{"type":"git","url":"git+https://github.com/eidos-space/graft.git","directory":"packages/graft-remote-hono"},"description":"Hono adapter for @eidos.space/graft-remote","maintainers":[{"name":"agodrich","email":"dreama9ain@gmail.com"}],"readme":"# `@eidos.space/graft-remote-hono`\n\nHono routing adapter for `@eidos.space/graft-remote`.\n\nThe adapter maps Hono route parameters and `Context` into the framework-neutral\nGraft protocol engine. Protocol behavior, backend interfaces, authentication,\nand authorization types are re-exported from the core package.\n\n## Install\n\n```bash\nnpm install @eidos.space/graft-remote-hono hono\n```\n\n## Use\n\n```ts\nimport { Hono } from \"hono\";\nimport {\n  GraftProtocolError,\n  createGraftRemote,\n} from \"@eidos.space/graft-remote-hono\";\n\ntype AppEnv = {\n  Bindings: {\n    REPOSITORIES: RepositoryStore;\n  };\n};\n\ninterface User {\n  id: string;\n}\n\nconst app = new Hono<AppEnv>();\nconst remote = createGraftRemote<AppEnv, User>({\n  async authenticate({ request }) {\n    const user = await authenticateRequest(request);\n    if (user === null) {\n      throw new GraftProtocolError(401, \"unauthorized\", \"Authentication required\", {\n        \"WWW-Authenticate\": 'Bearer realm=\"graft\"',\n      });\n    }\n    return user;\n  },\n\n  async authorize({ action, principal, repository }) {\n    if (principal === undefined || !(await canAccess(principal, action, repository))) {\n      throw new GraftProtocolError(403, \"forbidden\", \"Repository access denied\");\n    }\n  },\n\n  backend({ adapterContext, repository }) {\n    return adapterContext.env.REPOSITORIES.open(repository.id);\n  },\n});\n\napp.get(\"/health\", (context) => context.text(\"ok\"));\napp.route(\"/graft\", remote);\n\nexport default app;\n```\n\nThis serves `https://example.com/graft/acme/archive` without intercepting\nunrelated Hono routes. Export `remote` directly for Git-like URLs rooted at\n`https://example.com/acme/archive`.\n\nSet `legacyRoutes: true` to retain the early\n`/api/graft/v1/repos/:namespace/:repository` compatibility alias.\n\n`@eidos.space/graft-remote-cloudflare` supplies the reusable R2 and SQLite\nDurable Object backend. The service under `services/graft-remote-cloudflare`\ncomposes all three packages for deployment and end-to-end verification.\n","readmeFilename":"README.md"}