open-index/open-npm huggingface dataset:
npm package: @immoweb/gherkindoc
Description: Builds static HTML documentation from Gherkin feature files and Cucumber Steps files (any language)
Author: Josep Mateu Clemente
Latest version: 0.6.0

GherkinDoc with Step Detection
==========

A processor that transforms Cucumber (Gherkin) feature files into static HTML documentation site. Indicates which steps have an implementation
and links them to their github or bitbucket repository. Additionally creates two new tags: 'Implemented' and 'Not Implemented' to list the
steps that are complete.

This project is a fork from the [GherkinDoc](https://github.com/AlexandrosD/gherkindoc) project, started by @alexandrosd.
It contains additional code developed by @alexkrechik on the [VSCucumberAutoComplete](https://github.com/alexkrechik/VSCucumberAutoComplete) project.


Usage:
```javascript
var gherkindoc = require('gherkindoc');
gherkindoc.generate(featuresDirectory, outputDirectory [, options]);
```
This version doesn't copy the entire featuresDirectory over to outputDirectory. Instead, creates only .html files in the outputDirectory.


The following options are available (defaults are shown):
```javascript
{
    theme: 'cosmo', // The [bootswatch](http://bootswatch.com/) theme to use
    renderScenaria: true // whether to render scenario bodies or only feature descriptions,
    steps: [] // A list of paths where the steps are stored
}
```

If the parameter steps is not given, then all the steps and features will be marked as not implemented.

Original Author: Alexandros Dallas <dallas.alexandros@gmail.com>

Fork Author: Josep Mateu Clemente <jmateu.clemente@gmail.com>
npm package: @immoweb/protractor
Description: Webdriver E2E test wrapper for Angular. - Immoweb fork
Author: Josep Mateu Clemente
Latest version: 5.2.0-6

Protractor [![Build Status](https://travis-ci.org/angular/protractor.svg?branch=master)](https://travis-ci.org/angular/protractor) [![CircleCI Status](https://circleci.com/gh/angular/protractor.svg?style=shield)](https://circleci.com/gh/angular/protractor) [![Join the chat at https://gitter.im/angular/protractor](https://badges.gitter.im/angular/protractor.svg)](https://gitter.im/angular/protractor)
==========

[Protractor](http://angular.github.io/protractor) is an end-to-end test framework for [Angular](http://angular.io/) and [AngularJS](http://angularjs.org) applications. Protractor is a [Node.js](http://nodejs.org/) program built on top of [WebDriverJS](https://github.com/SeleniumHQ/selenium/wiki/WebDriverJs). Protractor runs tests against your application running in a real browser, interacting with it as a user would.

Compatibility
-------------

Protractor 5 is compatible with nodejs v6 and newer.

Protractor works with AngularJS versions greater than 1.0.6/1.1.4, and is compatible with Angular applications. Note that for Angular apps, the `binding` and `model` locators are not supported. We recommend using `by.css`.


Getting Started
---------------
See the [Protractor Website](http://www.protractortest.org) for most documentation.

To get set up and running quickly:
 - Work through the [Tutorial](http://www.protractortest.org/#/tutorial)
 - See the [API](http://www.protractortest.org/#/api)

Once you are familiar with the tutorial, you’re ready to move on. To modify your environment, see the Protractor Setup docs. To start writing tests, see the Protractor Tests docs.

To better understand how Protractor works with the Selenium WebDriver and Selenium Server see the reference materials.

This fork aims to add the following features to Protractor:

- Native applications support
- Multiple browser (concurrent) support. Start the test in one browser and end it in another.
- Caching support (WIP)

Getting Help
------------

Check the [Protractor FAQ](https://github.com/angular/protractor/blob/master/docs/faq.md) and read through the [Top 20 questions on StackOverflow](http://stackoverflow.com/questions/tagged/protractor?sort=votes&pageSize=20).

Please ask usage and debugging questions on [StackOverflow](http://stackoverflow.com/questions/tagged/protractor) (use the ["protractor"](http://stackoverflow.com/questions/ask?tags=protractor) tag), the [Gitter](https://gitter.im/angular/protractor) chat room, or in the [Angular discussion group](https://groups.google.com/forum/?fromgroups#!forum/angular). (Please do not ask support questions here on Github.)


For Contributors
----------------
See DEVELOPER.md
npm package: @immoweb/routes
Description: Cross platform network utility to fetch the routes from a system. Based off the 'network' module developed by Tomas Pollak.
Author: Josep Mateu Clemente
Latest version: 0.6.0

Route Utilies for Node.js
===========================

# Usage

## Get routes

This package has only one method to retrieve all the routes. You can invoke it as follows:

``` ts
// As provided by Windows, other OSes return a smaller set
interface Route {
    Age: number;
    Caption: string;
    Description: string;
    Destination: string;
    Config: any;
    Information: string;
    InstallDate: string;
    InterfaceIndex: number;
    Mask: string;
    Metric1: number;
    Metric2: number;
    Metric3: number;
    Metric4: number;
    Metric5: number;
    Name: string;
    NextHop: string; // Gateway
    Protocol: number;
    Status: string;
    Type: number;
}

network.get_routes((err, result: Route[]) => { }
```


# Copyright

Forked & improved by Josep Mateu Clemente.
Original module written by Tomás Pollak (https://github.com/tomas/network).

# License

MIT.
npm package: @immoweb/webdriver-manager
Description: A selenium server and browser driver manager for your end to end tests.
Author: Craig Nishina
Latest version: 12.0.6-2


Webdriver Manager [![CircleCI Status](https://circleci.com/gh/angular/webdriver-manager.svg?style=shield)](https://circleci.com/gh/angular/webdriver-manager) [![Join the chat at https://gitter.im/angular/webdriver-manager](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/angular/webdriver-manager?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
=================

A selenium server and browser driver manager for your end to end tests. This is the same tool as `webdriver-manager` from the [Protractor](https://github.com/angular/protractor) repository.

**Note:** Version 9 and lower please reference [pose/webdriver-manager](https://github.com/pose/webdriver-manager). If there are features that existed in version 9 and lower, please open up an issue with the missing feature or a create a pull request.

Getting Started
---------------

```
npm install -g webdriver-manager
```

Setting up a Selenium Server
----------------------------

Prior to starting the selenium server, download the selenium server jar and driver binaries. By default it will download the selenium server jar and chromedriver binary.

```
webdriver-manager update
```

Starting the Selenium Server
----------------------------

By default, the selenium server will run on `http://localhost:4444/wd/hub`.


```
webdriver-manager start
```

Other useful commands
---------------------

View different versions of server and driver files:

```
webdriver-manager status
```

Clear out the server and driver files. If `webdriver-manager start` does not work, try to clear out the saved files.

```
webdriver-manager clean
```

Running / stopping server in background process (stopping is not yet supported on standalone server 3.x.x):

```
webdriver-manager start --detach
webdriver-manager shutdown
```

Help commands
-------------

Wedriver-manager has a main help option: `webdriver-manager help`. There are also other built in help menus for each of the commands. So for example, if you would like to look up all the flag options you can set in `update`, you could run `webdriver-manager update help`.

Here are a list of all the commands with help:

```
webdriver-manager update help
webdriver-manager start help
webdriver-manager clean help
webdriver-manager status help
```

Other topics:
--------------

- [mobile browser support](docs/mobile.md)
- [protractor support](docs/protractor.md)
- [set specific versions](docs/versions.md)
npm package: @immowelt/babel-preset-immowelt
Description: Default shareable config of babel for projects at Immowelt.
Author: Immonet dev team
Latest version: 1.0.4

# @immowelt/babel-preset-immowelt

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Greenkeeper badge](https://badges.greenkeeper.io/ImmoweltGroup/babel-preset-immowelt.svg)](https://greenkeeper.io/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/babel-preset-immowelt.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/babel-preset-immowelt)
[![Dependency Status](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt.svg)](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt)
[![devDependency Status](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt/dev-status.svg)](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt#info=devDependencies&view=table)

This package is the default Babel preset which currently only consists of the `flow-strip-types` transform.

## Usage
If you want to use the `@immowelt/babel-preset-immowelt` preset, you can install it by executing:
```js
npm i -S @immowelt/babel-preset-immowelt
```

Then create a file named `.babelrc` with following contents in the root folder of your project:

```js
{
  "presets": [
    "@immowelt/babel-preset-immowelt"
  ]
}
```

## Contributing
Please make sure that you adhere to our code style, you can validate your changes / PR by executing `npm run lint`.
Visit the [eslint-config-immowelt-react](https://github.com/ImmoweltGroup/eslint-config-immowelt-react) package for more information.

## License
See the `LICENSE` file at the root of the repository.
npm package: @immowelt/babel-preset-immowelt-node
Description: Default shareable config of babel for projects at Immowelt.
Author: Immonet dev team
Latest version: 1.1.1

# @immowelt/babel-preset-immowelt-node

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/babel-preset-immowelt-node.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/babel-preset-immowelt-node)
[![Dependency Status](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt-node.svg)](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt-node)
[![devDependency Status](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt-node/dev-status.svg)](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt-node#info=devDependencies&view=table)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

This package is the default Babel preset which we use in combination of Node v8.

## Usage

If you want to use the `@immowelt/babel-preset-immowelt-node` preset, you can install it by executing:

```sh
yarn add @immowelt/babel-preset-immowelt-node --dev
```

Then create a file named `.babelrc` with following contents in the root folder of your project:

```js
{
  "presets": [
    "@immowelt/babel-preset-immowelt-node"
  ]
}
```

## Contributing

See the `CONTRIBUTING.md` file at the root of the repository.

## Licensing

See the `LICENSE` file at the root of the repository.
npm package: @immowelt/babel-preset-immowelt-react
Description: The babel preset for an react environment
Author: Immonet dev team
Latest version: 1.2.4

# @immowelt/babel-preset-immowelt-react

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/babel-preset-immowelt-react.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/babel-preset-immowelt-react)
[![Dependency Status](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt-react.svg)](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt-react)
[![devDependency Status](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt-react/dev-status.svg)](https://david-dm.org/ImmoweltGroup/babel-preset-immowelt-react#info=devDependencies&view=table)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

This package includes the Babel preset used by [Create React App](https://github.com/facebookincubator/create-react-app) as well as other babel plugins or presets we might add to our transpilation stack in the future.

## Usage

If you want to use the `@immowelt/babel-preset-immowelt-react` preset, you can install it by executing:

```sh
yarn add @immowelt/babel-preset-immowelt-react --dev
```

Then create a file named `.babelrc` with following contents in the root folder of your project:

```js
{
  "presets": [
    "@immowelt/babel-preset-immowelt-react"
  ]
}
```

## Contributing
See the `CONTRIBUTING.md` file at the root of the repository.

## Licensing
See the `LICENSE` file at the root of the repository.
npm package: @immowelt/browserslist-config
Description: Config to share target browsers between different immoweltGroup front-ends
Author: Immonet Dev Team
Latest version: 4.0.3

# @immowelt/browserslist-config

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://github.com/ImmoweltGroup/browserslist-config/actions/workflows/release.yml/badge.svg)](https://github.com/ImmoweltGroup/browserslist-config/actions?query=branch%3Amaster)
[![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)

Config to share target browsers between different [ImmoweltGroup](https://github.com/ImmoweltGroup) front-ends.

## Usage

Add it to your dependencies.

```bash
yarn add @immowelt/browserslist-config --dev
```

Use your [Browserslist](https://github.com/browserslist/browserslist#shareable-configs) settings in your `package.json`.

```json
"browserslist": [
  "extends @immowelt/browserslist-config"
]
```

## Commits

Please use one of the following prefixes in your commit message:

- `BUGFIX:` or `PATCH:` for small fixes
- `FEATURE:` for minor changes and
- `BREAKING:` for breaking changes

## License

See the `LICENSE` file at the root of the repository.
npm package: @immowelt/docker-publish
Description: A simple CLI to build and publish a repository with an Dockerfile based on GitHub repository release tags.
Author: Immonet dev team
Latest version: 1.3.1

# @immowelt/docker-publish

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Greenkeeper badge](https://badges.greenkeeper.io/ImmoweltGroup/docker-publish.svg)](https://greenkeeper.io/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/docker-publish.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/docker-publish)
[![Dependency Status](https://david-dm.org/ImmoweltGroup/docker-publish.svg)](https://david-dm.org/ImmoweltGroup/docker-publish)
[![devDependency Status](https://david-dm.org/ImmoweltGroup/docker-publish/dev-status.svg)](https://david-dm.org/ImmoweltGroup/docker-publish#info=devDependencies&view=table)

> A simple CLI to build and publish a repository with an Dockerfile based on semver versions or GitHub repository release tags.

## Installing
```sh
npm i -D @immowelt/docker-publish
```

## Usage and examples
```
  Usage: docker-publish [options]

  Options:

    --tags   <List<string> | url> The Github tags API URL or the raw list of tags to iterate over.
    --arg    <string>             The build-arg key to use when forwarding the current iterated tag.
    --image  <string>             The image name for the docker images to create.
    --latest <string>             An optional 'latest' tag to specify, defaults to 'latest'
    --strip  <string>             An optional string which will be removed from the docker tags to generate. E.g. useful if your repo is named 'foo/java-alpine' and you don't want to repeat the '-alpine' keyword in tags.
```

#### Example usage
```sh
docker-publish --tags=8.2.0-alpine,8.4.0-alpine --image=immowelt/node --arg=NODE_VERSION --latest
```

This command would build and push a docker image with the `Dockerfile` located in the processes `cwd` for each valid semver release tag of the official NodeJS repository. During the build we forward an `--build-arg`, e.g. `NODE_VERSION` with the current iterated version. After the build is done the image gets tagged e.g. `immowelt/node:8.3.0`.

After the iteration of releases is done, we also re-tag the `latest` tag of docker to make sure that the `latest` tag does in fact point to the last released version.

## Contributing
Please make sure that you adhere to our code style, you can validate your changes / PR by executing `npm run lint`.
Visit the [eslint-config-immowelt-react](https://github.com/ImmoweltGroup/eslint-config-immowelt-react) package for more information.

## Licensing
See the LICENSE file at the root of the repository.
npm package: @immowelt/eslint-config-immowelt-base
Description: ESLint shareable base config
Author: Kevin Ruff
Latest version: 3.3.0

# @immowelt/eslint-config-immowelt-base

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://github.com/ImmoweltGroup/eslint-config-immowelt-base/actions/workflows/release.yml/badge.svg)](https://github.com/ImmoweltGroup/eslint-config-immowelt-base/actions?query=branch%3Amaster)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

This package provides base configurations used by [ImmoweltGroup](https://github.com/ImmoweltGroup).

## Usage

Add it to your dependencies.

```bash
yarn add @immowelt/eslint-config-immowelt-base --dev
```

Use it in your ESLint settings.

```json
{
  "extends": "@immowelt/eslint-config-immowelt-base"
}
```

## Linting Bundle

* [eslint-config-immowelt-base](https://github.com/ImmoweltGroup/eslint-config-immowelt-base)
* [eslint-config-immowelt-react](https://github.com/ImmoweltGroup/eslint-config-immowelt-react)
* [eslint-config-immowelt-vuejs](https://github.com/ImmoweltGroup/eslint-config-immowelt-vuejs)
* [stylelint-config-immowelt](https://github.com/ImmoweltGroup/stylelint-config-immowelt)

## License

See the `LICENSE` file at the root of the repository.
npm package: @immowelt/eslint-config-immowelt-es5
Description: JavaScript Standard Style For Immowelt ES5 Projects - ESLint Shareable Config
Author: Immonet dev team
Latest version: 1.1.2

# @immowelt/eslint-config-immowelt-es5

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/eslint-config-immowelt-es5.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/eslint-config-immowelt-es5)
[![dependencies Status](https://david-dm.org/ImmoweltGroup/eslint-config-immowelt-es5/status.svg)](https://david-dm.org/ImmoweltGroup/eslint-config-immowelt-es5)
[![devDependencies Status](https://david-dm.org/ImmoweltGroup/eslint-config-immowelt-es5/dev-status.svg)](https://david-dm.org/ImmoweltGroup/eslint-config-immowelt-es5?type=dev)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

This package servers as the basis for the JavaScript standards of the Immowelt GmbH.

It sets a bunch of rules and warnings for best practices on how to write a maintainable JavaScript code base, as well as hints on how to write a good performing es5 application.

## Usage

If you want to use the `@immowelt/eslint-config-immowelt-es5` config, you can install it by executing:

```bash
npm i -D @immowelt/eslint-config-immowelt-es5
```

Then create a file named `.eslintrc` with following contents in the root folder of your project:

```json
{
  "extends": "@immowelt/eslint-config-immowelt-es5"
}
```

# Commit guidelines and semantic release

Our repositories make great use of [semantic-release](https://semantic-release.gitbooks.io/semantic-release/content/#how-does-it-work). Please follow the release guidelines. 

## Licensing
See the `LICENSE` file at the root of the repository.
npm package: @immowelt/eslint-config-immowelt-es6
Description: JavaScript Standard Style For Immowelt ES6 Projects - ESLint Shareable Config
Author: Immonet dev team
Latest version: 1.0.0

# @immowelt/eslint-config-immowelt-es6

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/eslint-config-immowelt-es6.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/eslint-config-immowelt-es6)
[![dependencies Status](https://david-dm.org/ImmoweltGroup/eslint-config-immowelt-es6/status.svg)](https://david-dm.org/ImmoweltGroup/eslint-config-immowelt-es6)
[![devDependencies Status](https://david-dm.org/ImmoweltGroup/eslint-config-immowelt-es6/dev-status.svg)](https://david-dm.org/ImmoweltGroup/eslint-config-immowelt-es6?type=dev)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

This package servers as the basis for the JavaScript standards of the Immowelt GmbH.

It sets a bunch of rules and warnings for best practices on how to write a maintainable JavaScript code base, as well as hints on how to write a good performing es6 application.

## Usage

If you want to use the `@immowelt/eslint-config-immowelt-es6` config, you can install it by executing:

```bash
npm i -D @immowelt/eslint-config-immowelt-es6
```

Then create a file named `.eslintrc` with following contents in the root folder of your project:

```json
{
  "extends": "@immowelt/eslint-config-immowelt-es6"
}
```

# Commit guidelines and semantic release

Our repositories make great use of [semantic-release](https://semantic-release.gitbooks.io/semantic-release/content/#how-does-it-work). Please follow the release guidelines. 

## Licensing
See the `LICENSE` file at the root of the repository.
npm package: @immowelt/eslint-config-immowelt-react
Description: ESLint shareable react config
Author: Kevin Ruff
Latest version: 4.0.0

# @immowelt/eslint-config-immowelt-react

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/eslint-config-immowelt-react.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/eslint-config-immowelt-react)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

This package provides base ([eslint-config-immowelt-base](https://github.com/ImmoweltGroup/eslint-config-immowelt-base)) and react (this package) configurations used by [ImmoweltGroup](https://github.com/ImmoweltGroup).

## Usage

Add it to your dependencies.

```bash
yarn add @immowelt/eslint-config-immowelt-react --dev
```

Use it in your ESLint settings.

```json
{
  "extends": "@immowelt/eslint-config-immowelt-react"
}
```

## Linting Bundle

* [eslint-config-immowelt-base](https://github.com/ImmoweltGroup/eslint-config-immowelt-base)
* [eslint-config-immowelt-react](https://github.com/ImmoweltGroup/eslint-config-immowelt-react)
* [eslint-config-immowelt-vuejs](https://github.com/ImmoweltGroup/eslint-config-immowelt-vuejs)
* [stylelint-config-immowelt](https://github.com/ImmoweltGroup/stylelint-config-immowelt)

## License

See the `LICENSE` file at the root of the repository.
npm package: @immowelt/eslint-config-immowelt-vuejs
Description: ESLint shareable vuejs config
Author: Kevin Ruff
Latest version: 3.1.0

# @immowelt/eslint-config-immowelt-vuejs

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/eslint-config-immowelt-vuejs.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/eslint-config-immowelt-vuejs)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

This package provides base ([eslint-config-immowelt-base](https://github.com/ImmoweltGroup/eslint-config-immowelt-base)) and vuejs (this package) configurations used by [ImmoweltGroup](https://github.com/ImmoweltGroup).

## Usage

Add it to your dependencies.

```bash
yarn add @immowelt/eslint-config-immowelt-vuejs --dev
```

Use it in your ESLint settings.

```json
{
  "extends": "@immowelt/eslint-config-immowelt-vuejs"
}
```

## Linting Bundle

* [eslint-config-immowelt-base](https://github.com/ImmoweltGroup/eslint-config-immowelt-base)
* [eslint-config-immowelt-react](https://github.com/ImmoweltGroup/eslint-config-immowelt-react)
* [eslint-config-immowelt-vuejs](https://github.com/ImmoweltGroup/eslint-config-immowelt-vuejs)
* [stylelint-config-immowelt](https://github.com/ImmoweltGroup/stylelint-config-immowelt)

## License

See the `LICENSE` file at the root of the repository.
npm package: @immowelt/jest-preset-node
Description: Common configuration options for Jest in Node.js environments.
Author: Immonet dev team
Latest version: 2.1.0

# @immowelt/jest-preset-node

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/jest-preset-node.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/jest-preset-node)
[![Dependency Status](https://david-dm.org/ImmoweltGroup/jest-preset-node.svg)](https://david-dm.org/ImmoweltGroup/jest-preset-node)
[![devDependency Status](https://david-dm.org/ImmoweltGroup/jest-preset-node/dev-status.svg)](https://david-dm.org/ImmoweltGroup/jest-preset-node#info=devDependencies&view=table)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

> Common configuration options for Jest in Node.js environments.

## Usage

If you want to use the  `@immowelt/jest-preset-node`, you can install it by executing:

```bash
yarn add @immowelt/jest-preset-node --dev
```

Then add the following contents into the `package.json`:

```json
{
  ...,
  "jest": {
    "preset": "@immowelt/jest-preset-node"
  },
  ...
}
```

## Contributing
See the `CONTRIBUTING.md` file at the root of the repository.

## Licensing
See the `LICENSE` file at the root of the repository.
npm package: @immowelt/jest-preset-react
Description: Common configuration options for Jest in React environments.
Author: Immonet dev team
Latest version: 3.1.0

# @immowelt/jest-preset-react

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/jest-preset-react.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/jest-preset-react)
[![Dependency Status](https://david-dm.org/ImmoweltGroup/jest-preset-react.svg)](https://david-dm.org/ImmoweltGroup/jest-preset-react)
[![devDependency Status](https://david-dm.org/ImmoweltGroup/jest-preset-react/dev-status.svg)](https://david-dm.org/ImmoweltGroup/jest-preset-react#info=devDependencies&view=table)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

> Common configuration options for Jest in React environments.
> Supports also [enzyme](https://airbnb.io/enzyme/) and css-modules.

## Usage

If you want to use the  `@immowelt/jest-preset-react`, you can install it by executing:

```bash
yarn add @immowelt/jest-preset-react --dev
```

Then add the following contents into the `package.json`:

```json
{
  ...,
  "jest": {
    "preset": "@immowelt/jest-preset-react"
  },
  ...
}
```

## Contributing
See the `CONTRIBUTING.md` file at the root of the repository.

## Licensing
See the `LICENSE` file at the root of the repository.
npm package: @immowelt/lighthouse-ci
Description: [![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/) [![Build Status](https://travis-ci.org/ImmoweltGroup/lighthouse-ci.svg?branch=master)](https://travis-ci.org/Immow
Author: Kevin Ruff
Latest version: 2.2.1

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/lighthouse-ci.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/lighthouse-ci)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

# @immowelt/lighthouse-ci

> Lighthouse quality gate cli, for report generation and customizable threshold validation depending on project quality specification.

## Specifications

* Threshold validation for lighthouse categories
* Lighthouse report generation
* Parallel validation and report generation of multiple domains

# Usage

```sh
yarn global add @immowelt/lighthouse-ci
```

For more information use --help

```sh
lighthouse-ci --help
```

# Configuration
You are able to define a config file which must be named `lighthouse-ci.json`. Lighthouse-ci search for this config in the current working dir where you execute lighthouse-ci. The config file must contains a threshold object, which refers the lighthouse categories with the threshold scores which musst be passed.

Also you are able to pass options down to lighthouse cli and chrome runner which need to be placed at options section for lighthouse options and chrome flags need to be placed at chromeFlags section.

> NOTE: **The passed threshold arguments to the cli overrides the config thresolds**

Example:
```
{
  "chromeFlags": ["--headless"],
  "options": {
    "disableDeviceEmulation": true,
    "throttling": {
      "cpuSlowdownMultiplier": 1
    }
  },
  "threshold": {
    "performance": 80,
    "pwa": 80,
    "best-practices": 80,
    "accessibility": 80,
    "seo": 80
  }
}
```

## Custom configuration file

You can also pass your own custom configuration file to the cli with the `-c` or `--config` option:

```sh
lighthouse-ci https://immowelt.de/ --config custom-config.json
```

# Docker

We dockerized this package for a better usability in CI pipelines, you can use it locally like this:
```
docker pull immowelt/lighthouse-ci:latest
docker run -v /path/for/reports:/usr/src/app/lighthouse-ci immowelt/lighthouse-ci:latest https://immowelt.de/ -r
```

> NOTE: If you want to get the generated reports locally, you need to mount a folder directly to container.

# TODOs

- [x] Threshold configuration via config file
- [ ] Create node API
- [x] Dockerized images for direct usage in CI pipeline
- [x] Unit tests are missing!
npm package: @immowelt/styleguide-javascript
Description: Styleguide related configuration files for javascript related projects.
Author: Immonet dev team
Latest version: 1.0.11

# @immowelt/styleguide-javascript

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://travis-ci.org/ImmoweltGroup/styleguide-javascript.svg?branch=master)](https://travis-ci.org/ImmoweltGroup/styleguide-javascript)
[![Dependency Status](https://david-dm.org/ImmoweltGroup/styleguide-javascript.svg)](https://david-dm.org/ImmoweltGroup/styleguide-javascript)
[![devDependency Status](https://david-dm.org/ImmoweltGroup/styleguide-javascript/dev-status.svg)](https://david-dm.org/ImmoweltGroup/styleguide-javascript#info=devDependencies&view=table)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovateapp.com/)
[![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)

> Styleguide related configuration files(`.editorconfig`, `.prettierrc`) for javascript related projects.

## Usage

If you want to use the `@immowelt/styleguide-javascript`, you can install it by executing:

```bash
npm i -D @immowelt/styleguide-javascript
```

This will automatically setup symlinks to the `.editorconfig` and `.prettierrc` in your project root and add them to your `.gitignore` if possible.

## Styleguide

We use [prettier](https://github.com/prettier/prettier) as a code style since it is easy to automatically keep a consistent style in projects.

Basic rules are:

* 2 space indentation
* Max line length of 80 characters
* Trim trailing whitespace
* UTF-8 Charset and `lf` EOL
* Use Semicolons
* Use single quotes for strings
* No spaces between brackets

You might also be interested in our ESLint config presets:

* [eslint-config-immowelt-react](https://github.com/ImmoweltGroup/eslint-config-immowelt-react)

## IDE configurations
You will find example configuration guides in the [docs](https://github.com/ImmoweltGroup/styleguide-javascript/tree/master/docs) folder.

## Contributing
See the `CONTRIBUTING.md` file at the root of the repository.

## Licensing
See the `LICENSE` file at the root of the repository.
npm package: @immowelt/stylelint-config-immowelt
Description: StyleLint standard config for Immowelt
Latest version: 4.1.7

# @immowelt/stylelint-config-immowelt

[![Powered by Immowelt](https://img.shields.io/badge/powered%20by-immowelt-yellow.svg?colorB=ffb200)](https://stackshare.io/immowelt-group/)
[![Build Status](https://github.com/ImmoweltGroup/stylelint-config-immowelt/actions/workflows/release.yml/badge.svg)](https://github.com/ImmoweltGroup/stylelint-config-immowelt/actions?query=branch%3Amain)
[![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)

## Usage

Add it to your dependencies.

```bash
yarn add --dev @immowelt/stylelint-config-immowelt
```

Use it in your StyleLint settings.

```json
{
  "extends": "@immowelt/stylelint-config-immowelt"
}
```

### Extension

You may also want to use `@mapbox/stylelint-processor-arbitrary-tags` for checking CSS inside XML like files (like HTML). That will result in an `package.json` like:

```json
{
  "scripts": {
    "test:scss-lint": "stylelint --syntax scss \"src/**/*.{scss,vue}\"",
    "test:scss-lint:fix": "npm run test:scss-lint -- --fix"
  },
  "devDependencies": {
    "@immowelt/stylelint-config-immowelt": "^2.2.0",
    "@mapbox/stylelint-processor-arbitrary-tags": "^0.2.0"
  },
  "stylelint": {
    "extends": "@immowelt/stylelint-config-immowelt",
    "processors": ["@mapbox/stylelint-processor-arbitrary-tags"]
  }
}
```

## Linting Bundle

- [eslint-config-immowelt-base](https://github.com/ImmoweltGroup/eslint-config-immowelt-base)
- [eslint-config-immowelt-react](https://github.com/ImmoweltGroup/eslint-config-immowelt-react)
- [eslint-config-immowelt-vuejs](https://github.com/ImmoweltGroup/eslint-config-immowelt-vuejs)
- [stylelint-config-immowelt](https://github.com/ImmoweltGroup/stylelint-config-immowelt)

## License

See the `LICENSE` file at the root of the repository.
npm package: @immutabl3/error-logger
Description: js browser-to-server error logger
Author: Joseph Clay
Latest version: 0.0.1

# error-logger

js browser-to-server error logger 

`npm install @immutabl3/error-logger`

# About

Uses [stacktrace-js](https://github.com/stacktracejs/stacktrace.js/) and [mailgun-js](https://www.npmjs.com/package/mailgun-js) to catch and email errors from client-side applications.

# Browser

```js
const errorLogger = require('@immutable/error-logger/browser');

const logger = errorLogger({
	// if true, errors won't be reported to the server
	// they will instead be logged to the console
	debug: false,
	// url to POST the log
	url: '/error'
});

// listen for any uncaught errors on the window
logger.listen();

// log an error manually by passing an Error object
logger.log(error, [level = 'debug']);
```

# Express

```js
const errorLogger = require('@immutable/error-logger/express');

const logger = errorLogger({
	// mailgun configuration
	mailgunKey: '',
	mailgunDomain: '',
	// from email address
	from: ''
	// to email address
	to: ''
	// [optional] string to place in the subject line
	subject: ''
});

app.post('/error', logger);
```

# License

MIT
npm package: @immutabl3/express-async
Description: async in express
Author: Immutable, LLC
Latest version: 1.0.0

# express-async

middleware for using async in express

## installation

```
npm install @immutabl3/express-async
```

## usage

```js
import express from 'express';
import expressAsync from '@immutabl3/express-async';

const app = express();

// as middleware
app.use(expressAsync(async function myMiddleware(req, res, next) {
	// await can not safely be used
	const data = await findData();
	// errors are caught and automatically passed to next
	if (!data) throw new Error('missing data');
	// as middleware, next can be called at any point
	next();
}));

// as an endpoint
app.get('/', expressAsync(async function myEndpoint(req, res) {
	const data = await findData();
	res.send(data);
}));
```

## license

The MIT License (MIT)

Copyright (c) 2018 Immutable, LLC

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
npm package: @immutabl3/front-end-build
Description: front-end build
Author: Joseph Clay
Latest version: 0.0.7

# front-end-build

A gulp build system for js, css and copying/deleting of assets.

`npm install @immutabl3/front-end-build`

# gulpfile.js

- use `watch` anywhere in the gulp task name for development and livereload
- use the `--production` flag or set `NODE_ENV=production` to generate a production build
- use the `--silent` flag to disable error beeps

```js
const gulp = require('gulp');
const {
	move,
	del,
	scripts,
	styles
} = require('@immutabl3/front-end-build');

gulp.task('scripts', scripts({
    source: './app/index.js',
    dest: './public/scripts',
    file: 'site.js'
}));

gulp.task('styles', styles({
    source: './styles/index.scss',
    dest: './public/styles',
    map: './maps',
    file: 'site.css',
    watch: './styles/**/*.scss'
}));

gulp.task('assets', copy({
	task: 'assets',
    from: './assets/**/*',
    to: './public/assets/'
}));

gulp.task('modernizr:move', copy({
    task: 'modernizr',
    from: './modernizr.js',
    to: './public/scripts/'
}));

gulp.task('modernizr:del', del(
	'./modernizr.js'
));

gulp.task('modernizr',
    gulp.series(
        'modernizr:move',
        'modernizr:del'
    )
);

gulp.task('watch',
    gulp.parallel(
        'scripts',
        'styles'
    )
);

gulp.task('default',
    gulp.parallel(
        'scripts',
        'styles',
        'assets'
    )
);
```

# License

MIT