open-index/open-npm huggingface dataset:
npm package: @laboperator-gmbh/eslint-config-drivers
Description: Provide configuration files for Laboperator driver-related repositories.
Author: Laboperator GmbH
Latest version: 0.2.1

# @laboperator-gmbh/eslint-config-drivers

Provide configuration files for Laboperator driver-related repositories.

Usage `yarn add -D @laboperator-gmbh/eslint-config-drivers`

## For JavaScript Projects

Needed dependencies: `yarn add -D eslint`

Create a `.eslintrc.js` file with the following contents to extend this config:

```javascript
module.exports = {
  extends: '@laboperator-gmbh/eslint-config-drivers',
};
```

Create a `.prettierrc.js` file with the following contents to extend this config:

```javascript
module.exports = require('@laboperator-gmbh/config/prettier');
```

## For TypeScript Projects

Needed dependencies: `yarn add -D eslint typescript`

Create a `tsconfig.json` file with the following contents to extend this config:

```json
{
  "extends": "@laboperator-gmbh/eslint-config-drivers",
  "compilerOptions": {
    "outDir": "dist",
    "rootDirs": ["src", "spec"]
  },
  "include": ["src/**/*", "spec/**/*"]
}
```

You should update the paths according to your project needs.

If you do not want your tests to build, you should also create a `tsconfig.build.json` file with the following contents:

```json
{
  "extends": "./tsconfig.json",
  "exclude": ["spec/**/*"]
}
```

Create a `.eslintrc.js` file with the following contents to extend this config:

```javascript
module.exports = {
  extends: '@laboperator-gmbh/eslint-config-drivers',
  parserOptions: {
    tsconfigRootDir: __dirname,
  },
};
```

Create a `.prettierrc.js` file with the following contents to extend this config:

```javascript
module.exports = require('@laboperator-gmbh/config/prettier');
```
npm package: @labor-digital/asset-building
Description: A package that provides you with the whole suitcase of modern asset building for the web, powered by webpack
Author: LABOR.digital
Latest version: 8.3.3

# Asset - Building

