open-index/open-npm huggingface dataset:
npm package: @horizr/cli
Description: ![horizr](https://github.com/horizr/art/raw/main/horizr-banner.jpg)
Author: Moritz Ruth
Latest version: 2.0.0

![horizr](https://github.com/horizr/art/raw/main/horizr-banner.jpg)

# horizr CLI
![npm](https://img.shields.io/npm/v/@horizr/cli?color=white&label=latest%20version&logoColor=red&style=flat-square)

> A CLI tool for creating and maintaining Minecraft modpacks using the Fabric loader.

🎉 Features:
- Add mods from [Modrinth](https://modrinth.com/)
- Check for updates and view changelogs before applying them
- Export the pack to the [Modrinth format (`.mrpack`)](https://docs.modrinth.com/docs/modpacks/format_definition/)
- Export the pack to the [`packwiz`](https://packwiz.infra.link/) format
- HTTP-serve the `packwiz` export for usage with [`packwiz-installer`](https://packwiz.infra.link/tutorials/installing/packwiz-installer/)

## Usage

Because both [pkg](https://github.com/vercel/pkg) and [nexe](https://github.com/nexe/nexe) don’t support ES modules at the time of writing,
I can‘t publish executable files.

The only way of installing is therefore `npm`.

```sh
$ npm i -g @horizr/cli
```

Run any command with the `-h` flag to see the available options.

A new pack can be initialized using `horizr init <path>`.

## Contributing

I developed this tool primarily for my own packs, that’s why its missing some features I didn’t absolutely need.

Nevertheless, if you want a feature added, feel free to [create an issue](https://github.com/horizr/cli/issues/new).
A pull request would be even better.

Features I have in mind:
- List disabled source files
- Allow disabling static source files by adding `.disabled` to their name
- Import packwiz packs
npm package: @horka_tv/n8n-nodes-storage-kv
Description: A key-value storage node for n8n workflows to save and read data across executions.
Author: Joey Barbier
Latest version: 0.1.0

![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

# n8n-nodes-starter

This repo contains example nodes to help you get started building your own custom integrations for [n8n](n8n.io). It includes the node linter and other dependencies.

To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

## Prerequisites

You need the following installed on your development machine:

* [git](https://git-scm.com/downloads)
* Node.js and npm. Minimum version Node 16. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
* Install n8n with:
	```
	npm install n8n -g
	```
* Recommended: follow n8n's guide to [set up your development environment](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/).


## Using this starter

These are the basic steps for working with the starter. For detailed guidance on creating and publishing nodes, refer to the [documentation](https://docs.n8n.io/integrations/creating-nodes/).

1. [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template repository.
2. Clone your new repo:
    ```
    git clone https://github.com/<your organization>/<your-repo-name>.git
    ```
3. Run `npm i` to install dependencies.
4. Open the project in your editor.
5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
6. Update the `package.json` to match your details.
7. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.
8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
10. Update the LICENSE file to use your details.
11. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

## More information

Refer to our [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building your own nodes.

## License

[MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)
npm package: @horlarme/countdowntimer
Description: Start a countdown timer with ease.
Author: Lawal Oladipupo
Latest version: 1.3.2

# CountDownTimer
Start coundown with ease using this javascript file.

## Installation
- Download the file 'index.js' and include it in your html file
```html
<head>
    <title></title>
    <script src="./index.js"></script>
</head>
```

## Configuration
- Attach date to any element using this attribute 'dct-date' with the date as value '2018 01 20'
```html
    <p cdt-date="2017 01 20"></p>
```
- Set the element to display the count down as follows
```html
    <p>Days: <span cdt-days></span></p>
    <p>Hours: <span cdt-hours></span></p>
    <p>Minutes <span cdt-minutes></span></p>
    <p>Seconds: <span cdt-seconds></span></p>
```

- Start the countdown
```html
    <script>
        CDT.start();
    </script>
```
Then all is set, sit back and see your count down in action.
npm package: @horlarmeday/make-express-app
Description: A CLI to bootstrap well structured express project
Author: Mahmud Ajao
Latest version: 1.0.0

# Make Express App

Make express app is a CLI to bootstrap new express projects.

## Installation

```bash
npm install -g make-express-app
# or 
npx make-express-app
```

## Creating an App
You’ll need to have Node 10.16.0 or later version on your local development machine. It is highly recommended using the latest LTS version.

To create a new app, you may choose one of the following methods:

#### npx

```bash
npx make-express-app -n my-app
```
_where `my-app` is the name of your project_

__note: there should no space in your project name__

After running this command, you will be prompted for some more questions, just follow it to the end, a `my-app` directory will be created 
inside the current folder. Inside that directory contains the initial project structure.

#### Global Installation
If you installed globally i.e you ran `npm install -g make-express-app`. To create a new project run the command below
```bash
make-express-app -n my-app
```

To skip all prompts and go for defaults options, run the command below.
```bash
make-express-app --yes
# or 
npx make-express-app --yes
```
_`-y` can be used in place of `--yes`_

After creating project and installation is done, you can open your project folder.
```bash
cd my-app
npm run dev
```

## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

## License
[MIT](https://choosealicense.com/licenses/mit/)
npm package: @horlo/brick-bj
Description: Vue solution for quickly building pages
Latest version: 0.0.11

#### 项目说明
http://brick.udplat.com/about-brick
#### npm配置
##### 切换镜像地址，建议升级至 Nodejs 8.x, npm 5.x，建议使用nrm工具管理npm源
```bash
    npm config set registry http://nexus.heisea.cn/nexus/content/groups/npm-all/

```

#### 发包流程

###### 1.修改注册仓库（已切换的可以忽略）

```bash
    npm config set registry http://nexus.heisea.cn/nexus/content/groups/npm-all/
```

###### 2.添加用户，用户名密码是OA账号
```bash
    npm adduser
    npm login
```

###### 3.发布前必须修改版本号
```bash
    <!-- 版本号说明 -->
    # major 大版本升级，不向下兼容
    # minor 增加新功能
    # patch 修订，bug 修复
    npm version [<newversion> | major | minor | patch]
```

###### 4.发包（注意：npm 包需要保持相当高的可用性、稳定性，不允许随意发包，发包前需通过单元测试、业务测试）
```bash
    npm publish
```
npm package: @horloge/vite-plugin-archive-clean
Description: Vite plugin for archive folder
Author: mralenzhong
Latest version: 0.0.12

<!--
 * @Author: MrAlenZhong
 * @Date: 2023-03-21 19:38:46
 * @LastEditors: MrAlenZhong
 * @LastEditTime: 2023-03-22 16:38:58
 * @Description: @horloge/vite-plugin-archive-clean
-->
# @horloge/vite-plugin-archive-clean
[![npm](https://img.shields.io/npm/v/vite-plugin-archive-clean)](https://www.npmjs.com/package/vite-plugin-archive-clean)

Vite plugin for packing distribution/build folder into a zip file.

## Install

```bash
npm i -D @horloge/vite-plugin-archive-clean
```

## Usage

```ts
// vite.config.js

import { defineConfig } from "vite";
import archive from "@horloge/vite-plugin-archive-clean";

export default defineConfig({
  plugins: [archive({
    filesDir: './dist',   //
    archiveName: 'dist',  // dist.tar
    archiveType: 'tar',   // tar
    archiveAfterClean: true // archive after clean input directory
  })],
});
```

## Options

```ts
export interface Options {
 /**
   * Input Directory
   * @default `dist`
   */
  filesDir?: string;
  /**
   * Archive Name
   * @default `dist.tar`
   */
  archiveName?: string;
  /**
   * ArchiveType
   * @default `tar`
   */
  archiveType?: "tar" | "zip" | "tgz";
  /**
   * archive after clean Input Directory
   * @default true
   */
  archiveAfterClean?: boolean;
}
```
## License

MIT, see [the license file](./LICENSE)
npm package: @horlys/elysia-response
Description: 📦 A plugin for Elysia to standardize responses
Author: Horlys
Latest version: 1.0.1

# Elysia Response
This library is a plugin for Elysia that allows you to standardize your answers, so you have a single format.

It's part of the “Horlys” suite, a project designed to bring together libraries useful in the development of javascript projects.

## Installation
```bash
bun install @horlys/elysia-response
```

## Usage
```typescript
import { Elysia } from "elysia";
import { response } from "@horlys/elysia-response";

const app = new Elysia()
  .use(response)
  .get("/", ({ respond }) => {
    return respond(200, "Hello World", { hello: "world" });
  })
````

## Documentation

### Response
Here is the object returned in the response:

```
{
  status: number;
  message: string;
  data: any;
}
```

### Function
Here is the arguments of the respond function:
- **status**: number
- **message**: string
- **data**: object
npm package: @horlys/logger
Description: 🪵 A lightweight and easy-to-use logging utility for JavaScript projects. 
Author: Horlys
Latest version: 1.0.1

# Logger
This library provides a simple logging utility for javascript projects. It supports various log levels and can be easily integrated into existing projects.
It's part of the “Horlys” suite, a project designed to bring together libraries useful in the development of javascript projects.

## Installation
`npm install @horlys/logger`

## Usage
```
import Logger from '@horlys/logger';

// Without emoji
const logger = new Logger();

// With emoji
const loggerWithEmoji = new Logger({ emoji: true });

// Info
logger.info('This is an info message');
// Success
logger.success('This is a success message');
// Warning
logger.warn('This is a warning message');
// Error
logger.error('This is an error message');
// Log
logger.log('This is a log message');
// Debug
logger.debug('This is a debug message');
```

### Preview
#### With emoji
![Preview with emoji](assets/emoji.png)
#### Without emoji
![Preview without emoji](assets/noemoji.png)

## Documentation
### Configuration
Here is the definition of the configuration object of the class :
```typescript
{
  emoji: boolean;
}
```

### Methods
Here is the definition of the methods of the class :
```typescript
{
  info(args: any[]): void;
  success(args: any[]): void;
  warn(args: any[]): void;
  error(args: any[]): void;
  log(args: any[]): void;
  debug(args: any[]): void;
}
```
npm package: @hornbeck/fluid-typography
Description: Simple configurable fluid typography and dynamic modular font scale in pure css.
Author: Mads Hornbeck
Latest version: 1.0.0

# @hornbeck/fluid-typography

![npm](https://img.shields.io/npm/v/@hornbeck/fluid-typography)
![npm](https://img.shields.io/npm/l/@hornbeck/fluid-typography)
![npm](https://img.shields.io/npm/dw/@hornbeck/fluid-typography)
![npm bundle size](https://img.shields.io/bundlephobia/min/@hornbeck/fluid-typography)
![npm bundle size](https://img.shields.io/bundlephobia/minzip/@hornbeck/fluid-typography)

Simple configurable fluid typography and dynamic modular font scale in pure css.

## Install

```bash
npm install --save @hornbeck/fluid-typography
```

## Example

- [codesandbox](https://codesandbox.io/s/hornbeck-fluid-typography-x2myd?file=/src/styles.css)

## Usage

Import the stylesheet in your solution.

```js
import "@hornbeck/fluid-typography";
```

Change base configuation variables if needed:

```css
:root {
  /* Point where the smallest font size and scale should be used */
  --ft-width-min: 24; /* em */
  /* Point where the largest font size and scale should be used */
  --ft-width-max: 90; /* em */
  /* Minimum font size on the :root element, in rem */
  --ft-font-min: 1; /* rem */
  /* Maximum font size on the :root element, in rem */
  --ft-font-max: 1.5; /* rem */
  /* The modular scale used at the smallest point */
  --ft-ratio-min: 1.125;
  /* The modular scale used at the largest point */
  --ft-ratio-max: 1.25;
}
```

Use the fluid sizes in your css for e.g. your `font-size` or `margin`:

```css
p {
  font-size: var(--fluid-0);
}

h6 {
  font-size: var(--fluid-1);
}

h5 {
  font-size: var(--fluid-2);
}

h4 {
  font-size: var(--fluid-3);
}

h3 {
  font-size: var(--fluid-4);
}

h2 {
  font-size: var(--fluid-5);
}

h1 {
  font-size: var(--fluid-6);
}
```
npm package: @hornbeck/react-carousel
Description: ![npm](https://img.shields.io/npm/v/@hornbeck/react-carousel) ![npm](https://img.shields.io/npm/l/@hornbeck/react-carousel) ![npm](https://img.shields.io/npm/dw/@hornbeck/react-carousel) ![npm bundle size](https://img.shields.io/bundlephobia/min/@hornbeck
Author: Mads Hornbeck
Latest version: 0.2.2

# @hornbeck/react-carousel

![npm](https://img.shields.io/npm/v/@hornbeck/react-carousel)
![npm](https://img.shields.io/npm/l/@hornbeck/react-carousel)
![npm](https://img.shields.io/npm/dw/@hornbeck/react-carousel)
![npm bundle size](https://img.shields.io/bundlephobia/min/@hornbeck/react-carousel)
![npm bundle size](https://img.shields.io/bundlephobia/minzip/@hornbeck/react-carousel)

Simple and configurable carousel for modern browsers.

```bash
npm install --save @hornbeck/react-carousel
```

## Documentation

- [Setup](./docs/Setup.md)
- [API](./docs/API.md)
- Examples - TODO
npm package: @hornbeck/react-form
Description: ![npm](https://img.shields.io/npm/v/@hornbeck/react-form) ![npm](https://img.shields.io/npm/l/@hornbeck/react-form) ![npm](https://img.shields.io/npm/dw/@hornbeck/react-form) ![npm bundle size](https://img.shields.io/bundlephobia/min/@hornbeck/react-form)
Author: Mads Hornbeck
Latest version: 0.8.6

# @hornbeck/react-form

![npm](https://img.shields.io/npm/v/@hornbeck/react-form)
![npm](https://img.shields.io/npm/l/@hornbeck/react-form)
![npm](https://img.shields.io/npm/dw/@hornbeck/react-form)
![npm bundle size](https://img.shields.io/bundlephobia/min/@hornbeck/react-form)
![npm bundle size](https://img.shields.io/bundlephobia/minzip/@hornbeck/react-form)

Simple and configurable input and form handling with hooks.

```bash
npm install --save @hornbeck/react-form
```

## Documentation

- [Setup](./docs/Setup.md)
- [API](./docs/API.md)
- [Examples](https://codesandbox.io/s/hornbeckreact-form-examples-yy7re)
npm package: @hornbeck/react-modals
Description: This is a package for efficient and configurable way of handling modals. The modals are promise based, meaning every modal is a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). This allows for you to not
Author: Mads Hornbeck
Latest version: 0.5.0

# @hornbeck/react-modals

This is a package for efficient and configurable way of handling modals.
The modals are promise based, meaning every modal is a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).
This allows for you to not only not have to worry about the open / close state of the modal.
But also allow for the modals to be integrated seemlessly into your control flows.

```bash
npm install --save @hornbeck/react-modals
```

## Documentation

- [Setup](./docs/Setup.md)
- [API](./docs/API.md)
- [Examples](https://codesandbox.io/s/hornbeckreact-modals-examples-nnhfj)
npm package: @hornbeck/scroll-lock
Description: Simple and lightweight scroll lock for react and vanilla js.
Author: Mads Hornbeck
Latest version: 1.0.9

# @hornbeck/scroll-lock

Simple and lightweight scroll lock for react and vanilla js.

```bash
npm install --save @hornbeck/scroll-lock
```

## Documentation

### React hook

```js
import { useScrollLock } from "@hornbeck/scroll-lock";

function App() {
  const [lockScroll, setLockScroll] = React.useState(false);

  useScrollLock(lockScroll);
}
```

Vanilla js

```js
import { scrollLock } from "@hornbeck/scroll-lock";

// Turn on scroll lock.
const off = scrollLock();

// Turn off scroll lock.
off();
```
npm package: @hornbeck/validators
Description: ![npm](https://img.shields.io/npm/v/@hornbeck/validators) ![npm](https://img.shields.io/npm/l/@hornbeck/validators) ![npm](https://img.shields.io/npm/dw/@hornbeck/validators) ![npm bundle size](https://img.shields.io/bundlephobia/min/@hornbeck/validators)
Author: Mads Hornbeck
Latest version: 1.0.1

# @hornbeck/validators

![npm](https://img.shields.io/npm/v/@hornbeck/validators)
![npm](https://img.shields.io/npm/l/@hornbeck/validators)
![npm](https://img.shields.io/npm/dw/@hornbeck/validators)
![npm bundle size](https://img.shields.io/bundlephobia/min/@hornbeck/validators)
![npm bundle size](https://img.shields.io/bundlephobia/minzip/@hornbeck/validators)

Validator functions for usage in form.

```bash
npm install --save @hornbeck/validators
```

## Documentation

All the functions are automatically curried and should be easy to use for any usecase.

This is to allow for variable amount of prefilling of values.
All of the functions can be called in any of the follow ways.

```js
import { max } from "@hornbeck/validators";

const max12 = max(12);

const max12WithMessage = max12("Message");

const max13WithMessage = max(13, "Message");

// Return "Message" if `a` is smaller than 12, otherwise undefined.

max12WithMessage(a);
max12("Message", a);
max(12, "Message", a);
max(12)("Message")(a);
```

### `schema`

Using `schema` you'll be able to define the rules for a validation function by
passing in an object in the same shape as your values.

It automatically wraps the entire validation result if any of your validations are run asynchronously.

```js
import { schema, required, email } from "@hornbeck/validators";

const validate = schema({
    firstName: required("Required"),
    email: [required("Required"), email("Must be a valid email")]
    address: {
        line1: required("Required"),
        postcode: required("Required"),
    }
})

validate({
    firstName: "",
    email: "asdf@",
    address: {
        line1: "",
        postcode: "",
    },
})
// returns
{
    firstName: "Required",
    email: "Must be a valid email",
    address: {
        line1: "Required",
        postcode: "Required",
    },
}
```

### Validators

- required
- maxLength
- minLength
- max
- min
- pattern
- positive
- negative

- creditCard - validate the format of credit card number. (disclaimer: this only verifies that a credit card number matches the format, it does _not_ validate or verify the creditcard is actually usable)
- guid
- email

- validateFn - a helper for creating your own validation functions

Note: the following two validators are made specifically for @hornbeck/react-form, but a similar thing can probably be done for any other form handling package you use.

- smaller
- greater
npm package: @hornjs/evt
Description: Typed EventTarget-compatible event dispatching with cross-platform-consistent behavior.
Author: Maofeng
Latest version: 0.0.4

# evt

[English](./README.md)

提供跨平台一致行为的、类型化的 `EventTarget` 兼容事件分发。

`evt` 提供了一个兼容 `EventTarget` 的小型事件分发器，适合需要以下能力的库：

- 类型化事件映射
- 可预测的监听器分发行为
- 不依赖不同运行时内部的 `EventTarget` 实现细节
- 可选的、可取消的 `"error"` 错误事件

## 安装

```bash
pnpm add @hornjs/evt
```

## 用法

```ts
import { EventDispatcher } from "@hornjs/evt";

type Events = {
  ping: Event;
  message: CustomEvent<{ text: string }>;
};

const dispatcher = new EventDispatcher<Events>();

dispatcher.addEventListener("message", function (event) {
  console.log(event.detail.text);
  console.log(this === dispatcher); // true
});

dispatcher.dispatchEvent(
  new CustomEvent("message", {
    detail: { text: "hello" },
  }),
);
```

## 类型化子类

listener 中的 `this` 会被推导为具体的分发器实例，因此继承后的子类仍然可以保留自己的实例类型。

```ts
class Bus extends EventDispatcher<{ ping: Event }> {
  label = "bus";
}

const bus = new Bus();

bus.addEventListener("ping", function () {
  console.log(this.label); // "bus"
});
```

## 错误事件

默认情况下，listener 抛出的异常会通过全局错误上报通道报告，但不会中断当前 dispatch 循环。

如果你希望 listener 抛错时先派发一个自定义事件，可以提供 `createErrorEvent`。

```ts
import { EventDispatcher } from "@hornjs/evt";

class ListenerErrorEvent extends Event {
  constructor(
    readonly error: unknown,
    readonly causeEvent: Event,
  ) {
    super("error", { cancelable: true });
  }
}

type Events = {
  ping: Event;
  error: ListenerErrorEvent;
};

const dispatcher = new EventDispatcher<Events>({
  createErrorEvent(error, causeEvent) {
    return new ListenerErrorEvent(error, causeEvent);
  },
});

dispatcher.addEventListener("error", (event) => {
  console.error(event.error);
  console.log(event.causeEvent.type); // "ping"
  event.preventDefault(); // 标记该错误已被处理
});
```

你也可以返回自己的事件类型：

```ts
class ServerErrorEvent extends Event {
  constructor(
    readonly error: unknown,
    readonly causeEvent: Event,
  ) {
    super("server-error", { cancelable: true });
  }
}

type Events = {
  ping: Event;
  "server-error": ServerErrorEvent;
};

const dispatcher = new EventDispatcher<Events>({
  createErrorEvent(error, causeEvent) {
    return new ServerErrorEvent(error, causeEvent);
  },
});
```

如果返回的事件没有被取消，原始异常仍然会继续通过全局错误通道上报。如果你希望 `preventDefault()` 表示“错误已处理”，请确保返回的事件是可取消的。

你也可以覆盖未处理 listener 错误的上报方式：

```ts
const dispatcher = new EventDispatcher<Events>({
  reportError(error, causeEvent) {
    console.error("listener failure", error, causeEvent?.type);
  },
});
```

第二个参数是可选的，因此 `globalThis.reportError` 仍然可以直接赋值给这个选项。

## 行为说明

- 事件名来自事件映射中的字符串 key。
- listener 的身份匹配规则和 DOM 一致：`listener + capture`。
- `once` 和 `signal` 的行为与 `addEventListener()` 保持一致。
- 当前只支持单一 target 上的事件派发，不模拟 DOM 的捕获和冒泡传播过程。
- `event.target`、`event.currentTarget` 和 `event.eventPhase` 会被调整为符合 DOM 风格的 dispatch 语义。
- 实现内部使用自定义的 listener registry，而不是委托给宿主运行时的 `EventTarget`，以保证跨平台一致性。

## API

- `EventDispatcher<EventMap>`
- `EventDispatcherOptions`
- `EVENT_PHASE_NONE`
- `EVENT_PHASE_AT_TARGET`
npm package: @hornts/common
Description: [![npm](https://img.shields.io/npm/v/@hornts/common)](https://www.npmjs.com/package/@hornts/common) [![downloads](https://img.shields.io/npm/dm/@hornts/common)](https://www.npmjs.com/package/@hornts/common)
Author: Alexey Vasyukov
Latest version: 0.0.5

# Horn
[![npm](https://img.shields.io/npm/v/@hornts/common)](https://www.npmjs.com/package/@hornts/common)
[![downloads](https://img.shields.io/npm/dm/@hornts/common)](https://www.npmjs.com/package/@hornts/common)

[![build](https://github.com/hornts/horn/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/hornts/horn/actions/workflows/build.yml)
[![tests](https://github.com/hornts/horn/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/hornts/horn/actions/workflows/tests.yml)

🦄 **Horn** is an extendable web-framework with IoC (Inversion of Control) container inside.

⚠️ **WARNING!** This library is under construction and can change API at any time. 🏗

## Description

This package contains common Horn functionality.

## Documentation

To work with **Horn** read [documentation](https://hornts.github.io/horn) first.

## License
**Horn** is under [MIT License](https://github.com/hornts/horn/blob/master/LICENSE) for everyone.
npm package: @hornts/core
Description: [![npm](https://img.shields.io/npm/v/@hornts/core)](https://www.npmjs.com/package/@hornts/core) [![downloads](https://img.shields.io/npm/dm/@hornts/core)](https://www.npmjs.com/package/@hornts/core)
Author: Alexey Vasyukov
Latest version: 0.0.5

# Horn
[![npm](https://img.shields.io/npm/v/@hornts/core)](https://www.npmjs.com/package/@hornts/core)
[![downloads](https://img.shields.io/npm/dm/@hornts/core)](https://www.npmjs.com/package/@hornts/core)

[![build](https://github.com/hornts/horn/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/hornts/horn/actions/workflows/build.yml)
[![tests](https://github.com/hornts/horn/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/hornts/horn/actions/workflows/tests.yml)

🦄 **Horn** is an extendable web-framework with IoC (Inversion of Control) container inside.

⚠️ **WARNING!** This library is under construction and can change API at any time. 🏗

## Description

This package contains core Horn functionality.

## Documentation

To work with **Horn** read [documentation](https://hornts.github.io/horn) first.

## License
**Horn** is under [MIT License](https://github.com/hornts/horn/blob/master/LICENSE) for everyone.
npm package: @hornts/http-express
Description: [![npm](https://img.shields.io/npm/v/@hornts/http-express)](https://www.npmjs.com/package/@hornts/http-express) [![downloads](https://img.shields.io/npm/dm/@hornts/http-express)](https://www.npmjs.com/package/@hornts/http-express)
Author: Alexey Vasyukov
Latest version: 0.0.5

# Horn
[![npm](https://img.shields.io/npm/v/@hornts/http-express)](https://www.npmjs.com/package/@hornts/http-express)
[![downloads](https://img.shields.io/npm/dm/@hornts/http-express)](https://www.npmjs.com/package/@hornts/http-express)

[![build](https://github.com/hornts/horn/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/hornts/horn/actions/workflows/build.yml)
[![tests](https://github.com/hornts/horn/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/hornts/horn/actions/workflows/tests.yml)

🦄 **Horn** is an extendable web-framework with IoC (Inversion of Control) container inside.

⚠️ **WARNING!** This library is under construction and can change API at any time. 🏗

## Description

This package contains HTTP [Express v4.x](https://expressjs.com/) adapter for Horn.

## Documentation

To work with **Horn** read [documentation](https://hornts.github.io/horn) first.

## License
**Horn** is under [MIT License](https://github.com/hornts/horn/blob/master/LICENSE) for everyone.
npm package: @hornts/http-fastify
Description: [![npm](https://img.shields.io/npm/v/@hornts/http-fastify)](https://www.npmjs.com/package/@hornts/http-fastify) [![downloads](https://img.shields.io/npm/dm/@hornts/http-fastify)](https://www.npmjs.com/package/@hornts/http-fastify)
Author: Alexey Vasyukov
Latest version: 0.0.5

# @hornts/http-fastify
[![npm](https://img.shields.io/npm/v/@hornts/http-fastify)](https://www.npmjs.com/package/@hornts/http-fastify)
[![downloads](https://img.shields.io/npm/dm/@hornts/http-fastify)](https://www.npmjs.com/package/@hornts/http-fastify)

[![build](https://github.com/hornts/horn/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/hornts/horn/actions/workflows/build.yml)
[![tests](https://github.com/hornts/horn/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/hornts/horn/actions/workflows/tests.yml)

🦄 **Horn** is an extendable web-framework with IoC (Inversion of Control) container inside.

⚠️ **WARNING!** This library is under construction and can change API at any time. 🏗

## Description

This package contains HTTP [Fastify](https://www.fastify.io/) adapter for Horn.

## Documentation

To work with **Horn** read [documentation](https://hornts.github.io/horn) first.

## License
**Horn** is under [MIT License](https://github.com/hornts/horn/blob/master/LICENSE) for everyone.
npm package: @hornwitser/discord_bridge
Description: Cluterio plugin bridging chat between instances and Discord
Author: Hornwitser
Latest version: 0.2.5

Clusterio Discord Bridge
========================

Bridges chat between a Discord channel and instances.

Installation
------------

Run the following commands in the folder Clusterio is installed to:

    npm install @hornwitser/discord_bridge
    npx clusteriocontroller plugin add @hornwitser/discord_bridge

Substitute clusteriocontroller with clusteriohost or clusterioctl if this a dedicate host or ctl installation respectively.

Once installed you need to set the `discord_bridge.bot_token` and `discord_bridge.channel_id` in the controller config to make the bridge operational.
npm package: @hornwitser/eternity_commands
Description: Clusterio plugin for custom commands to Eternity Cluster
Author: Hornwitser
Latest version: 0.1.5

# Eternity Cluster Commands

Plugin implementing custom commands used in the Eternity Cluster.


## Installation

Run the following commands in the folder clusterioctl is installed in

    npm install @hornwitser/eternity_commands
    npx clusterioctl plugin add @hornwitser/eternity_commands

## Usage

This is poorly documented, see --help for available commands.

    npx clusterioctl ec --help
npm package: @hornwitser/remote_scripts
Description: Clusterio plugin for running scripts remotely
Author: Hornwitser
Latest version: 0.1.3

# Clusterio Remote Scripts Plugin

Plugin allowing scripts to invoked on hosts remotely.


## Installation

Run the following commands in the folder Clusterio is installed to:

    npm install @hornwitser/remote_scripts
    npx clusteriocontroller plugin add @hornwitser/remote_scripts

Substitute clusteriocontroller with clusteriohost or clusterioctl if this a dedicate host or ctl installation respectively.

When installing on a host create a folder named `scripts` in the Clusterio host installation folder and pupulate it with scripts that you want to make remotely accessible.
See [/examples](/examples) for examples of scripts that can be added to hosts.

## Usage

Use clusterioctl to list and execute commands on the host.

    npx clusterioctl remote-scripts host-list my-host
    npx clusterioctl remote-scripts host-run my-host dl-factorio.sh 1.1.101
npm package: @hornwitser/server_select
Description: Clusterio plugin adding an in-game server select menu
Author: Hornwitser
Latest version: 2.0.1

# Server Select
Clusterio plugin for jumping between servers of a clusterio cluster


## Installation
Run the following commands in the folder Clusterio is installed to:

    npm install @hornwitser/server_select
    npx clusteriocontroller plugin add @hornwitser/server_select

Substitute clusteriocontroller with clusteriohost/clusterioctl if this a dedicated host/ctl installation.
npm package: @horoshop/app
Description: Quasar Framework local CLI
Author: Razvan Stoenescu
Latest version: 1.1.9

![Quasar Framework logo](https://cdn.quasar.dev/logo/svg/quasar-logo-full-inline.svg)

# Quasar Framework App CLI (Local)

> Build responsive Single Page Apps, **SSR Apps**, PWAs, Hybrid Mobile Apps and Electron Apps, all using the same codebase!, powered with Vue.

<img src="https://img.shields.io/npm/v/%40quasar/app.svg?label=@quasar/app">

[![Join the chat at https://chat.quasar.dev](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://chat.quasar.dev)
<a href="https://forum.quasar.dev" target="_blank"><img src="https://img.shields.io/badge/community-forum-brightgreen.svg"></a>
[![https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg](https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg)](https://good-labs.github.io/greater-good-affirmation)

Please submit a PR to https://github.com/quasarframework/quasar-awesome with your website/app/Quasar tutorial/video etc. Thank you!

## Supporting Quasar
Quasar Framework is an MIT-licensed open source project. Its ongoing development is made possible thanks to the support by these awesome [backers](https://github.com/rstoenescu/quasar-framework/blob/dev/backers.md).

**Please read our manifest on [Why donations are important](https://quasar.dev/why-donate)**. If you'd like to become a donator, check out [Quasar Framework's Donator campaign](https://donate.quasar.dev).

## Documentation

Head on to the Quasar Framework official website: [https://quasar.dev](https://quasar.dev)

## Stay in Touch

For latest releases and announcements, follow on Twitter: [@quasarframework](https://twitter.com/quasarframework)

## Chat Support

Ask questions at the official community Discord server: [https://chat.quasar.dev](https://chat.quasar.dev)

## Community Forum

Ask questions at the official community forum: [https://forum.quasar.dev](https://forum.quasar.dev)

## Contributing

I'm excited if you want to contribute to Quasar under any form (report bugs, write a plugin, fix an issue, write a new feature).

## Semver
Quasar is following [Semantic Versioning 2.0](https://semver.org/).

## License

Copyright (c) 2015-present Razvan Stoenescu

[MIT License](http://en.wikipedia.org/wiki/MIT_License)
npm package: @horoshop/cli
Description: Quasar Framework global CLI
Author: Razvan Stoenescu
Latest version: 1.0.2

![Quasar Framework logo](https://cdn.quasar.dev/logo/svg/quasar-logo-full-inline.svg)

# Quasar Framework CLI (Global)

> Build responsive Single Page Apps, **SSR Apps**, PWAs, Hybrid Mobile Apps and Electron Apps, all using the same codebase!, powered with Vue.

<img src="https://img.shields.io/npm/v/%40quasar/cli.svg?label=@quasar/cli">

[![Join the chat at https://chat.quasar.dev](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://chat.quasar.dev)
<a href="https://forum.quasar.dev" target="_blank"><img src="https://img.shields.io/badge/community-forum-brightgreen.svg"></a>
[![https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg](https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg)](https://good-labs.github.io/greater-good-affirmation)

Please submit a PR to https://github.com/quasarframework/quasar-awesome with your website/app/Quasar tutorial/video etc. Thank you!

## Supporting Quasar
Quasar Framework is an MIT-licensed open source project. Its ongoing development is made possible thanks to the support by these awesome [backers](https://github.com/rstoenescu/quasar-framework/blob/dev/backers.md).

**Please read our manifest on [Why donations are important](https://quasar.dev/why-donate)**. If you'd like to become a donator, check out [Quasar Framework's Donator campaign](https://donate.quasar.dev).

## Documentation

Head on to the Quasar Framework official website: [https://quasar.dev](https://quasar.dev)

## Stay in Touch

For latest releases and announcements, follow on Twitter: [@quasarframework](https://twitter.com/quasarframework)

## Chat Support

Ask questions at the official community Discord server: [https://chat.quasar.dev](https://chat.quasar.dev)

## Community Forum

Ask questions at the official community forum: [https://forum.quasar.dev](https://forum.quasar.dev)

## Contributing

I'm excited if you want to contribute to Quasar under any form (report bugs, write a plugin, fix an issue, write a new feature).

## Semver
Quasar is following [Semantic Versioning 2.0](https://semver.org/).

## License

Copyright (c) 2015-present Razvan Stoenescu

[MIT License](http://en.wikipedia.org/wiki/MIT_License)
npm package: @horoshop/ui
Description: Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time
Author: Razvan Stoenescu
Latest version: 1.1.10

![Quasar Framework logo](https://cdn.quasar.dev/logo/svg/quasar-logo-full-inline.svg)

# Quasar Framework UI Package

> Build responsive Single Page Apps, **SSR Apps**, PWAs, Hybrid Mobile Apps and Electron Apps, all using the same codebase!, powered with Vue.

<img src="https://img.shields.io/npm/v/quasar.svg?label=quasar">

[![Join the chat at https://chat.quasar.dev](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://chat.quasar.dev)
<a href="https://forum.quasar.dev" target="_blank"><img src="https://img.shields.io/badge/community-forum-brightgreen.svg"></a>
[![https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg](https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg)](https://good-labs.github.io/greater-good-affirmation)

Please submit a PR to https://github.com/quasarframework/quasar-awesome with your website/app/Quasar tutorial/video etc. Thank you!

## Supporting Quasar
Quasar Framework is an MIT-licensed open source project. Its ongoing development is made possible thanks to the support by these awesome [backers](https://github.com/rstoenescu/quasar-framework/blob/dev/backers.md).

**Please read our manifest on [Why donations are important](https://quasar.dev/why-donate)**. If you'd like to become a donator, check out [Quasar Framework's Donator campaign](https://donate.quasar.dev).

## Documentation

Head on to the Quasar Framework official website: [https://quasar.dev](https://quasar.dev)

## Stay in Touch

For latest releases and announcements, follow on Twitter: [@quasarframework](https://twitter.com/quasarframework)

## Chat Support

Ask questions at the official community Discord server: [https://chat.quasar.dev](https://chat.quasar.dev)

## Community Forum

Ask questions at the official community forum: [https://forum.quasar.dev](https://forum.quasar.dev)

## Contributing

I'm excited if you want to contribute to Quasar under any form (report bugs, write a plugin, fix an issue, write a new feature).

## Semver
Quasar is following [Semantic Versioning 2.0](https://semver.org/).

## License

Copyright (c) 2015-present Razvan Stoenescu

[MIT License](http://en.wikipedia.org/wiki/MIT_License)