open-index/open-npm huggingface dataset:
npm package: @moxy-js/api
Description: Mocks & Proxies
Latest version: 0.0.1-54

# Moxy.js

Mocks & Proxies

### 1. Install

Run:
```sh
npm i -g @moxy-js/cli
```

### 2. Start

To start simply run:
```sh
moxy
```

It will start the main server on port 3500 with a control panel, and a child server on port 3501 which will serve all the mocks and proxies.

Every request which does not match "/web/..." or "/api/..." will be proxied to the child server.

###2.1. Arguments

```
Options:
      --help               Show help                                   [boolean]
      --version            Show version number                         [boolean]
  -p, --port               Port of the main server, where control panel will be
                           served                       [number] [default: 3500]
  -c, --child-port         Port of the child server, where mocks & proxies will
                           be served                    [number] [default: 3501]
  -d, --debounce           Debounce time in milliseconds for child server
                           restarts                     [number] [default: 5000]
  -s, --skip-open          Skip browser launch        [boolean] [default: false]
  
      --git.remote         Remote url of git repository                 [string]
      --git.private-key    Path to private key or base64 encoded private key
                           (with 'encoded:' prefix)                     [string]
      --git.push-interval  Interval after which changes will be pushed to the
                           remote repository (in minutes) [number] [default: 60]
```
npm package: @moxy-js/child
Description: Mocks & Proxies
Latest version: 0.0.1-54

# Moxy.js

Mocks & Proxies

### 1. Install

Run:
```sh
npm i -g @moxy-js/cli
```

### 2. Start

To start simply run:
```sh
moxy
```

It will start the main server on port 3500 with a control panel, and a child server on port 3501 which will serve all the mocks and proxies.

Every request which does not match "/web/..." or "/api/..." will be proxied to the child server.

###2.1. Arguments

```
Options:
      --help               Show help                                   [boolean]
      --version            Show version number                         [boolean]
  -p, --port               Port of the main server, where control panel will be
                           served                       [number] [default: 3500]
  -c, --child-port         Port of the child server, where mocks & proxies will
                           be served                    [number] [default: 3501]
  -d, --debounce           Debounce time in milliseconds for child server
                           restarts                     [number] [default: 5000]
  -s, --skip-open          Skip browser launch        [boolean] [default: false]
  
      --git.remote         Remote url of git repository                 [string]
      --git.private-key    Path to private key or base64 encoded private key
                           (with 'encoded:' prefix)                     [string]
      --git.push-interval  Interval after which changes will be pushed to the
                           remote repository (in minutes) [number] [default: 60]
```
npm package: @moxy-js/collections
Description: Mocks & Proxies
Latest version: 0.0.1-54

# Moxy.js

Mocks & Proxies

### 1. Install

Run:
```sh
npm i -g @moxy-js/cli
```

### 2. Start

To start simply run:
```sh
moxy
```

It will start the main server on port 3500 with a control panel, and a child server on port 3501 which will serve all the mocks and proxies.

Every request which does not match "/web/..." or "/api/..." will be proxied to the child server.

###2.1. Arguments

```
Options:
      --help               Show help                                   [boolean]
      --version            Show version number                         [boolean]
  -p, --port               Port of the main server, where control panel will be
                           served                       [number] [default: 3500]
  -c, --child-port         Port of the child server, where mocks & proxies will
                           be served                    [number] [default: 3501]
  -d, --debounce           Debounce time in milliseconds for child server
                           restarts                     [number] [default: 5000]
  -s, --skip-open          Skip browser launch        [boolean] [default: false]
  
      --git.remote         Remote url of git repository                 [string]
      --git.private-key    Path to private key or base64 encoded private key
                           (with 'encoded:' prefix)                     [string]
      --git.push-interval  Interval after which changes will be pushed to the
                           remote repository (in minutes) [number] [default: 60]
```
npm package: @moxy-js/dto
Description: Mocks & Proxies
Latest version: 0.0.1-54

# Moxy.js

Mocks & Proxies

### 1. Install

Run:
```sh
npm i -g @moxy-js/cli
```

### 2. Start

To start simply run:
```sh
moxy
```

It will start the main server on port 3500 with a control panel, and a child server on port 3501 which will serve all the mocks and proxies.

Every request which does not match "/web/..." or "/api/..." will be proxied to the child server.

###2.1. Arguments

