open-index/open-npm huggingface dataset:
npm package: @n4ze3m/fakejs
Description: ![npm bundle size](https://img.shields.io/bundlephobia/min/@n4ze3m/fakejs)
Author: Muhammed Nazeem
Latest version: 0.0.6

# FakeJS

![npm bundle size](https://img.shields.io/bundlephobia/min/@n4ze3m/fakejs)

Random data generator for JavaScript.

# Installation

using npm:

    npm install @n4ze3m/fakejs

using yarn:

    yarn add @n4ze3m/fakejs

## Supported fake data types

* `person`: Generates a random 
personal data.
   - randomName()
   - randomPerson()
   - randomEmail()
   - randomPhone()
   - randomAddress()
   - randomStreet()
   - randomCity()
   - randomCountry()
   - randomState()
   - randomZip()
   - randomLatitude()
   - randomLongitude()

# Usage

- Javascript

```javascript
const fakejs = require("@n4ze3m/fakejs");

const person = fakejs.person.randomePerson();
console.log(person);
```

output:

```javascript
{
      id: "5edadsdklj3dsdskjd2dsmkk",
      firstName: "John",
      image: "https://picsum.photos/500/500",
      lastName: "Doe",
      age: 25,
      gender: "M",
      phone: "+1-123-456-7890",
      email: "john.doe@yahoo.com",
      address: {
       address: "123 Main Lorem Ipsum St, Alappuzha, Kerala, 688888, Estonia",
       street: "123 Main Lorem Ipsum St",
       city: "New York",
       state: "Kerala",
       zip: "688888",
       country: "Estonia",
       coordinates: {
           latitude: "-19.98888",
           longitude: "6.98888"
       }
      }
}
```

## Data Credit

- `name` data from faker@5.5.3

- `address` data from [gofakeit](https://github.com/brianvoe/gofakeit)

# Contributing

Please feel free to open an issue or create a pull request.
npm package: @n5now/document-manager
Description: N5 Document Manager
Author: Francisco Aboy
Latest version: 2.1.45

# Correción componente N5DocumentManager

!!se modifica el componente N5DocumentManager, ya que era necesario hacerlo mas flexible al momento de tomar la data que retorna la api  de document manager!!


# Hallazgos

parte del problema es que no todos los microservicios tiene el payload de respuesta, y el código no esta preparado para ser lo suficiemnte flexible
 ejemplos de respuesta: 
```  
{
	result: {
	    ...
	    ..
	}
}
```  

```  
{
	data :{
	    result: {
	        ...
	        ..
	    }
	}
}
```

```  
{
	data :{
	    result: {
	        result : {
                ...
                ..
	        }
	    }
	}
}
```

### Este nuevo ajuste afecta los siguientes metodos

* getfile
* search
* uploadFile

## Configuración

```
 <N5DocumentManager 
    .
    ..
    ...
    config: {
        API_URL: `${API_URL}/documentmanager`,
        AUTH_TOKEN: '...',
        AUTH_STORE: ...,
        theme: theme(),
        responseKey: '',
        esponseKeys: { <========================= aquí lo nuevo
            searchFiles: '',
            getFile: '',
            uploadFile: ''
        },
        routing: {
            lastName: '...',
            firstName: '...',
            documentNumber: '...',
        },
        parentFolderId: '00000000-0000-0000-0000-000000000000'
        customerId: '...',
    }   
 />
```
npm package: @n6k.io/ui
Description: React UI components and build tooling for n6k server
Latest version: 0.4.5

# @n6k.io/ui

React runtime for [n6k](https://github.com/n6k-io). In-browser DuckDB, data hooks, and template bindings.

## Data flow

`DuckDBProvider` initializes DuckDB WASM, loads the `n6k` extension, and ATTACHes databases from config. `useQuery(sql)` runs any SQL against the in-browser DuckDB — queries can use ATTACHed databases, `n6k()` table functions, or any other DuckDB SQL.

`useView(db, name, sql)` creates a named view via the `n6k_create_view` DuckDB function — no server protocol required.

## Bindings

`BindingProvider` is a Zustand-backed key-value store. `useBinding(key)` reads/writes a value. `useInterpolate(template)` does Handlebars interpolation against bindings — this is how pages wire dynamic SQL.

## Configuration

`DuckDBProvider` accepts an optional `duckdbOptions` prop to configure worker URLs and the extension repository:

```tsx
<DuckDBProvider
  databases={{ mydb: "n6k://localhost:5432/mydb" }}
  duckdbOptions={{
    workerUrl: "/custom/worker.js",
    fetchWorkerUrl: "/custom/fetch-worker.js",
    extensionRepository: "https://extensions.example.com",
  }}
>
  {children}
</DuckDBProvider>
```

Defaults: `/_n6k/workers/n6k-duckdb-worker.js`, `/_n6k/workers/fetch-worker.js`, and `window.location.origin`.

## License

MIT
npm package: @n6k/litium-storefront-env
Description: Wrapper for litium-storefront CLI tool using .env file for options
Author: n6k
Latest version: 1.0.3

# litium-storefront-env

[![npm version](https://img.shields.io/npm/v/@n6k/litium-storefront-env.svg)](https://www.npmjs.com/package/@n6k/litium-storefront-env)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Downloads](https://img.shields.io/npm/d18m/@n6k/litium-storefront-env)](https://www.npmjs.com/package/@n6k/litium-storefront-env)

A wrapper for litium-storefront CLI tool that uses an .env file for options input.  
The wrapper handles running the proxy and importing/exporting field and fieldtemplate definitions

## Prerequisites

Before using `litium-storefront-env`, ensure that you have the following installed:

**Requirements**
* **Node.js** version **20.x+**
* **litium-storefront** CLI tool from [Litium](https://litium.com)

## Installation

```bash
npm install -g @n6k/litium-storefront-env
```

## Usage

Export `.env.template` file
```bash
litium-storefront-env env-template
```

Run Litium proxy
```bash
litium-storefront-env proxy -e .env.test
```

Import definitions to Litium instance
```bash
litium-storefront-env import -e .env.test
```

Export definitions from Litium instance
```bash
litium-storefront-env export -e .env.test
```

## Env parameters

The generated template contains the following parameters

```env
# Url to Litium backend (for proxy and import/export)
LITIUM=
# Url to Litium storefront (for proxy)
STOREFRONT=
# Custom port for exposed frontend (for proxy, default value 3001)
PORT=

# Username for importing/exporting definitions (for import/export)
LITIUM_USERNAME=
# Password for importing/exporting definitions (for import/export)
LITIUM_PASSWORD=
```

## License

This project is released under the MIT License.

## Contributing

Feel free to contribute by sending a Pull Request.
npm package: @n7e/configuration-provider
Description: A service provider for @n7e/configuration.
Author: Martin Pettersson
Latest version: 0.2.0

# Configuration Provider

A service provider for `@n7e/configuration`.

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/configuration-provider
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n7e/data-memory
Description: In-memory implementations of the @n7e/model data mapper and repository strategy.
Author: Martin Pettersson
Latest version: 0.3.0

# Data Memory

In-memory implementations of the @n7e/model data mapper and repository strategy.

Both the data mapper and repository strategy share the same data model, so they
can share entities:

```typescript
import { MemoryDataMapper } from "@n7e/data-memory/data-mappers";
import { MemoryStrategy } from "@n7e/data-memory/repositories";

const entities = new Map();
const dataMapper = new MemoryDataMapper(entities);
const strategy = new MemoryStrategy(entities);

// Any entities created by the data mapper will be retrievable by the repository
// strategy.
```
npm package: @n7e/dependency-injection-provider
Description: A service provider for @n7e/dependency-injection.
Author: Martin Pettersson
Latest version: 0.3.0

# Dependency Injection Provider

A service provider for `@n7e/dependency-injection`.

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/dependency-injection-provider
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n7e/environment-configuration-source
Description: An environment configuration source for @n7e/configuration.
Author: Martin Pettersson
Latest version: 0.2.1

# Environment Configuration Source

An environment configuration source for `@n7e/configuration`.

For further insights, read on.

- [Installation](#installation)
- [Usage](#usage)
    - [Match And Transform](#match-and-transform)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/environment-configuration-source
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Usage

To use this configuration source with the default behaviour simply import and
instantiate it.

```typescript
import { EnvironmentConfigurationSource } from "@n7e/environment-configuration-source";

configurationBuilder.addConfigurationSource(new EnvironmentConfigurationSource());
```

The default behaviour is to include all environment variables beginning with
"N7E_CONFIGURATION_", replace "__" with "." to allow nested key paths and
transform the keys to camel case.

As an example the following environment...

```ini
IGNORED=this is ignored
N7E_CONFIGURATION_KEY=value
N7E_CONFIGURATION_ANOTHER_KEY=another value
N7E_CONFIGURATION_NESTED__KEY=nested value
```

...will result in the following configuration:

```typescript
{
    key: "value",
    anotherKey: "another value",
    nested: {
        key: "nested value"
    }
}
```


### Match And Transform

The configuration source constructor accepts custom match and transform
functions allowing you to decide which environment variables are included and
how the key paths are transformed.

Following is an example of how to include all environment variables as is.

```typescript
import { EnvironmentConfigurationSource } from "@n7e/environment-configuration-source";

configurationBuilder.addConfigurationSource(new EnvironmentConfigurationSource(key => true, key => key));
```
npm package: @n7e/eslint-plugin-spacing-rules
Description: A set of augmented spacing rules.
Author: Martin Pettersson
Latest version: 0.2.0

# Spacing Rules

A set of augmented spacing rules.


## Rules


### array-bracket-spacing

Behaves exactly like `array-bracket-spacing` but adds an option to invert the
rule for destructuring assignments.

The following line is valid with the following configuration:

```javascript
const [ one, two, three ] = [1, 2, 3];
```

```json
{
    "plugins": [
        "@n7e/spacing-rules"
    ],
    "rules": {
        "@n7e/spacing-rules/array-bracket-spacing": [
            "error",
            "never",
            {
                "destructuringAssignments": true
            }
        ]
    }
}
```


### object-curly-spacing

Behaves exactly like `object-curly-spacing` but adds an option to invert the
rule for destructuring assignments as well as exports.

The following line is valid with the following configuration:

```javascript
const { one, two, three } = {one: 1, two: 2, three: 3};
```

```json
{
    "plugins": [
        "@n7e/spacing-rules"
    ],
    "rules": {
        "@n7e/spacing-rules/object-curly-spacing": [
            "error",
            "never",
            {
                "destructuringAssignments": true
            }
        ]
    }
}
```

And the following line is valid with the following configuration:

```javascript
export { one, two, three };
```

```json
{
    "plugins": [
        "@n7e/spacing-rules"
    ],
    "rules": {
        "@n7e/spacing-rules/object-curly-spacing": [
            "error",
            "never",
            {
                "exports": true
            }
        ]
    }
}
```
npm package: @n7e/event-provider
Description: A service provider for @n7e/event.
Author: Martin Pettersson
Latest version: 0.2.0

# Dependency Injection Provider

A service provider for `@n7e/event`.

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/event-provider
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n7e/http-handler
Description: A set of interfaces describing the functionality of an HTTP request handler.
Author: Martin Pettersson
Latest version: 0.7.2

# HTTP Handler

A set of interfaces describing the functionality of an HTTP request handler.

For further insights, read on.

- [Installation](#installation)
- [Request Handler](#request-handler)
- [Middleware](#middleware)
- [Middleware Request Handler](#middleware-request-handler)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/http-handler
```

*This library only contains a set of interfaces and is less than useless if you
don't use TypeScript.*


## Request Handler

The concept of a request handler is some procedure able to produce an
appropriate response from a given request. These kinds of procedures are central
to HTTP servers as well as clients. Since this kind of procedure is very common
this library provides an abstraction in the form of a `RequestHandler`
interface.

This library does not provide an implementation but there may be dependant
libraries that does.

*`RequestHandler` is just an interface describing the functionality of a request
handler. To create a request handler instance you need to reference a specific
implementation.*


## Middleware

The concept of middleware is similar to that of a
[request handler](#request-handler) with the addition of a request handler
delegate to resume the middleware chain. Since this paradigm, similar to that of
a [request handler](#request-handler) is very useful for both HTTP servers and
clients this library provides an abstraction in the form of a `Middleware`
interface.

This library does not provide an implementation but there may be dependant
libraries that does.

*`Middleware` is just an interface describing the functionality of HTTP
middleware. To create a middleware instance you need to reference a specific
implementation.*


## Middleware Request Handler

For convenience a request handler is provided that uses a set of middleware to
process the request before delegating to a fallback request handler. If any of
the provided middleware produces a response no further middleware nor the
fallback request handler will be invoked.

```typescript
import { MiddlewareRequestHandler } from "@n7e/http-handler";

const requestHandler = new MiddlewareRequestHandler([], fallbackRequestHandler);
```
npm package: @n7e/http-routing-provider
Description: A service provider for @n7e/http-routing.
Author: Martin Pettersson
Latest version: 0.4.0

# HTTP Routing Provider

A service provider for `@n7e/http-routing`.

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/http-routing-provider
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n7e/http-server
Description: A small, extensible HTTP server.
Author: Martin Pettersson
Latest version: 0.7.0

# HTTP Server

A small, extensible HTTP server.

For further insights, read on.

- [Installation](#installation)
- [Server](#server)
- [Server Builder](#server-builder)
- [Request Handler](#request-handler)


## Installation

To install this library use your favorite package manager. No additional steps
are required to start using the library.

```shell
npm install @n7e/http-server
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Server

A server instance takes care of incoming HTTP requests, delegating them to a
[request handler](#request-handler) and serving the responses.

*`Server` is just an interface describing the functionality of an HTTP server.
To create a server instance use a [server builder](#server-builder).*


## Server Builder

To configure and build a server instance you should use a `ServerBuilder`.

```typescript
import { ServerBuilder } from "@n7e/http-server";

function doSomethingWith(serverBuilder: ServerBuilder): void {
    const server = serverBuilder
        .useRequestHandler(requestHandler)
        .usePort(80)
        .build();

    // ...
}
```

*`ServerBuilder` is just an interface describing the functionality of a server
builder. To create a server builder instance you need to reference a specific
[implementation](#default-server-builder).*


### Default Server Builder

There's a provided default implementation of `ServerBuilder` ready to use. The
implementation depends on a `RequestFactory` and a `ResponseFactory`. Since the
`@n7e/http` library provides default implementations here's an example of how to
create a server builder:

```typescript
import { DefaultRequestFactory, DefaultResponseFactory } from "@n7e/http";
import { DefaultServerBuilder } from "@n7e/http-server";

const serverBuilder = new DefaultServerBuilder(
    new DefaultRequestFactory(),
    new DefaultResponseFactory()
);
```


## Request Handler

All incoming requests are delegated to a dedicated request handler.
For convenience a default request handler is provided that simply responds with
`503 Service Unavailable`.

```typescript
import { DefaultRequestHandler } from "@n7e/http-server";

serverBuilder.useRequestHandler(new DefaultRequestHandler(responseFactory));
```
npm package: @n7e/http-server-provider
Description: A service provider for @n7e/http-server.
Author: Martin Pettersson
Latest version: 0.4.0

# HTTP Server Provider

A service provider for `@n7e/http-server`.

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/http-server-provider
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n7e/inertia
Description: TODO
Author: Martin Pettersson
Latest version: 0.1.0

# Inertia

TODO

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/inertia
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n7e/json-configuration-source
Description: A JSON file configuration source for @n7e/configuration.
Author: Martin Pettersson
Latest version: 0.1.3

# JSON Configuration Source

A JSON file configuration source for `@n7e/configuration`.

For further insights, read on.

- [Installation](#installation)
- [Usage](#usage)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/json-configuration-source
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Usage

To use this configuration source simply pass an absolute file path to the
constructor. No further configuration is needed nor available.

```typescript
import { JsonConfigurationSource } from "@n7e/json-configuration-source";

configurationBuilder.addConfigurationSource(new JsonConfigurationSource("/path/to/file.json"));
```
npm package: @n7e/json-configuration-source-provider
Description: Enables JSON configuration sources for @n7e/configuration-provider.
Author: Martin Pettersson
Latest version: 0.1.0

# JSON Configuration Source Provider

Enables JSON configuration sources for `@n7e/configuration-provider`.

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/json-configuration-source-provider
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n7e/log-provider
Description: A service provider for @n7e/log.
Author: Martin Pettersson
Latest version: 0.3.0

# Log Provider

A service provider for `@n7e/log`.

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/log-provider
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n7e/model
Description: Base model layer features.
Author: Martin Pettersson
Latest version: 0.5.0

# Model

Base model layer features.


## Entities

```typescript
class User extends Entity<string> {
    public constructor(id: string) {
        super(id);
    }
}

const user = new User(crypto.randomUUID());

await dataMapper.insert(user);
```


## Repositories

...


## Data Mappers

...


## Services

...
npm package: @n7e/rng
Description: A collection of random number generators.
Author: Martin Pettersson
Latest version: 0.1.0

# RNG

A collection of random number generators.

For further insights, read on.

- [Installation](#installation)
- [Random Number Generator](#random-number-generator)
    - [Linear Congruential Generator](#linear-congruential-generator)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/rng
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Random Number Generator

This library provides an interface that all random number generators implement.
This allows the selection of a specific algorithm to be deferred or changed at a
later time without changing the code using the random number generator.

Here is a short example of using a random number generator:

```typescript
import type { RandomNumberGenerator } from "@n7e/rng";

function someFunction(generator: RandomNumberGenerator): number {
    const max = 5;
    const min = -5;
    const clampedRandomNumber = Math.floor(generator.next() * (max - min) + min);
    
    // ...
}
```

You can easily supply any appropriate random number generator you wish when
calling the function:

```typescript
import { LinearCongruentialGenerator } from "@n7e/rng";

someFunction(new LinearCongruentialGenerator());
```


### Linear Congruential Generator

A [linear congruential generator](https://en.wikipedia.org/wiki/Linear_congruential_generator)
generates numbers using a discontinuous piecewise linear equation. The
constructor provides sensible default values for the equation, so using it is as
easy as:

```typescript
import { LinearCongruentialGenerator } from "@n7e/rng";

const randomNumberGenerator = new LinearCongruentialGenerator();

console.log(randomNumberGenerator.next());
```

You can supply custom values for the equation like so:

```typescript
const randomNumberGenerator = new LinearCongruentialGenerator(
    0, // Initial seed, default: Date.now(),
    9, // Modulus used in recurrence relation equation, default: 2 ** 31 (used by glibc).
    2, // Multiplier used in recurrence relation equation, default: 1103515245 (used by glibc).
    0 // Increment used in recurrence relation equation, default: 12345 (used by glibc).
);

console.log(randomNumberGenerator.next());
```
npm package: @n7e/state-machine
Description: A small library for building big state machines.
Author: Martin Pettersson
Latest version: 0.2.0

# State Machine

A small library for building big state machines.

For further insights, read on.

- [Installation](#installation)
- [Usage](#usage)
- [Finite State Machine](#finite-state-machine)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/state-machine
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Usage

This library's take on state machines differs a bit from traditional approaches.
Instead of allowing viewing and manipulation from outside the state machine, it
only exposes methods to tick and reset the state machine. Execution logic, state
transitions and everything else is hidden. It's up to the state to request a
transition if and when appropriate.

```typescript
import { State } from "@n7e/state-machine";

class SomeState extends State {
    public tick(): void {
        // ...
        
        if (someCondition) {
            this.request(SomeOtherState.name);
            
            return;
        }

        // ...
    }
}
```


## Finite State Machine

A finite state machine is a state machine with a fixed and known set of states.

```typescript
import { FiniteStateMachineFactory } from "@n7e/state-machine";

const stateMachine = new FiniteStateMachineFactorr(InitialState.name).createStateMachineWith([
    new InitialState(),
    new SomeOtherState()
]);

while (true) {
    stateMachine.tick();
}
```
npm package: @n7e/storage-fs
Description: A filesystem storage implementation.
Author: Martin Pettersson
Latest version: 0.1.0

# Filesystem Storage

A filesystem storage implementation.

For further insights, read on.

- [Installation](#installation)
- [Usage](#usage)


## Installation

To install this library use your favorite package manager. No additional steps
are required to start using the library.

```shell
npm install @n7e/storage-fs
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Usage

To create a filesystem storage client use the provided `StorageClientBuilder`
implementation:

```typescript
import { FilesystemStorageClientBuilder } from "@n7e/storage-fs";

const storageClientBuilder = new FilesystemStorageClientBuilder();
```

The builder allows us to configure a root directory:

```typescript
import { resolve } from "node:path";

storageClientBuilder.withRootDirectory(resolve(process.cwd(), "storage"));
```

When configured, build a storage client instance:

```typescript
const storageClient = storageClientBuilder.build();
```
npm package: @n7e/storage-http
Description: An HTTP storage implementation.
Author: Martin Pettersson
Latest version: 0.1.0

# HTTP Storage

An HTTP storage implementation.

For further insights, read on.

- [Installation](#installation)
- [Usage](#usage)


## Installation

To install this library use your favorite package manager. No additional steps
are required to start using the library.

```shell
npm install @n7e/storage-http
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Usage

This implementation will make HTTP requests to list, retrieve, create, update
and remove entries. Locations will be appended to a configured base URL and the
URL scheme is ignored, so given the base URL: `http://example.com/storage` the
operation...

```typescript
const entry = await storageClient.get(new URL("file://some/file.txt"));
```

...will make a GET request to the following URL:
`http://example.com/storage/some/file.txt`.

*The provided `StorageClientBuilder` implementation allows you to provide a
specific HTTP client instance, so every aspect of the requests being made can be
configured through HTTP client middleware.*

To create an HTTP storage client use the provided `StorageClientBuilder`
implementation. The implementation depends on a `RequestFactory`,
`ResponseFactory` and a `StreamFactory`. Since the @n7e/http library provides
default implementations of those factories here's an example of how to create
an HTTP storage client builder:

```typescript
import {
    DefaultRequestFactory,
    DefaultResponseFactory,
    DefaultStreamFactory,
    DefaultUriFactory
} from "@n7e/http";
import { HttpStorageClientBuilder } from "@n7e/storage-http";

const streamFactory = new DefaultStreamFactory();
const requestFactory = new DefaultRequestFactory(new DefaultUriFactory());
const responseFactory = new DefaultResponseFactory(streamFactory);
const storageClientBuilder = new HttpStorageClientBuilder(requestFactory, responseFactory, streamFactory);
```

At a minimum you need to configure the base URL and storage entry factories. The
storage entry factory procedures are used to create storage entries from HTTP
responses.

```typescript
storageClientBuilder
    .withBaseUrl(new URL("http://example.com/storage"))
    .withStorageEntryListFactory(async response => {
        // Produce a list of storage entries from the HTTP response.
    })
    .withStorageEntryFactory(async response => {
        // Produce a storage entry from the HTTP response.
    });
```

When configured, build a storage client instance:

```typescript
const storageClient = storageClientBuilder.build();
```
npm package: @n7e/storage-memory
Description: An in-memory storage implementation.
Author: Martin Pettersson
Latest version: 0.1.0

# Memory Storage

An in-memory storage implementation.

For further insights, read on.

- [Installation](#installation)
- [Usage](#usage)


## Installation

To install this library use your favorite package manager. No additional steps
are required to start using the library.

```shell
npm install @n7e/storage-memory
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Usage

To create an in-memory storage client use the provided `StorageClientBuilder`
implementation:

```typescript
import { MemoryStorageClientBuilder } from "@n7e/storage-memory";

const storageClientBuilder = new MemoryStorageClientBuilder();
```

The builder allows us to configure existing entries:

```typescript
storageClientBuilder.withExistingEntries([
    {
        type: EntryType.FILE,
        location: new URL("file://some-file.txt"),
        content: new TextEncoder().encode("some content")
    }
]);
```

When configured, build a storage client instance:

```typescript
const storageClient = storageClientBuilder.build();
```
npm package: @n7e/templating
Description: A simple templating abstraction.
Author: Martin Pettersson
Latest version: 0.3.0

# Templating

A simple templating abstraction.

For further insights, read on.

- [Installation](#installation)
- [Template Engine](#templat-engine)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/templating
```

*This library really only provides a template engine interface and won't do any good as a JavaScript library.*


## Template Engine

A template engine has the ability to render a given template identifier in a
given context. How the template is located and the result of the rendering is
completely up to the implementation.

```typescript
import { TemplateEngine } from "@n7e/templating";

async function doSomethingWith(templateEngine: TemplateEngine): Promise<void> {
    const result = await templateEngine.render("some-template", {name: "Martin"});

    // ...
}
```
npm package: @n7e/templating-handlebars
Description: A Handlebars template engine implementation.
Author: Martin Pettersson
Latest version: 0.1.0

# Tempalting Handlebars

A Handlebars template engine implementation.

For further insights, read on.

- [Installation](#installation)
- [Template Engine](#template-engine)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/templating-handlebars
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Template Engine

The template engine will locate the template with or without the `.hbs` file
extension. And render it with the given context.

```typescript
import handlebars from "handlebars";
import { TemplateEngine } from "@n7e/templating-handlebars";
import { resolve } from "node:path";

const templateDirectories = [
    resolve(process.cwd(), "resources/templates"),
    resolve(process.cwd(), "some-other/template/directory")
];
const templateEngine = new TemplateEngine(handlebars, templateDirectories);

console.log(await templateEngine.render("some/template", {name: "Martin"}));
```
npm package: @n7e/transpose
Description: A simple little library making transposing values between different ranges a breeze.
Author: Martin Pettersson
Latest version: 0.1.0

# Transpose

A simple little library making transposing values between different ranges a
breeze.

For further insights, read on.

- [Installation](#installation)
- [Transpose](#transpose)
- [Value Proxy](#value-proxy)
- [Range Proxy](#range-proxy)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/transpose
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Transpose

Let's start with an example and transpose the value `50` from one range to
another.

```typescript
import { transpose } from "@n7e/transpose";

transpose(50).from([0, 100]).to([0, 10]); // -> 5
transpose(50).from([0, 100]).to([-5, 5]); // -> 0
transpose(50).from([0, 100]).to([-12, -2]); // -> -7
```


## Value Proxy

To reuse the same value for different transpositions the `transpose()` function
produces a value proxy object that can be reused.

```typescript
import { transpose } from "@n7e/transpose";

const valueProxy = transpose(50);

valueProxy.from([0, 100]).to([0, 10]); // -> 5
valueProxy.from([0, 100]).to([-5, 5]); // -> 0
```


## Range Proxy

To reuse the same value and origin range for different transpositions the value
proxy object produces a range proxy object that can be reused.

```typescript
import { transpose } from "@n7e/transpose";

const rangeProxy = transpose(50).from([0, 100]);

rangeProxy.to([0, 10]); // -> 5
rangeProxy.to([-5, 5]); // -> 0
```
npm package: @n7e/validation-provider
Description: A service provider for @n7e/validation.
Author: Martin Pettersson
Latest version: 0.1.0

# Validation Provider

A service provider for `@n7e/validation`.

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/validation-provider
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n7e/yaml-configuration-source
Description: A YAML file configuration source for @n7e/configuration.
Author: Martin Pettersson
Latest version: 0.1.3

# YAML Configuration Source

A YAML file configuration source for `@n7e/configuration`.

For further insights, read on.

- [Installation](#installation)
- [Usage](#usage)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/yaml-configuration-source
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*


## Usage

To use this configuration source simply pass an absolute file path to the
constructor. No further configuration is needed nor available.

```typescript
import { YamlConfigurationSource } from "@n7e/yaml-configuration-source";

configurationBuilder.addConfigurationSource(new YamlConfigurationSource("/path/to/file.yml"));
```
npm package: @n7e/yaml-configuration-source-provider
Description: Enables YAML configuration sources for @n7e/configuration-provider.
Author: Martin Pettersson
Latest version: 0.1.0

# YAML Configuration Source Provider

Enables YAML configuration sources for `@n7e/configuration-provider`.

For further insights, read on.

- [Installation](#installation)


## Installation

To install this library use your favorite package manager. No additional
steps are required to start using the library.

```shell
npm install @n7e/yaml-configuration-source-provider
```

*This library is implemented in TypeScript but can be used with JavaScript
without any additional steps.*
npm package: @n8body/tiptap-spoiler
Description: TipTap React extension for spoilers
Author: n8body
Latest version: 1.0.4

# tiptap-spoiler
Just a simple React extension (actually two extensions) for [TipTap](https://github.com/ueberdosis/tiptap) to add spoilers to the editor.

### Installing
Via [npm](https://www.npmjs.com/package/@n8body/tiptap-spoiler):
```
npm i @n8body/tiptap-spoiler
```

### What's in there
The extensions are - ```SpoilerEditor``` and ```SpoilerOutput```. The names are pretty self-descriptive...

You can provide the following options to them: 
| ```SpoilerEditor``` Options | Type | Optional | Description |
| ------ | ------ | ----- | ----- |
| spoilerClass | ```string``` | No | Class name for the spoiler in the editor |
| inputRegex | ```RegExp``` | Yes | Input regular expression, the default one matches ```\|\| text \|\|``` |
| pasteRegex | ```RegExp``` | Yes | Same as the previous one, but for pasting |
| inline | ```boolean``` | Yes | Sets extension's ```inline``` and ```group``` properties. Default: ```true``` |
| inclusive | ```boolean``` | Yes | Sets extension's ```inclusive``` property. Default: ```false``` |

and

| ```SpoilerOutput``` Options | Type | Optional | Description |
| ------ | ------ | ----- | ----- |
| spoilerClass | ```string``` | No | Main spoiler class  | 
| spoilerOpenClass | ```string``` | No | Open spoiler class | 
| spoilerCloseClass | ```string``` | No | Closed spoiler class  |
| as | ```ElementType``` | Yes | Tag to be rendered. Default: ```'span'``` |
| inline | ```boolean``` | Yes | Sets extension's ```inline``` and ```group``` properties. Default: ```true``` |
| content | ```string``` | Yes | Sets extension's ```content``` property. Default: ```'inline*'``` |

To be said: you can omit some of the classes, depending on your CSS - just be sure, that it works properly.

Also there is a function ```cleanSpoilersHTML``` that removes ```class``` atrtributes from ```spoiler``` tags.

### Example
Exemplary TipTap instance for editing:
```ts
const editor = useEditor({
  extensions: [
    SpoilerEditor.configure({
      spoilerClass: 'beautiful-spoiler',
      inputRegex: /(?:^|\s)((?:\[spoiler\])((?:[^||]+))(?:\[\/spoiler\]))$/, // to match [spoiler]text[/spoiler]
      pasteRegex: /(?:^|\s)((?:\[spoiler\])((?:[^||]+))(?:\[\/spoiler\]))/g, // same here
      inclusive: true,
    })
  ],
  content: '',
  editable: true,
})
```
...and for output:
```ts
const editor = useEditor({
  extensions: [
    SpoilerOutput.configure({
      spoilerClass: 'beautiful-spoiler',
      spoilerOpenClass: 'open-spoiler',
      spoilerCloseClass: 'closed-spoiler',
      as: 'code',
      inline: false,
    })
  ],
  content: '<p>The best website for manga is <spoiler>manga.ovh</spoiler></p>',
  editable: false,
})
```
And to get clean HTML from your editor:
```ts
cleanSpoilersHTML(editor.getHTML())
```
### That's it!
If you have any questions, don't hesitate to contact me or open an issue.
npm package: @n8d/htwoo-core
Description: hTWOo is a Fluent Design Framework purely in HTML and CSS
Author: Stefan Bauer
Latest version: 2.7.1

# hTWOo UI framework

hTWOo (H₂0) UI is an open source, community driven alternative UI Framework for Microsoft's Fluent UI Design experiences. It is built based on state-of-the-art web technologies.

Main focus of this project is to be used in SharePoint Framework, Microsoft Teams customisations or any other of your used cases. 

[![Fluent](https://img.shields.io/badge/Fluent-blue)](https://www.youtube.com/watch?v=cJMwBwFj5nQ) ![DOM manipulation free](https://img.shields.io/badge/100%25-DOM%20manipulation%20free-orange) ![license](https://img.shields.io/github/license/n8design/liquid)

![Be like water][logo]

## Installation

```sh
npm install --save-dev @n8d/htwoo-core
```

## Usage

* [hTWOo usage in 'No framework' web part with SPFx](https://lab.n8d.studio/htwoo/how-to/how-to-spfx-html.html)
* [hTWOo usage in React web part with SPFx](https://lab.n8d.studio/htwoo/how-to/how-to-spfx-react.html) 
* [hTWOo usage in Angular Elements web part with SPFx](https://lab.n8d.studio/htwoo/how-to/how-to-spfx-angular-elements.html)

## Documentation

* [General Documentation](https://lab.n8d.studio/htwoo/)
* [Pattern Style Guide](https://lab.n8d.studio/htwoo/htwoo-core/)

## other Resource

* [hTWOo React](https://www.npmjs.com/package/@n8d/htwoo-react) - ReactJS implementation of hTWOo components - [Documentation](https://lab.n8d.studio/htwoo/htwoo-react/?path=/story/introduction-getting-started--page)
* [hTWOo Icons](https://www.npmjs.com/package/@n8d/htwoo-icons) - A set of all Fluent Design Icons

> **Don't get set into one form, adapt it and build your own, and let it grow, be like water.** Empty your mind, be formless, shapeless — like water. Now you put water in a cup, it becomes the cup; You put water into a bottle it becomes the bottle; You put it in a teapot it becomes the teapot. Now water can flow or it can crash. Be water, my friend. - [Bruce Lee](https://www.youtube.com/watch?v=cJMwBwFj5nQ))


**Contributor:** You ❤️

[logo]: https://lab.n8d.studio/htwoo/images/launch-img.jpg "Be like water and adopt fast"
npm package: @n8d/htwoo-icons
Description: Icon set for Fluent Design implementations. hTWOo is a Fluent Design Framework purely in HTML and CSS - This libary provide all Fluent UI System Icons as SVG and SVG Symbol Sets
Author: Stefan Bauer
Latest version: 1.0.1

## hTWOo UI Icons

This pagckage containes all Fluent UI Design icons the following flavors are proided:

- PNG
- SVG
- SVG Symbol Sets

Overall this package provides more than 3000 different icons for use in your applications. The content is devided in the following sets:

```txt
.
├── fluent-ui-filetypes
│   ├── png
│   └── svg
├── fluent-ui-filled
│   ├── png
│   └── svg
└── fluent-ui-regular
    ├── png
    └── svg
```

* File types contain all [Office File Types as SVG and PNG](https://developer.microsoft.com/en-us/fluentui#/styles/web/file-type-icons)
* Fluent UI filled
* Fluent UI regular

The symbol sets can be found directly in the corresponding root of the folders.
* File types: fluent-ui-filetypes/fluent-ui-filetypes.svg
* Fluent Design Filled: fluent-ui-filled/fluent-ui-filled.svg
* Fluent Design Regular: fluent-ui-filled/fluent-ui-regular.svg

Use with caution: The Fluent Design regular and filled contain around 1.5MB of icons.

> Must watch: For a better accessibility experience please reject icon fonts. Kudos to Seren Davies on here talk [Death to icon fonts 2015](https://www.youtube.com/watch?v=9xXBYcWgCHA)

## Installation

```sh
npm install --save-dev @n8d/htwoo-icons
```


## More information on hTWOo UI Famework

[hTWOo (H₂0) UI](https://lab.n8d.studio/htwoo/) is an open source, community driven alternative UI Framework for Microsoft's Fluent UI Design experiences. It is built based on state-of-the-art web technologies.

Main focus of this project is to be used in SharePoint Framework, Microsoft Teams customisations or any other of your used cases. 

[![Fluent](https://img.shields.io/badge/Fluent-blue)](https://www.youtube.com/watch?v=cJMwBwFj5nQ) ![DOM manipulation free](https://img.shields.io/badge/100%25-DOM%20manipulation%20free-orange) ![license](https://img.shields.io/github/license/n8design/liquid)

![Be like water][logo]

## Usage

* [hTWOo usage in 'No framework' web part with SPFx](https://lab.n8d.studio/htwoo/how-to/how-to-spfx-html.html)
* [hTWOo usage in React web part with SPFx](https://lab.n8d.studio/htwoo/how-to/how-to-spfx-react.html) 
* [hTWOo usage in Angular Elements web part with SPFx](https://lab.n8d.studio/htwoo/how-to/how-to-spfx-angular-elements.html)

## Documentation

* [General Documentation](https://lab.n8d.studio/htwoo/)
* [Pattern Style Guide](https://lab.n8d.studio/htwoo/htwoo-core/?p=all)

> **Don't get set into one form, adapt it and build your own, and let it grow, be like water.** Empty your mind, be formless, shapeless — like water. Now you put water in a cup, it becomes the cup; You put water into a bottle it becomes the bottle; You put it in a teapot it becomes the teapot. Now water can flow or it can crash. Be water, my friend. - [Bruce Lee](https://www.youtube.com/watch?v=cJMwBwFj5nQ))


**Contributor:** You ❤️

[logo]: https://lab.n8d.studio/htwoo/assets/htwoo.jpg "Be like water and adopt fast"
npm package: @n8dawgg/drop_down_menu
Description: A simple implementation of a drop down menu in Javascript. Extremely bare bones and relatively easy to modify.
Author: Nat Wheeler
Latest version: 1.0.0

# drop_down_menu

This is my implementation of a drop down menu in Javascript. It is incredibly bare bones and simple to use. You create a drop down menu by calling the function 'createDropDownMenu'. This function takes 3 arguments: The title of the menu, an array of button names that will be displayed when the title button is clicked, and an optional number that determines the height of each individual button (this is set to 21 by default).

The function returns an object with several values:
container                   : the div that contains the entire drop down menu, and should be appended to your DOM somewhere.
titleButton                 : the title button which, when clicked, will toggle the drop down menu.
expandableContainer         : the div that contains all of the drop down buttons. It is probably best not to modify it too much.
dropDownButtons             : an Array of all of the drop down buttons. You can add functionality to each button individually this way.
toggleDropDown              : function that toggles the drop down up and down. Triggered when you click the title button. 
addClassToDropDownButtons   : a helper function that adds a class to all of the drop down buttons.
adjustButtonHeight          : a helper function that changes the button height.
npm package: @n8io/jelly-beans
Description: A React component for generating visual lorem ipsum
Latest version: 0.2.0

[npm-url]: https://www.npmjs.com/package/@n8io/jelly-beans
[npm-image]: https://badge.fury.io/js/%40n8io%2Fjelly-beans.svg
[license-url]: https://github.com/n8io/jelly-beans/blob/main/LICENSE
[demo-url]: https://codesandbox.io/s/n8iojelly-beans-chpjb?file=/src/App.js
[codecov-url]: https://codecov.io/gh/n8io/jelly-beans
[codecov-image]: https://codecov.io/gh/n8io/jelly-beans/branch/main/graph/badge.svg?token=QX5OWK8UN5

<p align="center">
  <img src="https://raw.githubusercontent.com/n8io/jelly-beans/main/logo.gif"/>
</p>

# jelly-beans

[![npm][npm-image]][npm-url] [![codecov][codecov-image]][codecov-url]


> A React component for generating visual lorem ipsum

Play with the [demo][demo-url]

## Example Usage

```jsx
import React from "react";
import ReactDOM from "react-dom";
import { JellyBeans } from "@n8io/jelly-beans";

ReactDOM.render(JellyBeans, document.getElementById('root'));
```

### Installation

Available via [npm](https://www.npmjs.com/package/@n8io/jelly-beans)

```shell
npm install -S @n8io/jelly-beans

# -OR-

yarn add @n8io/jelly-beans
```

or [unpkg](unpkg.com) cdn

```html
<script src="https://unpkg.com/@n8io/jelly-beans/build/static/js/main.js"></script>
```

## License

[MIT](license-url)