open-index/open-npm huggingface dataset:
npm package: @pluve/taro-h5-plugin-version-output
Description: The version output plugin for taro h5
Author: vdfor
Latest version: 1.1.0

# @pluve/taro-h5-plugin-version-output

[![npm (scoped)](https://img.shields.io/npm/v/@pluve/taro-h5-plugin-version-output)](https://www.npmjs.com/package/@pluve/taro-h5-plugin-version-output)

## 关于

适用于 `Taro` H5 平台的版本构建插件，在原始构建输出目录下，增加输出以下文件：

- `index-{version}.html` - 版本文件，内容同 `index.html`
- `version.json` - 记录最新版本号
- 对外入口文件（默认为 `main.html`）- 当访问入口文件时，从 `version.json` 获取最新版本号, 跳转到对应的版本号文件路径（即 `index-{version}.html`）

## 安装

```bash
yarn add @pluve/taro-h5-plugin-version-output -D
```

## 使用

```ts
// config/prod.ts

import type { UserConfigExport } from "@tarojs/cli";

export default {
  mini: {},
  h5: {},
  plugins: [
    ...(process.env.TARO_ENV === "h5"
      ? [
          [
            "@pluve/taro-h5-plugin-version-output",
            {
              version: "date",
              mainFileName: "index.html",
              mainFilePageTitle: "哥伦布", 
              mainFileTheme: {
                colorPrimary: "#00b578", 
              },
              vconsole: false,
            },
          ],
        ]
      : []),
  ],
} satisfies UserConfigExport;
```

### 参数

```ts
export interface Options {
  /**
   * 版本号
   *  - date 取当前构建时间 YYYYMMDDHHmm
   *  - 其他输入为自定义版本号（自定义版本号必须数字或小写字母构成）
   *  - false 或 空字符串 此插件不启用
   * @default 'date'
   */
  version?: 'date' | false | string;
  /**
   * 入口文件名称
   * @default 'main.html'
   */
  mainFileName?: string;
  /**
   * 入口文件页面标题
   * @default undefined
   */
  mainFilePageTitle?: string;
  /**
   * 入口文件主题色
   * @default { colorPrimary: '#00b578' }
   */
  mainFileTheme?: Record<string, string>;
  /**
   * 模式
   * - v1.1.0 不再支持 json
   * @default 'json'
   *  - json 生成 version.json, 入口文件通过接口请求 version.json 获取版本号
   */
  mode?: 'json';
  /**
   * 是否注入 vconsole
   * @default false
   */
  vconsole?: boolean;
  /**
   * 自定义入口文件内容
   * @default undefined
   */
  customMainHtml?: (options: {
    mode?: 'json';
    title?: string; // 页面标题，即传入的 mainFilePageTitle
    theme?: Record<string, string>; // 页面主题色，即传入的 mainFileTheme
    vconsole?: boolean;
  }) => string;
}
```
npm package: @pluve/taro-one
Description: UI KIT for Taro
Author: vdfor
Latest version: 2.2.1

<div align="center">
  <img width="100" src="https://yf-test-oss.yifengx.com/webtest/pluve/taro-one/statics/logo.png">
</div>

<h1 align="center">Taro One</h1>

<div align='center'>

[![npm (scoped)](https://img.shields.io/npm/v/@pluve/taro-one?style=for-the-badge)](https://www.npmjs.com/package/@pluve/taro-one)

</div>

## 前言

基于 [Taro](https://taro.zone) 框架开发的 [React](https://reactjs.org) 版本的多端 UI 组件库

[文档](https://yf-test-oss.yifengx.com/webtest/pluve/taro-one/docs/index.html)

> `Taro One` 正处于开发阶段，可能会出现重大改动，请谨慎使用。

## 特性

- 基于 `Taro` 开发的 UI 组件
- `微信小程序` / `H5` 多端适配运行（`支付宝小程序` / `百度小程序` / `字节跳动小程序` 端未测试，`ReactNative` 端暂不支持）
- 支持按需引入
- 支持 `Typescript`

## 安装

```bash
# 使用 npm
npm i @pluve/taro-one

# 使用 yarn
yarn add @pluve/taro-one
```

## 使用

### 按需加载

```js | pure
// babel.config.js
module.exports = {
  presets: [
    // ...
  ],
  plugins: [
    [
      'import',
      {
        libraryName: '@pluve/taro-one',
        libraryDirectory: 'lib/components',
        style: false,
        camel2DashComponentName: true,
        // 此操作可提高 H5 平台的兼容性，建议配置
        customName:
          process.env.TARO_ENV === 'h5'
            ? (name) => {
                if (['view', 'text', 'image', 'input', 'transition'].includes(name)) {
                  return `@pluve/taro-one/lib/components/${name}/index.h5`;
                }
                return `@pluve/taro-one/lib/components/${name}`;
              }
            : undefined,
      },
      'taro-one',
    ],
  ],
};
```

```tsx | pure
// app.tsx
import React, { PureComponent } from 'react';
import '@pluve/taro-one/dist/style/index.scss';

export default class App extends PureComponent {
  public render() {
    return this.props.children;
  }
}
```

```tsx | pure
// 页面使用组件
import React from 'react';
import { Button } from '@pluve/taro-one';

export default () => <Button type="primary">按钮</Button>;
```
npm package: @pluve/taro-plugin-mars
Description: Taro 性能优化插件 - Mars
Author: vdfor
Latest version: 2.0.1

# taro-plugin-mars

一款名为 `Mars` 的 taro 插件


## 安装

```bash
yarn add @pluve/taro-plugin-mars -D
```

## 使用
```js
const config = {
  plugins: [
   [
      '@pluve/taro-plugin-mars',
      {
        prerender: {
          enable: true,
          exclude: ['pages/example/index'],
          xml: '<view>loading...</view>',
        },
      },
    ],
  ]
}
```

## 参数说明

### prerender

> object

自定义预渲染

#### prerender.enable

> boolean

是否启用

#### prerender.exclude

> Array<string>

排除的页面，默认不排除任何页面，即默认所有页面都启用

#### prerender.xml

> string

预渲染 `xml`, 默认为 `<view>loading...</view>`
npm package: @pluve/use-antd-table-vue
Description: ant-design-vue Form 与 Table 联动逻辑封装
Author: vdfor
Latest version: 0.5.0

# @pluve/use-antd-table-vue

[![npm (scoped)](https://img.shields.io/npm/v/@pluve/use-antd-table-vue?style=for-the-badge)](https://www.npmjs.com/package/@pluve/use-antd-table-vue)

`ant-design-vue` Form 与 Table 联动逻辑封装，建议配合 [@pluve/lego-table-vue](https://www.npmjs.com/package/@pluve/lego-table-vue) 使用。

`@pluve/use-antd-table-vue` 已经投入了我们的生产环境中使用，经受住了来自真实业务的考验，并伴随着我们的业务需求不断完善。

## 安装

```bash
# 使用 npm
npm i @pluve/use-antd-table-vue

# 使用 yarn
yarn add @pluve/use-antd-table-vue
```

## API

```ts
type Data = { total: number; list: any[] };
type Params = [{ current: number; pageSize: number, filters?: any, sorter?: any, extra?: any }, { [key: string]: any }];
type ITableMutateType = {
  data?: any[];
  total?: number;
  current?: number;
  pageSize?: number;
};

const {
  tableProps: {
    dataSource: TData['list'];
    loading: boolean;
    onChange: (
      pagination: any,
      filters?: any,
      sorter?: any,
      extra?: any,
    ) => void;
    pagination: {
      current: number;
      pageSize: number;
      total: number;
    };
  };
  search: {
    submit: () => void;
    reset: () => void;
  };
  mutate: (data?: ITableMutateType | ((oldData?: ITableMutateType) => ITableMutateType | undefined)) => void;
} = useAntdTable<TData extends Data, TParams extends Params>(
  service: (...args: TParams) => Promise<TData>,
  {
    form?: any;
    defaultPageSize?: number;
  }
);
```

### Result

| 参数 | 说明 | 类型 |
| --- | --- | --- |
| tableProps | `Table` 组件需要的数据，直接透传给 `Table` 组件即可 | - |
| search.submit | 提交表单 | `() => void` |
| search.reset | 重置当前表单 | `() => void` |
| mutate | 修改 `Table` 数据 | `(data?: ITableMutateType \| ((oldData?: ITableMutateType) => ITableMutateType \| undefined)) => void` |

### Params

| 参数 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| form | `Form` 实例 | - | - |
| defaultPageSize | 默认分页数量 | `number` | 10 |

## 使用

## 致谢

本项目实现的灵感源于 [ahooks/useAntdTable](https://ahooks.js.org/zh-CN/hooks/use-antd-table)。
npm package: @pluve/use-request-vue
Description: > 一个基于 Vue 3 Composition API 的请求管理 Hook
Latest version: 0.1.0

# @pluve/use-request-vue

> 一个基于 Vue 3 Composition API 的请求管理 Hook

[📚 文档地址](https://yf-test-oss.yifengx.com/webtest/allowance-h5/use_request/guide/getting-started.html)

## 特性

- 🚀 **开箱即用** - 简单易用的 API 设计
- 🔄 **自动管理生命周期** - 自动处理 loading、error 状态
- 🧩 **插件化** - 内置防抖、节流、轮询、缓存等常用插件
- ⚡ **TypeScript 支持** - 完整的类型定义

## 安装

```bash
# npm
npm install @pluve/use-request-vue

# yarn
yarn add @pluve/use-request-vue
```

## 快速开始

```vue
<template>
  <div>
    <button @click="run">获取数据</button>
    <div v-if="loading">加载中...</div>
    <div v-else-if="error">错误: {{ error.message }}</div>
    <div v-else>{{ data }}</div>
  </div>
</template>

<script setup>
import useRequest from '@pluve/use-request-vue';

// 基本用法
const { data, loading, error, run } = useRequest((params) => fetch('/api/user', { params }).then((res) => res.json()));
</script>
```

## 插件使用示例

```javascript
// 使用防抖插件
const { data, run } = useRequest((params) => fetch('/api/search', { params }).then((res) => res.json()), {
  manual: true, // 手动触发请求
  debounceInterval: 300, // 防抖间隔300ms
});
```

## 许可证

MIT
npm package: @pluve/user-encryption
Description: ## 使用方法
Author: 朱聪
Latest version: 1.2.0

# 用户中心前端登录加密

## 使用方法

### npm
npm install @pluve/user-encryption

### yarn
yarn add @pluve/user-encryption

```javascript
import encrypt from '@pluve/user-encryption'

// 加密
const rsaPassWord = encrypt('yourPassword')
```
npm package: @pluve/version-output-cli
Description: The version output cli
Author: vdfor
Latest version: 0.0.2

# @pluve/version-output-cli

[![npm (scoped)](https://img.shields.io/npm/v/@pluve/version-output-cli)](https://www.npmjs.com/package/@pluve/version-output-cli)

## 关于

通用型版本构建命令行工具，在原始构建输出目录下，输出以下文件：

- `version.json` 或 `version.js` - 记录最新版本号
- 对外入口文件（默认为 `main.html`）- 当访问入口文件时，从 `version.json` 或 `version.js` 获取最新版本号, 匹配一定的规则跳转到对应的版本号文件路径
- `{version}` - 版本文件夹，内容为原始输出文件

## 安装

```bash
yarn add @pluve/version-output-cli -D
```

## 使用

> 在打包命令执行完成后执行`version-output`命令

```json
// package.json
{
  "name": "demo",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "build:testing": "xxx && version-output --output dist --main-file-name index.html --vconsole",
    "build:product": "xxx && version-output --output dist --main-file-name index.html",
  }
}
```

### 配置参考

```bash
version-output -h
```

## 转发规则

入口文件转发规则如下：

[path]/[mainHtml]#/t/[m] -> [path]/[version]/[n]

- path - url基础路径
- mainHtml - 入口文件，如 `main.html`
- t - 固定值
- m - 转发后的路径，使用 先`encodeURIComponent`再`base64`(`window.btoa`) 编码
- version - 构建的版本号
- n - 解码m得到的路径

## 示例

假设存在项目构建后结构如下，存在订单号为`1`的订单详情页，访问地址为 `https://example.com/html/rest/order.html?orderCode=1`

```			
├── html							
│   ├── rest				      
│   │   ├── order.html
│   │   └── orders.html
└── 
```

现在，我们将此项目使用 `@pluve/version-output-cli` 并在项目构建完成后执行 `version-output --output dist --main-file-name index.html`, 则最终的输出结构变更为（假设执行版本构建时间为 2024/03/14 09:50）：

```			
├── 202403140950							
│   ├── html				      
│   │   ├── rest
│   │   │   ├── order.html   
│   │   │   └── orders.html
├── version.json
└── index.html
```

现在，我们对外提供的订单号为`1`的订单详情页则调整为 `https://example.com/index.html#/t/aHRtbCUyRnJlc3QlMkZvcmRlci5odG1sJTNGb3JkZXJDb2RlJTNEMQ==`, 最终转发到 `https://example.com/index.html#/t/aHRtbCUyRnJlc3QlMkZvcmRlci5odG1sJTNGb3JkZXJDb2RlJTNEMQ==`

> 注1: `aHRtbCUyRnJlc3QlMkZvcmRlci5odG1sJTNGb3JkZXJDb2RlJTNEMQ==` 为 `window.btoa(encodeURIComponent('html/rest/order.html?orderCode=1'))` 的结果 `https://example.com/202403140950/html/rest/order.html?orderCode=1`
npm package: @pluve/vite-plugin-version-output
Description: The version output plugin for vite
Author: vdfor
Latest version: 1.1.6

# @pluve/vite-plugin-version-output

[![npm (scoped)](https://img.shields.io/npm/v/@pluve/vite-plugin-version-output)](https://www.npmjs.com/package/@pluve/vite-plugin-version-output)

## 关于

版本构建插件，在原始构建输出目录下，增加输出以下文件：

- `index-{version}.html` - 版本文件，内容同 `index.html`
- `version.json` - 记录最新版本号
- 对外入口文件（默认为 `main.html`）- 当访问入口文件时，从 `version.json` 获取最新版本号, 跳转到对应的版本号文件路径（即 `index-{version}.html`）

## 安装

```bash
yarn add @pluve/vite-plugin-version-output -D
```

## 使用

```ts
import { defineConfig } from 'vite';
import versionOutput from '@pluve/vite-plugin-version-output';

export default defineConfig({
  plugins: [
    versionOutput({
      version: 'date',
      mainFileName: 'index.html',
      mainFilePageTitle: '哥伦布',
      mainFileTheme: {
        colorPrimary: '#00b578',
      },
      vconsole: false,
    }),
  ],
})
```

### 参数

```ts
interface Options {
  export interface Options {
  /**
   * 版本号
   *  - date 取当前构建时间 YYYYMMDDHHmm
   *  - 其他输入为自定义版本号（自定义版本号必须数字或小写字母构成）
   *  - false 或 空字符串 此插件不启用
   * @default 'date'
   */
  version?: 'date' | false | string;
  /**
   * 入口文件名称
   * @default 'main.html'
   */
  mainFileName?: string;
  /**
   * 入口文件页面标题
   * @default undefined
   */
  mainFilePageTitle?: string;
  /**
   * 入口文件主题色
   * @default { colorPrimary: '#00b578' }
   */
  mainFileTheme?: Record<string, string>;
  /**
   * 模式
   * - v0.0.4 新增
   * - v1.1.0 mode 不再支持 'js' 可选项
   * @default 'json'
   *  - json 生成 version.json, 入口文件通过接口请求 version.json 获取版本号
   */
  mode?: 'json';
  /**
   * 是否注入 vconsole
   * - v0.0.7 新增
   * @default false
   */
  vconsole?: boolean;
  /**
   * 自定义入口文件内容
   * - v1.0.0 新增
   * @default undefined
   */
  customMainHtml?: (options: {
    mode?: 'json';
    title?: string; // 页面标题，即传入的 mainFilePageTitle
    theme?: Record<string, string>; // 页面主题色，即传入的 mainFileTheme
    vconsole?: boolean;
  }) => string;
}
```
npm package: @pluve/yf-sms-sdk
Description: 益丰大药房短信验证sdk
Latest version: 0.1.5

<div align="center">

  <h1><code>wasm-pack-template</code></h1>

  <strong>A template for kick starting a Rust and WebAssembly project using <a href="https://github.com/rustwasm/wasm-pack">wasm-pack</a>.</strong>

  <p>
    <a href="https://travis-ci.org/rustwasm/wasm-pack-template"><img src="https://img.shields.io/travis/rustwasm/wasm-pack-template.svg?style=flat-square" alt="Build Status" /></a>
  </p>

  <h3>
    <a href="https://rustwasm.github.io/docs/wasm-pack/tutorials/npm-browser-packages/index.html">Tutorial</a>
    <span> | </span>
    <a href="https://discordapp.com/channels/442252698964721669/443151097398296587">Chat</a>
  </h3>

  <sub>Built with 🦀🕸 by <a href="https://rustwasm.github.io/">The Rust and WebAssembly Working Group</a></sub>
</div>

## About

[**📚 Read this template tutorial! 📚**][template-docs]

This template is designed for compiling Rust libraries into WebAssembly and
publishing the resulting package to NPM.

Be sure to check out [other `wasm-pack` tutorials online][tutorials] for other
templates and usages of `wasm-pack`.

[tutorials]: https://rustwasm.github.io/docs/wasm-pack/tutorials/index.html
[template-docs]: https://rustwasm.github.io/docs/wasm-pack/tutorials/npm-browser-packages/index.html

## 🚴 Usage

### 🐑 Use `cargo generate` to Clone this Template

[Learn more about `cargo generate` here.](https://github.com/ashleygwilliams/cargo-generate)

```
cargo generate --git https://github.com/rustwasm/wasm-pack-template.git --name my-project
cd my-project
```

### 🛠️ Build with `wasm-pack build`

```
wasm-pack build
```

### 🔬 Test in Headless Browsers with `wasm-pack test`

```
wasm-pack test --headless --firefox
```

### 🎁 Publish to NPM with `wasm-pack publish`

```
wasm-pack publish
```

## 🔋 Batteries Included

* [`wasm-bindgen`](https://github.com/rustwasm/wasm-bindgen) for communicating
  between WebAssembly and JavaScript.
* [`console_error_panic_hook`](https://github.com/rustwasm/console_error_panic_hook)
  for logging panic messages to the developer console.
* `LICENSE-APACHE` and `LICENSE-MIT`: most Rust projects are licensed this way, so these are included for you

## License

Licensed under either of

* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

at your option.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the Apache-2.0
license, shall be dual licensed as above, without any additional terms or
conditions.