open-index/open-npm huggingface dataset:
npm package: @lyrasearch/lyra
Description: Fast, in-memory, typo-tolerant, full-text search engine written in TypeScript
Author: Michele Riva
Latest version: 0.4.12
Deprecated: Lyra is now called Orama! Install the latest stable version via the @orama/orama package

![Orama. Search, everywhere.](https://github.com/LyraSearch/lyra/raw/main/misc/oramasearch.gif)

**Lyra is changing name to Orama**! Introducing [OramaSearch Inc](https://micheleriva.medium.com/ive-founded-a-company-introducing-oramasearch-inc-f69121b6b1c3).

[![Tests](https://github.com/LyraSearch/lyra/actions/workflows/ci.yml/badge.svg)](https://github.com/LyraSearch/lyra/actions/workflows/ci.yml)

# Join Orama's Slack channel

If you need more info, help, or want to provide general feedback on Orama, join
the
[Lyra Slack channel](https://join.slack.com/t/lyrasearch/shared_invite/zt-1gzvj0mmt-yJhJ6pnrSGuwqPmPx9uO5Q)

# Installation - install via @orama/orama!

You can install Lyra using `npm`, `yarn`, `pnpm`:

```sh
npm i @orama/orama
```

```sh
yarn add @orama/orama
```

```sh
pnpm add @orama/orama
```

Or import it directly in a browser module:

```html
<html>
  <body>
    <script type="module">
      import { create, search, insert } from "https://unpkg.com/@orama/orama@latest/dist/index.js";

      // ...
    </script>
  </body>
</html>
```


# License

Orama is licensed under the [Apache 2.0](/LICENSE.md) license.
npm package: @lyrasearch/plugin-astro
Description: An Astro integration for Lyra
Author: Andres Correa Casablanca
Latest version: 0.1.0

# Lyra's Astro Plugin

This package is a (still experimental) [Lyra](https://lyrajs.io) integration for
[Astro](https://astro.build).

## Usage

### Configuring the Astro integration

```typescript
// In `astro.config.mjs`
import lyra from '@lyrasearch/plugin-astro'

// https://astro.build/config
export default defineConfig({
  integrations: [
    lyra({
      // We can generate more than one DB, with different configurations
      mydb: {
        // Required. Only pages matching this path regex will be indexed
        pathMatcher: /blog\/[0-9]{4}\/[0-9]{2}\/[0-9]{2}\/.+$/,

        // Optional. 'english' by default
        language: 'spanish',

        // Optional. ['body'] by default. Use it to constraint what is used to
        // index a page.
        contentSelectors: ['h1', 'main']
      }
    })
  ]
})
```

When running the `astro build` command, a new DB file will be persisted in the
`dist/assets` directory. For the particular case of this example, it will be
saved in the file `dist/assets/lyraDB_mydb.json`.

### Using generated DBs in your pages

To use the generated DBs in your pages, you can include a script in your
`<head>` section, as the following one:

```html
<head>
  <!-- Other stuff -->
  <script>
    // Astro will do the job of bundling everything for you
    import { getLyraDB, search } from "@lyrasearch/plugin-astro/client"

    // We load the DB that we generated at build time, this is an asynchronous
    // operation, so we must either await, or rely on `.then` calls.
    const db = await getLyraDB('mydb')

    // Now we can search inside our DB. Of course, feel free to use it in more
    // interesting ways.
    console.log('Search Results')
    console.log(search(db, { term: 'mySearchTerm' }))
  </script>
</head>
```

**NOTE:** For now, this plugin only supports readonly DBs. This might change in
the future if there's demand for it.
npm package: @lyrasearch/plugin-data-persistence
Description: Data persistence plugin for Lyra
Author: Michele Riva
Latest version: 0.1.1

# Data Persistence Plugin

[![Tests](https://github.com/LyraSearch/plugin-data-persistence/actions/workflows/tests.yml/badge.svg)](https://github.com/LyraSearch/plugin-disk-persistence/actions/workflows/tests.yml)

This plugin aims to provide data persistence capabilities to Lyra.

| Runtime        | Status                     |
| -------------- | -------------------------- |
| Node.js        | ✅ &nbsp;available          |
| Bun            | ✅ &nbsp;available          |
| V8 isolates    | ✅ &nbsp;available          |
| Major browsers | ✅ &nbsp;available          |
| Deno           | 🚧 &nbsp;under construction |


# Usage

For the complete usage guide, please refer to the [official plugin documentation](https://docs.lyrasearch.io/plugins/data-persistence-plugin).

# License

[Apache-2.0](/LICENSE.md)
npm package: @lyrasearch/plugin-disk-persistence
Description: Disk persistence plugin for Lyra
Author: Michele Riva
Latest version: 0.0.1-alpha.1
Deprecated: moved to @lyrasearch/plugin-data-persistence npm package

# Disk Persistence Plugin

[![Tests](https://github.com/LyraSearch/plugin-disk-persistence/actions/workflows/tests.yml/badge.svg)](https://github.com/LyraSearch/plugin-disk-persistence/actions/workflows/tests.yml)

Experimental stage, use at your own risk.

# Installation

You can install the disk persistence plugin using `npm`, `yarn`, `pnpm`:

```
npm i @lyrasearch/plugin-disk-persistence
```

```
yarn add @lyrasearch/plugin-disk-persistence
```

```
pnpm add @lyrasearch/plugin-disk-persistence
```

# Usage

You can save and restore a database by using the methods exposed by the `plugin-disk-persistence` package. <br />

Given the following database:

```js
import { create, insert } from '@nearform/lyra'

const myPrimaryDB = create({
  schema: {
    quote: 'string',
    author: 'string'
  }
})

insert(myPrimaryDB, {
  quote: 'Impossible is for the unwilling',
  author: 'John Keats'
})

insert(myPrimaryDB, {
  quote: 'I have not failed. I’ve just found 10,000 ways that won’t work.',
  author: 'Thomas A. Edison'
})
```

you can save the database to disk:

```js
import { persist } from '@lyrasearch/plugin-disk-persistence'

persist(myPrimaryDB, 'binary')
```

Available formats are:

- `binary`: saves the database to a compressed, binary file using `dpack` algorithm (**recommended**)
- `json`: saves the database to a JSON file

The `persist` function accepts as a third argument the file name.
When no argument, a default name will be used: `lyra_bump_623432432`.

Note: you can use the environment variable `LYRA_DB_NAME` to override the default name.

At this point, you can also restore the database from disk:

```js
import { search } from '@nearform/lyra'
import { restore } from '@lyrasearch/plugin-disk-persistence'

const mySecondaryDB = restore('binary')

search(mySecondaryDB, {
  term: 'work'
})
```

# License
[Apache-2.0](/LICENSE.md)
npm package: @lyrasearch/plugin-docusaurus
Description: Docusaurus plugin for local search powered by lyra
Latest version: 0.1.0

![CI](https://github.com/lyrasearch/plugin-docusaurus/actions/workflows/ci.yml/badge.svg?event=push)

# Docusaurus Lyra Search Plugin

## Usage

Install the plugin:

```bash
npm install --save @lyrasearch/plugin-docusaurus
```

```bash
yarn add @lyrasearch/plugin-docusaurus
```

Add the plugin to your `docusaurus.config.js`:

```js
plugins: ["@lyrasearch/plugin-docusaurus"];
```

# License

Licensed under the [Apache 2.0](/LICENSE.md) license.
npm package: @lyrasearch/plugin-match-highlight
Description: Lyrasearch plugin for search match highlighting
Latest version: 0.1.0

# Match highlight Plugin
[![Tests](https://github.com/nearform/lyra/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/nearform/lyra/actions/workflows/tests.yml)

This plugin aims to provide match location for search results.

# Usage

For the complete usage guide, please refer to the [official plugin documentation](https://docs.lyrasearch.io/plugins/plugin-system/match-highlight).

# License

[Apache-2.0](/LICENSE.md)
npm package: @lyrasearch/plugin-parsedoc
Description: Lyra plugin to populate an index with HTML/Markdown documents
Latest version: 0.1.0

# Parsedoc Plugin
[![Tests](https://github.com/LyraSearch/plugin-parsedoc/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/LyraSearch/plugin-parsedoc/actions/workflows/tests.yml)

This plugin aims to generate an index for lyra from html files

# Usage

For the complete usage guide, please refer to the [official plugin documentation](https://docs.lyrasearch.io/plugins/parsedoc-plugin).

# License

[Apache-2.0](/LICENSE.md)
npm package: @lyrasearch/plugin-token-relevance
Description: Plugin to add TF-IDF scores to a Lyra index
Author: Michele Riva
Latest version: 0.0.1-alpha.2

# Token Relevance Plugin

[![Tests](https://github.com/LyraSearch/plugin-token-relevance/actions/workflows/tests.yml/badge.svg)](https://github.com/LyraSearch/plugin-token-relevance/actions/workflows/tests.yml)

Plugin to add TF-IDF scores to a Lyra index.

| Runtime        | Status            |
| -------------- | ----------------- |
| Node.js        | ✅ &nbsp;available |
| Bun            | ✅ &nbsp;available |
| V8 isolates    | ✅ &nbsp;available |
| Major browsers | ✅ &nbsp;available |
| Deno           | ✅ &nbsp;available |

# Usage

For the complete usage guide, please refer to the
[official plugin documentation](https://docs.lyrajs.io/docs/plugins/plugin-token-relevance).

## TL;DR

```js
import { create, insert } from "@lyrasearch/lyra";
import { generateScores } from "plugin-token-relevance";

const db = create({
  schema: {
    author: "string",
    quote: "string",
  },
});

insert(db, {
  quote: "The quick brown fox jumps over the lazy dog",
  author: "John Doe",
});

insert(db, {
  quote: "This quick brown fox is so quick! How can it be so quick?",
  author: "Jane Doe",
});

insert(db, {
  quote: "I have a pair of red shoes.",
  author: "Jimmy Does",
});

const scores = generateScores(db);

console.log(scores);
```

```js
{
  quote: {
    '76465079-2': {
      the: 0.24413606414846878,
      quick: 0.04505167867868493,
      brown: 0.04505167867868493,
      fox: 0.04505167867868493,
      jumps: 0.12206803207423439,
      over: 0.12206803207423439,
      lazy: 0.12206803207423439,
      dog: 0.12206803207423439
    },
    '76465079-42': {
      this: 0.08450863758985458,
      quick: 0.0935688711018841,
      brown: 0.03118962370062803,
      fox: 0.03118962370062803,
      is: 0.08450863758985458,
      so: 0.16901727517970916,
      how: 0.08450863758985458,
      can: 0.08450863758985458,
      it: 0.08450863758985458,
      be: 0.08450863758985458
    },
    '76465079-60': {
      i: 0.1569446126668728,
      have: 0.1569446126668728,
      a: 0.1569446126668728,
      pair: 0.1569446126668728,
      of: 0.1569446126668728,
      red: 0.1569446126668728,
      shoes: 0.1569446126668728
    }
  },
  author: {
    '76465079-2': { john: 0.5493061443340548, doe: 0.2027325540540822 },
    '76465079-42': { jane: 0.5493061443340548, doe: 0.2027325540540822 },
    '76465079-60': { jimmy: 0.5493061443340548, does: 0.5493061443340548 }
  }
}
```

# License

[Apache-2.0](/LICENSE.md)
npm package: @lyre/fretboard
Description: Create configurable SVG chord charts for stringed instruments.
Author: Attibee
Latest version: 2.2.0

# Lyre Fretboard

Create configurable SVG chord charts for stringed instruments.

## Installation

`npm install @lyre/fretboard`

## Usage

```javascript
var Fretboard = require('@lyre/fretboard');

var myFretboard = new Fretboard({
    container: "myContainerId",
    strings: 6,
    frets: 5,
    showFretLabels: true,
    tuning: ['E', 'A', 'D', 'G', 'B', 'e'],

    //F chord
    fingering: [
        {
            string: [1, 6],
            fret: 1,
            finger: 1
        },
        {
            string: 3,
            fret: 2,
            finger: 2
        },
        {
            string: 4,
            fret: 3,
            finger: 4
        },
        {
            string: 5,
            fret: 3,
            finger: 3
        } 
    ]
});
```


## Output

![Example code output](https://github.com/Attibee/Lyre-Fretboard/blob/assets/fretboard_example.png?raw=true)
npm package: @lyre/note
Description: Utilities to express, parse and output musical notes in Scientific and Helmholtz formats.
Author: Attibee
Latest version: 2.1.1

# Lyre Note 2.1

Utilities to manipulate, parse and output musical notes. Lyre Note is able to perform common manipulations such as transposition of notes and conversion between sharps and flats. Functions Parse and Stringify natively support Scientific and Helmholtz notations and conversion between the two.

## Installation

`npm install @lyre/note`

## Usage

### Basic usage

```javascript
var Note = require('@lyre/note');

//create a note
var myNote = new Note('Db', 4);

myNote.getSharp(); //return C#
myNote.transpose(2); //transposes a whole step up to Eb
myNote.transpose(-2); //transposes a whole step down to B
```

### Parsing

```javascript
var Parse = require("@lyre/note").Parse;

var myScientificNote = Parse("C4"); //create middle C in scientific notation, scientific is default
var myHelmholtzNote = Parse("c'", Parse.Helmholtz); //create middle C in helmholtz notation
```

### Stringifying note objects

```javascript
var Stringify = require("@lyre/note").Stringify;
var Parse = require("@lyre/note").Parse;

var myNote = Parse("C4"); //create middle C in scientific notation
console.log( Stringify( myNote, Stringify.Helmholtz ) ); //then output in helmholtz notation

//note also has a convenience method to stringify
myNote.toString(Stringify.Helmholtz);
```

## API

[Visit the API documentation.](https://github.com/Attibee/Lyre-Note/wiki/Note-API)

## Test

From the root directory

`npm run test`