open-index/open-npm huggingface dataset:
npm package: @fuming0124/erc20-merkle-airdrop
Description: ERC20 merkle airdrop contract and merkle tree generator.
Author: fuming.137@icloud.com
Latest version: 1.0.0

# ERC20 Merkle Airdrop

ERC20 merkle airdrop contract and merkle tree generator.

## Project setup

```bash
npm install
```

### First setup

Modify the file `hardhat_custom.config.js`. If it does not exist, create a new one in the project root directory:

```js
module.exports = {
    private: {
        url: "http://127.0.0.1:8545", // Your private geth JSON-RPC network
        accounts: [
            "0xprivatekey0",
            "0xprivatekey1"
        ]
    }
};
```

### Compile

```bash
npx run compile
```

### Test

```bash
npm run test
```
npm package: @fuming0124/uniswap-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 package: @fumoe/taro-components
Description: Taro 4.x 开箱即用的一些公用组件
Author: kaedeshimizu
Latest version: 0.3.0

# @fumoe/taro-components

Taro 4.x 开箱即用的公用组件库，提供美观、易用的移动端组件，支持 TypeScript 和完整的类型提示。

## ✨ 特性

- 🎨 **美观易用** - 精心设计的 UI，符合移动端用户体验
- 🚀 **开箱即用** - 无需额外配置，直接引入使用
- 📱 **响应式** - 完美适配各种屏幕尺寸
- 🎯 **TypeScript** - 完整的类型定义和智能提示
- ⚡ **高性能** - 优化的渲染性能，流畅的动画效果

## 📦 安装

### 使用包管理器安装

```bash
# 使用 npm
npm install @fumoe/taro-components

# 使用 yarn
yarn add @fumoe/taro-components

# 使用 pnpm
pnpm add @fumoe/taro-components
```

## 🔧 开发指南

### 本地开发

```bash
# 克隆仓库
git clone xxx

# 安装依赖
pnpm install

# 启动开发环境
pnpm dev

# 构建组件库
pnpm build

# 运行测试
pnpm test
```

### 目录结构

```
packages/
└── components/
    ├── src/
    │   ├── MoePicker/     # 选择器组件
    │   ├── MoeTag/        # 标签组件
    │   ├── MoeHeader/     # 头部导航
    │   └── index.ts       # 导出文件
    ├── package.json
    └── README.md
```

## 📄 许可证

MIT License

## 🤝 贡献指南

欢迎提交 Issue 和 Pull Request 来帮助改进组件库！
npm package: @fumoe/taro-hooks
Description: Taro 4.x 中, 可以开箱即用的自制hooks
Author: kaedeshimizu
Latest version: 0.3.0

# @fumoe/taro-hooks

专为 Taro 4.x 设计的 React Hooks 集合，提供开箱即用的微信小程序和其他常用Hooks功能.
## 📦 安装

```bash
npm install @fumoe/taro-hooks
# 或者
yarn add @fumoe/taro-hooks
# 或者
pnpm add @fumoe/taro-hooks
```

## 🛠️ 开发

```bash
# 安装依赖
pnpm install

# 开发模式
pnpm run dev

# 构建
pnpm run build

# 发布前检查
pnpm run prepublishOnly
```

## 📄 许可证

MIT License

## 🤝 贡献

欢迎提交 Issue 和 Pull Request！

## 📞 联系

