open-index/open-npm huggingface dataset:
npm package: @moonhint/bunyan-logstash-tcp
Description: Logstash TCP plugin for Bunyan
Author: Christoph Hartmann
Latest version: 1.0.3

# Logstash TCP stream for Bunyan

A tcp logger for [Logstash](http://logstash.net/docs/1.4.2/inputs/tcp)

## Configuration options

| level       | string   | `"info"`        |
|-------------|----------|-----------------|
| server      | string   | `os.hostname()` |
| host        | string   | `"127.0.0.1"`   |
| port        | number   | `9999`          |
| application | string   | `process.title` |
| pid         | string   | `process.pid`   |
| tags        | string[] | `["bunyan"]`    |

## Adding the bunyan-logstash stream to Bunyan

```
var log = bunyan.createLogger({
  streams: [
    {
      type: "raw",
      stream: require('bunyanlogstashtcp').createStream({
        host: '127.0.0.1',
        port: 9908
      })
    }
  ]
});
```

## Example

```javascript
"use strict";

var bunyan = require('bunyan'),
    bunyantcp = require('bunyanlogstashtcp');

var log = bunyan.createLogger({
    name: 'example',
    streams: [{
        level: 'debug',
        stream: process.stdout
    },{
        level: 'debug',
        type: "raw",
        stream: bunyantcp.createStream({
            host: '127.0.0.1',
            port: 9998
        })
    }],
    level: 'debug'
});

log.debug('test');
log.error('error test');
```

## Logstash Configuration

Configuration for [Logstash 1.3.3+](http://logstash.net/docs/1.4.2/inputs/tcp):

```javascript
input {
  // config for bunyan udp
  udp {
      'port' => "9999"
  }
  // config for bunyan tcp
  tcp {
      'port' => "9998"
  }
}
```

## Try with logstash locally

 - Download logstash from http://logstash.net/
 - Unpack it (tar -zxf logstash-1.4.2.tar.gz)
 - Create a test logstash configuration `logstash.conf`

```code
input {
  stdin { 
    type => "stdin-type"
  }
  udp {
    port => "9999"
  }
  tcp {
    port => "9998"
  }
}
output { 
  stdout {}
}
```

 - Run `bin/logstash agent -f logstash.conf
 - Run `node example/log.js`

## Credits

This module is heavily based on [bunyan-logstash](https://github.com/sheknows/bunyan-logstash) and re-uses parts of [winston-logstash](https://github.com/jaakkos/winston-logstash/blob/master/lib/winston-logstash.js).

Thanks to

- [sheknows](https://github.com/sheknows)
- [jaakkos](https://github.com/jaakkos) 
- [Chris Rock](https://github.com/chris-rock/bunyanlogstashtcp)

for their amazing work

## License

MIT
npm package: @moonhou/canvas-poster
Description: CanvasPoster使用canvas原生接口快速绘制简单canvas,导出base64资源。
Latest version: 1.1.2-beta.1

# CanvasPoster

## 介绍

CanvasPoster使用canvas原生接口快速绘制简单canvas,导出base64资源。

`Tips:` betas 版本可能会有bug，请谨慎使用。
## 项目安装

```bash
    npm install
    # 或
    yarn install
```

## 项目运行

```bash
    npm dev
    # 或
    yarn dev
```

## 项目构建

```bash
    npm run build
    # 或
    yarn build
```

## 使用示例

```js
  import CanvasPoster from "./lib/index.ts";
  const poster = new CanvasPoster(canvas, {
    width: window.innerWidth,
    height: 3615,
    type: "2d",
    ratio:375 / 750, // 缩放比例：canvas宽度/画稿宽度
    // 可选参数：点击区域
    target: {
      share: {
        x: 644,
        y: 58,
        width: 96,
        height: 96,
      }
    },
    // 可选参数：点击区域的回调,
    onClick: (event) => {
      // 点击位置
      console.log(event.$position);
      // 击中目标
      console.log(event.$target);
    }
  });
  poster.draw([
    {
      type: 'image',
      source: './example/image/bg.png',
      x: 0,
      y: 0,
      width: 750,
      height: 3615,
    },
    {
      type: 'text',
      source: '哈哈哈哈哈哈哈哈哈哈哈',
      x: Math.floor(320 / 2),
      y: 12,
      maxWidth: 375,
      color: '#f0f0ff'
    }
  ]);
```
npm package: @moonjellydigital/browserslist-config
Description: Browserslist shareable config
Author: Camille Spain
Latest version: 1.2.0

# Browserslist Config

A shareable [Browserslist](https://www.npmjs.com/package/browserslist) config.

This config keeps a minimum of 90% global browser coverage.

## Installation

```shell
npm install --save-dev @moonjellydigital/browserslist-config
```

## Usage

Add the following to your `package.json`:

```json
"browserslist": [
  "extends @moonjellydigital/browserslist-config"
]
```

Or add the following to your `.browserslistrc`:

```
extends @moonjellydigital/browserslist-config
```

Or if your build transforms a browserslist config to other targets, you can
import the config directly into your script:

```js
import config from '@moonjellydigital/browserslist-config';
```

## License

[MIT](./LICENSE)
npm package: @moonjellydigital/prettier-config
Description: Prettier shareable config
Author: Camille Spain
Latest version: 1.1.0

# Prettier Config

A shareable [Prettier](https://prettier.io) config.

## Installation

npm:

```
npm install --save-dev @moonjellydigital/prettier-config
```

yarn:

```
yarn add -D @moonjellydigital/prettier-config
```

bun:

```
bun add -D @moonjellydigital/prettier-config
```

## Usage

Add to your `package.json`:

```json
{
  "prettier": "@moonjellydigital/prettier-config"
}
```

Import in a `.prettierrc.js` file if you want to override settings:

```javascript
import config from '@moonjellydigital/prettier-config';

export default {
  ...config,
  semi: false,
};
```
npm package: @moonjellydigital/pride-flags
Description: Pride flags CSS
Author: Camille Spain
Latest version: 1.2.1

# `@moonjellydigital/pride-flags`

Add pride flag designs to your web projects with just a few lines of code. Pride Flags can be integrated with any project since it's just pure CSS with no dependencies.

View all of the flag designs and color swatches on the [docs site](https://moonjellydigital.github.io/pride-flags).

## Browser Support

Pride Flags supports the listed browsers without any transpilation.

- Chrome: 111+

- Edge: 111+

- Safari: 15.4+

- Safari iOS: 15.4+

- Firefox: 113+

- Opera: 97+

## Installation

npm:

```sh
npm install @moonjellydigital/pride-flags
```

pnpm:

```sh
pnpm add @moonjellydigital/pride-flags
```

yarn:

```sh
yarn add @moonjellydigital/pride-flags
```

bun:

```sh
bun add @moonjellydigital/pride-flags
```

### Download

- [Normal](https://cdn.jsdelivr.net/npm/@moonjellydigital/pride-flags/pride-flags.css)

- [Minified](https://cdn.jsdelivr.net/npm/@moonjellydigital/pride-flags/pride-flags.min.css)

### CDN

- [jsDelivr](https://www.jsdelivr.com/package/npm/@moonjellydigital/pride-flags)

- [UNPKG](https://unpkg.com/@moonjellydigital/pride-flags@1.1.0/pride-flags.css)

## Usage

In a stylesheet:

```css
@import url('node_modules/@moonjellydigital/pride-flags/pride-flags.css');
```

In the document head:

```html
<link
  rel="stylesheet"
  href="node_modules/@moonjellydigital/pride-flags/pride-flags.css"
/>
```

In a component file:

```javascript
import 'node_modules/@moonjellydigital/pride-flags/pride-flags.css';
```

## Documentation

Full documentation is available on GitHub Pages at [https://moonjellydigital.github.io/pride-flags](https://moonjellydigital.github.io/pride-flags).

## License

[MIT](./LICENSE)
npm package: @moonjot/mention-starwars-plugin
Description: Star Wars Mention
Latest version: 0.0.4

# Moon Plugin Sample - Plugin Development

<span class="badge-npmversion"><a href="https://npmjs.org/package/@moonjot/mention-starwars-plugin" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@moonjot/mention-starwars-plugin.svg" alt="NPM version" /></a></span>
<span class="badge-npmdownloads"><a href="https://npmjs.org/package/@moonjot/mention-starwars-plugin" title="View this project on NPM"><img src="https://img.shields.io/npm/dm/@moonjot/mention-starwars-plugin.svg" alt="NPM downloads" /></a></span>


Moon Jot is base on a plugin system that make easy to develop your own integration and workflows

# Develop on Moon

Check the doc here (https://github.com/castroCrea/moon/blob/main/doc/Plugin_Development.md)[https://github.com/castroCrea/moon/blob/main/doc/Plugin_Development.md]


## Installation

```bash
yarn
```

## Build before publishing

```bash
yarn build
```

## For dev mode run 

```bash
yarn watch
```

## Publishing

First remove current git origin
```bash
git remote remove origin
```

Add you repo origin and change also **credential** iin `package.json`

Then
```bash
yarn pub
```
npm package: @moonjot/moon
Description: Moon basic package
Latest version: 0.1.109

# Moon Jot

<span class="badge-npmversion"><a href="https://npmjs.org/package/@moonjot/moon" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@moonjot/moon.svg" alt="NPM version" /></a></span>
<span class="badge-npmdownloads"><a href="https://npmjs.org/package/@moonjot/moon" title="View this project on NPM"><img src="https://img.shields.io/npm/dm/@moonjot/moon.svg" alt="NPM downloads" /></a></span>

[Release](https://github.com/castroCrea/moon/releases)

Revolutionize your note-taking workflow with Moon Jot: an intelligent launcher that combines fast typing with AI-driven context capture, customizable plugins, and seamless integration like Notion, Obsidian, ... - all designed to boost productivity and creativity!

## Documentation

[Plugin Development](./doc/Plugin_Development.md)

Check also the tutorial video https://youtu.be/dvoalnWBwv4

## Concept 

Moon Jot is revolutionizing note-taking by offering users access to an intelligent launcher through a simple universal shortcut. 

This launcher provides a fluid and customizable text editor, enabling fast and efficient typing. But that's not all: thanks to our API integration via customizable plugins, notes can be instantly sent to tools like Notion or Obsidian. 

Moon Jot stands out by its ability to capture the user's context, providing relevant information such as document titles and authors, or even details from social media platforms like Twitter and LinkedIn. 

⚠️ Currently, some functionalities are available only on **Mac OS X**.<br>
⚠️ The app has been tested exclusively on **Mac OS X**, but I decided to build it for **Windows** and **Linux** as well. <br>
 Please report any related incidents.<br>
However, our solution is designed to adapt to every workflow through customizable plugins.

Moreover, our integrated artificial intelligence allow you a way more customizable prompt interaction than any GPT on the market, thus enhancing the productivity and creativity of our users. 

Moon Jot offers an unparalleled note-taking experience, combining ease of use with advanced features and extensive customization. Join us in reinventing how we capture and utilize information in our daily lives.

## Videos

🙋 Check YouTube **Permissions** videos: https://www.youtube.com/playlist?list=PLmTKOO83vuwX7rit8WLxlnAbfIYy2aAwU

✨ Check YouTube **Features** videos: https://www.youtube.com/playlist?list=PLmTKOO83vuwVnQbCVjCuxUrfyaiLPgmvn
npm package: @moonjot/moon-ai-plugin
Description: Moon sample plugin for Moon
Latest version: 0.1.4

# Moon Plugin Sample

## Installation

```bash
yarn
```

## Build before publishing

```bash
yarn build
```

## For dev mode run 

```bash
yarn watch
```

This wil build the app each time you do a change

### on you app add to you `settings.plugins.list`

```json
				{
					"id": 2,
					"packageName": "{PATH_TO}/moon-ai-plugin", // path to the plugin
					"description": "Sample app",
					"fromPath": true, // if you packages name is develop locally
					"devMode": true, // allow auto refresh before each use
				}
```

## Publishing

First remove current git origin
```bash
git remote remove origin
```

Add you repo origin and change also **credential** iin `package.json`

Then
```bach
yarn pub
```
npm package: @moonjot/moon-ai-prompt-plugin
Description: Moon sample plugin for Moon
Latest version: 0.0.8

# Moon Ai via Mention

<span class="badge-npmversion"><a href="https://npmjs.org/package/@moonjot/moon-ai-prompt-plugin" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@moonjot/moon-ai-prompt-plugin.svg" alt="NPM version" /></a></span>
<span class="badge-npmdownloads"><a href="https://npmjs.org/package/@moonjot/moon-ai-prompt-plugin" title="View this project on NPM"><img src="https://img.shields.io/npm/dm/@moonjot/moon-ai-prompt-plugin.svg" alt="NPM downloads" /></a></span>


# Concept

Use `:ai:` to trigger ai flows.

## Build items property

In your settings you got this kind of item:
```json
  {
    "title": "ChatGPT - 4",                        // You can change that as you want
    "type": "openai",                              // openai | gemini | ollama | mistral
    "model": "gpt-4",                              // depending on the type refer to official ai doc
    "token": "",                                   // token if needed (openai | gemini | mistral)
    "prompt": "{{content}}",                       // you can customize that as you wish {{content}} is the content of the Launcher
    "output": "---\nAI:\n${response}\n\n---\n"     // you can customize how the answer will be formatted before be inserted in the text editor
  }
```

### output

Feel free to customize them, for example change the output

```json
  "output": "The GPT 4 AI answer with : \n${response}\n"
```

### prompt

Feel free to customize them, for example change the prompt like
```json
    "prompt": "Answer to this prompt only in French: '{{content}}'",
```

You can also add `context`

```json
    "prompt": "Answer to this prompt only in French: 'Question : {{content}}\n Article content: {{source.text}}'",
```


## There is only 3 type of AI integration available for now

Ask me if you want more

- [openai](https://platform.openai.com/docs/api-reference/making-requests)
- [gemini](https://ai.google.dev/gemini-api/docs/models/gemini?hl=fr)
- [ollama](https://ollama.com/)
- [mistral](https://docs.mistral.ai/capabilities/completion/)



# TODO

- [ ] Add shortcut maybe

# Develop on Moon

Check the doc here https://github.com/castroCrea/moon/blob/main/doc/Plugin_Development.md

Check also the tutorial video https://youtu.be/dvoalnWBwv4 📹

## Installation

```bash
yarn
```

## Build before publishing

```bash
yarn build
```

## For dev mode run 

```bash
yarn watch
```

## Publishing

First remove current git origin
```bash
git remote remove origin
```

Add you repo origin and change also **credential** iin `package.json`

Then
```bash
yarn pub
```
npm package: @moonjot/moon-mem-plugin
Description: Moon mem plugin for Moon
Latest version: 0.1.3

# Mem Plugin

## Installation

```bash
yarn
```

## Build before publishing

```bash
yarn build
```

## For dev mode run 

```bash
yarn watch
```

This wil build the app each time you do a change

### on you app add to you `settings.plugins.list`

```json
				{
					"id": 2,
					"packageName": "{PATH_TO}/moon-mem-plugin", // path to the plugin
					"description": "Sample app",
					"fromPath": true, // if you packages name is develop locally
					"devMode": true, // allow auto refresh before each use
				}
```
npm package: @moonjot/moon-obsidian-mention-plugin
Description: Moon sample plugin for Moon
Latest version: 0.1.18

# Obsidian Mnetion plugin

## Features

- Find tags with # and set location files with > inside Obsidian
- Insert note snippets easily with /
- Triggered with @ to set your personal CRM; a person can be auto-fetched by the context or added manually


## Installation

```bash
yarn
```

## Build before publishing

```bash
yarn build
```

## For dev mode run 

```bash
yarn watch
```

This wil build the app each time you do a change

### on you app add to you `settings.plugins.list`

```json
{
	"id": 2,
	"packageName": "{PATH_TO}/moon-obsidian-mention-plugin", // path to the plugin
	"description": "Sample app",
	"fromPath": true, // if you packages name is develop locally
	"devMode": true, // allow auto refresh before each use
	"npmRegistryUrl": "https://npm.pkg.github.com", // if you use moon plugin
}
```

## Publishing

First remove current git origin
```bash
git remote remove origin
```

Add you repo origin and change also **credential** iin `package.json`

Then
```bach
yarn pub
```
npm package: @moonjot/moon-obsidian-plugin
Description: Moon obsidian plugin for Moon
Latest version: 0.1.53

# Moon Obsidian Plugin

## Installation

```bash
yarn
```

## Build before publishing

```bash
yarn build
```

## For dev mode run 

```bash
yarn watch
```

This wil build the app each time you do a change

### on you app add to you `settings.plugins.list`

```json
				{
					"id": 2,
					"packageName": "{PATH_TO}/moon-obsidian-plugin", // path to the plugin
					"description": "Sample app",
					"fromPath": true, // if you packages name is develop locally
					"devMode": true, // allow auto refresh before each use
				}
```

## Publishing

First remove current git origin
```bash
git remote remove origin
```

Add you repo origin and change also **credential** iin `package.json`

Then
```bach
yarn pub
```
npm package: @moonjot/moon-sample-plugin
Description: Moon sample plugin for Moon
Latest version: 0.0.0

# Moon Plugin Sample - Plugin Development

<span class="badge-npmversion"><a href="https://npmjs.org/package/@moonjot/moon-sample-plugin" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@moonjot/moon-sample-plugin.svg" alt="NPM version" /></a></span>
<span class="badge-npmdownloads"><a href="https://npmjs.org/package/@moonjot/moon-sample-plugin" title="View this project on NPM"><img src="https://img.shields.io/npm/dm/@moonjot/moon-sample-plugin.svg" alt="NPM downloads" /></a></span>


Moon Jot is base on a plugin system that make easy to develop your own integration and workflows

# Develop on Moon

Check the doc here (https://github.com/castroCrea/moon/blob/main/doc/Plugin_Development.md)[https://github.com/castroCrea/moon/blob/main/doc/Plugin_Development.md]


## Installation

```bash
yarn
```

## Build before publishing

```bash
yarn build
```

## For dev mode run 

```bash
yarn watch
```

## Publishing

First remove current git origin
```bash
git remote remove origin
```

Add you repo origin and change also **credential** iin `package.json`

Then
```bash
yarn pub
```
npm package: @moonjot/moon-tana-inc-plugin
Description: Moon Tana.inc plugin for Moon Jot
Latest version: 0.0.14

# Moon [Tana Inc](https://tana.inc/) Plugin

<span class="badge-npmversion"><a href="https://npmjs.org/package/@moonjot/moon-tana-inc-plugin" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@moonjot/moon-tana-inc-plugin.svg" alt="NPM version" /></a></span>
<span class="badge-npmdownloads"><a href="https://npmjs.org/package/@moonjot/moon-tana-inc-plugin" title="View this project on NPM"><img src="https://img.shields.io/npm/dm/@moonjot/moon-tana-inc-plugin.svg" alt="NPM downloads" /></a></span>


Send Note from your OS to Tana.inc with your current context. Make it faster to take note into Tana.inc

Get tana token

Go to settings
![](./token.png)

Create a token
![](./create.png)

Copy the token
![](./copy.png)

Past it inside Moon Jot Settings
![](./moon_settings.png)

## Features

Support [[date:]] https://tana.inc/docs/tana-paste (Contact me for other Tana past support 🙏)

Handle dates like YYYY-MM-DD

Handle drop image

Handle code blocks

## Features

Handle dates like YYYY-MM-DD

Handle drop image

Handle code blocks

## Template

```
{{content}}
{{IF source.url}}Source: <a href="{{source.url}}">{{source.title}}</a>{{END_IF source.url}}
{{IF people.0.name}}Author: {{people.0.name}}{{END_IF people.0.name}}
```


## Condition

### Is defined

You can insert content based on a condition.
Currently, the condition only checks if something exists or does not exist.
```
{{IF ...}}Write something{{END_IF ...}}

// Example:
{{IF author}}Author: {{author}}{{END_IF author}}
```

### You can also do some condition with equality

#### === undefined
```
{{IF author === undefined}}content{{END_IF author}}
```

#### === some text
```
{{IF content === some text}}content{{END_IF content}}
```

#### !== some text
```
{{IF content !== some text}}content{{END_IF content}}{{IF content !== some text hey }}content different{{END_IF content}}
```

#### .includes(something)
```
{{IF content.includes(some t)}}content{{END_IF content}}{{IF content.includes(some text hey) }}content different{{END_IF content}}
```

#### .startsWith(something)
```
{{IF SOURCE.TEXT.startsWith(- [ ])}}content{{END_IF SOURCE.TEXT}}
```

## Date

You can format the date as YYYY-MM-DD HH:mm:ss.
```
{{DATE}}YYYY-MM-DD{{END_DATE}}
{{DATE}}HH:mm{{END_DATE}}
```

## Development

```bash
yarn
```

## Build before publishing

```bash
yarn build
```

## For dev mode run 

```bash
yarn watch
```

## Publishing

First remove current git origin
```bash
git remote remove origin
```

Add you repo origin and change also **credential** iin `package.json`

Then
```bash
yarn pub
```
npm package: @moonlight-mod/lunast
Description: Experimental AST processor for the Discord client's Webpack modules.
Latest version: 1.0.1

# LunAST

Experimental AST processor for the Discord client's Webpack modules.

## Usage

LunAST functions off of "processors". A processor has a unique ID, priority, an optional filter, and a process function. These must be registered in your `index.ts` file ASAP - not in a Webpack module or on the Node/host sides.

```ts
moonlight.lunast.register({
  name: "UniqueIDForTheProcessor",
  find: "something to look for",
  process(state) {
    return false;
  }
});
```

When a `find` is specified, the AST parsing will only be done on modules that match that regex/string(s). `find` is highly suggested, as AST parsing is much more expensive than simple string checks.

The `process` function will be called for every matched module. The state argument contains the LunAST instance, the ID of the matched module, some utilities, and more. When `process` returns true, the processor is unregistered, and will not trigger for future modules. Return true when you have found your desired module(s).

## Utilities

There are various utilities accessible through `state.lunast.utils`.

You can use the `magicAST` function to turn some JavaScript code into another AST node, and then merge/replace the original AST. **After you modify the AST, call the markDirty function.** LunAST will not know to replace the module otherwise. It is suggested you read the [estree-toolkit](https://estree-toolkit.netlify.app/welcome) documentation.

```ts
process({ ast, markDirty, lunast }) {
  const node = /* do something with the AST */;
  if (node != null) {
    const replacement = lunast.utils.magicAST("return 1 + 1");
    node.replaceWith(replacement);
    markDirty();
    return true;
  }

  return false;
}
```

## Embedding into client mods

First, create an instance of LunAST:

```ts
import LunAST from "@moonlight-mod/lunast";
const lunast = new LunAST();
```

Expose this instance to your extensions (before Webpack initializes) so extensions can register custom processors.

You'll then need to set a module source getter, so LunAST can retrieve the source of other modules.

```ts
lunast.setModuleSourceGetter((id) => {
  // assuming `funcs` is a Record<string, WebpackModuleFunc>
  return funcs[id].toString().replace(/\n/g, "");
});
```

Then, when processing a module into the Webpack chunk, give it the script to parse and patch the returned modules:

```ts
const parsed = lunast.parseScript(id, code);
if (parsed != null) {
  for (const [id, script] of Object.entries(parsed)) {
    // Patch module `id` with the contents of `script`
  }
}
```
npm package: @moonlight-mod/moonmap
Description: Mapping utility for unknown JavaScript objects.
Latest version: 1.0.7

# moonmap

Mapping utility for unknown JavaScript objects.

## Usage

moonmap functions off of "processors". A processor has a unique ID, priority, an optional filter, and a process function. These must be registered in your `index.ts` file ASAP - not in a Webpack module or on the Node/host sides.

```ts
moonlight.moonmap.register({
  name: "UniqueIDForTheProcessor",
  find: "something to look for",
  process(state) {
    return false;
  }
});
```

The `process` function will be called for every matched module. The state argument contains the moonmap instance, the ID of the matched module, and a string representing the module source code. When `process` returns true, the processor is unregistered, and will not trigger for future modules. Return true when you have found your desired module(s).

## Mapping modules

You can simply do `moonmap.addModule(id, name)` to register a module (e.g. `moonmap.addModule("123456", "CustomName")` means `require("CustomName")` goes to module `123456`).

You can add an export by specifying the name, and what kind of export it is:

```ts
moonmap.addExport(name, "ExportName", {
  type: ModuleExportType.Function,
  find: "something to look for"
});
```
npm package: @moonlightaniki/swap-sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 0.0.5

# Uniswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Actions Status](https://github.com/Uniswap/uniswap-sdk/workflows/CI/badge.svg)](https://github.com/Uniswap/uniswap-sdk)
[![npm version](https://img.shields.io/npm/v/@uniswap/sdk/latest.svg)](https://www.npmjs.com/package/@uniswap/sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/sdk/latest.svg)](https://bundlephobia.com/result?p=@uniswap/sdk@latest)

In-depth documentation on this SDK is available at [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/Uniswap/uniswap-sdk.git
```

Move into the uniswap-sdk working directory

```sh
cd uniswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @moonlightos/moonlight-easy
Description: A way for open source developers to get paid
Author: Moonlight Open Source Authors
Latest version: 1.0.3

<p align="center">
  <img src="https://moonlightos.com/images/banner_cropped.png" title="Moonlight Logo" alt="Moonlight Logo">
</p>

# Moonlight Easy

To configure Moonlight easy, follow a few simple steps:

1. Install moonlight-easy with npm
```
npm install --save --production @moonlightos/moonlight-easy
```
The production flag will make sure that development dependencies do not get installed, as they are not needed. This will keep the size of the moonlight package small.

2. Configure moonlight easy with a postinstall script for your package.
```
{
  "name": "your package name",
  "version": "1.0.0",
  "description": "your description",
  "main": "index.js",
  "scripts": {
    "postinstall": "node -e 'try {require(\"@moonlightos/moonlight-easy\").showAd(\"(your package full name)\")} catch (e) {}'",
  }
}
```
Replace your package full name in the format github_account/repository. For example, for this package it would be 'MoonlightOS/moonlight-easy'

3. Watch the money come in.

# The dashboard

You can log in to the Moonlight dashboard with your GitHub account. If you have no repositories with Moonlight configured, it will show your repositories without any impression data. Once you configure Moonlight, impression & earnings data will start showing up in the Moonlight dashboard.
npm package: @moonlightos/moonlight-easy-example
Description: A package used to test how Moonlight Easy works
Author: Moonlight Open Source Authors
Latest version: 1.0.3

# Test package for Moonlight Easy

By installing this package, you can see what your users will see, when they install your package after configuring Moonlight-easy for your project.

Install:
```
npm install @moonlightos/moonlight-easy-example
```

# The dashboard

You can log in to the Moonlight dashboard with your GitHub account. If you have no repositories with Moonlight configured, it will show your repositories without any impression data. Once you configure Moonlight, impression & earnings data will start showing up in the Moonlight dashboard.
npm package: @moonlightos/moonlight-hard
Description: A way for open source developers to get paid
Author: Moonlight Open Source Authors
Latest version: 1.0.3

<p align="center">
  <img src="https://moonlightos.com/images/banner_cropped.png" title="Moonlight Logo" alt="Moonlight Logo">
</p>

# Moonlight Hard

To configure Moonlight hard, follow a few simple steps:

1. Install moonlight-hard with npm
```
npm install --save --production @moonlightos/moonlight-hard
```
The production flag will make sure that development dependencies do not get installed, as they are not needed. This will keep the size of the moonlight package small.

2. Configure moonlight hard with a preinstall script for your package.
```
{
  "name": "your package name",
  "version": "1.0.0",
  "description": "your description",
  "main": "index.js",
  "scripts": {
    "preinstall": "node -e 'try {require(\"@moonlightos/moonlight-hard\").showAd(\"moonlightos/moonlight-easy-example\", [sandbox])} catch (e) {}'",
  }
}
```
Replace [sandbox] with true if you want to use the sandbox, false otherwise. The 'sandbox' option is a way to get around ad blockers, by opening the ad in a tiny (45KB/89KB only) browser. The sandbox mode is optional, but beware that your earnings might be lower without the sandbox option, due to the widespread use of AdBlockers.

Replace your package full name in the format github_account/repository. For example, for this package it would be 'MoonlightOS/moonlight-easy'

3. Watch the money come in.

# The dashboard

You can log in to the Moonlight dashboard with your GitHub account. If you have no repositories with Moonlight configured, it will show your repositories without any impression data. Once you configure Moonlight, impression & earnings data will start showing up in the Moonlight dashboard.
npm package: @moonlightos/moonlight-hard-example
Description: A package used to test how Moonlight Hard works
Author: Moonlight Open Source Authors
Latest version: 1.0.3

# Test package for Moonlight Hard

By installing this package, you can see what your users will see, when they install your package after configuring Moonlight-hard for your project. Moonlight-hard-example uses the 'sandbox' option, so the ad is being shown in a tiny sandbox browser.

Install:
```
npm install @moonlightos/moonlight-hard-example
```

# The dashboard

You can log in to the Moonlight dashboard with your GitHub account. If you have no repositories with Moonlight configured, it will show your repositories without any impression data. Once you configure Moonlight, impression & earnings data will start showing up in the Moonlight dashboard.
npm package: @moonlights/project-doctor
Description: CLI to scan project health for dependencies, environment, security, unused code and performance hints
Latest version: 0.0.3

# Project-Doctor

CLI-инструмент для быстрой проверки здоровья проекта по направлениям:
CLI-инструмент, который проверяет здоровье проекта по нескольким направлениям:

- dependencies
- env
- python/node version
- security
- unused code
- performance

## Быстрый workflow (npm)

Установить в проект:

```bash
npm i -D project-doctor
```

Запустить сразу:
## Запуск

### Через Node.js

```bash
npx project-doctor
```

Или добавить удобный script в ваш `package.json`:

```json
{
  "scripts": {
    "doctor": "project-doctor"
  }
}
```

Теперь можно запускать проще:

```bash
npm run doctor
```

## Опции CLI

```bash
project-doctor --path ./my-project
project-doctor --json
```

## Python usage
### Через Python

```bash
pip install .
project-doctor
```

## Пример вывода

```text
Project Health: 72%

Issues:
- 5 unused dependencies
- 2 security vulnerabilities
- 4 unused files
```
npm package: @moonlighttoken/material-theme
Description: A Material theme for Moonlight Token apps.
Latest version: 4.1.1

# material-theme
A Material theme for Moonlight Token apps.

More info on how to use it on the [demo app repo](https://github.com/Moonlight-Token/demo-app).

## Changelog

- `v4.1.1` - Fix undesired styles of previous version
- `v4.1.0` - Add `mdc-text-field--outlined-discrete` styling
- `v4.0.0` - Moved `@use "@material/theme"` from the variables files to a separate file. This allow customization of the material theme (incubated apps). The new file now has to be added in the `app.scss` of the apps using this theme (see demo app repo).
- `v3.0.0` - Replace plain html tags rules by classes rules and remove a color.
- `v2.3.1` - Add a color to the palette.
- `v2.3.0` - Update the color palette and the grid margin system.
- Up to `v2.2.1` - First iterations, update the initial work to match the last version of MDC, various fixes.