open-index/open-npm huggingface dataset:
npm package: @sparse-bug/react
Description: Official React SDK for Sparse Bug, a lightweight, self-hosted error tracker.
Author: Freilyn Bernabe
Latest version: 0.1.4

# 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) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/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:

```js
export default tseslint.config([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...

      // Remove tseslint.configs.recommended and replace with this
      ...tseslint.configs.recommendedTypeChecked,
      // Alternatively, use this for stricter rules
      ...tseslint.configs.strictTypeChecked,
      // Optionally, add this for stylistic rules
      ...tseslint.configs.stylisticTypeChecked,

      // Other configs...
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])
```

You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:

```js
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default tseslint.config([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...
      // Enable lint rules for React
      reactX.configs['recommended-typescript'],
      // Enable lint rules for React DOM
      reactDom.configs.recommended,
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])
```
npm package: @sparser/email-address-parser-regex
Description: Regex-based RFC 5322 and RFC 6532 email address parser.
Author: Sayan751
Latest version: 3.0.0-rc.5

# @sparser/email-address-parser-regex

Regex-based RFC 5322 and RFC 6532 compliant email address parser.

## Install

```bash
npm install @sparser/email-address-parser-regex
```

## Usage

```ts
import { EmailAddress, ParsingOptions } from "@sparser/email-address-parser-regex";

const email = EmailAddress.parse("foo@bar.com");
console.log(email?.localPart); // foo
console.log(email?.domain); // bar.com

const isValid = EmailAddress.isValid("foo@bar.com", new ParsingOptions(false));
console.log(isValid); // true
```

Advanced regex exports are available from:

```ts
import { EMAIL_REGEX_STRICT, isValidEmail, parseEmail } from "@sparser/email-address-parser-regex/email-regex";
```
npm package: @sparshjain/emoji
Description: Return emojis by name and random emoji and random emoji of a particular type
Latest version: 2.1.0

