open-index/open-npm huggingface dataset:
npm package: @harrysong/api
Description: Taro common API
Author: yuche
Latest version: 10.5.2

# `@harrysong/api`

暴露给 @harrysong/taro 的所有端的公有 API。`@harrysong/api` 会跨 node/浏览器/小程序/React Native 使用，不得使用/包含平台特有特性。
npm package: @harrysong/components
Description: Taro 组件库。
Latest version: 10.5.2

# @harrysong/components

Taro 组件库。

在小程序端，React/Nerv 指向 `mini/index.js`，Vue 无需使用此包。

在 H5 端，React/Nerv 指向 `h5/react/index.js`，Vue 指向 `h5/vue/index.js`。H5 端使用 [stencil](https://stenciljs.com/) 把组件编译为 Web Components 以提供跨框架调用。
npm package: @harrysong/components-react
Description: Taro 组件库（React 版本）。
Latest version: 10.5.2

# @harrysong/components-react

Taro 组件库（React 版本）。

`@harrysong/components` 使用了基于 `Web Components` 的 **Stencil** 框架进行开发，于部分手机会出现兼容性问题：

* 多行文字截断失效
* 部分安卓机（OV居多），样式 `visibility` 切换失败导致页面白屏

因此开发者可以使用此包对 **React** 框架的 H5 组件库进行替代，来提高兼容性。

## 使用方法

### Taro 项目

本特性还没发布，需要 link 到本地使用。

#### 1. 下载 Taro 仓库，切换分支

```shell
git clone https://github.com/NervJS/taro.git
cd taro
git checkout components-compat
```

#### 2. 安装、编译

```shell
yarn
yarn run bootstrap
yarn run build
```

#### 3. 把相关依赖 link 到全局

```shell
cd packages/taro-webpack-runner
npm link
cd ../packages/taro-loader
npm link
cd ../packages/taro-components-react
npm link
```

### 项目

#### 1. 设置项目配置 `h5.useHtmlComponents`

```js
// config/index.js
module.exports = {
  h5: {
    useHtmlComponents: true
  }
}
```

#### 2. 把相关依赖 link 到本地

```shell
npm link @harrysong/webpack-runner
npm link @harrysong/taro-loader
npm link @harrysong/components-react
```

#### 3. 开始编译

```shell
taro build --type h5 --watch
```

## 改造方法

目前只适配了 `View`、`Text`、`Swiper` 组件，开发者可以根据使用到的组件按以下改造方法进行适配：

### 拷贝 Taro v2 的对应组件，进行修改

从[这里](https://github.com/NervJS/taro/tree/2.x/packages/taro-components/src/components)拷贝 Taro2 的对应组件到 `taro/packages/taro-components-react/src/components` 目录下。

组件需要修改的地方有：

1. 把 `Nerv` 相关的引用修改为 `react`
2. 文件改为 `.tsx`，增加 Typings（可选）

### 修改引用入口、rollup 配置

在入口文件增加组件的导出：

```js
// taro-components/react/index
export { xxxx } from './dist/xxx'
```

修改 rollup 配置，添加 input：

```js
// taro-components/rollup.config.js
export default {
  input: {
    'xxx/index': 'src/components/xxx/index.[jsx|tsx]'
  }
}
```

### 编译组件库

```shell
cd taro/packages/taro-components-react
npm run dev
# 完成后重新刷新浏览器即可
```
npm package: @harrysong/mini-runner
Description: Mini app runner for taro
Author: luckyadam
Latest version: 10.5.2

# `@harrysong/mini-runner`

暴露给 `@harrysong/cli` 的小程序 Webpack 启动器。

`@harrysong/mini-runner` 从 `@harrysong/cli` 接受 [Taro 编译配置](https://taro-docs.jd.com/taro/docs/config.html)，把编译配置分解成 Webpack 配置，并刚启动 Webpack 把项目源码编译为适配小程序目录结构的代码。
npm package: @harrysong/react
Description: like react-dom, but for mini apps.
Author: yuche
Latest version: 10.5.2

# @harrysong/react

基于 `react-reconciler` 的小程序专用 React 渲染器，连接 `@harrysong/runtime 的 DOM 实例，相当于小程序版的 `react-dom`，暴露的 API 也和 `react-dom` 保持一致。
npm package: @harrysong/rn-runner
Description: ReactNative build tool for taro
Author: luckyadam
Latest version: 10.5.2

# `@harrysong/rn-runner`

暴露给 `@harrysong/cli` 的 React Native Webpack 启动器。

`@harrysong/mini-runner` 从 `@harrysong/cli` 接受 [Taro 编译配置](https://taro-docs.jd.com/taro/docs/config.html)，把编译配置分解成 Webpack 配置，并刚启动 Webpack 把项目源码编译为适配 React Native 目录结构的代码。
npm package: @harrysong/router
Description: Taro-router
Author: O2Team
Latest version: 10.5.2

# `@harrysong/router`

H5 端路由系统。

## 核心 API

### createRouter(app, config, type, framework, reactdom)

暴露给 `@harrysong/taro-loader/h5` 调用，在应用入口文件中调用，创建一个兼容小程序路由规范的应用。

#### 参数

#### `app`

入口文件默认导出的组件

#### `config`

应用全局配置及页面配置。对应 `app.config.js` 及 `page.config.js` 的返回内容。

#### `type`

框架类型，`react` | `vue` | `nerv` 三选一。

#### `framework`

框架的 default import 对象。

### `reactdom`

可选，`react-dom` 的 default import 对象。
npm package: @harrysong/runtime
Description: taro runtime for mini apps.
Author: yuche
Latest version: 10.5.2

# `@harrysong/runtime`

Taro 运行时。在小程序端连接框架（DSL）渲染机制到小程序渲染机制，连接小程序路由和生命周期到框架对应的生命周期。在 H5/RN 端连接小程序生命周期**规范**到框架生命周期。

## 核心 API

### createReactApp()

暴露给 `@harrysong/taro-loader/app` 调用，在小程序入口文件中调用，创建一个小程序 `App` 构造函数接受的小程序应用规范对象。


### createVueApp()

暴露给 `@harrysong/taro-loader/app` 调用，在小程序入口文件中调用，创建一个小程序 `App` 构造函数接受的小程序应用规范对象。

### createPageConfig()

暴露给 `@harrysong/taro-loader/page` 调用，在小程序页面文件中调用，创建一个小程序 `Page` 构造函数接受的小程序页面规范对象。

### window

在小程序端模仿浏览器的 `window` 实现的对象，在浏览器环境中返回浏览器本身的 `window`。此对象通过 Webpack 的 [ProvidePlugin](https://webpack.js.org/plugins/provide-plugin/) 注入到全局对象以供第三方库调用。

### navigator

在小程序端模仿浏览器的 `navigator` 实现的对象，在浏览器环境中返回浏览器本身的 `navigator`。此对象通过 Webpack 的 [ProvidePlugin](https://webpack.js.org/plugins/provide-plugin/) 注入到全局对象以供第三方库调用。

### document 

在小程序端模仿浏览器的 `document` 实现的对象，在浏览器环境中返回浏览器本身的 `document`。此对象通过 Webpack 的 [ProvidePlugin](https://webpack.js.org/plugins/provide-plugin/) 注入到全局对象以供第三方库调用。

### Current

暴露给开发者的 Taro 全局变量，目前有三个属性：

* `Current.app`，返回当前小程序应用实例，非小程序端返回小程序规范应用实例，可通过此实例调用小程序规范生命周期。
* `Current.page`，返回当前小程序页面实例，非小程序端返回小程序规范页面实例，可通过此实例调用小程序规范生命周期。
* `Current.router`，返回当前小程序路由信息，非小程序端返回小程序规范路由信息

### options

Taro 配置：

* `html`: [渲染 HTML](https://taro-docs.jd.com/taro/next/docs/html.html)
* `debug`: 开启之后会打印渲染时间
* `prerender`: 暴露给 `@harrysong/cli` 的内部参数

### Events

[Taro 消息机制](https://nervjs.github.io/taro/docs/apis/about/events.html#docsNav)。
npm package: @harrysong/shared
Description: > TODO: description
Author: yuche
Latest version: 10.5.2

# `@harrysong/shared`

Taro 内部使用的 utils。包含了常用的类型判断、错误断言、组件类型/声明/参数等。`@harrysong/shared` 会跨 node/浏览器/小程序/React Native 使用，不得使用平台特有特性。

引入此包的必须采用 ES6 引用单个模块语法，且打包配置 external 不得包括此包。
npm package: @harrysong/taro
Description: Taro framework
Author: O2Team
Latest version: 10.5.2

# @harrysong/taro

暴露给应用开发者的 Taro 核心 API。包含以下文件：

## index.js

小程序端入口文件

## h5.js

H5 端入口文件

## html.css

W3C HTML4 的内置样式，用于 [渲染 HTML](https://taro-docs.jd.com/taro/next/docs/html.html)。

## html5.css

Chrome(Blink) HTML5 的内置样式，用于 [渲染 HTML](https://taro-docs.jd.com/taro/next/docs/html.html)。
npm package: @harrysong/taro-h5
Description: Taro h5 framework
Author: O2Team
Latest version: 10.5.2

# @harrysong/taro-h5

暴露给 `@harrysong/taro` 的 H5 端 API。

需要配合 `harbabel-plugin-transform-taroapi` 才能使用 ES6 default import 的语法，相关配置详情在 `harbabel-preset-taro` 中。
npm package: @harrysong/taro-loader
Description: > TODO: description
Author: yuche
Latest version: 10.5.2

# `@harrysong/taro-loader`

暴露给 `@harrysong/mini-runner` 和 `@harrysong/webpack-runner` 使用的 Webpack loader，包含以下 `loader`:

## app

小程序专用。在小程序入口文件调用 `@harrysong/runtime` 的 `createReactApp`/`createVueApp` 方法创建一个小程序 `App` 构造函数接受的对象。

### options: 
* `framework`: 框架类型，`'react' | 'nerv' | 'vue' | 'vue3'`
* `prerender`: [预渲染配置](https://taro-docs.jd.com/taro/next/docs/prerender.html)

## page

小程序专用。在小程序页面文件调用 `@harrysong/runtime` 的 `createPageConfig` 方法创建一个小程序 `Page` 构造函数接受的对象。
### options: 
* `framework`: 框架类型，`'react' | 'nerv' | 'vue' | 'vue3'`
* `name`: 页面路径

## page

小程序专用。在小程序页面文件调用 `@harrysong/runtime` 的 `createComponentConfig` 方法创建一个小程序 `Component` 构造函数接受的对象。

### options: 
* `framework`: 框架类型，`'react' | 'nerv' | 'vue' | 'vue3'`
* `name`: 页面路径

## h5

H5 专用。在小程序入口文件调用 `@harrysong/router` 的 `createRouter` 方法创建兼容小程序生命周期和路由系统的应用。

### options: 
* `framework`: 框架类型，`'react' | 'nerv' | 'vue' | 'vue3'`
* `config`: 应用配置，对应 app.config.js
* `pages：页面配置，对应` page.config.js
* `filename`: 文件名
npm package: @harrysong/taroize
Description: 转换原生微信小程序代码为 Taro 代码
Author: yuche
Latest version: 10.5.2

# `@harrysong/taroize`

暴露给 `@harrysong/cli/convert` 的原生小程序转 Taro 转换器。

## 核心 API

### parse(options)

解析小程序源文件为 React/Vue 组件、

#### options

```typescript
interface Option {
  json?: string, // 小程序配置文件
  script?: string, // 小程序的 JavaScript 文件
  wxml?: string, // wxml 文件
  path: string, // 当前页面路径
  rootPath: string // 根目录路径
}
```
npm package: @harrysong/webpack-runner
Description: webpack runner for taro
Author: luckyadam
Latest version: 10.5.2

# `@harrysong/webpack-runner`

暴露给 `@harrysong/cli` 的 H5 Webpack 启动器。

`@harrysong/webpack-runner` 从 `@harrysong/cli` 接受 [Taro 编译配置](https://taro-docs.jd.com/taro/docs/config.html)，把编译配置分解成 Webpack 配置，并刚启动 Webpack 把项目源码编译为适配 Web 应用目录结构的代码。
npm package: @harrysong/with-weapp
Description: taroize 之后的运行时
Author: yuche
Latest version: 10.5.2

# `@harrysong/with-weapp`

暴露给 `@harrysong/taroize` 的高阶函数。

`withWeapp` 接受一个小程序规范的 `Page/App` 构造器参数，转换为对应框架规范的组件实例。
npm package: @harrytwigg/plugin-editorial-workflow
Description: Editorial workflow plugin for Payload with approval processes, notifications, and access control
Author: Payload
Latest version: 0.0.12

# Editorial Workflow Plugin for Payload CMS

A comprehensive editorial workflow plugin for Payload CMS that provides robust approval processes, notifications, and access control for content publishing.

## Features

- **Multi-step Approval Workflows**: Define custom approval stages for your content
- **Role-based Access Control**: Control who can approve content at each stage
- **Smart Notifications**: Get notified when content needs review or has been approved
- **Workflow History**: Track all changes and approvals in your content lifecycle
- **Customizable Stages**: Define your own workflow stages to match your editorial process
- **Deadline Management**: Set and track content deadlines
- **Comments & Feedback**: Inline comments and feedback system for reviewers

## Installation

```bash
npm install @harrytwigg/plugin-editorial-workflow
# or
yarn add @harrytwigg/plugin-editorial-workflow
# or
pnpm add @harrytwigg/plugin-editorial-workflow
```

## Basic Usage

```typescript
import { buildConfig } from 'payload'
import { editorialWorkflowPlugin } from '@harrytwigg/plugin-editorial-workflow'

export default buildConfig({
  plugins: [
    editorialWorkflowPlugin({
      collections: ['posts', 'pages'],
      workflows: {
        standard: {
          stages: [
            { slug: 'draft', name: 'Draft', color: '#6B7280' },
            { slug: 'review', name: 'Under Review', color: '#F59E0B' },
            { slug: 'approved', name: 'Approved', color: '#10B981' },
            { slug: 'published', name: 'Published', color: '#3B82F6' },
          ],
        },
      },
      notifications: {
        enabled: true,
        slack: {
          webhookUrl: process.env.SLACK_WEBHOOK_URL,
        },
      },
    }),
  ],
  // ... rest of config
})
```

## Configuration

### Plugin Options

- `collections`: Array of collection slugs to enable workflow for
- `workflows`: Define custom workflow configurations
- `notifications`: Configure notification settings
- `permissions`: Custom permission configurations
- `ui`: UI customization options

### Workflow Configuration

Each workflow can define multiple stages with specific permissions and actions.

### Notifications

The plugin supports various notification channels including email, Slack, and in-app notifications.

## License

MIT
npm package: @harrytwigg/postcss-rem-to-px
Description: PostCSS plugin to replace all rem values with px values.
Author: Till Schander
Latest version: 1.0.2

# PostCSS Rem To Px

Fork of original repo by tillschander that uses pixel rounding

[PostCSS] plugin to replace all rem values with px values.

[PostCSS]: https://github.com/postcss/postcss

```css
.foo {
  /* Input example */
  font-size: 1rem;
  margin: 1rem 0 .5rem 0;
}
```

```css
.foo {
  /* Output example */
  font-size: 16px;
  margin: 16px 0 8px 0;
}
```

## Usage

Check you project for existed PostCSS config: `postcss.config.js`
in the project root, `"postcss"` section in `package.json`
or `postcss` in bundle config.

If you already use PostCSS, add the plugin to plugins list:

```diff
module.exports = {
  plugins: [
+   require('postcss-rem-to-px')({ baseSize: 16 }),
    require('autoprefixer')
  ]
}
```

If you do not use PostCSS, add it according to [official docs]
and set this plugin in settings.

[official docs]: https://github.com/postcss/postcss#usage
npm package: @harrytwright/logger
Description: [![Node.js CI](https://github.com/harrytwright/logger/actions/workflows/ci.js.yml/badge.svg)](https://github.com/harrytwright/logger/actions/workflows/ci.js.yml) [![CI - @harrytwright/logger-redactions-*](https://github.com/harrytwright/logger/actions/wor
Author: Harry Wright
Latest version: 3.1.0
npm package: @harrytwright/logger-redactions-uri
Description: Redaction of URI's from production logs
Author: Harry Wright
Latest version: 1.1.0

# @harrytwright/logger-redactions-uri

A [`CVE-2020-7661`](https://github.com/advisories/GHSA-v4rh-8p82-6h5w) safe version of [`zeke/redact-url`](https://github.com/zeke/redact-url).

## Usage

```javascript
const logger = require('@harrytwright/logger')
logger.redactions(require('@harrytwright/logger-redactions-uri'))
```

Or adding `@harrytwright/logger` and `redactions` to your `package.json`:

```json
{
  "name": "package",
  "scripts": {
    ...
  },
  "dependency": {
    "@harrytwright/logger-redactions-uri": "1.0.0"
  },
  "@harrytwright/logger": {
    "redactions": [
      "@harrytwright/logger-redactions-uri"
    ]
  }
}

```
npm package: @harryy/cra-template
Description: The base Material-UI + Fast Refresh + TypeScript template for Create React App.
Latest version: 1.0.4

# cra-template-typescript

This is the Material-UI + Fast Refresh + TypeScript template for [Create React App](https://github.com/facebook/create-react-app).

To use this template, add `--template @harryy` when creating a new app.

For example:

```sh
npx create-react-app my-app --template @harryy

# or

yarn create react-app my-app --template @harryy
```
npm package: @harryy/video-react
Description: Video-React is a web video player built from the ground up for an HTML5 world using React library.
Latest version: 0.16.3

# video-react

[![npm version](https://badge.fury.io/js/video-react.svg)](https://badge.fury.io/js/video-react) [![Build Status](https://travis-ci.org/video-react/video-react.svg?branch=master)](https://travis-ci.org/video-react/video-react) [![Package Quality](http://npm.packagequality.com/shield/video-react.svg)](http://packagequality.com/#?package=video-react)
[![codecov](https://codecov.io/gh/video-react/video-react/branch/master/graph/badge.svg)](https://codecov.io/gh/video-react/video-react)

Video.React is a web video player built from the ground up for an HTML5 world using React library.

## Installation

Install `video-react` and **peer dependencies** via NPM

```sh
npm install --save video-react react react-dom
```

import css in your app or add video-react styles in your page

```jsx
import '~video-react/dist/video-react.css'; // import css
```

or

```scss
@import '~video-react/styles/scss/video-react'; // or import scss
```

or

```html
<link
  rel="stylesheet"
  href="https://video-react.github.io/assets/video-react.css"
/>
```

Import the components you need, example:

```js
import React from 'react';
import { Player } from 'video-react';

export default props => {
  return (
    <Player>
      <source src="https://media.w3.org/2010/05/sintel/trailer_hd.mp4" />
    </Player>
  );
};
```

## Browser support

| Browser | Windows  |  Mac  | Linux | Android  |    iOS     |
| :-----: | :------: | :---: | :---: | :------: | :--------: |
| Chrome  |  **Y**   | **Y** | **Y** |  **Y**   | **Native** |
| Firefox |  **Y**   | **Y** | **Y** | untested | **Native** |
|  Edge   |  **Y**   |   -   |   -   |    -     |     -      |
|  IE 11  | untested |   -   |   -   |    -     |     -      |
| Safari  |    -     | **Y** |   -   |    -     |   **Y**    |

Please note that only the latest stable version is tested and supported. Video-react may be usable in older releases, and we will accept pull requests for them, but they will not be frequently tested or actively supported.

For the items marked as "untested", we do welcome volunteer testers.

## Development

Run tests:

```sh
npm test
```

### Run from local

```bash
$ npm install
$ npm start
```

## Contribution

Interested in making contribution to this project? Want to report a bug? Please read the [contribution guide](./CONTRIBUTION.md).

## Inspiration & Credits

- This project is heavily inspired by [video.js](http://www.videojs.com), and most of our css styles came from [video.js's styles](https://github.com/videojs/video.js/tree/master/src/css).
- The document site is built with [reactstrap](https://github.com/reactstrap/reactstrap).
- All the icons came from [Google Material Icons](https://material.io/icons/)
- Fonts were built by [iconmon](https://icomoon.io/).
npm package: @harryy/vue-datepicker
Description: Vue.js component for Flatpickr
Author: ankurk91
Latest version: 0.0.1

# Vue Datepicker Component

Vue.js component for [Flatpickr](https://chmln.github.io/flatpickr/) datepicker

## Installation
```bash
# npm
npm install @harryy/vue-flatpickr --save

# Yarn
yarn add @harryy/vue-flatpickr
```

## Usage
#### Minimal example
```html
<template>
  <div>
    <datepicker v-model="date"></flat-pickr>
  </div>
</template>

<script>
  import datepicker from '@harryy/datepicker';
  
  export default {    
    data () {
      return {
        date: null,       
      }
    },
    components: {
      datepicker
    }
  }
</script>
```

## Events
```html
<datepicker v-model="date" @on-change="doSomethingOnChange" @on-close="doSomethingOnClose"></flat-pickr>
```