open-index/open-npm huggingface dataset:
npm package: @mete-work/joi
Description: 由于 @hapi/joi 的 breakchange。影响主要是查询字符串的反解析问题，可以参考 [Array and object string coercion](https://github.com/hapijs/joi/issues/2037)。
Author: godotdotdot
Latest version: 1.0.0

# joi

由于 @hapi/joi 的 breakchange。影响主要是查询字符串的反解析问题，可以参考 [Array and object string coercion](https://github.com/hapijs/joi/issues/2037)。

## Installation

```shell
yarn @mete-work/joi
```

## 特性

在 @hapi/joi v16 的基础上弥补了解析查询字符串的能力，其他能力同 @hapi/joi v16。
npm package: @mete-work/mete
Description: mete is a cli for universe!
Author: godotdotdot
Latest version: 1.1.5

# Mete

[![NPM Version](http://img.shields.io/npm/v/@mete-work/mete.svg?style=flat)](https://www.npmjs.org/package/@mete-work/mete)
[![NPM Downloads](https://img.shields.io/npm/dm/@mete-work/mete.svg?style=flat)](https://npmcharts.com/compare/@mete-work/mete?minimal=true)
[![Install Size](https://packagephobia.now.sh/badge?p=@mete-work/mete)](https://packagephobia.now.sh/result?p=@mete-work/mete)

Mete is a cli for universe!

See [简体中文](./README_CN.md)
npm package: @mete-work/plugins
Description: A simple registry that stores all plugins in a shared object.
Latest version: 1.0.1

# @mete-work/plugins
[![](https://img.shields.io/npm/dw/@mete-work/plugins.svg)](https://www.npmjs.com/package/@mete-work/plugins) 
[![](https://img.shields.io/npm/v/@mete-work/plugins.svg)](https://www.npmjs.com/package/@mete-work/plugins)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

A simple registry that stores all plugins in a shared object.
The only requirement for a plugin is to have a `name` and a `type` properties. 
The rest is entirely up to you.

There is nothing spectacular going on under the hood, just a simple 
object for storing references and a few utility functions.

## Install
```
npm install --save @mete-work/plugins
```

Or if you prefer yarn: 
```
yarn add @mete-work/plugins
```

## Usage

### Adding a plugin
```
import { registerPlugins } from "@mete-work/plugins";

// Add a plugin
registerPlugins({
    name: "my-plugin",
    type: "say-hi",
    render: () => "Hi!"
});

registerPlugins({
    name: "my-second-plugin",
    type: "say-hi",
    render: () => "Yo!"
});
```

### Getting plugins by type
```
// anywhere in your app
import { getPlugins } from "@mete-work/plugins";

const plugins = getPlugins("say-hi");
plugins.forEach(plugin => {
    // Call "render" function
    plugin.render();
});
```

### Getting a single plugin by name
```
// anywhere in your app
import { getPlugin } from "@mete-work/plugins";

const plugin = getPlugin("my-plugin");
// Call "render" function
plugin.render();
```

### Removing a plugin
```
// anywhere in your app
import { unregisterPlugin } from "@mete-work/plugins";

unregisterPlugin("my-plugin");
```
npm package: @meteo-concept/leaflet-inflatable-markers-group
Description: An alternative to the markers clustering group plugin
Author: Météo Concept
Latest version: 1.6.1

Leaflet.inflatable-markers-group
================================

The plugin can be seen as an alternative to the most excellent [Leaflet marker cluster plugin](https://github.com/Leaflet/Leaflet.markercluster).

When you have many markers on a map, it can become unreadable. This plugin gives
markers two states : an inflated state (the normal state) which takes up some
space and a deflated state which takes up much less space and is used to
declutter the map. The plugin computes for each marker the list of markers that
cannot be inflated at the same time without collisioning and making the map
messy. Right-clicking on a marker toggles between the inflated and deflated
states and when a marker is inflated, all collisioning markers are deflated to
make room for it.

Have a look at the [demo page](https://meteo-concept.github.io/leaflet-inflatable-markers-group)
to see what it looks like.


Install
-----

### npm

    npm install @meteo-concept/leaflet-inflatable-markers-group

### yarn

    yarn add @meteo-concept/leaflet-inflatable-markers-group

### Manually

Download the [latest release](https://github.com/Meteo-Concept/leaflet-inflatable-markers-group) and include it in your app.


Usage
-----

Where you would use a `L.LayerGroup`, use an `L.InflatableMarkersGroup` instead.
The difference with the base `L.LayerGroup` object is that you must provide a
`iconCreateFunction` option and you must give the icons you add to the group a
defined size.
The `iconCreateFunction` will be used to construct the deflated versions of the
markers and the icon size is used to compute the collisions.

See file `index.html` in the example folder for a simple demo of a map with
many temperature labels on it. Note that the plugin tries to inflate as many
markers as possible without causing collisions when zooming and dezooming.

In the example, we've used a circle as the deflated version of the markers and
labels in the inflated version.

![Screenshot of the demo page showing a map with markers, some deflated](./example/screenshot.png)

Development
-----

You can use the example folder for testing.
The following command produces a minified js and copies leaflet.inflatable-markers-group.min.js in the example folder.

```
npm run release
```


Changelog
-----
### 1.6.0
- Make the collision computation O(N log(N)) (hopefully) instead of O(N²)

### 1.5.1
- Make the collision computation asynchronous to improve the responsiveness

### 1.3.0
- First release on npm registry
- Fix the examples

### 1.0.0
- Initial release, with examples, doc and Typescript typing definitions

### 0.1.0
- Initial version

Authors
-------

[![Météo Concept](http://www.meteo-concept.fr/images/logo-meteo-concept.png)](https://www.meteo-concept.fr)
npm package: @meteo/eslint-config-pancake
Description: Eslint config for PancakeSwap
Author: RabbitDoge
Latest version: 1.3.4

# eslint-config-pancake

Pancake Eslint config with:

- Airbnb config
- Typescript
- Prettier

## Usage

```
npx install-peerdeps --dev @pancakeswap-libs/eslint-config-pancake
```

Add `"extends": "@pancakeswap-libs/eslint-config-pancake"` to your eslint config file.
npm package: @meteo/uikit
Description: Set of UI components for pancake projects
Latest version: 0.38.4

# 🥞 Pancake UIkit

[![Version](https://img.shields.io/npm/v/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit) [![Size](https://img.shields.io/bundlephobia/min/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit)

Pancake UIkit is a set of React components and hooks used to build pages on Pancake's apps. It also contains a theme file for dark and light mode.

## Install

`yarn add @pancakeswap-libs/uikit`

## Setup

### Theme

Before using Pancake UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@pancakeswap-libs/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@pancakeswap-libs/uikit'
...
<ResetCSS />
```

### Types

This project is built with Typescript and export all the relevant types.

## How to use the UIkit

If you want to use components from the UIkit, check the [Storybook documentation](https://pancakeswap.github.io/pancake-uikit/)
npm package: @meteor-it/ajson
Description: > AJSON = JSON + More data types
Author: CertainLach
Latest version: 0.4.20
Deprecated: Do not use

# AJSON
> AJSON = JSON + More data types

## Types supported
- Infinity
- -Infinity
- NaN
- RegExp
- Date
- Buffer
- undefined
- Function

## Usage
```js
import AJSON from '@meteor-it/ajson';

const a = AJSON.stringify({
    a: Infinity,
    b: -Infinity,
    c: NaN,
    d: /[a-z]+/ig,
    e: new Date(),
    f: new Buffer([0xf6,0xcf]),
    g: undefined,
    h: (a,b) => a+b;
});

const b = AJSON.parse(a);

// b will have the same props as a

```
npm package: @meteor-it/argv
Description: Command line argument parser
Author: CertainLach
Latest version: 0.4.48
Deprecated: Do not use

# ARGV
Argument parser with automatic help generation

## Example
```js
import ArgParser from '@meteor-it/argv';

const parser = new ArgParser('NAME');

parser.command('command1')
    .callback(opts=>{
        console(opts.option);
    })
    .help("Useful command");

parser.command('sanity')
    .option('file', {
        abbr: 'f',
        help: 'Awesome file'
    })
    .option('config', {
        abbr: 'c',
        default: 'awesomeConfigFile.json',
        help: 'Useful config'
    })
    .callback(opts=> {
        console.log(opts.filename);
    })
    .help("Another useful command");

parser.help('Very useful CLI tool');
parser.parse(process.argv);

```
npm package: @meteor-it/form
Description: Form validation
Author: CertainLach
Latest version: 1.0.20
Deprecated: Do not use

# Form
Form validation library

# Example
```ts
const Form=new Form({
    name:FormValidator.text('Title',[1,20]),
    items:FormValidator.multi('Items',[1,1000],{
        name:FormValidator.text('Name',[1,20]),
        count:FormValidator.select('Count',{
            [Counts.LT50]:'< 50',
            [Counts.GT50]:'> 50'
        },0)
    })
});
```
npm package: @meteor-it/logger
Description: Most powerfull logger for node.js
Author: CertainLach
Latest version: 2.3.45
Deprecated: Use winston

# Logger
Awesome logger for node.js

## Usage
```js
import Logger from '@meteor-it/logger';
// Logger doesn't writes anything to console itself, it needs to have at least one receiver
import NodeReceiver from '@meteor-it/logger/receivers/node';

Logger.addReceiver(new NodeReceiver());
```
npm package: @meteor-it/rocket
Description: Web framework
Author: CertainLach
Latest version: 2.4.75

# Meteor.Rocket
Powerfull fullstack web framework

## Features
1. Routing
2. Server Side Rendering
3. Preloading data
4. Advanced HTTP/2 support with optimizations
5. Zarbis integration

## Usage example
### server/index.ts
```ts
import Logger from '@meteor-it/logger';
import NodeReceiver from '@meteor-it/logger/receivers/node';
import XPress from '@meteor-it/xpress';
import { ServerMiddleware } from '@meteor-it/rocket';
import rocket from '../web';
import {readFile, read} from '@meteor-it/fs';

Logger.addReceiver(new NodeReceiver());
const logger = new Logger('WEB');
const xpress = new XPress(logger);

(async () => {
    logger.log('Init server');
    xpress.use(null, new ServerMiddleware(rocket, { compiledClientDir: `${__dirname}/../client`, compiledServerDir: `${__dirname}` }));
    xpress.listenHttp('0.0.0.0', 8080);
    xpress.listenHttps('0.0.0.0', 8443, {
        key: await readFile(`${__dirname}/../../key.pem`),
        cert: await readFile(`${__dirname}/../../cert.pem`)
    })
})();
```
### client/index.ts
```ts
import { initClient } from '@meteor-it/rocket';
import rocket from '../web';

initClient(rocket);
```
### web/index.ts
```ts
import Rocket from '@meteor-it/rocket';

const rocket = new Rocket();
rocket.router.on(null, null, async ctx => {
    // drawTarget = element which will be rendered on page finally
    ctx.state.drawTarget = h([
        'Hello, world!'
    ]);
});
```
npm package: @meteor-it/xpress-support-potato
Description: XPress POTATO Support
Author: Yaroslaw Bolyulin
Latest version: 1.0.2
Deprecated: Do not use

# XPress Potato Socket support
## What is Potato Socket?
This is a Websocket wrapper with packet (de)serialization tougth ProtoDef
Also supports RPC
## Read instruction in XPress to install
## Usage:
```js
server.on('POTATO /*',async(req, socket, next)=>{
    // Req here - custom object, have all props as on normal http requests
    // All types from protodef
    socket.addPacket('packetName',{
      field1:'string',
      field2:'i8',
      ...
    });
    next(); 
});
server.on('POTATO /a',async(req, socket, next)=>{
    req.a; // = 123
    socket.on('packetName', msg=>console.log.bind(console));
    // RPC
    await socket.remoteFunc(params)
});
```
Also see the [potato.socket docs](https://github.com/Meteor-DEV/Potato.Socket)
npm package: @meteor-it/xpress-support-ws
Description: XPress WS Support
Author: Yaroslaw Bolyulin
Latest version: 1.0.3
Deprecated: Do not use

# XPress WebSocket support
## Read instruction in XPress to install
## Usage:
```js
server.on('WS /*',async(req, socket, next)=>{
    // Req here - custom object, have all props as on normal http requests
    req.a=123;
    next(); 
});
server.on('WS /a',async(req, socket, next)=>{
    req.a; // = 123
    socket.on('message', msg=>console.log.bind(console));
});
```
npm package: @meteor-labs/truck-logger
Description: A minimal Express Logger.
Author: rdp
Latest version: 1.3.0


<h2 align="center">
  <a href="https://github.com/meteorid-labs/truck-logger"><img src="https://img.freepik.com/premium-vector/dump-truck-icon-isolated-white-background_103044-862.jpg?w=1380" alt="@meteor-labs/truck-logger" width="200"></a>
  <br>
  Truck Logger
</h2>

<h4 align="center">A minimal Express Logger built with <a href="https://github.com/winstonjs/winston" target="_blank">Winston</a>.</h4>
<p align="center">
  <a href="#installation">Installation</a> •
  <a href="#how-to-use">How to use</a>
  <!-- <a href="#related">Related</a> -->
</p>

### Installation
<!-- _Below is an example of how you can install and setting your app._ -->
1. Install package
   ```sh
   # using npm
   npm i @meteor-labs/truck-logger
   ```
   ```sh
   # using yarn
   yarn add @meteor-labs/truck-logger
   ```
2. Add your MongoDB access to your .env
   ```js
    TRUCK_REQUEST_KEY= // requestId. default: truckNo
    TRUCK_DB_HOST=
    TRUCK_DB_PORT=
    TRUCK_DB_USER=
    TRUCK_DB_PASSWORD=
   ```

### How To Use

To use truck-logger add ```truckExpress``` to your API Route. Here is an example:

```js
const { truckExpress } = require('@meteor-labs/truck-logger');

app.get('/truck/number/1', truckExpress('truck_1_collection'), ...);

// or

router.get('/truck/number/1', truckExpress('truck_1_collection'), ...);
```
and.. That`s it!! 🦀

As default ```truckExpress``` will be generated request result for you, which is log console & log data on MongoDB along with default meta info inside. Like this:

<img width="1089" alt="ss_1" src="https://user-images.githubusercontent.com/5293897/210051861-6a3706c0-60be-4814-af8d-64a107f34559.png">
<img style="margin-bottom:24px" width="654" alt="ss_2" src="https://user-images.githubusercontent.com/5293897/210051865-ed240599-a38c-4b7e-bf86-6ac1694ceb27.png">


Oh.. If you want to create new log with same ```truckNo (requestId)```. You can do this inside your controller:

<!-- ##### truck(collection) -->
```js
const { truck } = require('@meteor-labs/truck-logger');

const truck1Controller = () => {
  ...

  truck().info('The truck is still on its way..')

  truck().warn('Almost there..')

  truck().error('Oops..')
  
  ...
};
```
<img width="1088" alt="Screenshot 2022-12-30 at 16 04 08" src="https://user-images.githubusercontent.com/5293897/210053182-a612fb50-5e93-4202-96db-4f5caf08fe94.png">


## Credits

This package uses the following open source packages:

- [Winston](https://github.com/winstonjs/winston)
- [Winston-MongoDB](https://github.com/winstonjs/winston-mongodb)
- [Lodash](https://github.com/lodash/lodash)
- [Traverse](https://github.com/ljharb/js-traverse)
- [Klona](https://github.com/lukeed/klona)

## Support

<a href="https://www.buymeacoffee.com/riodewanto" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/purple_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
npm package: @meteor-node/ejson
Description: Extended and Extensible JSON library
Latest version: 1.0.9

# ejson

EJSON is an extension of JSON to support more types. It supports all JSON-safe
types, as well as:

 - **Date** - JavaScript `Date`
 - **Binary** - JavaScript `Uint8Array` or the
   result of [`EJSON.newBinary`](http://docs.meteor.com/#ejson_new_binary)
 - **User-defined types** - see [`EJSON.addType`](http://docs.meteor.com/#ejson_add_type)

All EJSON serializations are also valid JSON.  For example an object with a date
and a binary buffer would be serialized in EJSON as:

    {
      "d": {"$date": 1358205756553},
      "b": {"$binary": "c3VyZS4="}
    }

For more details, see the [EJSON section](http://docs.meteor.com/#ejson) of the Meteor docs.