# Emoji
#### A simple NPM package which returns emoji by name, random emoji of the given type and a random emoji .
![npm (scoped)](https://img.shields.io/npm/v/@sparshjain/emoji?logo=npm&style=for-the-badge)
![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/min/@sparshjain/emoji/latest?style=for-the-badge)
![npm collaborators](https://img.shields.io/npm/collaborators/@sparshjain/emoji?logo=npm&style=for-the-badge)
![NPM](https://img.shields.io/npm/l/@sparshjain/emoji?logo=github&style=for-the-badge)

## Installation

- Download and install [NodeJS](https://nodejs.org/en/download/)
- Install the package using npm install
```bash
$ npm install @sparshjain/emoji
```

## Usage
- **emojiByName( name : String )** returns the emoji of the corresponding ***name***.
- **randomEmojiByType( type : String )** returns a random emoji of the corresponding ***type***.
- **emojiByType( type : String )** returns array of emoji of the corresponding ***type***.
- **randomEmoji()** returns a random emoji .
- Emoji object :
```
  {
      "name"    : "tears of joy",
      "content" : "😂",
      "type"    : "smiley"
  }
```

## Example
- Install the package as described above .
```js
const {emojiByName,randomEmoji,randomEmojiByType, emojiByType} = require('@sparshjain/emoji');
console.log(emojiByName('SMILING FACE'));
console.log(randomEmojiByType('activities'));
console.log(emojiByType('food'));
console.log(randomEmoji());
```
```or```
- Clone the repo and run test.js file
```bash
$ git clone https://github.com/SparshJain2000/emoji.git
$ cd emoji
$ node test.js
```
## Contributing

🍴 Fork the repository

📝 Change it / add your code 

✔️ Do a "pull request"

## License

**MIT &copy; [Sparsh Jain](https://github.com/SparshJain2000/emoji/blob/master/LICENSE)**

## Support
Give a 🌟 to this repo if you liked it.

Connect with me

[![Instagram](https://img.shields.io/static/v1.svg?label=follow&message=@sparsh._jain&color=grey&logo=instagram&style=for-the-badge&logoColor=white&colorA=critical)](https://www.instagram.com/sparsh._jain/) [![LinkedIn](https://img.shields.io/static/v1.svg?label=connect&message=@SparshJain&color=success&logo=linkedin&style=for-the-badge&logoColor=white&colorA=blue)](https://www.linkedin.com/in/sparsh-jain-87379a168/) [![Github](https://img.shields.io/static/v1.svg?label=follow&message=@SparshJain2000&color=grey&logo=github&style=for-the-badge&logoColor=white&colorA=black)](https://www.github.com/SparshJain2000/)
npm package: @sparsity/abci
Description: A TypeScript SDK for Sparsity Platform
Latest version: 0.0.3

# Sparsity ABCI SDK

A JavaScript/TypeScript SDK for interacting with the ABCI (Application Blockchain Interface) protocol of [Sparsity](https://www.sparsity.xyz/) platform. This SDK provides a simple interface to build powerful decentralized applications communicating with Sparsity consensus engine.

## Installation

```bash
npm install @sparsity/abci
# or
yarn add @sparsity/abci
```

## Usage

### Import Required Interfaces

```typescript
import { BatchState, Message, MessageType } from '@sparsity/abci';
```

### Implement Your Application

Create your own application by extending the BaseApplication class:

```typescript
import { BaseApplication, StepEvent } from '@sparsity/abci';

class MyApplication extends BaseApplication {
    // Implement your application logic here
}
```

### Start the ABCI Server

Initialize and start your ABCI server:

```typescript
import { startServer } from '@sparsity/abci';

// Create and start your application
startServer(new MyApplication());
```
npm package: @sparta-utils/cache-util
Description: 统一的浏览器缓存工具类，支持 localStorage、sessionStorage、memory、cookie、indexedDB，内置 SM2 加密与过期机制。A unified browser caching utility supporting localStorage, sessionStorage, memory, cookie, indexedDB with SM2 encryption and expiration.
Author: 你的名字
Latest version: 1.0.2

# 📦 @sparta-utils/cache-util - 浏览器缓存工具类（含SM2加密、过期支持）

`@sparta-utils/cache-util` 是一个统一的浏览器缓存工具类，支持 `localStorage`、`sessionStorage`、`memoryStorage`、`cookieStorage` 及 `indexedDB` 五种缓存方式。  
支持缓存加密（SM2 国密算法）、缓存过期控制，且易于扩展与维护，适用于多种前端复杂缓存场景。

---

## 📥 安装

```bash
# 使用 npm
npm install @sparta-utils/cache-util

# 使用 yarn
yarn add @sparta-utils/cache-util

# 使用 pnpm
pnpm add @sparta-utils/cache-util
```

## ⚙️ 参数说明（统一传入参数）
| 参数名          | 类型        | 是否必填              | 默认值     | 说明                      |
| ------------ | --------- | ----------------- | ------- | ----------------------- |
| `key`        | `string`  | 是                 | -       | 缓存键                     |
| `value`      | `any`     | 否（仅 get/remove 时） | -       | 缓存值                     |
| `options`    | `object`  | 否                 | `{}`    | 设置项，包含以下可选字段            |
| └─ `expire`  | `number`  | 否                 | `null`  | 过期时间（单位：毫秒，null 表示永久有效） |
| └─ `encrypt` | `boolean` | 否                 | `false` | 是否启用 SM2 加密             |

## 🧩 使用示例
```ts
import {localStorage,sessionStorage,memoryStorage,cookieStorage,indexedDB} from '@sparta-utils/cache-util';

// localStorage 示例
localStorage.set('token', '123456', { expire: 10000, encrypt: true });
const token = localStorage.get('token', { encrypt: true });
localStorage.remove('token');

// sessionStorage 示例
sessionStorage.set('username', { name: '张珊', id: 1 }, { encrypt: true })
const name = sessionStorage.get('username', { encrypt: true })
console.log('sessionStorage', name) // 输出: 张三

// memoryStorage 示例（内存级别，刷新页面即失效）
memoryStorage.set('temp', { id: 1 }, { expire: 5000 });
const temp = memoryStorage.get('temp',{ encrypt: true });

// cookieStorage 示例
cookieStorage.set('lang', 'zh-CN', { expire: 86400000, encrypt: true })
const lang = cookieStorage.get('lang', { encrypt: true })
console.log('当前语言:', lang) // 输出: 当前语言: zh-CN

// indexedDB 示例（支持大数据存储）
const cache = new indexedDB('myDB', 'myStore', 2)
await cache.set('key1', { foo: 'bar' }, { expire: 60000, encrypt: true })
const val = await cache.get('key1', { encrypt: true })
console.log(val)

```

## 🔐 加密说明（SM2）
本工具内置了 SM2 加密算法（使用国密标准），加密密钥在首次使用时自动生成并保存到 localStorage，无需外部传入。你只需要传入 encrypt: true 即可自动加密/解密。

加密数据格式统一为字符串，内部自动 JSON 序列化和反序列化。

加密后的数据结构格式如下：
```ts
{
  value: "加密后的密文",
  __encrypt__: true,
  __expire__: 过期时间戳（可选）
}
```
npm package: @sparta-utils/gps-transform-utils
Description: 一个支持三参数与七参数的 GPS 坐标转换工具，适用于 WGS84 转 CGCS2000、北京54 等坐标系的正向与反向平面投影计算。
Author: mylee
Latest version: 1.0.1

# @sparta-utils/gps-transform-utils

一个支持 **三参数 / 七参数** 的 GPS 坐标转换工具，可用于 **WGS84 → CGCS2000 / 北京54** 的投影转换，并支持反向坐标还原。

> 基于 [proj4js](https://github.com/proj4js/proj4js)，适用于地理信息系统、测绘数据校正等场景。

---

## 📦 安装方式

```bash
npm install @sparta-utils/gps-transform-utils

```

## ✨ 功能特色
✅ 支持 三参数（ΔX, ΔY, ΔZ）转换

✅ 支持 七参数（含旋转角、比例）转换

✅ 自动判断中央经线（三度带）

✅ 支持反向投影（平面 → GPS 坐标）

✅ 支持 CGCS2000 / 北京54 坐标系

✅ TypeScript 强类型定义

## 🚀 使用示例
# 1️⃣ 三参数转换
```ts
import { gpsToPlaneBy3Params } from '@sparta-utils/gps-transform-utils';

const gps = { lng: 117.1234, lat: 39.1234 };
const params = { dx: 15, dy: -154, dz: -82 };

const result = gpsToPlaneBy3Params('北京54', params, gps);
console.log('三参数坐标:', result);
```

# 2️⃣ 七参数转换
```ts
import { gpsToPlaneBy7Params } from '@sparta-utils/gps-transform-utils';

const gps = { lng: 117.1234, lat: 39.1234 };
const params = {
  dx: 15,
  dy: -154,
  dz: -82,
  rx: 0.0,   // 秒
  ry: 0.0,
  rz: 0.0,
  scale: 0.0 // ppm
};

const result = gpsToPlaneBy7Params('北京54', params, gps);
console.log('七参数坐标:', result);
```
# 3️⃣ 反向还原（平面坐标 → GPS 坐标）
```ts
import { planeToGps } from '@sparta-utils/gps-transform-utils';

const plane = { x: 500320.888, y: 4321939.137 };
const gps = planeToGps('北京54', { dx: 15, dy: -154, dz: -82 }, plane, 117);
console.log('还原坐标:', gps);
```

## 🧾 参数说明
# GPS 坐标对象（输入）
| 字段    | 类型       | 说明         |
| ----- | -------- | ---------- |
| `lng` | `number` | 经度，单位：十进制度 |
| `lat` | `number` | 纬度，单位：十进制度 |


# 三参数（适用于 gpsToPlaneBy3Params）
| 字段   | 类型       | 说明      |
| ---- | -------- | ------- |
| `dx` | `number` | X轴偏移（米） |
| `dy` | `number` | Y轴偏移（米） |
| `dz` | `number` | Z轴偏移（米） |

# 七参数（适用于 gpsToPlaneBy7Params）
| 字段      | 类型       | 说明              |
| ------- | -------- | --------------- |
| `dx`    | `number` | X轴偏移（米）         |
| `dy`    | `number` | Y轴偏移（米）         |
| `dz`    | `number` | Z轴偏移（米）         |
| `rx`    | `number` | X轴旋转（秒）         |
| `ry`    | `number` | Y轴旋转（秒）         |
| `rz`    | `number` | Z轴旋转（秒）         |
| `scale` | `number` | 比例缩放（ppm，百万分之一） |

# 返回坐标（平面坐标）
| 字段  | 类型       | 说明     |
| --- | -------- | ------ |
| `x` | `number` | 东坐标（米） |
| `y` | `number` | 北坐标（米） |


## 📌 中央经线说明
工具自动按三度带判断中央经线：
```ts
// 例如经度 117.5 会被判定为中央经线 120°
centralMeridian = Math.floor(lng / 3 + 1) * 3;
```
如需手动指定，可在方法中传入 centralMeridian 参数。
## 🔗 依赖说明
proj4
npm package: @sparta-utils/progress-global-loading
Description: Vue 3+Element Plus的全局加载进度条组件
Latest version: 1.0.3

# @sparta-utils/progress-global-loading

> 基于 Vue 3 + Element Plus 的全屏进度加载组件插件，可通过命令式方式调用。适用于数据加载、文件上传、初始化等场景，支持动态更新进度与自定义提示。

---

## 📦 安装

```bash
npm install @sparta-utils/progress-global-loading
# 或者使用 yarn
yarn add @sparta-utils/progress-global-loading
```

⚠️ 注意：该插件依赖于 element-plus，你需要在项目中安装并引入 Element Plus。
```bash
npm install element-plus
```

## 🛠 使用方式
## 1. 按需引入并使用（推荐）
```bash
import { GlobalLoading } from '@sparta-utils/progress-global-loading';

// 打开加载
const loading = GlobalLoading.service({
  percentage: 20,
  label: '数据加载中...'
});

// 更新加载进度
setTimeout(() => {
  loading.update({ percentage: 60 });
}, 1000);

// 关闭加载
setTimeout(() => {
  loading.close();
}, 3000);
```

## 2. 全局注册（用于多处频繁调用）
你也可以将其封装为全局方法，例如在 main.ts 中挂载到 app.config.globalProperties 上：
```bash
import { createApp } from 'vue';
import App from './App.vue';
import { GlobalLoading } from '@sparta-utils/progress-global-loading';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';

const app = createApp(App);

app.use(ElementPlus);

// 全局挂载
app.config.globalProperties.$globalLoading = GlobalLoading;

app.mount('#app');
```

## 3. 局部注册使用方式（组合式 API）
如果你不想挂到全局，也可以在某个组件中直接导入：
```bash
<script setup lang="ts">
import { GlobalLoading } from '@sparta-utils/progress-global-loading';

const loading = GlobalLoading.service({
  percentage: 30,
  label: '上传文件中...'
});

setTimeout(() => {
  loading.update({ percentage: 90 });
}, 2000);

setTimeout(() => {
  loading.close();
}, 4000);
</script>
```
## ⚙️ GlobalLoading.service(options) 参数说明
| 参数名           | 类型     | 默认值 | 说明               |
| ------------- | ------ | --- | ---------------- |
| `percentage`  | number | 0   | 当前加载进度（0 \~ 100） |
| `label`       | string | 加载中 | 加载时的文字提示         |
| `width`       | number | 200 | 进度圈宽度（像素）        |
| `strokeWidth` | number | 10  | 进度条宽度            |


## 🔧 loading.update(options) 更新进度
更新进度或修改文案提示：
```bash
loading.update({
  percentage: 70,
  label: '正在处理...'
});
```
## ❌ loading.close() 关闭加载
```bash
loading.close();
```
关闭并移除当前加载组件。

## 🧩 插件依赖
| 依赖库                 | 说明                       |
| ------------------- | ------------------------ |
| `vue@^3.x`          | Vue 3                    |
| `element-plus@^2.x` | UI组件库，用于 `<el-progress>` |