open-index/open-npm huggingface dataset:
npm package: @polywrap/tracing-js
Description: Polywrap Core Tracing
Latest version: 0.12.2

# @polywrap/tracing-js

## Steps to use tracing

1. Run the zipkin client using docker

    ```
    docker run -d -p 9411:9411 openzipkin/zipkin
    ```

2. Enable tracing when creating the `PolywrapClient`

    ```typescript
    const client = new PolywrapClient({
      ...,
      tracingEnabled: true
    })
    ```

    Or you can turn on tracing while running the `PolywrapClient` by calling the `tracingEnabled` method of `PolywrapClient`.

    ```typescript
    // Turn tracing off
    client.tracingEnabled(false);
    ```

3. Once you run the app and started producing logs, go to zipkin client which is running on `http://localhost:9411`. There you can click `RUN QUERY` button without any filters to show all the logs.
npm package: @polywrap/uts46-plugin-js
Description: Polywrap IDNA-UTS #46 Javascript Plugin
Latest version: 0.6.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @polywrap/uts46-plugin-js

UTS46 Plugin allows Polywrap JS Client to handle internationalized domain names (IDNA), with a full mapping between Unicode and Punycode defined by [UTS #46](https://unicode.org/reports/tr46/).

## Usage

``` typescript
import { PolywrapClient } from "@polywrap/client-js";
import { uts46Plugin } from "@polywrap/uts46-plugin-js";

export async function foo({

  const uts46PluginUri = "wrap://ens/uts46.polywrap.eth";

  const client = new PolywrapClient({
    plugins: [
      {
        uri: uts46PluginUri,
        plugin: uts46Plugin({}),
      },
    ]
  });

  const response = await client.invoke<string>({
    uri: uts46PluginUri,
    method: 'toAscii',
    args: {
      value: "xn-bb-eka.at"
    }
  });
})
```

## API

Full API in `src/schema.graphql`
npm package: @polywrap/web3-config-bundle-js
Description: A collection of Web3 configurations.
Latest version: 0.12.2

# Web3 Config Bundle

A collection of Web3 configurations.

## Bundle

```typescript
import * as Sys from "@polywrap/sys-config-bundle-js";
import * as EthWallet from "@polywrap/ethereum-wallet-js";

export interface Web3Bundle extends Bundle {
  concurrent: BundlePackage;
  http: BundlePackage;
  ipfsHttpClient: BundlePackage;
  ipfsResolver: BundlePackage;
  ethereumWallet: BundlePackage;
  ensTextRecordResolver: BundlePackage;
  ensContenthashResolver: BundlePackage;
  ensIpfsContenthashResolver: BundlePackage;
}

export const bundle: Web3Bundle = {
  concurrent: Sys.bundle.concurrent,
  http: Sys.bundle.http,
  ipfsHttpClient: Sys.bundle.ipfsHttpClient,
  ipfsResolver: Sys.bundle.ipfsResolver,
  ethereumWallet: {
    uri: "plugin/ethereum-wallet@1.0",
    package: EthWallet.plugin({
      connections: new EthWallet.Connections({
        networks: {
          mainnet: new EthWallet.Connection({
            provider:
              "https://mainnet.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6",
          }),
          goerli: new EthWallet.Connection({
            provider:
              "https://goerli.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6",
          }),
        },
      }),
    }) as IWrapPackage,
    implements: ["wrapscan.io/polywrap/ethereum-wallet@1.0"],
    redirectFrom: ["wrapscan.io/polywrap/ethereum-wallet@1.0"],
  },
  ensTextRecordResolver: {
    uri: "ipfs/QmdYoDrXPxgjSoWuSWirWYxU5BLtpGVKd3z2GXKhW2VXLh",
    implements: [
      "wrapscan.io/polywrap/ens-text-record-uri-resolver@1.0",
      ExtendableUriResolver.defaultExtInterfaceUris[0].uri,
    ],
    redirectFrom: ["wrapscan.io/polywrap/ens-text-record-uri-resolver@1.0"],
  },
  ensContenthashResolver: {
    uri: "wrapscan.io/polywrap/ens-contenthash-uri-resolver@1.0",
    implements: [ExtendableUriResolver.defaultExtInterfaceUris[0].uri],
  },
  ensIpfsContenthashResolver: {
    uri: "wrapscan.io/polywrap/ens-ipfs-contenthash-uri-resolver@1.0",
    implements: [ExtendableUriResolver.defaultExtInterfaceUris[0].uri],
  },
};
```
npm package: @polywrap/wrap-manifest-schemas
Description: WRAP Manifest Schemas
Latest version: 0.9.7

# @polywrap/wrap-manifest-schemas
Versioned formats of the `wrap.info` manifest file, and all of its sub-parts (i.e. `abi`), as defined in the WRAP standard:
* [`wrap.info`](./formats/wrap.info/)
* [`abi`](./formats/abi/)
npm package: @polywrap/ws-plugin-js
Description: Polywrap WS javascript Plugin
Latest version: 0.9.7

# @polywrap/ws-plugin-js

WebSocket plugin allows Polywrap Client to interact with WebSocket servers.

## interface
See [schema.graphql](./src/schema.graphql).

## callback
Every incoming WebSocket message can be passed to a callback function in another wrapper. Use `addCallback` to start passing messages and `removeCallback` to stop. The callback function is expected to have a parameter `data`, i.e. `foo(data: string)`.

``` typescript
//assemblyscript

export function callback(args: Args_callback): boolean {
  Logger_Module.log({message: args.data})
  return true;
}

export function subscribe(args: Args_subscribe): boolean {
  const id = WS_Module.open({
    url: args.url
  }).unwrap();

  WS_Module.addCallback({
    id,
    callback: {
      uri: "wrap://ens/this.polywrap.eth",
      method: "callback"
    }
  })

  return true;
}

export function unsubscribe(args: Args_subscribe): boolean {
  const id = WS_Module.open({
    url: args.url
  }).unwrap();

  WS_Module.removeCallback({
    id,
    callback: {
      uri: "wrap://ens/this.polywrap.eth",
      method: "callback"
    }
  })

  return true;
}
```

## cache

Incoming WebSocket messages can be stored in the plugin and retrieved as an array later. Use `addCache` to start caching messages and `removeCache` to stop. Use `receive` to get an array of cached messages and empty the cache. Optionally, wait for a timeout, or a minimum number of cached messages before retrieving the array. 

``` typescript
//assemblyscript
export function get(args: Args_get): string[] {
  const id = WS_Module.open({
    url: args.url
  }).unwrap();

  WS_Module.addCache({
    id
  }).unwrap().unwrap()
 
  WS_Module.send({
    id,
    message: args.message
  }).unwrap().unwrap();
 
  const messages = WS_Module.receive{ 
    id, 
    timeout: { value: 200 },
    quote: { value: 3 }
  }).unwrap();
 
  const data: string[] = messages.map<string>((msg) => msg.data);
 
  return data;
}
```
npm package: @polyxde/uikit
Description: Set of UI components for polyxde projects
Latest version: 0.0.1

# 🥞 Polyxde UIkit

Polyxde UIkit is a set of React components and hooks used to build pages on Polyxde's apps. It also contains a theme file for dark and light mode.

## Install

`yarn add @polyxde/uikit`

## Setup

### Theme

Before using Polyxde UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@polyxde/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@polyxde/uikit'
...
<ResetCSS />
```

### Types

This project is built with Typescript and export all the relevant types.
npm package: @polyzap/sdk
Description: 🛠 An SDK for building applications on top of PolyZap.
Latest version: 1.0.0

# Pancakeswap 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/pancakeswap/pancakeswap-sdk/workflows/CI/badge.svg)](https://github.com/pancakeswap/pancakeswap-sdk)
[![npm version](https://img.shields.io/npm/v/@pancakeswap-lib/sdk/latest.svg)](https://www.npmjs.com/package/@pancakeswap-lib/sdk/v/latest)

## 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/pancakeswap/pancakeswap-sdk.git
```

Move into the pancakeswap-sdk working directory

```sh
cd pancakeswap-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: @polyzap/uikit
Description: Set of UI components for PolyZap projects
Latest version: 1.0.10

# ⚡ PolyZap UIkit

[![Version](https://img.shields.io/npm/v/@polyzap/uikit)](https://www.npmjs.com/package/@polyzap/uikit)

PolyZap UIKit is a set of React components and hooks used to build pages on PolyZap's apps.

It also contains a theme file for dark and light mode.

## Install

`yarn add @polyzap/uikit`

## npm

https://www.npmjs.com/package/@polyzap/uikit

## Setup

### Theme

Before using PolyZap UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@polyzap/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@polyzap/uikit'
...
<ResetCSS />
```

### Types

This project is built with Typescript and export all the relevant types.

## How to use the UIkit

```
yarn storybook
```

If you want to use components from the UIkit, check the [Storybook documentation](http://localhost:6006/)
npm package: @pom421/link-clipper
Description: A module to clip links from a webpage and save them to a markdown file with a frontmatter
Author: pom421
Latest version: 1.0.4

# Link clipper

A ts node module to get information of an url and generate a md file with only front matter.

## Installation

```shell
npm install link-clipper
```

## Usage

```typescript
import { clipLink } from "@pom421/link-clipper";

async function main() {
  const filePath = await clipLink("https://example.com", {
    outputDir: "./clipped-links",
  });
  console.log(`File created: ${filePath}`);
}
```

## Release

```shell
// run changeset to document your new release
npx changeset

// commit your files
git add .
git commit -m "my comment"

// version package.json and publish on npmjs
npm run local-release
```
npm package: @pomada/taza
Description: Key/Value Object Store
Author: Daniel Martinez
Latest version: 1.0.6

# Taza
Key/Value Object Store. Safe or empty by design.

## API
### TazaService.do('key')
Returns stored value or empty object.

### TazaService.do('key', value)
Saves and gets the value reference.

## Usage
````
import { TazaService } from '@pomada/taza';

@NgModule({
  providers: [TazaService]
})
export class AppModule { }

export class AppComponent {
  constructor(private taza: TazaService) { }
}
````
npm package: @pomade/core
Description: Recovery protocol and implementation for nostr multisig signers.
Author: hodlbod
Latest version: 0.2.3

# @pomade/core

Core library for the Pomade protocol - recovery protocol and implementation for nostr multisig signers.

For protocol specification, see [PROTOCOL.md](../../PROTOCOL.md)

## Installation

```bash
npm install @pomade/core
```

## What's Included

- **Client** - Application-side interface for registering sessions, signing, and recovery
- **Signer** - Service for managing multisig sessions and creating partial signatures
- **Storage interfaces** - `IStorage` and `IStorageFactory` with in-memory implementation
- **Type definitions** - Complete TypeScript types and Zod schemas for all protocol messages

## Usage

```typescript
import {Client, Signer, inMemoryStorageFactory} from "@pomade/core"

// Register a new client session
const client = await Client.register(
  2, // threshold
  3, // n (number of signers)
  userSecret, // user's secret key
  true, // recovery enabled
)

// For running a signer service
const signer = new Signer({
  secret: signerSecretKey,
  relays: ["wss://relay.example.com"],
  storage: storageFactory,
})
```

For a batteries-included signer, see [@pomade/signer](../signer).

## Performance

Password hashing uses argon2id, which runs on the main thread by default and may cause brief UI jank (~100-200ms). To avoid this, enable Web Workers:

```typescript
import {context} from "@pomade/core"

context.setArgonWorker(import("@pomade/core/argon-worker.js?worker"))
```

This uses your bundler's worker import syntax. No CSP changes required.

## License

MIT
npm package: @pomby/consolealerts
Description: A simple alerting library for Pomby to alert on the console
Latest version: 1.0.1

# @pomby/consolealerts

A library for use with pomby to add alerts to the console

## Sample Config

In your config you can add something like the following to your config:

```javascript
{
  "consoleAlerts": [
    {
      "type": ["fail"],
      "output": "error",
      "template": "[{runTimeISO}] There was an error: {statusCode} with monitor: {title} in category {category}"
    }
  ]
}
```

The type is the only required portion, output will default to info and template will default to `"Console Alert Triggered for: {title}"`

## Template Variables

* __title__ - Title of the monitor
* __runTime__ - Date of the run
* __runTimeISO__ - Date fo the run but formatted in ISO format
* __timing__ - Time in ms the run took
* __statusCode__ - Status code of the run (only on error)
* __type__ - Monitor Type used 
* __category__ - Monitor Category

## Types:

* success
* fail
* noResponse
* error
* slow
* testFail
* badConfig
npm package: @pomby/elasticalerts
Description: A simple alerting library for Pomby to alert to elasticsearch
Latest version: 1.0.2

# @pomby/consolealerts

A library for use with pomby to add alerts to the console

![sample kibana](Screenshot.png)

## Configuring

```javascript
const elasticAlerts = require('@pomby/elasticalerts');

const eaPlugin = elasticAlerts({
  index: 'pombyalerts',
  node: 'http://localhost:9200',
});

pomby({
  //...
  plugins: [eaPlugin],
});

```

### Options
* __index__ - can be a string or a function, if a function the runtime of the monitor will be passed
* __node__ - node or array of nodes to connect to
* __timestampField__ (optional) - defaults to '@timestamp'
* _more_ - You can send in most options available to the [elastic search client](https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/client-connecting.html) connect


## Sample Config

In your config you can add something like the following to your config:

```javascript
{
  "elasticAlerts": [
    {
      "type": ["fail"],
      "template": "[{runTimeISO}] There was an error: {statusCode} with monitor: {title} in category {category}"
    }
  ]
}
```

The type is the only required portion, output will default to info and template will default to `"Console Alert Triggered for: {title}"`

## Template Variables

* __title__ - Title of the monitor
* __runTime__ - Date of the run
* __runTimeISO__ - Date fo the run but formatted in ISO format
* __timing__ - Time in ms the run took
* __statusCode__ - Status code of the run (only on error)
* __type__ - Monitor Type used 
* __category__ - Monitor Category

## Types:

* success
* fail
* noResponse
* error
* slow
* testFail
* badConfig
npm package: @pomby/pomby
Description: Pomby service monitor
Author: mikevalstar@gmail.com
Latest version: 0.6.4

# Pomby

Pomby is a simple application monitoring system for your services. Track downtime including error and downtime reports. 

Pomby is designed to be a pluggable architecture to allow you to build any type of monitor you need, as well as add pluggable actions on your monitors.

## Getting Started

```js
const pomby = require('@pomby/pomby');
const pombySimple = require('@pomby/simplerequest');

pomby({
  db: 'mongodb://localhost/pomby',
  port: 8087,
  development: false,
  sessionAge: 24 * 60 * 60 * 1000,
  monitorHandlers: [pombySimple],
  dataRetention: 7 * 24 * 60 * 60 * 1000, // 1 week
  defaultRunSpacing: 1 * 60 * 1000, // 1 min
});

```

### db <string> - required
Database conenction string - mongo DB

### monitorHandlers <[handler]> - required
An array of monitor handlers that you wish to be available.

### port <number> - required
default: 8080

Required to set the port the application runs on.

### defaultRunSpacing <number> - required
default: 30 seconds (also the minimum setting)

This specifies how often the monitors will fun by default.

### development <boolean> - optional
Runs the project in development mode, live rebuilds of the UI and more debugging output.

### sessionAge <number> - optional
Login session age in ms
### dataRetentions <number> - optional
Time to retrain error logs and per-run spacing logs.  Hourly and daily records are stored indefinity. 

## What does it do?

### Dashboard
A quick view to how your monitored applications are doing right now.

![Dashboard](docs/img/dashboard.png)

### Monitors
Detailed statistics about your monitored application and reporting on that monitored service. 

![Monitor](docs/img/monitor-dashboard.png)


## Monitors

* [Simple Request](https://gitlab.com/pomby/simple-request) - Simple request library using node fetch

## Plugins

* [Console Alerts](https://gitlab.com/pomby/console-alerts) - Console alerts for your monitors
* [Elastic Alerts](https://gitlab.com/pomby/elastic-alerts) - Elastic / Kibana alerts for your monitors

### Plugin Hooks

The following are the types of hooks you can use when creating a plugin

* `onRunComplete(config, monitor, runLog, error, errorDetails)` - Hook runs after a run is completed for a monitor

## Reporting

Coming soon...
npm package: @pomeexchange/uikit
Description: Set of UI components for Pome Exchange projects
Author: Pomegranate
Latest version: 0.2.4

# Pomegranate Finance UIkit

Pomegranate Finance UIkit is a set of React components and hooks used to build pages on Pomegranate apps. It also contains a theme file for dark and light mode.

## Install

`yarn add @pomeexchange/uikit`


### Theme

Before using Pomegranate Finance UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@pomeexchange/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@pomeexchange/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 [GitHub Repository](https://github.com/pomeexchange/uikit)
npm package: @pomegranate-ui/base-css
Description: Basic css reset styles for browser consistency
Author: franzwcom
Latest version: 1.0.8

# base-css

> Basic css reset styles for browser consistency

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

## Install

```bash
	yarn add  @pomegranate-ui/base-css
```

## Usage

```tsx
import React from 'react'
import { BaseCss } from '@pomegranate-ui/base-css'
import { jsx, Global, css } from '@emotion/core'
```

> The `:root` can be useful for declaring CSS variables
> extending also for global clases, use it sparingly

```tsx
const roots = css`
	:root {
		--brand-apple-bg: #000;
		--brand-apple-color: #fff;
		--brand-apple-bg-hover: #1b1b1b;
		--brand-twitter-bg: #1da1f2;
		--brand-twitter-color: #fff;
		--brand-twitter-bg-hover: #0096f2;
		--brand-github-bg: #24292e;
		--brand-github-color: #fff;
		--brand-github-bg-hover: #000;
	}
	.custom-class {
		font-family: sans-serif;
	}
`
```

```tsx
const App = () => {
	return (
		<React.Fragment>
			<BaseCss />
			<Global styles={roots} />
			// must be installed in the root of the app
		</React.Fragment>
	)
}
```

## License

© [franzwcom](https://github.com/franzwcom)
npm package: @pomegranate-ui/maracuya-ui
Description: Maracuya is a design system built with React, Typescript & emotion
Author: franzwcom
Latest version: 1.0.28

# Maracuya-ui - React component library

Maracuya is a react component library built with Typescript & emotion.

Maracuya uses [emotion](https://emotion.sh) for writting css styles using javascript.

[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
yarn add  @pomegranate-ui/maracuya-ui
```

## Usage

```tsx
import React from 'react'

import { Alert } from '@pomegranate-ui/maracuya-ui'

const App = () => {
	return <Alert text='Alert example 😄' color='primary' />
}
```

## Components

- [Alert](https://codesandbox.io/s/eager-water-0jv8p?file=/src/App.js)
- Avatar
- Button
- Chip
- Embed
- Hero
- Hidden
- Image
- ImageDiv
- Overlay
- List & item
- Overlay
- Modal
- more coming up...

## License

MIT © [franzwcom](https://github.com/franzwcom)
npm package: @pomegranate/plugin-tools
Description: Everything needed to create, export and publish a Pomegranate plugin.
Author: Jim Bulkowski
Latest version: 2.0.10

# Pomegranate Plugin Tools

## Everything needed to create, export and publish Pomegranate plugins.

[![NPM Version - Seeing this? Shields.io is broken, again.][npm-image]][npm-url]
[![Linux][travis-image]][travis-url]
[![Code Coverage][coveralls-image]][coveralls-url]

## licence

[MIT](LICENSE)

[npm-image]: https://img.shields.io/npm/v/@pomegranate/plugin-tools.svg
[npm-url]: https://www.npmjs.com/package/@pomegranate/plugin-tools
[travis-image]: https://travis-ci.org/Pomegranate/Tools.svg?branch=master
[travis-url]: https://travis-ci.org/Pomegranate/Tools
[coveralls-image]: https://coveralls.io/repos/github/Pomegranate/Tools/badge.svg?branch=master
[coveralls-url]: https://coveralls.io/github/Pomegranate/Tools?branch=master
npm package: @pomegranate/toposorter
Description: Sorts Pomegranate framework plugins.
Author: Jim
Latest version: 1.0.0

### Magnum-topo

[![Build Status](https://travis-ci.org/PaperElectron/Magnum-topo.svg?branch=master)](https://travis-ci.org/PaperElectron/Magnum-topo)
[![Coverage Status](https://coveralls.io/repos/github/PaperElectron/Magnum-topo/badge.svg?branch=master)](https://coveralls.io/github/PaperElectron/Magnum-topo?branch=master)

Topologically sorts magnum-loader plugins.

### License

MIT License

Topological Sort adapted from https://github.com/gustavohenke/toposort
npm package: @pomek/ckeditor5-source-editing-editor
Description: A plugin that replaces the textarea field with a code editor when entering the editing source mode.
Author: pomek
Latest version: 1.0.0

# CKEditor 5 Source Editing Editor

This feature adds the [Ice](https://github.com/zeroc-ice/ice) editor when enabling the source editing plugin in CKEditor 5.

<img width="810" alt="image" src="https://user-images.githubusercontent.com/2270764/159162052-32bd44a3-340f-40da-a3c0-001a3f8474dd.png">

## Installation

Install required packages:

```bash
npm install --save @ckeditor/ckeditor5-source-editing @pomek/ckeditor5-source-editing-editor
```

Then, enable these features in your editor:

```js
import SourceEditing from '@ckeditor/ckeditor5-source-editing/src/sourceediting';
import SourceEditingEditor from '@pomek/ckeditor5-source-editing-editor/src/sourceeditingeditor';

ClassicEditor
	.create( document.querySelector( '#editor' ), {
		plugins: [ SourceEditing, SourceEditingEditor, ... ],
		toolbar: [ 'sourceEditing', ... ]
	} )
	.then( ... )
	.catch( ... );
```
npm package: @pomelos/water-mark
Description: 前端水印插件
Author: HKT
Latest version: 0.0.6

## 前端水印插件

## 安装

```Bash
npm i @pomelos/water-mark -S
```

## 示例

```JavaScript
import WaterMark from "@pomelos/water-mark"
const wm = new WaterMark({
  text: '水印文字'
})

// 删除水印
//  wm.remove()

```

## Config 配置项

| 参数名     | 类型                 | 必填 | 默认值              | 版本  | 说明                   |
| ---------- | -------------------- | ---- | ------------------- | ----- | ---------------------- |
| el         | string / HTMLElement | N    | body                |       | 需要添加水印的标签元素 |
| text       | string / string[]    | N    | @pomelos/water-mark |       | 水印文字               |
| fontSize   | number               | N    | 14                  |       | 水印字体大小           |
| fontStyle  | string               | N    | 微软雅黑            |       | 字体                   |
| fontColor  | string               | N    | rgba(0,0,0,0.1)     |       | 文字颜色               |
| width      | number               | N    | 200                 |       | 单个水印宽度           |
| height     | number               | N    | 200                 |       | 单个水印高度           |
| angle      | number               | N    | -15                 |       | 水印旋转角度           |
| positionX  | number               | N    | 10                  |       | 文字起始位置 X 轴      |
| positionY  | number               | N    | 单个水印高度的一半  |       | 文字起始位置 Y 轴      |
| rowSpacing | number               | N    | 2                   |       | 多行文字时的间距       |
| style      | Object               | N    | 无                  | 0.0.5 | 水印标签的额外样式     |

## Methods 方法

| 方法名 | 入参   | 出参 | 版本 | 说明         |
| ------ | ------ | ---- | ---- | ------------ |
| set    | Config | 无   |      | 重新设置水印 |
| remove | 无     | 无   |      | 删除水印     |
npm package: @pomelyu/react-meteor-client
Description: Full Meteor Client for React
Latest version: 1.2.5

# react-meteor-client
Served as client-side package for meteor subscription and method caller

This repository is forked from [inProgress-team/react-native-meteor](https://github.com/inProgress-team/react-native-meteor), and modified according to [ZevenFang/react-meteor](https://github.com/ZevenFang/react-meteor)

## Usage
```javascript
import Metor, { creatContainer } from 'react-meteor-client';
import App from './App';

const mapMeteorDataToProps = () => {
  Meteor.subscribe('tasks');
  return {
    tasks: Meteor.collection('tasks').find({}) || [],
    incompleteCount: Meteor.collection('tasks').find({ checked: { $ne: true } }).length,
    currentUser: Meteor.user() || null,
  };
};

export default createContainer(mapMeteorDataToProps, App);
```


## Example
```bash
# Build this package
npm install
npm run build

# Publish (After build)
cd dist
npm publish

# Meteor server side (official todos example)
cd example/MeteorApp
meteor npm install
meteor npm start # meteor run at localhost:3333

# React client side
cd example ReactApp
npm install
npm start # react-app run at localhost:3000
```