- GitHub: [kaede221](https://github.com/Kaede221)
- Email: kaedeshimizu@qq.com
npm package: @fun-ecosystem1/chat
Description: Chat module for Fun Ecosystem - provides messaging, groups, voice messages, and realtime features
Author: Fun Ecosystem Team
Latest version: 1.0.0

# @fun-ecosystem1/chat

Chat module for Fun Ecosystem - provides messaging, group chats, and realtime features.

## Installation

```bash
npm install @fun-ecosystem1/chat
# or
pnpm add @fun-ecosystem1/chat
```

## Peer Dependencies

This package requires the following peer dependencies:
- `react` >= 18.0.0
- `react-dom` >= 18.0.0
- `@supabase/supabase-js` >= 2.90.0
- `@tanstack/react-query` >= 5.0.0
- `date-fns` >= 4.0.0
- `lucide-react` >= 0.400.0
- `sonner` >= 1.0.0

## Quick Start

```tsx
import { 
  ChatProvider, 
  ConversationList, 
  MessageThread 
} from '@fun-ecosystem1/chat';
import { createClient } from '@supabase/supabase-js';
import { QueryClient } from '@tanstack/react-query';

const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY);
const queryClient = new QueryClient();

function ChatPage() {
  const [selectedConversation, setSelectedConversation] = useState(null);

  return (
    <ChatProvider
      config={{
        supabase,
        queryClient,
        currentUserId: 'user-id',
        currentUsername: 'username',
        uploadMedia: async (file) => {
          // Your upload logic
          return { url: 'https://...' };
        },
      }}
    >
      <div className="flex h-screen">
        <ConversationList onSelect={setSelectedConversation} />
        {selectedConversation && (
          <MessageThread conversationId={selectedConversation} />
        )}
      </div>
    </ChatProvider>
  );
}
```

## Components

### ChatProvider
Wraps your chat components and provides configuration via context.

### ConversationList
Displays a list of conversations with search and realtime updates.

### MessageThread
Shows messages in a conversation with reactions, replies, and typing indicators.

### ChatInput
Message input with media upload, emoji picker, and reply functionality.

### MessageBubble
Individual message display with reactions and read receipts.

### TypingIndicator
Shows who is currently typing.

### CreateGroupDialog
Dialog for creating new group conversations.

### GroupSettingsDialog
Dialog for managing group settings and members.

### NewConversationDialog
Dialog for starting a new direct conversation.

### MessageSearch
Search messages within a conversation.

### ChatSettingsDialog
User's chat privacy and notification settings.

## Hooks

### useConversations
Fetch and manage conversation list.

### useMessages
Fetch messages with pagination and realtime updates.

### useTypingIndicator
Send and receive typing indicators.

### useChatSettings
Manage user's chat settings.

### useGroupConversations
Create and manage group conversations.

### useChatNotifications
Handle chat notifications.

## Database Schema

This module requires the following tables:
- `conversations`
- `conversation_participants`
- `messages`
- `message_reactions`
- `message_reads`
- `chat_settings`

See the main repository for migration scripts.

## License

MIT
npm package: @fun-foundry/eslint-config
Description: Opinionated ESLint flat config presets maintained by fun-foundry.
Latest version: 1.2.0

# @fun-foundry/eslint-config

Opinionated ESLint configuration maintained by fun-foundry.

This package provides a shared ESLint configuration for JavaScript / TypeScript projects.

## Installation

Install both ESLint and this configuration package.

```sh
npm install --save-dev eslint @fun-foundry/eslint-config
```

or

```sh
yarn add -D eslint @fun-foundry/eslint-config
```

or

```sh
pnpm add -D eslint @fun-foundry/eslint-config
```

## Usage

This package provides three ESLint flat config presets.

| Preset    | Description                                                    |
| --------- | -------------------------------------------------------------- |
| `node`    | Base rules for Node.js / TypeScript projects                   |
| `nextjs`  | Additional rules for Next.js projects (React, Testing Library) |
| `vitest`  | Additional rules for test files using Vitest                   |

Create an `eslint.config.js` (or `eslint.config.mjs`) and import the presets you need.

Example: `eslint.config.js`

```js
import { node } from '@fun-foundry/eslint-config/node'
import { nextjs } from '@fun-foundry/eslint-config/nextjs'
import { vitest } from '@fun-foundry/eslint-config/vitest'

export default [
  ...node,
  ...nextjs,
  ...vitest
]
```

## Customization

You can extend the presets and override individual rules in your project.

Example: `eslint.config.js`

```js
import { node } from '@fun-foundry/eslint-config/node'

export default [
  ...node,

  {
    rules: {
      // Example: restrict direct zod imports
      'no-restricted-imports': [
        'error',
        {
          paths: [{ name: 'zod', message: "Use '@/zod' instead." }]
        }
      ]
    }
  }
]
```

This is useful when you want to keep the base style from this package while adapting a few rules for a specific project.

## Peer dependencies

The `nextjs` and `vitest` presets require optional peer dependencies. Install them as needed.

For `nextjs`:

```sh
npm install --save-dev @next/eslint-plugin-next eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-testing-library
```

For `vitest`:

```sh
npm install --save-dev @vitest/eslint-plugin
```

## Requirements

- Node.js >= 18.18.0
- ESLint >= 9

## License

[MIT](LICENSE)
npm package: @fun-foundry/prettier-config
Description: Opinionated Prettier configuration maintained by fun-foundry.
Latest version: 1.1.0

# @fun-foundry/prettier-config

Opinionated Prettier configuration maintained by fun-foundry.

This package provides a shared Prettier configuration for JavaScript / TypeScript projects.

## Installation

Install both Prettier and this configuration package.

```sh
npm install --save-dev prettier @fun-foundry/prettier-config
```

or

```sh
yarn add -D prettier @fun-foundry/prettier-config
```

or

```sh
pnpm add -D prettier @fun-foundry/prettier-config
```

## Usage

Create a Prettier configuration file and import this package.

Example: `prettier.config.mjs`

```js
import config from '@fun-foundry/prettier-config'

export default config
```

If your project already uses ESM ("type": "module" in package.json), you can also use prettier.config.js.

Example: `prettier.config.js`

```js
import config from '@fun-foundry/prettier-config'

export default config
```

## Customization

You can extend this config and override individual options in your project.

Example: `prettier.config.js`

```js
import config from '@fun-foundry/prettier-config'

export default {
  ...config,
  printWidth: 100,
  semi: true
}
```

This is useful when you want to keep the base style from this package while adapting a few rules for a specific project.

## Requirements

- Node.js >= 18.18.0
- Prettier >= 3 < 4

## License

[MIT](LICENSE)
npm package: @fun-gauge/core
Description: A Gauge chart component for javascript and friends
Author: Alejandro Madariaga Angeles
Latest version: 1.0.0

# Fun Gauge

![Fun gauge](https://raw.githubusercontent.com/alejandroMA/fun-gauge/refs/heads/main/assets/fun-gauge.gif)

[fun-gauge.dev](https://fun-gauge.dev)

## Basic usage

```sh
npm install @fun-gauge/core
```

```javascript
import Gauge from '@fun-gauge/core'

var gauge = Gauge({
    canvasElement: document.querySelector('#canvas1'),
    value: 40,
})
```

## Default options

```javascript
import { backOutEase } from '@fun-gauge/core'

export const defaultProps = {
    canvasElement: document.createElement('canvas'),
    width: 0,
    value: 0,
    colorSelectors: [
        { color: '#F44336', min: 0, max: 33 },
        { color: '#FFC107', min: 33, max: 66 },
        { color: '#4CAF50', min: 66, max: 100 },
    ],
    animation: {
        duration: 750,
        animateCounter: true,
        /** function that maps time animation progress from 0 to 1, defaults to backOutEase */
        easeFunc: backOutEase,
    },
    theme: {
        backgroundArcColor: '#ECECEC',
        /** function that takes the canvas width and returns the line width for the gauge */
        lineWidthFunc: (width: number) => Math.floor(width * 0.095),
        counter: {
            color: '#2A2A2A',
            /** function that takes takes the canvas width and returns ctx.font to be used on the canvas */
            fontFunc: (width: number): string => `bold ${Math.floor(width * 0.23)}px arial`,
            /** function that takes the current value of the gauge and returns a string to display on the canvas */
            renderFunc: (val: number): string => `${Math.round(val)}%`,
        },
        labels: {
            color: '#3A3A3A',
            /** function that takes takes the canvas width and returns ctx.font to be used on the canvas */
            fontFunc: (width: number): string => `${Math.floor((width * 0.095) / 2)}px arial`,
            /** function that takes the current value of the label and returns a string to display on the canvas */
            renderFunc: (val: number): string => `${val}`,
        },
    },
    firstRenderDelay: 0,
}
```

## API

```javascript
gauge.animateTo(13)
```

```javascript
gauge.updateProps(/* new props */) // doesn't tiger re-render
```

```javascript
gauge.forceRender()
```

```javascript
gauge.getCanvasElement()
```

```javascript
gauge.updateWidth(300)
```

# Examples

![Fun gauge](https://raw.githubusercontent.com/alejandroMA/fun-gauge/refs/heads/main/assets/fun-gauge-examples.gif)
npm package: @fun-gauge/react
Description: A Gauge chart component for react.js
Author: Alejandro Madariaga Angeles
Latest version: 1.0.0

# Fun Gauge React

![Fun gauge](https://raw.githubusercontent.com/alejandroMA/fun-gauge/refs/heads/main/assets/fun-gauge.gif)

[fun-gauge.dev](https://fun-gauge.dev)

## Basic usage

```sh
npm install @fun-gauge/react
```

```javascript
import Gauge from '@fun-gauge/react'

function MyGauge(props) {
    const { title = 'Hello Gauge', value = 60 } = props

    return (
        <div>
            <h3>{title}</h3>
            <Gauge value={value} />
        </div>
    )
}
```

## Default options

```javascript
import FunGauge, { backOutEase } from '@fun-gauge/react'

function MyGauge() {
    return (
        <div>
            <FunGauge
                value={0}
                colorSelectors={[
                    { color: '#F44336', min: 0, max: 33 },
                    { color: '#FFC107', min: 33, max: 66 },
                    { color: '#4CAF50', min: 66, max: 100 },
                ]}
                animation={{
                    duration: 750,
                    animateCounter: true,
                    /** function that maps time animation progress from 0 to 1, defaults to backOutEase */
                    easeFunc: backOutEase,
                }}
                theme={{
                    backgroundArcColor: '#ECECEC',
                    /** function that takes the canvas width and returns the line width for the gauge */
                    lineWidthFunc: (width: number) => Math.floor(width * 0.095),
                    counter: {
                        color: '#2A2A2A',
                        /** function that takes takes the canvas width and returns ctx.font to be used on the canvas */
                        fontFunc: (width: number): string => `bold ${Math.floor(width * 0.23)}px arial`,
                        /** function that takes the current value of the gauge and returns a string to display on the canvas */
                        renderFunc: (val: number): string => `${Math.round(val)}%`,
                    },
                    labels: {
                        color: '#3A3A3A',
                        /** function that takes takes the canvas width and returns ctx.font to be used on the canvas */
                        fontFunc: (width: number): string => `${Math.floor((width * 0.095) / 2)}px arial`,
                        /** function that takes the current value of the label and returns a string to display on the canvas */
                        renderFunc: (val: number): string => `${val}`,
                    },
                }}
                firstRenderDelay={0}
            />
        </div>
    )
}
```

## Examples

![Fun gauge](https://raw.githubusercontent.com/alejandroMA/fun-gauge/refs/heads/main/assets/fun-gauge-examples.gif)
npm package: @fun-land/observable-fun-state
Description: Use FunState with zen-observable!
Author: Jethro Larson
Latest version: 5.0.0

# `@fun-land/observable`

Use FunState with zen-observable!

# API

## observableFunState

```ts
<State>(initialState: State) => Observable<FunState<State>>
```

Create an [Observable](https://github.com/zenparsing/zen-observable) of a FunState
which calls Observable.next() when subscribers modify the state using the
[FunState API](https://github.com/fun-land/fun-land/tree/main/packages/fun-state).

```typescript
import observableFunState from "@fun-land/observable";

const observableState = observableFunState({ counter: 0 });

observableState.subscribe((funState) => {
    // can read from funState like usual
    const currentCount = funState.prop("counter").get();
    console.log(currentCount);

    if (currentCount < 10) {
      // writing to the state causes another event
      funState.prop("counter").mod((v) => v + 1);
    }
  }, 100);
});
```

# Why?

This allows usage of [FunState](https://github.com/fun-land/fun-land/tree/main/packages/fun-state) for doing reactive programming with [accessors](https://github.com/fun-land/fun-land/tree/main/packages/accessor) without requiring [use-fun-state](https://github.com/fun-land/fun-land/tree/main/packages/use-fun-state) or React.js.
npm package: @fun-stack/fun-local-env
Description: Replicate fun-stack infrastructure locally
Author: cornerman
Latest version: 0.3.17

# local-env

Replicate fun-stack infrastructure locally: AWS lambdas with a HTTP/WS Server, local cognito.

## Links

Example on how to use it:
- Fun Scala Template: [example](https://github.com/fun-stack/example)

Terraform module for the corresponding AWS infrastructure:
- Fun Terraform Module: [terraform-aws-fun](https://github.com/fun-stack/terraform-aws-fun)

SDK library to communicate with the infrastructure in your code:
- Fun SDK Scala: [sdk-scala](https://github.com/fun-stack/sdk-scala)

## Install

```sh
npm install --global @fun-stack/fun-local-env
```

## Usage

```sh
fun-local-env --help
```

Usage:
```
Usage: fun-local-env <options>
--http [<port>]
--ws [<port>]
--auth [<port>]
--http-api <js-file-name> <export-name>
--http-rpc <js-file-name> <export-name>
--ws-rpc <js-file-name> <export-name>
--ws-event-authorizer <js-file-name> <export-name>
```

## Development

```sh
sbt ~cli/fastOptJS/webpack
node cli/target/scala-2.13/scalajs-bundler/main/fun-local-env.js --ws 8080 --ws-rpc <path-to-js> handlerWebsocket

# or, with file watching:
echo cli/target/scala-2.13/scalajs-bundler/main/fun-local-env.js | entr -cnr node --enable-source-maps cli/target/scala-2.13/scalajs-bundler/main/fun-local-env.js --ws 8080 --ws-rpc <path-to-js> handlerWebsocket
```

## Release

```sh
cd npm
mkdir -p .git # trick npm into thinking this is a git root
npm version patch
git push
git push --tags
```
npm package: @fun-stack/fun-pack
Description: A webpack plugin to use with scalajs projects
Author: cornerman
Latest version: 0.3.5

# fun-pack

A webpack plugin to use with scalajs projects.

This tool tries to detect if it is run with scalajs-bundler or not. If yes, it will use the generated webpack config from scalajs-bundler as a base and will add things on top. Otherwise, it will generate the whole webpack config. It should work equivalently and transparently.

Provides webpack configs for web development (dev and prod) and lambda development (dev and prod) and node executables (prod).

## Usage

Install:
```sh
npm install @fun-stack/fun-pack
```

Use the following snippets as your webpack config.

### Web

Web (dev):
```javascript
const {webDev} = require("@fun-stack/fun-pack");

module.exports = webDev({
    // entrypoint: "entrypoint.js", // not needed with scalajs-bundler
    indexHtml: "src/main/html/index.html",
    // assetsDir: "assets",
    // extraStatic: [],
    // outputDir: "dev",
});
```

Web (prod):
```javascript
const {webProd} = require("@fun-stack/fun-pack");

module.exports = webProd({
    // entrypoint: "entrypoint.js", // not needed with scalajs-bundler
    indexHtml: "src/main/html/index.html",
    // assetsDir: "assets",
    // outputDir: "dist",
});
```

### Lambda

Lambda (dev):
```javascript
const {lambdaDev} = require("@fun-stack/fun-pack");

module.exports = lambdaDev({
    // entrypoint: "entrypoint.js", // not needed with scalajs-bundler
    // assetsDir: "assets",
    // outputDir: "dev",
});
```

Lambda (prod):
```javascript
const {lambdaProd} = require("@fun-stack/fun-pack");

module.exports = lambdaProd({
    // entrypoint: "entrypoint.js", // not needed with scalajs-bundler
    // assetsDir: "assets",
    // outputDir: "dist",

});
```

### Node executable

Node executable (prod):
```javascript
const {binProd} = require("@fun-stack/fun-pack");

module.exports = binProd({
    // entrypoint: "entrypoint.js", // not needed with scalajs-bundler
    // fileName: "output.js",
    // outputDir: "dist",
});
```
npm package: @fun-stack/lambda-server
Description: Run AWS lambdas locally with a HTTP/WS Server
Author: cornerman
Latest version: 0.2.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# lambda-server

Run AWS lambdas locally with a HTTP/WS Server


## Install

```sh
npm install --global @fun-stack/lambda-server
```

## Usage

```sh
lambda-server <http|ws> <js-file-name> <export-name> [<port>] [-- ...]
```

## Development

```sh
sbt ~lambdaServer/fastOptJS/webpack
node lambda-server/target/scala-2.13/scalajs-bundler/main/lambda-server.js ws <path-to-js> handlerWebsocket 8080

# or, with file watching:
echo lambda-server/target/scala-2.13/scalajs-bundler/main/lambda-server.js | entr -cnr node --enable-source-maps lambda-server/target/scala-2.13/scalajs-bundler/main/lambda-server.js ws <path-to-js> handlerWebsocket 8080
```

## Release

```sh
cd npm
mkdir -p .git # trick npm into thinking this is a git root
npm version patch
git push 
git push --tags
```