open-index/open-npm huggingface dataset:
npm package: @jordanforeman/babel-config
Description: Common configuration for repositories using Babel
Author: Jordan Foreman
Latest version: 0.1.1

# `@jordanforeman/babel-config`

Shared [`Babel`](https://babeljs.io/) configuration

## Installation

```bash
$ npm i -D @jordanforeman/babel-config --save-exact
```

## Usage

1. Create a `.babelrc` file at the root of your repository
2. Customize your newly created `.babelrc` file to extend `@jordanforeman/babel-config` (like so):

### For Non-Browser NodeJS Applications

```json
{
    "extends": "./node_modules/@jordanforeman/babel-config/babel.config.node.js"
}
```

### For Browser (ReactJS) Applications

```json
{
    "extends": "./node_modules/@jordanforeman/babel-config/babel.config.browser.js"
}
```
npm package: @jordanforeman/commitizen-config
Description: Common configuration for repositories using commitizen
Author: Jordan Foreman
Latest version: 1.2.3

# `@jordanforeman/commitizen-config`

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/commitizen-config" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/commitizen-config.svg" alt="NPM version" /></a></span>

Shared [`commitizen`](https://www.npmjs.com/package/commitizen) configuration

## Installation

```bash
$ npm i -D @jordanforeman/commitizen-config --save-exact
```

## Usage

1. Create a `.czrc` file at the root of your repository
2. Customize your newly created `.czrc` file to extend `@jordanforeman/commitizen-config` (like so):

```json
{
    "path": "@jordanforeman/commitizen-config"
}
```
npm package: @jordanforeman/commitlint-config
Description: Common configuration for repositories using commitlint
Author: Jordan Foreman
Latest version: 0.2.2

# `@jordanforeman/commitlint-config`

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/commitlint-config" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/commitlint-config.svg" alt="NPM version" /></a></span>

Shared [`commitlint`](https://commitlint.js.org/#/) configuration

## Installation

```bash
$ npm i -D @jordanforeman/commitlint-config --save-exact
```

## Usage

1. Create a `commitlint.config.js` file at the root of your repository
2. Customize your newly created `commitlint.config.js` file to extend `@jordanforeman/commitlint-config` (like so):

```js
module.exports = {
    extends: ['@jordanforeman/commitlint-config']
};
```
npm package: @jordanforeman/eslint-config
Description: Common configuration for repositories using eslint
Author: Jordan Foreman
Latest version: 0.2.6

# `@jordanforeman/eslint-config`

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/eslint-config" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/eslint-config.svg" alt="NPM version" /></a></span>

Shared [`eslint`](https://eslint.org/) configuration

## Installation

```bash
$ npm i -D @jordanforeman/eslint-config --save-exact
```

## Usage

1. Create a `.eslintrc` file at the root of your repository
2. Customize your newly created `.eslintrc` file to extend `@jordanforeman/eslint-config` (like so):

```json
{
    "extends": "@jordanforeman/eslint-config"
}
```
npm package: @jordanforeman/generator-cli
Description: A Yeoman Generator for Command Line Interfaces
Author: Jordan Foreman
Latest version: 1.0.6

# `@jordanforeman/cli`

An opinionated [Yeoman](https://yeoman.io/) generator for creating a Command Line Interface (CLI) in Node.JS

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/generator-cli" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/generator-cli.svg" alt="NPM version" /></a></span>
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![](https://github.com/JordanForeman/generator-cli/workflows/Semantic%20Release/badge.svg)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)

## Installation

```bash
$ npm i -g @jordanforeman/generator-cli
```

## Usage

```bash
$ yo @jordanforeman/cli
```

## Prerequisites

You'll want to have [Yeoman](https://yeoman.io/) installed
npm package: @jordanforeman/generator-jekyll
Description: A Yeoman generator for static Jekyll sites
Author: Jordan Foreman
Latest version: 1.0.9

# `@jordanforeman/generator-jekyll`

An opinionated Yeoman generator for creating a static website built using Jekyll.

[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![](https://github.com/JordanForeman/generator-jekyll/workflows/Semantic%20Release/badge.svg)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)

## Technologies Used

| Tool / Framework | Description | Homepage |
|------------------|-------------|----------|
| [Jekyll](https://jekyllrb.com) | Static website builder | [https://jekyllrb.com](https://jekyllrb.com) |
| AWS | Web hosting (S3 & CloudFront) | |
| [Terraform](https://terraform.io) | Cloud Infrastructure Management | [https://terraform.io](https://terraform.io) |
| [GitHub Actions](https://github.com/features/actions) | CI/CD | [https://github.com/features/actions](https://github.com/features/actions) |

## Installation

```bash
$ npm i -g @jordanforeman/generator-jekyll
```

## Usage

```bash
$ yo @jordanforeman/jekyll
```

## Prerequisites

The generator will ask a couple of questions which presuppose the existence of a few global resources in AWS:

* An AWS Route53 [Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html)
* An S3 bucket to [store Terraform statefiles](https://www.terraform.io/docs/backends/types/s3.html)
* An SSL certificate managed by AWS Certificate Manager (attached to the aforementioned R53 zone)
npm package: @jordanforeman/husky-config
Description: Common configuration for repositories using husky
Author: Jordan Foreman
Latest version: 0.2.1

# `@jordanforeman/husky-config`

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/husky-config" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/husky-config.svg" alt="NPM version" /></a></span>

Shared [`husky`](https://github.com/typicode/husky) configuration

## Installation

```bash
$ npm i -D @jordanforeman/eslint-config --save-exact
```

## Usage

1. Create a `.huskyrc.js` file at the root of your repository
2. Customize your newly created `.huskyrc.js` file to extend `@jordanforeman/husky-config` (like so):

```js
module.exports = require('node_modules/@jordanforeman/husky-config');
```
npm package: @jordanforeman/jwt-authentication
Description: An authentication strategy for @jordanforeman/api-framework
Author: Jordan Foreman
Latest version: 0.1.8

# `@jordanforeman/jwt-authentication`

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/jwt-authentication" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/jwt-authentication.svg" alt="NPM version" /></a></span>
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![](https://github.com/JordanForeman/authentication-strategies/workflows/Semantic%20Release/badge.svg)
![](https://github.com/JordanForeman/authentication-strategies/workflows/PR%20Verify/badge.svg)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)

An authentication strategy middleware for accessing APIs via [JsonWebTokens](https://jwt.io/) using [`@jordanforeman/api-framework`](https://github.com/jordanforeman/api-framework)

## Installation

```bash
$ npm i --save @jordanforeman/{api-framework,rest-exceptions,jwt-authentication} --save-exact
```

## Usage

Use this module when defining a new controller (endpoint) that requires authentication. Like so:

```js
import {auth as jwt} from '@jordanforeman/jwt-authentication';

const myController = {
    path: '/my/protected/path',
    method: 'GET',
    config: {
        auth: jwt(secretOrPublicKey, options),
        handler: getMyProtectedPath
    }
};
```

If authentication is successful, the current `request` will be hydrated with an `auth` property containing the contents of the JWT's payload. 

If authentication is unsuccessful, the current `request` will be rejected with a `403 Forbidden` error with the following error message:

> Must be authorized to view this resource

### `secretOrPublicKey`

From the [`jsonwebtoken` docs](https://www.npmjs.com/package/jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback):

> `secretOrPublicKey` is a string or buffer containing either the secret for HMAC algorithms, or the PEM encoded public key for RSA and ECDSA. [..] `secretOrPublicKey` can be a function that should fetch the secret or public key.

### `options`

This authentication strategy is largely a pass through to the [`jsonwebtoken` module](https://www.npmjs.com/package/jsonwebtoken), and as such exposes the same `options` that it does in `verify`. For more information, see [`jsonwebtoken.verify` docs](https://www.npmjs.com/package/jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback).

## Additional Reading

For more information about using JsonWebTokens, see [jwt.io](https://jwt.io)
npm package: @jordanforeman/nyc-config
Description: Common configuration for repositories using Istanbul/nyc
Author: Jordan Foreman
Latest version: 0.1.1

# `@jordanforeman/nyc-config`

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/nyc-config" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/nyc-config.svg" alt="NPM version" /></a></span>

Shared [`Istanbul`](https://github.com/istanbuljs) configuration

## Installation

```bash
$ npm i -D @jordanforeman/nyc-config --save-exact
```

## Usage

1. Create a `.nycrc` file at the root of your repository
2. Customize your newly created `.nycrc` file to extend `@jordanforeman/nyc-config` (like so):

```json
{
    "nyc": {
        "extends": "@jordanforeman/nyc-config"
    }
}
```
npm package: @jordanforeman/release-config
Description: Common configuration for repositories using semantic-release
Author: Jordan Foreman
Latest version: 0.2.2

# `@jordanforeman/release-config`

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/release-config" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/release-config.svg" alt="NPM version" /></a></span>

Shared [`semantic-release`](https://github.com/semantic-release/semantic-release) configuration

## Installation

```bash
$ npm i -D @jordanforeman/release-config --save-exact
```

## Usage

1. Create a `.releaserc` file at the root of your repository
2. Customize your newly created `.releaserc` file to extend `@jordanforeman/release-config` (like so):

```json
{
    "extends": "@jordanforeman/release-config"
}
```
npm package: @jordanforeman/renovate-config
Description: Common configuration for repositories using Renovate
Author: Jordan Foreman
Latest version: 0.2.3

# `@jordanforeman/renovate-config`

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/renovate-config" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/renovate-config.svg" alt="NPM version" /></a></span>

Shared [`Renovate`](https://renovate.whitesourcesoftware.com/) configuration

## Installation

```bash
$ npm i -D @jordanforeman/renovate-config --save-exact
```

## Usage

1. Create a `renovate.json` file at the root of your repository
2. Customize your newly created `renovate.json` file to extend `@jordanforeman/renovate-config` (like so):

```json
{
    "extends": "@jordanforeman/renovate-config"
}
```
npm package: @jordanforeman/rest-exceptions
Description: Common REST Exceptions for use in Express APIs
Author: Jordan Foreman
Latest version: 1.1.0

# `@jordanforeman/rest-exceptions`

A set of common REST exceptions to be used in conjunction with [`@jordanforeman/api-framework`](https://github.com/JordanForeman/api-framework).

<span class="badge-npmversion"><a href="https://www.npmjs.com/package/@jordanforeman/rest-exceptions" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@jordanforeman/rest-exceptions.svg" alt="NPM version" /></a></span>
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![](https://github.com/JordanForeman/rest-exceptions/workflows/Semantic%20Release/badge.svg)
![](https://github.com/JordanForeman/rest-exceptions/workflows/PR%20Verify/badge.svg)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)

## Installation

```bash
$ npm i --save @jordanforeman/rest-exceptions
```

## Usage

When something goes wrong in your application, choose which error to throw, and do so. Below is an example of throwing a [`404 Not Found`](https://developer.mozilla.org/bg/docs/Web/HTTP/Status/404) exception:

```js
import {NotFoundException} from '@jordanforeman/rest-exceptions';

function getTheThing(id) {
    try {
        const myThing = await repository.getTheThingById(id);

        return myThing;
    } catch (e) {
        throw new NotFoundException();
    }
}
```

**...and with a custom error message**

```js
import {NotFoundException} from '@jordanforeman/rest-exceptions';

function getTheThing(id) {
    try {
        const myThing = await repository.getTheThingById(id);

        return myThing;
    } catch (e) {
        throw new NotFoundException('Could not find the thing you were looking for!');
    }
}
```

### Available Exceptions

| Exception Name | Status Code | Default Message | Documentation |
|----------------|-------------|-----------------|---------------|
| `BadRequestException` | `400` | Bad Request | [MDN](https://developer.mozilla.org/bg/docs/Web/HTTP/Status/400) |
| `ConflictingResourceException` | `409` | Conflict | [MDN](https://developer.mozilla.org/bg/docs/Web/HTTP/Status/409) |
| `ForbiddenException` | `403` | Forbidden | [MDN](https://developer.mozilla.org/bg/docs/Web/HTTP/Status/403) |
| `GenericRestException` | `500` | Internal Server Error | [MDN](https://developer.mozilla.org/bg/docs/Web/HTTP/Status/500) |
| `NotFoundException` | `404` | Not Found | [MDN](https://developer.mozilla.org/bg/docs/Web/HTTP/Status/404) |
| `UnauthorizedException` | `401` | Unauthorized | [MDN](https://developer.mozilla.org/bg/docs/Web/HTTP/Status/401) |
npm package: @jordangens/electron-webpack-quick-start
Description: > A bare minimum project structure to get started developing with [`electron-webpack`](https://github.com/electron-userland/electron-webpack).
Latest version: 0.0.0

# electron-webpack-quick-start
> A bare minimum project structure to get started developing with [`electron-webpack`](https://github.com/electron-userland/electron-webpack).

Thanks to the power of `electron-webpack` this template comes packed with...

* Use of [`webpack-dev-server`](https://github.com/webpack/webpack-dev-server) for development
* HMR for both `renderer` and `main` processes
* Use of [`babel-preset-env`](https://github.com/babel/babel-preset-env) that is automatically configured based on your `electron` version
* Use of [`electron-builder`](https://github.com/electron-userland/electron-builder) to package and build a distributable electron application

Make sure to check out [`electron-webpack`'s documentation](https://webpack.electron.build/) for more details.

## Getting Started
Simply clone down this reposity, install dependencies, and get started on your application.

The use of the [yarn](https://yarnpkg.com/) package manager is **strongly** recommended, as opposed to using `npm`.

```bash
# create a directory of your choice, and copy template using curl
mkdir new-electron-webpack-project && cd new-electron-webpack-project
curl -fsSL https://github.com/electron-userland/electron-webpack-quick-start/archive/master.tar.gz | tar -xz --strip-components 1

# or copy template using git clone
git clone https://github.com/electron-userland/electron-webpack-quick-start.git
cd electron-webpack-quick-start
rm -rf .git

# install dependencies
yarn
```

### Development Scripts

```bash
# run application in development mode
yarn dev

# compile source code and create webpack output
yarn compile

# `yarn compile` & create build with electron-builder
yarn dist

# `yarn compile` & create unpacked build with electron-builder
yarn dist:dir
```