open-index/open-npm huggingface dataset:
npm package: @js-core/sentry-webpack-plugin
Description: Webpack plugin for Sentry(Not Official)
Author: Sentry
Latest version: 0.0.11

FORK FROM [sentry-webpack-plugin](https://github.com/getsentry/sentry-webpack-plugin)

## Usage:

```javascript
const SentryWebpackPlugin = require("@js-core/sentry-webpack-plugin");

const config = {
  plugins: [
    new SentryCliPlugin({
        url: "https://xxx/",
        authToken: "xxxx",
        org: "xxx",
        project: "xxx",
        include: "./dist",
        ignore: ["node_modules", "webpack.config.js"],
        urlPrefix: `cdn address`,
        // 以下是新增选项
        replacePattern: [{ 
          asset: "app.min.js",  // 表示要对源码执行 handler 配置的处理
          handler: "./scripts/add-comments.js" // 
        }],
        // replacePattern: "./scripts/replace.js", 也支持传入字符串
        cleanUp: "./scripts/clean-map-files.js", // 执行清理工作
        releaseHook: "./scripts/release-hook.js", // 支持自定义release名称
    }),
  ],
};
```

`./scripts/add-comments.js` 文件如下:

```javascript
const crypto = require('crypto');

module.exports = function (code, { asset, pattern, compilation }) {
  const options = this.options;
  const hash = crypto.createHash('md5').update(code).digest('hex');
  return `${code}
  // hash values: ${hash}
  // built date: ${new Date()}`;
}
```

`./scripts/clean-map-files.js` 文件如下:

```javascript
const fs = require("fs");
module.exports = function(opts, compilation) {
  Object.keys(compilation.assets).forEach(fileName => {
    if (fileName.endWith(".js.map")) { 
      fs.unlink(fileName);
    }
  })
};
```
npm package: @js-core/whistle
Description: HTTP, HTTP2, HTTPS, Websocket debugging proxy
Author: avenwu
Latest version: 0.0.2

项目 fork 自 [whistle](https://github.com/avwo/whistle), 扩展了一个功能, 将请求响应数据暴露给外部, 方便扩展更多功能(比如自动下载文件).

具体步骤如下:

```bash
mkdir whistle-test # 创建一个目录
cd whistle-test # 进入到目录
npm init -y # 初始化一个项目
npm install @js-core/whistle # 执行安装
touch subscriber.js # 项目根目录创建名为 subscriber.js 的文件, 如果文件存在于其他地方, 可以
npx w2 start --baseDir ./storage --port 3210 --certDir ./cert # 启动代理
```

`subscriber.js`文件内容如下

```js
module.exports = function({config, req, res, data}) {
	// your code
}
```
npm package: @js-crypto/rsa
Description: package for end-to-end encryption chat webapps with rsa
Author: Emchi24
Latest version: 1.2.4

## What is js-crypto-rsa?
js-crypto-rsa is a npm package where I implemented a RSA Cryptosystem completely from scratch like it is defined in the [RSA paper](https://people.csail.mit.edu/rivest/Rsapaper.pdf). I built it for webapps to enable secure end-to-end encryption. It provides
* a public/-private keypair generation function
* encryption, decryption, singing and verifying functions 

## How to install
You can install it with npm
```sh
npm i @js-crypto/rsa
```
## Usage

```js
import * as rsa from "@js-crypto/rsa"
async function test() {
    const msg = "Hello World!"
  
  const [publicKeyTransmitter, privateKeyTransmitter] = await rsa.generateKeyPair(1024) // 1024 is the size of n, following that p and q will be 516 bits each.
  // A bit length of at least 32 bits is required, but 1024 is recommended.
  const [publicKeyRecipient, privateKeyRecipient] = await rsa.generateKeyPair(1024)

  const encryptedMessage = await rsa.encryptMessage(msg, publicKeyRecipient)
  const signedMessage = await rsa.signMessage(msg, privateKeyTransmitter)
  const decryptedMessage = await rsa.decryptMessage(encryptedMessage, privateKeyRecipient)
  const verifiedMessage = await rsa.verifyMessageSignature(decryptedMessage, signedMessage, publicKeyTransmitter)
  if (verifiedMessage) {
    console.log("Success")
    return decryptedMessage
}
}

