open-index/open-npm huggingface dataset:
npm package: @hackkun/heatmap
Description: canvas热力图渲染
Author: hackkun
Latest version: 1.2.0

# `@hackkun/heatmap`

> canvas 渲染 热力图，暂不支持自定义配置，目前只暴露两个方法

## 使用

```
import { Heatmap } from '@hackkun/heatmap'
const heatmap = new Heatmap(canvasIdName)
heatmap.render(point)
heatmap.clear()
```
npm package: @hackkun/react-router
Description: react-router
Author: hackkun
Latest version: 1.2.0

# `@hackkun/react-router`

> react-router 封装

## 如何使用

- 建议使用 npx create-app create [myapp] 之间创建模版应用

```
import { renderRoutes, history, RouteOption, Link, NavLink } from '@hackkun/react-router'

renderRoutes 根据路由配置渲染组件
history 路由跳转操作
RouteOption 路由配置接口

```
npm package: @hackkun/remax-plugin-linaria
Description: remaxjs linaria 插件
Author: hackkun
Latest version: 1.2.2

# `@hackkun/remax-plugin-linaria`

> remaxjs linaria cssinjs

## 安装
```
$ npm install @hackkun/remax-plugin-linaria -D
```

## 使用

```
const linaria = require('@hackkun/remax-plugin-linaria')

module.exports = {
  plugins: [
    linaria({
      sourceMap: process.env.NODE_ENV !== 'production'
    })
  ]
}
```
npm package: @hackkun/touch
Description: 手势库
Author: hackkun
Latest version: 1.2.0

# `@hackkun/touch`

> 手势库，支持移动端和 PC 端，只支持 import 方式引用

## 介绍

- 移动端事件：start end tap singleTap doubleTap longTap drag swipe pinch rotate
- PC 端事件：start end tap singleTap doubleTap longTap drag swipe wheelStart wheel wheelEnd
- 自定义 event 扩展了:
  - drag 下 deltaX,deltaY
  - swipe 下 Left Right Up Down
  - wheel 和 pinch 下 ratio

## 使用

```
import { HackTouchMobile, HackTouchPc } from '@hackkun/touch'
const ht = new HackTouchMobile(idName)
ht.on(EventName, (Event) => {})
```
npm package: @hackkun/web-storage
Description: localStorage sessionStorage 封装
Author: hackkun
Latest version: 1.2.0

# `@hackkun/web-storage`

> localStorage sessionStorage

## Usage

```
import { SessionStorageUtil, LocalStorageUtil } from '@hackkun/web-storage'

SessionStorageUtil.set('guard', true)
LocalStorageUtil.set('guard', true)

SessionStorageUtil.get('guard')

SessionStorageUtil.set('guard', true, 多长时间过期(秒))

```
npm package: @hackler/react-native-sdk
Description: React Native SDK for Hackle
Author: Hackle
Latest version: 3.33.0

# Hackle React Native SDK

React Native SDK for Hackle A/B Tests, Feature Flags, Remote Configs, and Analytics.

## Install
```sh
npm install --save @hackler/react-native-sdk
// yarn add @hackler/react-native-sdk
```

### iOS
```sh
cd ios
pod install
```

## Usage

### initialize

```js
import { createInstance } from '@hackler/react-native-sdk';

const hackleClient = createInstance('YOUR_APP_SDK_KEY');

const App: () => React$Node = () => {
  return (
    <HackleProvider hackleClient={hackleClient}>
      <YourApp/>
    </HackleProvider>
  );
};
```

### Decide the variation

```js
function App() {
  return (
    <HackleExperiment experimentKey={42}>
      <HackleVariation variation={'A'}>
        <OldBlueButton/>
      </HackleVariation>
      <HackleVariation variation={'B'}>
        <NewRedButton/>
      </HackleVariation>
    </HackleExperiment>
  )
};
```

### Decide the Feature

```js
function App() {
  return (
    <HackleFeature featureKey={42}>
      {(isOn) =>
        (isOn ? <NewFeature/> : <OldFeature/>)
      }
    </HackleFeature>
  )
};
```

## Recodes the event

```js
const track = useTrack()
const event = {
  key: 'purchase',
  properties: {
    first_paying: false,
    item_count: 5
  }
}

<Button onPress={() => track(event)} title={'Purchase'}/>
```
npm package: @hackler/react-native-webview-plugin
Description: Hackle WebView bridge for React Native
Author: Hackle
Latest version: 1.1.0

# @hackler/react-native-webview-plugin

Hackle WebView bridge plugin for React Native. 

