open-index/open-npm huggingface dataset:
npm package: @kurbar/mailer
Description: NestJS - a mailer module (@mailer)
Author: Nest Modules TM
Latest version: 1.9.2

## Forked just for the v1.9.2 release

This is a fork that just publishes the latest vulnerability fixes done to `@nest-modules/mailer`.

It is released as `1.9.2` as package `@kurbar/mailer`

### Installation
```
$> npm install @kurbar/mailer
```

<p align="center">
  <a href="http://nestjs.com/" target="blank">
    <img src="https://nestjs.com/img/logo_text.svg" width="320" alt="Nest Logo" />
  </a>
</p>

<p align="center">
  A mailer module for Nest framework (node.js) using <a href="https://nodemailer.com/">Nodemailer</a> library
</p>

<p align="center">
  <a href="https://www.npmjs.com/org/nestjs-modules"><img src="https://img.shields.io/npm/v/@nestjs-modules/mailer.svg" alt="NPM Version" /></a>
  <a href="https://www.npmjs.com/org/nestjs-modules"><img src="https://img.shields.io/npm/l/@nestjs-modules/mailer.svg" alt="Package License" /></a>
  <a href="https://www.npmjs.com/org/nestjs-modules"><img src="https://img.shields.io/npm/dm/@nestjs-modules/mailer.svg" alt="NPM Downloads" /></a>
  <a href="https://opencollective.com/nest-modules#sponsor"  target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
</p>

### Installation

```sh
npm install --save @nestjs-modules/mailer nodemailer
npm install --save-dev @types/nodemailer
#or
yarn add @nestjs-modules/mailer nodemailer
yarn add -D @types/nodemailer
```

**Hint:** handlebars and pug is an optional dependency, if you want to use the template, you must install it.

#### with npm
```sh
npm install --save handlebars
#or
npm install --save pug
#or
npm install --save ejs
```

#### with yarn
```sh
yarn add handlebars
#or
yarn add pug
#or
yarn add ejs
```

### Documentation

