{"_id":"@arcjet-vendor/connectrpc-connect-express","_rev":"3-2a7da641237c6414640a2d7d847911d0","name":"@arcjet-vendor/connectrpc-connect-express","dist-tags":{"latest":"1.7.1"},"versions":{"1.7.1":{"name":"@arcjet-vendor/connectrpc-connect-express","version":"1.7.1","license":"Apache-2.0","_id":"@arcjet-vendor/connectrpc-connect-express@1.7.1","maintainers":[{"name":"quinn-arcjet","email":"quinn@arcjet.com"}],"homepage":"https://github.com/connectrpc/connect-es#readme","bugs":{"url":"https://github.com/connectrpc/connect-es/issues"},"dist":{"shasum":"a16c3efe2f608fddd74b6d0f30272103a4e5c92e","tarball":"https://registry.npmjs.org/@arcjet-vendor/connectrpc-connect-express/-/connectrpc-connect-express-1.7.1.tgz","fileCount":11,"integrity":"sha512-QOpxh+xlfPukIb6y9BQv99zqTOaSd8BTS/0QGZT0R1Bh+nAmheiKs0Mv60CbSzr4y2D/p7TuqPIQXCVlwJFwIA==","signatures":[{"sig":"MEQCIB98MzgvlypIDyXtRcDnLY28bvQIQDwI8ad/KDXy3KOpAiB7bdo3VAWVei3f9f3rc4QrL+TUOQJAAh4CHilJCHxkBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15190},"main":"./dist/cjs/index.js","type":"module","types":"./dist/cjs/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"f7eddb5136ff9cfd48b03377925b3053f848e09c","scripts":{"attw":"attw --pack","lint":"eslint --max-warnings 0 .","test":"jasmine --config=jasmine.json","build":"npm run build:cjs && npm run build:esm","format":"prettier --write --ignore-unknown '.' '!dist'","prebuild":"rm -rf ./dist/*","build:cjs":"tsc --project tsconfig.build.json --module commonjs --verbatimModuleSyntax false --moduleResolution node10 --outDir ./dist/cjs --declaration --declarationDir ./dist/cjs && echo >./dist/cjs/package.json '{\"type\":\"commonjs\"}'","build:esm":"tsc --project tsconfig.build.json --outDir ./dist/esm --declaration --declarationDir ./dist/esm","conformance":"tsc --noEmit && connectconformance --mode server --conf ./conformance/conformance-express.yaml -v -- tsx ./conformance/server.ts","license-header":"license-header"},"_npmUser":{"name":"quinn-arcjet","email":"quinn@arcjet.com"},"repository":{"url":"git+https://github.com/connectrpc/connect-es.git","type":"git","directory":"packages/connect-express"},"_npmVersion":"10.8.2","description":"> ⚠️ **Vendored fork**   > Maintained by Arcjet for internal/product use. May diverge from upstream.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","express":"^4.19.2","@types/express":"^4.17.18","@arcjet-vendor/connectrpc-connect":"1.7.1","@arcjet-vendor/connectrpc-connect-node":"1.7.1","@arcjet-vendor/connectrpc-connect-conformance":"^1.7.1"},"peerDependencies":{"@bufbuild/protobuf":"^1.10.0","@arcjet-vendor/connectrpc-connect":"1.7.1","@arcjet-vendor/connectrpc-connect-node":"1.7.1"},"_npmOperationalInternal":{"tmp":"tmp/connectrpc-connect-express_1.7.1_1769558353753_0.2892900512417349","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-01-27T23:59:13.691Z","modified":"2026-02-06T01:49:52.610Z","1.7.1":"2026-01-27T23:59:13.893Z"},"bugs":{"url":"https://github.com/connectrpc/connect-es/issues"},"license":"Apache-2.0","homepage":"https://github.com/connectrpc/connect-es#readme","repository":{"url":"git+https://github.com/connectrpc/connect-es.git","type":"git","directory":"packages/connect-express"},"description":"> ⚠️ **Vendored fork**   > Maintained by Arcjet for internal/product use. May diverge from upstream.","maintainers":[{"name":"davidmytton","email":"david@arcjet.com"},{"name":"quinn-arcjet","email":"quinn@arcjet.com"}],"readme":"> ⚠️ **Vendored fork**  \n> Maintained by Arcjet for internal/product use. May diverge from upstream.\n\n# @arcjet-vendor/connectrpc-connect-express\n\nConnect is a family of libraries for building and consuming APIs on different languages and platforms, and\n[@arcjet-vendor/connectrpc-connect](https://www.npmjs.com/package/@arcjet-vendor/connectrpc-connect) brings type-safe APIs with Protobuf to\nTypeScript.\n\n`@arcjet-vendor/connectrpc-connect-express` provides a middleware for [Express](https://expressjs.com/), the fast,\nunopinionated, minimalist web framework for Node.js\n\n### expressConnectMiddleware()\n\nAdds your Connect RPCs to an Express server.\n\n```ts\n// connect.ts\nimport { ConnectRouter } from \"@arcjet-vendor/connectrpc-connect\";\n\nexport default function (router: ConnectRouter) {\n  // implement rpc Say(SayRequest) returns (SayResponse)\n  router.rpc(ElizaService, ElizaService.methods.say, async (req) => ({\n    sentence: `you said: ${req.sentence}`,\n  }));\n}\n```\n\n```diff\n// server.ts\nimport http from \"http\";\nimport express from \"express\";\n+ import routes from \"connect\";\n+ import { expressConnectMiddleware } from \"@arcjet-vendor/connectrpc-connect-express\";\n\nconst app = express();\n\n+ app.use(expressConnectMiddleware({\n+  routes\n+ }));\n\nhttp.createServer(app).listen(8080);\n```\n\nWith that server running, you can make requests with any gRPC-web or Connect client.\n\n`curl` with the Connect protocol:\n\n```bash\ncurl \\\n    --header \"Content-Type: application/json\" \\\n    --data '{\"sentence\": \"I feel happy.\"}' \\\n    http://localhost:8080/connectrpc.eliza.v1.ElizaService/Say\n```\n\nNode.js with the gRPC-web protocol (using a transport from [@arcjet-vendor/connectrpc-connect-node](https://www.npmjs.com/package/@arcjet-vendor/connectrpc-connect-node)):\n\n```ts\nimport { createClient } from \"@arcjet-vendor/connectrpc-connect\";\nimport { createGrpcWebTransport } from \"@arcjet-vendor/connectrpc-connect-node\";\nimport { ElizaService } from \"./gen/eliza_connect.js\";\n\nconst transport = createGrpcWebTransport({\n  baseUrl: \"http://localhost:8080\",\n  httpVersion: \"1.1\",\n});\n\nconst client = createClient(ElizaService, transport);\nconst { sentence } = await client.say({ sentence: \"I feel happy.\" });\nconsole.log(sentence); // you said: I feel happy.\n```\n\nA client for the web browser actually looks identical to this example - it would\nsimply use `createConnectTransport` from [@arcjet-vendor/connectrpc-connect-web](https://www.npmjs.com/package/@arcjet-vendor/connectrpc-connect-web)\ninstead.\n\nNote that support for gRPC is limited, since many gRPC clients require HTTP/2,\nand Express does not support the Node.js `http2` module.\n\n## Getting started\n\nTo get started with Connect, head over to the [docs](https://connectrpc.com/docs/node/getting-started)\nfor a tutorial, or take a look at [our example](https://github.com/connectrpc/connect-es/tree/main/packages/example).\n","readmeFilename":"README.md"}