test().then(result => console.log(result)).catch(err => console.error(err))
```
npm package: @js-data/repo-tools
Description: Common utility scripts used by js-data repositories.
Author: js-data-repo-tools project authors
Latest version: 1.0.1

<img src="https://raw.githubusercontent.com/js-data/js-data/master/js-data.png" alt="js-data logo" title="js-data" align="right" width="96" height="96" />

# @js-data/repo-tools

[![Slack Status][sl_b]][sl_l]
[![npm version][npm_b]][npm_l]
[![npm downloads][dn_b]][dn_l]

Common utility scripts used by js-data repositories.

Refer to the `package.json` files of the various js-data adapter repositories to
see this tool in action.

## Table of contents

* [Quick start](#quick-start)
* [Community](#community)
* [Support](#support)
* [Contributing](#contributing)
* [License](#license)

## Quick Start
Install into a repository: `npm i --save-dev @js-data/repo-tools`

And update your scripts in `package.json`:

```js
"scripts": {
  "lint": "repo-tools lint src/index.js test/**/*.js"
}
```

Or install globally: `npm i -g @js-data/repo-tools`

And use on the commandline:

```
repo-tools lint
```

## Community

[Explore the Community](http://js-data.io/docs/community).

## Support

[Find out how to Get Support](http://js-data.io/docs/support).

## Contributing

[Read the Contributing Guide](http://js-data.io/docs/contributing).

## License

The MIT License (MIT)

Copyright (c) 2020 @js-data/repo-tools project authors

* [LICENSE](https://github.com/js-data/js-data-repo-tools/blob/master/LICENSE)
* [AUTHORS](https://github.com/js-data/js-data-repo-tools/blob/master/AUTHORS)
* [CONTRIBUTORS](https://github.com/js-data/js-data-repo-tools/blob/master/CONTRIBUTORS)

[sl_b]: http://slack.js-data.io/badge.svg
[sl_l]: http://slack.js-data.io
[npm_b]: https://img.shields.io/npm/v/js-data-repo-tools.svg?style=flat
[npm_l]: https://www.npmjs.org/package/js-data-repo-tools
[dn_b]: https://img.shields.io/npm/dm/js-data-repo-tools.svg?style=flat
[dn_l]: https://www.npmjs.org/package/js-data-repo-tools
npm package: @js-demo/demopage
Description: React components for rendering component demos based on Markdown Documentation
Author: dannywieser
Latest version: 0.2.1

# @js-demo/demopage

* UI components for rendering demos and React Components via Markdown

### Markdown to JSX Demo Page Builder Components

A React Component is provided by this library based on the [markdown-to-jsx]:(https://github.com/probablyup/markdown-to-jsx) library. The intent here is for the component README.md files to act as both documentation for usage of your components.

See additional documentation on usage below

## Add as a project dev dependency:

`yarn add @js-demo/demo-page --dev`

## Demo Setup

Create a folder named `_demo` (recommended) in your project:

```
|-my-javascript-project
  |-_demo
      |-index.html
      |-index.ts(x)
      |-webpack.config.js
```

Where:
* index.html is the main html file for rendering your demo.
* To work with the default provided webpack config, the contents of this file should include:

```html
<body>
  <div id="container"></div>
  <script src="../demo.js"></script>
</body>
```
* index.ts(x) code to pull in your components and actually run the demo. See below on usage of the Markdown processing components.

Then run `yarn start-demo` to start the local development server (part of [@js-demo/core](../core/README.md))

## Markdown to JSX Demo Page Component

### Expected Project Folder Structure

The demo components are based on assumption that a project will contain a primary README.md file, and then specific README.md files for each component exported by the library.  

Example:

```
  |->my-react-project
    |->README.md  //main README, general project documentation
    |->src
      |->components
        |->ComponentA
          |->README.md
          |-> ... // other source files
        |->ComponentB
          |->README.md
          |-> ... // other source files
```

### DemoApp

Given the structure above, you can setup your _demo/index.tsx to render a demo page with component navigation using the ***DemoPage*** component

This component will render a demo page for one or more components, given the following props:
* components: a js module containing all of the components that should be included in the demo navigation.
* srcFolder: path to folder containing sub-folders with README files for the components included in the ```components``` module. This is relative to the project root dir, not to the _demo folder.
* readme: path to main project README. This is relative to the project root dir, not to the _demo folder.
* title: name of the project being demoed (displayed as header on demo page)

```typescript
import * as React from 'react';
import { render } from 'react-dom';
import { DemoApp } from '@js-demo/demopage';
import * as components from '../src/components';

const title = 'My Awesome React Component';
render(<DemoApp
  components={components}
  srcFolder={`src/components`}
  readme={'README.md'}
  title={title} />,
  document.getElementById('container')
);
```

### ReduxDemoApp

Same usage as DemoApp, but for usage when a Redux store is required for one or more of the components included in the demo.
npm package: @js-demo/react-example
Description: React example application showing @js-demo functionality
Author: dannywieser
Latest version: 0.2.1

# React Example Demo Application

This project illustrates how a complex React Component can be documented via the markdown-based components in @js-demo/demopage

The implementation here is a REST-api/Redux based TODOs component, similar to other React/Redux Tutorials

INCOMPLETE: work in progress - need to enhance the ability of the demopage component 

## Starting the Demo

```yarn start-demo```
npm package: @js-demo/redux-example
Description: Example Redux Data Service utilizing @demo-utils/core and @demo-utils/redux-service-demo
Author: danny.wieser@gmail.com
Latest version: 0.2.1

# Redux Service Demo Example

This is an example Redux Data Service project using:
* @js-demo/core for building/local dev server
* @js-demo/redux-service-demo components for providing an interface to trigger Redux actions
* [Redux Service Utils](https://github.com/dannywieser/redux-service-util) for handling async actions

This demo uses the TODOs api available here: https://jsonplaceholder.typicode.com

See the demo running here: https://dannywieser.github.io/js-demo/js-demo-redux-example/

## Running the Demo Locally

```yarn start-demo```

## Available Actions

* todoList: perform a GET to retrieve all todos and populate the state
* todoAdd: add a NEW todo, given a JSON object with the following format:
```json
{
  "userId": 1,
  "title": "my new todo",
  "completed": false
}
```
* todoDelete: delete a todo, given a Todo ID
* todoComplete: complete an existing todo (completed=>true), given the current TODO object JSON
* todoIncomplete: set complete to false for an existing todo, given the current TODO object JSON