This package provides you with the whole suitcase of modern asset building for the web. Build on top of webpack it goes a similar root as [encore](https://github.com/symfony/webpack-encore) or [mix](https://laravel.com/docs/7.x/mix) but with almost zero configuration on your part. 
We use this builder for all of our projects from traditional monolithic javascript, over jQuery, Vue.js, and Typescript (It can't cook you a coffee, tho!).
If the base distribution does not meet your requirements, it is possible to extend it using the built-in hook system or by writing your webpack config.

## Installation

* Install the npm dependency:
```
npm install --save-dev @labor-digital/asset-building
```
*This package works in Node.js ^16.20.0*

* Add the following part to your package.json:
```
  "scripts": {
    "build": "labor-asset-building build",
    "watch": "labor-asset-building watch",
    "analyze": "labor-asset-building analyze"
  }
```
* Done! :-)

## Basic usage

For a basic usage example either take a look at the "demo" directories or create a new 
"App.ts" file next to your package.json, add "console.log("Hello world");" as content and alter
your package.json like so:
```
"labor": {
    "apps": [
        {
            "entry": "./App.ts",
            "output": "./dist/bundle.js",
        }
    ]
}
```

Start the watcher with "npm run watch" and the script should do it's magic :)

## Documentation

The documentation can be found [here](https://asset-building.labor.tools).

## Building the sources

- Clone the repository
- Navigate to the root directory (where the "package.json" lives)
- Install the dependencies with ```npm install```
- Run the continuous watcher for development ```npm run watch```
- OR build the sources for production ```npm run build```

## Building the documentation

The documentation is powered by [vuepress](https://vuepress.vuejs.org/), you can spin up a dev server like so:

- Clone the repository
- Navigate to ```docs```
- Install the dependencies with ```npm install```
- Run the dev server with ```npm run dev```

## Postcardware

You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using.

Our address is: LABOR.digital - Fischtorplatz 21 - 55116 Mainz, Germany

We publish all received postcards on our [company website](https://labor.digital).
npm package: @labor-digital/bits-lit-html
Description: Plugin for the bits library to add lit-html integration
Author: LABOR.digital
Latest version: 2.0.0

# LABOR - Bits - Lit Html

While bits has the dedicated scope of working with server rendered HTML, and provides some
basic JS templating functionality, you might want to get a bit more sophisticated.

For this I trust in the standalone templating engine [lit-html](https://lit.dev/docs/libraries/standalone-templates/)
which is part of the [lit web component framework](https://lit.dev/).

## Installation

Install the plugin through npm:

```
npm install @labor-digital/bits-lit-html
```

Register it in your plugin section:

```typescript
import {BitApp} from '@labor-digital/bits';
import {LitHtmlPlugin} from '@labor-digital/bits-lit-html';

new BitApp({
    bits: { /* ... */},
    plugins: [
        new LitHtmlPlugin()
    ]
});
```

## Documentation

The documentation can be found [here](https://bits.labor.tools/guide/plugins/LitHtml.html).

## Postcardware

You're free to use this package, but if it makes it to your production environment, we highly appreciate you sending us a postcard from your hometown,
mentioning which of our package(s) you are using.

Our address is: LABOR.digital - Fischtorplatz 21 - 55116 Mainz, Germany.

We publish all received postcards on our [company website](https://labor.digital).
npm package: @labor-digital/bits-translator
Description: Plugin for the bits library to handle multi-language setups
Author: LABOR.digital
Latest version: 1.1.2

# LABOR - Bits - Translator

Even with the premise, that most of your translations will come directly from your server rendering engine,
there will be the need to translate labels in your javascript. Either in an external library, or the text in a modal window you simply can not provide everything via HTML (or, you can, but you should not want to...).

For that reason this plugin offers an ultra-lightweight translation provider that is designed to work in tandem with you server template engine.

## Installation

Install the plugin through npm:

```
npm install @labor-digital/bits-translator
```

Register it in your plugin section:

```typescript
import {BitApp} from '@labor-digital/bits';
import {TranslatorPlugin} from '@labor-digital/bits-translator';

new BitApp({
    bits: { /* ... */},
    plugins: [
        new TranslatorPlugin()
    ]
});
```

## Documentation

The documentation can be found [here](https://bits.labor.tools/guide/plugins/Translator.html).

## Postcardware

You're free to use this package, but if it makes it to your production environment, we highly appreciate you sending us a postcard from your hometown,
mentioning which of our package(s) you are using.

Our address is: LABOR.digital - Fischtorplatz 21 - 55116 Mainz, Germany.

We publish all received postcards on our [company website](https://labor.digital).
npm package: @labor-digital/helferlein
Description: General purpose Javascript helpers
Author: LABOR.digital
Latest version: 4.4.1

# LABOR - Helferlein

_"Helferlein" is german and means: Small Helper_

This javascript package contains a number of helper functions and their typescript definitions. Not all implementations are written by us; all external,
included code is annotated with it's source.

All helpers should be able to run in a node.js context, as well as in the browser and even a SSR context without any issues.

## Installation

Install this package using npm:

```
npm install @labor-digital/helferlein
```

## Usage

### In a module environment (webpack/typescript)

The helpers are distributed as loosely coupled components, that are tree-shakable by modern building tools like webpack. So you can simply load what you need
directly from your code

```js
import {asArray} from "@labor-digital/helferlein";

const objectAsArray = asArray({'a': 1, 'b': 2, 'd': 3, 'e': 'asdf'});
``` 

### As scrip in a browser

You can also load the pre-build sources directly in your browser. You don't need any bundler for that, just look inside the dist.browser directory.

#### Load only some helpers

Each helper is available in a standalone file. That way you can load either a single helper, or two, or three. Each loaded helper, will be added to the global "
Helferlein" object.

```html

<script type="text/javascript" src="../dist.browser/Helferlein.types.isArray.js"></script>
<script type="text/javascript" src="../dist.browser/Helferlein.types.isString.js"></script>
<script type="text/javascript">
    console.log('Is string', Helferlein.isString('true'), '<- true | false ->', Helferlein.isString(false));
    console.log('Is array', Helferlein.isArray([]), '<- true | false ->', Helferlein.isString(false));
</script>
```

#### Load all helpers

Alternatively you can load all available helpers at once using the "Helferlein.all.js" file.

```html

<script type="text/javascript" src="../dist.browser/Helferlein.all.js"></script>
<script type="text/javascript">
    console.log('Is string', Helferlein.isString('true'), '<- true | false ->', Helferlein.isString(false));
    console.log('Is array', Helferlein.isArray([]), '<- true | false ->', Helferlein.isString(false));
</script>
```

## Documentation

The documentation / API can be found [here](http://helferlein.labor.tools/) but is also rendered at "./doc/index.html" for local usage

## Postcardware

You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning
which of our package(s) you are using.

Our address is: LABOR.digital - Fischtorplatz 21 - 55116 Mainz, Germany

We publish all received postcards on our [company website](https://labor.digital).
npm package: @labor-digital/json-api
Description: Provides the implementation to communicate with an json api compatible endpoint
Author: m.neundorfer@labor.digital
Latest version: 4.0.1

# Json API
Provides the implementation to communicate with an [json api compatible](https://jsonapi.org/) endpoint.
The package is build with [axios](https://www.npmjs.com/package/axios) as http client and utilizes [jsonapi-serializer](https://www.npmjs.com/package/json-api-serializer) to normalize the results into javascript objectes.

## Installation
Install this package using npm:

```
npm install @labor-digital/json-api
```

## Usage
```typescript
import {JsonApiState} from "./lib/JsonApiState"; 
import {JsonApi} from "./lib/JsonApi";

// Create the instance
const api = new JsonApi({baseUrl: "https://example.org/api/resources"});

// Request the resources of type "myResource" that are on page 2
// The query object has some types already defined but as specified in the json-api 
// definition, it can be extended with your own keys
const results = api.get("myResource", {page: {number: 2}});

// Iterate all results in the list and print the value of "myKey" into the console
results.forEach((result: JsonApiState) => {
    console.log(result.get("myKey"));
});

// You can also request a single resource by using the unique id as a lookup query
const state = api.getSingle("myResource", 12);
console.log(state.get("myKey"));
```

## Documentation
The documentation / API can be found [here](https://json-api.labor.tools) but is also rendered at "./doc/index.html" for local usage

## Postcardware
You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using.

Our address is: LABOR.digital - Fischtorplatz 21 - 55116 Mainz, Germany

We publish all received postcards on our [company website](https://labor.digital).
npm package: @labor-digital/mjml-components
Description: A library of MJML components for internal email projects
Author: LABOR.digital
Latest version: 3.0.51

# LABOR - MJML Components

This package contains a number of custom mjml components. //

## Installation

Install this package using npm:

```
npm install @labor-digital/mjml-components
```

Currently this package only supports `MJML 4.7.*`.

## Setup

Before using the components they need to be registered. This can be done by adding the following code to a gulp task.

### Register specific components

```js
import { registerComponent } from 'mjml-core'
import { LaborResponsiveImage, LaborRoundedButton } from '@labor-digital/mjml-components'

const registerComponents = () => {
  registerComponent(LaborResponsiveImage)
  registerComponent(LaborRoundedButton)
}

exports.build = gulp.series(
  (cb) => {
    registerExternalComponents()
    return cb()
  },
  // do other stuff
)
```

### Register all available components

```js
import { registerComponent } from 'mjml-core'
import * as Components from '@labor-digital/mjml-components'

const registerExternalComponents = () => {
  Object.values(Components)
    .filter((c) => c !== undefined)
    .forEach((component) => registerComponent(component))
}

exports.build = gulp.series(
  (cb) => {
    registerExternalComponents()
    return cb()
  },
  // do other stuff
)
```

## Documentation

- Media queries should use max-width, not min-width, to prevent issues with Outlook desktop.