## Features

- Seamless integration with `react-native-webview`
- Automatic Hackle bridge injection into WebView instances


## Requirements

- react-native-webview >= 11.0.0
- @hackler/react-native-sdk >= 3.28.0

## Installation

``` shell
npm install @hackler/react-native-webview-plugin
# or, using yarn:
# yarn add @hackler/react-native-webview-plugin
```

## Quick Start

### Basic Usage

``` typescript
import { WebView } from 'react-native-webview';
import { createHackleWebViewConfig } from '@hackler/react-native-webview-plugin';

function MyWebView() {
  const config = createHackleWebViewConfig();

  return (
    <WebView
      source={{ uri: 'https://your-website.com' }}
      nativeConfig={config}
    />
  );
}
```

### With Configuration Options

``` typescript
import { WebView } from 'react-native-webview';
import { createHackleWebViewConfig } from '@hackler/react-native-webview-plugin';

function MyWebView() {
  const config = createHackleWebViewConfig({
    automaticScreenTracking: true,
    automaticEngagementTracking: true,
  });

  return (
    <WebView
      source={{ uri: 'https://your-website.com' }}
      nativeConfig={config}
    />
  );
}
```
npm package: @hackliff/mockingbird
Description: Realistic and Pareto-ish API mocking.
Author: Xavier Bruhiere
Latest version: 0.3.2

<div align="center">
	<br/>
	<br/>
	<br/>
	<br/>
	<br/>
  <a href="https://github.com/xav-b/mockingbird">
    <img alt="Mockingbird" title="GitPoint" src="./mockingbird.jpeg" width="130">
  </a>
	<br />
	<h2><a href="https://github.com/xav-b/mockingbird">Mockingbird</a></h2>
	<br />
	<br />
	<sup>
	<br />
	<br />
	Fake it until you make it - <a
	target="_blank" href="https://github.com/xav-b/mockingbird/README.md">Docs</a>.
	<br />
	</sup>
	<br />
	<br />
	<br />
</div>

---

[![Build Status](https://travis-ci.org/xav-b/mockingbird.svg?branch=master)](https://travis-ci.org/xav-b/mockingbird)
[![codecov](https://codecov.io/gh/xav-b/mockingbird/branch/master/graph/badge.svg)](https://codecov.io/gh/xav-b/mockingbird)

<br/>
<br/>

## Highlight

- [x] Declarative API description
- [x] Endpoints as code to fit all use cases
- [x] Generate data - on the fly or beforehand for more control
- [x] Easily switch scenarios to simulate different use cases
- [x] Support swagger to easily share and interact with the API contract
- [x] Emulate complex scenarios:
  - request delays
  - [todo] authentication

## In a Nutshell

```sh
# all you need is 5min - let's get started
npm install -g mockingbird

mkdir -p nasa/scenarios && cd nasa
```

**Write a scenario**

```
// in ./scenarios/build.js

const success = (req, res) => res.status(204).json({ request_id: Math.random() })

module.exports = { success }
```

**Write some config**

```yaml
title: 'NASA'
storage: 'json'

scenarios:
  - name: healthcheck

endpoints:
  - description: 'build spaceship'
    method: POST
    module: ./scenarios/build
    uri: /v2/spaceships
    scenario: async success
    latency: 4000
```

**Serve a full-featured API**: `mockingbird serve --port 4000`

**Profit**: `curl -X POST -d '{ "engine": "nuclear" }' localhost:4000/v2/spaceships`

## Installation

## Usage

### Configuration

### Scenarios

---

## Workflow

### Release

We follow a few industry standards.

- Git flow
- Semantic release
- Release notes are only generated for major releases.

### Local issue tracker

_To be progressively migrated to github issues as we release it open
source_

The project manages todos using
[taskbook](https://github.com/klaussinani/taskbook). After installing
dependencies, source `.env` to update its configuration and use the
local database.

Then use it as indicated on the github readme: `npx tb -i`.

---

<div align="center">
	<br>
	<br>
  <sub>Mockingbird - API mocker
	<br/>Built by
  <a href="http://www.xav-b.fr">Xavier Bruhiere</a> and
  <a href="https://github.com/xav-b/mockingbird/graphs/contributors">
    contributors
  </a>
	<br/>with a </i>💻<i> and some </i>🍣
</div>

<p align="center">
	<br>
	<br>
	<img
		src="https://github.com/xav-b/on-a-budget/raw/master/assets/vespa.svg"
		width="48"
		alt="TIC logo" />
	<br>
	<br>
</p>