open-index/open-npm huggingface dataset:
npm package: @raymondware/multiselect-react
Description: React Multiselect Component. Selection of elements can be triggered outside of component scope.
Author: raymondware
Latest version: 0.0.1

# MultiSelect React

> 

[![NPM](https://img.shields.io/npm/v/swigg.svg)](https://www.npmjs.com/package/swigg) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save multiselect-react
```

## Usage

```jsx
import { MultiSelect } from 'multiselect-react'

const App = () => (
  <MultiSelect
    ref={ref}
    {...MultiSelectListData}
    updateSelectedItems={updateSelectedItems}
    initialSelectedItemList={[ListItems[0], ListItems[3]]}
  >
    {ListItems}
  </MultiSelect>
)
```

## License

MIT © [raymondware](https://github.com/raymondware)
npm package: @raymondz/vector-math
Description: Lightweight immutable vector math utilities for physics simulations
Latest version: 1.1.0

# @raymondz/vector-math

A lightweight TypeScript vector library for 2D/3D math and physics simulations.

Includes:

- `VecBase<T>` — generic base class  
- `Vec2` — 2D vector  
- `Vec3` — 3D vector  
- Utility helpers  

## Design

- **Mutable by default** — methods modify the vector and return `this`
- **Immutable helpers** — past-tense methods return new vectors

Example:

```ts
v.scale(2);             // mutates v
const v2 = v.scaled(2); // returns new vector
```

## Example Usage

```ts
const a = new Vec2(3, 4);
const b = new Vec2(1, 2);

const distance = a.subbed(b).mag();

a.add(b).normalize().clampMag(5);
```

## Core Features

add, sub, scale

dot, mag, normalize

proj, clampMag

2D rotation (Vec2)

3D axis rotations (Vec3)
npm package: @raynaui-icons/core
Description: Framework-agnostic SVG icons from Rayna UI design kit with React and Vue component names
Latest version: 1.0.0

# @raynaui-icons/core

Framework-agnostic SVG icons from Rayna UI design kit with React and Vue component names.

## Installation

```bash
npm install @raynaui-icons/core
```

## Usage

### Import all icons

```javascript
// CommonJS
const { light, solid } = require('@raynaui-icons/core');

// ESM
import { light, solid } from '@raynaui-icons/core'
```

### Import specific style

```javascript
// CommonJS
const lightIcons = require('@raynaui-icons/core/light');
const solidIcons = require('@raynaui-icons/core/solid');

// ESM
import lightIcons from '@raynaui-icons/core/light';
import solidIcons from '@raynaui-icons/core/solid';
```

### Access individual icons

Each icon object contains:
- `name`: Original filename (e.g., "home", "user")
- `svg`: SVG markup string
- `reactName`: React component name (e.g., "HomeIcon", "UserIcon")
- `vueName`: Vue component name (e.g., "HomeIcon", "UserIcon")

```javascript
// Access icon object
const homeIcon = lightIcons.home;
console.log(homeIcon.name);        // "home"
console.log(homeIcon.svg);          // "<svg>...</svg>"
console.log(homeIcon.reactName);    // "HomeIcon"
console.log(homeIcon.vueName);      // "HomeIcon"

// Or access properties directly
const homeSvg = lightIcons.home.svg;
const homeReactName = lightIcons.home.reactName;
```

### Use with Strapi

This package is perfect for use with Strapi and `strapi-plugin-icons-field`:

```javascript
// In your Strapi configuration
import { light, solid } from '@raynaui-icons/core';

// Pass icon list to strapi-plugin-icons-field
const iconList = Object.values(light).map(icon => ({
  name: icon.name,
  svg: icon.svg,
  reactName: icon.reactName,  // For React frontend
  vueName: icon.vueName       // For Vue frontend
}));

// Strapi can now return the appropriate component name
// based on your frontend framework
```

### Icon naming convention

- **Original names**: kebab-case (e.g., "home", "user-add", "arrow-down")
- **React names**: PascalCase + "Icon" (e.g., "HomeIcon", "UserAddIcon", "ArrowDownIcon")
- **Vue names**: PascalCase + "Icon" (e.g., "HomeIcon", "UserAddIcon", "ArrowDownIcon")

## Examples

### Basic usage

```javascript
import { light } from '@raynaui-icons/core';

// Display icon in HTML
document.body.innerHTML = light.home.svg;

// Get component names for different frameworks
console.log(light.home.reactName);  // "HomeIcon"
console.log(light.home.vueName);    // "HomeIcon"
```

### Framework-specific integration

```javascript
// For React projects
import { light } from '@raynaui-icons/core';
const iconName = light.home.reactName; // "HomeIcon"

// For Vue projects
import { light } from '@raynaui-icons/core';
const iconName = light.home.vueName;   // "HomeIcon"

// For vanilla JS/HTML
import { light } from '@raynaui-icons/core';
const iconSvg = light.home.svg;        // "<svg>...</svg>"
```

## Available icon styles

- **light**: Outline-style icons
- **solid**: Filled-style icons

## License

MIT
npm package: @raynecloudy/fs
Description: a new file system API
Author: raynecloudy
Latest version: 1.1.2

`@raynecloudy/fs` is a wrapper around the more low-level core npm package "fs". this npm package provides high-level and easy file system manipulation :)

Example:
```ts
import { SystemDirectory, SystemFile } from "@raynecloudy/fs";

let file = new SystemFile("./example.txt");
file.content = "this is an example of setting the content of a file!";

let dir = new SystemDirectory("./example/of/a/path");
file.path = dir.path;
dir.permissions.everyone.write = false;
```

READ THE DOCS: https://fs.raynec.dev/
npm package: @rayners/foundry-module-types
Description: Shared TypeScript declarations for David Raynes' suite of Foundry VTT modules.
Author: David Raynes
Latest version: 0.1.0

# @rayners/foundry-module-types

Shared TypeScript declarations for David Raynes' suite of Foundry Virtual Tabletop modules.

## Installation

Install the package as a development dependency so your TypeScript project can rely on the
published declaration files:

```bash
npm install --save-dev @rayners/foundry-module-types
```

The package targets Node.js 18+ environments in alignment with Foundry VTT's current
requirements.

## Usage

Import the modules that your project depends on to gain typed access to their public APIs.
Every module exports namespaces that mirror the structure of the deployed Foundry modules.

```ts
import { Foundry, JourneysAndJamborees, TaskAndTrigger } from '@rayners/foundry-module-types';

function registerSetting(settings: Foundry.ClientSettings) {
  settings.register('task-and-trigger', 'autoAssignTasks', {
    scope: 'world',
    config: true,
    type: Boolean,
    default: true,
  });
}

const travelRoles: JourneysAndJamborees.TravelRole[] = ['pathfinder', 'lookout'];

const reminder: TaskAndTrigger.ModuleTaskScheduling = {
  moduleId: 'task-and-trigger',
  macroId: 'restock-herbs',
  schedule: { days: 7 },
  name: 'Restock Herbs',
  description: 'Remind the quartermaster to restock herbs every week.',
  recurring: true,
  interval: { days: 7 },
  scope: 'world',
};
```

Available namespaces include:

- `Foundry` – Lightweight primitives that model the Foundry VTT runtime.
- `SeasonsAndStars` – Types shared by the **Seasons & Stars** module.
- `SimpleCalendarCompat` – Helpers for interoperability with Simple Calendar.
- `JourneysAndJamborees` – Journeys & Jamborees module types.
- `RealmsAndReaches` – Shared declarations for the Realms & Reaches module.
- `TaskAndTrigger` – Task automation and scheduler primitives.
- `ErrorsAndEchoes` – Utilities for the Errors & Echoes module.

Check the [`src/`](./src) directory for the latest source of truth. The compiled
`.d.ts` files emitted to `dist/` are published with each release.

## Contributing

Community contributions are welcome! Please review [CONTRIBUTING.md](./CONTRIBUTING.md) for
information on setting up your local environment, coding standards, and required checks
before opening a pull request.

## License

This project is distributed under the terms of the [MIT License](./LICENSE).
npm package: @raynode/graphql-anywhere
Description: This is a graphql server-ish module that enables you to run a graphql resolver anywhere. This is thought to be used in the browser as a first step to integrating graphql later in the production cycle.
Author: Tobias Kopelke
Latest version: 1.0.0

[![Node.js version][nodejs-badge]][nodejs]
[![NPM version][npm-badge]][npm]
[![tested with jest][jest-badge]][jest]
[![build with travis-ci][travis-badge]][travis]
[![semantic-release][semantic-release-badge]][semantic-release]
[![Greenkeeper badge][greenkeeper-badge]][greenkeeper]

# graphql-anywhere

This is a graphql server-ish module that enables you to run a graphql resolver anywhere. This is thought to be used in the browser as a first step to integrating graphql later in the production cycle.

+ [TypeScript][typescript] [2.5][typescript-25] to ES6 transpilation
+ [TSLint][tslint] 5.x
+ [Jest][jest] unit testing and code coverage
+ Type definitions for Node.js v6.x (LTS) and Jest
+ .editorconfig for consistent file format

## Getting Started

Install graphql-anywhere using npm:

```
npm i graphql-anywhere
```

## Usage

```
import { createServer } from 'graphql-anywhere'

const { client } = createServer({ typeDefs, resolver })
```

```
import { queryRequestFactory, queryFactory, createClient, createServer } from 'graphql-anywhere'
```


## Contributing

If you want to help with this project, just leave a bugreport or pull request.
I'll try to come back to you as soon as possible

## License

MIT

[greenkeeper-badge]: https://badges.greenkeeper.io/raynode/graphql-anywhere.svg
[greenkeeper]: https://greenkeeper.io/
[jest-badge]: https://img.shields.io/badge/tested_with-jest-99424f.svg
[jest]: https://facebook.github.io/jest/
[nodejs-badge]: https://img.shields.io/badge/node->=%208.2.1-blue.svg
[nodejs]: https://nodejs.org/dist/latest-v8.x/docs/api/
[npm-badge]: https://img.shields.io/badge/npm->=%205.4.0-blue.svg
[npm]: https://docs.npmjs.com/
[semantic-release-badge]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
[semantic-release]: https://github.com/semantic-release/semantic-release
[travis-badge]: https://travis-ci.org/raynode/graphql-anywhere.svg?branch=master
[travis]: https://travis-ci.org/raynode/graphql-anywhere
[tslint]: https://palantir.github.io/tslint/
[typescript-25]: https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#typescript-25
[typescript]: https://www.typescriptlang.org/
npm package: @raynode/nx-logger-debug
Description: [![Node.js version][nodejs-badge]][nodejs] [![NPM version][npm-badge]][npm] [![semantic-release][semantic-release-badge]][semantic-release] [![Greenkeeper badge][greenkeeper-badge]][greenkeeper] [![build with travis-ci][travis-badge]][travis] [![tested wi
Author: Tobias Kopelke
Latest version: 1.1.1

[![Node.js version][nodejs-badge]][nodejs]
[![NPM version][npm-badge]][npm]
[![semantic-release][semantic-release-badge]][semantic-release]
[![Greenkeeper badge][greenkeeper-badge]][greenkeeper]
[![build with travis-ci][travis-badge]][travis]
[![tested with jest][jest-badge]][jest]
[![Coverage Status](https://coveralls.io/repos/github/raynode/nx-logger-debug/badge.svg?branch=master)](https://coveralls.io/github/raynode/nx-logger-debug?branch=master)
[![npm version](https://badge.fury.io/js/%40raynode%2Fnx-logger-debug.svg)](https://badge.fury.io/js/%40raynode%2Fnx-logger-debug)
[![Maintainability](https://api.codeclimate.com/v1/badges/2f9c0e3cbb7f8d721b57/maintainability)](https://codeclimate.com/github/raynode/nx-logger-debug/maintainability)

# nx-logger-debug

nx-logger-debug is a transport for [nx-logger](https://github.com/raynode/nx-logger)

+ [TypeScript][typescript] [2.9][typescript-29] to ES6 transpilation
+ [TSLint][tslint] 5.x
+ [Jest][jest] unit testing and code coverage
+ Type definitions for Node.js v6.x (LTS) and Jest
+ .editorconfig for consistent file format

## Getting Started

Install nx-logger-debug using npm:

```
npm i @raynode/nx-logger-debug
```

## Usage

```
import { transport } from 'nx-logger-debug'
import { create, configure } from 'nx-logger'

configure({ transport })
const logger = create('my-logger')

```

```
logger('Test') // equals to debug('my-logger')('Test') => my-logger: Test +5ms
```


## Contributing

If you want to help with this project, just leave a bugreport or pull request.
I'll try to come back to you as soon as possible

## License

MIT

[greenkeeper-badge]: https://badges.greenkeeper.io/raynode/nx-logger-debug.svg
[greenkeeper]: https://greenkeeper.io/
[jest-badge]: https://img.shields.io/badge/tested_with-jest-99424f.svg
[jest]: https://facebook.github.io/jest/
[nodejs-badge]: https://img.shields.io/badge/node->=%208.2.1-blue.svg
[nodejs]: https://nodejs.org/dist/latest-v8.x/docs/api/
[npm-badge]: https://img.shields.io/badge/npm->=%205.4.0-blue.svg
[npm]: https://docs.npmjs.com/
[semantic-release-badge]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
[semantic-release]: https://github.com/semantic-release/semantic-release
[travis-badge]: https://travis-ci.org/raynode/nx-logger-debug.svg?branch=master
[travis]: https://travis-ci.org/raynode/nx-logger-debug
[tslint]: https://palantir.github.io/tslint/
[typescript-29]: https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#typescript-29
[typescript]: https://www.typescriptlang.org/
npm package: @raynode/nx-logger-loggly
Description: [![Node.js version][nodejs-badge]][nodejs] [![NPM version][npm-badge]][npm] [![semantic-release][semantic-release-badge]][semantic-release] [![Greenkeeper badge][greenkeeper-badge]][greenkeeper] [![build with travis-ci][travis-badge]][travis] [![tested wi
Author: Tobias Kopelke
Latest version: 1.0.3

[![Node.js version][nodejs-badge]][nodejs]
[![NPM version][npm-badge]][npm]
[![semantic-release][semantic-release-badge]][semantic-release]
[![Greenkeeper badge][greenkeeper-badge]][greenkeeper]
[![build with travis-ci][travis-badge]][travis]
[![tested with jest][jest-badge]][jest]
[![Coverage Status](https://coveralls.io/repos/github/raynode/nx-logger-loggly/badge.svg?branch=master)](https://coveralls.io/github/raynode/nx-logger-loggly?branch=master)
[![npm version](https://badge.fury.io/js/%40raynode%2Fnx-logger-loggly.svg)](https://badge.fury.io/js/%40raynode%2Fnx-logger-loggly)

# nx-logger-loggly

nx-logger-loggly is a transport for [nx-logger](https://github.com/raynode/nx-logger)

+ [TypeScript][typescript] [2.9][typescript-29] to ES6 transpilation
+ [TSLint][tslint] 5.x
+ [Jest][jest] unit testing and code coverage
+ Type definitions for Node.js v6.x (LTS) and Jest
+ .editorconfig for consistent file format

## Getting Started

Install nx-logger-loggly using npm:

```
npm i @raynode/nx-logger-loggly
```

## Usage

```
import { transport } from 'nx-logger-loggly'
import { create, configure } from 'nx-logger'

configure({ transport })
const logger = create('my-logger')

```

The created logger will send the namespace as tags to loggly and the message will be the content of the log entry.
This might be updated in the future to contain timestamps and more information, but at the current point in time (version 1) it is as simple as it gets.

```
@TODO
logger('Test') // will be send to loggly with tag:my-logger and content 'Test'
```


## Contributing

If you want to help with this project, just leave a bugreport or pull request.
I'll try to come back to you as soon as possible

## License

MIT

[greenkeeper-badge]: https://badges.greenkeeper.io/raynode/nx-logger-loggly.svg
[greenkeeper]: https://greenkeeper.io/
[jest-badge]: https://img.shields.io/badge/tested_with-jest-99424f.svg
[jest]: https://facebook.github.io/jest/
[nodejs-badge]: https://img.shields.io/badge/node->=%208.2.1-blue.svg
[nodejs]: https://nodejs.org/dist/latest-v8.x/docs/api/
[npm-badge]: https://img.shields.io/badge/npm->=%205.4.0-blue.svg
[npm]: https://docs.npmjs.com/
[semantic-release-badge]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
[semantic-release]: https://github.com/semantic-release/semantic-release
[travis-badge]: https://travis-ci.org/raynode/nx-logger-loggly.svg?branch=master
[travis]: https://travis-ci.org/raynode/nx-logger-loggly
[tslint]: https://palantir.github.io/tslint/
[typescript-29]: https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#typescript-29
[typescript]: https://www.typescriptlang.org/
npm package: @rayo/benchmarks
Description: 🏆 Rayo's benchmarks.
Author: Stefan Aichholzer
Latest version: 1.5.5

<div align="center">
  <img src="https://raw.githubusercontent.com/GetRayo/Assets/master/Images/Cover.png" alt="Rayo" />
</div>

## Install

```
$> npm i -g @rayo/benchmarks
```


## Run

```
$> rayobench
```

```
$> rayobench -- -u http://localhost:5050 -c 1000 -p 25 -d 10
```

- `-u` (_url_) -Defaults to `http://localhost:5050`
- `-c` (_connections_) -Defaults to `500`
- `-p` (_pipelines_) -Defaults to `10`
- `-d` (_duration_) -Defaults to `5` (seconds)
- `-o` (_only_) Run only one particular benchmark. -Defaults to `null`
- `-w` (_workers_) The number of workers to run the benchmarks. -Defaults to `cpu count`

> Results ~~may~~ will vary on different hardware.


## How does it compare?

Please note that these results are only meant as raw performance indicators. Your application's logic, which is what makes most applications slow, may not see great performance gains between frameworks.

> These tests were conducted on Mac Studio (M1 Ultra, 64 GB RAM, 20 CPU) and Node.js v16.18.1.<br />
> Measured after one warm-up run.

```
Tested with:

500 connections,
20 pipelines,
5 seconds,
20 CPU cores.

┌────────────┬─────────┬────────────┬────────────┬───────────┬──────────────┐
│            │ Version │ Reqs/sec ^ │ Reqs/sec * │ Latency * │ Throughput * │
├────────────┼─────────┼────────────┼────────────┼───────────┼──────────────┤
│ Storm      │ 1.3.0   │ 226325     │ 213081.6   │ 23.05     │ 29.46 Mb.    │
├────────────┼─────────┼────────────┼────────────┼───────────┼──────────────┤
│ Rayo       │ 1.4.0   │ 127765     │ 125267.2   │ 39.24     │ 17.32 Mb.    │
├────────────┼─────────┼────────────┼────────────┼───────────┼──────────────┤
│ Polka      │ 0.5.2   │ 126479     │ 122886.4   │ 38.22     │ 16.99 Mb.    │
├────────────┼─────────┼────────────┼────────────┼───────────┼──────────────┤
│ Fastify    │ 4.10.2  │ 122810     │ 121273.6   │ 40.6      │ 21.63 Mb.    │
├────────────┼─────────┼────────────┼────────────┼───────────┼──────────────┤
│ Express    │ 4.17.1  │ 37094      │ 36035.2    │ 135.91    │ 4.98 Mb.     │
└────────────┴─────────┴────────────┴────────────┴───────────┴──────────────┘
 * Average
```

> When `Rayo` is powered by `Storm`, it relies on Nodejs' `cluster` which will spawn a server process on each available CPU core, thus yielding better results.


## Missing a framework?

Just submit a PR with whatever framework you consider is worthy of being ranked here.


## License

[MIT](https://github.com/GetRayo/rayo.js/blob/master/LICENSE)
npm package: @rayo/compress
Description: 🗜 Rayo's compression
Author: Stefan Aichholzer
Latest version: 1.4.0

<div align="center">
  <img src="https://raw.githubusercontent.com/GetRayo/Assets/master/Images/Cover_compress.png" alt="@rayo/compress" />
</div>

## Install

```
$> npm i @rayo/compress
```

Both `Gzip` and `Brotli` are supported, and the algorithm will be determined by the `accept-encoding` request header.<br />
With multiple values/options (e.g. "gzip, deflate, br"), `Gzip` will be preferred.

## Use

> `@rayo/compress` is also compatible with `Express` and many other frameworks.

```js
import rayo from 'rayo';
import compress from '@rayo/compress';

rayo({ port: 5050 })
  .through(compress())
  .get('/hello/:user', (req, res) => {
    res.setHeader('content-type', 'application/json');
    res.end(JSON.stringify({
      message: `Hello ${req.params.user}.
      I am compressed!`
    }));
  })
  .start();
```

> **Note:** You need to set the right response header, e.g. _application/json_ for `@rayo/compress` to be able to determine whether the payload can be compressed or not. Also keep in mind that not all types of content can be compressed.

`@rayo/compress` supports compression on these MIME types:

* text/plain
* text/csv
* text/html
* text/xml
* text/javascript
* application/json
* application/xml


## API

#### compress(options = {})
```
@param   {object} [options]
@returns {function}
```

 * `options.preferBrotli` (boolean, optional): Prefer `Brotli` if the `accept-encoding` request header has multiple values/options.<br />
   Keep in mind that `Brotli` has more performance overhead than `Gzip`.<br />
   Default: `false`.


 * `options.threshold` (number, optional): The minimum threshold (in bytes) for compressing responses.<br />
   Default: `1024`.


 * `options.level` (number, optional): The compression level to use.<br />
   Range (gzip): `1 to 9`.<br />
   Range (brotli): `1 to 11`.<br />
   A higher level will result in better compression, but will take longer to complete. A lower level will result in less compression, but will be much faster.<br />
   Default: `6`.


 * `options.chunkSize` (number, optional): Brake large responses into chunks of this size (in kilobytes). While this setting can have an impact on speed, compression is affected most dramatically by the level setting.<br />
   Default: `16`.


## License

[MIT](https://github.com/GetRayo/rayo.js/blob/master/LICENSE)
npm package: @rayo/send
Description: ✈️ Rayo's response sender
Author: Stefan Aichholzer
Latest version: 1.2.0

<div align="center">
  <img src="https://raw.githubusercontent.com/GetRayo/Assets/master/Images/Cover_send.png" alt="@rayo/send" />
</div>

## Install

```
$> npm i @rayo/send
```


## Use

```js
import rayo from 'rayo';
import send from '@rayo/send';

rayo({ port: 5050 })
  .through(send())
  .get('/hello/:user', (req, res) => {
    res.send({
      message: `Hello ${req.params.user}. I was sent with headers!`
    });
  })
  .start();
```

`send` will attach itself to the [ServerResponse](https://nodejs.org/dist/latest-v9.x/docs/api/http.html#http_class_http_serverresponse) (a.k.a `res`) and be callable as `res.send()`.

`res.send()` will try to guess the _content-type_ based on the payload and send the appropriate headers. It will also send a status code and end the response.

> **Note:** `res.send()` will incur a tiny performance hit due to the guess work and the headers being written with every response.


## API

#### send()

Currently, it does not take any arguments.


## License

[MIT](https://github.com/GetRayo/rayo.js/blob/master/LICENSE)
npm package: @rayo/storm
Description: 🌩️ Run clustered applications.
Author: Stefan Aichholzer
Latest version: 1.3.6

<div align="center">
  <img src="https://raw.githubusercontent.com/GetRayo/Assets/master/Images/Cover_storm.png" alt="@rayo/storm" />
</div>

Harness the full power of multi-core CPUs.<br />
`storm` will cluster your application and spawn an instance on each available core. You can expect performance gains of up to 150%.

`storm` will handle OS signals as expected.

> `storm` is available, by default, with `rayo.js`. See [rayo/options.storm](https://github.com/GetRayo/rayo.js#rayooptions--)

## Install

```
$> npm i @rayo/storm
```


## Use

```js
import { storm } from '@rayo/storm';

const yourAwesomeFunction = () => {
  console.log(`Hello, I am worker ${process.pid}`);
};

storm(yourAwesomeFunction, {
  monitorPort: 31000
});
```

Once all worker processes have been spawned, `storm` will, by default, launch a monitoring service which will enable you to get basic metrics for each process.

The monitor service resource will be mapped to the `/monitor` path. Detailed information on each worker will be mapped to the `/monitor/{workerId}` path.

In the above example, the monitor service will be available at `http://localhost:31000/monitor`

> The monitor service is WIP. However, this does not affect storm's stability.

## API

#### storm(work [, options = {}])
```
@param   {function} Called when starting a worker process.
@param   {object}   [options]
@returns {void}
```

- `options.workers` _{number}_
  - Number of workers to spawn.
  - `Default:` Number of available [CPU cores](https://nodejs.org/api/os.html#os_os_cpus).

- `options.master` _{function}_
  - Called when starting the master process.
  - This will only be called once.
  - The `master` function will be passed one argument; the `cluster`.

- `options.keepAlive` _{boolean}_
  - Whether the cluster should be kept alive or not. Fork new processes on process death.
  - `Default:` true

- `options.monitor` _{boolean}_
  - Whether the cluster should be monitored or not.
  - `Default:` true

- `options.monitorPort` _{number}_
  - Listen on this port for incoming `/monitor` connections.
  - If port is omitted or is 0, the operating system will assign an arbitrary, unused port.


## Contribute

See our [contributing](https://github.com/GetRayo/rayo.js/blob/master/CONTRIBUTING.md) notes.


## License

[MIT](https://github.com/GetRayo/rayo.js/blob/master/LICENSE)
npm package: @rayofshine/wanderlyst-loader
Description: This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Author: Your Name
Latest version: 1.0.5

# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

```js
export default tseslint.config({
  extends: [
    // Remove ...tseslint.configs.recommended and replace with this
    ...tseslint.configs.recommendedTypeChecked,
    // Alternatively, use this for stricter rules
    ...tseslint.configs.strictTypeChecked,
    // Optionally, add this for stylistic rules
    ...tseslint.configs.stylisticTypeChecked,
  ],
  languageOptions: {
    // other options...
    parserOptions: {
      project: ['./tsconfig.node.json', './tsconfig.app.json'],
      tsconfigRootDir: import.meta.dirname,
    },
  },
})
```

You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:

```js
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default tseslint.config({
  plugins: {
    // Add the react-x and react-dom plugins
    'react-x': reactX,
    'react-dom': reactDom,
  },
  rules: {
    // other rules...
    // Enable its recommended typescript rules
    ...reactX.configs['recommended-typescript'].rules,
    ...reactDom.configs.recommended.rules,
  },
})
```
npm package: @rayoung/dice
Description: Deterministic randomization utilities for simulations, generators, and games.
Latest version: 0.1.5

# @rayoung/dice

Deterministic randomization utilities for simulations, games, generators, and other seed-driven workflows.

## Install

```bash
npm install @rayoung/dice
```

## Features

- Seeded pseudo-random number generation
- Uniform, integer, and normal distributions
- Weighted choice and weighted sampling
- Array shuffling and sampling helpers
- Dice rolling, color generation, and stable ID helpers
- Optional module-local active die helpers

## Usage

```ts
import { DICE, Dice } from "@rayoung/dice"

const dice = new Dice("6616826c")
const pick = dice.weightedChoice([
  { v: "forest", w: 3 },
  { v: "desert", w: 1 },
])

const active = DICE.spawn("world-seed")
const eventRoll = active.roll(3, 6, 1)
const result = DICE.swap("encounter-seed", (encounterDice) => {
  return encounterDice.weightedSample(
    [
      { v: "bandits", w: 2 },
      { v: "merchant", w: 1 },
      { v: "ruins", w: 3 },
    ],
    1,
  )
})
```

## API

`Dice` provides instance methods for deterministic random behavior from a seed.

`DICE.id()` generates a compact random identifier.

`DICE` also exposes a module-local active die with:

- `current()` to read the active `Dice`
- `spawn(seed)` to replace it
- `swap(seed, fn)` to run work with a temporary scoped `Dice`