open-index/open-npm huggingface dataset:
npm package: @geops/react-ui
Description: Components to build React apps at geOps.
Latest version: 1.1.5

# @geops/react-ui

[![npm](https://img.shields.io/npm/v/@geops/react-ui.svg?style=flat-square)](https://www.npmjs.com/package/@geops/react-ui)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

This library provides React components to build web applications based on [OpenLayers](https://openlayers.org/).

Documentation and examples at https://react-ui.geops.de.

## Getting Started

Install the [@geops/react-ui](https://www.npmjs.com/package/@geops/react-ui) package:

```bash
yarn add ol @geops/react-ui
```

Your build pipeline needs to support ES6 modules and SASS.

Import the main scss file in your project:

```bash
import  '@geops/react-ui/themes/default/index.scss';
```

## More

- [Development](./DEVELOP.md)
- [Components](./src/components)
- [Themes](./src/themes)
npm package: @geops/redux-oidc
Description: A package for managing OpenID Connect authentication in redux apps
Author: Maximilian Mantz
Latest version: 3.1.2

# redux-oidc
[![Build Status](https://travis-ci.org/maxmantz/redux-oidc.svg?branch=master)](https://travis-ci.org/maxmantz/redux-oidc)

A package for managing OpenID-Connect authentication in ReactJS / Redux apps. It wraps the popular oidc-client library to redux actions and reducers.

### Description

This package handles [OpenID-Connect](http://openid.net/connect/) authentication in [redux](http://redux.js.org/) apps. It enables redux apps to authenticate with an external OIDC authentication provider and handles the actions of the OpenID [implicit flow](http://openid.net/specs/openid-connect-implicit-1_0.html).

It uses the oidc-client-js library to manage OpenID Connect functionality.

It contains the following parts:
- *CallbackComponent*: A react component processing the signin callback from the OpenID-Connect provider,
- *SignoutCallbackComponent*: A react component processing the signout callback from the OpenID-Connect provider,
- *reducers & actions*: reducers and actions to handle OIDC events,
- *helpers*: create helpers to manage the oidc-client-js library

### Installation
`npm install --save redux-oidc`

#### Peer dependencies
This package wraps [oidc-client-js](https://github.com/IdentityModel/oidc-client-js) to use with ReactJS / Redux apps.
Install oidc-client like this:

`npm install --save oidc-client`

In addition there is a peer dependency for [immutable.js](https://facebook.github.io/immutable-js/), if you want to use it.

#### babel-polyfill
You need the [babel-polyfill](https://babeljs.io/docs/usage/polyfill/) in your build configuration for this package to work.


### Version 3 released
I've decided to overhaul the API of this library. The main changes include:
- removed `childContext` from the `<OidcProvider />`, user manager now must be passed in as a prop,
- immutablejs is now an optional dependency and doesn't need to be installed for those not using it,
- dropped support for `shouldValidate` - the middleware now always validates the user,
- dropped support for `triggerAuthFlow` - this must now be initiated by a custom action (see example app),
- cleaner API all around

The example app is already updated to reflect these changes.

#### Documentation
You can find the docs for version 3 here:
- [API docs](docs/API.md),
- [actions](docs/Actions.md),
- [example app](https://github.com/maxmantz/redux-oidc-example)

#### Note for react-native users
This library doesn't fully support react-native apps. Please use [this](https://github.com/FormidableLabs/react-native-app-auth) library instead.

### Version 2

Check out the [wiki](https://github.com/maxmantz/redux-oidc/wiki) for further information for Version 2 (deprecated).

### Sample app
There is a sample application demonstrating the use of this package [here](https://github.com/maxmantz/redux-oidc-example).

### Tests
`npm run test`
npm package: @geops/tree-lib
Description: Library for tree recommendations.
Latest version: 2.0.0

# tree-lib

This library provides tree recommendations for different climate change scenarios.

## Data

Data for tree type projections is provided as a [CSV file](./data/projections.csv) and needs to be converted into JSON to be usable by the library.

1. Install NodeJS 10, Yarn and Docker Compose.
2. Install dependencies: `yarn install`
3. Make sure Docker can overwrite JSON files (ie. on Linux `chmod 777 data/*.json`)
4. Run transformation: `yarn run data:transform`

### NaiS

NaiS data is provided as CSV files and imported into the PostgreSQL database for further processing. New data needs to be converted to UTF-8 encoding with the following command: `iconv -f ISO-8859-1 -t UTF-8 [source].csv > [target].csv`

## Vector Tiles

Spatial data is downloaded from different sources and imported into the database. To add or update spatial data have a look into `data/spatial`. For the app we generate one vector tileset using the following commands:

1. Start database: `yarn run data:start`
2. Export spatial data to GeoJSON files (might take a long time): `yarn run data:spatial:export`
3. Transform GeoJSON files to single vector tileset: `yarn run data:spatial:tile`
4. Generate font glyphs for Mapbox GL (currently only NodeJS 10): `yarn run data:spatial:fonts`
5. Deploy tiles to a webserver or to Netlify (currently maintained by geOps): `yarn run data:spatial:deploy`

## Bugs

Please use the [GitHub issue tracker](https://github.com/geops/tree-app/issues) for all bugs and feature requests. Before creating a new issue, do a quick search to see if the problem has been reported already.

## Development

- Run `yarn run test:watch` to continuously test in development.
- Use [Angular Commit Message Conventions](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines) for commit messages.
npm package: @georacle/hardhat-georacle
Description: Hardhat Georacle plugin
Author: Georacle
Latest version: 0.0.6
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<p align="center">
  <img width="25%" height="25%" src="img.png" />
</p>

<h4 align="center">
  <a href="https://developer.georacle.io/docs/getting-started/intro">Getting Started</a> |
  <a href="https://developer.georacle.io/docs/overview/data-model">Overview</a> |
  <a href="https://developer.georacle.io/docs/tutorials/hello-world">Tutorials</a> |
  <a href="https://discord.gg/Fb53gG25yC">Chat</a> |
  <a href="https://developer.georacle.io/docs/api/area/">API Reference</a>
</h4>

[![npm](https://img.shields.io/npm/v/@georacle/hardhat-georacle.svg)](https://www.npmjs.com/package/@georacle/hardhat-georacle)
[![CircleCI](https://circleci.com/gh/georacleapi/hardhat-georacle/tree/master.svg?style=shield)](https://circleci.com/gh/georacleapi/hardhat-georacle/tree/master)
[![hardhat](https://hardhat.org/buidler-plugin-badge.svg?1)](https://hardhat.org)

<hr/>

# Georacle [Hardhat](https://hardhat.org) Plugin

## Installation

To install this plugin use:

```bash
npm install @georacle/hardhat-georacle --save
```

Import the plugin in your `hardhat.config.js`:

```js
require("@georacle/hardhat-georacle");
```

Or if you are using TypeScript, in your `hardhat.config.ts`:

```ts
import "@georacle/hardhat-georacle";
```

## Usage

You need to add the following Georacle config to your `hardhat.config.js` file:

```js
module.exports = {
  networks: {
    mainnet: { ... }
  },
  georacle: {
    // Your API key for Georacle
    // Obtain one at https://georacle.io/
    apiKey: "YOUR_GEORACLE_API_KEY"
  }
};
```

## Tasks

This plugin adds tasks to authorize and remove a contract under your Georacle account.

### Authorize a contract

```sh
npx hardhat authorize-contract --contract <contract address>
```

### Remove a contract

```sh
npx hardhat remove-contract --contract <contract address>
```

## Environment extensions

This plugin adds the corresponding functions to authorize and remove contracts within the Hardhat Runtime Environment.

### Authorize a contract

```sh
hre.authorizeContract(hre, contractAddress);
```

### Remove a contract

```sh
hre.removeContract(hre, contractAddress);
```
npm package: @georapbox/redux-call-api-middleware
Description: Redux middleware to perform api calls reducing action creators boilerplate
Author: George Raptis
Latest version: 1.2.0

[![npm version](https://img.shields.io/npm/v/@georapbox/redux-call-api-middleware.svg?style=flat-square)](https://www.npmjs.com/package/@georapbox/redux-call-api-middleware)
[![Travis](https://img.shields.io/travis/georapbox/redux-call-api-middleware/master.svg?style=flat-square)](https://travis-ci.org/georapbox/redux-call-api-middleware)
[![Codecov](https://img.shields.io/codecov/c/github/georapbox/redux-call-api-middleware/master.svg?style=flat-square)](https://codecov.io/gh/georapbox/redux-call-api-middleware)
[![Dependencies](https://david-dm.org/georapbox/redux-call-api-middleware.svg?style=flat-square)](https://david-dm.org/georapbox/redux-call-api-middleware)
[![devDependency Status](https://david-dm.org/georapbox/redux-call-api-middleware/dev-status.svg?style=flat-square)](https://david-dm.org/georapbox/redux-call-api-middleware#info=devDependencies)
[![npm license](https://img.shields.io/npm/l/@georapbox/redux-call-api-middleware.svg?style=flat-square)](https://www.npmjs.com/package/@georapbox/redux-call-api-middleware)

# redux-call-api-middleware

Redux middleware to perform api calls reducing action creators boilerplate

This is a slight modification of the example found in Redux [docs](https://redux.js.org/recipes/reducing-boilerplate).

## Install
```sh
$ npm install @georapbox/redux-call-api-middleware
```

## Usage

After passing it once to [applyMiddleware(...middlewares)](https://redux.js.org/api-reference/applymiddleware), you can write all your API-calling action creators the following way:

```js
export function loadPosts(userId) {
  return {
    // Types of actions to emit before and after (required)
    types: {
      requestType: 'LOAD_POSTS_REQUEST',
      successType: 'LOAD_POSTS_SUCCESS',
      failureType: 'LOAD_POSTS_FAILURE'
    },

    // Check the cache (optional); defaults to `() => true`
    shouldCallAPI: state => !state.posts[userId],

    // Perform the fetching (required)
    callAPI: (dispatch, state) => fetch(`http://myapi.com/users/${userId}/posts`),

    // Arguments to inject in begin/end actions (optional); defaults to `{}`
    payload: { userId },

    // Callback function to be executed after `requestType` is dispatched (optional); defaults to `() => {}`
    onRequestDispatched: (payload, dispatch, state) => {
      // Do something when `requestType` is dispatched
    },

    // Callback function to be executed after `successType` is dispatched (optional); defaults to `() => {}`
    onSuccessDispatched: (response, payload, dispatch, state) => {
      // Do something when `successType` is dispatched
    },

    // Callback function to be executed after `failureType` is dispatched (optional); defaults to `() => {}`
    onFailureDispatched: (error, payload, dispatch, state) => {
      // Do something when `failureType` is dispatched
    }
  }
}
```

## License

[The MIT License (MIT)](https://georapbox.mit-license.org/@2018)
npm package: @georapbox/redux-create-reducer
Description: Utility function to express Redux reducers as an object mapping from action types to action handlers.
Author: George Raptis
Latest version: 1.4.0

# redux-create-reducer

Utility function to express Redux reducers as an object mapping from action types to action handlers.

[![npm version](https://img.shields.io/npm/v/@georapbox/redux-create-reducer.svg?style=flat-square)](https://www.npmjs.com/package/@georapbox/redux-create-reducer)
[![Travis](https://img.shields.io/travis/georapbox/redux-create-reducer/master.svg?style=flat-square)](https://travis-ci.org/georapbox/redux-create-reducer.svg?branch=master)
[![Codecov](https://img.shields.io/codecov/c/github/georapbox/redux-create-reducer/master.svg?style=flat-square)](https://codecov.io/gh/georapbox/redux-create-reducer)
[![Dependencies](https://david-dm.org/georapbox/redux-create-reducer.svg?style=flat-square)](https://david-dm.org/georapbox/redux-create-reducer)
[![devDependency Status](https://david-dm.org/georapbox/redux-create-reducer/dev-status.svg?style=flat-square)](https://david-dm.org/georapbox/redux-create-reducer#info=devDependencies)
[![npm license](https://img.shields.io/npm/l/@georapbox/redux-create-reducer.svg?style=flat-square)](https://www.npmjs.com/package/@georapbox/redux-create-reducer)

## Install

```sh
$ npm install --save @georapbox/redux-create-reducer
```

## API

### createReducer(initialState, handlers [, options={}]) ⇒ <code>function</code>

**Returns**: <code>function</code> - A function that returns the next state tree, given the current state tree and the action to handle.

| Param | Type | Description |
| --- | --- | --- |
| initialState | <code>\*</code> | The initial state of the reducer. |
| handlers | <code>Object.&lt;String, Function&gt;</code> | A plain object mapping action types to action handlers. |
| [options={}]<sup>1</sup> | <code>Object</code> | A plain object for available options. |

### <sup>1</sup> Available options

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `throwForUndefinedHandlers` | `Boolean` | `false` | If set to `true` or any truthy value, it will throw `Error` if `undefined` action handler is encountered (development environment); otherwise it will just print a warning in console. It has no effect in production environment. |

## Usage

```js
import createReducer from '@georapbox/redux-create-reducer';

const actionTypes = {
  ADD_TODO: 'ADD_TODO',
  TOGGLE_TODO: 'TOGGLE_TODO'
};

const initialState = [];

const handlers = {
  [actionTypes.ADD_TODO]: function addTodoHandler(state, action) {
    return [
      ...state,
      {
        id: action.id,
        text: action.text,
        completed: false
      }
    ];
  },
  [actionTypes.TOGGLE_TODO]: function toggleTodoHandler(state, ation) {
    return state.map(todo =>
      todo.id === action.id
        ? {...todo, completed: !todo.completed}
        : todo
    );
  }
};

export const todosReducer = createReducer(initialState, handlers, {
  throwForUndefinedHandlers: true
});
```

## License

[The MIT License (MIT)](https://georapbox.mit-license.org/@2018)
npm package: @geordi7/fint
Description: Strongly typed tools for typescript
Author: Geordi Filiotis
Latest version: 0.1.11

# fint

A library of strongly typed tools for typescript

```bash
npm install -s '@Geordi7/fint';
```

# Property Proxies

Create proxies for functions over the properties of a virtual object.

```typescript
import {readProxy} from '@Geordi7/fint';

const prefixy = readProxy((s1: string) => (s2: string) => s1 + s2);
const postfixy = readProxy((s1: string) => (s2: string) => s2 + s1);

const example1 = prefixy.abc('xyz')     // 'abcxyz'
const example2 = postfixy.abc('xyz')    // 'xyzabc'
const example3 = prefixy.hello(postfixy.world(' ')) // 'hello world'
```

or an example with html tags

```typescript
const tag = readProxy((tagname: string) => (props: Record<string, string>, ...content: string[]): string =>
    content.length ?
        `<${tagname} ${formatProps(props)}>${content.join('\n')}</${tagname}>` :
        `<${tagname} />`);

const formatProps = (props: Record<string,string>) =>
    rec.e(props).map(([k,v]) => ` ${k}="${v}"`).join('');

const {html, head, body, title, div, p} = tag;

const doc = html({},
    head({}, title({}, 'A clever example of using a readProxy to create html tag functions')),
    body({},
        div({class: 'centered-x centered-y'},
            p({}, 'paragraph 1'),
            p({}, 'paragraph 2')
        )
    )
);
```

# Data Transformation tools

easily create data transform pipelines for sync (`pipe`/`into`) or async (`bridge`/`over`) code.

point-free wrappers for common HOFs in:
* `arr` for arrays
* `rec` for records
* `iter` for iterators
* `maybe` for unions with null or undefined

and some helpers in
* `str` for strings
* `set` for sets
* `obj` for general objects

```typescript
import {rec, arr, flow} from '@Geordi7/fint';

data = [1,2,3,4,5];
labels = ['a', 'b', 'c', 'd', 'e'];

const x = flow([labels, data],      // [string[], number[]]
    arr.zip,                        // [string, number][]
    rec.from,                       // Record<string, number>
    rec.map(n => n > 2),            // Record<string, boolean>
    rec.entries,                    // [string, boolean][]
    arr.order(([k]) => k)           // [string, boolean][] (sorted on the strings)
);
```

```typescript
import {over} from '@Geordi7/fint';

async function delay<T>(miliseconds: number,v: T): Promise<T> {
    await new Promise(r => setTimeout(r, miliseconds));
    return v;
}

(async () => {
    await over([1,2,3,4,5],
        n => delay(1000, n)),

})()
```


# Other

[a study on numerics](https://gist.github.com/Geordi7/6348f95c11a0461b5cbf0823c719259c)
npm package: @geordiefoo/bowlingscorecalculator
Description: a bowling score calculator
Author: Lee Gordon and Neil McLaughlin
Latest version: 1.0.1

﻿![CI](https://github.com/LeeGordon83/BowlingKataPair/actions/workflows/ci.yml/badge.svg)
[![NPM Version](https://badge.fury.io/js/%40geordiefoo%2Fbowlingscorecalculator.svg)](https://badge.fury.io/js/%40geordiefoo%2Fbowlingscorecalculator)
 
 # BowlingKataPair
npm package: @george-aidonidis/s-cli
Description: [![CircleCI](https://circleci.com/gh/george-aidonidis/s-cli/tree/master.svg?style=svg)](https://circleci.com/gh/george-aidonidis/s-cli/tree/master) [![codecov](https://codecov.io/gh/george-aidonidis/s-cli/badge.svg?branch=master)](https://codecov.io/gh/ge
Latest version: 1.2.1

# s-cli

[![CircleCI](https://circleci.com/gh/george-aidonidis/s-cli/tree/master.svg?style=svg)](https://circleci.com/gh/george-aidonidis/s-cli/tree/master) [![codecov](https://codecov.io/gh/george-aidonidis/s-cli/badge.svg?branch=master)](https://codecov.io/gh/george-aidonidis/s-cli?branch=master) [![NPM version](https://img.shields.io/npm/v/@george-aidonidis/s-cli.svg?style=flat)](https://www.npmjs.com/package/@george-aidonidis/s-cli)

Super cli 🦸

A node js tool to help you parse 💩 from bash/sh

## Usage

After installing the module:

```sh
yarn global add @george-aidonidis/s-cli
# or with npm
npm install -g @george-aidonidis/s-cli
```

You can use like this:

```sh
s-cli # outputs help instructions

s-cli -b # outputs the remaining battery by sending a notification
```

## Battery module

Parses info from acpi and sends them a notification through `notify-send` command

![gif](https://i.imgur.com/gJhRoGo.gif)

- Dependencies
  - acpi
  - acpitool

## Contributing

1. Fork it (<https://github.com/George-Aidonidis/s-cli/fork>)
2. Create your feature branch (git checkout -b feature/fooBar)
3. Commit your changes (git commit -am 'Add some fooBar')
4. Push to the branch (git push origin feature/fooBar)
5. Create a new Pull Request

## License

[MIT](./license) ©
npm package: @george-gillams/components
Description: Reusable transpiled React components
Author: George Gillams
Latest version: 30.2.0

## components

![Build status](https://github.com/georgegillams/components/workflows/CI/badge.svg)
![Dependencies status](https://img.shields.io/david/georgegillams/components)
![Dependencies status](https://img.shields.io/librariesio/release/npm/components)

A set of reusable React components, that are published as plain JS and CSS for maximum compatibility.

To use in a Next.js app, follow this [guide for using styled components in next.js](https://www.simplenextjs.com/posts/next-styled-components).

## Developing

To develop components within Storybook, run `npm start`.

If components have changed, snapshot tests may need to be updated. Backstop js visual regression tests may also need to be updated.

To update jest snapshots:

```
npx jest -u
```

To update backstopJS snapshots:

Make sure docker is running. Then run these three commands:

```
/bin/bash ./scripts/docker/snapshot-test/prepare.sh
/bin/bash ./scripts/docker/snapshot-test/run-tests.sh --update
/bin/bash ./scripts/docker/snapshot-test/clean-up.sh'
```

- The first will setup the docker image and container. (If they already exist this will be super fast.)
- The second will copy the project over, setup dependencies, build and run, and take screenshots. Failed screenshots will be copied back to your machine.
- The third simply stops the docker container.

Any changes resulting from these commands should be verified and checked in.

## Publishing

Use one of the following to release. These update the version, commit and tag the change, and publish transpiled code:

- `npm run release:major` for breaking changes
- `npm run release:minor` for additions
- `npm run release:patch` for fixes

## Documentation

[General docs can be found here](https://github.com/georgegillams/components/tree/main/docs). Docs for each component should be available soon(ish).

That's it!

## Contributing

Want to add or change something? Just fork me and open a PR.
npm package: @georgealways/js
Description: @georgealways/js ================
Author: George Michael Brower
Latest version: 1.1.0

@georgealways/js
================

A collection of JavaScript utility classes and functions that I've been porting around for years. Includes basic math functions, a seeded random number generator, perlin and simplex noise implementations in up to three dimensions, URL query parameter parsing, and a number of other utilities that bear no relationship to one another.

A lot of this library was an effort to teach myself ES6 syntax and is subject to breaking changes. I wouldn't recommend using it.
npm package: @georgebashi/pi-retry
Description: pi extension: auto-retry transient streaming errors + /retry command
Author: George Bashi
Latest version: 0.1.1

# pi-retry

A [pi](https://github.com/badlogic/pi) extension that retries failed LLM responses — automatically for transient streaming errors, manually via `/retry` or just pressing Enter.

## Features

### Auto-retry transient errors

When an LLM response fails with a transient streaming error (e.g. `"aborted"` from an upstream proxy/gateway), the extension automatically retries with exponential backoff:

- **Delays:** 2s → 4s → 8s
- **Max attempts:** 3
- **No history pollution:** The failed response is invisible to the model (pi's `transform-messages` strips aborted/errored assistant messages). The retry trigger uses `display: false` so it's hidden in the TUI.

Only errors *not* already handled by pi's built-in retry are retried (overloaded, rate limit, 429, 5xx, etc. are left to pi). User-initiated aborts (ESC) are never auto-retried — use `/retry` or Enter for those.

### Manual retry: `/retry`

Type `/retry` after any error or abort to re-invoke the LLM. The model starts fresh from the last user message — it never sees the failed partial response.

### Manual retry: press Enter

After an error or user-initiated abort (ESC), just press Enter on an empty editor to retry. This is the fastest path for the common "oops, I shouldn't have cancelled" scenario.

This works by intercepting raw terminal input via pi's `onTerminalInput` hook. The Enter keypress is consumed only when all of these are true:

- The editor is empty
- The editor has focus (no modal/selector/overlay is open)
- The agent is idle
- The last response was an error or abort

Otherwise Enter behaves normally — including when a model selector, confirm dialog, session picker, or any other modal UI is displayed.

## Installation

### As a pi package (recommended)

```bash
pi install npm:@georgebashi/pi-retry
```

Or from a local checkout:

```bash
pi install /path/to/pi-retry
```

### For development/testing

```bash
pi -e /path/to/pi-retry/index.ts
```

## Logging

Every retry attempt is logged to `~/.pi/logs/pi-retry.jsonl` with:

- Provider, model, model ID, API type, thinking level
- Stop reason and error message
- Attempt number and delay
- Working directory and session ID

Event types: `retry`, `retry_succeeded`, `retry_exhausted`, `manual_retry`.

## How it works

1. **`agent_end` event** — Checks if the last assistant message has a retryable error. If so, waits with backoff and sends a hidden `sendMessage` with `triggerTurn: true`.

2. **`context` event** — Strips the hidden retry trigger message before the LLM sees it. The aborted assistant message is already stripped by pi's `transform-messages`.

3. **`onTerminalInput` hook** — Intercepts Enter on empty editor to trigger manual retry. Consumes the keypress so it doesn't reach the editor.

4. **`/retry` command** — Explicit retry for when you want to be deliberate about it.

5. **`turn_end` event** — Resets the retry counter when a successful response comes through.
npm package: @georgeblackbird/glass-ui
Description: A Glassmorphism UI component library for Vue 3
Author: George Blackbird
Latest version: 1.0.1

# glass-ui
🔍 Библиотека Vue 3 компонентов для создания завораживающих интерфейсов в стиле Glassmorphism.

## Установка
npm install glass-ui

## Использование
import { GButton } from 'glass-ui'
import 'glass-ui/styles'
npm package: @georgecrawfordft/wdio-allure-reporter
Description: A WebdriverIO plugin. Report results in Allure format.
Author: Christian Bromann
Latest version: 0.0.3-2

# wdio-allure-reporter

> A WebdriverIO reporter plugin to create [Allure Test Reports](http://allure.qatools.ru/).

## Installation

The easiest way is to keep `wdio-allure-reporter` as a devDependency in your `package.json`.

```json
{
  "devDependencies": {
    "wdio-allure-reporter": "~0.0.2"
  }
}
```

You can simple do it by:

```bash
npm install wdio-allure-reporter --save-dev
```

Instructions on how to install `WebdriverIO` can be found [here](http://webdriver.io/guide/getstarted/install.html).

## Configuration
Configure the output directory in your wdio.conf.js file:

```js
exports.config = {
    // ...
    reporters: ['allure'],
    reporterOptions: {
		allure: {
			outputDir: 'allure-results'
		}
	},
	// ...
}
```

`outputDir` defaults to `./allure-results`. After a test run is complete, you will find that this directory has been populated with an `.xml` file for each spec, plus a number of `.txt` and `.png` files and other attachments.

## Displaying the report
The results can be consumed by any of the [reporting tools](http://wiki.qatools.ru/display/AL/Reporting) offered by Allure. For example:

### Jenkins
Install the [Allure Jenkins plugin](http://wiki.qatools.ru/display/AL/Allure+Jenkins+Plugin), and configure it to read from the correct directory:
![screenshot 2016-02-05 10.10.30.png](./docs/images/jenkins-config.png)

Jenkins will then offer a link to the results from the build status page:
![screenshot 2016-02-05 10.12.08.png](./docs/images/jenkins-results.png)

### Command-line
Install the [Allure command-line tool](https://www.npmjs.com/package/allure-commandline), and process the results directory:
```bash
allure generate [allure_output_dir] && allure report open
```
This will generate a report (by default in `./allure-report`), and open it in your browser:
![screenshot 2016-02-05 10.15.57.png](./docs/images/browser.png)

----

For more information on WebdriverIO see the [homepage](http://webdriver.io).
npm package: @georgecrawfordft/wdio-dot-reporter
Description: A WebdriverIO plugin. Report results in dot format.
Author: Christian Bromann
Latest version: 0.0.5-3

WDIO Dot reporter [![Build Status](https://travis-ci.org/webdriverio/wdio-dot-reporter.svg?branch=master)](https://travis-ci.org/webdriverio/wdio-dot-reporter) [![Code Climate](https://codeclimate.com/github/webdriverio/wdio-dot-reporter/badges/gpa.svg)](https://codeclimate.com/github/webdriverio/wdio-dot-reporter) [![Test Coverage](https://codeclimate.com/github/webdriverio/wdio-dot-reporter/badges/coverage.svg?)](https://codeclimate.com/github/webdriverio/wdio-dot-reporter/coverage)
==========

> A WebdriverIO plugin to report in dot style.

![Dot Reporter](http://webdriver.io/images/dot.png "Dot Reporter")

## Installation

The easiest way is to keep `wdio-dot-reporter` as a devDependency in your `package.json`.

```json
{
  "devDependencies": {
    "wdio-dot-reporter": "~0.4.x"
  }
}
```

You can simple do it by:

```bash
npm install wdio-dot-reporter --save-dev
```

Instructions on how to install `WebdriverIO` can be found [here.](http://webdriver.io/guide/getstarted/install.html)

## Configuration

Following code shows the default wdio test runner configuration. Just add `'dot'` as reporter
to the array.

```js
// wdio.conf.js
module.exports = {
  // ...
  reporter: ['dot'],
  // ...
};
```

----

For more information on WebdriverIO see the [homepage](http://webdriver.io).
npm package: @georgecrawfordft/wdio-mocha-framework
Description: A WebdriverIO plugin. Adapter for Mocha testing framework.
Author: Christian Bromann
Latest version: 0.2.12-1

WDIO Mocha [![Build Status](https://travis-ci.org/webdriverio/wdio-mocha-framework.svg?branch=master)](https://travis-ci.org/webdriverio/wdio-mocha-framework) [![Code Climate](https://codeclimate.com/github/webdriverio/wdio-mocha-framework/badges/gpa.svg)](https://codeclimate.com/github/webdriverio/wdio-mocha-framework) [![Test Coverage](https://codeclimate.com/github/webdriverio/wdio-mocha-framework/badges/coverage.svg)](https://codeclimate.com/github/webdriverio/wdio-mocha-framework/coverage)
==========

> A WebdriverIO plugin. Adapter for Mocha testing framework.

## Installation

The easiest way is to keep `wdio-mocha-framework` as a devDependency in your `package.json`.

```json
{
  "devDependencies": {
    "wdio-mocha-framework": "~0.1"
  }
}
```

You can simple do it by:

```bash
npm install wdio-mocha-framework --save-dev
```

Instructions on how to install `WebdriverIO` can be found [here.](http://webdriver.io/guide/getstarted/install.html)

## Configuration

Following code shows the default wdio test runner configuration...

```js
// wdio.conf.js
module.exports = {
  // ...
  framework: 'mocha'
  mochaOpts: {
    ui: 'bdd'
  }
  // ...
};
```

## `mochaOpts` Options

Options will be passed to the Mocha instance. See the full list of Mocha options at [http://mochajs.org/](http://mochajs.org/)

----

For more information on WebdriverIO see the [homepage](http://webdriver.io).
npm package: @georgecrawfordft/wdio-sync
Description: A WebdriverIO plugin. Helper module to run WebdriverIO commands synchronously.
Author: Christian Bromann
Latest version: 0.4.8-0

wdio-sync [![Build Status](https://travis-ci.org/webdriverio/wdio-sync.svg?branch=master)](https://travis-ci.org/webdriverio/wdio-sync)
=========

A WebdriverIO plugin. Helper module to run WebdriverIO commands synchronously.
npm package: @georgefaulkner1/js-type-safety
Description: ES6 variable type safety
Author: George Faulkner
Latest version: 1.0.0

# js-types

js-types is a ES6 JavaScript library to implement types to a variable enabling type safety.
Simple library that makes types easy.

## Installation

Use the package manager npm to install js-types.

```bash
npm i @georgefaulkner1/js-type-safety
```
## Usage

```javascript
import Types from "@georgefaulkner1/js-type-safety";

// create type specified variable. Supported types: String, Number, Boolean, Array, Object
let name = new Types(String, "Jeff");

// returns "Jeff"
console.log(name.value);

// change the variable value
name.value = "Bob";

//Includes type safety. So if you attempt to change name.value to anything other than the defined type it will throw an error.

```

## Contributing

Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change.

## License
MIT