```
Options:
      --help               Show help                                   [boolean]
      --version            Show version number                         [boolean]
  -p, --port               Port of the main server, where control panel will be
                           served                       [number] [default: 3500]
  -c, --child-port         Port of the child server, where mocks & proxies will
                           be served                    [number] [default: 3501]
  -d, --debounce           Debounce time in milliseconds for child server
                           restarts                     [number] [default: 5000]
  -s, --skip-open          Skip browser launch        [boolean] [default: false]
  
      --git.remote         Remote url of git repository                 [string]
      --git.private-key    Path to private key or base64 encoded private key
                           (with 'encoded:' prefix)                     [string]
      --git.push-interval  Interval after which changes will be pushed to the
                           remote repository (in minutes) [number] [default: 60]
```
npm package: @moxy-js/paths
Description: Mocks & Proxies
Latest version: 0.0.1-54

# Moxy.js

Mocks & Proxies

### 1. Install

Run:
```sh
npm i -g @moxy-js/cli
```

### 2. Start

To start simply run:
```sh
moxy
```

It will start the main server on port 3500 with a control panel, and a child server on port 3501 which will serve all the mocks and proxies.

Every request which does not match "/web/..." or "/api/..." will be proxied to the child server.

###2.1. Arguments

```
Options:
      --help               Show help                                   [boolean]
      --version            Show version number                         [boolean]
  -p, --port               Port of the main server, where control panel will be
                           served                       [number] [default: 3500]
  -c, --child-port         Port of the child server, where mocks & proxies will
                           be served                    [number] [default: 3501]
  -d, --debounce           Debounce time in milliseconds for child server
                           restarts                     [number] [default: 5000]
  -s, --skip-open          Skip browser launch        [boolean] [default: false]
  
      --git.remote         Remote url of git repository                 [string]
      --git.private-key    Path to private key or base64 encoded private key
                           (with 'encoded:' prefix)                     [string]
      --git.push-interval  Interval after which changes will be pushed to the
                           remote repository (in minutes) [number] [default: 60]
```
npm package: @moxy/eslint-config-babel
Description: MOXY's ESLint configuration enhancer for projects that use Babel
Author: André Cruz
Latest version: 13.1.0

# eslint-config-babel

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config-react
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-react.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-react.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-react
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-react
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-react
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-react

MOXY's [ESLint](http://eslint.org/) configuration **enhancer** for projects that use [Babel](https://babeljs.io/).

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-babel
```

## Usage

Create a `.eslintrc.json` file in the project root and extend `@moxy/eslint-config-babel`.

This package should be used in conjunction with [`@moxy/eslint-config-base`](../eslint-config-base).

### Example

```json
{
    "root": true,
    "env": {
        "browser": true,
    },
    "extends": [
        "@moxy/eslint-config-base/esm",
        "@moxy/eslint-config-babel"
    ]
}
```

⚠️ If you are using a monorepo, you will need specify the `configFile` to point to the root:

```json
{
    "root": true,
    "env": {
        "browser": true
    },
    "extends": [
        "@moxy/eslint-config-base/esm",
        "@moxy/eslint-config-babel"
    ],
    "parserOptions": {
        "babelOptions": {
          "configFile": "./.babelrc.json"
        }
    }
}
```
npm package: @moxy/eslint-config-browser
Description: MOXY eslint configuration to be used for JavaScript projects in the browser
Author: André Cruz
Latest version: 1.0.0
Deprecated: Use @moxy/eslint-config-base

# eslint-config-browser

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config-browser
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-browser.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-browser.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-browser
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-browser
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-browser
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-browser

MOXY [eslint](http://eslint.org/) configuration to be used for JavaScript projects in the browser.

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-browser
```

## Usage

Create a `.eslintrc.json` file in the project root and extend `@moxy/eslint-config-browser`.

### Examples

```json
{
    "root": true,
    "extends": [
        "@moxy/eslint-config-browser"
    ]
}
```

Note that by setting `root` to true, we ensure that no ancestor configuration is used which also improves `ESLint` performance because no more file lookups need to be done.
npm package: @moxy/eslint-config-core
Description: MOXY eslint core configuration to be used by eslint base configurations
Author: André Cruz
Latest version: 1.0.0
Deprecated: Use @moxy/eslint-config-base

# eslint-config-core

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config-core
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-core.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-core.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-core
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-core
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-core
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-core

