open-index/open-npm huggingface dataset:
npm package: @leichtgewicht/full-icu
Description: install 'full-icu' data for your current node
Author: Copyright © 1991-2016 Unicode, Inc. All rights reserved.
Latest version: 1.3.3

Install full ICU data
###

to use:

	npm install full-icu

or for global install:

	npm install -g full-icu

Instructions will be printed out on how to activate this data for your version of node.

The work gets done in a `postinstall` script which copies the `icudt*.dat` file
up to this module's level.


API
===

`require('full-icu')` returns a few properties:

* `nodever` - the full Node version (ex: `4.2.0`)

* `node_maj` - the major part of the node version (ex: `4`)

* `node_min` - the minor part of the node version (ex `2`)

* `icu_small` - if truthy, means that node was built with
small-icu (English only). If falsy, means that the `full-icu`
package is not relevant.

* `icuver` - full ICU version, if available, such as 55.1. Sometimes only the major
version is available.

* `icumaj` - ICU major ver, such as `55`. May be === `icuver`.

* `icumin` - ICU minor version, such as `1` if available.

* `icuend` - ICU endianness - *l*ittle, *b*ig or *e*bcdic.

* `icupkg` - the `npm` package needed to get full ICU data, if any.

* `icudat` - the raw data file ICU expects to find for full data, if any.

* `noi18n` - if truthy, no ICU / Intl build was enabled for your node version. Sorry.

* `oldNode` - Node is older (`<0.12`) than this package can really think about.

BIN
===

`node-full-icu-path` will print the full `icudt*.dat` path, if available.

MIRROR
===
This is a mirror of source  currently  in
http://source.icu-project.org/repos/icu/tools/branches/srl/npm11617/release/c/icu4c-data-npm/full-icu

COPYRIGHT
===

This software is part of ICU, and as such is:

Copyright (C) 2015 IBM Corporation and Others. All Rights Reserved.

A copy of the ICU license is in [LICENSE](LICENSE)
or is available at http://bugs.icu-project.org/trac/browser/icu/tags/latest/LICENSE
npm package: @leichtgewicht/ip-codec
Description: Small package to encode or decode IP addresses from buffers to strings.
Author: Martin Heidegger
Latest version: 2.0.5

# @leichtgewicht/ip-codec

Small package to encode or decode IP addresses from buffers to strings.
Supports IPV4 and IPV6.

## Usage

The basics are straigthforward

```js
import { encode, decode, sizeOf, familyOf } from '@leichtgewicht/ip-codec'

const uint8Array = encode("127.0.0.1")
const str = decode(uint8Array)

try {
  switch sizeOf(str) {
    case 4: // IPv4
    case 16: // IPv6
  }
  switch familyOf(str) {
    case: 1: // IPv4
    case: 2: // IPv6
  }
} catch (err) {
  // Invalid IP
}
```

By default the library will work with Uint8Array's but you can bring your own buffer:

```js
const buf = Buffer.alloc(4)
encode('127.0.0.1', buf)
```

It is also possible to de-encode at a location inside a given buffer

```js
const buf = Buffer.alloc(10)
encode('127.0.0.1', buf, 4)
```

Allocation of a buffer may be difficult if you don't know what type the buffer:
you can pass in a generator to allocate it for you:

```js
encode('127.0.0.1', Buffer.alloc)
```

You can also de/encode ipv4 or ipv6 specifically:

```js
import { v4, v6 } from '@leichtgewicht/ip-codec'

v4.decode(v4.encode('127.0.0.1'))
v6.decode(v6.encode('::'))
```

## History

