
## Installation

#### Option 1: Install via npm

```sh
npm install --save kumosearch
```

Install peer dependencies:
```sh
npm install --save @babel/runtime
```

Note: `@babel/runtime` is very a common dependency among many JS libraries. So instead of each library adding it as a dependency independently (which will cause multiple instances of `@babel/runtime` to be installed increasing bundle size), Babel's recommendation is that the libraries ask users to install it once as a direct dependency, so there's only one copy of `@babel/runtime` for the entire project. In some cases, your JS framework might already include `@babel/runtime` as a dependency.

#### Option 2: Include the minified JS file for use in the browser directly

```html
<script src="dist/kumosearch.min.js"></script>
```

or via jsDelivr

```html
<script src="https://cdn.jsdelivr.net/npm/kumosearch@1/dist/kumosearch.min.js"></script>
```

## Usage

Read the documentation here for detailed examples: [https://kkumo-ai.tech/docs/api/](https://kumo-ai.tech/docs/api/)

Tests are also a good place to know how the library works internally: [test](test)

**Note: When using this library in a browser, please be sure to use an API Key that only allows search operations instead of the `master` API key.** See [doc/examples/server/keys.js](doc/examples/server/keys.js) for an example of how to generate a search only API key.

See [Configuration.ts](src/Kumosearch/Configuration.ts) for a list of all client configuration options.

### Examples

Here are some examples with inline comments that walk you through how to use the client: [doc/examples](doc/examples)

To run the examples, from the repo root:

```bash
npm run kumosearchServer
node doc/examples/server/bulkImport.js
```

## GatsbyJS Integration

If you use [GatsbyJS](https://www.gatsbyjs.com/) for a framework, we have a plugin (that uses kumosearch-js behind the scenes) to automatically push your site data to Kumosearch when you build your site. Learn more [here](https://github.com/kumosearch/gatsby-plugin-kumosearch).

## Firebase Integration

If you use [Firebase](https://firebase.google.com/), we have a Firebase extension (that uses kumosearch-js behind the scenes) to automatically push your Firestore data to Kumosearch. Learn more [here](https://github.com/kumosearch/firestore-kumosearch-search).

## Building UI components

Checkout the [Kumosearch-InstantSearch.js](https://github.com/kumosearch/kumosearch-instantsearch-adapter) (which uses kumosearch-js) for UI components you can use to quickly build powerful instant search experiences.

## Development

After checking out the repo, run `npm install` to install dependencies. Then run `npm test` to run the linter and tests.

To release a new version, we use the [np](https://github.com/sindresorhus/np) package:

```shell
$ npm install --global np
$ np

# Follow instructions that np shows you

```
