open-index/open-npm huggingface dataset:
npm package: @powerpool/hardhat-forge
Description: Hardhat plugin for foundry's forge
Latest version: 0.1.17

# hardhat-forge

This Hardhat plugin is for [forge](https://github.com/foundry-rs/foundry/tree/master/forge).

## What

This plugin provides bindings for `forge` commands as hardhat tasks.

## Installation

```bash
npm install --save-dev @foundry-rs/hardhat-forge
```

And add the following statement to your `hardhat.config.js`:

```js
require("@foundry-rs/hardhat-forge");
```

Or, if you are using TypeScript, add this to your `hardhat.config.ts`:

```js
import "@foundry-rs/hardhat-forge";
```

## Tasks

This plugin provides the following tasks:

- "forge::build" for "`forge build`
- "forge::test" for "`forge test`

## Configuration

See [Foundry](https://github.com/foundry-rs/foundry).

## LICENSE

- MIT license ([LICENSE](LICENSE) or https://opensource.org/licenses/MIT)
npm package: @powerpool/hardhat-ganache
Description: Hardhat plugin for managing Ganache
Author: Nomic Labs LLC
Latest version: 2.0.2

[![npm](https://img.shields.io/npm/v/@nomiclabs/hardhat-ganache.svg)](https://www.npmjs.com/package/@nomiclabs/hardhat-ganache)
[![hardhat](https://hardhat.org/buidler-plugin-badge.svg?1)](https://hardhat.org)

# hardhat-ganache

This Hardhat plugin automatically starts and stops [Ganache](https://github.com/trufflesuite/ganache-core) when running tests or scripts.

## What

This plugin creates a network named `ganache`. When this network is used, a Ganache server will be
automatically started before running tests and scripts, and stopped when finished.

## Installation

```bash
npm install --save-dev @nomiclabs/hardhat-ganache
```

And add the following statement to your `hardhat.config.js`:

```js
require("@nomiclabs/hardhat-ganache");
```

Or, if you are using TypeScript, add this to your `hardhat.config.ts`:

```js
import "@nomiclabs/hardhat-ganache";
```

## Tasks

This plugin hooks into the `test` and `run` tasks to wrap them in the instantiation and termination of a `ganache-core` instance.
This plugin creates no additional tasks.

## Environment extensions

This plugin doesn't extend the Hardhat Runtime Environment.

## Usage

There are no additional steps you need to take for this plugin to work.

## Configuration

You can set any of the [Ganache's options](https://github.com/trufflesuite/ganache-core#options) through the `ganache`
network config. All of them are supported, with the exception of `accounts`.

This example sets a larger block gas limit and the default balance of Ganache's accounts.

```js
module.exports = {
  defaultNetwork: "ganache",
  networks: {
    ganache: {
      gasLimit: 6000000000,
      defaultBalanceEther: 10
    }
  }
};
```

Note: The `accounts` option is not currently supported.
npm package: @powersi/hsa-ui
Description: A Vue.js project
Latest version: 1.1.3-12

# hsa-ui

基于ta-404框架的ui版本包 这里是 HSA UI 的 Vue 实现，开发和服务于企业级后台产品。

【注】原包地址，已经安装不上，由此上传该版本包。【原包版本】1.1.3-12
npm package: @powersi/icons-svg
Description: Ant Design Icons
Latest version: 4.0.1
Deprecated: false

# icons-svg包
【注】原包地址，已经安装不上，由此上传该版本包。【原包版本】4.0.1

## 项目命令

### `npm run icons:generate`

本项目中最重要的生成命令，运行后将读取 `svg` 目录下的所有图标文件，并通过 `build/templates` 中的模板文件，将 `svg` 转化成一个 `json` 格式的抽象树，生成 `ts` 文件并且存储在 `src` 目录中。

### `npm run icons:build`

构建命令，使用 `tsc` 将 `src` 目录下的文件编译到 `lib` 目录下，使用的是 `commonjs` 模块规范。同时也将 `src/index.ts` 文件使用 `babel` 编译到 `lib/index.es.js` ， 使用的是 `ECMAScript` 模块规范，用于未来可以使用 `tree shaking` 打包特性。

## 基本用法

## 打包发布
请在打包发布1、2中选择一个步骤执行即可
注意：由于发布时使用了`np`模块，所以，在发布时，会在命令行提醒选择要发布的版本号、npm-tag等信息，请按照需要进行选择。

### 打包发布1
1. 可直接使用封装的npm脚本：`npm run icons:publish`，即可完成从生成、编译到发布的一套流程。

### 打包发布2
1. 确认从设计师拿到的图标命名是否正确。（单词顺序、单词拼写）
2. 运行命令 `npm run icons:generate`, 生成 `src/**/*.ts` 文件
3. 生成的 `src` 目录结构如下
  ```bash
  src
  ├── dist.ts      # 经过压缩后的全量图标文件
  ├── index.ts     # 图标库入口
  ├── types.ts     # 类型定义
  ├── manifest.ts  # 生成的图标名字集合
  ├── fill
  ├── twotone
  └── outline      # 三种主题，存放着图标的抽象树
  ```
4. 检查名字准确无误、抽象树符合预期后，运行命令 `npm run icons:build` 进行编译
5. 检查编译后的文件目录 `lib`
6. 确保代码风格检查和测试通过：`npm run lint`, `npm run icons:test`
7. 移除`package.json`文件中的`prepublishOnly`，修改`version`及其他可能需要的信息
8. 执行`npm publish`
9. 恢复`package.json`

### 添加新图标

1. 确认从设计师拿到的三种图标风格名字是否一致且正确
2. 将图标根据风格分别存放进 `svg` 目录下的 `fill`、`outline` 和 `twotone` 目录下
3. 之后的流程同上文的打包发布流程一致

### 提交规范

1. 不允许提交src下自动生成的ts文件
1. 仅需要提供svg目录下3种不同样式的svg文件，其他ts、js等会在编译过程中自动生成

## 进阶指南

### 工作流

图标的处理可以抽象成管道的流动，所以使用了 `rxjs` 来优雅地描述处理的过程。

命令 `npm run icons:generate` 的本质就是运行 `build/generateIcon.ts` 中的 `build(env)` 函数。

#### 初始化环境

- `SVGO` 处理器配置

单色图标的 `SVGO` 处理器会额外清除路径元素上的 `fill` 属性，因为单色图标路径上的 `fill` 是没有必要的

- 清理原来的旧的生成文件

本质是清理 `env.paths` 路径中以 `_OUTPUT` 结尾的标识符所代表的文件或者表达式

- 规范化图标命名

这是单向一次性的过程，会根据 `build/constants.ts` 中的 `renameMapper` 重新命名 `svg` 目录下的图标文件。

> 最好重命名都写在该映射表下，重命名会同时影响三种主题风格下的同名图标

#### 流

- `svgMetaDataWithTheme$` SVG 元数据流

![svg-meta-data-with-theme-flow](https://user-images.githubusercontent.com/15819224/45201211-f8020f80-b2a6-11e8-8773-2639fa61fd23.png)

这是一个高阶流，根据三种主题风格 `fill`、`outline`、`twotone` 分别发射出分支流，每个分支流上的数据的接口类型如下：

```ts
export interface BuildTimeIconMetaData {
  identifier: string; // 标识符，以大写风格名结尾，例如：AccountBookFill、AlertFill
  icon: IconDefinition; // 图标定义类型
}
```

上述的图标定义类型接口如下：

```ts
export interface IconDefinition {
  name: string; // kebab-case-style
  theme: ThemeType;
  icon:
    | ((primaryColor: string, secondaryColor: string) => AbstractNode) // 接受主色和副色生成抽象树的函数
    | AbstractNode; // 定义SVG结构的抽象树
}
```

- `BuildTimeIconMetaData$` 构建时图标原数据流

该数据流将高阶流 `svgMetaDataWithTheme$` 打平，并且进行了如下处理：

1. 对于非旧图标（指使用设计师给的新图标，通常大小比较小），修改其 `viewBox` 为 `64 64 896 896`。

  > **为什么是 `64 64 896 896`** ? 参见[相关issue](https://github.com/ant-design/ant-design/issues/12053#issuecomment-418971714).