The code in this package was originally extracted from [node-ip](https://github.com/indutny/node-ip) and since improved.

Notable changes are the removal of the `Buffer` dependency and better support for detection of
formats and allocation of buffers.

## License

[MIT](./LICENSE)
npm package: @leichtgewicht/msee
Description: [Fork] Msee is a command-line tool to read Markdown file in your terminal, and it's a library help your command-line software to output readable markdown content.
Author: Firede
Latest version: 0.3.1

msee
===

[![NPM version](https://img.shields.io/npm/v/msee.svg?style=flat-square)](https://npmjs.org/package/msee)
[![Dependencies Status](https://img.shields.io/david/firede/msee.svg?style=flat-square)](https://david-dm.org/firede/msee)
[![download per month](https://img.shields.io/npm/dm/msee.svg?style=flat-square)](https://npmjs.org/package/msee)
[![License](https://img.shields.io/npm/l/msee.svg?style=flat-square)](https://npmjs.org/package/msee)

*msee* is a command-line tool to read markdown file.

And it's a library help your command-line software to output readable markdown content.

## Screenshot

<img width="752" alt="msee" src="https://cloud.githubusercontent.com/assets/157338/10902801/531ba216-823d-11e5-87ac-986b8d5ea4cc.png">

## Installation

    $ npm install -g msee

## Usage

    msee <file>
    msee <file> | less
    cat <file> | msee

## API

```javascript
var msee = require('msee');

// parse markdown text
msee.parse('> hello world!');

// parse markdown file
msee.parseFile('~/doc/readme.md');
```

## Contributors

https://github.com/firede/msee/graphs/contributors

## License

MIT &copy; [Firede](https://github.com/firede)

---

[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/firede/msee/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
npm package: @leichtgewicht/network-interfaces
Description: Observing network interfaces and changes to them.
Author: Martin Heidegger
Latest version: 1.0.3

# network-interfaces

<a href="https://travis-ci.org/martinheidegger/network-interfaces"><img src="https://travis-ci.org/martinheidegger/network-interfaces.svg?branch=master" alt="Build Status"/></a>
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![Maintainability](https://api.codeclimate.com/v1/badges/bcf4a208312035681141/maintainability)](https://codeclimate.com/github/martinheidegger/network-interfaces/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/bcf4a208312035681141/test_coverage)](https://codeclimate.com/github/martinheidegger/network-interfaces/test_coverage)

`network-interfaces` is similar to `os.networkInterfaces()` but offers a cross-platform util to listen to changes
in the network setup.

`npm i @leichtgewicht/network-interfaces --save`

## Usage

The simplest usage of it is by using creating a change-stream:

```javascript
const { networkInterfaces, JSONStringMode } = require('@leichtgewicht/network-interfaces')
const { changes, warnings } = networkInterfaces.stream(JSONStringMode.line)

changes.pipe(process.stdout)
warnings.pipe(process.stderr)
```

By the way, you can also get this through npx 😍

```sh
$ npx @leichtgewicht/network-interfaces
```

## API

For the time being, look into:

[./index.d.ts](./index.d.ts)


### License 

[MIT](./LICENSE)
npm package: @leichtgewicht/pack-ts
Description: Optionionated pack script for typescript libraries
Author: Martin Heidegger
Latest version: 1.0.1

# @leichtgewicht/pack-ts

Package script for typescript libraries. Prepares a `./dist` folder with reduced `package.json` that can then be published


```bash
npx @leichtgewicht/pack-ts
```

## Warning: very opinionated built tool

This tool:

- runs `npm run build-ts` to build the typescript code
- removes unnecessary parts from the package.json like `private` or `devDependencies` in the dist folder.
- removes compiled versions of `__tests__`
- makes `./dist` a root which makes deep require statements easier
- adds `./src` to the `./dist` folder _(without the `__tests__`!)_ 
- subsequentally fixes all the sourcemap entries to to point to the right sources.
- copies a `Readme.md` and `LICENSE` file into the distribution

## License

[MIT](./LICENSE)
npm package: @leichtgewicht/prism-cli
Description: Syntax highlighting for command line
Author: Jakub T. Jankiewicz
Latest version: 0.4.0

## Prims-cli

Prism-cli is small script for highlighting of source code files from command line

It use awesome [prism](https://github.com/PrismJS/prism) library by Lea Verou and support all languages that prism support but not all tokens are supported, ANSI colors are handled by [ansi-256-colors](https://github.com/jbnicolai/ansi-256-colors)

[![npm](https://img.shields.io/badge/npm-0.3.1-blue.svg)](https://www.npmjs.com/package/prism-cli)

## Installation

```
npm install -g prism-cli
```

## Usage

```
cat {FILENAME} | prism -l {LANGAUGE}
```

or

```
prism -l {LANGUAGE} -f {FILENAME}
```

if you want to use less you need to use -R option:

```
prism --color=256 -l {LANGUAGE} -f {FILENAME} | less -R
```

You need --color option because of [detection of 256 colors](https://github.com/chalk/supports-color) don't work in less because it's not real terminal. If your terminal don't support 256 colors you can use --color without argument.

If for some reason you need ANSI formatting for each line, like when you have long multiline comments and you use tail or head to get only few lines you can use -n option to have ANSI formatting on each line:

```
prism -l {LANGUAGE} -f {FILENAME} -n | tail -n 10
```

If you need to get the html code instead of the terminal output you can pass the `--html` parameter

```
prism -l {LANGUAGE} -f {FILENAME} --html
```

## Contribution

If use some language that lack of colors for prism token you can create Pull Request, I will happly merge.


## License

Licensed under [MIT](http://opensource.org/licenses/MIT) license

Copyright (c) 2017 [Jakub T. Jankiewicz](https://jcubic.pl/jakub-jankiewicz)
npm package: @leichtgewicht/quickhost
Description: Hosts html files temporarily based on a max amount of size in a LRU cache. Allows upload using secret keys.
Author: Martin Heidegger
Latest version: 1.1.0

# Quickhost

Server and upload-client to quickly host a single static html page - useful for [browserstack](https://browserstack.com) test.

## Motivation

To test JavaScript code running in a browser, browserStack offers a good test platform but the selenium tests require the html
files to be available in the internet. The problem is if you have files locally: how can you make them accessible by browserstack?

This is a simple http hosting server that - using a secret - allows to upload any given html file and hosts it for a limited amount
of time. It also has a limit on amount of files to be hosted which means it cleans up after itself.

## Start a server

Prerequisites: Node running!

```sh
$ env \
    QUICKHOST_SECRET=$(node -p "crypto.randomBytes(8).toString('hex')") \
    QUICKHOST_MAX=10 # (optional) Max number of html files to be hosted - default 10 \
    QUICKHOST_MAX_SIZE=3145728 # (optional) Max number of bytes of a file to be hosted - default 3 Megabytes \
    PORT=1234 # (optional) Port where the server will connect to - default 1234 \
    HOST=localhost # (optional) Host where the server will connect to - default 0 \
    npx quickhost
```

**Important note:** You should run nginx and letsencrypt to have turn the [server into an https server](https://www.codementor.io/@marcoscasagrande/installing-express-nginx-app-on-ubuntu-18-04-with-ssl-using-certbot-pdt44g5gs).

## Upload

Once the server is running you can upload and download files from that server using a simple API:

1. `npm install @leichtgewicht/quickhost`
2. 
    ```javascript
    const upload = require('quickhost')
    const download = require('node-fetch')
    const server = 'https://quickhost.my-host.com'

    const key = await upload({
      server, // Server url where the quickhost server is running
      secret: 'secret-from-server', // Secret used when starting the quickhost server
      data: '<html><b>Hello World</b></html>', // Data to be uploaded to the quickhost server
      timeout: 5000 // Timeout for the upload
    })

    const data = await fetch(`${server}/${key}`) // Now we can download the server
    ```

## License

[MIT](./LICENSE)
npm package: @leichtgewicht/sql-ts
Description: [Fork] Generate TypeScript definitions from database schemas.
Author: Ryan Poole
Latest version: 2.2.0

<div align="center">

<h1>sql-ts</h1>

[![npm (scoped)](https://img.shields.io/npm/v/@rmp135/sql-ts)](https://www.npmjs.com/package/@rmp135/sql-ts)
[![npm](https://img.shields.io/npm/dw/@rmp135/sql-ts)](https://www.npmjs.com/package/@rmp135/sql-ts)
[![Run Tests](https://github.com/rmp135/sql-ts/actions/workflows/test.yml/badge.svg)](https://github.com/rmp135/sql-ts/actions/workflows/test.yml)

</div>

Generate TypeScript types for tables and views in a SQL database.

Includes comments from tables, views and columns for [supported providers](https://rmp135.github.io/sql-ts/#/?id=comments).

Highly configurable: choose your own [naming](https://rmp135.github.io/sql-ts/#/?id=interfacenameformat) and [casing schemes](https://rmp135.github.io/sql-ts/#/?id=tablenamecasing), [add types](https://rmp135.github.io/sql-ts/#/?id=typemap), [extend base types](https://rmp135.github.io/sql-ts/#/?id=extends), and more.

Supports the following database providers: MySQL, Microsoft SQL Server, SQLite and Postgres.

```sql
CREATE TABLE [dbo].[Employees](
	[EmployeeID] [int] IDENTITY(1,1) NOT NULL,
	[Name] [nvarchar](20) NOT NULL,
	[BirthDate] [datetime] NULL,
	[Photo] [image] NULL
)
```

```ts
export interface EmployeesEntity {
  EmployeeID?: number
  Name: string
  BirthDate?: Date | null
  Photo?: Buffer | null
}
```

## Documentation

Full documentation with all configuration options and node APIs are available at https://rmp135.github.io/sql-ts/.

## Installation

Install into your project using npm / yarn.

`npm install @rmp135/sql-ts`

Install your relevant SQL driver. Refer to the [knex documentation](http://knexjs.org/#Installation-node) to determine which driver you should install. For example `npm install mysql2`.

Create a configuration file, for example `mysql.json`. This will mirror connection details from knex. The `client` property will determine the SQL provider.

The most basic MySQL setup is below, modify as appropriate. Additional options can be applied by referring to the [Config](https://rmp135.github.io/sql-ts/#/?id=config).

```json
{
  "client": "mysql2",
  "connection": {
    "host": "localhost",
    "user": "user",
    "password": "password",
    "database": "my_database"
  }
}
```

## Usage

### CLI

Run `npx @rmp135/sql-ts` with the path of the configuration file created above.

`npx @rmp135/sql-ts -c ./mysql.json`

The file will be exported with the filename `Database.ts` (or with the name specified via the [filename](https://rmp135.github.io/sql-ts/#/?id=filename) config option) at the current working directory.

### Node Module

For finer grained control of the exported types, you can use the node API. See how in the [documentation](https://rmp135.github.io/sql-ts/#/?id=node-module).
npm package: @leichtgewicht/visualwidth
Description: unicode character visual width
Author: Tokuhiro Matsuno
Latest version: 0.1.0

VisualWidth
===========

This is a unicode character's visual width calculator for javascript.

This module supports node.js, too.

SYNOPSIS
--------

    var vw = require('./visualwidth');
    console.log(vw('あいうabc')); # => 9
    console.log(vw.width('あいうabc')); # => 9
    console.log(vw.truncate('ほう。hasegawaさん', 7, '...')); # => "ほう..."
    console.log(vw.substr('あいうabc', 1, 4)); # => "いうab"
    console.log(vw.substring('あいうabc', 2, 4)); # => "うa"
    console.log(vw.indexOf('あいうabc', 'a')); # => 6
    console.log(vw.lastIndexOf('あいうabc', 'a')); # => 6)
npm package: @leichtgewicht/vue-select
Description: Everything you wish the HTML <select> element could do, wrapped up into a lightweight, extensible Vue component.
Author: Jeff Sagal
Latest version: 4.0.2

# vue-select ![Current Release](https://img.shields.io/github/release/sagalbot/vue-select.svg?style=flat-square) ![Release Date](https://img.shields.io/github/release-date/sagalbot/vue-select?style=flat-square) ![Bundle Size](https://flat.badgen.net/bundlephobia/min/vue-select) ![Monthly Downloads](https://img.shields.io/npm/dm/vue-select.svg?style=flat-square) [![Coverage Status](https://coveralls.io/repos/github/sagalbot/vue-select/badge.svg?branch=master)](https://coveralls.io/github/sagalbot/vue-select?branch=master) ![MIT License](https://img.shields.io/github/license/sagalbot/vue-select.svg?style=flat-square)

> **Everything you wish the HTML `<select>` element could do, wrapped up into a lightweight, zero
> dependency, extensible Vue component.**

Vue Select is a feature rich select/dropdown/typeahead component. It provides a default
template that fits most use cases for a filterable select dropdown. The component is designed to be as
lightweight as possible, while maintaining high standards for accessibility,
developer experience, and customization.

- Tagging
- Filtering / Searching
- Vuex Support
- AJAX Support
- SSR Support
- Accessible
- ~20kb Total / ~5kb CSS / ~15kb JS
- Select Single/Multiple Options
- Customizable with slots and SCSS variables
- Zero dependencies

## Documentation

Complete documentation and examples available at https://vue-select.org.

- **[API Documentation](https://vue-select.org)**
- **[CodePen Template](http://codepen.io/sagalbot/pen/NpwrQO)**

## Sponsors :tada:

It takes a lot of effort to maintain this project. If it has saved you development time, please consider [sponsoring the project](https://github.com/sponsors/sagalbot)
with GitHub sponsors!

Huge thanks to the [sponsors](https://github.com/sponsors/sagalbot) and [contributors](https://github.com/sagalbot/vue-select/graphs/contributors) that make Vue Select possible!

## Install

```bash
yarn add vue-select

# or use npm

npm install vue-select
```

Then, import and register the component:

```js
import Vue from "vue";
import vSelect from "vue-select";

Vue.component("v-select", vSelect);
```

The component itself does not include any CSS. You'll need to include it separately:

```js
import "vue-select/dist/vue-select.css";
```

Alternatively, you can import the scss for complete control of the component styles:

```scss
@import "vue-select/src/scss/vue-select.scss";
```

You can also include vue-select directly in the browser. Check out the
[documentation for loading from CDN.](https://vue-select.org/guide/install.html#in-the-browser).

## License

[MIT](https://github.com/sagalbot/vue-select/blob/master/LICENSE.md)
npm package: @leiden-js/codemirror-lang-leiden-plus
Description: CodeMirror language support for Leiden+
Author: Marcel Schaeben
Latest version: 1.0.6

# @leiden-js/codemirror-lang-leiden-plus

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

CodeMirror 6 language support for [Leiden+](https://papyri.info/docs/leiden_plus) notation, providing syntax
highlighting and language features.

## Installation

```bash
npm install @leiden-js/codemirror-lang-leiden-plus
```

## Usage

```typescript
import {leidenPlusLanguage} from "@leiden-js/codemirror-lang-leiden-plus";
import {EditorView} from "@codemirror/view";

const view = new EditorView({
    extensions: [
        leidenPlusLanguage()
    ]
});
```

## API

### `leidenPlusLanguage(config?: LeidenPlusLanguageConfig): LanguageSupport`

Creates a CodeMirror language support extension for Leiden+ notation.

#### Configuration Options

```typescript
interface LeidenPlusLanguageConfig {
    topNode?: "Document" | "InlineContent" | "SingleDiv" | "SingleAb" | "BlockContent";
    leidenHighlightStyle?: "light" | "dark" | "none";
}
```

### Additional Exports

- **`snippets`** – Autocomplete snippets for common Leiden+ patterns
- **`inlineContentAllowed`**, **`atomicRules`**, **`wrappingRules`** - Syntax rule sets
- CertLow utilities – Functions for working with certainty markers:
    - `acceptsCertLow`, `hasCertLow`, `getCertLow`, `addCertLow`, `removeCertLow`

## Features

- Syntax highlighting with light/dark themes
- Auto-indentation for structural elements
- Code folding for nested structures
- Bracket matching
- Autocomplete snippets

## Related Packages

- [`@leiden-js/parser-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/parser-leiden-plus) - Underlying parser
- [`@leiden-js/codemirror-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-leiden-plus) - Complete set of editor extensions with all features
npm package: @leiden-js/codemirror-lang-leiden-trans
Description: CodeMirror language support for Leiden Translation
Author: Marcel Schaeben
Latest version: 1.0.5

# @leiden-js/codemirror-lang-leiden-trans

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

CodeMirror 6 language support for [Leiden Translation](https://papyri.info/docs/leiden_plus_translation) notation,
providing syntax highlighting and language features.

## Installation

```bash
npm install @leiden-js/codemirror-lang-leiden-trans
```

## Usage

```typescript
import {leidenTransLanguage} from "@leiden-js/codemirror-lang-leiden-trans";
import {EditorView} from "@codemirror/view";

const view = new EditorView({
    extensions: [
        leidenTransLanguage()
    ]
});
```

## API

### `leidenTransLanguage(config?: LeidenTransLanguageConfig): LanguageSupport`

Creates a CodeMirror language support extension for Leiden Translation notation.

#### Configuration Options

```typescript
interface LeidenTransLanguageConfig {
    topNode?: "Document" | "SingleTranslation" | "SingleDiv" | "SingleP" | "BlockContent" | "InlineContent";
    leidenHighlightStyle?: "light" | "dark" | "none";
}
```

### Additional Exports

- **`snippets`** – Autocomplete snippets for common Leiden Translation patterns
- **`inlineContentAllowed`**, **`wrappingRules`** - Syntax rule sets
- **Translation utilities** – Functions for working with translation blocks:
    - `addTranslation`
- **Division utilities** – Functions for working with divisions:
    - `canAddDivision`, `addDivision`, `DivisionSnippetKey`

## Features

- Syntax highlighting with light/dark themes
- Auto-indentation for structural elements
- Code folding for nested structures
- Bracket matching
- Autocomplete snippets

## Related Packages

- [`@leiden-js/parser-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/parser-leiden-trans) - Underlying parser
- [`@leiden-js/codemirror-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-leiden-trans) - Complete set of editor extensions with all features
npm package: @leiden-js/codemirror-leiden-plus
Description: Pre-configured CodeMirror setup for Leiden+
Author: Marcel Schaeben
Latest version: 1.1.1

# @leiden-js/codemirror-leiden-plus

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

Full CodeMirror 6 setup for [Leiden+](https://papyri.info/docs/leiden_plus) notation editing with syntax highlighting,
linting, toolbar, and all features included.

## Installation

```bash
npm install @leiden-js/codemirror-leiden-plus
```

## Usage

```typescript
import {leidenPlus} from "@leiden-js/codemirror-leiden-plus";
import {EditorView} from "@codemirror/view";

const view = new EditorView({
    extensions: [
        leidenPlus({
            lint: true,           // Enable linting (default: true)
            toolbar: true,        // Enable toolbar (default: true)
            highlightActiveNode: true,  // Highlight active node (default: true),
            languageConfig: {
                // Optional language configuration 
            }
        })
    ]
});
```

## Configuration

The `leidenPlus()` function accepts a configuration object with options for customizing the editor behavior, including
language settings, linting configuration, and UI features. See the 
[`codemirror-lang-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-lang-leiden-plus)
package for language configuration options.

## Related Packages

- [`@leiden-js/codemirror-lang-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-lang-leiden-plus) - Language support only
- [`@leiden-js/linter-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/linter-leiden-plus) - Linting only
- [`@leiden-js/toolbar-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/toolbar-leiden-plus) - Toolbar only
npm package: @leiden-js/codemirror-leiden-trans
Description: Pre-configured CodeMirror setup for Leiden Translation
Author: Marcel Schaeben
Latest version: 1.1.1

# @leiden-js/codemirror-leiden-trans

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems used in epigraphic digital editing within JavaScript environments.

Complete CodeMirror 6 setup for [Leiden Translation](https://papyri.info/docs/leiden_plus_translation) notation editing
with syntax highlighting, linting, toolbar, and all features included.

## Installation

```bash
npm install @leiden-js/codemirror-leiden-trans
```

## Usage

```typescript
import { leidenTranslation } from "@leiden-js/codemirror-leiden-trans";
import { EditorView } from "@codemirror/view";

const view = new EditorView({
  extensions: [
    leidenTranslation({
      lint: true,           // Enable linting (default: true)
      toolbar: true,        // Enable toolbar (default: true)
      highlightActiveNode: true  // Highlight active node (default: true)
    })
  ]
});
```

## Configuration

The `leidenTranslation()` function accepts a configuration object with options for customizing the editor behavior,
including language settings, linting configuration, and UI features. See the
[`codemirror-lang-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-lang-leiden-trans)
package for language configuration options.

## Related Packages

- [`@leiden-js/codemirror-lang-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-lang-leiden-trans) - Language support only
- [`@leiden-js/linter-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/linter-leiden-trans) - Linting only
- [`@leiden-js/toolbar-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/toolbar-leiden-trans) - Toolbar only
npm package: @leiden-js/common
Description: Shared utilities for the leiden-js packages
Author: Marcel Schaeben
Latest version: 1.1.0

# @leiden-js/common

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

Shared utilities and base implementations used across the leiden-js packages, including common language features,
linting infrastructure, and transformation utilities.

## Installation

```bash
npm install @leiden-js/common
```

## Usage

This package provides shared functionality and is mainly as a dependency by other leiden-js packages rather than
directly by end users.


## Modules

- **`codemirror-leiden`** - Common CodeMirror configuration and utilities
- **`language`** - Shared language features (highlighting, indentation, etc.)
- **`linter`** - Base linting infrastructure and common checks
- **`transformer`** - Shared transformation utilities
- **`util`** - General utilities and helpers
npm package: @leiden-js/linter-leiden-plus
Description: Basic Leiden+ linting for CodeMirror (or standalone)
Author: Marcel Schaeben
Latest version: 1.1.1

# @leiden-js/linter-leiden-plus

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

Linter for Leiden+ notation, providing syntax validation and error detection for
the [Leiden+](https://papyri.info/docs/leiden_plus) epigraphic notation system.

## Installation

```bash
npm install @leiden-js/linter-leiden-plus
```

## Usage

### Standalone Usage

Use the linting function for server-side or custom implementations:

```typescript
import {lintLeidenPlus} from "@leiden-js/linter-leiden-plus";
import {parser} from "@leiden-js/parser-leiden-plus";

const text = "example [unclosed";
const tree = parser.parse(text, {topNode: "InlineContent"});
const errors = lintLeidenPlus(text, tree);

console.log(errors);
// [{ from: 8, to: 17, severity: "error", message: "...", code: "..." }]
```

### CodeMirror Integration

For CodeMirror 6 integration, use the pre-configured extension:

```typescript
import {leidenPlusLinter} from "@leiden-js/linter-leiden-plus";
import {EditorView} from "@codemirror/view";

const view = new EditorView({
    extensions: [
        // ... other extensions
        leidenPlusLinter(),
        // With custom configuration
        leidenPlusLinter({
            delay: 1000,        // Delay before linting (ms)
            autoPanel: true,    // Auto-open lint panel
        })
    ]
});
```

## API

### `lintLeidenPlus(doc: string, syntaxTree: Tree): LeidenDiagnostic[]`

Linting function for Leiden+ text.

- **doc**: The document text to lint
- **syntaxTree**: Parsed syntax tree from `@leiden-js/parser-leiden-plus`
- **Returns**: Array of diagnostic objects with error locations and messages, and unique error codes for programmatic
  handling and testing

### `leidenPlusLinter(config?: LintConfig): Extension`

CodeMirror extension that integrates the linter.

- **config**: Optional [CodeMirror lint configuration](https://codemirror.net/docs/ref/#lint.linter^config)
- **Returns**: CodeMirror extension

## Related Packages

- [`@leiden-js/parser-leiden-plus`](../parser-leiden-plus) - Required parser
- [`@leiden-js/codemirror-leiden-plus`](../codemirror-leiden-plus) - Complete set of editor extensions with linting
  included
npm package: @leiden-js/linter-leiden-trans
Description: Basic Leiden Translation linting for CodeMirror (or standalone)
Author: Marcel Schaeben
Latest version: 1.1.0

# @leiden-js/linter-leiden-trans

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

Linter for Leiden Translation notation, providing syntax validation for translations of ancient texts using the
simplified Leiden notation system.

## Installation

```bash
npm install @leiden-js/linter-leiden-trans
```

## Usage

### Standalone Usage

Use the linting function for server-side or custom implementations:

```typescript
import {lintLeidenTrans} from "@leiden-js/linter-leiden-trans";
import {parser} from "@leiden-js/parser-leiden-trans";

const text = "example /*unclosed";
const tree = parser.parse(text, {topNode: "InlineContent"});
const errors = lintLeidenTrans(text, tree);

console.log(errors);
// [{ from: 8, to: 18, severity: "error", message: "..." }]
```

### CodeMirror Integration

For CodeMirror 6 integration, use the pre-configured extension:

```typescript
import {leidenTransLinter} from "@leiden-js/linter-leiden-trans";
import {EditorView} from "@codemirror/view";

const view = new EditorView({
    extensions: [
        // ... other extensions
        leidenTransLinter(),
        // With custom configuration
        leidenTransLinter({
            delay: 1000,        // Delay before linting (ms)
            autoPanel: true,    // Auto-open lint panel
        })
    ]
});
```

## API

### `lintLeidenTrans(doc: string, syntaxTree: Tree): Diagnostic[]`

Pure linting function for Leiden Translation text.

- **doc**: The document text to lint
- **syntaxTree**: Parsed syntax tree from `@leiden-js/parser-leiden-trans`
- **Returns**: Array of diagnostic objects with error locations and messages, and unique error codes for programmatic
  handling and testing

### `leidenTransLinter(config?: LintConfig): Extension`

CodeMirror extension that integrates the linter.

- **config**: [CodeMirror lint configuration](https://codemirror.net/docs/ref/#lint.linter^config)
- **Returns**: CodeMirror extension

## Features

The linter validates:

- Unclosed paragraph markers (`<P=` ... `=P>`)
- Unclosed division markers (`<D=` ... `=D>`)
- Unclosed foreign text markers (`~|` ... `|~`)
- General syntax errors

## Related Packages

- [`@leiden-js/parser-leiden-trans`](../parser-leiden-trans) - Required parser
- [`@leiden-js/codemirror-leiden-trans`](../codemirror-leiden-trans) - Complete set of editor extensions with linting
  included
npm package: @leiden-js/parser-leiden-plus
Description: A Lezer based parser for Leiden+
Author: Marcel Schaeben
Latest version: 1.0.5

# @leiden-js/parser-leiden-plus

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

Lezer-based parser for Leiden+ notation, generating syntax trees for the [Leiden+](https://papyri.info/docs/leiden_plus)
epigraphic notation system.

## Installation

```bash
npm install @leiden-js/parser-leiden-plus
```

## Usage

```typescript
import { parser } from "@leiden-js/parser-leiden-plus";

const text = "1. example [text]";
const tree = parser.parse(text);

// With custom top node
const tree = parser.configure({ top: "InlineContent" }).parse(text);

console.log(tree.toString());
```

## Top Node Options

The parser supports different entry points:
- `Document` (default) - Complete document structure
- `BlockContent` - Block-level content only
- `InlineContent` - Inline content only
- `SingleAb` - Single paragraph
- `SingleDiv` - Single division

## Related Packages

- [`@leiden-js/codemirror-lang-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-lang-leiden-plus) - CodeMirror language integration
- [`@leiden-js/linter-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/linter-leiden-plus) - Linting for syntax trees produces by this parser
- [`@leiden-js/transformer-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/transformer-leiden-plus) - Transformations using this parser
npm package: @leiden-js/parser-leiden-trans
Description: A Lezer based parser for Leiden Translation
Author: Marcel Schaeben
Latest version: 1.0.5

# @leiden-js/parser-leiden-trans

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

Lezer-based parser for Leiden Translation notation, generating syntax trees for
[Leiden Translation](https://papyri.info/docs/leiden_plus_translation) notation system used in translations of
ancient texts.

## Installation

```bash
npm install @leiden-js/parser-leiden-trans
```

## Usage

```typescript
import { parser } from "@leiden-js/parser-leiden-trans";

const text = "((1)) example translation〚text〛";
const tree = parser.parse(text);

// With custom top node
const tree = parser.configure({ top: "InlineContent" }).parse(text);

console.log(tree.toString());
```

## Top Node Options

The parser supports different entry points:
- `Document` (default) - Complete document structure
- `BlockContent` - Block-level content only
- `SingleTranslation` - Single translation block
- `SingleDiv` - Single division
- `SingleP` - Single paragraph
- `InlineContent` - Inline content only

## Related Packages

- [`@leiden-js/codemirror-lang-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-lang-leiden-trans) - CodeMirror language integration
- [`@leiden-js/linter-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/linter-leiden-trans) - Linting for syntax trees produces by this parser
- [`@leiden-js/transformer-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/transformer-leiden-trans) - Transformations using this parser
npm package: @leiden-js/toolbar-leiden-plus
Description: Leiden+ editor toolbar for CodeMirror
Author: Marcel Schaeben
Latest version: 1.0.6

# @leiden-js/toolbar-leiden-plus

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

Syntax-aware toolbar component for [Leiden+](https://papyri.info/docs/leiden_plus) notation editing in CodeMirror 6,
providing buttons and shortcuts for common Leiden+ markup patterns.

![](./docs/toolbar-leiden-plus.png)

## Installation

```bash
npm install @leiden-js/toolbar-leiden-plus
```

## Usage

```typescript
import { leidenPlusToolbar } from "@leiden-js/toolbar-leiden-plus";
import { EditorView } from "@codemirror/view";

const view = new EditorView({
  extensions: [
    // ... other extensions
    leidenPlusToolbar
  ]
});
```

## Features

The toolbar provides quick access to common Leiden+ notation patterns including:
- Editorial brackets and markup
- Abbreviation patterns
- Numbers and special characters
- Document structure elements
- Diacritical marks and combining characters

## Related Packages

- [`@leiden-js/ui-toolbar`](https://github.com/cceh/leiden-js/tree/main/packages/ui-toolbar) - Base toolbar UI components
- [`@leiden-js/codemirror-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-leiden-plus) - Complete set of editor extensions with toolbar included
npm package: @leiden-js/toolbar-leiden-trans
Description: Leiden Translation editor toolbar for CodeMirror
Author: Marcel Schaeben
Latest version: 1.0.5

# @leiden-js/toolbar-leiden-trans

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems used in epigraphic digital editing within JavaScript environments.

Syntax-aware Toolbar component for [Leiden Translation](https://papyri.info/docs/leiden_plus_translation) notation
editing, providing buttons and shortcuts for common markup patterns.

![](./docs/toolbar-leiden-trans.png)

## Installation

```bash
npm install @leiden-js/toolbar-leiden-trans
```

## Usage

```typescript
import { leidenTransToolbar } from "@leiden-js/toolbar-leiden-trans";
import { EditorView } from "@codemirror/view";

const view = new EditorView({
  extensions: [
    // ... other extensions
    leidenTransToolbar
  ]
});
```

## Features

The toolbar provides quick access to common Leiden Translation patterns including:
- Paragraph and division markers
- Milestone line numbers
- Foreign text markup
- Document structure elements

## Related Packages

- [`@leiden-js/ui-toolbar`](https://github.com/cceh/leiden-js/tree/main/packages/ui-toolbar) - Base toolbar UI components
- [`@leiden-js/codemirror-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/codemirror-leiden-trans) - Complete set of editor extensions with toolbar included
npm package: @leiden-js/transformer-leiden-plus
Description: Transform Leiden+ to EpiDoc XML and vice-versa
Author: Marcel Schaeben
Latest version: 1.0.5

# @leiden-js/transformer-leiden-plus

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems
> used in epigraphic digital editing within JavaScript environments.

Bidirectional transformer for converting between [Leiden+](https://papyri.info/docs/leiden_plus) notation
and [EpiDoc XML](https://epidoc.stoa.org/).

## Installation

```bash
npm install @leiden-js/transformer-leiden-plus
```

## Usage

### Leiden+ to XML

```typescript
import {leidenPlusToXml} from "@leiden-js/transformer-leiden-plus";

const leidenText = "<S=.grc <D=.r <= 1. Ἰωάννης, (υ(ἱὸς)) Ἀντωνίου => =D>";
const xml = leidenPlusToXml(leidenText);
```

### XML to Leiden+

```typescript
import {xmlToLeidenPlus} from "@leiden-js/transformer-leiden-plus";

const xml = `
    <div xml:lang="grc" type="edition" xml:space="preserve">
        <div n="r" type="textpart">
            <ab> <lb n="1"/>Ἰωάννης, <expan>υ<ex>ἱὸς</ex></expan> Ἀντωνίου</ab>
        </div>
    </div>`;

const leiden = xmlToLeidenPlus(xml);
```

## Related Packages

- [`@leiden-js/parser-leiden-plus`](https://github.com/cceh/leiden-js/tree/main/packages/parser-leiden-plus) - Parser for Leiden+ input
- [`@leiden-js/transformation-service`](https://github.com/cceh/leiden-js/tree/main/packages/transformation-service) - REST API using his transformer
npm package: @leiden-js/transformer-leiden-trans
Description: Transform Leiden Translation to EpiDoc XML and vice-versa
Author: Marcel Schaeben
Latest version: 1.0.5

# @leiden-js/transformer-leiden-trans

> Part of [leiden-js](https://github.com/cceh/leiden-js), a set of packages for working with the Leiden notation systems used
in epigraphic digital editing within JavaScript environments.

Bidirectional transformer for converting between [Leiden Translation](https://papyri.info/docs/leiden_plus_translation)
notation and [EpiDoc XML](https://epidoc.stoa.org/).

## Installation

```bash
npm install @leiden-js/transformer-leiden-trans
```

## Usage

### Leiden Translation to XML

```typescript
import { leidenTransToXml } from "@leiden-js/transformer-leiden-trans";

const translationText = "<T=.en <D=.n <= ((1)) example 〚translation〛 => =D>";
const xml = leidenTransToXml(translationText);
```

### XML to Leiden Translation

```typescript
import { xmlToLeidenTrans } from "@leiden-js/transformer-leiden-trans";

const xml = `
    <div xml:lang="en" type="translation" xml:space="preserve">
        <div n="n" type="textpart">
            <p> <milestone unit="line" n="1"/> example <del>translation</del></p>
        </div>
    </div>`;

const leiden = xmlToLeidenTrans(xml);
```

## Features

- Bidirectional transformation between Leiden Translation and XML
- Support for translation-specific markup patterns
- Configurable document structure
- Error handling and validation

## Related Packages

- [`@leiden-js/parser-leiden-trans`](https://github.com/cceh/leiden-js/tree/main/packages/parser-leiden-trans) - Required parser for Leiden Translation input
- [`@leiden-js/transformation-service`](https://github.com/cceh/leiden-js/tree/main/packages/transformation-service) - REST API using these transformers
npm package: @leifandersen/reactive
Description: Reactive is a react based in-browser video editor made with the mission to build the simplest yet powerful video editing software.
Author: Prakshal Jain
Latest version: 1.0.2-2

<center><img src="./images/Reactive.png" style="width: 30%; height: auto"/></center>

# Reactive: React Video Editor
Reactive is a react based video editor made with the mission to build the simplest yet powerful video editing software. So, buckle up & let's get started!

## Demo
1. Enjoy reactive here: https://prakshal-jain.github.io/Reactive/
2. To try & tweak source code instantly, visit: https://codesandbox.io/s/reactive-e8suc

## Install NPM package:
To install reactive NPM package, run ```npm i react-video-editor```
URL: https://www.npmjs.com/package/react-video-editor

## Getting started:
1. Please make sure you have npm installed
2. Clone the repository, and run ```npm install```. This downloads all the dependencies required.
3. Now, it's the time to fire up our server 🚀. Run ```npm start``` to do so.
4. <strong>Congratulations!</strong> You are all set to experience the simplicity of the great in-browser video editing software!

## How reactive is Reactive?
1. Drag and drop your videos to edit.
<div>
<img src="./images/drag&drop.png" style="width: 20%; height: auto"/>
</div>

2. Edit based on your mood: Light & Dark themes makes reactive even more user friendly.
<div>
<img src="./images/dark.png" style="width: 20%; height: auto"/>
</div>

3. Edit seamlessly
<div>
<img src="./images/editor.png" style="width: 20%; height: auto"/>
</div>