{"_id":"@bluesky-social/xrpc-server","_rev":"2-a67eba97cb5c64a7e38a128e9771f5a4","name":"@bluesky-social/xrpc-server","dist-tags":{"latest":"0.9.5"},"versions":{"0.9.0":{"name":"@bluesky-social/xrpc-server","version":"0.9.0","keywords":["atproto","xrpc"],"license":"MIT","_id":"@bluesky-social/xrpc-server@0.9.0","maintainers":[{"name":"openweb3.io","email":"mtsocialdao@gmail.com"},{"name":"web3km","email":"web3km@proton.me"}],"homepage":"https://atproto.com","bugs":{"url":"https://github.com/bluesky-social/atproto/issues"},"dist":{"shasum":"bdcd365017f2cfd810b62783cafc85593253c841","tarball":"https://registry.npmjs.org/@bluesky-social/xrpc-server/-/xrpc-server-0.9.0.tgz","fileCount":104,"integrity":"sha512-njGL7mNScjiD/xRkRcBrMkaIB/RRMvNdk75qK2ELOAxcH9jaiAF64SGD38CvU/nbY3D597BiydPyiCQOBmGd4A==","signatures":[{"sig":"MEUCIFoa0WZvt948FuZ7Xkp+lP+6qN4b6nl59vP+Q7DGNj81AiEA7SvoJVoi/5dY4TKWTJ+GV+zxGTtK4uX7ZBsCkvwJ3Og=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376824},"main":"dist/index.js","_from":"file:bluesky-social-xrpc-server-0.9.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.7.0"},"scripts":{"test":"jest","build":"tsc --build tsconfig.build.json"},"_npmUser":{"name":"web3km","email":"web3km@proton.me"},"_resolved":"/private/var/folders/cb/7sst87dj7jd40nc7b7q7h76r0000gn/T/f7ad4404c988561e370c1c14e76093d9/bluesky-social-xrpc-server-0.9.0.tgz","_integrity":"sha512-njGL7mNScjiD/xRkRcBrMkaIB/RRMvNdk75qK2ELOAxcH9jaiAF64SGD38CvU/nbY3D597BiydPyiCQOBmGd4A==","repository":{"url":"git+https://github.com/bluesky-social/atproto.git","type":"git","directory":"packages/xrpc-server"},"_npmVersion":"10.7.0","description":"atproto HTTP API (XRPC) server library","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ws":"^8.12.0","zod":"^3.23.8","cbor-x":"^1.5.1","express":"^4.17.2","mime-types":"^2.1.35","http-errors":"^2.0.0","uint8arrays":"3.0.0","@bluesky-social/xrpc":"^0.7.1","rate-limiter-flexible":"^2.4.1","@bluesky-social/common":"^0.4.11","@bluesky-social/crypto":"^0.4.4","@bluesky-social/lexicon":"^0.4.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.2","jose":"^4.15.4","get-port":"^6.1.2","@types/ws":"^8.5.4","typescript":"^5.6.3","key-encoder":"^2.0.3","multiformats":"^9.9.0","@types/express":"^4.17.13","@types/mime-types":"^2.1.4","@types/http-errors":"^2.0.4","@bluesky-social/crypto":"^0.4.4","@types/express-serve-static-core":"^4.17.36"},"_npmOperationalInternal":{"tmp":"tmp/xrpc-server_0.9.0_1753693256885_0.746136220289038","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"@bluesky-social/xrpc-server","version":"0.9.5","license":"MIT","description":"atproto HTTP API (XRPC) server library","keywords":["atproto","xrpc"],"homepage":"https://atproto.com","repository":{"type":"git","url":"git+https://github.com/bluesky-social/atproto.git","directory":"packages/xrpc-server"},"engines":{"node":">=18.7.0"},"main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"cbor-x":"^1.6.0","express":"^4.21.2","http-errors":"^2.0.0","mime-types":"^2.1.35","rate-limiter-flexible":"^2.4.2","uint8arrays":"3.0.0","ws":"^8.18.3","zod":"^3.25.76","@bluesky-social/crypto":"^0.4.4","@bluesky-social/lexicon":"^0.5.1","@bluesky-social/xrpc":"^0.7.5","@bluesky-social/common":"^0.4.12"},"devDependencies":{"@types/express":"^4.17.23","@types/express-serve-static-core":"^4.19.7","@types/http-errors":"^2.0.5","@types/mime-types":"^2.1.4","@types/ws":"^8.18.1","get-port":"^6.1.2","jest":"^28.1.3","jose":"^4.15.9","key-encoder":"^2.0.3","multiformats":"^9.9.0","typescript":"^5.9.3","@bluesky-social/crypto":"^0.4.4"},"scripts":{"test":"jest","build":"tsc --build tsconfig.build.json"},"_id":"@bluesky-social/xrpc-server@0.9.5","bugs":{"url":"https://github.com/bluesky-social/atproto/issues"},"_integrity":"sha512-HpZERLDkb57WNKgA+mVhAkOU6XqOKSl1Ijgi1LIrrG7Z8Pu1yW9r65c8mQ1WZr5FV0NljSc8bXkoP04Z+8fjBw==","_resolved":"/private/var/folders/cb/7sst87dj7jd40nc7b7q7h76r0000gn/T/8f51d4bd59a21f4a67faaf66c691804f/bluesky-social-xrpc-server-0.9.5.tgz","_from":"file:bluesky-social-xrpc-server-0.9.5.tgz","_nodeVersion":"20.15.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-HpZERLDkb57WNKgA+mVhAkOU6XqOKSl1Ijgi1LIrrG7Z8Pu1yW9r65c8mQ1WZr5FV0NljSc8bXkoP04Z+8fjBw==","shasum":"2b993806bd5418bc5be943ca1ce7620f1d79115a","tarball":"https://registry.npmjs.org/@bluesky-social/xrpc-server/-/xrpc-server-0.9.5.tgz","fileCount":103,"unpackedSize":458244,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDEbzgnVlMP3mt5zbFHPfbC77m2di5P+nrR6au196uKwIgTsp+SvPvNRC84NagSoSpUWdXxEGYiYuXA/OSYd98Afs="}]},"_npmUser":{"name":"web3km","email":"web3km@proton.me"},"directories":{},"maintainers":[{"name":"openweb3.io","email":"mtsocialdao@gmail.com"},{"name":"web3km","email":"web3km@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/xrpc-server_0.9.5_1761039235067_0.48636100543668914"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-28T09:00:56.783Z","modified":"2025-10-21T09:33:55.509Z","0.9.0":"2025-07-28T09:00:57.127Z","0.9.5":"2025-10-21T09:33:55.298Z"},"bugs":{"url":"https://github.com/bluesky-social/atproto/issues"},"license":"MIT","homepage":"https://atproto.com","keywords":["atproto","xrpc"],"repository":{"type":"git","url":"git+https://github.com/bluesky-social/atproto.git","directory":"packages/xrpc-server"},"description":"atproto HTTP API (XRPC) server library","maintainers":[{"name":"openweb3.io","email":"mtsocialdao@gmail.com"},{"name":"web3km","email":"web3km@proton.me"}],"readme":"# @bluesky-social/xrpc-server: atproto HTTP API server library\n\nTypeScript library for implementing [atproto](https://atproto.com) HTTP API services, with Lexicon schema validation.\n\n[![NPM](https://img.shields.io/npm/v/@bluesky-social/xrpc-server)](https://www.npmjs.com/package/@bluesky-social/xrpc-server)\n[![Github CI Status](https://github.com/bluesky-social/atproto/actions/workflows/repo.yaml/badge.svg)](https://github.com/bluesky-social/atproto/actions/workflows/repo.yaml)\n\n## Usage\n\n```typescript\nimport { LexiconDoc } from '@bluesky-social/lexicon'\nimport * as xrpc from '@bluesky-social/xrpc-server'\nimport express from 'express'\n\nconst lexicons: LexiconDoc[] = [\n  {\n    lexicon: 1,\n    id: 'io.example.ping',\n    defs: {\n      main: {\n        type: 'query',\n        parameters: {\n          type: 'params',\n          properties: { message: { type: 'string' } },\n        },\n        output: {\n          encoding: 'application/json',\n        },\n      },\n    },\n  },\n]\n\n// create xrpc server\nconst server = xrpc.createServer(lexicons)\n\nfunction ping(ctx: {\n  auth: xrpc.HandlerAuth | undefined\n  params: xrpc.Params\n  input: xrpc.HandlerInput | undefined\n  req: express.Request\n  res: express.Response\n}) {\n  return { encoding: 'application/json', body: { message: ctx.params.message } }\n}\n\nserver.method('io.example.ping', ping)\n\n// mount in express\nconst app = express()\napp.use(server.router)\napp.listen(8080)\n```\n\n## License\n\nThis project is dual-licensed under MIT and Apache 2.0 terms:\n\n- MIT license ([LICENSE-MIT.txt](https://github.com/bluesky-social/atproto/blob/main/LICENSE-MIT.txt) or http://opensource.org/licenses/MIT)\n- Apache License, Version 2.0, ([LICENSE-APACHE.txt](https://github.com/bluesky-social/atproto/blob/main/LICENSE-APACHE.txt) or http://www.apache.org/licenses/LICENSE-2.0)\n\nDownstream projects and end users may chose either license individually, or both together, at their discretion. The motivation for this dual-licensing is the additional software patent assurance provided by Apache 2.0.\n","readmeFilename":"README.md"}