{"_id":"@ahm-labs/fast-address-uk","name":"@ahm-labs/fast-address-uk","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@ahm-labs/fast-address-uk","version":"1.0.0","description":"Ultra-fast, zero-dependency UK Address Autocomplete, Postcode Lookup & UPRN Geocoding SDK with React hooks.","author":{"name":"AHM Labs","email":"dev@ahm-labs.com","url":"https://ahm-labs.com"},"license":"MIT","keywords":["uk-address","address-autocomplete","postcode-lookup","uprn","geocoding","ordnance-survey","react-address-lookup","fastaddress","uk-postcode","checkout-address"],"homepage":"https://fastaddress.ahm-labs.com","repository":{"type":"git","url":"git+https://github.com/AHM-Labs/flashaddress.git","directory":"sdk"},"bugs":{"url":"https://github.com/AHM-Labs/flashaddress/issues"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.cjs"}},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest run","prepublishOnly":"npm run test && npm run build"},"peerDependencies":{"react":">=16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":">=16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"devDependencies":{"@testing-library/react":"^16.2.0","@types/node":"^22.13.0","@types/react":"^19.0.8","@types/react-dom":"^19.0.3","jsdom":"^26.0.0","react":"^19.0.0","react-dom":"^19.0.0","tsup":"^8.3.6","typescript":"^5.7.3","vitest":"^3.0.5"},"_id":"@ahm-labs/fast-address-uk@1.0.0","gitHead":"3504fd4988851d4c8ca71e7d76f3f55df4804078","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-qshMUM3q+A1YCSfZQumkJlGBVjTHxGIjdD+5VB3+zgXuzED9wbXaXpsp27CNBRZNUTAmOe/6bSO+wfaSWMNiuA==","shasum":"a4dd29f6e0e1e6a4f9307a8bef3cb92b783c3c27","tarball":"https://registry.npmjs.org/@ahm-labs/fast-address-uk/-/fast-address-uk-1.0.0.tgz","fileCount":21,"unpackedSize":70105,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCZizSkriW6GjB/5Am7cgc0T8gsJmr1bnSuRNwmsVvOIQIhAN9S3jyPuXDhjHfVLxEFUrWpu4N2iL7SkInVw43CF35h"}]},"_npmUser":{"name":"ahmlabs","email":"aaron@ahm-labs.com"},"directories":{},"maintainers":[{"name":"ahmlabs","email":"aaron@ahm-labs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fast-address-uk_1.0.0_1786984121858_0.26881368336490885"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T16:28:41.712Z","1.0.0":"2026-08-17T16:28:41.998Z","modified":"2026-08-17T16:28:42.264Z"},"maintainers":[{"name":"ahmlabs","email":"aaron@ahm-labs.com"}],"description":"Ultra-fast, zero-dependency UK Address Autocomplete, Postcode Lookup & UPRN Geocoding SDK with React hooks.","homepage":"https://fastaddress.ahm-labs.com","keywords":["uk-address","address-autocomplete","postcode-lookup","uprn","geocoding","ordnance-survey","react-address-lookup","fastaddress","uk-postcode","checkout-address"],"repository":{"type":"git","url":"git+https://github.com/AHM-Labs/flashaddress.git","directory":"sdk"},"author":{"name":"AHM Labs","email":"dev@ahm-labs.com","url":"https://ahm-labs.com"},"bugs":{"url":"https://github.com/AHM-Labs/flashaddress/issues"},"license":"MIT","readme":"# @ahm-labs/fast-address-uk ⚡\n\n> Ultra-fast, zero-dependency UK Address Autocomplete, Postcode Lookup, and Ordnance Survey UPRN Geocoding SDK with React hooks.\n\n[![npm version](https://img.shields.io/npm/v/@ahm-labs/fast-address-uk.svg)](https://www.npmjs.com/package/@ahm-labs/fast-address-uk)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Bundle Size](https://img.shields.io/bundlephobia/minzip/@ahm-labs/fast-address-uk)](https://bundlephobia.com/package/@ahm-labs/fast-address-uk)\n\n---\n\n## Features\n\n- ⚡ **Sub-15ms Latency**: Query 21.1+ million UK addresses in under 15ms.\n- 🎯 **Official OS UPRN & Coordinates**: Every address result includes the official Ordnance Survey Unique Property Reference Number and WGS84 GPS coordinates.\n- ⚛️ **First-Class React Hook**: `useFastAddress` with built-in debouncing, race-condition mitigation, and state management.\n- 🪶 **Zero Dependencies**: Core client uses native Web `fetch` (< 2KB gzipped).\n- 🌐 **Universal Runtime**: Works out of the box in Node.js 18+, Bun, Deno, Cloudflare Workers, Next.js (App Router & Pages), Vite, Astro, and Browsers.\n- 🛡️ **Full TypeScript Support**: Comprehensive exported types (`AddressResult`, `LookupOptions`, `UseFastAddressOptions`).\n\n---\n\n## Installation\n\n```bash\nnpm install @ahm-labs/fast-address-uk\n# or\npnpm add @ahm-labs/fast-address-uk\n# or\nyarn add @ahm-labs/fast-address-uk\n```\n\n---\n\n## Quickstart\n\n### 1. React / Next.js Hook (`/react`)\n\n```tsx\nimport React from 'react';\nimport { useFastAddress } from '@ahm-labs/fast-address-uk/react';\n\nexport function CheckoutAddressSearch() {\n  const { query, results, isLoading, error, search, clear } = useFastAddress({\n    debounceMs: 200 // optional, default: 200ms\n  });\n\n  return (\n    <div className=\"address-picker\">\n      <input\n        type=\"text\"\n        value={query}\n        onChange={(e) => search(e.target.value)}\n        placeholder=\"Enter postcode or street (e.g. SW1A 1AA)...\"\n      />\n\n      {isLoading && <p>Searching...</p>}\n      {error && <p>Error loading addresses</p>}\n\n      <ul>\n        {results.map((addr) => (\n          <li key={addr.id || addr.uprn} onClick={() => console.log('Selected:', addr)}>\n            <strong>{addr.address_string}</strong> ({addr.postcode})\n            <small> • UPRN: {addr.uprn}</small>\n          </li>\n        ))}\n      </ul>\n    </div>\n  );\n}\n```\n\n### 2. Vanilla JavaScript / Node.js / Backend\n\n```typescript\nimport { lookupAddress } from '@ahm-labs/fast-address-uk';\n\n// Query by partial street name or postcode\nconst addresses = await lookupAddress('10 Downing Street');\n\nconsole.log(addresses);\n/*\n[\n  {\n    \"id\": 100121005441,\n    \"address_string\": \"10 Downing Street, Wiltshire\",\n    \"postcode\": \"SN14 0AA\",\n    \"latitude\": 51.461924,\n    \"longitude\": -2.12757,\n    \"uprn\": 100121005441\n  },\n  ...\n]\n*/\n```\n\n### 3. Reusable Client Instance\n\n```typescript\nimport { createFastAddressClient } from '@ahm-labs/fast-address-uk';\n\nconst client = createFastAddressClient({\n  apiKey: process.env.FAST_ADDRESS_API_KEY,\n  defaultLimit: 5\n});\n\nconst addresses = await client.lookup('M1 1AD');\n```\n\n### 4. Zero-Install Script Tag (WordPress, Shopify, Webflow)\n\n```html\n<input type=\"text\" id=\"postcode-input\" placeholder=\"Start typing address...\" />\n\n<script src=\"https://fastaddress.ahm-labs.com/sdk/fast-address.min.js\"></script>\n<script>\n  FastAddress.attachToInput('#postcode-input', {\n    onSelect: function(address) {\n      console.log('Selected address:', address.address_string);\n      console.log('UPRN:', address.uprn);\n      console.log('Coordinates:', address.latitude, address.longitude);\n    }\n  });\n</script>\n```\n\n---\n\n## Response Object Interface\n\n```typescript\ninterface AddressResult {\n  /** Unique database identifier */\n  id: number;\n  /** Formatted, human-readable address line */\n  address_string: string;\n  /** Official UK postcode (e.g. \"SW1A 1AA\") */\n  postcode: string;\n  /** WGS84 GPS Latitude */\n  latitude: number;\n  /** WGS84 GPS Longitude */\n  longitude: number;\n  /** Official Ordnance Survey Unique Property Reference Number */\n  uprn: number | null;\n}\n```\n\n---\n\n## API Keys & Pricing\n\nFastAddress UK is free for initial development and prototypes. For high-volume production checkouts, grab an API key from our [RapidAPI Portal](https://rapidapi.com/ahm-labs-ahm-labs-default/api/fastaddress-uk).\n\n---\n\n## License\n\nMIT © [AHM Labs](https://ahm-labs.com)\n","readmeFilename":"README.md","_rev":"1-909cd2d784dedbbd66221ae038ab7906"}