# findagrave-client

TypeScript client for FindAGrave GraphQL and REST APIs

## Installation

```bash
npm install findagrave-client
```

## Quick Start

```typescript
import { createFindAGraveClient, searchCemeteries, searchLocations } from 'findagrave-client';

// Quick cemetery search
const cemeteries = await searchCemeteries('Cedar Park');

// Quick location search
const locations = await searchLocations('Paramus');

// Create client for advanced usage
const client = createFindAGraveClient();
const result = await client.searchCemeteries('Riverside Cemetery');
```

## API Methods

### Client Methods
- `searchCemeteries(name)` - Search for cemeteries by name
- `searchLocations(name)` - Search for cities, counties, states, countries
- `browseLocations(parents)` - Browse location hierarchy
- `getCemeteriesInBoundingBox(params)` - Find cemeteries in geographic area
- `getLocationById(ids)` - Get location details by ID
- `getLocationCoordinates(ids)` - Get GPS coordinates for locations
- `searchMemorials(cemeteryId, params)` - Search memorials in specific cemetery
- `searchMemorialsGeneral(params)` - Search memorials across all cemeteries
- `makePersistedQuery(name, variables)` - Make direct GraphQL queries

### Convenience Functions
For quick operations without creating a client instance:
- `searchCemeteries(name)`, `searchLocations(name)`, `getCemeteriesNear(lat, lon, radius)`
- `searchMemorials(cemeteryId, firstname, lastname, cemeteryName)`
- `searchMemorialsGeneral(firstname, lastname, location)`
- `browseFromTop()`, `browseContinent(continentId)`, `browseCountry(continentId, countryId)`

## Features

- 🏛️ **Cemetery Search**: Find cemeteries by name with autocomplete
- 📍 **Location Search**: Search for cities, counties, states, and countries
- 🗺️ **Geographic Search**: Find cemeteries within bounding boxes
- 🌍 **Hierarchical Browsing**: Browse locations from continents down to cities
- 👤 **Memorial Search**: Search for individual memorials/graves
- 🔍 **Coordinate Lookup**: Get GPS coordinates for locations
- 🎯 **Type Safety**: Full TypeScript support with proper types

## Documentation

For complete documentation, examples, and advanced usage, visit:
**https://github.com/selfagency/findagrave-client**

## License

MIT
