open-index/open-npm huggingface dataset:
npm package: @larlon/verifier-and-challenge
Description: Generates a verifier and a challenge according to rfc7636. 
Author: Lars Lønne
Latest version: 2.1.0

# verifier-and-challenge
An npm package for generating verifier and challenge values as described in RFC 7636.

This package exports a single function called `generateVerifierAndChallenge`, which generates a Promise which resolves with an object with two keys. One is called `verifier`, and is a 43-character random string, consisting of URL-safe characters. The other is called `challenge`, and is the SHA-256 hash of the verifier. 

These values can be used as a "Proof key for code exchange for OAuth public clients", as described in https://tools.ietf.org/html/rfc7636. 

## Compatibility

The code should work in IE 11 and modern browsers, assuming that `window.Promise` is defined. For IE 11, that means you will have to use a polyfill. https://github.com/stefanpenner/es6-promise is one alternative.
npm package: @larmbox/phone-input
Description: Create a phone input field from any input field.
Author: Larmbox
Latest version: 0.0.4

<p align="">
  <img src="https://github.com/larmbox/phone-input/blob/HEAD/docs/logo.png" width="64"  />
  <h1 align="">larmbox/phone-input</h1>
</p>

[![npm](https://img.shields.io/npm/v/@larmbox/phone-input.svg)](https://www.npmjs.com/package/@larmbox/phone-input)
[![license](https://img.shields.io/npm/l/@larmbox/phone-input.svg)](https://github.com/larmbox/phone-input/blob/HEAD/LICENSE)
[![downloads](https://img.shields.io/npm/dt/@larmbox/phone-input)](https://www.npmjs.com/package/@larmbox/phone-input)

[Demo](https://larmbox.github.io/phone-input)

## Installation

phone-input is available as an [npm package](https://www.npmjs.com/package/@larmbox/phone-input):

```bash
npm install @larmbox/phone-input
```

phone-input can also be imported directly in the browser:

```html
<!-- local -->
<script src="dist/index.browser.min.js"></script>

<!-- jsdelivr.net -->
<script src="https://cdn.jsdelivr.net/npm/@larmbox/phone-input/dist/index.browser.min.js"></script>
```

## Usage

```html
<input id="example" />

<script>
  const element = document.getElementById('example');
  phoneInput.attach(element);
</script>
```

### Options

## Contributing

Please refer to the [Larmbox Open Source Community Guidelines](https://github.com/larmbox/phone-input/blob/HEAD/CODE_OF_CONDUCT.md).

## License

This project is licensed under the terms of the [MIT](https://opensource.org/licenses/MIT) license.
npm package: @larner.dev/api
Description: A larner.dev project
Author: Aaron Larner
Latest version: 1.15.0

# @larner.dev/api

## Setup

Run `yarn`

## Commands

Use `yarn` followed by any of these commands:

- `build`: Output both ESM and CJS versions of the project, as well as type definitions to `build` directory.
- `build-cjs`: Output CJS versions of the project to `build/cjs` directory.
- `build-ems`: Output ESM versions of the project to `build/esm` directory.
- `build-types`: Output type definitions to `build/types.d.ts` file.
- `dev`: Re-build the ESM version any time there are changes to the project.
- `format`: Format all typescript files using prettier.
- `lint`: Run the linter to check for errors.
- `test`: Run unit tests.
- `test-watch`: Run unit tests in watch mode.
npm package: @larner.dev/generator
Description: A project / package scaffolding tool
Author: Aaron Larner
Latest version: 1.7.0

# generator

This is a tool for scaffolding / generating new projects and packages. It's different from other tools like yeoman because it makes upgrading existing projects easier when the base template changes.

## Usage

### new

`npx @larner.dev/generator new typescript-nodejs`

This will generate a new node project with typescript. Right now this is the only template that's supported, but more are in the works.

This tool is build with monorepos in mind, so by default the project will be located at `packages/<package_name>`. To set the location manually use the `--path` option:

`npx @larner.dev/generator new typescript-nodejs --path my-new-project`

### upgrade

Imagine a few weeks after you generated your typescript-nodejs project some of the dependencies changed (eg. there's a newer version of jest and you want to tweak the eslintrc). After updating the code in the template simply run:

`gen upgrade path/to/existing/project`

This will automatically upgrade files in your existing project and highlight the files where there conflicts that need to be addressed manually.

## How does it work?

Behind the scenes, generator hashes the contents of each file immediately after it is generated. These hashed files are stored in `.generator/hash`, which is a directory that mirrors the directory structure of the generated project.

When upgrading, the tool automatically compares the hash of the original file with the hash of the current file to see if it was changed. It only replaces files that you have not changed. For files that yo have changed, it generates git-style merge conflicts for you to resolve manually.

## Todo

I'm open to feedback on this project. If you think this could be useful for you or your team please share your thoughts or give it a star. Here are the improvements that are on my radar right now.

- [A better way to add custom templates](https://github.com/larner-dev/generator/issues/1)
- [Improve conflict resolution for config files (.json, .yml, etc)](https://github.com/larner-dev/generator/issues/2)
- [More templates](https://github.com/larner-dev/generator/issues/3)
npm package: @larner.dev/migrate
Description: CLI for applying database migrations
Author: Aaron Larner
Latest version: 1.9.0

# @larner.dev/migrate

A tool to run database migrations. Currently only supports postgres.

## Commands

```
npx @larner.dev/migrate up [options] <dir> <conection_string>

Apply all new migrations in <dir> to the database at <conection_string>

Options:
  -w, --watch                   Watch for changes to <dir> and apply migrations any time files in
                                the directory change
  -f, --filter <regex_pattern>  Only include files in <dir> that match the specified regex
                                pattern.
  -h, --help                    display help for command
```

## Setup Locally

Run `npm install`

## Dev Commands

Use `npm run` followed by any of these commands:

- `build`: Output both ESM and CJS versions of the project, as well as type definitions to `build` directory.
- `build-cjs`: Output CJS versions of the project to `build/cjs` directory.
- `build-ems`: Output ESM versions of the project to `build/esm` directory.
- `build-types`: Output type definitions to `build/types.d.ts` file.
- `dev`: Re-build the ESM version any time there are changes to the project.
- `format`: Format all typescript files using prettier.
- `lint`: Run the linter to check for errors.
- `test`: Run unit tests.
npm package: @larner.dev/perk-db
Description: A light weight database connector + ORM built on top of knex.
Author: Aaron Larner
Latest version: 1.0.0

# Perk

```ts
import { server } from "perk";

server({
	rootDirectory: __dirname,
	routes: {
		directory: "./routes",
		excludeRegex: ".*\\.test\\.ts$",
	},
	server: {
		url: "https://api.mywebsite.com",
		port: 3001,
		cors: {},
	},
})
	.then(() => {
		console.log(`Server started on port 3001`);
	})
	.catch((error: Error) => {
		console.error("The server couldn't start up...");
		console.error(error.message);
	});

process.once("SIGUSR2", async function () {
	process.kill(process.pid, "SIGUSR2");
});
```
npm package: @larose/markdown-it-katex
Description: Fast math support for markdown-it with KaTeX
Author: mathieu@mathieularose.com
Latest version: 2.1.1

# markdown-it-katex

Add Math to your Markdown

[![Build Status](https://travis-ci.org/waylonflinn/markdown-it-katex.svg?branch=master)](https://travis-ci.org/waylonflinn/markdown-it-katex)

[KaTeX](https://github.com/Khan/KaTeX) is a faster alternative to MathJax. This plugin makes it easy to support in your markdown.

Need convincing?

* Check out the comparative benchmark: [KaTeX vs MathJax](https://jsperf.com/katex-vs-mathjax/42)
* Try it in your browser: [markdown-it-katex demo](http://waylonflinn.github.io/markdown-it-katex/)

## Usage
Install markdown-it
```
npm install markdown-it
```

Install the plugin

```
npm install markdown-it-katex
```

Use it in your javascript

```javascript
var md = require('markdown-it')(),
    mk = require('markdown-it-katex');

md.use(mk);

// double backslash is required for javascript strings, but not html input
var result = md.render('# Math Rulez! \n  $\\sqrt{3x-1}+(1+x)^2$');
```

Include the KaTeX stylesheet in your html:
```html
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css">
```

If you're using the default markdown-it parser, I also recommend the [github stylesheet](https://github.com/sindresorhus/github-markdown-css):
```html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/github-markdown-css/2.2.1/github-markdown.css"/>
```

`KaTeX` options can be supplied with the second argument to use.
```javascript
md.use(mk, {"throwOnError" : false, "errorColor" : " #cc0000"});
```

## Examples

### Inline
Surround your LaTeX with a single `$` on each side for inline rendering.
```
$\sqrt{3x-1}+(1+x)^2$
```

### Block
Use two (`$$`) for block rendering. This mode uses bigger symbols and centers
the result.

```
$$\begin{array}{c}

\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} &
= \frac{4\pi}{c}\vec{\mathbf{j}}    \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\

\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\

\nabla \cdot \vec{\mathbf{B}} & = 0

\end{array}$$
```

## Syntax

Math parsing in markdown is designed to agree with the conventions set by pandoc:

    Anything between two $ characters will be treated as TeX math. The opening $ must
    have a non-space character immediately to its right, while the closing $ must
    have a non-space character immediately to its left, and must not be followed
    immediately by a digit. Thus, $20,000 and $30,000 won’t parse as math. If for some
    reason you need to enclose text in literal $ characters, backslash-escape them and
    they won’t be treated as math delimiters.

## Math Syntax Support

KaTeX is based on TeX and LaTeX. Support for both is growing. Here's a list of
currently supported functions:

[Function Support in KaTeX](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)
npm package: @larouges/tabs
Description: [![NPM](https://img.shields.io/npm/v/@larouges/tabs.svg)](https://www.npmjs.com/package/@larouges/tabs) [![Build Status](https://travis-ci.org/LaRouges/tabs.svg)](https://travis-ci.org/LaRouges/tabs) [![Code Climate](https://codeclimate.com/github/LaRouge
Author: vagusX
Latest version: 0.0.1

# LaRouges Tabs
### A React Tabs Component

[![NPM](https://img.shields.io/npm/v/@larouges/tabs.svg)](https://www.npmjs.com/package/@larouges/tabs)
[![Build Status](https://travis-ci.org/LaRouges/tabs.svg)](https://travis-ci.org/LaRouges/tabs)
[![Code Climate](https://codeclimate.com/github/LaRouges/tabs.png)](https://codeclimate.com/github/LaRouges/tabs)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)

## Installation

```bash
  $ yarn install @larouges/tabs
```

## Usage

todo

[![JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)
npm package: @larpa/say-hi
Description: this module just say hi... It's my first module
Author: Luis Schmiel
Latest version: 0.1.0

# Say Hi

## Just a nice greeting


This repo just say Hi in different languages because It's important to be nice when you are new.

Actually It's builded because I'm learning to publish repos in [NPM](https://www.npmjs.com) ... It's also my [Platzi](https://platzi.com) homework.


## Install

```
npm install say-hi
```

## Usage

```
import say-hi from 'say-hi'

greeting("es") // Hola!
greeting("en") // Hello!
greeting("ger") // Hallo!
greeting("fre") // Salut!

```