you can find all the documentation [here](https://nest-modules.github.io/mailer/) for the email module

### Starter kit

- [Sending email-template with outlook](https://github.com/yanarp/nestjs-mailer) - Starter kit, nestjs mailer implementation on outlook smtp with email-template

### Contributing

* [Cristiam Diaz](https://github.com/cdiaz)
* [Eduardo Leal](https://github.com/eduardoleal)
* [Juan Echeverry](https://github.com/juandav)
* [Pat McGowan](https://github.com/p-mcgowan)
* [Paweł Partyka](https://github.com/partyka95)

### License

MIT
npm package: @kurbar/storybook-addon-docs-stencil
Description: Converts stencil.js JsonDoc to storybook ArgTypes
Author: Stefan Aebischer
Latest version: 8.0.0

# storybook-addon-docs-stencil (updated for Storybook 8)

## Still in development
The Storybook 8 update is still a work in progress and might not work with every ArgType yet.

Converts stencil.js doc json derived from stencils output target
[`docs-json`](https://stenciljs.com/docs/docs-json) to storybook
[`ArgTypes`](https://storybook.js.org/docs/react/api/argtypes).

With this addon activated
- Storybook will render basic controls for properties [Controls](https://storybook.js.org/docs/react/essentials/controls).
- Storybook will auto generate documentation for Props, Events, Methods, Slots, Shadow Parts and Custom Properties.
- Storybook doc page will contain stencils component documentation (readme.md or inline)   

## Installation

```
npm i -D @pxtrn/storybook-addon-docs-stencil
```

## Usage

### Configure stencil to generate docs-json at build time.

```
// stencil.config.ts

import { Config } from '@stencil/core';

export const config: Config = {
  outputTargets: [
    {
      type: 'docs-json',
      file: 'path/to/docs.json'
    }
  ]
};
```

### Configure Storybook

```
//.storybook/main.js

module.exports = {
  addons: [
    '@storybook/addon-essentials',
    '@pxtrn/storybook-addon-docs-stencil'
  ]
}
```

```
//.storybook/preview.js

import { setStencilDocJson } from '@pxtrn/storybook-addon-docs-stencil';
import docJson from 'path/to/docs.json';
if(docJson) setStencilDocJson(docJson);

export const parameters = {
  controls: { hideNoControlsWarning: true }
}
```

#### Dash cased properties

```
//.storybook/preview.js

import { extractArgTypesFactory } from '@pxtrn/storybook-addon-docs-stencil';

export const parameters = {
  docs: {
    extractArgTypes: extractArgTypesFactory({ dashCase: true }),
  }
}
```

### Component documentation

#### readme.md

If not already created by stencil create `src/components/my-component/readme.md`
If the line `<!-- Auto Generated Below -->` is not present, stencil will ignore this file.

```
Everything above this line will be included in storybook

<!-- Auto Generated Below -->
```

#### inline documentation

```
// src/components/my-component/my-component.tsx`

/**
 * Everything written here will be included, if readme.md is not present.
 */
@Component({
  tag: 'my-component',
  styleUrl: 'my-component.css',
  shadow: true,
})
```

#### Troubleshooting

##### When using @storybook/web-components

`@storybook/web-components` overrides the preset configuration of this module.
You can fix this with this preview config.

```
//.storybook/preview.js

import { extractArgTypes, extractComponentDescription, setStencilDocJson } from '@pxtrn/storybook-addon-docs-stencil';

export const parameters = {
  ...
  docs: {
    extractArgTypes,
    extractComponentDescription,
  },
};
```

##### Hint your component in your stories
```
// your-story.ts

export default {
  title: 'My Component',
  component: 'my-component',
};
```
npm package: @kurechon/op-env-sync
Description: Sync .env files with 1Password
Author: kurechon
Latest version: 0.1.4

# @kurechon/op-env-sync

CLI tool to sync .env files with 1Password

## Installation

```bash
pnpm add -g @kurechon/op-env-sync
```

## Usage

### Push .env file to 1Password

```bash
op-env-sync push
```

### Pull .env file from 1Password

```bash
op-env-sync pull
```

### Options

```bash
# Specify vault (default: "Private")
op-env-sync push --vault MyVault

# Specify item suffix
op-env-sync push --suffix ".local"

# Generate .env.example.generated file with keys only
op-env-sync push --example
op-env-sync pull --example
```

## Prerequisites

- 1Password CLI installed
- Signed in to 1Password CLI
  ```bash
  eval $(op signin)
  ```

### Item Format in 1Password

The .env file will be stored in 1Password with the following format:

- Item Type: Secure Note
- Item Name: `[current-directory-name].local .env`
  - With suffix option: `[current-directory-name] .env<suffix>`
- Field Name: `env`

## License

MIT
npm package: @kurier/addon-auto-include
Description: A Kurier addon that alters GET operations to automatically include relationships.
Author: Joel A. Villarreal Bertoldi
Latest version: 0.1.0-alpha2

# @kurier/addon-auto-include

A Kurier addon that alters GET operations to automatically include relationships.

## Usage

Install it using npm or yarn:

```bash
$ npm i -D @kurier/addon-auto-include
$ yarn add -D @kurier/addon-auto-include
```

Add it to your Kurier app:

```ts
import AutoIncludeAddon from "@kurier/addon-auto-include";
// ...
app.use(AutoIncludeAddon);
```

Apply the addon to any resource relationship by setting the `autoInclude` flag to `true`:

```ts
import { Resource } from "kurier";
import Designer from "./designer";

export default class Collection extends Resource {
  static schema = {
    attributes: {
      name: String,
      slug: String,
    },
    relationships: {
      designers: {
        type: () => Designer,
        autoInclude: true,
        foreignKeyName: "design_id",
      },
    },
  };
}
```

## License

MIT
npm package: @kurier/addon-many-to-many
Description: A Kurier addon that creates intermediate resource types for many-to-many relationships.
Author: Joel A. Villarreal Bertoldi
Latest version: 0.0.3

# @kurier/addon-many-to-many

A Kurier addon that creates intermediate resource types for many-to-many relationships.

## Usage

Install it using npm or yarn:

```bash
$ npm i -D @kurier/addon-many-to-many
$ yarn add -D @kurier/addon-many-to-many
```

Add it to your Kurier app:

```ts
import ManyToManyAddon from "@kurier/addon-many-to-many";
// ...
app.use(ManyToManyAddon);
```

Apply the addon to any resource relationship by setting the `manyToMany` flag to `true`:

```ts
import { Resource } from "kurier";
import Designer from "./designer";

export default class Collection extends Resource {
  static schema = {
    attributes: {
      name: String,
      slug: String,
    },
    relationships: {
      designers: {
        type: () => Designer,
        manyToMany: true,
        foreignKeyName: "design_id",
      },
    },
  };
}
```

## License

MIT
npm package: @kurier/addon-transport-layer-context
Description: An addon to inject the client's IP address and request headers from your transport layer.
Author: Joel A. Villarreal Bertoldi
Latest version: 0.0.6

# kurier-addon-transport-layer-context

An addon to inject the client's IP address and request headers from your transport layer.

## Installation

```bash
$ npm install @kurier/addon-transport-layer-context
```

## Usage

```ts
// In your application definition (app.ts):
import TransportLayerContextAddon from "kurier-addon-transport-layer-context";

// ...
app.use(TransportLayerContextAddon);
```

## Motivation

As you may have noticed, Kurier takes separation of concerns quite seriously, and allows no interactions between say, the HTTP transport layer and a processor. However, there are a _few_ use cases where you might need, for instance, the client's IP address, such as geocoding. Since 1.0.0, all processors in Kurier holds an `appInstance` property, a reference to the current instance of the application, where an operation is taking place.

This addon implements a new member for the ApplicationInstance class, called `transportLayerContext` with two properties, available depending on what you're using (Express, Koa, Vercel or WebSockets):

- `ip`: a `string` containing the remote client's IP address (it could be IPv4, IPv6, it could come from `remoteAddress` or from the `X-Forwarded-For` header, it really depends on the transport middleware you're using).
- `headers`: a `dictionary` containing all available headers from the original request (it works both for HTTP and WebSockets, information available may vary according to the protocol you're using).

You can access this information at any given point in your processor like this:

```ts
const { ip, headers } = this.appInstance.transportLayerContext;
// Do stuff with ip and/or headers...
```
npm package: @kurikana/koishi-plugin-kurikana-motd
Description: 一个用于查询Minecraft服务器Motd的插件
Latest version: 0.1.4

# @kurikana/koishi-plugin-kurikana-motd

[![npm](https://img.shields.io/npm/v/@kurikana/koishi-plugin-kurikana-motd?style=flat-square)](https://www.npmjs.com/package/@kurikana/koishi-plugin-kurikana-motd)

一个用于查询Minecraft服务器Motd的插件
npm package: @kurikana/koishi-plugin-kurikana-rcon-config
Description: 用于管理包含多个子服务器配置的Rcon插件
Latest version: 0.0.2

# @kurikana/koishi-plugin-kurikana-rcon-config

[![npm](https://img.shields.io/npm/v/@kurikana/koishi-plugin-kurikana-rcon-config?style=flat-square)](https://www.npmjs.com/package/@kurikana/koishi-plugin-kurikana-rcon-config)

用于管理包含多个子服务器配置的Rcon插件
npm package: @kurikana/koishi-plugin-kurikana-rcon-database
Description: 用于为其他KuriKana-Rcon附属插件提供Rcon信息存储服务
Latest version: 0.0.1

# @kurikana/koishi-plugin-kurikana-rcon-database

[![npm](https://img.shields.io/npm/v/@kurikana/koishi-plugin-kurikana-rcon-database?style=flat-square)](https://www.npmjs.com/package/@kurikana/koishi-plugin-kurikana-rcon-database)

用于为其他KuriKana-Rcon附属插件提供Rcon信息存储服务
npm package: @kurikana/koishi-plugin-kurikana-rcon-online
Description: kurikana-rcon-database附属插件，用于向所有服务器发送list命令并以图片输出
Latest version: 0.0.3

# @kurikana/koishi-plugin-kurikana-rcon-online

[![npm](https://img.shields.io/npm/v/@kurikana/koishi-plugin-kurikana-rcon-online?style=flat-square)](https://www.npmjs.com/package/@kurikana/koishi-plugin-kurikana-rcon-online)

kurikana-rcon-database附属插件，用于向所有服务器发送list命令并以图片输出
npm package: @kurikana/koishi-plugin-kurikana-rcon-run
Description: kurikana-rcon-database的附属插件，用于读取数据库中的Rcon连接信息并向服务器发送命令
Latest version: 0.0.2

# @kurikana/koishi-plugin-kurikana-rcon-run

[![npm](https://img.shields.io/npm/v/@kurikana/koishi-plugin-kurikana-rcon-run?style=flat-square)](https://www.npmjs.com/package/@kurikana/koishi-plugin-kurikana-rcon-run)

kurikana-rcon-database的附属插件，用于读取数据库中的Rcon连接信息并向服务器发送命令
npm package: @kurimonad/event-sourcing
Description: Firebase-independent event sourcing library with monadic API, LWW conflict resolution, and tree-based history management
Latest version: 0.1.0

# @kurimonad/event-sourcing

Firebase非依存のイベントソーシングライブラリ。モナディックなAPI、LWW競合解決、木構造の履歴管理を提供する。

## 必要環境

- Node.js >= 24
- npm

[mise](https://mise.jdx.dev/) を使用している場合は `.mise.toml` で自動的に Node.js 24 が適用される。

## セットアップ

```bash
npm install
```

Zod は peerDependency のため、利用側で別途インストールが必要。

```bash
npm install zod
```

## スクリプト

| コマンド | 説明 |
|---|---|
| `npm run build` | Vite ライブラリモードでビルド（`dist/` に出力） |
| `npm test` | Vitest をウォッチモードで起動 |
| `npm run test:run` | テストを1回実行 |
| `npm run test:coverage` | カバレッジ付きでテスト実行 |
| `npm run lint` | Biome で静的解析 |
| `npm run lint:fix` | Biome で静的解析 + 自動修正 |
| `npm run format` | Biome でフォーマット |

## 公開API

### Monad

| 関数 | 説明 |
|---|---|
| `left(value)` / `right(value)` | Either コンストラクタ |
| `isLeft(either)` / `isRight(either)` | 型ガード |
| `map(either, f)` | Right 値を変換 |
| `flatMap(either, f)` | Right 値に Either を返す関数を適用（短絡評価） |
| `match(either, { onLeft, onRight })` | パターンマッチ |
| `tryCatch(f)` | try-catch を Either に変換 |
| `fromNullable(value, onNull)` | null/undefined を Left に変換 |
| `Do` / `bind(either, name, f)` | モナディック Do 記法 |

### Event

| 関数 | 説明 |
|---|---|
| `defineEvent(type, schema)` | 型安全なイベント定義 |
| `safeCreateEvent(def, metadata, payload)` | バリデーション付きイベント生成 |
| `createMetadata(params)` | イベントメタデータ生成 |
| `validateMetadata(input)` | メタデータの Zod バリデーション |

### State

| 関数 | 説明 |
|---|---|
| `apply(state, event, handler)` | 状態にイベントを適用 |
| `resolveLWW(a, b)` | LWW でどちらの値を採用するか判定 |
| `mergeLWWRegisters(a, b)` | プロパティ単位で LWW マージ |
| `materialize(register)` | LWWRegister から値を取り出す |
| `sortEvents(events)` | タイムスタンプ + ID 順でソート |
| `replay(events, handler, init)` | イベント列から状態を再構築 |

### Pipe

| 関数 | 説明 |
|---|---|
| `pipe(state, steps)` | 複数のイベント適用を順に合成 |
| `liftHandler(type, handler)` | イベント型でディスパッチするハンドラに変換 |

### History

| 関数 | 説明 |
|---|---|
| `createTree(event)` | 初期イベントから履歴木を作成 |
| `appendNode(tree, event)` | 木に子ノードを追加 |
| `getPathToNode(tree, nodeId)` | root から指定ノードまでのパスを取得 |
| `moveHead(tree, nodeId)` | head を指定ノードに移動 |
| `getAncestorsByUser(tree, userId)` | 指定ユーザーの祖先イベントを取得 |
| `diffStates(before, after)` | 状態の差分を計算 |
| `compensate(before, after, metadata)` | 補償イベントを生成 |
| `undo(tree, state, handler)` | 直近のイベントを取り消す |
| `redo(tree, nodeId, state, handler)` | 指定ノードのイベントを再適用 |
| `goTo(tree, nodeId, handler, init)` | 任意の履歴ノードにジャンプ |

## ディレクトリ構成

```
event-sourcing/
├── .mise.toml
├── biome.json
├── package.json
├── tsconfig.json
├── vite.config.ts
├── vitest.config.ts
├── docs/
├── src/
│   ├── index.ts
│   ├── monad/
│   ├── types/
│   ├── event/
│   ├── state/
│   ├── pipe/
│   └── history/
└── dist/
```

## 技術スタック

| 項目 | 値 |
|---|---|
| ビルド | Vite（ライブラリモード）|
| モジュール | ESM only |
| テスト | Vitest |
| 依存 | Zod（peerDependency）|
| リンター | Biome |
| モナド | 自作（内包、依存ゼロ）|
npm package: @kurio/boilerplater
Description: Simple tool to generate boilerplate codes for various kind of applications
Latest version: 0.2.2

# Boilerplater
Boilerplater is a simple tool to generate boilerplate codes for various kind of applications

## Installation
`npm i -g @kurio/boilerplater`

## Usage
Available boilerplates are:

### Node.js Web Server
`boilerplater node-server <dir>`

This will generate codes for a web server into `dir` destination using this template: https://github.com/kurio/boilerplate-server-nodejs.

Packages used:
- [Express](https://expressjs.com/) as the main server
- [Babel](https://babeljs.io/) for transpiler
- [Jest](https://jestjs.io/) for test runner
- [ESLint](https://eslint.org/) & [Prettier](https://prettier.io/) for linters
- [Nodemon](https://nodemon.io/) for file watcher
- [Husky](https://github.com/typicode/husky) for git hooks

### Node.js CLI App
`boilerplater node-cli <dir>`

This will generate codes for a CLI application into `dir` destination using this template: https://github.com/kurio/boilerplate-cli-nodejs.

Packages used:
- [Commander.js](https://github.com/tj/commander.js/) as CLI handler
- [Babel](https://babeljs.io/) for transpiler
- [Jest](https://jestjs.io/) for test runner
- [ESLint](https://eslint.org/) & [Prettier](https://prettier.io/) for linters
- [Husky](https://github.com/typicode/husky) for git hooks
npm package: @kurioh/client
Description: A client for the Kurioh API
Author: Kenneth Bass
Latest version: 1.0.0

# Kurioh Client

A lightweight, framework-agnostic API client for interacting with the Kurioh API.

## Installation

```bash
npm install @kurioh/client
```

## Framework Agnostic

This client is designed to be completely framework-agnostic:

- No dependencies on React, Vue, Angular or any other UI framework
- Works in both browser and Node.js environments
- Automatically uses the appropriate fetch implementation
- Returns clean, typed responses that work with any codebase

## Usage

The client uses a clean, resource-based approach to API interactions.

### Basic Usage

```typescript
import { Client } from "@kurioh/client";

// Create a new client instance
const client = new Client("https://api.kurioh.com", "your-team-id");

// Use the client to access resources
async function fetchData() {
  // Get team information
  const teamResponse = await client.team.get();
  console.log("Team name:", teamResponse.data?.name);

  // Get a specific project
  const projectResponse = await client.project.get("project123");
  console.log("Project title:", projectResponse.data?.title);

  // Get a project image
  const imageResponse = await client.project.getImage("project123", "image456");
  if (imageResponse.isSuccess) {
    // Use the image blob as needed
    const imageBlob = imageResponse.data;
    // Example: create a URL for the image
    const imageUrl = URL.createObjectURL(imageBlob);
  }
}
```

## API Reference

### Client

```typescript
new Client(baseUrl: string, teamId: string)
```

### Team Resource

Access team-related endpoints:

```typescript
// Get team details
client.team.get(): Promise<ApiResponse<Team>>

// Get team favicon
client.team.favicon(): Promise<ApiResponse<Blob>>

// Get team profile image
client.team.image(): Promise<ApiResponse<Blob>>
```

### Project Resources

Access project-related endpoints:

```typescript
// Get all projects
client.projects.list(): Promise<ApiResponse<Project[]>>

// Get a specific project
client.projects.get(projectId: string): Promise<ApiResponse<Project>>

// Get a project image
client.projects.image(projectId: string, imageId: string): Promise<ApiResponse<Blob>>
```

### Response Format

All API calls return a standardized `ApiResponse<T>` object:

```typescript
interface ApiResponse<T> {
  data: T | null; // The response data, or null if an error occurred
  error: Error | null; // Error object if request failed, or null if successful
  isLoading: boolean; // Whether the request is still in progress
  isError: boolean; // Whether the request resulted in an error
  isSuccess: boolean; // Whether the request was successful
}
```

## Error Handling

```typescript
const response = await client.projects.get("non-existent-id");
if (response.isError) {
  console.error("Error fetching project:", response.error.message);
} else {
  console.log("Project data:", response.data);
}
```

## License

MIT
npm package: @kuriousdesign/machine-sdk
Description: Shared data types and helpers for machine-related repositories
Author: kuriousdesign
Latest version: 1.0.103

# adding new opcua tags
don't forget that tags need to start with lowercase


# npm install @kuriousdesign/machine-sdk
A shared SDK for data types and helper functions used in machine-related repositories.

# Publishing to npm
first, commit you git changes
npm login (if not already)
npm version patch   # 1.0.0 → 1.0.1
npm version minor   # 1.0.0 → 1.1.0
npm version major   # 1.0.0 → 2.0.0
npm publish


# Installation
npm install @kuriousdesign/machine-sdk@latest

Usage
import { Machine, formatTimestamp, isMachineActive } from '@kuriousdesign/machine-sdk';

# npm registry codes for trusted publishers
50d6d0fc3dfbe9e405a3df45959751ac4efdec8eaf718e05d390ff5ee4ac28c8
d9e930bb97999f5b204a6f449e499906a936b57f18350ce4bc1ada267c9207c3
07345eb11da75e1e050ddb07e81914975e90533f015567ed524f40073dedf99e
3fb598a51fe5ead322e02a55755d19bb8790a8a886ed33c06efe020b479a27e2
82876e59bb316170f05a92ca16b86276ccd4e31d8b272c55d79cd537aebeb631
npm package: @kuririntrade/kuririn-testnet-sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 1.0.9

# 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 run build
npm login
npm publish --access public
```
npm package: @kuririntrade/seedfi-sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 1.0.7

# 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 run build
npm login
npm publish --access public
```
npm package: @kuririntrade/seedfi-testnet-sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 1.0.3

# 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 run build
npm login
npm publish --access public
```
npm package: @kuririntrade/sonefi-sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 1.0.11

# 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 run build
npm login
npm publish --access public
```
npm package: @kuririntrade/sonic-testnet-sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 1.0.3

# 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 run build
npm login
npm publish --access public
```