open-index/open-npm huggingface dataset:
npm package: @mrbbot/hilite
Description: Bulk code highlighter with HTML/PDF export
Latest version: 1.2.0

# Hilite
Highlights code in bulk, and then exports an HTML and a PDF file.

## Installation
Install it globally using npm or Yarn.

```bash
npm i -g @mrbbot/hilite

yarn global add @mrbbot/hilite
```

## Usage
To highlight all files in the `src` directory, and output `index.html` and `index.pdf` in the current directory run the
following command:

```bash
hilite src
```

You can specify as many locations to highlight so if you also wanted to highlight files in the `dist` directory:

```bash
hilite src dist
```

You can also specify globs to match:
```bash
hilite src/**/*.js
```

If you want to change the output file names, you can use the `--output` (`-o`) flag. For example, the following command
will output to `code.html` and `code.pdf` instead of the normal `index`:

```bash
hilite src -o code
```

Additionally, if you're just looking for HTML output, you can disable the PDF export with the `--pdf` (`-p`) flag:

```bash
hilite src -p false
```

This will only generate an `index.html` file.

## Customisation

### Prism Theme
Hilite uses [Prism](https://prismjs.com/) for code highlighting, so if you don't like the default theme, you can easily change it using the `--theme` (`-t`) flag to either one of the
presets, or your own custom one.

If you wanted to change the output to use the *funky* theme:

```bash
hilite src -t funky
```

Other available presets are:
- default *(this is the actual default prism theme, Hilite uses its own simplified version normally)*
- dark
- okaidia
- twilight
- coy
- solarized-light
- tomorrow-night

If you had a custom theme stored in `theme.css`, you could use it with the following command:

```bash
hilite src -t theme.css
```

### Heading Level
You can change the level of the code filename headings with the `--level` (`-l`) flag. For instance to use `<h2>` tags
instead of the default `<h1>`s:

```bash
hilite src -l 2
```

### Margin
Finally, you can also change the amount of margin in the PDF export using the `--margin` (`-m`) flag.

```bash
hilite src -m 1in
```

You must include the [unit](https://www.w3schools.com/cssref/css_units.asp) in your value.
npm package: @mrbbot/node-fetch
Description: A light-weight module that brings the Fetch API to node.js; Forked from https://npm.im/node-fetch
Author: David Frank
Latest version: 4.6.0

This a modified fork of [dollarshaveclub/node-fetch](https://github.com/dollarshaveclub/node-fetch) tweaked to fit the use-case of [miniflare](https://github.com/mrbbot/miniflare).
This is not meant for general use.
It adds types, `Response.redirect`, Web Sockets to `Response`'s, the `cf` property to `Request`'s, support for empty bodies and has updated dependencies.
npm package: @mrbbot/parsed-html-rewriter
Description: A DOM-based implementation of Cloudflare Worker's HTMLRewriter.
Author: Florian Klampfer
Latest version: 0.1.8
Deprecated: use "html-rewriter-wasm" instead

> This is a fork of [@worker-tools/parsed-html-rewriter](https://github.com/worker-tools/parsed-html-rewriter) that implements the `onDocument` handler and fixes installation on Windows.

# Parsed HTML Rewriter
A DOM-based implementation of [Cloudflare Worker's `HTMLRewriter`](https://developers.cloudflare.com/workers/runtime-apis/html-rewriter).

Unlike the original, this implementation parses the entire DOM (provided by [`linkedom`](https://github.com/WebReflection/linkedom)),
and runs selectors against this representation. As a result, it is slower, more memory intensive, and can't process streaming data.

Note that this approach was chosen to quickly implement the functionality of `HTMLRewriter`, as there is currently no JS implementation available.
A better implementation would replicate the streaming approach of [`lol-html`](https://github.com/cloudflare/lol-html), or even use a WebAssembly version of it.

However, this implementation should run in most JS contexts (including Web Workers, Service Workers and Deno) without modification and handle many, if not most, use cases of `HTMLRewriter`. 
It should be good enough for testing and offline Workers development.

## Usage
This module can be used in two ways. 

As a standalone module: 

```ts
import { ParsedHTMLRewriter } from '@mrbbot/parsed-html-rewriter'

await new ParsedHTMLRewriter()
  .transform(new Response('<body></body>'))
  .text();
```

Or as a polyfill:

```ts
import '@mrbbot/parsed-html-rewriter/polyfill'

await new HTMLRewriter() // Will use the native version when running in a Worker
  .transform(new Response('<body></body>'))
  .text();
```

### innerHTML
Unlike the current (March 2021) version on CF Workers, this implementation already supports the [proposed `innerHTML` handler](https://github.com/cloudflare/lol-html/issues/40#issuecomment-567126687). 
Note that this feature is unstable and will likely change as the real version materializes.

```ts
await new HTMLRewriter()
  .on('body', {
    innerHTML(html) {
      console.log(html) // => '<div id="foo">bar</div>'
    },
  })
  .transform(new Response('<body><div id="foo">bar</div></body>'))
  .text();
```

## Caveats
- Because this version isn't based on streaming data, the order in which handlers are called can differ. Some measure have been taken to simulate the order, but differences may occur.
- Texts never arrive in chunks. There is always just one chunk, followed by an empty one with `lastInTextNode` set to `true`.
npm package: @mrblock7777/aws-s3-purge
Description: Helper tool to quickly delete AWS S3 buckets
Author: Mr Block
Latest version: 1.0.1

# AWS S3 Bucket Purge
This package is intended to ease the process of deleting multiple buckets at once, even if the buckets are not empty

## Prerequisite
- Ensure your AWS credentials is configured (Either using `aws configure` or through profile export)
- Ensure your credentials has sufficient permission to perform S3 operations(`s3:GetBucket`, `s3:ListBuckets`, `s3:DeleteBucket`, `s3:ListObjectsV2`, `s3:DeleteObject`)

### Install

Install the package through: \
```
npm i -g @mrblock7777/aws-s3-purge
```

### Basic usage
Dryrun (Running delete simulation):

```
aws-s3 purge --keyword [your-bucket] --dryrun
```

Delete empty buckets:
```
aws-s3-purge --keyword [your-bucket]
```

Delete empty & non-empty buckets:
```
aws-s3-purge --keyword [your-bucket] --force
```

### Future implementation

- Support for --role-arn, to assume different roles
- Support for delete all S3 buckets
- More details dryrun (to include objects that will be deleted as well)
npm package: @mrblock7777/randomizer
Description: Generate random sequence from the list provided
Author: Mr Block
Latest version: 1.0.1

# randomizer
Generate randomized list based on file input

You will need to have a file containing list.

Example:

### example.txt
```
Imaan Wilkinson
Lainey Devine
Ameerah Holloway
Justine Farmer
Roosevelt Rees
Elsa Cantrell
Erica Metcalfe
Huseyin Clegg
Selin Winter
Yolanda Mackenzie
```

### Command
```
randomizer -f ./example.txt -d \\n
```
Alternatively, you can simply run:

```
randomizer
```
And it will prompt two inputs for the same parameter. Currently, the delimiter in the prompt only supports line breaks(\n), commas(,), and whitespaces

# Command and Option details

### Available Options
```
-f, --filename <file> - Relative path to the file containing list
-d, --delimiter <delimiter> - The delimiter used to separate the list
```

### Available Commands
```
range <range>  - Generates random number between the range. Accepts the format of "n-n"
```
Example:
```
randomizer range 1-9
```
npm package: @mrboolean/envconfig
Description: [![Build Status](https://travis-ci.org/MrBoolean/envconfig.svg?branch=master)](https://travis-ci.org/MrBoolean/envconfig) [![Maintainability](https://api.codeclimate.com/v1/badges/d78a9e4a4d079f980c01/maintainability)](https://codeclimate.com/github/MrBoo
Author: MrBoolean
Latest version: 3.0.0

# envconfig

[![Build Status](https://travis-ci.org/MrBoolean/envconfig.svg?branch=master)](https://travis-ci.org/MrBoolean/envconfig) [![Maintainability](https://api.codeclimate.com/v1/badges/d78a9e4a4d079f980c01/maintainability)](https://codeclimate.com/github/MrBoolean/envconfig/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/d78a9e4a4d079f980c01/test_coverage)](https://codeclimate.com/github/MrBoolean/envconfig/test_coverage) [![npm (scoped)](https://img.shields.io/npm/v/@mrboolean/envconfig.svg)](https://www.npmjs.com/package/@mrboolean/envconfig) [![npm](https://img.shields.io/npm/dm/@mrboolean/envconfig.svg)](https://www.npmjs.com/package/@mrboolean/envconfig)

## Install

1. Fire up a Terminal.
1. Run `npm i @mrboolean/envconfig` or `yarn add @mrboolean/envconfig`.

## Usage

### Standard

```typescript
import { describe, Type } from '@mrboolean/envconfig';

interface Config {
  isDebug: boolean;
  port: number;
}

const config = <Config>describe({
  isDebug: {
    name: 'DEBUG',
    type: Type.BOOLEAN,
    isRequired: true,
    standard: false,
  },
  port: {
    name: 'BIND_PORT',
    type: Type.NUMBER,
    standard: 8080,
  },
});

console.log(config);
```

Results:

```json
{
  "isDebug": false,
  "port": 8080
}
```

### Custom sanitizer

```typescript
import { describe } from '@mrboolean/envconfig';

interface Config {
  custom: boolean;
}

const config = <Config>describe({
  custom: {
    name: 'CUSTOM',
    sanitize: (value: any): boolean => (value === 1 ? false : true),
  },
});
```

## Supported Types

`@mrboolean/envconfig` supports these field types:

- number
- string
- array
- boolean
- json

## License

Copyright 2018 Marc Binder <mailto:marcandrebinder@gmail.com>

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: @mrborek/create-nuxt-app
Description: Create Nuxt.js App in seconds.
Latest version: 1.2.4

# Create Nuxt App

[![NPM version](https://img.shields.io/npm/v/create-nuxt-app.svg?style=flat)](https://npmjs.com/package/create-nuxt-app) [![NPM downloads](https://img.shields.io/npm/dm/create-nuxt-app.svg?style=flat)](https://npmjs.com/package/create-nuxt-app) [![CircleCI](https://circleci.com/gh/nuxt-community/create-nuxt-app/tree/master.svg?style=shield)](https://circleci.com/gh/nuxt-community/create-nuxt-app/tree/master)

> Create a [Nuxt.js](https://github.com/nuxt/nuxt.js) project in seconds

<details><summary>Preview</summary>

![preview](https://ooo.0o0.ooo/2017/08/05/5984b16ed9749.gif)
</details>

## Usage

Make sure you have [npx](https://www.npmjs.com/package/npx) installed (`npx` is shipped by default since NPM `5.2.0`)

```bash
npx create-nuxt-app <my-project>
```

Or with [yarn](https://yarnpkg.com/en/):

```bash
yarn create nuxt-app <my-project>
```

## Features :tada:

1. Choose between integrated server-side frameworks:
    - None (Nuxt default server)
    - [Express](https://github.com/expressjs/express)
    - [Koa](https://github.com/koajs/koa)
    - [Hapi](https://github.com/hapijs/hapi)
    - [Feathers](https://github.com/feathersjs/feathers)
    - [Micro](https://github.com/zeit/micro)
    - [Adonis](https://github.com/adonisjs/adonis-framework) (WIP)
2. Choose your favorite UI framework:
    - None (feel free to add one later)
    - [Bootstrap](https://github.com/bootstrap-vue/bootstrap-vue)
    - [Vuetify](https://github.com/vuetifyjs/vuetify)
    - [Bulma](https://github.com/jgthms/bulma)
    - [Tailwind](https://github.com/tailwindcss/tailwindcss)
    - [Element UI](https://github.com/ElemeFE/element)
3. Add [axios module](https://github.com/nuxt-community/axios-module) to make HTTP request easily into your application.
3. Add [EsLint](https://eslint.org/) to Lint your code on save.

## Credits

- [egoist](https://github.com/egoist)
- [clarko](https://github.com/clarkdo)
- All our contributors ([list](https://github.com/nuxt-community/create-nuxt-app/contributors)).
npm package: @mrbrunelli/object-validator
Description: A simple object validator for tiny schemas
Author: Matheus R. Brunelli
Latest version: 2.0.8

# Object Validator

A Javascript object validator for tiny schemas.

[![NPM](https://nodei.co/npm/@mrbrunelli/object-validator.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@mrbrunelli/object-validator/)

![Test](https://github.com/mrbrunelli/object-validator/actions/workflows/test.yml/badge.svg)

## Get started

```sh
 yarn add @mrbrunelli/object-validator
```

#### How to use

```ts
import Validate from '@mrbrunelli/object-validator'

const objectExample = {
  foo: {
    bar: {
      message: 'Hello!'
    }
  }
}

const isValid = Validate.isValid(objectExample, [
  ['foo'],
  ['foo.bar.message', 'Hello!']
])
console.log(isValid) // returns true
```

#### Why

Validating multiple fields can be very tiring in old Node versions.

```js
  // Work only Node 14 or >
  if (objectExample?.foo?.bar?.message === 'Hello!') // anything...
```

Node 12 require massive validations.

```js
  if (objectExample && objectExample.foo && objectExample.foo.bar && objectExample.foo.bar.example === 'Hello!') // anything...
```

In this case, using a validator is better and safe.

```js
  if (Validator.isValid(objectExample, [['foo.bar.example', 'Hello!']])) // anything...
```

Now imagine validating multiple fields and values ​​from a single object in a old version of Node. Very tiring and verbose.
npm package: @mrbubbaz/v-gsap-nuxt
Description: GSAP Directive for Nuxt 3 with SplitText support
Author: Lukas Hofstätter
Latest version: 1.5.6

# `v-gsap` for Nuxt (and Vue)

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![License][license-src]][license-href] [![Nuxt][nuxt-src]][nuxt-href]

[![](docs/public/cover.png)](https://v-gsap-nuxt.vercel.app/) (Click image to
visit the docs)

## Features

- 🚀 Smooth animations with [GSAP](https://gsap.com/)
- 🖍️ Easy to use directive syntax with
  [`v-gsap`](https://v-gsap-nuxt.vercel.app/playground)
- 📦 [`useGSAP()`](https://v-gsap-nuxt.vercel.app/usage/composable) composable
  for complex animations
- 🪄 [`<GSAPTransition>`](https://v-gsap-nuxt.vercel.app/usage/v-if) to animate
  `v-if`
- ⌨️ Powerful
  [entrance presets](https://v-gsap-nuxt.vercel.app/usage/modifiers#entrance)
  and [custom presets](https://v-gsap-nuxt.vercel.app/usage/presets)
- 🧩 Full GSAP
  [Plugin extensibility](https://v-gsap-nuxt.vercel.app/information/gsap-plugins)

## Installation

Install the module to your Nuxt application with one command:

```bash
npx nuxi module add v-gsap-nuxt
```

That's it! You can now use `v-gsap` in your Nuxt app ✨

### Want to use it with Vue? [Learn about Vue usage](https://v-gsap-nuxt.vercel.app/installation/vue.only)

## Docs

### 👁️ Find the full docs and examples here: [Documentation](https://v-gsap-nuxt.vercel.app/)

---

### GSAP Licensing

GSAP is subject to its own licensing terms. Before incorporating GSAP with
`v-gsap-nuxt` (as dependency), ensure you review and comply with the
[GSAP Standard License](https://gsap.com/community/standard-license/).

This module itself is licensed under the MIT License.

---

## Contribution

<details>
  <summary>Local development</summary>
  
  ```bash
  # Install dependencies
  npm install
  
  # Generate type stubs
  npm run dev:prepare
  
  # Develop with the playground
  npm run dev:playground
  # OR
  # Develop with the Docs
  npm run dev:docs
  
  # Build the playground
  npm run dev:build
  
  # Run ESLint
  npm run dev:check
  
  # Release new version
  npm run release
  ```

</details>

<!-- Badges -->

[npm-version-src]:
  https://img.shields.io/npm/v/v-gsap-nuxt/latest.svg?style=flat&colorA=020420&colorB=00DC82
[npm-version-href]: https://npmjs.com/package/v-gsap-nuxt
[npm-downloads-src]:
  https://img.shields.io/npm/dm/v-gsap-nuxt.svg?style=flat&colorA=020420&colorB=00DC82
[npm-downloads-href]: https://npm.chart.dev/v-gsap-nuxt
[license-src]:
  https://img.shields.io/npm/l/v-gsap-nuxt.svg?style=flat&colorA=020420&colorB=00DC82
[license-href]: https://npmjs.com/package/v-gsap-nuxt
[nuxt-src]: https://img.shields.io/badge/Nuxt-020420?logo=nuxt.js
[nuxt-href]: https://nuxt.com
npm package: @mrbuilder/cli
Description: Tools for developing with mrbuilder
Latest version: 4.4.7-alpha.9

These tools help develop mrbuilder, they could be used in other multimodule,
monorepos.   This is meant to hold all common dev dependencies.   This dependency
has all of the mrbuilder tools. You can use the plugins for more specific
tools.

## Autoinstall
Adding plugins to your project or running these commands, may cause them to
added as dep dependencies to your project.   This is a good thing, as now you
only have to add them in one place.   If you add the deps themselves then
it will not auto install.

## Configuration
The tools are designed to run with smart defaults.  Edit your 
package.json like this

```json
"scripts":{
 "karma": "mrbuilder",
 //if you want plain moch use mrbuilder-mocha instead.
    "test": "mrbuilder",
    "demo": "mrbuilder",
    "app":"mrbuilder",
    "server": "mrbuilder",
    //use "babel":"mrbuilder", to only run babel instead of webpack
    "prepublish": "mrbuilder",
}
```

With this configuration you can run

* Tests:
```sh
$ yarn run test
```
* Karma:
```sh
$ yarn run karma

```
* Demo: 
```sh
$ yarn run demo
```
* Server: 
```sh
$ yarn run server
```

## Babel
Mrbuilder uses babel to compile source code.  This command is for when you don't need webpack to do the compiling. The arguments are the same as [babel-cli](https://babeljs.io/docs/usage/cli/) but are defaulted to

```sh
$ mrbuilder-babel -s true &&\
 --out-dir lib &&\
 --copy-files &&\
```


## Webpack
This tool is designed to compile your code with webpack. It respects all the [webpack cli](https://webpack.js.org/api/cli/) but has been extended to be easier in multimodule projects.  Part of what
this does is creates alias to make debugging and changing multiple modules easier in dev mode and compile and biuld modes.


### Custom Webpack Configuration
Sometimes you need to change webpacks configuration.   [mrbuilder-webpack](#mrbuilder-plugin-webpack)
extends normal webpack behaviour to look into the dependencies and the current project for a `babel-config.js`
if this file exists it attempts to load it.   this file differs from traditional webpack as that
it is expected to be a function 


```js static
module.export = function(options,webpack, optionsManager){
  // options - are just for passing meta data to other loaders and from other loaders.
  // webpack is the actual configuration.  You can do whatever.
  // The optionsManager currently running.
  return webpack
}

```
If you want or don't want different modules loaded by webpack, it looks in package.json
for include/exclude array of globs

package.json

```json 
{
  "mrbuilder":{
     "plugins":["your_plugins"],
  }
}
```

### Configuring the @mrbuilder/cli.
If you need to create a configuration for the cli.  You can 3 properties.
 argv - arguments to pass to your script, an array of strings.
 bin  - a node script to execute.
 env  - an object that will put the key and value in process.env.
npm package: @mrbuilder/plugin-analyze
Description: analyze support for mrbuilder
Latest version: 4.4.7-alpha.9

This plugin is used to run webpack-bundle-analyzer.

### Usage
The best way to run analyze is a yarn.

```sh
  $ yarn run analyze
```

// in package.json

```json
{
  "name":"your-project",
  ...
  devDependencies:{
    ...
    "mrbuilder-plugin-analyze":"^0.0.10"
  },
  "scripts":{
    "analyze":"mrbuilder"
  }

}
```

### Options

| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| reportFileName| string     | report.html  | The filename of the report to generate|
| analyzerMode  | oneOf: server,static | server       | Server or static version         |
npm package: @mrbuilder/plugin-babel
Description: Tools for developing babel with mrbuilder
Latest version: 4.4.7-alpha.9

This plugin provides [babel](https://babeljs.io/) support to mrbuilder.   It allows for configuration
via .babelrc or via normal mrbuilder configuration methods. It also
provides support for babel to webpack via [babel-loader](https://github.com/babel/babel-loader)

The default babel configuration:


| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| hot           | bool       | false        | Turns hot loading supoprt for hmr usually automatically|
| test          | regex      | /\.jsx?$/    | Webpack module test to transpile |
| includes      | arrayOf: string,regex|./src,./public,./test| Webpack module includes option |
| use           | object     | {use:{loader:'babel-loader}}| Allows for a different babel-loader |
| <babel_plugin>| object     |              | configure babel plugins |
| cacheDirectory | bool or string| true |  use the cache directory to speed up builds.


To use Babel 7 will need to set the babelVersion to 7 and include the mrbuilder-plugin-babel-7 plugin in your configuration,
and you should exclude the mrbuilder-plugin-babel-6 while your at it

```json
{
  mrbuilder:{
    "plugins": [
      "mrbuilder-plugin-babel-7"
    ]
  }
}


```
npm package: @mrbuilder/plugin-babel-6
Description: Tools for developing babel with mrbuilder
Latest version: 4.4.7-alpha.9

This plugin provides [Babel 6](https://babeljs.io/) support to mrbuilder.  The next major
 version will be defaulted to Babel 7 instead. Although support for babel 6 will continue for some time.
   
This plugin allows for configuration via .babelrc or via normal mrbuilder configuration methods. It also
provides support for babel to webpack via [babel-loader](https://github.com/babel/babel-loader)

The default babel configuration:

```json
{
  "presets": [
    "env",
    "react",
    "stage-2"
  ],
  "plugins": [
    "./react-class-display-name",
    "transform-function-bind",
    "transform-class-properties",
    "transform-async-to-generator",
    "transform-export-extensions",
    "transform-runtime"
  ]
}

```


| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| hot           | bool       | false        | Turns hot loading supoprt for hmr usually automatically|
| test          | regex      | /\.jsx?$/    | Webpack module test to transpile |
| includes      | arrayOf: string,regex|./src,./public,./test| Webpack module includes option |
| use           | object     | {use:{loader:'babel-loader}}| Allows for a different babel-loader |
| <babel_plugin>| object     |              | configure babel plugins |
npm package: @mrbuilder/plugin-babel-7
Description: Tools for developing babel 7 with mrbuilder
Latest version: 4.4.7-alpha.9

This plugin provides [babel 7](https://babeljs.io/) support to mrbuilder.   It allows for configuration
via .babelrc or via normal mrbuilder configuration methods. It also
provides support for babel to webpack via [babel-loader](https://github.com/babel/babel-loader)

If your upgrading from babel 6 and have a custom .babelrc try running [babel-upgrade](https://github.com/babel/babel-upgrade)
to convert your .babelrc.   If your using mrbuilders defaults it should "just work".

The default babel configuration:



| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| hot           | bool       | false        | Turns hot loading supoprt for hmr usually automatically|
| test          | regex      | /\.jsx?$/    | Webpack module test to transpile |
| includes      | arrayOf: string,regex|./src,./public,./test| Webpack module includes option |
| use           | object     | {use:{loader:'babel-loader}}| Allows for a different babel-loader |
| <babel_plugin>| object     |              | configure babel plugins |
| useDecorators | bool or 'legacy'| legacy  | Use decorators. If its legacy class-properties   |
npm package: @mrbuilder/plugin-browserslist
Description: This allows for [browserslist](https://github.com/ai/browserslist) configuration of autoprefixer and babel env.   You can follow any of the methods of configuration, or it uses mrbuildlers default.   You probably don't want to use mrbuilders default which
Latest version: 4.4.7-alpha.9

### Options
This allows for [browserslist](https://github.com/ai/browserslist) configuration
of autoprefixer and babel env.   You can follow any of the
methods of configuration, or it uses mrbuildlers default.   You probably
don't want to use mrbuilders default which is below.

```dsconfig
[production]
last 2 version
ie 9

[development]
last 1 Chrome versions

[test]
last 1 Chrome versions


```
npm package: @mrbuilder/plugin-chunk
Description: Configures chunking for webpack
Latest version: 4.4.7-alpha.9

This provides enhanced chunk support to mrbuilder.


| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| filename      | string     | [name].[hash].js| The chunk filename            |
| manifest      | string     | manifest     | The 'manifest' chunk             |
| excludes      | arrayOf string            | modules to exclude from chunks   |
| crossOriginLoading|        |              | Configure cross origin loading   |
| cacheGroups   | object     | default group| The default chunkGroup           |
| styles         | string    | styles       | The default chunk for css        |
| splitChunks    | object    | {}           | the default splitChunks config   |


The default splitChunks looks as follows

```js static
{
  "chunks": "all",
  "minSize": 0,
  "maxAsyncRequests": null,
  "maxInitialRequests": null,
  "name": true
}

```

The default cacheGroups looks as follows

```json
 {
   "default": {
     "chunks": "async",
     "minSize": 30000,
     "minChunks": 2,
     "maxAsyncRequests": 5,
     "maxInitialRequests": 3,
     "priority": -20,
     "reuseExistingChunk": true
   }
 }
```
npm package: @mrbuilder/plugin-clean
Description: Cleans up build directories
Latest version: 4.4.7-alpha.9

This provides [clean](https://github.com/johnagan/clean-webpack-plugin) functionality


**NOTE**  This could do terrible things to your filesystem.  So please
have a backup and use carefullly.

**\*By default it removes your output directory**


## Paths
An [array] of string paths to clean

```js static
{
paths:[
  'dist',         // removes 'dist' folder
  'build/*.*',    // removes all files in 'build' folder
  'web/*.js'      // removes all JavaScript files in 'web' folder
]
}
```

| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| paths         | array      | outputPath   | The directories to clean         |
| root          | string     | $CWD         | The Root directory               |
| verbose       | bool       | false        | Be verbose                       |
| allowExternal | bool       | false        | Allow external directory deletion|
| dry           | bool       | false        | Dry run                          |
| exclude       | [string]   |              | Paths to exclude                 |
npm package: @mrbuilder/plugin-compress
Description: Compress output files
Latest version: 4.4.7-alpha.9


| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| test          | String|RegExp|Array<String|RegExp>| *.js | What files to include     |
| include       | String|RegExp|Array<String|RegExp> | undefined | What files to include |  
| exclude       | String|RegExp|Array<String|RegExp> | undefined | What files to exclude |  
| cache         | Boolean|String| false     | Enable file caching |
| filename      | String     |[path].gz[query] | output filename               |
| algorithm     | String | zlib | Algorithm to use for compression |
| compressionOptions | object | { level: 9 } | Compression optoins to use |
| minRatio      |  Number     | 0.8 | Only assets that compress better than this ratio are processed | 
| deleteOriginalAssets | Boolean | false | Whether to delete the original assets or not. |
npm package: @mrbuilder/plugin-cra
Description: Provides [react-scripts](https://github.com/facebook/create-react-app/tree/master/packages/react-scripts) like  builds.   Should be used with the [preset-cra](../../presets/preset-cra), for most accurate results.
Latest version: 4.4.7-alpha.9

Provides [react-scripts](https://github.com/facebook/create-react-app/tree/master/packages/react-scripts) like 
builds.   Should be used with the [preset-cra](../../presets/preset-cra), for most accurate results.


## Usage
In your create-react-app replace react-scripts with `mrbuilder-react-scripts`.

In your package.json
```json 
 "scripts": {
    "start": "mrbuilder-react-scripts start",
    "build": "mrbuilder-react-scripts build",
    "test": "mrbuilder-react-scripts test"
  },


```


## Babel
This plugin adds the following to babel.

## Webpack
This plugin configures webpack.
npm package: @mrbuilder/plugin-css
Description: CSS support for mbuilder
Latest version: 4.4.7-alpha.9

This plugin provides css and css module support for mrbuider.  It also
supports webpack-extract-text-plugin and autoprefixer.


This plugin also exports a helper functions for other css like importers
such as less-loader and stylus loader.  Require  `mrbuilder-plugin-css/src/cssLoader`,
in new css loaders to allow for the same pipeline.  This allows css output
to be controlled by the css loader, while configuration of the loader is
handled by the webpack loader.

```js static
const cssLoader = require('mrbuilder-plugin-css/src/cssLoader');
module.exports = function(options, webpack){

    cssLoader(webpack, /*.sass$/, false, {
        loader:'sass-loader',
        options,
    });
    if (options.modules){
        cssLoader(webpack, /*.sassm$/, true, {
            loader:'sass-loader',
            options,
        });
    }

}

```

less -> autprefixer -> css-loader -> (extract-text or style-loader)

| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| test          | regex      | /.css$/      | Css loads                        |
| useStyleLoader| bool       | true         | Use extract text plugin          |
| publicPath    | string     | /public      | The public Path                  |
| modules       | bool or regex|/.cssm/     | Support CSS Modules              |
| autoprefixer  | bool       | true         | Include autoprefixer support     |
| sourceMap     | bool       | true         | include sourcemap support        |
| localIdentName| string     | [hash]_[package-name]_[hyphen:base-name]_[local] | the localIdentName for css modules |
npm package: @mrbuilder/plugin-dashboard
Description: A plugin to use [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard) thanks Ken.
Latest version: 4.4.7-alpha.9

A plugin to use [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard) thanks Ken.

Add it to your package.json's scripts.

```json
{
  
  "scripts": {
    "dashboard": "mrbuilder"
  }
}
```
npm package: @mrbuilder/plugin-emotion
Description: Provides [emotion](https://emotion.sh/).
Author: speajus@gmail.com
Latest version: 4.4.7-alpha.9

Provides [emotion](https://emotion.sh/).

## Babel
This plugin adds the following to babel "babel-plugin-emotion" along
with some magic to avoid /** @jsx ** / stuff.

## Example
An example can be found [here](https://github.com/mr-builder/mrbuilder/tree/master/examples/example-app-emotion)
npm package: @mrbuilder/plugin-env
Description: The mrbuilder-plugin-env plugin allows for the process.env to be exported during a webpack build.
Latest version: 4.4.7-alpha.9

The mrbuilder-plugin-env plugin allows for the process.env to be exported
during a webpack build.



### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| environment   | arrayOf string| [NODE_ENV | Read the environments variables as defined in enviroment and expose to JS |
npm package: @mrbuilder/plugin-eslint
Description: Provides eslint support
Latest version: 4.4.7-alpha.9

This plugin provides [eslint](https://eslint.org/) support to webpack to allow for linting of
your application during development. It uses the [eslint-loader](https://github.com/webpack-contrib/eslint-loader).


### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| configFile    | string     |              | Configuration file to use        |
| fix           | bool       | true         | Set eslint to fix errors         |
| include       | array      | $CWD/src     | Files to include in linting.     |
| exclude       | array      |              | Files to exclude                 |
| test          | regex      | /\.jsx?$/    | Files to match                   |
| enforce       | string     | pre          | Set enforce for this rule        |
npm package: @mrbuilder/plugin-filetypes
Description: Loading file types via webpack
Latest version: 4.4.7-alpha.9

This plugin provides basic [file-loader](https://github.com/webpack-contrib/file-loader) support to webpack
The configuration is

*Note: svg is loaded by the mrbuilder-plugin-fonts.  Fonts require some special
 header to load correctly in some browsers.  If you add svg here and do not
 remove it from mrbuilder-plugin-fonts configuration, they will probably not work.

```js static
  test = /\.(png|je?pg|gif?f|bmp|ppm|bpg|mpe?g)$/,
  loader = 'file-loader',
  limit = 1000,
```
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| test          | regex      | /\.(png|je?pg|gif?f|bmp|ppm|bpg|mpe?g)$/ | Which files to use file loader |
| loader        | string     | file-loader  | what loader to use |
| options       | object     | {}           | options see file-loader docs |
npm package: @mrbuilder/plugin-fonts
Description: Loadin fonts types via webpack
Latest version: 4.4.7-alpha.9

This plugin provides for font loading into webpack.

By default it supports woff, woff2, eot and svg font formats.  Be careful not
to have 2 loaders for the svg, this will prevent the svg from being loaded.

If using SVG files, this plugin will load them just fine, no need to add them
to the mrbuilder-plugin-filetypes.

### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| loader        | string     | url-loader   | What loader to use               |
| fontTypes     | array      | see below    | mimtype settings and loaders for fonts  |

```js static
[
 {

     test    : /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/,
     mimetype: 'application/font-woff',
 },
 {
     test    : /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
     mimetype: 'application/octet-stream'
 },
 {
     test  : /\.eot(\?v=\d+\.\d+\.\d+)?$/,
     loader: 'file-loader',
 },
 {
     test    : /\.svg(\?v=\d+\.\d+\.\d+)?$/,
     mimetype: 'image/svg+xml'
 }
]
```
npm package: @mrbuilder/plugin-hot
Description: hmr for mrbuilder
Latest version: 4.4.7-alpha.9

Turns on hot loading, and does a bit of magic to work correctly for
react apps.   Only use in development.

### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| preEntry      | arrayOf(string)| ['react-hot-loader/patch'] | Hot loader patch|
| hot           | bool       | true         | Turn on hot loading              |
| inline        | bool       | true         | Inlining                         |
npm package: @mrbuilder/plugin-html
Description: html plugin for mrbuilder
Latest version: 4.4.7-alpha.9

The HTML plugin allows for testing of components, and for compiling pages.
It is a wrapper around HtmlWebpackPlugin.


By default  looks first for a  public/index.js to bootstrap your app, if it
does not exist, than it uses a synthetic file that looks like

```js static
    import React from 'react';
    import {render} from 'react-dom';
    import App from 'your-module';
    render(<App/>, document.getElementById('content'))
```

More than likely you should write your own render component, that looks
similar


### Configuration
In package.json
```json
 "name":"your_component",
 ...
 "mrbuilder":{
    "plugins":[
        "mrbuilder-plugin-html"
    ]
 }


````
### Custom Element
To configure which element your component renders to use elementId property,
where the value is the dom Id. By default it is "content".

## Hot loading
Hot loading setup is always a PNA -- this attempts to make it easier, however
to do this your "App" must export a class rather than the traditional export.

This can be controlled via the exported flag either per "page" or for all "pages".

## Custom Hot Loading
If exported is false, than you will need to set hot loading in your page, and your
running hot [see](https://github.com/gaearon/react-hot-loader) step 4.  The
rest of the steps are already done for you.

An example can be found [here](https://github.com/jspears/mrbuilder/tree/master/example/example-multi-app);

It should look something like.

```json

"mrbuilder":{
    "plugins":[
        ["mrbuilder-plugin-html", {exported:false}]
    ]
 }

```

Your entry point should look something like.

```js static
// main.js
import React from 'react'
import ReactDOM from 'react-dom'
import { AppContainer } from 'react-hot-loader'
import App from './containers/App'

const render = Component => {
  ReactDOM.render(
    <AppContainer>
      <Component />
    </AppContainer>,
    document.getElementById('root'),
  )
}

render(App)

// Webpack Hot Module Replacement API
if (module.hot) {
  module.hot.accept('./containers/App', () => {
    render(App)
  })
}



```


### Pages
The pages points can be configured via pages object where the key will match
the entry point, or by default it will look into public/index.js, failing that
it will use the main defined in your package.json.

```js static
"mrbuilder":[
[
        "mrbuilder-plugin-html",
        {
          "pages": {
            "index": {//"index will match your entry for index.
              "title": "Index" // will set the title for the page.
            },
            "other": {
              "title": "Other",
              "exported": true // will tell the html plugin to create a real entry point and setup loading for this.
            }
          }
        }
      ]
]
```
npm package: @mrbuilder/plugin-jest
Description: Provides mrbuilder wrapper for jest
Latest version: 4.4.7-alpha.9

Provides Jest support. Options are same as [Jest](https://jestjs.io/docs/en/configuration)  otherwise attempts to create
a working jest configuration given your current mrbuilder configuration.


It attempts to normalize mrbuilder (webpack) configuration, so that you do not need to have configs for both webpack
and jest

## Current Capabilities
 - Runs jest
 - Sets up CSS Module's for sass/less/css
 - Emulates require.context
 - Sets up graphql-loader style imports
 - Typescript


## Current Limitations
- Does not sync alias's 
- Does not work with @mrbuilder/plugin-worker (web worker's)
- More to follow.
npm package: @mrbuilder/plugin-karma
Description: Tools for developing with mrbuilder and karma
Latest version: 4.4.7-alpha.9

Provides karma support for mrbuilder projects.

### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| testDir       | string     | ./test       | Directory with tests             |
| useCoverage   | bool       | false        | Turn on coverage                 |
| node          | object     |              | webpack.node config              |
| testIndex     | string     |              | override test index              |
npm package: @mrbuilder/plugin-less
Description: less support for mrbuilder
Latest version: 4.4.7-alpha.9

This plugin includes the webpack [less-loader](https://github.com/webpack-contrib/less-loader) and tries to smartly setup
less for css modules and regular less.

### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| test          | regex      | /\.less$/    | Match files                      |
| options       | object     | strictMath,noIE| Options to pass to less-loader |
npm package: @mrbuilder/plugin-lodash
Description: Provides lodash alias's for all of lodash
Latest version: 4.4.7-alpha.9

This plugin provides alias's for all of lodash functions, to make all
modules use the same version of [lodash](https://lodash.com/).

### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| aliasDotImports| bool     |  true            | Create alias's for dot imports        |
| lodash           | string       | lodash-es         | Which lodash package to use     |
npm package: @mrbuilder/plugin-markdown
Description: Provides markdown to react components
Latest version: 4.4.7-alpha.9

This plugin provides markdown support.

- [ ] not done
- [x] done

The advantage of this markdown implementation over the [markdown-to-jsx](https://www.npmjs.com/package/markdown-to-jsx)
is this  compiled to react components, rather than parsing the content in the browser
to extract content.

So it can easily include paths like the one below.

![alt logo](../../wiki/mrbuilder.svg)

and inline _stuff_

## Table support

```markdown

| Left-aligned | Center-aligned | Right-aligned |
| :---         |     :---:      |          ---: |
| git status   | git status     | git status    |
| git diff     | git diff       | git diff      |

```
Should be rendered as

| Left-aligned | Center-aligned | Right-aligned |
| :---         |     :---:      |          ---: |
| git status   | git status     | git status    |
| git diff     | git diff       | git diff      |


## This shows line breaks
Hello and ' are escaped {this to}'
world

## This shows inline html
It needs to be inline <span className='inline-hello' style="font-weight:bold;color:red">Hello</span>



- list item 1
- list item 2

1) is first
2) is second
npm package: @mrbuilder/plugin-moment
Description: Mrbuilder plugin for momentjs allows for configuration for specific locals
Latest version: 4.4.7-alpha.9

This plugin provides context replacement for [momentjs](https://momentjs.com/) so
you can better select the languages that are imported to the app.

### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| languages     | arrayof string| ['en']    | What languages to support        |
| alias         | bool       |  true        | Alias momentjs                   |
npm package: @mrbuilder/plugin-react
Description: React plugin for mrbuilder
Author: Justin Spears
Latest version: 4.4.7-alpha.9

Provides react support for mrbuilder

### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| compatMode    | bool       | false        | Attempts to make new react look old so 3rd party components can work |
| useClassDisplayName | bool | true         | Adds displayname to react components so they display nicely in debuggers|

_Note:_ compatMode should not be used for libraries, but is OK for top level
apps.   For libraries there are no good solutions, luckily react does an awesome
job of maintaining compatibility.   This is just hack for when you just can't
upgrade.
npm package: @mrbuilder/plugin-react-styleguidist
Description: Mrbuilder Plugin for styleguidist
Latest version: 4.4.7-alpha.9

A MR Builder plugin that provides [react-styleguidist](https://react-styleguidist.js.org/docs/getting-started.html) capabilities


The configuration is defined [here](https://react-styleguidist.js.org/docs/configuration.html)
With the exception that "components" property is hijacked and replaced with
module name.

* Note - react-styleguidist ships with an old version of webpack-dev-server, and
mrbuilder ships with a newer one.  If you get an error like:

```sh
  module.js:549
      throw err;
      ^

  Error: Cannot find module 'webpack/bin/config-yargs'
      at Function.Module._resolveFilename (module.js:547:15)
```

Please run to add it to your project, hopefully making it resolve before
react styleguist.

```sh
   $ yarn add webpack-dev-server@^4 -D
```

To see an example using lerna visit [https://mr-builder.github.io/mrbuilder-example-styleguide/]( https://mr-builder.github.io/mrbuilder-example-styleguide/)
npm package: @mrbuilder/plugin-sass
Description: Sass plugin for mrbuilder
Author: Justin Spears
Latest version: 4.4.7-alpha.9

Provides sass loader for webpack.

### Options
| Property      | Type       | Default      | Description                      |
| ------------- | -----------| -------------| ---------------------------------|
| options.sourceMaps| bool   | true         | Add source maps                  |
| modules       | bool       | false        | Add css module support           |
| test          | regex      | /*.s[ac]ss$/ | match *.sass and scss files      |
| options.includePaths| array|              | Add paths to include             |


### Notes
If modules is true sass as a CSS Module will be available via
    `.module.scss` and `.module.sass`. Also for legacy reasons  `.scssm`, `.sassm` will be turned on as well.