open-index/open-npm huggingface dataset:
npm package: @randsum/blades
Description: Blades in the Dark compatible dice rolling implementation
Author: Alex Jarvis
Latest version: 1.1.0
Deprecated: Use @randsum/games/blades instead. See https://randsum.dev

<div align="center">
  <img width="150" height="150" src="https://raw.githubusercontent.com/RANDSUM/randsum/refs/heads/main/icon.webp" alt="Randsum Logo">
  <h1>@randsum/blades</h1>
  <h3>Blades in the Dark compatible dice rolling for Randsum</h3>

[![npm version](https://img.shields.io/npm/v/@randsum/blades)](https://www.npmjs.com/package/@randsum/blades)
[![bundle size](https://img.shields.io/bundlephobia/minzip/@randsum/blades)](https://bundlephobia.com/package/@randsum/blades)
[![Types](https://img.shields.io/npm/types/@randsum/blades)](https://www.npmjs.com/package/@randsum/blades)
[![License](https://img.shields.io/npm/l/@randsum/blades)](https://github.com/RANDSUM/randsum/blob/main/LICENSE)
[![Downloads](https://img.shields.io/npm/dm/@randsum/blades)](https://www.npmjs.com/package/@randsum/blades)
[![codecov](https://codecov.io/gh/RANDSUM/randsum/branch/main/graph/badge.svg)](https://codecov.io/gh/RANDSUM/randsum)

</div>

A utility for rolling dice in [Forged in the Dark](https://bladesinthedark.com/) systems!

- 🎲 Standard Blades in the Dark position and effect rolls
- 🎯 Automatic handling of dice pools
- 🔒 Full TypeScript support
- 🪶 Lightweight implementation

## Installation

```bash
npm install @randsum/blades
# or
yarn add @randsum/blades
# or
bun add @randsum/blades
```

## Usage

```typescript
import { roll } from "@randsum/blades"
import type { BladesRollResult } from "@randsum/blades"

// Basic roll with dice pool
const { outcome, result } = roll(2)
console.log(outcome) // 'critical' | 'success' | 'partial' | 'failure'

// Different dice pool sizes
roll(1) // Desperate position
roll(2) // Risky position
roll(3) // Controlled position
roll(4) // Controlled with assistance
```

## API Reference

### `roll`

Makes a Blades in the Dark roll, returning the result based on the highest die.

```typescript
function roll(dicePool: number): BladesRollResult
```

**Parameters:**

- `dicePool`: Number of d6 dice to roll (typically 1-4)

**Returns:**

- `'critical'`: Rolled 6 on multiple dice (critical success)
- `'success'`: Highest die was 4-6 (full success)
- `'partial'`: Highest die was 1-3 (partial success/complication)
- `'failure'`: No dice rolled (should not occur with valid input)

**Result Interpretation:**

```typescript
type BladesResult = "critical" | "success" | "partial" | "failure"
```

## Related Packages

- [@randsum/roller](https://github.com/RANDSUM/randsum/tree/main/packages/roller): Core dice rolling implementation

<div align="center">
Made with 👹 by <a href="https://github.com/RANDSUM">RANDSUM</a>
</div>
npm package: @randsum/cli
Description: Dice rolling CLI powered by RANDSUM
Author: Alex Jarvis
Latest version: 1.3.0

<div align="center">
  <img width="150" height="150" src="https://raw.githubusercontent.com/RANDSUM/randsum/refs/heads/main/icon.webp" alt="Randsum Logo">
  <h1>@randsum/cli</h1>
  <h3>A Zero Dependency, Typescript-First, Bun-Native Dice Notation and Rolling Engine</h3>
  <p>Throw Dice, Not Exceptions.</p>
</div>

Dice rolling CLI and interactive TUI powered by [RANDSUM](https://github.com/RANDSUM/randsum).

## Install

```bash
npm install -g @randsum/cli
# or
bunx randsum
# or
npx randsum
```

## Usage

### Quick Roll

```bash
randsum 4d6L          # Roll 4d6, drop lowest
randsum 2d20H         # Disadvantage (drop highest)
randsum 1d20+5        # Attack roll with modifier
randsum 3d6!          # Exploding dice
```

### Interactive TUI

```bash
randsum               # Launch interactive mode
randsum -i            # Explicit interactive flag
```

### Options

```
-i, --interactive     Launch interactive TUI mode
-v, --verbose         Show detailed roll breakdown
--json                Output results as JSON
-r, --repeat N        Roll N times (default: 1)
-s, --seed <number>   Set random seed for reproducible rolls
-V, --version         Show version
-h, --help            Show help
```

## Dice Notation

Uses [RANDSUM Dice Notation](https://github.com/RANDSUM/randsum/blob/main/packages/roller/RANDSUM_DICE_NOTATION.md) — supports drop/keep (`L`/`H`), reroll (`R{}`), exploding (`!`), unique (`U`), cap (`C{}`), and arithmetic (`+`/`-`).

## License

MIT
npm package: @randsum/fifth
Description: A flexible, type-safe dice roller for building 5E-compatible applications
Author: Alex Jarvis
Latest version: 1.1.0
Deprecated: Use @randsum/games/fifth instead. See https://randsum.dev

<div align="center">
  <img width="150" height="150" src="https://raw.githubusercontent.com/RANDSUM/randsum/refs/heads/main/icon.webp" alt="Randsum Logo">
  <h1>@randsum/fifth</h1>
  <h3>5th Edition compatible dice rolling for Randsum</h3>

[![npm version](https://img.shields.io/npm/v/@randsum/fifth)](https://www.npmjs.com/package/@randsum/fifth)
[![bundle size](https://img.shields.io/bundlephobia/minzip/@randsum/fifth)](https://bundlephobia.com/package/@randsum/fifth)
[![Types](https://img.shields.io/npm/types/@randsum/fifth)](https://www.npmjs.com/package/@randsum/fifth)
[![License](https://img.shields.io/npm/l/@randsum/fifth)](https://github.com/RANDSUM/randsum/blob/main/LICENSE)
[![Downloads](https://img.shields.io/npm/dm/@randsum/fifth)](https://www.npmjs.com/package/@randsum/fifth)
[![codecov](https://codecov.io/gh/RANDSUM/randsum/branch/main/graph/badge.svg)](https://codecov.io/gh/RANDSUM/randsum)

</div>

A type-safe implementation of 5th Edition d20 mechanics with advantage/disadvantage.

## Installation

```bash
npm install @randsum/fifth
# or
bun add @randsum/fifth
```

## Usage

```typescript
import { roll } from "@randsum/fifth"

// Basic roll with modifier
const result = roll({ modifier: 5 })

// Roll with advantage
roll({
  modifier: 5,
  rollingWith: "Advantage"
})

// Roll with disadvantage
roll({
  modifier: -2,
  rollingWith: "Disadvantage"
})

// Check against DC
const { total } = roll({ modifier: 5 })
const success = total >= 15 // DC 15 check
```

## API Reference

### `roll(options)`

```typescript
function roll(options: FifthRollArgument): FifthRollResult
```

**Options:**

| Parameter     | Type                            | Description                       |
| ------------- | ------------------------------- | --------------------------------- |
| `modifier`    | `number`                        | Bonus/penalty to add to roll      |
| `rollingWith` | `'Advantage' \| 'Disadvantage'` | Roll 2d20 and keep highest/lowest |

**Returns:**

```typescript
interface FifthRollResult {
  total: number
  result: "natural_20" | "natural_1" | "standard"
  details: { modifier: number }
  rolls: RollRecord[]
}
```

## Related Packages

- [@randsum/roller](https://github.com/RANDSUM/randsum/tree/main/packages/roller) - Core dice rolling

<div align="center">
Made with 👹 by <a href="https://github.com/RANDSUM">RANDSUM</a>
</div>
npm package: @randsum/pbta
Description: A flexible, type-safe dice roller for Powered by the Apocalypse games
Author: Alex Jarvis
Latest version: 1.0.0
Deprecated: Use @randsum/games/pbta instead. See https://randsum.dev

<div align="center">
  <img width="150" height="150" src="https://raw.githubusercontent.com/RANDSUM/randsum/refs/heads/main/icon.webp" alt="Randsum Logo">
  <h1>@randsum/pbta</h1>
  <h3>Powered by the Apocalypse dice rolling for Randsum</h3>

[![npm version](https://img.shields.io/npm/v/@randsum/pbta)](https://www.npmjs.com/package/@randsum/pbta)
[![bundle size](https://img.shields.io/bundlephobia/minzip/@randsum/pbta)](https://bundlephobia.com/package/@randsum/pbta)
[![Types](https://img.shields.io/npm/types/@randsum/pbta)](https://www.npmjs.com/package/@randsum/pbta)
[![License](https://img.shields.io/npm/l/@randsum/pbta)](https://github.com/RANDSUM/randsum/blob/main/LICENSE)
[![Downloads](https://img.shields.io/npm/dm/@randsum/pbta)](https://www.npmjs.com/package/@randsum/pbta)

</div>

A type-safe implementation of [Powered by the Apocalypse](https://apocalypse-world.com/) dice rolling mechanics that supports:

- 🎲 Standard 2d6 + stat rolls
- 🎯 Automatic outcome determination (strong hit, weak hit, miss)
- ⚡ Advantage/disadvantage mechanics
- 🔒 Full TypeScript support
- 🪶 Tree-shakeable implementation

Works with any PbtA game including Dungeon World, Monster of the Week, Apocalypse World, Masks, and more.

## Installation

```bash
npm install @randsum/pbta
# or
yarn add @randsum/pbta
# or
bun add @randsum/pbta
```

## Usage

```typescript
import { rollPbtA } from "@randsum/pbta"

// Basic roll
const result = rollPbtA({ stat: 2 })
// result.result: 'strong_hit' | 'weak_hit' | 'miss'

// With bonuses
const result = rollPbtA({
  stat: 1,
  forward: 1, // One-time bonus
  ongoing: 0 // Persistent bonus
})

// With advantage (roll 3d6, keep 2 highest)
const result = rollPbtA({
  stat: 2,
  advantage: true
})

// With disadvantage (roll 3d6, keep 2 lowest)
const result = rollPbtA({
  stat: 2,
  disadvantage: true
})
```

## API Reference

### `rollPbtA`

Makes a PbtA roll following standard mechanics.

```typescript
function rollPbtA(arg: PbtARollArgument): GameRollResult<PbtAOutcome, PbtARollDetails, RollRecord>
```

**Parameters:**

- `stat`: Stat modifier (typically -3 to +4)
- `forward?`: One-time bonus
- `ongoing?`: Persistent bonus
- `advantage?`: Roll with advantage (3d6, keep 2 highest)
- `disadvantage?`: Roll with disadvantage (3d6, keep 2 lowest)

**Returns:**

- `result`: 'strong_hit' | 'weak_hit' | 'miss'
- `total`: Final roll total
- `details`: Additional roll information
- `rolls`: Full roll records with modifier history

## Outcomes

- **Strong Hit (10+)**: Complete success, you do what you set out to do
- **Weak Hit (7-9)**: Partial success, you do it but with a cost or complication
- **Miss (6-)**: Failure, things go wrong

## Related Packages

- [@randsum/roller](https://github.com/RANDSUM/randsum/tree/main/packages/roller): Core dice rolling implementation

<div align="center">
Made with 👹 by <a href="https://github.com/RANDSUM">RANDSUM</a>
</div>
npm package: @randsum/root-rpg
Description: A flexible, type-safe dice roller for the Root RPG system
Author: Alex Jarvis
Latest version: 1.0.0
Deprecated: Use @randsum/games/root-rpg instead. See https://randsum.dev

<div align="center">
  <img width="150" height="150" src="https://raw.githubusercontent.com/RANDSUM/randsum/refs/heads/main/icon.webp" alt="Randsum Logo">
  <h1>@randsum/root-rpg</h1>
  <h3>Root RPG compatible dice rolling for Randsum</h3>

[![npm version](https://img.shields.io/npm/v/@randsum/root-rpg)](https://www.npmjs.com/package/@randsum/root-rpg)
[![bundle size](https://img.shields.io/bundlephobia/minzip/@randsum/root-rpg)](https://bundlephobia.com/package/@randsum/root-rpg)
[![Types](https://img.shields.io/npm/types/@randsum/root-rpg)](https://www.npmjs.com/package/@randsum/root-rpg)
[![License](https://img.shields.io/npm/l/@randsum/root-rpg)](https://github.com/RANDSUM/randsum/blob/main/LICENSE)
[![Downloads](https://img.shields.io/npm/dm/@randsum/root-rpg)](https://www.npmjs.com/package/@randsum/root-rpg)
[![codecov](https://codecov.io/gh/RANDSUM/randsum/branch/main/graph/badge.svg)](https://codecov.io/gh/RANDSUM/randsum)

</div>

A small collection of utilities for [Root RPG](https://magpiegames.com/collections/root)!

- 🎲 Standard Root RPG (2d6+N) rolls
- 🎯 Automatic handling of modifiers
- 🔒 Full TypeScript support
- 🪶 smol (not larger than a wolf)

## Installation

```bash
npm install @randsum/root-rpg
# or
yarn add @randsum/root-rpg
# or
bun add @randsum/root-rpg
```

## Usage

```typescript
import { rollRootRpg } from "@randsum/root-rpg"
import type { RootRpgRollResult } from "@randsum/root-rpg"

// Basic roll with modifier
const { outcome, roll, result } = rollRootRpg(2)
// outcome: 'Strong Hit' | 'Weak Hit' | 'Miss'
// roll: numeric total, result: detailed roll information

// Type-safe result handling
const { outcome } = rollRootRpg(0)
switch (outcome) {
  case "Strong Hit":
    // 10 or higher
    break
  case "Weak Hit":
    // 7-9
    break
  case "Miss":
    // 6 or lower
    break
}
```

## API Reference

### `rollRootRpg`

Makes a 2d6 roll following Root RPG rules, returning an object with the interpreted result and numeric details.

```typescript
function rollRootRpg(bonus: number): RootRpgRollResult
```

```typescript
type RootResult = RootStrongHit | RootWeakHit | RootMiss
type RootStrongHit = "Strong Hit"
type RootWeakHit = "Weak Hit"
type RootMiss = "Miss"
```

## Related Packages

- [@randsum/roller](https://github.com/RANDSUM/randsum/tree/main/packages/roller): Core dice rolling implementation

<div align="center">
Made with 👹 by <a href="https://github.com/RANDSUM">RANDSUM</a>
</div>
npm package: @randukelvin/card
Description: This is a card template library designed with [React](https://react.dev)  and  [Chakra ui](https://www.chakra-ui.com) . ## Prerequite [Chakra ui](https://www.chakra-ui.com) [React](https://react.dev)
Author: Kelvin Randu
Latest version: 0.0.8

# React Card

This is a card template library designed with [React](https://react.dev)  and  [Chakra ui](https://www.chakra-ui.com) .
## Prerequite
[Chakra ui](https://www.chakra-ui.com)
[React](https://react.dev) 

## Installation



    npm i @randukelvin/card
    yarn add @randukelvin/card


## Usage


You can use it as follows:



```js

import { Card } from '@randukelvin/card'

function App() {


  return <Card name='Chill Spot' src='https://bit.ly/2Z4KKcF' alt='Rear view of modern home' badge='restaurants' rating={5} reviewCount={34} />
}

export default App




```

## Props

| Props        | Type        | Description |
| ------------- |:-------------:| -----:|
| id   |   string  |  key    | 
| name   |   string  |  name of product      | 
| src   |  string   |  image source      | 
| badge   |  string   |  string to be shown in badge    | 
| alt   |   string  |  alt string of image    | 
| distance   | string    |  distance i.e 1km away      | 
| rating   | number    |  1-5     | 
| reviewCount   | number    |  review number    |
npm package: @randukelvin/react-card
Description: This is a card template library designed with [React](https://react.dev)  and  [Chakra ui](https://www.chakra-ui.com) .
Author: Kelvin Randu
Latest version: 0.0.5

# React Card

This is a card template library designed with [React](https://react.dev)  and  [Chakra ui](https://www.chakra-ui.com) .

## Installation



    npm i @randukelvin/react-card
    yarn add @randukelvin/react-card

## Usage


You can use it as follows:



```js

import { Card } from '@randukelvin/react-card'

function App() {


  return <Card name='Chill Spot' src='https://bit.ly/2Z4KKcF' alt='Rear view of modern home' badge='restaurants' rating={5} reviewCount={34} />
}

export default App




```

## Props

| Props        | Type        | Description |
| ------------- |:-------------:| -----:|
| name   |   string  |  name of product      | 
| src   |  string   |  image source      | 
| badge   |  string   |  string to be shown in badge    | 
| alt   |   string  |  alt string of image    | 
| distance   | string    |  distance i.e 1km away      | 
| rating   | number    |  1-5     | 
| reviewCount   | number    |  review number    |
npm package: @randukelvin/react-greet
Description: This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Author: Kelvin Randu
Latest version: 0.0.3

# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

- Configure the top-level `parserOptions` property like this:

```js
export default tseslint.config({
  languageOptions: {
    // other options...
    parserOptions: {
      project: ['./tsconfig.node.json', './tsconfig.app.json'],
      tsconfigRootDir: import.meta.dirname,
    },
  },
})
```

- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked`
- Optionally add `...tseslint.configs.stylisticTypeChecked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config:

```js
// eslint.config.js
import react from 'eslint-plugin-react'

export default tseslint.config({
  // Set the react version
  settings: { react: { version: '18.3' } },
  plugins: {
    // Add the react plugin
    react,
  },
  rules: {
    // other rules...
    // Enable its recommended rules
    ...react.configs.recommended.rules,
    ...react.configs['jsx-runtime'].rules,
  },
})
```
npm package: @randy-ang/webpack-retry-chunk-load-plugin
Description: A webpack plugin to retry loading of chunks that failed to load
Author: Matt Lewis
Latest version: 1.4.1

# webpack-retry-chunk-load-plugin

[![Build Status](https://travis-ci.org/mattlewis92/webpack-retry-chunk-load-plugin.svg?branch=master)](https://travis-ci.org/mattlewis92/webpack-retry-chunk-load-plugin)
[![codecov](https://codecov.io/gh/mattlewis92/webpack-retry-chunk-load-plugin/branch/master/graph/badge.svg)](https://codecov.io/gh/mattlewis92/webpack-retry-chunk-load-plugin)
[![npm version](https://badge.fury.io/js/webpack-retry-chunk-load-plugin.svg)](http://badge.fury.io/js/webpack-retry-chunk-load-plugin)
[![GitHub issues](https://img.shields.io/github/issues/mattlewis92/webpack-retry-chunk-load-plugin.svg)](https://github.com/mattlewis92/webpack-retry-chunk-load-plugin/issues)
[![GitHub stars](https://img.shields.io/github/stars/mattlewis92/webpack-retry-chunk-load-plugin.svg)](https://github.com/mattlewis92/webpack-retry-chunk-load-plugin/stargazers)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/mattlewis92/webpack-retry-chunk-load-plugin/master/LICENSE)

A webpack plugin to retry loading of async chunks that failed to load

<img width="827" alt="screenshot 2018-10-24 at 21 47 39" src="https://user-images.githubusercontent.com/6425649/47435175-9c4c0100-d7d6-11e8-8519-6f46088e649f.png">

## Installing

`yarn add @randy-ang/webpack-retry-chunk-load-plugin`

## Usage

```javascript
// webpack.config.js
const { RetryChunkLoadPlugin } = require('webpack-retry-chunk-load-plugin');

plugins: [
  new RetryChunkLoadPlugin({
    // optional stringified function to get the cache busting query string appended to the script src
    // if not set will default to appending the string `?retry-attempt=<retries-done>`
    cacheBust: `function() {
      return Date.now();
    }`,
    // optional value to set the maximum number of retries to load the chunk. Default is 1
    maxRetries: 5,
    // optional list of chunks to which retry script should be injected
    // if not set will add retry script to all chunks that have webpack script loading
    chunks: ['chunkName'],
    // optional code to be executed in the browser context if after all retries chunk is not loaded.
    // if not set - nothing will happen and error will be returned to the chunk loader.
    lastResortScript: "window.location.href='/500.html';",
    // timeout (in milliseconds) before retrying to load chunk, defaults to 0
    delay: 1000
  })
];
```

### angular cli

To use this with the angular CLI you can use the fantastic [`angular-builders`](https://github.com/meltedspark/angular-builders) project to extend the built in webpack config

## License

MIT
npm package: @randy.tarampi/android-icon-resize
Description: Create all required icons from one icon. Right size, right file name.
Author: Randy Tarampi
Latest version: 3.0.1

# android-icon-resize 
[![Build Status](https://travis-ci.com/randytarampi/android-icon-resize.svg?branch=master)](https://travis-ci.com/randytarampi/android-icon-resize)
[![Dependency Status](https://david-dm.org/randytarampi/android-icon-resize.svg)](https://david-dm.org/randytarampi/android-icon-resize)
[![devDependency Status](https://david-dm.org/randytarampi/android-icon-resize/dev-status.svg)](https://david-dm.org/randytarampi/android-icon-resize#info=devDependencies)
[![Semantically Released](https://img.shields.io/badge/versioning-semantically%20released-brightgreen.svg)](https://github.com/boennemann/semantic-release) 

> Create all required icons from one icon. Right size, right file name.

The default icon file names and required sizes for android are retrieved from the [android-icons](http://github.com/randytarampi/android-icons) module. 

The files created have the default names as you might want to use them, for example, in [`config.xml`](http://docs.phonegap.com/en/3.5.0/config_ref_images.md.html) of a PhoneGap/Cordova project.

[This also exists for iOS](https://github.com/randytarampi/ios-icon-resize).

## Install

```sh
$ npm install --save @randy.tarampi/android-icon-resize
```


## Usage

```js
var resize = require('@randy.tarampi/android-icon-resize');

resize('path/to/icon-large.png', 'output/icons/').then(function() {
	// icons have been created
});

```


## CLI

```sh
$ npm install --global @randy.tarampi/android-icon-resize
```

```sh
$ android-icon-resize --help
Create all required icons from one icon. Right size, right file name.

Example
  $ android-icon-resize -i path/to/icon.png -o path/to/output/
	
```


## License
MIT © [David Pfahler](http://excellenteasy.com)
npm package: @randy.tarampi/android-splash-generate
Description: Generate all required splash screen images from one source. Right size, right file name.
Author: Randy Tarampi
Latest version: 3.0.2

# android-splash-generate 
[![Build Status](https://travis-ci.com/randytarampi/android-splash-generate.svg?branch=master)](https://travis-ci.com/randytarampi/android-splash-generate)
[![Dependency Status](https://david-dm.org/randytarampi/android-splash-generate.svg)](https://david-dm.org/randytarampi/android-splash-generate)
[![devDependency Status](https://david-dm.org/randytarampi/android-splash-generate/dev-status.svg)](https://david-dm.org/randytarampi/android-splash-generate#info=devDependencies) 

> Generate all required splash screen images from one source. Right size, right file name.

The default splash screen image file names and required sizes for android are retrieved from the [android-splash](http://github.com/randytarampi/android-splash) module. 

The files created have the default names as you might want to use them, for example, in [`config.xml`](http://docs.phonegap.com/en/3.5.0/config_ref_images.md.html) of a PhoneGap/Cordova project and the correct dimensions.

## Important

Require node.js v0.10.46 and npm v2.15.1

## How does it work?

A 2208x2208 source image gets scaled first and then cropped to the target dimensions. If you put the relevant part (logo, text, etc.) of your splash screen in the exact center of your source image, this means that the resulting images are all going to be centered as well.


## Install

```sh
$ npm install --save @randy.tarampi/android-splash-generate
```


## Usage

```js
var generate = require('@randy.tarampi/android-splash-generate');

generate('path/to/source.png', 'output/splash/').then(function() {
	// splash images created
});

```


## CLI

```sh
$ npm install --global @randy.tarampi/android-splash-generate
```

```sh
$ android-splash-generate --help
Generate all required splash screen images from one source. Right size, right file name.

Example
  $ android-splash-generate -i path/to/source.png -o path/to/output/
	
```


## License
MIT © [David Pfahler](http://excellenteasy.com)
npm package: @randy.tarampi/browser-logger
Description: A client-side-logger for www.randytarampi.ca
Author: Randy Tarampi
Latest version: 7.0.0

```
                  _                                            _
                 | |                                          | |
 _ __ ___   ___  | |__  _ __ _____      _____  ___ _ __ ______| | ___   __ _  __ _  ___ _ __
| '_ ` _ \ / _ \ | '_ \| '__/ _ \ \ /\ / / __|/ _ \ '__|______| |/ _ \ / _` |/ _` |/ _ \ '__|
| | | | | |  __/_| |_) | | | (_) \ V  V /\__ \  __/ |         | | (_) | (_| | (_| |  __/ |
|_| |_| |_|\___(_)_.__/|_|  \___/ \_/\_/ |___/\___|_|         |_|\___/ \__, |\__, |\___|_|
                                                                        __/ | __/ |
                                                                       |___/ |___/
```

[![npm versions](https://img.shields.io/npm/v/@randy.tarampi/browser-logger.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/browser-logger) [![npm downloads](https://img.shields.io/npm/dt/@randy.tarampi/browser-logger.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/browser-logger) [![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@randy.tarampi/browser-logger.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/browser-logger) [![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/@randy.tarampi/browser-logger.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/browser-logger) [![npm license](https://img.shields.io/npm/l/@randy.tarampi/browser-logger.svg?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/browser-logger) [![Analytics](https://ga-beacon.appspot.com/UA-50921068-1/beacon/github/randytarampi/me/tree/master/packages/browser-logger?flat&useReferrer)](https://github.com/igrigorik/ga-beacon)

[![Install @randy.tarampi/browser-logger](https://nodeico.herokuapp.com/@randy.tarampi/browser-logger.svg)](https://www.npmjs.com/package/@randy.tarampi/browser-logger)

A client-side logger for [www](../www), [letter](../letter) and [resume](../resume) amongst other things.

# Dependencies

See the [`me` dependencies](../../README.md#Dependencies).

# Installation

See the [`me` installation instructions](../../README.md#Installation).

# Testing

```
# From the `me` monorepo root
yarn lerna run test --scope=@randy.tarampi/browser-logger
```
npm package: @randy.tarampi/css
Description: Some common styles for www.randytarampi.ca
Author: Randy Tarampi
Latest version: 7.0.0

```
  _ __ ___   ___   ___ ___ ___
 | '_ ` _ \ / _ \ / __/ __/ __|
 | | | | | |  __/| (__\__ \__ \
 |_| |_| |_|\___(_)___|___/___/
```

[![npm versions](https://img.shields.io/npm/v/@randy.tarampi/css.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/css) [![npm downloads](https://img.shields.io/npm/dt/@randy.tarampi/css.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/css) [![npm license](https://img.shields.io/npm/l/@randy.tarampi/css.svg?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/css) [![Analytics](https://ga-beacon.appspot.com/UA-50921068-1/beacon/github/randytarampi/me/tree/master/packages/css?flat&useReferrer)](https://github.com/igrigorik/ga-beacon)

[![Install @randy.tarampi/css](https://nodeico.herokuapp.com/@randy.tarampi/css.svg)](https://www.npmjs.com/package/@randy.tarampi/css)

Some common styles for [www](../www), [letter](../letter) and [resume](../resume).

# Dependencies

See the [`me` dependencies](../../README.md#Dependencies).

# Installation

See the [`me` installation instructions](../../README.md#Installation).

# Testing

```
# From the `me` monorepo root
yarn lerna run test --scope=@randy.tarampi/css
```
npm package: @randy.tarampi/ios-icon-resize
Description: Create all required icons from one icon. Right size, right file name.
Author: Randy Tarampi
Latest version: 3.0.2

# ios-icon-resize 
[![Build Status](https://travis-ci.com/randytarampi/ios-icon-resize.svg?branch=master)](https://travis-ci.com/randytarampi/ios-icon-resize)
[![Dependency Status](https://david-dm.org/randytarampi/ios-icon-resize.svg)](https://david-dm.org/randytarampi/ios-icon-resize)
[![devDependency Status](https://david-dm.org/randytarampi/ios-icon-resize/dev-status.svg)](https://david-dm.org/randytarampi/ios-icon-resize#info=devDependencies)
[![Semantically Released](https://img.shields.io/badge/versioning-semantically%20released-brightgreen.svg)](https://github.com/boennemann/semantic-release) 

> Create all required icons from one icon. Right size, right file name.

The default icon file names and required sizes for iOS are retrieved from the [ios-icons](http://github.com/randytarampi/ios-icons) module. 

The files created have the default names as you might want to use them, for example, in [`config.xml`](http://docs.phonegap.com/en/3.5.0/config_ref_images.md.html) of a PhoneGap/Cordova project.

[This also exists for android](https://github.com/randytarampi/android-icon-resize).

## Install

```sh
$ npm install --save @randy.tarampi/ios-icon-resize
```


## Usage

```js
var resize = require('@randy.tarampi/ios-icon-resize');

resize('path/to/icon-large.png', 'output/icons/').then(function() {
	// icons have been created
});

```


## CLI

```sh
$ npm install --global @randy.tarampi/ios-icon-resize
```

```sh
$ ios-icon-resize --help
Create all required icons from one icon. Right size, right file name.

Example
  $ ios-icon-resize -i path/to/icon.png -o path/to/output/
	
```


## License
MIT © [David Pfahler](http://excellenteasy.com)
npm package: @randy.tarampi/ios-splash-generate
Description: Generate all required splash screen images from one source. Right size, right file name.
Author: Randy Tarampi
Latest version: 3.0.2

# ios-splash-generate 
[![Build Status](https://travis-ci.com/randytarampi/ios-splash-generate.svg?branch=master)](https://travis-ci.com/randytarampi/ios-splash-generate)
[![Dependency Status](https://david-dm.org/randytarampi/ios-splash-generate.svg)](https://david-dm.org/randytarampi/ios-splash-generate)
[![devDependency Status](https://david-dm.org/randytarampi/ios-splash-generate/dev-status.svg)](https://david-dm.org/randytarampi/ios-splash-generate#info=devDependencies) 

> Generate all required splash screen images from one source. Right size, right file name.

The default splash screen image file names and required sizes for iOS are retrieved from the [ios-splash](http://github.com/randytarampi/ios-splash) module. 

The files created have the default names as you might want to use them, for example, in [`config.xml`](http://docs.phonegap.com/en/3.5.0/config_ref_images.md.html) of a PhoneGap/Cordova project and the correct dimensions.

## How does it work?

A 2208x2208 source image gets scaled first and then cropped to the target dimensions. If you put the relevant part (logo, text, etc.) of your splash screen in the exact center of your source image, this means that the resulting images are all going to be centered as well.


## Install

```sh
$ npm install --save @randy.tarampi/ios-splash-generate
```


## Usage

```js
var generate = require('@randy.tarampi/ios-splash-generate');

generate('path/to/source.png', 'output/splash/').then(function() {
	// splash images created
});

```


## CLI

```sh
$ npm install --global @randy.tarampi/ios-splash-generate
```

```sh
$ ios-splash-generate --help
Generate all required splash screen images from one source. Right size, right file name.

Example
  $ ios-splash-generate -i path/to/source.png -o path/to/output/
	
```


## License
MIT © [David Pfahler](http://excellenteasy.com)
npm package: @randy.tarampi/js
Description: Some common JS entities for www.randytarampi.ca
Author: Randy Tarampi
Latest version: 7.0.0

```
                    _
  _ __ ___   ___   (_)___
 | '_ ` _ \ / _ \  | / __|
 | | | | | |  __/_ | \__ \
 |_| |_| |_|\___(_)/ |___/
                 |__/
```

[![npm versions](https://img.shields.io/npm/v/@randy.tarampi/js.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/js) [![npm downloads](https://img.shields.io/npm/dt/@randy.tarampi/js.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/js) [![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@randy.tarampi/js.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/js) [![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/@randy.tarampi/js.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/js) [![npm license](https://img.shields.io/npm/l/@randy.tarampi/js.svg?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/js) [![Analytics](https://ga-beacon.appspot.com/UA-50921068-1/beacon/github/randytarampi/me/tree/master/packages/js?flat&useReferrer)](https://github.com/igrigorik/ga-beacon)

[![Install @randy.tarampi/js](https://nodeico.herokuapp.com/@randy.tarampi/js.svg)](https://www.npmjs.com/package/@randy.tarampi/js)

Some common JS entities and utilities for [www](../www) and [service](../service).

# Dependencies

See the [`me` dependencies](../../README.md#Dependencies).

# Installation

See the [`me` installation instructions](../../README.md#Installation).

# Testing

```
# From the `me` monorepo root
yarn lerna run test --scope=@randy.tarampi/js
```
npm package: @randy.tarampi/jsx
Description: Some common JSX components for www.randytarampi.ca
Author: Randy Tarampi
Latest version: 7.0.0

```
                    _
  _ __ ___   ___   (_)_____  __
 | '_ ` _ \ / _ \  | / __\ \/ /
 | | | | | |  __/_ | \__ \>  <
 |_| |_| |_|\___(_)/ |___/_/\_\
                 |__/
```

[![npm versions](https://img.shields.io/npm/v/@randy.tarampi/jsx.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/jsx) [![npm downloads](https://img.shields.io/npm/dt/@randy.tarampi/jsx.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/jsx) [![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@randy.tarampi/jsx.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/jsx) [![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/@randy.tarampi/jsx.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/jsx) [![npm license](https://img.shields.io/npm/l/@randy.tarampi/jsx.svg?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/jsx) [![Analytics](https://ga-beacon.appspot.com/UA-50921068-1/beacon/github/randytarampi/me/tree/master/packages/jsx?flat&useReferrer)](https://github.com/igrigorik/ga-beacon)

[![Install @randy.tarampi/jsx](https://nodeico.herokuapp.com/@randy.tarampi/jsx.svg)](https://www.npmjs.com/package/@randy.tarampi/jsx)

Some common components for [www](../www), [letter](../letter) and [resume](../resume).

# Dependencies

See the [`me` dependencies](../../README.md#Dependencies).

# Installation

See the [`me` installation instructions](../../README.md#Installation).

# Testing

```
# From the `me` monorepo root
yarn lerna run test --scope=@randy.tarampi/jsx
```
npm package: @randy.tarampi/lambda-logger
Description: Just my opinionated logger for my AWS Lambda functions
Author: Randy Tarampi
Latest version: 7.0.0

```
                  _                 _         _              _
                 | |               | |       | |            | |
 _ __ ___   ___  | | __ _ _ __ ___ | |__   __| | __ _ ______| | ___   __ _  __ _  ___ _ __
| '_ ` _ \ / _ \ | |/ _` | '_ ` _ \| '_ \ / _` |/ _` |______| |/ _ \ / _` |/ _` |/ _ \ '__|
| | | | | |  __/_| | (_| | | | | | | |_) | (_| | (_| |      | | (_) | (_| | (_| |  __/ |
|_| |_| |_|\___(_)_|\__,_|_| |_| |_|_.__/ \__,_|\__,_|      |_|\___/ \__, |\__, |\___|_|
                                                                      __/ | __/ |
                                                                     |___/ |___/
```

[![npm versions](https://img.shields.io/npm/v/@randy.tarampi/lambda-logger.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/lambda-logger) [![npm downloads](https://img.shields.io/npm/dt/@randy.tarampi/lambda-logger.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/lambda-logger) [![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@randy.tarampi/lambda-logger.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/lambda-logger) [![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/@randy.tarampi/lambda-logger.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/lambda-logger) [![npm license](https://img.shields.io/npm/l/@randy.tarampi/lambda-logger.svg?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/lambda-logger) [![Analytics](https://ga-beacon.appspot.com/UA-50921068-1/beacon/github/randytarampi/me/tree/master/packages/lambda-logger?flat&useReferrer)](https://github.com/igrigorik/ga-beacon)

[![Install @randy.tarampi/lambda-logger](https://nodeico.herokuapp.com/@randy.tarampi/lambda-logger.svg)](https://www.npmjs.com/package/@randy.tarampi/lambda-logger)

A server-side logger for [service](../service).

# Dependencies

See the [`me` dependencies](../../README.md#Dependencies).

# Installation

See the [`me` installation instructions](../../README.md#Installation).

# Testing

```
# From the `me` monorepo root
yarn lerna run test --scope=@randy.tarampi/lambda-logger
```
npm package: @randy.tarampi/playwright-cluster
Description: Cluster management for playwright
Author: Thomas Dondorf, Christian Nikolov, Andrew Vlasyuk, Zhao Wang, Randy Tarampi
Latest version: 0.5.0

# Playwright Cluster

![Build Status](https://github.com/randytarampi/playwright-cluster/actions/workflows/build.yml/badge.svg)
![npm (scoped)](https://img.shields.io/npm/v/@randy.tarampi/playwright-cluster)
![npm download](https://img.shields.io/npm/dm/@randy.tarampi/playwright-cluster)
![Coverage Status](https://coveralls.io/repos/github/randytarampi/playwright-cluster/badge.svg?branch=main)
![Known Vulnerabilities](https://snyk.io/test/github/randytarampi/playwright-cluster/badge.svg)
![MIT License](https://img.shields.io/npm/l/@randy.tarampi/playwright-cluster.svg)

[puppeteer-cluster](https://github.com/thomasdondorf/puppeteer-cluster) is a great library manages a
[puppeteer](https://github.com/puppeteer/puppeteer) cluster. This is re-implementation to make it work with 
[Playwright](https://github.com/microsoft/playwright), aiming at 100% API compatibility as a turn-key replacement.

## Install

`npm --save @randy.tarampi/playwright-cluster`

## Usage

The documentation from puppeteer-cluster is still valid as the reference.

- [Usage](https://github.com/thomasdondorf/puppeteer-cluster#usage)
- [Examples](https://github.com/thomasdondorf/puppeteer-cluster#examples)
- [Concurrency implementations](https://github.com/thomasdondorf/puppeteer-cluster#concurrency-implementations)
- [Typings for input/output (via TypeScript Generics)](https://github.com/thomasdondorf/puppeteer-cluster#typings-for-inputoutput-via-typescript-generics)
- [Debugging](https://github.com/thomasdondorf/puppeteer-cluster#debugging)
- [API](https://github.com/thomasdondorf/puppeteer-cluster#api)

## Note

1. Chromium is hardcoded as the headless browser. This library does not work with Firefox or Webkit.
2. `BrowserContext` is not available in Puppeteer. Some options, e.g. `ignoreHTTPSErrors` cannot be directly translated from 
   `puppeteerOptions` to `playwrightOptions`. Therefore, we introduced `contextOptions` as an optional property in `ClusterOptions`.
npm package: @randy.tarampi/playwright-har
Description: Generate HAR files from Playwright test execution
Author: Jan Zaremski, Randy Tarampi
Latest version: 0.2.1

# playwright-har

![npm](https://img.shields.io/npm/v/playwright-har?color=blue)

playwright-har is capturing [HAR files](https://en.wikipedia.org/wiki/HAR_(file_format)) from browser network traffic and saves them to simplify debugging of failed tests.

## Credits

This is a port of [puppeteer-har](https://github.com/Everettss/puppeteer-har) that was adjusted to work with Playwright.

## Install

```
npm i --save playwright-har
```

## Usage

### Quick start

```ts
import { chromium } from 'playwright'
import { PlaywrightHar } from 'playwright-har'

(async () => {
    const browser = await chromium.launch();
    const context = await browser.newContext();
    const page = await context.newPage();

    const playwrightHar = new PlaywrightHar(page);
    await playwrightHar.start();

    await page.goto('http://whatsmyuseragent.org/');
    // ... other actions ...

    await playwrightHar.stop('./example.har');
    await browser.close();
})();
```

### Integration with [jest-playwright](https://github.com/playwright-community/jest-playwright) preset

In [CustomEnvironment.js](https://github.com/playwright-community/jest-playwright#usage-with-custom-testenvironment) :

```js
const PlaywrightEnvironment = require('jest-playwright-preset/lib/PlaywrightEnvironment').default
const { PlaywrightHar } = require('playwright-har');

class CustomEnvironment extends PlaywrightEnvironment {
    
    constructor(config, context) {
        super(config, context);
        this.playwrightHar;
    }

    async handleTestEvent(event) {

        if (event.name == 'test_start') {
            if (this.global.browserName === 'chromium') {
                this.playwrightHar = new PlaywrightHar(this.global.page);
                await this.playwrightHar.start();
            }
        }

        if (event.name == 'test_done') {
            if (this.global.browserName === 'chromium') {
                const parentName = event.test.parent.name.replace(/\W/g, '-');
                const specName = event.test.name.replace(/\W/g, '-');
                await this.playwrightHar.stop(`./${parentName}_${specName}.har`);
            }
        }
    }
}

module.exports = CustomEnvironment;
```

This setup will create `PlaywrightHar` instance for each `test` statement in `describe` statement in spec file. Browser network traffic will be collected from this step execution and save it in `.har` file with name corresponding to `describe` name followed by `test` name.

## Additional info

* HAR files collection works only on chromium browser
* `stop()` has an optional argument `path` - when specified, generated HAR file will be saved into provided path, otherwise it will be returned as an object
npm package: @randy.tarampi/printables
Description: A wrapper around some common printable tasks for jsonresume-theme-randytarampi and @randy.tarampi/letter
Author: Randy Tarampi
Latest version: 7.0.0

```
                             _       _        _     _
                            (_)     | |      | |   | |
 _ __ ___   ___   _ __  _ __ _ _ __ | |_ __ _| |__ | | ___  ___
| '_ ` _ \ / _ \ | '_ \| '__| | '_ \| __/ _` | '_ \| |/ _ \/ __|
| | | | | |  __/_| |_) | |  | | | | | || (_| | |_) | |  __/\__ \
|_| |_| |_|\___(_) .__/|_|  |_|_| |_|\__\__,_|_.__/|_|\___||___/
                 | |
                 |_|
```

[![npm versions](https://img.shields.io/npm/v/@randy.tarampi/printables.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/printables) [![npm downloads](https://img.shields.io/npm/dt/@randy.tarampi/printables.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/printables) [![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@randy.tarampi/printables.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/printables) [![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/@randy.tarampi/printables.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/printables) [![npm license](https://img.shields.io/npm/l/@randy.tarampi/printables.svg?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/printables) [![Analytics](https://ga-beacon.appspot.com/UA-50921068-1/beacon/github/randytarampi/me/tree/master/packages/printables?flat&useReferrer)](https://github.com/igrigorik/ga-beacon)

[![Install @randy.tarampi/printables](https://nodeico.herokuapp.com/@randy.tarampi/printables.svg)](https://www.npmjs.com/package/@randy.tarampi/printables)

Some common code to support the generation of PDFs for [letter](../letter) and [resume](../resume).

# Dependencies

See the [`me` dependencies](../../README.md#Dependencies).

# Installation

See the [`me` installation instructions](../../README.md#Installation).

# Testing

```
# From the `me` monorepo root
yarn lerna run test --scope=@randy.tarampi/printables
```
npm package: @randy.tarampi/react-scroll-section
Description: React library to provide a declarative scroll to between sections
Author: EmaSuriano
Latest version: 1.4.0

# react-scroll-section

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

<p align="center">
  <a  href="https://react-scroll-section.netlify.com/">
    <img src="./docs/logo.svg" alt="React Scroll Section logo"/>
  </a>
  <br />
  <b>A declarative solution to vertically navigate your React App</b>
</p>

Too check the documentation please go to the [hosted version](https://react-scroll-section.netlify.com).

[build-badge]: https://img.shields.io/travis/EmaSuriano/react-scroll-section/master.svg
[build]: https://travis-ci.org/EmaSuriano/react-scroll-section
[npm-badge]: https://img.shields.io/npm/v/react-scroll-section.svg
[npm]: https://www.npmjs.org/package/react-scroll-section
[coveralls-badge]: https://img.shields.io/coveralls/EmaSuriano/react-scroll-section/master.svg
[coveralls]: https://coveralls.io/github/EmaSuriano/react-scroll-section
npm package: @randy.tarampi/redux-metrics
Description: A client-side-logger for www.randytarampi.ca
Author: Randy Tarampi
Latest version: 7.0.0

```
                               _                                  _        _
                              | |                                | |      (_)
 _ __ ___   ___   _ __ ___  __| |_   ___  ________ _ __ ___   ___| |_ _ __ _  ___ ___
| '_ ` _ \ / _ \ | '__/ _ \/ _` | | | \ \/ /______| '_ ` _ \ / _ \ __| '__| |/ __/ __|
| | | | | |  __/_| | |  __/ (_| | |_| |>  <       | | | | | |  __/ |_| |  | | (__\__ \
|_| |_| |_|\___(_)_|  \___|\__,_|\__,_/_/\_\      |_| |_| |_|\___|\__|_|  |_|\___|___/


```

[![npm versions](https://img.shields.io/npm/v/@randy.tarampi/redux-metrics.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/redux-metrics) [![npm downloads](https://img.shields.io/npm/dt/@randy.tarampi/redux-metrics.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/redux-metrics) [![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@randy.tarampi/redux-metrics.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/redux-metrics) [![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/@randy.tarampi/redux-metrics.svg?style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/redux-metrics) [![npm license](https://img.shields.io/npm/l/@randy.tarampi/redux-metrics.svg?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat-square)](https://www.npmjs.com/package/@randy.tarampi/redux-metrics) [![Analytics](https://ga-beacon.appspot.com/UA-50921068-1/beacon/github/randytarampi/me/tree/master/packages/redux-metrics?flat&useReferrer)](https://github.com/igrigorik/ga-beacon)

[![Install @randy.tarampi/redux-metrics](https://nodeico.herokuapp.com/@randy.tarampi/redux-metrics.svg)](https://www.npmjs.com/package/@randy.tarampi/redux-metrics)

A client-side, GTM focused metrics library for redux backed applications like [www](../www).

# Dependencies

See the [`me` dependencies](../../README.md#Dependencies).

# Installation

See the [`me` installation instructions](../../README.md#Installation).

# Configuration
You'll want to hook up some [metrics middleware](https://github.com/randytarampi/me/blob/master/packages/jsx/src/lib/middleware/metrics.js) [like this](https://github.com/randytarampi/me/blob/b00290d5ebba49595c461a587fa762f268f3c1f5/packages/jsx/src/lib/store/configureStore.js#L16).

# Testing

```
# From the `me` monorepo root
yarn lerna run test --scope=@randy.tarampi/redux-metrics
```