open-index/open-npm huggingface dataset:
npm package: @ppfed/block
Description: 专为 Axios.js 开发的模块API管理模式。它采用集中式存储管理应用的所有 API 模块，并以相应的规则保证 API 以一种统一的方式进行调用。现已支持Vuex Plugin
Author: suliyu
Latest version: 1.0.1

# Block 是什么？

Block 是一个专为 Axios.js 开发的**模块装饰器管理模式**。它采用集中式存储管理应用的所有 API 模块，并以相应的规则保证 API 以一种统一的方式进行调用。现已支持自动生成 vuex api module。

### 什么是“模块装饰器管理模式”？

让我们从一个简单的 Axios 调用方式开始：

```js
import axios from 'axios'

const instance = axios.create({
  baseURL: 'https://www.pingpongx.com/',
})

export const getUserInfo = (params, data) => {
  return instance.get(`/api/getUserInfo`, { params, data })
}
```

这个调用方式包含以下几个部分：

- **axios.create()**，创建 Axios 实例；
- **baseURL**，请求 URL 的基本路径；
- **instance**，Axios 实例；

- **getUserInfo**，API 调用方法名；
- **params**，请求连接中的请求参数；
- **data**，请求体的参数；
- **axios.get()**，Axios 请求方法。
- **/api/getUserInfo**，请求的 URL

每次新增 api 时，你必须通过既有的方式去 copy 代码，并做以下几件事：

- 命名方法
- 写入参
- 参数拼接
- url 拼接（可选）
- try catch（可选）
- 定义拦截器或写拦截器兼容代码（可选）
- 为请求指定配置（可选）

那我们来看看 Block 是**如何定义 API 模块**的：

```js
import { base, get } from '@ppfed/block'

@base('https://www.pingpongx.com/')
class User {
    @get('/api/getUserInfo')
    public getUserInfo() {}
}

export default User
```

简单来说，Block 就是使用**类+装饰器**来统一 API 层的写法风格。

用增加 url-template、qs 等扩展的方式，使得开发者能高效地写出更简洁的代码。
npm package: @ppg007/otp
Description: otp implements TOTP and HOTP generation
Author: PPG007
Latest version: 1.1.0

# otp

This repository implements TOTP and HOTP generation that defined in [RFC6238](https://datatracker.ietf.org/doc/html/rfc6238) and [RFC4226](https://datatracker.ietf.org/doc/html/rfc4226)。

## Install

use npm:

```shell
npm install @ppg007/otp
```

use yarn:

```shell
yarn add @ppg007/otp
```

## TOTP

```ts
import { totp } from '@ppg007/otp';

const genTOTP = (): string => {
  return totp({
    digits: 6,
    period: 30,
    algorithm: 'SHA-1',
    secret: 'secret key',
  });
};
```

## HOTP

```ts
import { hotp } from '@ppg007/otp';

const genHOTP = (counter: number): string => {
  return hotp({
    digits: 6,
    counter,
    algorithm: 'SHA-1',
    secret: 'secret key',
  });
};
```

## Options

Common Options:

|Option|Type|Describe|Values|
|------|----|--------|------|
|algorithm|string|the hash algorithm usage when calculate the otp|'SHA-1', 'SHA-256', 'SHA-512'; default value is 'SHA-1'|
|digits|number|the otp length|default value is 6, some 2FA App only support 6 length OTP|
|secret|string|the hash secret key|must be a base32 encoded string|

TOTP Options:

|Option|Type|Describe|Values|
|------|----|--------|------|
|period|number|the TOTP valid period second |default value 30, some 2FA App only support 30s|

HOTP Options:

|Option|Type|Describe|Values|
|------|----|--------|------|
|counter|number|the HOTP counter initial value|default value is 0|
npm package: @ppgjs/cli
Description: PpgJs's command line tools
Author: BoycePan
Latest version: 0.0.36

# @ppg/cli

这是一个命令行工具

## 用法

### 安装

```bash
npm i -g @ppgjs/cli
```

### 使用

示例：

```bash
ppg -h
```

## 命令介绍

| 命令              | 作用                                                     |
| ----------------- | -------------------------------------------------------- |
| help(-h)          | 查看全部命令用法                                         |
| git-commit        | 创建一个符合 Conventional Commit 规范的提交信息          |
| git-version       | 版本分支操作                                             |
| open              | 在浏览器打开当前仓库                                     |
| git-commit-verify | 检测最近的一次commit信息是否符合 Conventional Commit规范 |
| release           | 发布：更新版本号、提交代码、添加tag、发布npm版本、       |
npm package: @pph/core
Description: A set of React UI component and utilities
Author: sanpyaelin
Latest version: 0.0.103

# @pph/core

> A set of React UI component and utilities

[![NPM](https://img.shields.io/npm/v/@pph/core.svg)](https://www.npmjs.com/package/@pph/core) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save @pph/core
```

## Usage

```jsx
import React, { Component } from 'react'

import MyComponent from '@pph/core'

class Example extends Component {
  render () {
    return (
      <MyComponent />
    )
  }
}
```

## License

MIT © [pph](https://github.com/sanpyaelin/pph-core)