open-index/open-npm huggingface dataset:
npm package: @lrclib.js/api-types
Description: <div align="center">     <img src="https://raw.githubusercontent.com/catplvsplus/lrclib.js/refs/heads/main/apps/website/static/banner.png" width="300">     <h3 style="margin-top: 0">A library for interacting with lrclib.net API</h3> </div>
Latest version: 1.1.0

<div align="center">
    <img src="https://raw.githubusercontent.com/catplvsplus/lrclib.js/refs/heads/main/apps/website/static/banner.png" width="300">
    <h3 style="margin-top: 0">A library for interacting with lrclib.net API</h3>
</div>

---

```
npm i @lrclib.js/api-types
```

## Usage

```ts
import { type APIOptions, type APIResponse, Routes } from '@lrclib.js/api-types';

const options: APIOptions.Get.Search = {
    q: 'Afterglow Taylor Swift'
};

const response: APIResponse.Get.SearchQuery = await fetch(
    Routes[`/api/search`](options)
).then(res => res.json());
```
npm package: @lrclib.js/challenge-solver
Description: <div align="center">     <img src="https://raw.githubusercontent.com/catplvsplus/lrclib.js/refs/heads/main/apps/website/static/banner.png" width="300">     <h3 style="margin-top: 0">A library for interacting with lrclib.net API</h3> </div>
Latest version: 1.1.0

<div align="center">
    <img src="https://raw.githubusercontent.com/catplvsplus/lrclib.js/refs/heads/main/apps/website/static/banner.png" width="300">
    <h3 style="margin-top: 0">A library for interacting with lrclib.net API</h3>
</div>

---

```
npm i @lrclib.js/challenge-solver
```

## Usage

```js
import { ChallengeSolver } from '@lrclib.js/challenge-solver';

const challengeSolver = new ChallengeSolver({
    prefix: 'VXMwW2qPfW2gkCNSl1i708NJkDghtAyU',
    target: '000000FF00000000000000000000000000000000000000000000000000000000'
});

const token = await challengeSolver.solve().then(data => data.token);
```