MOXY [eslint](http://eslint.org/) **core** configuration to be used by _eslint_ **base** configurations.

❗️ **IMPORTANT**: This package is not meant to be used directly in your projects.

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-core
```

## Usage

Create a `.eslintrc.json` file in the project root using a base configuration and addons.

You need to choose the **base** configuration to use:

- `es6` - The configuration to be used in ECMAScript 6 based projects (aka 2015)
- `es7` - The configuration to be used in ECMAScript 7 based projects (aka 2016)
- `es8` - The configuration to be used in ECMAScript 8 based projects (aka 2017)
- `es9` - The configuration to be used in ECMAScript 9 based projects (aka 2018)
- `es10` - The configuration to be used in ECMAScript 10 based projects (aka 2019)
- `es11` - The configuration to be used in ECMAScript 10 based projects (aka 2020)

Example:

```json
{
    "root": true,
    "extends": [
        "@moxy/eslint-config-core/es9",
    ]
}
```

This package also currently provides one **shared** functionality:
- _test-patterns_
  
You can directly access **shared** functionality provided by this package.

```json
{
    "root": true,
    "extends": [
        "@moxy/eslint-config-core/lib/test-patterns",
    ]
}
```
npm package: @moxy/eslint-config-isomorphic
Description: MOXY eslint configuration to be used in isomorphic Javascript projects
Author: André Cruz
Latest version: 1.0.0
Deprecated: Use @moxy/eslint-config-base

# eslint-config

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-isomorphic
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-isomorphic
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-isomorphic
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-isomorphic

MOXY [eslint](http://eslint.org/) configuration to be used in isomorphic Javascript projects.

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config
```

*NOTE*: `npm` v3 or greater is required for this package to work correctly until [#3458](https://github.com/eslint/eslint/issues/3458) is resolved.

## Usage

Create a `.eslintrc.json` file in the project root and extend `@moxy/eslint-config-isomorphic`.

### Examples

```json
{
    "root": true,
    "extends": [
        "@moxy/eslint-config-isomorphic
    ]
}
```

Note that by setting `root` to true, we ensure that no ancestor configuration is used which also improves `ESLint` performance because no more file lookups need to be done.
npm package: @moxy/eslint-config-jest
Description: MOXY's ESLint configuration enhancer for projects that use Jest for testing
Author: André Cruz
Latest version: 13.1.0

# eslint-config-jest

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]


[npm-url]:https://npmjs.org/package/@moxy/eslint-config-jest
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-jest.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-jest.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-jest
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-jest
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-jest
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-jest

MOXY's [ESLint](http://eslint.org/) configuration **enhancer** for projects that use [Jest](https://jestjs.io) for testing.

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-jest
```

## Usage

Create a `.eslintrc.json` file in the project root and extend `@moxy/eslint-config-jest`.

This package should be used in conjunction with [`@moxy/eslint-config-base`](../eslint-config-base).

ℹ️ Only test files will have Jest globals and rules activated. Please check the [test-patterns](../eslint-config-base/lib/test-patterns.js) to see how you should name your test files.

### Example

```json
{
    "root": true,
    "env": {
        "browser": true
    },
    "extends": [
        "@moxy/eslint-config-base/esm",
        "@moxy/eslint-config-jest"
    ]
}
```
npm package: @moxy/eslint-config-node
Description: MOXY eslint configuration to be used in Javascript projects targeted for NodeJS
Author: André Cruz
Latest version: 1.0.0
Deprecated: Use @moxy/eslint-config-base

# eslint-config-node

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config-node
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-node.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-node.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-node
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-node
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-node
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-node

MOXY [eslint](http://eslint.org/) configuration to be used in Javascript projects targeted for [NodeJS](https://nodejs.org).

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-node
```

## Usage

Create a `.eslintrc.json` file in the project root and extend `@moxy/eslint-config-browser`.

You can change the ECMAScript version for the **base** configuration to use:

- `es6` - The configuration to be used in ECMAScript 6 based projects (aka 2015)
- `es7` - The configuration to be used in ECMAScript 7 based projects (aka 2016)
- `es8` - The configuration to be used in ECMAScript 8 based projects (aka 2017)
- `es9` - The configuration to be used in ECMAScript 9 based projects (aka 2018)
- `es10` - The configuration to be used in ECMAScript 10 based projects (aka 2019)

The default configuration is `es10`.

### Examples

```json
{
    "root": true,
    "extends": [
        "@moxy/eslint-config-node"
    ]
}
```

In case you want to specify an ECMAScript version:

```json
{
    "root": true,
    "extends": [
        "@moxy/eslint-config-node/es7"
    ]
}
```

Note that by setting `root` to true, we ensure that no ancestor configuration is used which also improves `ESLint` performance because no more file lookups need to be done.
npm package: @moxy/eslint-config-react
Description: MOXY's ESLint configuration enhancer for projects that use React
Author: André Cruz
Latest version: 13.1.0

# eslint-config-react

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config-react
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-react.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-react.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-react
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-react
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-react
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-react

MOXY's [ESLint](http://eslint.org/) configuration **enhancer** for projects that use [React](https://reactjs.org).

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-react
```

## Usage

Create a `.eslintrc.json` file in the project root and extend `@moxy/eslint-config-react`.

This package should be used in conjunction with [`@moxy/eslint-config-base`](../eslint-config-base).

### Example

```json
{
    "root": true,
    "env": {
        "browser": true
    },
    "extends": [
        "@moxy/eslint-config-base/esm",
        "@moxy/eslint-config-react"
    ]
}
```
npm package: @moxy/eslint-config-react-native
Description: MOXY's ESLint configuration enhancer for React Native apps
Author: André Costa Lima
Latest version: 13.1.0

# eslint-config-react-native

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config-react-native
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-react-native.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-react-native.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-react-native
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-react-native
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-react-native
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-react-native

MOXY's [ESLint](http://eslint.org/) configuration **enhancer** for [React Native](https://reactnative.dev/) apps.

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-react-native
```

## Usage

Create a `.eslintrc.json` file in the project root and extend `@moxy/eslint-config-react-native`.

This package should be used in conjunction with [`@moxy/eslint-config-base`](../eslint-config-base).

### Example

```json
{
    "root": true,
    "extends": [
        "@moxy/eslint-config-base/esm",
        "@moxy/eslint-config-react-native"
    ]
}
```

ℹ️ The environment is automatically set to `react-native/react-native`.
npm package: @moxy/eslint-config-react-native-a11y
Description: MOXY's ESLint accessibility rules for React Native apps
Author: André Costa Lima
Latest version: 13.1.0

# eslint-config-react-native-a11y

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config-react-native-a11y
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-react-native-a11y.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-react-native-a11y.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-react-native-a11y
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-react-native-a11y
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-react-native-a11y
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-react-native-a11y

MOXY's [ESLint](http://eslint.org/) accessibility rules for [React Native](https://reactnative.dev/) apps.

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-react-native-a11y
```

## Usage

Create a `.eslintrc.json` file in the project root and extend from one of these configurations:

- `@moxy/eslint-config-react-native-a11y` - for apps targeting the latest version of React Native.
- `@moxy/eslint-config-react-native-a11y/rn-062` - for apps targeting React Native ~0.62.0.
- `@moxy/eslint-config-react-native-a11y/rn-061` - for apps targeting React Native ~0.61.0.
- `@moxy/eslint-config-react-native-a11y/rn-060` - for apps targeting React Native ~0.60.0.
- `@moxy/eslint-config-react-native-a11y/rn-059` - for apps targeting React Native <=0.59.10.

ℹ️ By default, the configurations above are for both iOS and Android. If you are targeting only one platform, append its name as follows:

- `@moxy/eslint-config-react-native-a11y/android`
- `@moxy/eslint-config-react-native-a11y/ios`
- `@moxy/eslint-config-react-native-a11y/rn-*/android`
- `@moxy/eslint-config-react-native-a11y/rn-*/ios`

This package should be used in conjunction with:

- [`@moxy/eslint-config-base`](../eslint-config-base)
- [`@moxy/eslint-config-react`](../eslint-config-react)
- [`@moxy/eslint-config-react-native`](../eslint-config-react-native)

### Example

```json
{
    "root": true,
    "extends": [
        "@moxy/eslint-config-base/esm",
        "@moxy/eslint-config-react",
        "@moxy/eslint-config-react-native",
        "@moxy/eslint-config-react-native-a11y"
    ]
}
```
npm package: @moxy/eslint-config-react-web-a11y
Description: MOXY's ESLint accessibility rules for web projects that use React
Author: André Cruz
Latest version: 13.1.0

# eslint-config-react-web-a11y

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config-react-web-a11y
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-react-web-a11y.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-react-web-a11y.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-react-web-a11y
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-react-web-a11y
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-react-web-a11y
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-react-web-a11y

MOXY's [ESLint](http://eslint.org/) accessibility rules for web projects that use [React](https://reactjs.org).

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-react-web-a11y
```

## Usage

Create a `.eslintrc.json` file in the project root and extend `@moxy/eslint-config-react-web-a11y`.

This package should be used in conjunction with [`@moxy/eslint-config-base`](../eslint-config-base) and [`@moxy/eslint-config-react`](../eslint-config-react).

### Example

```json
{
    "root": true,
    "env": {
        "browser": true
    },
    "extends": [
        "@moxy/eslint-config-base/esm",
        "@moxy/eslint-config-react",
        "@moxy/eslint-config-react-web-a11y"
    ]
}
```
npm package: @moxy/eslint-config-vue
Description: MOXY's ESLint configuration enhancer for projects that use Vue
Author: André Cruz
Latest version: 13.1.0

# eslint-config-vue

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/eslint-config-vue
[npm-image]:https://img.shields.io/npm/v/@moxy/eslint-config-vue.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/eslint-config-vue.svg
[david-dm-url]:https://david-dm.org/moxystudio/eslint-config?path=packages/eslint-config-vue
[david-dm-image]:https://img.shields.io/david/moxystudio/eslint-config.svg?path=packages/eslint-config-vue
[david-dm-dev-url]:https://david-dm.org/moxystudio/eslint-config?type=dev&path=packages/eslint-config-vue
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/eslint-config.svg?path=packages/eslint-config-vue

MOXY's [ESLint](http://eslint.org/) configuration **enhancer** for projects that use [Vue](https://vuejs.org).

## Installation

```sh
$ npm install --save-dev eslint @moxy/eslint-config-vue
```

## Usage

Create a `.eslintrc.json` file in the project root and extend `@moxy/eslint-config-vue`.

This package should be used in conjunction with [`@moxy/eslint-config-base`](../eslint-config-base).

### Example

```json
{
    "root": true,
    "env": {
        "browser": true
    },
    "extends": [
        "@moxy/eslint-config-base/esm",
        "@moxy/eslint-config-vue"
    ]
}
```
npm package: @moxy/grow-element-fn
Description: Update textarea height to its content with lines number customization
Author: Nikita Borisenko
Latest version: 1.0.6

# grow-element-fn

Update textarea height to its content with lines number customization.

#### Demo: [link](https://www.webpackbin.com/bins/-L-lOgKNYmW7vFRyuAKH)
#### GitHub: [link](https://github.com/Snowshield/grow-element-fn)
#### NPM: [link](https://www.npmjs.com/package/grow-element-fn)

## Summary
Library to auto-grow and auto-shrink textarea to fit its content. Works perfect with vertical scrollbar.
##### Recomended textarea styles:

```css
word-wrap: break-word;
white-space: pre-line;
line-height: 30px; // should be defined
```


#### Install via NPM
```
npm install --save grow-element-fn
```

#### Browser compatibility

Chrome | Firefox | IE | EDGE | Safari | iOS Safari | Android | Opera Mini | Windows Phone IE
------ | --------|------|----|--------|------------|---------|------------|------------------
yes    | 57    | 10 | +   | ?    | ?        | +       | ?          | ?

#### Usage

```javascript
import growElementFn from 'grow-element-fn';
const textarea = document.getElementById("my-textarea");

function growTextarea() {
  growElementFn({
    el: textarea,
    minLines: 1,
    maxLines: 4,
    extraLine: true,
  });
}

growTextarea();
textarea.addEventListener('focus', growTextarea);
textarea.addEventListener('blur', growTextarea);
textarea.addEventListener('input', growTextarea);
```


#### Options:

el (Element, required): reference to DOM element.

minLines (Number = 1): minimum lines of textarea.

maxLines (Number = 0): maximum lines of textarea to display no scrollbar. If maxLines is 0 textarea won't have maximum lines limit.

extraLine (boolean = false): add extra line in the bottom of textarea. Usefull to remove content jumping on slow devices.


#### License: [MIT](http://www.opensource.org/licenses/mit-license.php)
npm package: @moxy/jest-config-react-native
Description: MOXY's Jest configuration enhancer for React Native apps
Author: João Silva
Latest version: 6.1.0

# jest-config-react-native

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/jest-config-react-native
[npm-image]:https://img.shields.io/npm/v/@moxy/jest-config-react-native.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/jest-config-react-native.svg
[david-dm-url]:https://david-dm.org/moxystudio/jest-config?path=packages/jest-config-react-native
[david-dm-image]:https://img.shields.io/david/moxystudio/jest-config.svg?path=packages/jest-config-react-native
[david-dm-dev-url]:https://david-dm.org/moxystudio/jest-config?type=dev&path=packages/jest-config-react-native
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/jest-config.svg?path=packages/jest-config-react-native

MOXY's [Jest](https://jestjs.io/) configuration **enhancer** for React Native apps.

⚠️ This enhancer requires you to have [`react-native`](https://www.npmjs.com/package/react-native) installed in your project.

## Installation

```sh
$ npm install --save-dev jest @moxy/jest-config-base @moxy/jest-config-react-native
```

This package should be used in conjunction with `@moxy/jest-config-base`.

## What's included?

- **React Native Jest preset:** Adds [`react-native/jest-preset`](https://github.com/facebook/react-native/blob/master/jest-preset.js) to configure the environment.
- **Transform**: Allows importing common files used in React Native projects, such as fonts, images and videos.
- **React Native mocks**: Supress warnings and errors when trying to access native functionality.

## Usage

To use this enhancer, use the `compose` function that comes with this package. **Keep in mind**, the first item should always be the base configuration!

```js
'use strict';

const { compose, baseConfig } = require('@moxy/jest-config-base');
const withReactNative = require('@moxy/jest-config-react-native');

module.exports = compose(
    baseConfig('node'),
    withReactNative(),
);
```

The enhancer accepts an options object as the first argument with the following keys:

- `transformModules`: A function that allows you to add (or remove) modules to be transformed by Babel. It has the following signature `(patterns) => newPatterns`, where the default `patterns` are `['(jest-)?react-native(-.*)?/', '@react-native-community/']`.

To showcase the usefulness of `transformModules`, let's pretend that you use [React Navigation](https://reactnavigation.org/) in your project. You would need to compile its packages to make them work in Jest, so you would add them to `transformModules` like so:

```js
'use strict';

const { compose, baseConfig } = require('@moxy/jest-config');
const withReactNative = require('@moxy/jest-config-react-native');

module.exports = compose(
    baseConfig('node'),
    withReactNative({
        transformModules: (patterns) => [...patterns, '@react-navigation/'],
    }),
);
```
npm package: @moxy/jest-config-testing-library
Description: MOXY's Jest configuration enhancer for RTL and NTL
Author: João Silva
Latest version: 6.1.0

# jest-config-testing-library

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/jest-config-testing-library
[npm-image]:https://img.shields.io/npm/v/@moxy/jest-config-testing-library.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/jest-config-testing-library.svg
[david-dm-url]:https://david-dm.org/moxystudio/jest-config?path=packages/jest-config-testing-library
[david-dm-image]:https://img.shields.io/david/moxystudio/jest-config.svg?path=packages/jest-config-testing-library
[david-dm-dev-url]:https://david-dm.org/moxystudio/jest-config?type=dev&path=packages/jest-config-testing-library
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/jest-config.svg?path=packages/jest-config-testing-library

MOXY's [Jest](https://jestjs.io/) configuration **enhancer** for:
- Web projects that use [React Testing Library (RTL)](https://github.com/testing-library/react-testing-library) framework.
- React Native apps that use [Native Testing Library (NTL)](https://github.com/testing-library/native-testing-library) framework.

## Installation

```sh
$ npm install --save-dev jest @moxy/jest-config-base @moxy/jest-config-testing-library
```

This package should be used in conjunction with `@moxy/jest-config-base`. There are two enhancers available:

- [withRTL](#withrtl)
- [withNTL](#withntl)

# withRTL

An enhancer for web projects tested with React Testing Library.

## What's included?

- **Extended matchers:** Make assertions easier and clearer by using [jest-dom](https://github.com/testing-library/jest-dom).

## Usage

To use this enhancer, use the `compose` function that comes with this package. **Keep in mind**, the first item should always be the base configuration!

```js
'use strict';

const { compose, baseConfig } = require('@moxy/jest-config-base');
const { withRTL } = require('@moxy/jest-config-testing-library');

module.exports = compose(
    baseConfig(),
    withRTL(),
);
```

⚠️ Make sure `withRTL` is composed only after `withWeb` from `@moxy/jest-config-web`.

# withNTL

An enhancer for React Native apps tested with Native Testing Library.

## What's included?

- **Extended matchers:** Make assertions easier and clearer by using [jest-native](https://github.com/testing-library/jest-native).

## Usage

To use this enhancer, use the `compose` function that comes with this package. **Keep in mind**, the first item should always be the base configuration!

```js
'use strict';

const { compose, baseConfig } = require('@moxy/jest-config-base');
const { withNTL } = require('@moxy/jest-config-testing-library');

module.exports = compose(
    baseConfig('node'),
    withNTL(),
);
```

⚠️ Make sure `withNTL` is composed only after `withReactNative` from `@moxy/jest-config-react-native`.
npm package: @moxy/jest-config-web
Description: MOXY's Jest configuration enhancer for web projects
Author: João Silva
Latest version: 6.1.0

# jest-config-web

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
[![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/jest-config-web
[npm-image]:https://img.shields.io/npm/v/@moxy/jest-config-web.svg
[downloads-image]:https://img.shields.io/npm/dm/@moxy/jest-config-web.svg
[david-dm-url]:https://david-dm.org/moxystudio/jest-config?path=packages/jest-config-web
[david-dm-image]:https://img.shields.io/david/moxystudio/jest-config.svg?path=packages/jest-config-web
[david-dm-dev-url]:https://david-dm.org/moxystudio/jest-config?type=dev&path=packages/jest-config-web
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/jest-config.svg?path=packages/jest-config-web

MOXY's [Jest](https://jestjs.io/) configuration **enhancer** for Web projects.

## Installation

```sh
$ npm install --save-dev jest @moxy/jest-config-base @moxy/jest-config-web
```

This package should be used in conjunction with `@moxy/jest-config-base`.

## What's included?

- **Transform**: Allows importing common files used for the web, such as fonts, images and videos. It also maps files ending in `.data-url.<ext>` and `.inline.<ext>` into their base64 data URL and raw content respectively, a convention we are using in [next-with-moxy](https://www.github.com/moxystudio/next-with-moxy) and other Webpack based projects.
- **Module name mapping:** Maps `.css` files to an identity object, to correctly mock `className` lookups when using CSS Modules.

## Usage

To use this enhancer, use the `compose` function that comes with this package. **Keep in mind**, the first item should always be the base configuration!

```js
const { compose, baseConfig } = require('@moxy/jest-config-base');
const withWeb = require('@moxy/jest-config-web');

module.exports = compose(
    baseConfig(),
    withWeb(),
);
```
npm package: @moxy/keyboard-only-outlines
Description: Disable outlines displayed when using navigation methods other than keyboard navigation (e.g.: tab).
Author: João Mota
Latest version: 1.0.5

# keyboard-only-outlines

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coverage Status][codecov-image]][codecov-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/keyboard-only-outlines
[downloads-image]:https://img.shields.io/npm/dm/@moxy/keyboard-only-outlines.svg
[npm-image]:https://img.shields.io/npm/v/@moxy/keyboard-only-outlines.svg
[travis-url]:https://travis-ci.org/moxystudio/js-keyboard-only-outlines
[travis-image]:https://img.shields.io/travis/moxystudio/js-keyboard-only-outlines/master.svg
[codecov-url]:https://codecov.io/gh/moxystudio/js-keyboard-only-outlines
[codecov-image]:https://img.shields.io/codecov/c/github/moxystudio/js-keyboard-only-outlines/master.svg
[david-dm-url]:https://david-dm.org/moxystudio/js-keyboard-only-outlines
[david-dm-image]:https://img.shields.io/david/moxystudio/js-keyboard-only-outlines.svg
[david-dm-dev-url]:https://david-dm.org/moxystudio/js-keyboard-only-outlines?type=dev
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/js-keyboard-only-outlines.svg

Disable outlines displayed when using navigation methods other than keyboard navigation (e.g.: tab).

By default, some browsers, such as Firefox and Edge, set input borders on focus according to the host Operating System theme.
This package does not disable borders, as it may interfere with the user's own styles.
This is only apparent when users don't explicitly define a border for their inputs.

You can see it working in the [demo](https://moxystudio.github.io/js-keyboard-only-outlines/demo/) page.


## Installation

```sh
$ npm install @moxy/keyboard-only-outlines
```

This library is written in modern JavaScript and is published in both CommonJS and ES module transpiled variants. If you target older browsers please make sure to transpile accordingly.


## Usage

```js
import keyboardOnlyOutlines from '@moxy/keyboard-only-outlines'

const dispose = keyboardOnlyOutlines()
// dispose will be a function which deactivates this behaviour and can be called at any time

```

The function may also be invoked with the following options:

```js
keyboardOnlyOutlines({ styles: ..., stylesheetTarget: ... })
```

Where `styles` represents the styles to apply when a focus event is caused by mouse navigation, and `stylesheetTarget` is the node which will receive the aforementioned style. The latter option is particularly useful when dealing with ShadowDOMs.

These options have the following default values:

```js
const defaultOptions = {
    styles: `
*:focus {
    outline: none !important;
}
*::-moz-focus-inner {
    border: none !important;
}`,
    stylesheetTarget: document.head,
};
```


## Tests

```sh
$ npm test
$ npm test -- --watch # during development
```


## License

Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
npm package: @moxy/next-with-router-ref
Description: An alterntive to Next.js withRouter HOC that supports refs by forwarding them
Author: André Cruz
Latest version: 1.0.0

# next-with-router-ref

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coverage Status][codecov-image]][codecov-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/next-with-router-ref
[downloads-image]:https://img.shields.io/npm/dm/@moxy/next-with-router-ref.svg
[npm-image]:https://img.shields.io/npm/v/@moxy/next-with-router-ref.svg
[travis-url]:https://travis-ci.org/moxystudio/next-with-router-ref
[travis-image]:https://img.shields.io/travis/moxystudio/next-with-router-ref/master.svg
[codecov-url]:https://codecov.io/gh/moxystudio/next-with-router-ref
[codecov-image]:https://img.shields.io/codecov/c/github/moxystudio/next-with-router-ref/master.svg
[david-dm-url]:https://david-dm.org/moxystudio/next-with-router-ref
[david-dm-image]:https://img.shields.io/david/moxystudio/next-with-router-ref.svg
[david-dm-dev-url]:https://david-dm.org/moxystudio/next-with-router-ref?type=dev
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/next-with-router-ref.svg

An alterntive to Next.js `withRouter` HOC [that supports refs](https://github.com/zeit/next.js/issues/9528) by forwarding them.


## Installation

```sh
$ npm install @moxy/next-with-router-ref
```

This library is written in modern JavaScript and is published in both CommonJS and ES module transpiled variants. If you target older browsers please make sure to transpile accordingly.


## Usage

```js
import React, { Component } from 'react';
import withRouterRef from '@moxy/next-with-router-ref';

class MyComponent extends Component {
    render() {
        const { router } = this.props;

        // ...do something with router

        return <div>Hello</div>;
    }
};

export default withRouterRef(MyComponent);
```

...and then refs work as you would expect:

```js
import React, { Component } from 'react';
import MyComponent from 'path/to/my-component';

const MyParentComponent = () => {
    const myComponentRef = useRef();

    return <MyComponent ref={ myComponentRef }>;
};

export default MyParentComponent;
```

## Tests

```sh
$ npm test
$ npm test -- --watch # during development
```


## License

Released under the [MIT License](https://www.opensource.org/licenses/mit-license.php).
npm package: @moxy/react-icon
Description: A component to render svg icons.
Author: Rui Monteiro
Latest version: 1.0.0

# react-icon

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][build-status-image]][build-status-url] [![Coverage Status][codecov-image]][codecov-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]

[npm-url]:https://npmjs.org/package/@moxy/react-icon
[downloads-image]:https://img.shields.io/npm/dm/@moxy/react-icon.svg
[npm-image]:https://img.shields.io/npm/v/@moxy/react-icon.svg
[build-status-url]:https://github.com/moxystudio/react-icon/actions
[build-status-image]:https://img.shields.io/github/workflow/status/moxystudio/react-icon/Node%20CI/master
[codecov-url]:https://codecov.io/gh/moxystudio/react-icon
[codecov-image]:https://img.shields.io/codecov/c/github/moxystudio/react-icon/master.svg
[david-dm-url]:https://david-dm.org/moxystudio/react-icon
[david-dm-image]:https://img.shields.io/david/moxystudio/react-icon.svg
[david-dm-dev-url]:https://david-dm.org/moxystudio/react-icon?type=dev
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/react-icon.svg

A component to render `SVG` icons.

## Installation

```sh
$ npm install @moxy/react-icon
```

This library is written in modern JavaScript and is published in both CommonJS and ES module transpiled variants. If you target older browsers please make sure to transpile accordingly.

## Motivation

This package was implemented to help import `SVG` icons in `react` projects.

## Usage

```js
import React, { forwardRef } from 'react';
import Icon from '@moxy/react-icon';

const arrowLeftSvg = import(/* webpackChunkName: "svg-sprite" */ '../media/arrow-left.inline.svg');
const ArrowLeftIcon = forwardRef((props, ref) => <Icon ref={ ref } { ...props } svg={ arrowLeftSvg } />);

const MyComponent = ({ children }) => (
    <div>
        { children }
        <ArrowLeftIcon />
    </div>
);
```

## API

These are the props available in `@moxy/react-icon`.

#### svg

Type: `string` or `object` | Required: `true`

The contents of the `SVG` that should be rendered. 
In the case of the prop being an object, it must be the `Promise` that gets the contents of the `SVG`.

#### className

Type: `string` | Required: `false`

A className to apply to the component.

## Tests

```sh
$ npm test
$ npm test -- --watch # during development
```

## Demo

A demo [Next.js](https://nextjs.org/) project is available in the [`/demo`](./demo) folder so you can try out this component.

First, build the `react-icon` project with:

```sh
$ npm run build
```

To run the demo, do the following inside the demo's folder:

```sh
$ npm i
$ npm run dev
```

## License

Released under the [MIT License](./LICENSE).