open-index/open-npm huggingface dataset:
npm package: @ridi/eslint-config
Description: RIDI's ESLint configs for Javascript
Author: RIDI
Latest version: 6.1.0

# @ridi/eslint-config
[![npm version](https://badge.fury.io/js/%40ridi%2Feslint-config.svg)](https://badge.fury.io/js/%40ridi%2Feslint-config)   
A rule set of RIDI's ESLint configurations based on Airbnb's.

## Installation

Install `@ridi/eslint-config` package:

1. Install the correct versions of each package, which are listed by the command:
```
npm info "@ridi/eslint-config" peerDependencies
```
if using **npm 5+**, use this shortcut
```
npx install-peerdeps --dev @ridi/eslint-config
```
if using **yarn**, use this command
```
yarn add --peer --dev @ridi/eslint-config
```
2. Install via package manager:
```
npm install --save-dev @ridi/eslint-config
```
or
```
yarn --dev @ridi/eslint-config
```

## Usage

### Javascript
```javascript
module.exports = {
  extends: [
    '@ridi/eslint-config'
  ]
}
```

### @ridi/eslint-config/typescript
> * @typescript-eslint/eslint-plugin
> * typescript

#### Typescript
```javascript
module.exports = {
  extends: [
    '@ridi/eslint-config',
    '@ridi/eslint-config/typescript'
  ]
}
```

### @ridi/eslint-config/react
> * eslint-plugin-import
> * eslint-plugin-jsx-a11y
> * eslint-plugin-react
> * eslint-plugin-react-hooks

#### Javascript + React
```js
{
  "extends": [
    '@ridi/eslint-config',
    '@ridi/eslint-config/react',
  ],
}
``` 


#### Typescript + React
```javascript
module.exports = {
  extends: [
    '@ridi/eslint-config',
    '@ridi/eslint-config/typescript',
    '@ridi/eslint-config/react'
  ]
}
```
### @ridi/eslint-config/prettier
> * eslint-plugin-prettier

#### Prettier

works fine with local configuration file (e.g. .prettierrc)

```js
{
  "extends": [
    '@ridi/eslint-config',
    '@ridi/eslint-config/prettier',
  ],
}
```
npm package: @ridi/event-client
Description: Ridibooks event tracking client
Author: sblee@ridi.com
Latest version: 0.2.22

# ridi-event-client

[![npm](https://img.shields.io/npm/v/@ridi/event-client.svg)](https://www.npmjs.com/package/@ridi/event-client)

## Getting Started

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script src="./dist/umd/bundle.min.js"></script>
<script>
  var eventClient = new client({
    deviceType: 'pc',
    uId: 123456,
    debug: true,
    autoPageView: true,
    trackingId: "GTM-ID",
  });

  eventClient.setUId(12345678);


  eventClient.sendAddPaymentInfo('payment_type', {
    value: 1,
    currency: 'KRW',
    items: [
      {item_id: 'item_id', item_name: 'abcd', item_category: 123456, service_type: 'ridibooks'}
    ]
  });
</script>

</body>
</html>
```

## Test

```bash
$ npm run test
```

## Publish

```bash
$ npm login
$ npm run deploy
$ # or
$ npm run build && npm publish --access public
```

## LICENSE

MIT
npm package: @ridi/parser-core
Description: Utilities for parsers
Author: Ridibooks Viewer Team
Latest version: 0.7.4-alpha.1

# @ridi/parser-core

> Utilities for parsers

[![NPM version](https://badge.fury.io/js/%40ridi%2Fparser-core.svg)](https://badge.fury.io/js/%40ridi%2Fparser-core)
[![Check](https://github.com/ridi/content-parser/actions/workflows/check.yml/badge.svg)](https://github.com/ridi/content-parser/actions/workflows/check.yml)
[![codecov](https://codecov.io/gh/ridi/content-parser/branch/master/graph/badge.svg)](https://codecov.io/gh/ridi/content-parser)
[![NPM total downloads](https://img.shields.io/npm/dt/%40ridi%2Fparser-core.svg)](https://npm.im/%40ridi%2Fparser-core)

## License

[MIT](https://github.com/ridi/content-parser/packages/parser-core/LICENSE)
npm package: @ridi/ridi-prosemirror-editor
Description: RIDI Select Article editor and viewer
Author: KT Kang
Latest version: 0.0.3

# ridi-prosemirror-editor
🚧 This project is under development, not complete yet.

## How to use

### ArticleEditor
```js
import { ArticleEditor } from '@ridi/ridi-prosemirror-editor';

const existingValue = JSON.parse(localStorage.getItem('content'));

class App extends Component {
  onChange = (value) => {
    localStorage.setItem('content', JSON.stringify(value.toJSON()));
  };

  render() {
    return (
      <ArticleEditor
        initialValue={existingValue}
        onChange={this.onChange}
      />
    );
  }
}

ReactDOM.render(
  <App />,
  document.getElementById('root'),
);

```

### Article
```js
import { Article } from '@ridi/ridi-prosemirror-editor';

const existingValue = JSON.parse(localStorage.getItem('content'));

ReactDOM.render(
  <Article
    json={existingValue}
    style={{
      background: 'white',
      padding: '16px',
    }}
  />,
  document.getElementById('root'),
);

```


## Development

### To build
```sh
yarn build
```

### To see demos with webpack-dev-server
```sh
cd playground
yarn start
```
npm package: @ridi/rsg
Description: Common style assets for Ridibooks
Latest version: 2.0.18

# RSG

[![npm (scoped)](https://img.shields.io/npm/v/@ridi/rsg.svg)](https://www.npmjs.com/package/@ridi/rsg)
[![Build Status](https://travis-ci.com/ridi/rsg.svg?branch=master)](https://travis-ci.com/ridi/rsg)

Ridi Style Guide. Includes common style assets used in Ridibooks store.
https://rsg.ridicorp.com/

## Development

1. Install dependencies
    ```sh
    $ yarn install
    ```

2. Run component explorer
    ```sh
    $ yarn build:watch
    $ yarn storybook
    ```
    or
    ```sh
    $ yarn styleguide
    ```

## Usage

### Iconfont

You can import lessfile and override font path variable.

```
@import "less/ridi-icon.less";
@ridi-iconfont-path: "customPath/";
```

### RUI

You can import lessfiles and override path variables for iconfont and image sources.
```
@import "less/rui.less";
@ridi-iconfont-path: "customPathToIconfontFolder/";
@rui-images-path: "customPathToImagesFolder/";
```

## Publish
If any tag is pushed to `master` branch,
the package is published to [NPM](https://www.npmjs.com/package/@ridi/rsg) automatically by [Travis CI](https://travis-ci.com/ridi/rsg).

> There is an [issue](https://github.com/travis-ci/dpl/issues/143) that Travis CI does not report deploy failure.
So we should manually check the failure in [Travis CI's console](https://travis-ci.com/ridi/rsg)
if the package is not updated on NPM after the deploy process is finished.
npm package: @ridi/tslint-config
Description: [![Build Status](https://travis-ci.org/ridi/tslint-config.svg?branch=master)](https://travis-ci.org/ridi/tslint-config) [![Greenkeeper badge](https://badges.greenkeeper.io/ridi/tslint-config.svg)](https://greenkeeper.io/)
Latest version: 0.1.0

# tslint-config

[![Build Status](https://travis-ci.org/ridi/tslint-config.svg?branch=master)](https://travis-ci.org/ridi/tslint-config)
[![Greenkeeper badge](https://badges.greenkeeper.io/ridi/tslint-config.svg)](https://greenkeeper.io/)
npm package: @ridi/web-icons
Description: RIDI Web Icons
Latest version: 0.7.1

# @ridi/web-icons

## Install

```bash
$ npm install @ridi/web-icons
```

## Usage

With [`url-loader`](https://www.npmjs.com/package/url-loader):
```jsx static
import { Arrow } from '@ridi/web-icons';

<img src={Arrow} />
```

With [SVGR](https://github.com/smooth-code/svgr):
```jsx static
import { Arrow } from '@ridi/web-icons';

<Arrow />
```

## Icons

```jsx
import icons from '@ridi/web-icons';
import { version } from '@ridi/web-icons/package.json';
import { snakeCase } from 'lodash';

<div
  style={{
    display: 'flex',
    flexFlow: 'row wrap',
    justifyContent: 'space-between',
  }}
>
  {Object.keys(icons).map((name, index, array) => {
    const Icon = icons[name];

    return (
      <div
        key={name}
        style={{
          flex: index === array.length - 1 && 1,
          margin: '10px',
        }}
      >
        <div
          style={{
            display: 'inline-block',
            color: 'black',
            textAlign: 'center',
            textDecoration: 'none',
          }}
        >
          <a
            href={`https://cdn.jsdelivr.net/npm/@ridi/web-icons@${version}/svgs/${snakeCase(name)}.svg`}
            target="_blank"
          >
            <Icon width="48" height="48" />
          </a>
          <div style={{ fontSize: '12px', userSelect: 'all' }}>{name}</div>
        </div>
      </div>
    );
  })}
</div>;
```
npm package: @ridi/web-ui
Description: RIDI Web UI
Latest version: 0.8.0

# @ridi/web-ui

[![](https://img.shields.io/npm/v/@ridi/web-ui.svg?label=%40ridi%2Fweb-ui&style=flat)](https://www.npmjs.com/package/@ridi/web-ui)

## Install
```bash
$ npm install @ridi/web-ui
```

## Support TypeScript
```typescript jsx
import * as React from 'react';
import { Book } from '@ridi/web-ui';

interface BookCoverProps {
  bookId: string
  width: number
}

const BookCover: React.FC<BookCoverProps> = props => {
  const { bookId, width } = props;
  return (
    <>
      <Book.Thumbnail
        thumbnailWidth={width}
        thumbnailUrl={`https://misc.ridibooks.com/cover/${bookId}/xxlarge`}
      />
    </>
  )
}
```
npm package: @ridiversified/vue-server-renderer
Description: server renderer for Vue 2.0
Author: Evan You
Latest version: 2.6.12

# vue-server-renderer

> This package is auto-generated. For pull requests please see [src/platforms/web/entry-server-renderer.js](https://github.com/vuejs/vue/blob/dev/src/platforms/web/entry-server-renderer.js).

This package offers Node.js server-side rendering for Vue 2.0.

- [API Reference](https://ssr.vuejs.org/en/api.html)
- [Vue.js Server-Side Rendering Guide](https://ssr.vuejs.org)
npm package: @ridvanonal/roneui
Description: This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Latest version: 0.1.0

# React + TypeScript + Vite

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

Currently, two official plugins are available:

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

## Expanding the ESLint configuration

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

- Configure the top-level `parserOptions` property like this:

```js
   parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    project: ['./tsconfig.json', './tsconfig.node.json'],
    tsconfigRootDir: __dirname,
   },
```

- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked`
- Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list
npm package: @ridwan-p/color-convert
Description: color converter
Author: ridwan pamungkas
Latest version: 1.0.9

# Color Convert

Color Convert is a color conversion library for JavaScript and node.
It converts all ways between `rgb`, `hsl`, `hsv`, `hex` strings, and generate the oposite color (invert color):

# Install

```console
$ npm i @ridwan-p/color-convert
```
## Usage

```js
const color = require("@ridwan-p/color-convert")

// Hexa to RGB
color.hex2RGB('#FFF')
//=> { r: 255, g: 255, b: 255 }

// RGB to Hexa
color.rgb2Hex(255, 12, 43)
//=> #ff0c2b

// Generate the oposite color
color.invertColor('#ffff00')
//=> #ff0c2b
// set black & white
color.invertColor('#ffff00', true)
//=> #000000

// Convert to HSL
color.rgb2HSL(255, 66, 66)
color.hex2HSL('#ff4242')
//=> { h: 0, s: 1, l: 0.6294117647058823 }

// Convert to HSV
color.rgb2HSL(255, 66, 66)
color.hex2HSL('#ff4242')
//=> { h: 0, s: 0.7411764705882353, v: 1 }

```

# Contribute

If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request.

# License
Copyright &copy; 2022, Ridwan Pamungkas.

Licensed under the [MIT License](LICENSE)
npm package: @ridwan-p/kmeans
Description: kmeans
Author: ridwan pamungkas
Latest version: 1.0.4

# K-Means
[![Latest Release](https://img.shields.io/github/v/release/ridwan-p/kmeans.svg)](https://github.com/ridwan-p/kmeans/releases)
[![npm version](https://badge.fury.io/js/@ridwan-p%2Fkmeans.svg)](https://badge.fury.io/js/@ridwan-p%2Fkmeans)

K-Means clustering algorithm implementation written in javascript

```console
npm i @ridwan-p/kmeans
```


```js
const data = [
    [6, 2.92], [6.7, 3.07], [7.4, 3.22],
    [6.7, 2.93], [9.2, 3.03], [7.4, 3.29],
    [9.3, 3.28], [4.5, 2.72], [6.4, 2.92],
    [8.5, 3.49], [6.9, 3.08], [5.8, 2.83],
    [6.3, 3.18], [6.4, 3.2], [3.9, 3.29],
  ];
  
const kmeans = new Kmeans(data, 3)
// calculate
kmeans.run()
  .then( res => { console.log('result', res) } )
```
npm package: @ridyio/nestjs-firebase-admin
Description: Firebase Admin module for Nest framework
Latest version: 2.2.0

<a href="https://www.npmjs.com/@aginix/nestjs-firebase-admin"><img src="https://img.shields.io/npm/v/@aginix/nestjs-firebase-admin.svg" alt="NPM Version" /></a>
<a href="https://www.npmjs.com/@aginix/nestjs-firebase-admin"><img src="https://img.shields.io/npm/l/@aginix/nestjs-firebase-admin.svg" alt="Package License" /></a>
<a href="https://www.npmjs.com/@aginix/nestjs-firebase-admin"><img src="https://img.shields.io/npm/dm/@aginix/nestjs-firebase-admin.svg" alt="NPM Downloads" /></a>

## Description

Firebase Admin Module for [Nest.js Framework](https://nestjs.com/)

## Installation

```bash
$ yarn add @aginix/nestjs-firebase-admin
```

### Import module

```typescript
import { Module } from '@nestjs/common';
import { FirebaseAdminModule } from '@aginix/nestjs-firebase-admin'
import * as admin from 'firebase-admin'

@Module({
  imports: [
    FirebaseAdminModule.forRootAsync({
      useFactory: () => ({
        credential: admin.credential.applicationDefault()
      })
    }),
  ],
})
export class AppModule {}
```

## Example

### Inject Authentication Service

```typescript
import { Injectable } from '@nestjs/common';
import { FirebaseAuthenticationService } from '@aginix/nestjs-firebase-admin';

@Injectable()
export class AppService {
  constructor(private firebaseAuth: FirebaseAuthenticationService) {}

  getUsers() {
    return this.firebaseAuth.listUsers()
  }
}
```

## Compatibility Table

| firebase-admin    | NestJS Library |
| ----------------- |----------------|
| `9.xx`            | `master`       |
| `8.xx`            | `1.xx`         |

## License

MIT © [Aginix Technologies Co., Ltd.](https://github.com/Aginix/nestjs-firebase-admin)
npm package: @ridz-shadow/is-even
Description: A simple function to check if a number is even
Author: Md Nur Mohammad
Latest version: 1.0.2


# @ridz-shadow/is-even ✅

A tiny and reliable utility to check whether a number is even.

---

## 📦 Installation

Install using **npm**:

```bash
npm install @ridz-shadow/is-even
```
Or with **yarn**:
```bash
yarn add @ridz-shadow/is-even
```

## 🧠 Usage

### CommonJS

```bash
const isEven = require('@ridz-shadow/is-even'); 

console.log(isEven(4)); // true
console.log(isEven(5)); // false
```

### ES Module

If you’re using `"type": "module"` in your project:

```bash
import isEven from '@ridz-shadow/is-even'; 

console.log(isEven(10)); // true
```

---

## 🧩 Example Output
```bash
> node
> const isEven = require('@ridz-shadow/is-even');
> isEven(42) 
true 
> isEven(7)
false 
```
---

## ⚙️ API

### `isEven(number) → boolean`

**Parameters:**
-   `number` — A numeric value to check.

**Returns:**
-   `true` if the number is even
-   `false` if the number is odd
  
Throws an error if the input is not a number.

---

## 🧰 Why this package?

-   🪶 **Tiny** — less than 10 lines of code    
-   🧪 **Type-safe** — throws for invalid input
-   💡 **Zero dependencies**
-   🌍 **Works everywhere** (Node, bundlers, etc.)

---

## 🧑‍💻 Contributing

Pull requests are welcome!  
If you find a bug or have an idea, open an issue on  
GitHub.

---

## 🪪 License

MIT © 2025 ridz-shadow
npm package: @riekusr/node-red-contrib-salesforce
Description: Salesforce for Node-RED 
Author: ilzenzo
Latest version: 1.1.5

# node-red-contrib-salesforce

[![Platform](https://img.shields.io/badge/platform-Node--RED-red)](https://nodered.org)
![Release](https://img.shields.io/npm/v/@alpine-code/node-red-contrib-salesforce.svg)
![NPM](https://img.shields.io/npm/dm/@alpine-code/node-red-contrib-salesforce.svg)

This module leverages the [jsforce](https://jsforce.github.io/) client library to bring Salesforce awesomeness to Node-RED!

## Credits

The package is originally  developed and maintained by [Alpine Code](https://www.alpine-code.com/).
npm package: @rielj/nyx
Description: Tailwind CSS canonical class fixer CLI
Author: rielj
Latest version: 0.0.8

# nyx

Tailwind CSS class formatter and linter. Canonicalizes non-standard class names and sorts classes using Tailwind's official ordering.

Built on top of `@tailwindcss/oxide` and the Tailwind v4 design system.

## Install

```bash
npm install -g @rielj/nyx
```

## Quick start

```bash
nyx init        # scaffold nyx.config.json
nyx check src/  # lint + format check
nyx check --fix src/  # auto-fix
```

## Commands

### `nyx init`

Create a `nyx.config.json` in the current directory with default settings:

```bash
nyx init
```

### `nyx check`

Run both lint and format checks:

```bash
nyx check src/
nyx check --fix src/
```

### `nyx lint`

Find non-canonical Tailwind classes (e.g. `tw-bg-red-500` -> `bg-red-500`):

```bash
nyx lint src/
nyx lint --fix src/
```

### `nyx format`

Sort Tailwind classes in the recommended order:

```bash
nyx format src/
nyx format --fix src/
```

## Options

| Flag | Description |
|---|---|
| `--css <path>` | Path to CSS entry point |
| `--fix` | Auto-fix issues |
| `--strategy <name>` | Sort strategy: `tailwind` (default) or `alphabetical` |
| `--rem <px>` | Root font size in px (default: 16) |
| `--collapse` | Collapse e.g. `mt-2 mr-2 mb-2 ml-2` into `m-2` |
| `--cache` | Enable file-level caching to skip unchanged files |
| `--json` | Output diagnostics as JSON |
| `--quiet` | Only show summary |
| `--verbose` | Show full diagnostics in fix mode |

## Config file

Create a `nyx.config.json` in your project root (or run `nyx init`):

```json
{
  "$schema": "./node_modules/@rielj/nyx/schema.json",
  "rem": 16,
  "collapse": false,
  "strategy": "tailwind"
}
```

| Option | Type | Default | Description |
|---|---|---|---|
| `css` | `string` | auto-detect | Path to CSS entry point |
| `rem` | `number` | `16` | Root font size in px |
| `collapse` | `boolean` | `false` | Collapse longhand utilities into shorthand |
| `strategy` | `"tailwind" \| "alphabetical"` | `"tailwind"` | Class sort strategy |
| `cache` | `boolean` | auto | Enable file-level caching (on by default when nyx is locally installed) |

CLI flags override config file values.

## Supported file types

`.html`, `.jsx`, `.tsx`, `.vue`, `.svelte`, `.astro`, `.erb`, `.ejs`, `.hbs`, `.php`, `.blade.php`, `.twig`, `.njk`, `.liquid`, `.pug`, `.slim`, `.haml`, `.mdx`, `.md`, `.rs`, `.ex`, `.heex`, `.clj`, `.cljs`

## License

MIT
npm package: @rien7/skill-action-runtime
Description: TypeScript runtime for the Skill Action RFCs.
Latest version: 0.4.1

# `@rien7/skill-action-runtime`

TypeScript runtime for the Skill Action RFCs.

## What It Implements

- `resolveAction`
- `validateActionInput`
- `executeAction`
- `executeSkill`

The runtime is transport-agnostic and designed to be embedded inside a function call boundary, CLI wrapper, or HTTP service.

## Install

```bash
pnpm add @rien7/skill-action-runtime
```

## Build

```bash
pnpm install
pnpm check
```

## Quick Start

```ts
import { ActionRuntime, InMemoryActionRegistry, InMemorySkillRegistry } from "@rien7/skill-action-runtime";

const actions = new InMemoryActionRegistry([
  {
    skillId: "math.skill",
    definition: {
      action_id: "math.add",
      kind: "primitive",
      title: "Add",
      description: "Add two numbers",
      input_schema: {
        type: "object",
        properties: {
          a: { type: "number" },
          b: { type: "number" }
        },
        required: ["a", "b"],
        additionalProperties: false
      },
      output_schema: {
        type: "object",
        properties: {
          sum: { type: "number" }
        },
        required: ["sum"],
        additionalProperties: false
      },
      idempotent: true
    }
  }
]);

const skills = new InMemorySkillRegistry([
  {
    definition: {
      skill_id: "math.skill",
      title: "Math",
      description: "Math operations",
      entry_action: "math.add"
    }
  }
]);

const runtime = new ActionRuntime({
  actionRegistry: actions,
  skillRegistry: skills,
  primitiveHandlers: {
    "[\"math.skill\",\"math.add\"]": async ({ input }) => {
      const payload = input as { a: number; b: number };
      return { sum: payload.a + payload.b };
    }
  }
});

const response = await runtime.executeSkill({
  skill_id: "math.skill",
  input: { a: 2, b: 3 }
});

console.log(response);
```

## Notes

- Primitive action execution is handler-driven. The runtime resolves primitive handlers by package action identity.
- Nested composite steps resolve package-local `action_id` values only.
- Composite actions require explicit RFC `returns` mappings.
- Skill package loading is available through `loadSkillPackageFromDirectory`.
npm package: @rieral/angular-calendar-lib
Description: Librería de Angular para formatear fechas y mostrar calendarios en múltiples sistemas de calendario (Gregoriano, Islámico, Persa, Hebreo, Chino)
Author: Fabian Rieral Condori Llanos
Latest version: 1.0.0

# NgCalendarFormatter

This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.3.0.

## Code scaffolding

Angular CLI includes powerful code scaffolding tools. To generate a new component, run:

```bash
ng generate component component-name
```

For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:

```bash
ng generate --help
```

## Building

To build the library, run:

```bash
ng build ng-calendar-formatter
```

This command will compile your project, and the build artifacts will be placed in the `dist/` directory.

### Publishing the Library

Once the project is built, you can publish your library by following these steps:

1. Navigate to the `dist` directory:
   ```bash
   cd dist/ng-calendar-formatter
   ```

2. Run the `npm publish` command to publish your library to the npm registry:
   ```bash
   npm publish
   ```

## Running unit tests

To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:

```bash
ng test
```

## Running end-to-end tests

For end-to-end (e2e) testing, run:

```bash
ng e2e
```

Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.

## Additional Resources

For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
npm package: @rieranthony/next-stripe
Description: ```bash pnpm add next-stripe stripe ```
Author: FOMO Studio
Latest version: 0.0.1

# next-stripe

```bash
pnpm add next-stripe stripe
```

```bash
npm install next-stripe stripe
```

```bash
yarn add next-stripe stripe
```

## Overview

**`next-stripe`** is a lightweight, plug-and-play package to handle Stripe webhooks in **Next.js 15** projects using the **App Router**. It simplifies integration and offer a fully typed event structure.

With just a few lines of code, you can:

- **Set up a secure Stripe webhooks API route** in Next.js.
- **Work with typed event** with a callback like structure.
- **Supports connected account** (Receive webhooks for Stripe accounts managed by your Stripe account).
- **Supports auto-refetch data** (Refetch subscription / customer data to prevent bugs when receiving events in the wrong order)

This package handles the complex parts of working with Stripe webhooks, so you can focus on building your app. 🚀

## Usage

### 1. Add a stripe initialization util in your project

```typescript
// src/utils/stripe.ts
import Stripe from "stripe";

const { STRIPE_SECRET_KEY } = process.env;

// Check env var
if (!STRIPE_SECRET_KEY) throw new Error("You must provide STRIPE env vars.");

const stripe = new Stripe(STRIPE_NEW_SECRET_KEY, {
  timeout: 80000,
  maxNetworkRetries: 5,
});

export default stripe;
```

### 2. Add Next.js API Route

```typescript
// src/app/api/stripe/webhooks.ts

import stripe from "@/utils/stripe";
import { createAIChatStreamRouteHandlers } from "next-stripe";

export const dynamic = "force-dynamic";

export const { POST } = createStripeWebhookRouter({
  stripe,
  webhookSigningSecret: process.env.STRIPE_WEBHOOK_SIGNIN_SECRET! // whsec_XXXX,
  // Prevent getting outdated data when Stripe send webhooks in wrong order
  autoRefetchSubscriptionData: true,
  // Add the handlers used by your project
  handlers: {},
});
```
npm package: @riesenia/r-wizard
Description: Interactive CLI wizard for rShop development tasks
Latest version: 0.1.6

# @riesenia/r-wizard

Interactive CLI wizard for scaffolding and configuring rShop boxes, banners, and configurations.

## What it does

**Box**
- **Create a box** — runs `bin/cake bake boxes`, generates migration, `.ctp` template, and SCSS file, applies migration, writes initial config to `config/rshop.php`
- **Edit an existing box** — load any box from the database and manage its config
- **Update boxItems fields** — toggle default fields and manage custom `module_data.*` fields in `config/rshop.php`
- **Update boxSubitems fields** — same as above for the `boxSubitems` section
- **Enable boxSubitems** — add subitems support to a box config
- **Create seed data** — scaffolds a `config/Seeds/*.php` file and optionally runs it

**Banner place**
- **Create a banner place** — runs `bin/cake bake banners`, generates migration, `.ctp` template, and SCSS file, applies migration, outputs a ready-to-use PHP snippet copied to clipboard
- **Edit an existing banner place** — load any banner from the database and manage its field config

**Configuration**
- Define configuration entries (key, name, type, preset/options, value, public flag) for an existing or new group, bakes a migration via `bin/cake bake configuration`

## Requirements

- Node.js 18+
- Access to the rShop app directory (run from its root)
- `mysql` CLI available in `$PATH`

## Setup

```bash
npm install -g @riesenia/r-wizard
```

Add to `app/package.json` scripts:

```json
"wizard": "r-wizard"
```

Then run from the app root:

```bash
npm run wizard
```

## Local development

```bash
cd /path/to/r-wizard
npm install && npm link

cd /path/to/app
npm link @riesenia/r-wizard
```

Changes in `r-wizard/` are reflected immediately — no re-link needed after the initial setup.
npm package: @rieset/alphabet-filter
Description: Angular component for filtering contents in alphabetical listing, using default or custom templates. Ideal to build contact lists.
Author: ericferreira
Latest version: 1.0.7

# AlphabetFilter | Angular 9+ | Cyrilic

Angular component for filtering contents in alphabetical listing, using default or custom templates. Ideal to build contact lists.

Compatible with previous versions of Angular, except AngularJS.

# Demo

See a [live demo](https://alphabet-filter.herokuapp.com/).

## Simple use

```html
<alphabet-filter 
    propAlphaOrder="name"
    propsSearch="name"
    placeholder="digite o nome do contato"
    height="100%"
    [data]="contacts"
    (onClick)="selected($event)">
</alphabet-filter>
```
![](simple.png)

## Custom use (with ng-template)

```html
<alphabet-filter 
    propAlphaOrder="name"
    propsSearch="name"
    placeholder="digite o nome do contato"
    listClass="search-list"
    height="500px"
    [data]="contacts"
    (onClick)="selected($event)"
    [withTemplate]="true"
>
    <ng-template let-item>
      <div class="search-list-item">
        <img [src]="item.image">
        <span>{{item.name}}</span>
      </div>
    </ng-template>
</alphabet-filter>
```

![](with-template.png)

# Usage

## Install
`npm install alphabet-filter`

## Import into Module
```typescript
import { AlphabetFilterModule } from 'alphabet-filter';

@NgModule({
  imports: [
    ...,
    AlphabetFilterModule
  ],
  declarations: [...],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
```

## Insert into styles of `angular.json`
```json
...
"styles": [
  "...",
  "node_modules/alphabet-filter/alphabet-filter.scss"
],
...
```

# API

## Inputs/Outputs (Required)
Name		                | Type                | Description
----                    | ----                | ----
`data`		              | `any[]`             | Data to be listed.(ex .: ``` <... [data]="contacts"></...>```).
`propAlphaOrder`		    | `string`            | Property for name of the property to be ordered alphabetically.(ex .: ``` <... propAlphaOrder="name"></...>```).
`propsSearch`		        | `string` or `string[]` | Property(ies) to be filtered.(ex .: ``` <... [propsSearch]="['name']"></...>```).
`onClick`   		        | `EventEmitter<any>` | Emit on item click.(ex .: ``` <... (onClick)="selected($event)"></...>```).

## Inputs/Outputs (Optional)
Name		        | Type      | Description
----            | ----      | ----
`placeholder`   | `string`  | Placeholder of input filter. (ex .: ``` <... []=""></...>```).
`listClass`     | `string`  | Class name for list element. (ex .: ``` <... listClass="search-list"></...>```).
`height`        | `string`  | Height to be used throughout the component. (ex .: ``` <... height="100%"></...>```).
`withTemplate`  | `boolean` | Used when to need of customize using ng-template. (ex .: ``` <... [withTemplate]="true"></...>```).
`onCancel`   		| `EventEmitter<any>` | Used to enable "close" button.(ex .: ``` <... (onCancel)="cancel()"></...>```).
npm package: @rieux/platzom
Description: Proyecto del curso de Fundamentos de Javascript
Author: Ricardo
Latest version: 0.1.0

# PLATZOM

Platzom es un idioma inventado para el [curso de Fundamentos de Javascript](https://platzi.com/js) de Platzi.

## Descripción del idioma

- Si la palabra termina en -ar, se le quitan esos caracteres.
- Si la palabra inicia con -z, se le añade -pe al final.
- Si la palabra traducida tiene 10 o más letras, se debe partir a la mitad y unir con un guión (-)
- Si la palabra original es un palíndromo ninguna regla anterior cuenta y se devuelve la misma palabra intercalantado mayúsculas y minúsculas.

## Instalación

```
npm install platzom

```

## Uso

import platzom from 'platzom'

platzom('PROGRAMAR') //PROGRAM
platzom('Zorro') //Zorrope
platzom('Zarpar') /Zarppe
platzom('abecedario') //abece-dario
platzom('Sometemos') //SoMeTeMoS

## Créditos.

- [Ricardo Estepa](https://twitter.com/@ri3ux)

## Licencia

[MIT](https://opensource.org/licenses/MIT)
npm package: @riezebosch/xpirit-theme
Description: my custom reveal.js theme
Author: Manuel Riezebosch
Latest version: 0.0.9

> Custom theme for [reveal.js](https://github.com/hakimel/reveal.js/).

This is the default theme used by [kc-cli](https://www.npmjs.com/package/@infosupport/kc-cli).
npm package: @riezler/pgtyped-runtime
Description: This package provides the `sql` tagged template.   The `sql` tagged template requires a generic parameter: `<TQueryType>`. For each query PgTyped generates an interface that can be used in this parameter to type your query.
Latest version: 2.4.2

## @pgtyped/runtime

This package provides the `sql` tagged template.  
The `sql` tagged template requires a generic parameter: `<TQueryType>`.
For each query PgTyped generates an interface that can be used in this parameter to type your query.

To run a query defined with the `sql` tagged template, call the `sql.run` method.  
The `sql.run` method automatically enforces correct input `TParams` and output `TResult` types.

```js
public run: (
  params: TParams,
  dbConnection: IDatabaseConnection,
) => Promise<TResult[]>;
```

Here `dbConnection` is any object that satisifies the `IDatabaseConnection` interface. It is used to actually send the query to the DB for execution.

```
interface IDatabaseConnection {
  query: (query: string, bindings: any[]) => Promise<{ rows: any[] }>;
}
```

This is usually the `client` object created with [node-postgres](https://github.com/brianc/node-postgres), but can be any other connection of your choice.

This package is part of the pgtyped project.  
Refer to [README](https://github.com/adelsz/pgtyped) for details.
npm package: @rifaichump/aternos
Description: An unofficial API client to manage and interact with Aternos servers using Puppeteer.
Author: Exocore
Latest version: 1.6.0

Aternos Unofficial API An unofficial API client for Aternos that allows you to manage and interact with your Minecraft servers using Puppeteer under the hood.
✨ FeaturesLog in to your Aternos account.
Fetch a list of all your servers. Manage a Server: Start, stop, or restart a server.
Get Server Info: Retrieve the address, port, software, and other details.
Live Console Viewer: View the server console in real-time and automatically send welcome/goodbye messages to players.🚀 InstallationTo use this library in your project, install it via npm:npm install aternos-unofficial-api
⚙️ How to UseHere is a basic example of how to import and use the functions.import * as Aternos from 'aternos-unofficial-api';
```javascript
const Aternos = require("aternos-unofficial-api")
const main = async () => {
  try {
    const cookies = await Aternos.loginToAternos("YourUsername", "YourPassword");

    const { servers } = await Aternos.getServerList(cookies);
    if (!servers || servers.length === 0 || !servers[0]?.id) {
      throw new Error("No servers found.");
    }
    
    const serverId = servers[0].id;
    console.log(`Operating on server: ${servers[0].name} (${serverId})`);

    const result = await Aternos.manageServer(cookies, serverId, "start"); // stop, restart, info
    console.log(result);

    if (result.success) {
      await Aternos.viewConsoleLive(cookies, serverId);
    }

  } catch (error) {
    console.error(error);
  }
};

main();
```
🐳 Hosting with DockerTo easily host your bot 24/7 on platforms like Render, Railway, or Fly.io, you can use the provided Dockerfile.
Hosting StepsClone your project that uses this library.
Create an index.js file in your root directory. 
This is where you'll put your bot's code (like the example above).
Place the Dockerfile (provided below) in your root directory.
Deploy on your hosting provider.
Simply point your hosting service to your GitHub repository, and it will automatically use the Dockerfile to build and run your bot.
IMPORTANT: Do not hardcode your Aternos username and password. Use Environment Variables on your hosting provider to keep your credentials secure.
DockerfileHere is the Dockerfile you will need. Copy and save this as Dockerfile (no extension) in your project's root directory.# Step 1: Base Image
FROM node:20-slim

# Step 2: Install Puppeteer Dependencies
# These are required for Chromium to run correctly inside the container
```Dockerfile
FROM node:18

RUN apt-get update && \
    apt-get install -y wget gnupg ca-certificates chromium

WORKDIR /app

COPY package.json ./
RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "index.js"]
```
📜 LicenseThis project is licensed under the MIT License - see the LICENSE file for details.
npm package: @rifandavinci/ai-chatbot
Description: Get AI responses from multiple models (GPT-4, Claude, Llama, Mixtral) with simple API calls
Author: Rifan Davinci
Latest version: 1.1.0


# @rifandavinci/ai-chatbot
Get AI responses from multiple models (GPT-4, Claude, Llama, Mixtral) with simple API calls.

## 🌐 Direct API Usage

### Base URL
```
https://ai.fannjavascript.workers.dev
```

### Endpoints

#### Get AI Response
```
GET /chat?prompt=<message>&model=<model_name>
```

### Example Get
```
https://ai.fannjavascript.workers.dev/chat?prompt=Halo&model=gpt4
```

### Example Response
```
action	 "success"
status	  200
response "Halo! How can I assist you today?"
model	 "gpt-4o-mini"
```

Parameters:
- `prompt` (required): Your message
- `model` (optional): AI model to use
  - `gpt4` (default) - GPT-4
  - `claude` - Claude 3 Haiku
  - `llama` - Meta Llama 3
  - `mixtral` - Mixtral 8x7B

### Examples

#### Using fetch
```javascript
// Default model (GPT-4)
fetch('https://ai.fannjavascript.workers.dev/chat?prompt=Hello')
    .then(res => res.json())
    .then(console.log);

// Specific model
fetch('https://ai.fannjavascript.workers.dev/chat?prompt=Hello&model=claude')
    .then(res => res.json())
    .then(console.log);
```

#### Using curl
```bash
curl "https://ai.fannjavascript.workers.dev/chat?prompt=Hello"

# Specific model
curl "https://ai.fannjavascript.workers.dev/chat?prompt=Hello&model=claude"
```

#### Using axios
```javascript
const axios = require('axios');

// Default model (GPT-4)
axios.get('https://ai.fannjavascript.workers.dev/chat?prompt=Hello')
    .then(res => console.log(res.data));

// Specific model
axios.get('https://ai.fannjavascript.workers.dev/chat?prompt=Hello&model=claude')
    .then(res => console.log(res.data));
```

### Response Format
```json
{
    "action": "success",
    "status": 200,
    "response": "AI response here",
    "model": "model-name"
}
```

### Error Response
```json
{
    "status": 500,
    "error": "Error message here"
}
```

## 📦 Using NPM Package

### Installation
```bash
npm install @rifandavinci/ai-chatbot
```

### Usage with Package
```javascript
const FannAI = require('@rifandavinci/ai-chatbot');
const ai = new FannAI();

// Using GPT-4 (default)
ai.chat('Hello!').then(response => {
    console.log(response);
});

// Using specific model
ai.chat('Hello!', 'claude').then(response => {
    console.log(response);
});

// Get API info
console.log(ai.getInfo());
```


## 📝 Available Models
- `gpt4` - GPT-4 (default)
- `claude` - Claude 3 Haiku
- `llama` - Meta Llama 3
- `mixtral` - Mixtral 8x7B

## 👨‍💻 Creator
- GitHub: [@rifandavinci](https://github.com/rifandavinci)
npm package: @rifaturrana/global-languages-list
Description: A comprehensive list of languages in JSON format for use in web and mobile applications.
Author: Rifatur Rana
Latest version: 1.1.0

# Language List Package

This is a simple package that provides a list of languages in JSON format that can be used in various applications. The package contains a comprehensive list of languages that have been collected from Wikipedia.

## Installation

You can install the package via npm by running the following command:

```console
npm install global-languages-list
```

## Usage

To use the package, you can import it into your project as follows:

```console
const languages=require('global-languages-list');
console.log(languages);
```

The package exports an array of objects, where each object represents a language and contains the following properties:

```console
code: The ISO 639-1 language code
name: The name of the language in English
```

Here's an example of how you can use the language list to create a dropdown menu in a web application:

```console
<select>
  <option disabled selected>Select a language</option>
  {languages.allLanguages.map((language) => (
    <option value={language.code}>{language.name}</option>
  ))}
</select>
```

To get the name of a language by its code, you can use the getLanguageByCode function:

```console
const languages = require('global-languages-list');

const name = languages.getLanguageByCode('en');
console.log(name); // "English"
```

To find a language object by either its code or name or both, you can use the findLanguage function:

```console
const languages = require('global-languages-list');


const lang1 = languages.findLanguage('en');
console.log(lang1); // { code: 'en', name: 'English' }

// Find by name
const lang2 = languages.findLanguage('', 'English');
console.log(lang2); // { code: 'en', name: 'English' }

// Find by code and name
const lang3 = languages.findLanguage('en', 'English');
console.log(lang3); // { code: 'en', name: 'English' }
```

Note that findLanguage throws an error if the language is not found, so it is important to handle it properly.

## License

This package is open source and available under the MIT License. Feel free to use it in your projects, modify it, and redistribute it as needed.

## Contributing

Contributions are welcome! If you would like to contribute to this project, please read the CONTRIBUTING file for more information.

## Issues

If you find a bug or have a feature request, please create an issue on the issue tracker.

## Credits

Secure-pass-generator is developed and maintained byRifatur Rana. Thank you to all our contributors!

## Support

If you need help or have questions about Secure-pass-generator, please contact me at smrifaturrana@gmail.com.
npm package: @rifcoin/sdk-core
Description: ⚒️ An SDK for building applications on top of rifcoin
Latest version: 1.0.0

# rifcoin SDK Core

[![Unit Tests](https://github.com/rifcoin/sdk-core/workflows/Unit%20Tests/badge.svg)](https://github.com/rifcoin/sdk-core/actions?query=workflow%3A%22Unit+Tests%22)
[![Lint](https://github.com/rifcoin/sdk-core/workflows/Lint/badge.svg)](https://github.com/rifcoin/sdk-core/actions?query=workflow%3ALint)
[![npm version](https://img.shields.io/npm/v/@rifcoin/sdk-core/latest.svg)](https://www.npmjs.com/package/@uniswap/sdk-core/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@rifcoin/sdk-core/latest.svg)](https://bundlephobia.com/result?p=@uniswap/sdk-core@latest)

This code is shared across rifcoin TypeScript SDKs.
npm package: @rifcoin/staker
Description: Canonical liquidity mining contract for rifcoin swap
Latest version: 1.0.1

# uniswap-v3-staker

This is the canonical staking contract designed for [Uniswap V3](https://github.com/Uniswap/uniswap-v3-core).

## Deployments

Note that the v1.0.0 release is susceptible to a [high-difficulty, never-exploited vulnerability](https://github.com/Uniswap/v3-staker/issues/219). For this reason, please use the v1.0.2 release, deployed and verified on Etherscan on all networks at the address: `0xe34139463bA50bD61336E0c446Bd8C0867c6fE65`:

| Network          | Explorer                                                                                 |
| ---------------- | ---------------------------------------------------------------------------------------- |
| Mainnet          | https://etherscan.io/address/0xe34139463bA50bD61336E0c446Bd8C0867c6fE65                  |
| Rinkeby          | https://rinkeby.etherscan.io/address/0xe34139463bA50bD61336E0c446Bd8C0867c6fE65          |
| Kovan            | https://kovan.etherscan.io/address/0xe34139463bA50bD61336E0c446Bd8C0867c6fE65            |
| Ropsten          | https://ropsten.etherscan.io/address/0xe34139463bA50bD61336E0c446Bd8C0867c6fE65          |
| Goerli           | https://goerli.etherscan.io/address/0xe34139463bA50bD61336E0c446Bd8C0867c6fE65           |
| Arbitrum Rinkeby | https://testnet.arbiscan.io/address/0xe34139463bA50bD61336E0c446Bd8C0867c6fE65           |
| Arbitrum One     | https://arbiscan.io/address/0xe34139463bA50bD61336E0c446Bd8C0867c6fE65                   |
| Optimism         | https://optimistic.etherscan.io/address/0xe34139463bA50bD61336E0c446Bd8C0867c6fE65       |
| Optimism Kovan   | https://kovan-optimistic.etherscan.io/address/0xe34139463bA50bD61336E0c446Bd8C0867c6fE65 |

⚠️DEPRECATED⚠️: For historical verification purposes only, the staker at tag v1.0.0 was deployed at the address: `0x1f98407aaB862CdDeF78Ed252D6f557aA5b0f00d`

## Links:

- [Contract Design](docs/Design.md)

## Development and Testing

```sh
$ yarn
$ yarn test
```

## Gas Snapshots

```sh
# if gas snapshots need to be updated
$ UPDATE_SNAPSHOT=1 yarn test
```

## Contract Sizing

```sh
$ yarn size-contracts
```
npm package: @rifcoin/swap
Description: Rifain Exchange pool
Author: Adel Lamallam
Latest version: 1.0.1

# RIFCOIN SWAP

[![Lint](https://github.com/Uniswap/uniswap-v3-core/actions/workflows/lint.yml/badge.svg)](https://github.com/Uniswap/uniswap-v3-core/actions/workflows/lint.yml)
[![Tests](https://github.com/Uniswap/uniswap-v3-core/actions/workflows/tests.yml/badge.svg)](https://github.com/Uniswap/uniswap-v3-core/actions/workflows/tests.yml)
[![Fuzz Testing](https://github.com/Uniswap/uniswap-v3-core/actions/workflows/fuzz-testing.yml/badge.svg)](https://github.com/Uniswap/uniswap-v3-core/actions/workflows/fuzz-testing.yml)
[![Mythx](https://github.com/Uniswap/uniswap-v3-core/actions/workflows/mythx.yml/badge.svg)](https://github.com/Uniswap/uniswap-v3-core/actions/workflows/mythx.yml)
[![npm version](https://img.shields.io/npm/v/@uniswap/v3-core/latest.svg)](https://www.npmjs.com/package/@uniswap/v3-core/v/latest)

This repository contains the core smart contracts for the Uniswap V3 Protocol.
For higher level contracts, see the [uniswap-v3-periphery](https://github.com/Uniswap/uniswap-v3-periphery)
repository.

## Local deployment

In order to deploy this code to a local testnet, you should install the npm package
`@uniswap/v3-core`
and import the factory bytecode located at
`@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json`.
For example:

```typescript
import {
  abi as FACTORY_ABI,
  bytecode as FACTORY_BYTECODE,
} from '@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json'
// deploy the bytecode
```

This will ensure that you are testing against the same bytecode that is deployed to
mainnet and public testnets, and all Uniswap code will correctly interoperate with
your local deployment.

## Using solidity interfaces

The Uniswap v3 interfaces are available for import into solidity smart contracts
via the npm artifact `@uniswap/v3-core`, e.g.:

```solidity
import '@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol';
contract MyContract {
  IUniswapV3Pool pool;
  function doSomethingWithPool() {
    // pool.swap(...);
  }
}
```

### Exceptions

- All files in `contracts/interfaces/` are licensed under `GPL-2.0-or-later` (as indicated in their SPDX headers), see [`contracts/interfaces/LICENSE`](./contracts/interfaces/LICENSE)
- Several files in `contracts/libraries/` are licensed under `GPL-2.0-or-later` (as indicated in their SPDX headers), see [`contracts/libraries/LICENSE_GPL`](contracts/libraries/LICENSE_GPL)
- `contracts/libraries/FullMath.sol` is licensed under `MIT` (as indicated in its SPDX header), see [`contracts/libraries/LICENSE_MIT`](contracts/libraries/LICENSE_MIT)
- All files in `contracts/test` remain unlicensed.
npm package: @rifcoin/swap-sdk
Description: ⚒️ An SDK for building applications on top of rofcoin swap
Latest version: 1.0.0

# Alpha software

The latest version of the SDK is used in production in the Uniswap Interface,
but it is considered Alpha software and may contain bugs or change significantly between patch versions.
If you have questions about how to use the SDK, please reach out in the `#dev-chat` channel of the Discord.
Pull requests welcome!

# Uniswap V3 SDK

[![Unit Tests](https://github.com/Uniswap/uniswap-v3-sdk/workflows/Unit%20Tests/badge.svg)](https://github.com/Uniswap/uniswap-v3-sdk/actions?query=workflow%3A%22Unit+Tests%22)
[![Lint](https://github.com/Uniswap/uniswap-v3-sdk/workflows/Lint/badge.svg)](https://github.com/Uniswap/uniswap-v3-sdk/actions?query=workflow%3ALint)
[![npm version](https://img.shields.io/npm/v/@uniswap/v3-sdk/latest.svg)](https://www.npmjs.com/package/@uniswap/v3-sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/v3-sdk/latest.svg)](https://bundlephobia.com/result?p=@uniswap/v3-sdk@latest)

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