open-index/open-npm huggingface dataset:
npm package: @rgomezp/react-native-purchases-ui
Description: React Native in-app purchases and subscriptions made easy. Supports iOS and Android.
Author: RevenueCat, Inc.
Latest version: 8.9.6

<h3 align="center">😻 In-App Subscriptions Made Easy 😻</h3>

[![License](https://img.shields.io/cocoapods/l/RevenueCat.svg?style=flat)](http://cocoapods.org/pods/RevenueCat)

RevenueCat is a powerful, reliable, and free to use in-app purchase server with cross-platform support. Our open-source framework provides a backend and a wrapper around StoreKit and Google Play Billing to make implementing in-app purchases and subscriptions easy.

Whether you are building a new app or already have millions of customers, you can use RevenueCat to:

* Fetch products, make purchases, and check subscription status with our [native SDKs](https://docs.revenuecat.com/docs/installation).
* Host and [configure products](https://docs.revenuecat.com/docs/entitlements) remotely from our dashboard.
* Analyze the most important metrics for your app business [in one place](https://docs.revenuecat.com/docs/charts).
* See customer transaction histories, chart lifetime value, and [grant promotional subscriptions](https://docs.revenuecat.com/docs/customers).
* Get notified of real-time events through [webhooks](https://docs.revenuecat.com/docs/webhooks).
* Send enriched purchase events to analytics and attribution tools with our easy integrations.

Sign up to [get started for free](https://app.revenuecat.com/signup).

## React Native Purchases UI

React Native Purchases UI is the client for the [RevenueCat](https://www.revenuecat.com/) subscription and purchase tracking system. It is an open source framework that provides a wrapper around `StoreKit`, `Google Play Billing` and the RevenueCat backend to make implementing in-app purchases in `React Native` easy.
npm package: @rgorai/eslint-config
Description: Ron Gorai's linting configuration for TypeScript-based React apps.
Author: Ron Gorai
Latest version: 1.2.16

# Ron Gorai's Configuration for ESLint, Stylelint, and Prettier

Use my ESLint, Stylelint, and Prettier settings in your project and lint your codebase on demand with a simple CLI command.

## Prerequisites
This configuration is designed to be used for TypeScript, React, CSS, and Node.js, but could work for other configurations as well.

## Demo
Please visit <a href="https://rgorai-npm-packages.netlify.app/eslint-config">my NPM platform</a> to view a demo of this package.

## Steps to use:
### 1. `yarn add -D @rgorai/eslint-config`
Install the package as a dev dependency.

### 2. `yarn add -D typescript-eslint eslint eslint-config-prettier eslint-plugin-import eslint-plugin-prettier eslint-plugin-react eslint-plugin-react-hooks prettier typescript`
Install peer dependencies.

If you need Stylelint, add the following: `stylelint stylelint-config-standard stylelint-prettier`

### 3. Apply the eslint config in your `eslint.config.mjs` file.

Feel free to spread your own config options here as well. It is recommended to reload your VS Code window after this step in order for the ESLint, Prettier, and Stylelint extensions (if you have them) to properly utilize the installed config files.

```
import rgoraiConfig from '@rgorai/eslint-config'

export default rgoraiConfig
```

If you are using Next.js ESLint plugins, then you must import the base config instead.
```
import { rgoraiConfigBase } from '@rgorai/eslint-config'

export default [
  ...compat.extends('next/core-web-vitals', 'next/typescript'),
  ...rgoraiConfigBase,
]
```

### 4. Apply the prettier and stylelint configs in your `package.json` file. 

```
"prettier": "@rgorai/eslint-config/.prettierrc.mjs",
"stylelint": {
  "extends": "@rgorai/eslint-config/stylelint.config.mjs"
},

// if you use lint-staged
"lint-staged": {
  "**/*.{ts,tsx,js,jsx,mjs,cjs}": "yarn lint"
}
```

### 5. If you are using VS Code and the ESLint extension, it is recommended to add the following to your `settings.json` to disable highlighting for Prettier.
```
"eslint.rules.customizations": [
  {
    "rule": "prettier/prettier",
    "severity": "off"
  }
]
```

### 6. Run `yarn lint` to format manually.
Lint all `.tsx`, `.ts`, `.jsx`, `.js`, `.cjs`, and `.mjs` (plus `.css` if using stylelint) files in your NPM project at once.

If using Next.js, you must remove the existing script in your `package.json` to use this command.
npm package: @rgossiaux/svelte-headlessui
Description: A complete, full-featured, unofficial Svelte port of Headless UI, an unstyled, fully accessible UI component library.
Latest version: 2.0.0

# svelte-headlessui

This is an unofficial, complete Svelte port of the Headless UI component library (https://headlessui.dev/). It contains **fully accessible, feature-rich, unstyled** UI components.

Documentation for this library is available at https://svelte-headlessui.goss.io

## Who is this for?

This library is for you if you fall into one of two categories:

- You want unstyled yet sophisticated customizable UI components that fully follow the WAI-ARIA specs. You want a component library to handle all the messy details (keyboard navigation, focus management, aria-\* attributes, and many many more), but you want to style your components yourself and not be constrained by existing design systems like Material UI.
  - Alternatively, you want to implement an existing design system in Svelte, and want a powerful set of primitives to build your components on, letting you focus on styling.
- You want to use the commercial Tailwind UI component library (https://tailwindui.com/) in your Svelte project, and want a drop-in replacement for the React/Vue components which power Tailwind UI.

This project is intended to keep an API as close as possible to the React API for the base Headless UI project, with only a few small differences. While one of the primary goals is to enable using Tailwind UI in a Svelte project with as little effort as possible, **neither Tailwind UI nor Tailwind CSS is required** to use these components.

This project is an **unofficial** port. I have no affiliation with Tailwind Labs and cannot offer commercial support for this project. With that said, I intend to keep it as up to date as possible with the upstream Headless UI project, including porting new components when they are released.

## Installation

```
npm install -D @rgossiaux/svelte-headlessui
```

## Usage

See https://svelte-headlessui.goss.io for full documentation.

## Credits

Credit for everything good about this library goes to Tailwind Labs for writing the original React/Vue versions. All bugs should be assumed to be my fault in the port (though as the codebases are so similar, bugs in upstream will likely affect this library too).

Additional thanks to https://github.com/hperrin/svelte-material-ui; this well-engineered Svelte library was the source of the action and event forwarding code, with minor modifications.

## License

This library is licensed under the MIT license; see the LICENSE file for more.
npm package: @rgossiaux/svelte-heroicons
Description: Svelte wrappers for the Heroicons library.
Author: Ryan Gossiaux
Latest version: 0.1.2

# svelte-heroicons

Yet another Svelte wrapper for [Heroicons](https://heroicons.com). 

This library differs from others in a couple main ways:
* The icon components forward common event listeners to the underlying SVG, so you may use `on:click` and so on;
* The API is closer to the official React wrappers, making it easier to use when converting [Tailwind UI](https://tailwindui.com/) components to Svelte in conjunction with [svelte-headlessui](https://github.com/rgossiaux/svelte-headlessui);
* It's based on the latest version of Heroicons (at time of writing), **1.0.5**

# Installation

```
npm install @rgossiaux/svelte-heroicons
```

# Usage

Heroicons contains two types of icons: outline and solid. They can be imported from `@rgossiaux/svelte-heroicons/outline` and `@rgossiaux/svelte-heroicons/solid` respectively. 

All icon names are CamelCased and end with the word `Icon`; for example, the `academic-cap` icon on heroicons.com is imported as `AcademicCapIcon`.

```svelte

<script>
  import { SelectorIcon } from "@rgossiaux/svelte-heroicons/solid";
  import { CheckIcon } from "@rgossiaux/svelte-heroicons/outline";
</script>

<CheckIcon />
<SelectorIcon class="my-class" aria-hidden="true" />

```

# Documentation

See [heroicons.com](https://heroicons.com) for the full list of icons.

# License

As with the main Heroicons library, this library is MIT licensed.

# Credit

All credit goes to Tailwind Labs for designing the icons and to the [svg-to-svelte](https://github.com/metonym/svg-to-svelte) library for the tooling to wrap them as Svelte components.
npm package: @rgottleber/svelte-wallet
Description: A simple Svelte component for Connecting Web3 wallets
Latest version: 1.0.0

# @rgottleber/svelte-wallet
![npm](https://img.shields.io/npm/v/@rgottleber/wallet-connect)
[![GitHub issues](https://img.shields.io/github/issues/rgottleber/svelte-wallet)](https://github.com/rgottleber/svelte-wallet/issues)
[![GitHub license](https://img.shields.io/github/license/rgottleber/svelte-wallet)](https://github.com/rgottleber/svelte-wallet)

Single component to connect web3 wallet in Svelte

## Install
`npm install @rgottleber/svelte-wallet-connect`

## Usage
```html
<script>
    import { WalletConnect } from '@rgottleber/wallet-connect';
    export let web3Props = {
            provider: null,
            signer: null,
            account: null,
            chainId: null,
            contract: null
        };
</script>

<WalletConnect bind:web3Props />
```

## Other Info
The button includes `class="btn"` for styling purposes. As well as style variable. `<WalletConnect {style} bind:web3Props>`
npm package: @rgrannell/array
Description: Various array utilities
Latest version: 9.4.0


# array (v9.3.0)

## Stability

> 0 - Experimental

Various array utilities



## Table of Contents

- [array.oneOf](#arrayoneof)
  * [Parameters](#parameters)
- [array.seqTo](#arrayseqto)
  * [Parameters](#parameters-1)
- [array.seqAlong](#arrayseqalong)
  * [Parameters](#parameters-2)
- [array.repeat](#arrayrepeat)
  * [Parameters](#parameters-3)
  * [Examples](#examples)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## array.oneOf

Select a random value from an input array, using a non-cryptographically secure selector.

### Parameters

-   `value` **[Array][1]&lt;any>** An array of arbitrary values

Returns **any** a randomly selected element from the array

## array.seqTo

Create an array of indices up to but not including a ceiling value provided.

### Parameters

-   `number` **[Number][2]** a positive number

Returns **[Array][1]&lt;[Number][2]>** an array of indices

## array.seqAlong

Return an array of indices for an input array

### Parameters

-   `array` **[Array][1]&lt;Any>** an arbitrary array

Returns **[Array][1]&lt;[Number][2]>** return an array of indices for that array

## array.repeat

Repeat an arbitrary value several times

### Parameters

-   `value` **Any** an arbitrary value to repeat
-   `count` **[Number][2]** a nonnegative number describing the number of times to repeat the arbitrary value provided

### Examples

```javascript
array.repeat('a',3)
```

Returns **[Array][1]&lt;Any>** an array of repeated values.

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/build
Description: Various package.json build utilities
Latest version: 9.4.0


# build (v9.3.0)

## Stability

> 0 - Experimental

Various package.json build utilities



## Table of Contents



## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/chain
Description: Builder-pattern utility
Latest version: 9.4.0


# chain (v9.3.0)

## Stability

> 0 - Experimental

Builder-pattern utility



## Table of Contents

- [chain](#chain)
  * [Parameters](#parameters)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## chain

Create a builder-pattern function

### Parameters

-   `methods` **[Object][1]** An object of functions, with the property being the method-name, the
                               value being the method to call. A state object is bound to the methods first parameter.
-   `state` **[Object][1]** A state object (optional, default `{}`)

Returns **[Proxy][2]** A proxy that intercepts the method name & dispatches the correct function.

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/config
Description: An alternative to config.js
Latest version: 9.4.0


# config (v9.3.0)

## Stability

> 0 - Experimental

An alternative to config.js



## Table of Contents

- [yieldConfig](#yieldconfig)
  * [Parameters](#parameters)
- [config](#config)
  * [Parameters](#parameters-1)
  * [Examples](#examples)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## yieldConfig

Merge default & environment-specific configuration. Accepts either an object or a function that takes
the default configuration.

### Parameters

-   `configPath` **[string][1]** the path to environmental configuration
-   `defaultConf` **[function][2]** configuration to merge in to

Returns **[object][3]** the loaded configuration

## config

Load configuration based on an environmental variable.

### Parameters

-   `environment` **[string][1]** an environment variable. Defaults to NODE_ENV
-   `opts` **[Object][3]** options passed to the config module.
    -   `opts.root` **[string][1]** the root folder to search for configuration in. Defaults to `process.cwd`

### Examples

```javascript
config('development', { root: '../..' })
```

Returns **[Object][3]** environment configuration

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/create
Description: Creates a react-app
Latest version: 9.4.0


# creact (v9.3.0)

## Stability

> 0 - Experimental

Creates a react-app



## Table of Contents



## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/depcheck
Description: check that a project has no unused dependencies
Latest version: 9.4.0


# depcheck (v9.3.0)

## Stability

> 0 - Experimental

check that a project has no unused dependencies


## Overview

Depcheck is a build system step designed to fail when a project has
unused dependencies

- Call `depcheck` with the folder containing the project's `package.json`
- Wire this call into a pulp command or an alternative build-system


## Table of Contents

- [runDepcheck](#rundepcheck)
  * [Parameters](#parameters)
- [depcheck](#depcheck)
  * [Parameters](#parameters-1)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## runDepcheck

run the dependency check module

### Parameters

-   `fpath` **[string][1]** the path to the target directory

Returns **[Promise][2]&lt;[object][3]>** a promise containing dependency information

## depcheck

Throw an error if a package has any unused packages.

### Parameters

-   `fpath` **[string][1]** the folder path containing the package.json

Returns **[Promise][2]** a result promise

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/docker
Description: Utilities for constructing docker files from JavaScript
Latest version: 9.4.0


# docker (v9.3.0)

## Stability

> 0 - Experimental

Utilities for constructing docker files from JavaScript



## Table of Contents



## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/ebnf
Description: Construct a generator for an EBNF grammar
Latest version: 9.4.0


# ebnf (v9.3.0)

## Stability

> 0 - Experimental

Construct a generator for an EBNF grammar



## Table of Contents

- [ebnf.grammar](#ebnfgrammar)
- [ebnf.sets.ALPHABET](#ebnfsetsalphabet)
- [ebnf.sets.DIGITS](#ebnfsetsdigits)
- [ebnf.sets.HEX_DIGITS](#ebnfsetshex_digits)
- [ebnf.sets.BITS](#ebnfsetsbits)
- [ebnf.sets.DOUBLE_QUOTE](#ebnfsetsdouble_quote)
- [ebnf.sets.SINGLE_QUOTE](#ebnfsetssingle_quote)
- [ebnf.sets.SPACE](#ebnfsetsspace)
- [ebnf.sets.ASCII](#ebnfsetsascii)
- [ebnf.sets.LINE_FEED](#ebnfsetsline_feed)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## ebnf.grammar

Create an EBNF grammar

Returns **[Object][1]** chaining methods & state to create a EBNF ruleset

## ebnf.sets.ALPHABET

Lower & upper-case characters

## ebnf.sets.DIGITS

Arabic digits

## ebnf.sets.HEX_DIGITS

Hexidecimal characters

## ebnf.sets.BITS

Binary bits

## ebnf.sets.DOUBLE_QUOTE

A double-quote

## ebnf.sets.SINGLE_QUOTE

A single-quote

## ebnf.sets.SPACE

A space

## ebnf.sets.ASCII

ASCII characters

## ebnf.sets.LINE_FEED

A line-feed character

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/errors
Description: Construct errors
Latest version: 9.4.0


# errors (v9.3.0)

## Stability

> 0 - Experimental

Construct errors



## Table of Contents

- [errors](#errors)
  * [Examples](#examples)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## errors

Easily construct custom-errors

### Examples

```javascript
errors.notFoundError('user-account was not found', 'ENOTFOUND')
```


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/erros
Description: Construct errors
Latest version: 8.1.0-alpha.ded934b0


# errors (v8.1.0-alpha.687ac587)

Construct errors



## Table of Contents

- [errors](#errors)
  * [Examples](#examples)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## errors

Easily construct custom-errors

### Examples

```javascript
errors.notFoundError('user-account was not found', 'ENOTFOUND')
```


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2018 Ryan Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/fp
Description: Functional programming utilities
Latest version: 9.4.0


# fp (v9.3.0)

## Stability

> 0 - Experimental

Functional programming utilities



## Table of Contents

- [fp.id](#fpid)
  * [Parameters](#parameters)
  * [Examples](#examples)
- [fp.constants](#fpconstants)
  * [Parameters](#parameters-1)
- [fp.pluck](#fppluck)
  * [Parameters](#parameters-2)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## fp.id

Identity function

### Parameters

-   `value` **any** an arbitrary value

### Examples

```javascript
// return 1
 fp.id(1)
```

Returns **any** the same input value

## fp.constants

Constant function

### Parameters

-   `value` **any** an arbitrary

Returns **[function][1]** a function yielding that value

## fp.pluck

Returns a function that selects properties from an object

### Parameters

-   `prop` **[string][2]** an object property name

Returns **[function][1]** a function that selects object properties.

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/github
Description: Utilities for working with Github
Latest version: 9.4.0


# github (v9.3.0)

## Stability

> 0 - Experimental

Utilities for working with Github



## Table of Contents

- [getProject](#getproject)
  * [Parameters](#parameters)
- [createPR](#createpr)
  * [Parameters](#parameters-1)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## getProject

Get a GitHub project by name

### Parameters

-   `$0` **[Object][1]** 
    -   `$0.owner`  
    -   `$0.repo`  
    -   `$0.name`  
    -   `$0.token`  

Returns **[Promise][2]** A result promise

## createPR

Create a Github pull-request

### Parameters

-   `$0` **[Object][1]** 
    -   `$0.owner`  
    -   `$0.repo`  
    -   `$0.branches`  
    -   `$0.message`  
    -   `$0.token`  

Returns **[Promise][2]** A result promise

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/index
Description: A utility library for loading submodules
Latest version: 9.4.0


# index (v9.3.0)

## Stability

> 0 - Experimental

A utility library for loading submodules



## Table of Contents

- [index.deriveName](#indexderivename)
  * [Parameters](#parameters)
- [index.load](#indexload)
  * [Parameters](#parameters-1)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## index.deriveName

Convert a filename to a javascript property name

### Parameters

-   `fileName` **[string][1]** a file path

Returns **[string][1]** a property name

## index.load

Load modules from all files in a directory into an object of modules

### Parameters

-   `opts` **[Object][2]** options used to configure module-loading.

Returns **[Object][2]** returns an object of submodules exports.

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/inkling
Description: Inkling is a puppeteer-style testing library based on ink-testing-library
Author: Róisín Grannell
Latest version: 0.4.0


# inkling

![CI](https://github.com/rgrannell1/inkling/workflows/CI/badge.svg)

Inkling is a puppeteer-style testing library based on [ink-testing-library](https://github.com/vadimdemedes/ink-testing-library). It differs in providing
convenience wrappers for sending interactive inputs.

```tsx
$app = new Inkling(({stdin}) => {
  return <App stdin={stdin}>
})

$app.stdin.write('line0')
$app.stdin.write('line1')

$app.type('hello, this is input text')

const content = $app.lastFrame()

$app.close()
```

### Stability Index

> 1, Experimental - This project might die, it's undertested and underdocumented, and redesigns and breaking changes are likely

### Files

```
.github/workflows
  main.yaml                    defines the CI workflow for testing this repo
  dist                         compiled code, so people don't need to manually compile to test
  src/
```

### License

The MIT License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/js-generator
Description: An itertools-like library
Latest version: 9.4.0


# js-generator (v9.3.0)

## Stability

> 0 - Experimental

An itertools-like library



## Table of Contents



## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/lint
Description: throw an error if a package fails to lint
Latest version: 9.4.0


# lint (v9.3.0)

## Stability

> 0 - Experimental

throw an error if a package fails to lint



## Table of Contents

- [summariseLintErrors](#summariselinterrors)
  * [Parameters](#parameters)
- [lint](#lint)
  * [Parameters](#parameters-1)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## summariseLintErrors

Summarise lint-errors to display

### Parameters

-   `results` **any** 

## lint

lint files and throw an error if they do not pass

### Parameters

-   `target` **file** the target glob


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/mustache
Description: A utility library for generating mustache templates from JavaScript
Latest version: 9.4.0


# mustache (v9.3.0)

## Stability

> 0 - Experimental

A utility library for generating mustache templates from JavaScript



## Table of Contents



## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rgrannell/object
Description: A utility library for working with objects
Latest version: 9.4.0


# object (v9.3.0)

## Stability

> 0 - Experimental

A utility library for working with objects



## Table of Contents

  * [Parameters](#parameters)
- [object](#object)
  * [Parameters](#parameters-1)
- [object](#object-1)
  * [Parameters](#parameters-2)

## API Documentation

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## 

Return a clone of an object only containing the provided properties.

### Parameters

-   `object` **[Object][1]** an arbitrary object
-   `props` **[Array][2]&lt;[String][3]>** an array of property names to keep.

Returns **[Object][1]** an object with a subset of
                    properties from an input object.

## object

Return a clone of an object removing selected properties.

### Parameters

-   `object` **[Object][1]** an arbitrary object
-   `props` **[Array][2]&lt;[String][3]>** an array of property names to keep.

Returns **[Object][1]** an object with a subset of
                    properties from an input object.

## object

Select listed properties from an object

### Parameters

-   `object` **[Object][1]** 
-   `props` **[Array][2]** a list of string

Returns **[Object][1]** 

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String


## Dependencies

- Node.js >= v10.6.0
- NPM >= v10.6.0

## License

Copyright (c) 2020 Róisín Grannell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.