open-index/open-npm huggingface dataset:
npm package: @graffy/explore
Description: Graffy client library for the browser.
Author: aravind
Latest version: 0.18.0

# Graffy Client

Graffy client library for the browser.

It uses the `fetch()` and `EventStream` APIs, and requires these to be polyfilled by your application if you wish to support Internet Explorer.

Graffy Client is intended to be used with a Node.js server running Graffy Server, but should work with any server implementing the [Graffy/HTTP protocol](https://graffy.org#/Protocol).

See [Graffy documentation](https://graffy.org#/GraffyClient) for more.
npm package: @graffy/fill
Description: Graffy module for fulfilling queries using multiple backends, traversing links and turning subscriptions into live queries.
Author: aravind
Latest version: 0.18.0

# Graffy Fill

Graffy module for fulfilling queries using multiple backends, traversing links and turning subscriptions into live queries.

See [Graffy documentation](https://graffy.org#/GraffyClient) for more.
npm package: @graffy/index-watcher
Description: Watch provider for the index pattern:
Author: aravind
Latest version: 0.14.8-beta.1

# Graffy Index Watcher

Watch provider for the index pattern:

```js
{
  users: { userId: { ... }, ... },
  users$: {
    encodedParameters: page({
      [indexKey]: link('/users/userId'),
      ...
    }),
    ...
  }
}
```

Here, users\$ is an _index_ into the users collection.

While it is straightforward to create a watch provider (change stream) for the `users` tree, it is not as easy to create one for the `users$` tree, especially when arbitrary filtering parameters are supported. IndexWatcher can help craft an index change stream using the entity change stream and an indexing function:

```js
store.use(
  '/users$',
  IndexWatcher(
    '/users', // Entity path prefix
    { country: true, createTime: true }, // Entity sub-query
    (user, params) => {
      // Indexing function
      if (params.country !== user.country) return; // Exclude from index.
      return [user.createTime]; // An array of index keys.
    },
  ),
);
```

This assumes:

- Index and entity trees with the same structure as above

See [Graffy documentation](https://aravindet.github.io/graffy/) for more.
npm package: @graffy/server
Description: Node.js library for building an API for a Graffy store.
Author: aravind
Latest version: 0.18.0

# Graffy Server

Node.js library for building an API for a Graffy store.

This creates an HTTP request handler for serving an API that is compatible with Graffy Client. The request handler can be used with the Node.js built-in http, https and http2 `createServer()` and with Express.js.

See [Graffy documentation](https://graffy.org#/GraffyServer) for more.