{"_id":"@bradford-tech/graphhopper-sdk","_rev":"5-21f799cfb290179d18a2d104e132fe70","name":"@bradford-tech/graphhopper-sdk","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"@bradford-tech/graphhopper-sdk","version":"0.0.1","keywords":["graphhopper","api","sdk","typescript"],"author":{"name":"Bradford Technologies","email":"graphhopper-sdk@sargent.dev"},"license":"MIT","_id":"@bradford-tech/graphhopper-sdk@0.0.1","maintainers":[{"name":"sbs44","email":"focal-flusher.0g@icloud.com"}],"homepage":"https://github.com/bradford-tech/graphhopper-sdk#readme","bugs":{"url":"https://github.com/bradford-tech/graphhopper-sdk/issues"},"dist":{"shasum":"d1f5c017a4d0eddfb1996b4fc65ae5204b8d99d8","tarball":"https://registry.npmjs.org/@bradford-tech/graphhopper-sdk/-/graphhopper-sdk-0.0.1.tgz","fileCount":74,"integrity":"sha512-U6SWTLwteLsF+wyEFyhn1MKOoa900w7WTnWnVuFzoCxiAVa2+8HAAzQXfP99f0gRv0QpIemC2GkfFtX/G1OmJg==","signatures":[{"sig":"MEUCIQCkCI8/COdsh2pqzS8UDMAaPqRy+LjasOM3zxRKXye3MAIgA9eCXkrV2SCEewQYl+X6iYwoFp1E9fjI3ghMLP872OY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304064},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"6d84ad920ba1cf74bbeb2084590b5125af1e7997","scripts":{"fix":"npm run format -- --write && npm run lint -- --fix && npm run type-check","lint":"eslint . --quiet --max-warnings 0","build":"tsc","clean":"rimraf dist","format":"prettier . --log-level warn","prepack":"npm run build","generate":"rimraf ./src/client && openapi-ts","type-check":"tsc --noEmit"},"_npmUser":{"name":"sbs44","email":"focal-flusher.0g@icloud.com"},"repository":{"url":"git+https://github.com/bradford-tech/graphhopper-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"TypeScript SDK for the GraphHopper Directions API","directories":{},"sideEffects":["./dist/client/client.gen.js"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","eslint":"^10.5.0","rimraf":"^6.1.3","globals":"^17.7.0","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","typescript-eslint":"^8.62.0","@hey-api/openapi-ts":"^0.99.0","prettier-plugin-packagejson":"^3.0.2","eslint-config-flat-gitignore":"^2.3.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/graphhopper-sdk_0.0.1_1782428253198_0.09231090420904686","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@bradford-tech/graphhopper-sdk","version":"0.0.2","keywords":["graphhopper","api","sdk","typescript"],"author":{"name":"Bradford Technologies","email":"graphhopper-sdk@sargent.dev"},"license":"MIT","_id":"@bradford-tech/graphhopper-sdk@0.0.2","maintainers":[{"name":"sbs44","email":"focal-flusher.0g@icloud.com"}],"homepage":"https://github.com/bradford-tech/graphhopper-sdk#readme","bugs":{"url":"https://github.com/bradford-tech/graphhopper-sdk/issues"},"dist":{"shasum":"031c886813dedcc5c78cab35d2229a7a49dec164","tarball":"https://registry.npmjs.org/@bradford-tech/graphhopper-sdk/-/graphhopper-sdk-0.0.2.tgz","fileCount":75,"integrity":"sha512-6np2yfIChIEaAaVmsvmhMBK75dkYqd4Jb3I11bTec0VPLlPsMo7oXhk456v4Mmn5s6vifMkqck0YsnSAOxwuYA==","signatures":[{"sig":"MEYCIQDeDxPxPzwH2KL83CY3jK3pSuwln6+KQwcaDxM0cJE4UQIhAMQcS59MkwQkeS/ztj6yita05gZewlDf4tA5Vn5UNJ2S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradford-tech%2fgraphhopper-sdk@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":310365},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"97bfd23907ca9f098d8d2af6001e57187336e90b","scripts":{"fix":"npm run format -- --write && npm run lint -- --fix && npm run type-check","lint":"eslint . --quiet --max-warnings 0","build":"tsc","clean":"rimraf dist","format":"prettier . --log-level warn","prepack":"npm run build","generate":"rimraf ./src/client && openapi-ts","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8dbb8ea-ddba-4e77-bfa4-0a096fb51ec2"}},"repository":{"url":"git+https://github.com/bradford-tech/graphhopper-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"TypeScript SDK for the GraphHopper Directions API","directories":{},"sideEffects":["./dist/client/client.gen.js"],"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","eslint":"^10.5.0","rimraf":"^6.1.3","globals":"^17.7.0","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","typescript-eslint":"^8.62.0","@hey-api/openapi-ts":"^0.99.0","prettier-plugin-packagejson":"^3.0.2","eslint-config-flat-gitignore":"^2.3.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/graphhopper-sdk_0.0.2_1782430039309_0.5131970446706635","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@bradford-tech/graphhopper-sdk","version":"0.0.3","keywords":["graphhopper","api","sdk","typescript"],"author":{"name":"Bradford Technologies","email":"graphhopper-sdk@sargent.dev"},"license":"MIT","_id":"@bradford-tech/graphhopper-sdk@0.0.3","maintainers":[{"name":"sbs44","email":"focal-flusher.0g@icloud.com"}],"homepage":"https://github.com/bradford-tech/graphhopper-sdk#readme","bugs":{"url":"https://github.com/bradford-tech/graphhopper-sdk/issues"},"dist":{"shasum":"328cdc7491cce430f351d2a931da3ad6f5fb57ee","tarball":"https://registry.npmjs.org/@bradford-tech/graphhopper-sdk/-/graphhopper-sdk-0.0.3.tgz","fileCount":87,"integrity":"sha512-Zry4DiW0J1NMrSP3dkGW730DE3SAhooYo500rcBFEKLL5MEjI/a21qQPtyknvYFQHsxyya9Ds7TOiioBJN6ofw==","signatures":[{"sig":"MEQCIH8JONx1JZMm7eGn5L0i5thTbbmaT/tGNrbcluRxS0RTAiBEAEnJgYrJnYRVdCKjCtzy2ycvDtLxj65Pw3EJnhu27A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradford-tech%2fgraphhopper-sdk@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317558},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"1bb4aa8c0d681fb456b5ae96abc9a2e411d8af5e","scripts":{"fix":"npm run format -- --write && npm run lint -- --fix && npm run type-check","lint":"eslint . --quiet --max-warnings 0","test":"node --import jiti/register --test test/*.test.ts","build":"tsc","clean":"rimraf dist","format":"prettier . --log-level warn","prepack":"npm run build","generate":"rimraf ./src/client && openapi-ts","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8dbb8ea-ddba-4e77-bfa4-0a096fb51ec2"}},"repository":{"url":"git+https://github.com/bradford-tech/graphhopper-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"TypeScript SDK for the GraphHopper Directions API","directories":{},"sideEffects":["./dist/client/client.gen.js"],"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","eslint":"^10.5.0","rimraf":"^6.1.3","globals":"^17.7.0","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","typescript-eslint":"^8.62.0","@hey-api/openapi-ts":"^0.99.0","prettier-plugin-packagejson":"^3.0.2","eslint-config-flat-gitignore":"^2.3.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/graphhopper-sdk_0.0.3_1782489112185_0.7663846585968772","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@bradford-tech/graphhopper-sdk","version":"0.0.4","keywords":["graphhopper","api","sdk","typescript"],"author":{"name":"Bradford Technologies","email":"graphhopper-sdk@sargent.dev"},"license":"MIT","_id":"@bradford-tech/graphhopper-sdk@0.0.4","maintainers":[{"name":"sbs44","email":"focal-flusher.0g@icloud.com"}],"homepage":"https://github.com/bradford-tech/graphhopper-sdk#readme","bugs":{"url":"https://github.com/bradford-tech/graphhopper-sdk/issues"},"dist":{"shasum":"9f6c8ca58a49f45aae2c244c8d5a7a56451e3ebe","tarball":"https://registry.npmjs.org/@bradford-tech/graphhopper-sdk/-/graphhopper-sdk-0.0.4.tgz","fileCount":87,"integrity":"sha512-0fF58uvxySbUWVQU3koA6S3vKhozk7GBa2QJ06nfGXm7wMniAAYLoBtOzuTwesu3V8vN4LjVwWVLcCW1pwWupA==","signatures":[{"sig":"MEQCIC3UzqmxCe059+HLVZt7ZmZQZ1UE1RpN67oHBDCssvDAAiA4hQAhqPPHrhd6PTqK2PIcllgydbaL22t4E2tABre3wA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradford-tech%2fgraphhopper-sdk@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":319262},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"9f52d5e8d0b4e57541498e180f6c5578d31b0912","scripts":{"fix":"npm run format -- --write && npm run lint -- --fix && npm run type-check","lint":"eslint . --quiet --max-warnings 0","test":"node --import jiti/register --test test/*.test.ts","build":"tsc","clean":"rimraf dist","format":"prettier . --log-level warn","prepack":"npm run build","generate":"rimraf ./src/client && openapi-ts","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8dbb8ea-ddba-4e77-bfa4-0a096fb51ec2"}},"overrides":{"js-yaml":"^4.2.1"},"repository":{"url":"git+https://github.com/bradford-tech/graphhopper-sdk.git","type":"git"},"_npmVersion":"11.17.0","description":"TypeScript SDK for the GraphHopper Directions API","directories":{},"sideEffects":["./dist/client/client.gen.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","eslint":"^10.8.1","rimraf":"^6.1.3","globals":"^17.11.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^6.0.3","typescript-eslint":"^8.67.0","@hey-api/openapi-ts":"^0.99.0","prettier-plugin-packagejson":"^3.0.2","eslint-config-flat-gitignore":"^2.3.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/graphhopper-sdk_0.0.4_1787221601421_0.3101787263364746","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"_id":"@bradford-tech/graphhopper-sdk@0.1.0","bugs":{"url":"https://github.com/bradford-tech/graphhopper-sdk/issues"},"dist":{"shasum":"baed6a2263562423bcda176d4e83b16ad41b3000","tarball":"https://registry.npmjs.org/@bradford-tech/graphhopper-sdk/-/graphhopper-sdk-0.1.0.tgz","fileCount":87,"integrity":"sha512-eErAY1gVI+yA46XPhM+J4Adj2V/2iBah91hIymgEVy8ByK3j4VhCVOd1u20I18jA2f9jYlkUwGgHi82qzvNpUA==","signatures":[{"sig":"MEQCIAdbXXc/FylaLhn3Ng6vDVYtm6ku/Je5fN15ntlb2NJrAiAIV1qt2vkhCxtzXzrHwdQ/F4M8H4iUV95HaEFtxfwr3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBVk9KX2gjOya/KNXK5vtlMqLU+FmDUyYH25wHyP0OTKAiEA8DI7tajjbxZcdxvQfXZka9Nn7tx6vPjXqkWqLYjK5Xc="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradford-tech%2fgraphhopper-sdk@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":320307},"main":"./dist/index.js","name":"@bradford-tech/graphhopper-sdk","type":"module","types":"./dist/index.d.ts","author":{"name":"Bradford Technologies","email":"graphhopper-sdk@sargent.dev"},"engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"a95d1ccb5d344cd4ba220dd40f76fcae689f95e9","license":"MIT","scripts":{"fix":"npm run format -- --write && npm run lint -- --fix && npm run type-check","lint":"eslint . --quiet --max-warnings 0","test":"node --import jiti/register --test test/*.test.ts","build":"tsc","clean":"rimraf dist","format":"prettier . --log-level warn","prepack":"npm run build","generate":"rimraf ./src/client && openapi-ts","type-check":"tsc --noEmit"},"version":"0.1.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c8dbb8ea-ddba-4e77-bfa4-0a096fb51ec2"}},"homepage":"https://github.com/bradford-tech/graphhopper-sdk#readme","keywords":["graphhopper","api","sdk","typescript"],"overrides":{"js-yaml":"^4.2.1"},"repository":{"url":"git+https://github.com/bradford-tech/graphhopper-sdk.git","type":"git"},"_npmVersion":"11.19.0","description":"TypeScript SDK for the GraphHopper Directions API","directories":{},"maintainers":[{"name":"sbs44","email":"focal-flusher.0g@icloud.com"}],"sideEffects":["./dist/client/client.gen.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","eslint":"^10.8.1","rimraf":"^6.1.3","globals":"^17.11.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^6.0.3","typescript-eslint":"^8.67.0","@hey-api/openapi-ts":"^0.99.0","prettier-plugin-packagejson":"^3.0.2","eslint-config-flat-gitignore":"^2.3.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/graphhopper-sdk_0.1.0_1790825147800_0.7857660587750002"}}},"time":{"created":"2026-06-25T22:57:32.981Z","modified":"2026-10-01T03:25:48.255Z","0.0.1":"2026-06-25T22:57:33.354Z","0.0.2":"2026-06-25T23:27:19.450Z","0.0.3":"2026-06-26T15:51:52.418Z","0.0.4":"2026-08-20T10:26:41.587Z","0.1.0":"2026-10-01T03:25:47.914Z"},"bugs":{"url":"https://github.com/bradford-tech/graphhopper-sdk/issues"},"author":{"name":"Bradford Technologies","email":"graphhopper-sdk@sargent.dev"},"license":"MIT","homepage":"https://github.com/bradford-tech/graphhopper-sdk#readme","keywords":["graphhopper","api","sdk","typescript"],"repository":{"url":"git+https://github.com/bradford-tech/graphhopper-sdk.git","type":"git"},"description":"TypeScript SDK for the GraphHopper Directions API","maintainers":[{"name":"sbs44","email":"focal-flusher.0g@icloud.com"}],"readme":"# @bradford-tech/graphhopper-sdk\n\nA fully-typed, tree-shakeable TypeScript client for the [GraphHopper Directions API](https://docs.graphhopper.com/), generated from its OpenAPI spec.\n\n## Install\n\n```bash\nnpm install @bradford-tech/graphhopper-sdk\n```\n\nAlso works with `pnpm add`, `yarn add`, or `bun add`. From [jsr](https://jsr.io/@bradford-tech/graphhopper-sdk):\n\n```bash\ndeno add jsr:@bradford-tech/graphhopper-sdk\n```\n\nThe client is ESM-only and runs on Node 20+, Deno, Bun, and edge runtimes (it uses the platform `fetch`, with no runtime dependencies).\n\n## Usage\n\nSet your API key once on the shared `client`, then call any operation. The base URL (`https://graphhopper.com/api/1`) is preconfigured.\n\n```ts\nimport { setApiKey, getGeocode } from \"@bradford-tech/graphhopper-sdk\";\n\nsetApiKey(process.env.GRAPHHOPPER_API_KEY!);\n\nconst { data } = await getGeocode({ query: { q: \"Berlin\" } });\nconsole.log(data?.hits?.[0]?.point);\n// => { lat: 52.5170365, lng: 13.3888599 }\n```\n\nEvery operation returns `{ data, error, response }` — `data` is the typed response body, `error` is the typed error body on a non-2xx status, and `response` is the raw `Response`. Pass `{ throwOnError: true }` to throw instead.\n\n## Authentication\n\nGraphHopper authenticates with an API key passed as the `key` query parameter. There are three ways to supply it.\n\n**Zero-config:** set `GRAPHHOPPER_API_KEY` in the environment and every request uses it automatically — no code required.\n\n**Explicit, shared client:** set the key once for all operations.\n\n```ts\nimport { setApiKey } from \"@bradford-tech/graphhopper-sdk\";\n\nsetApiKey(\"your-api-key\"); // overrides GRAPHHOPPER_API_KEY\n// also accepts a resolver for rotation / secret managers:\nsetApiKey(() => loadKeyFromVault());\n```\n\n**Isolated clients:** for multi-tenant servers, concurrent requests with different keys, or test isolation, create independent clients and pass one per call.\n\n```ts\nimport { createGraphHopper, getGeocode } from \"@bradford-tech/graphhopper-sdk\";\n\nconst gh = createGraphHopper({ apiKey: \"your-api-key\" });\nconst { data } = await getGeocode({ client: gh, query: { q: \"Berlin\" } });\n```\n\nPrecedence is explicit (`setApiKey` / `createGraphHopper`) over the `GRAPHHOPPER_API_KEY` environment variable. [Sign up](https://graphhopper.com/dashboard/signup) and [create a key](https://support.graphhopper.com/a/solutions/articles/44001976027) to get started. Responses include `X-RateLimit-*` headers describing your remaining credit balance; a `429` means the daily or per-minute limit is exhausted.\n\n## Coverage\n\nAll 20 operations from the spec are generated as standalone, tree-shakeable functions — import only what you use.\n\n| Area               | Functions                                                                              |\n| ------------------ | -------------------------------------------------------------------------------------- |\n| Routing            | `postRoute`, `getRoute`                                                                |\n| Matrix             | `postMatrix`, `getMatrix`, `calculateMatrix`, `getMatrixSolution`                      |\n| Isochrone          | `getIsochrone`                                                                         |\n| Geocoding          | `getGeocode`                                                                           |\n| Map Matching       | `postGpx`                                                                              |\n| Route Optimization | `solveVrp`, `asyncVrp`, `getSolution`                                                  |\n| Clustering         | `solveClusteringProblem`, `asyncClusteringProblem`, `getClusterSolution`               |\n| Custom Profiles    | `postProfile`, `getProfile`, `calculateProfile`, `getProfileSolution`, `deleteProfile` |\n\n## More examples\n\nPoint arrays are `[longitude, latitude]`, matching the GraphHopper convention.\n\nRoute between two points:\n\n```ts\nimport { postRoute } from \"@bradford-tech/graphhopper-sdk\";\n\nconst { data } = await postRoute({\n  body: {\n    profile: \"car\",\n    points: [\n      [13.388, 52.517], // Berlin\n      [13.397, 52.529],\n    ],\n  },\n});\n\nconsole.log(data?.paths?.[0]?.distance, data?.paths?.[0]?.time);\n// => 2675.2 (meters), 327000 (milliseconds)\n```\n\nCompute a travel-time matrix between origins and destinations:\n\n```ts\nimport { postMatrix } from \"@bradford-tech/graphhopper-sdk\";\n\nconst { data } = await postMatrix({\n  body: {\n    profile: \"car\",\n    from_points: [[13.388, 52.517]],\n    to_points: [\n      [13.397, 52.529],\n      [13.428, 52.523],\n    ],\n    out_arrays: [\"times\"],\n  },\n});\n\nconsole.log(data?.times);\n// => [[327, 681]]  (seconds, one row per origin)\n```\n\n## Compared to the official client\n\nGraphHopper publishes [`@graphhopper/directions-api-js-client`](https://www.npmjs.com/package/@graphhopper/directions-api-js-client). The two take different approaches:\n\n|                     | `@bradford-tech/graphhopper-sdk`                     | `@graphhopper/directions-api-js-client`             |\n| ------------------- | ---------------------------------------------------- | --------------------------------------------------- |\n| Source              | Generated from the OpenAPI spec                      | Hand-written JS classes                             |\n| Types               | Full TypeScript types for every request and response | None (no `.d.ts`)                                   |\n| Module format       | ESM, tree-shakeable per operation                    | Webpack UMD bundle, single import                   |\n| Endpoint coverage   | All 8 API areas (20 operations)                      | 6 areas — no Clustering or Custom Profiles          |\n| Runtime deps        | None (platform `fetch`)                              | Bundled                                             |\n| Convenience helpers | None                                                 | Polyline decoding, turn-sign labels, default params |\n\nIf you want typed responses, modern bundling, and the newer endpoints, use this SDK. If you rely on the official client's built-in helpers (such as polyline decoding), it still serves that case well.\n\n## Development\n\n```bash\ngit clone https://github.com/bradford-tech/graphhopper-sdk.git\ncd graphhopper-sdk\nnpm install\nnpm run build\n```\n\n### Common commands\n\n```bash\nnpm run generate     # regenerate the client from spec/openapi.json\nnpm run type-check   # tsc --noEmit\nnpm run lint         # eslint (zero warnings tolerance)\nnpm run fix          # prettier + eslint auto-fix, then type-check\n```\n\nThe client in `src/client` is generated by [`@hey-api/openapi-ts`](https://heyapi.dev) from `spec/openapi.json`. A daily GitHub Actions workflow pulls the latest [GraphHopper spec](https://docs.graphhopper.com/_bundle/openapi.json), regenerates the client, and opens a PR if anything changed.\n\n## Contributing\n\nBug reports and pull requests are welcome on [GitHub](https://github.com/bradford-tech/graphhopper-sdk).\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}