open-index/open-npm huggingface dataset:
npm package: @narwhallab/mufin
Description: Bluetooth based IoT connection library
Author: octomarine
Latest version: 0.0.13

# Mufin
***Bluetooth based IoT connection library***

## Using mufin
### Requirements
- Rust and Cargo
- Nodejs and Npm

### Methods
1. Install mufin with `npm install @narwhallab/mufin`
2. use `@narwhallab/mufin` in nodejs
```ts
import mufin from '@narwhallab/mufin'

mufin.scanBluetooth().then(() => {
    mufin.connectBluetooth("<btaddr>").then(async () => {
        await mufin.writeBluetooth("<btaddr>", "My Message");
        await mufin.disconnectBluetooth("<btaddr>")
    })
})
```

## TODO
- Reading from bluetooth
npm package: @narwhalswap/sdk
Description: 🛠 An SDK for building applications on top of Narwhalswap.
Latest version: 3.0.24

# Narwhalswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
<!-- [![Actions Status](https://github.com/narwhalswap/narwhalswap-sdk/workflows/CI/badge.svg)](https://github.com/narwhalswap/narwhalswap-sdk) -->
<!-- [![npm version](https://img.shields.io/npm/v/@narwhalswap/sdk/latest.svg)](https://www.npmjs.com/package/@narwhalswap/sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@narwhalswap/sdk/latest.svg)](https://bundlephobia.com/result?p=@narwhalswap/sdk@latest) -->

Common library used accross for Narwhalswap Frontend implementation [https://github.com/narwhalswap/narwhalswap-interface](https://github.com/narwhalswap/narwhalswap-interface).

In-depth documentation on this SDK is available at [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/narwhalswap/narwhalswap-sdk.git
```

Move into the uniswap-sdk working directory

```sh
cd narwhalswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @nas-user/app-config
Description: Cascading configuration for web application
Author: Oleg Orlov
Latest version: 1.3.0

# @nas-user/app-config

> Cascading configuration for web application

## Install

```
npm install --save @nas-user/app-config
```

## Repository

https://github.com/Graf009/app-config.git

## Usage

Loads configuration files from a `config` folder in your project root.

- `default` is always loaded if it exists
- If you specify `NODE_ENV=production` then both `production` and `default` are loaded, with `production` taking precedence.
- Any valid JS extension can be used for config - JS, json, etc.
  - To load another extension, register it before you require this module

```js
import config from '@nas-user/app-config'
```

For working in browser add AppConfigPlugin in webpack config.

```js
import AppConfigPlugin from '@nas-user/app-config/webpack'

var webpackConfig = {
  plugins: [
    new AppConfigPlugin(),
  ]
}
```
npm package: @nas-user/babel-preset-eagle
Description: Babel preset used by Eagle
Author: Oleg Orlov
Latest version: 1.1.0

# @nas-user/babel-preset-eagle

This package includes the Babel preset used by Eagle

## Usage

If you want to use this Babel preset in a project, you can install it with following steps.

First, [install Babel](https://babeljs.io/docs/setup/).

Then create a file named `.babelrc` with following contents in the root folder of your project:

  ```js
  {
    "presets": ["eagle"]
  }
  ```
## Repository

https://github.com/Graf009/babel-preset-eagle.git
npm package: @nas-user/eslint-config-eagle
Description: Shared ESLint config
Author: Oleg Orlov
Latest version: 1.4.2

# @nas-user/eslint-config-eagle

Shared ESLint config.

## Usage

Our default export contains all of our ESLint rules, including EcmaScript 6+
and React. It requires `eslint`, `eslint-plugin-react`, `eslint-plugin-jsx-a11y`, and `eslint-plugin-import`.

1. `npm install --save-dev @nas-user/eslint-config-eagle eslint-plugin-react eslint-plugin-import eslint-plugin-jsx-a11y eslint`
2. add `"extends": "@nas-user/eslint-config-eagle"` to your .eslintrc

## Repository

https://github.com/Graf009/eslint-config-eagle.git
npm package: @nas-user/glob-loader
Description: webpack loader to load files at once with glob
Author: Ryohei Ikegami
Latest version: 0.4.0

# @nas-user/glob-loader

webpack loader to load files at once with glob

## Install

```
npm install --save-dev @nas-user/glob-loader
```

## Repository

Change: export object instead of an array

https://github.com/Graf009/glob-loader.git

## Use

* Create a glob pattern file (example: `dir.pattern`)
* Write the pattern of the files that you want to require
* Require it with `glob-loader`

### `dir.pattern` file

Pattern is relative to the file directory.

```
./dir/**/*.js
```

### Require patterns

```js
var modules = require("glob-loader!./dir.pattern");
```

## TODO

* source map
npm package: @nas-user/jetpack
Description: Nifty convenience wrappers that speed up your daily work
Author: Oleg Orlov
Latest version: 1.1.0

# @nas-user/jetpack

> Nifty convenience wrappers that speed up your daily work

## Install

```sh
npm install --save @nas-user/jetpack
```

## Repository

https://github.com/Graf009/jetpack.git

## Pack

- `linkState` - A helper function to use LinkedStateMixin for ES6 React Components
- `d3` - for d3.js
- `ExecutionEnvironment` - detect available features
npm package: @nas-user/jetpack-dom
Description: Nifty convenience wrappers that speed up your daily work
Author: Oleg Orlov
Latest version: 2.0.1

# @nas-user/jetpack-dom

> Nifty convenience wrappers that speed up your daily work

`ExecutionEnvironment` - detect available features

## Install

```sh
npm install --save @nas-user/jetpack-dom
```

## Repository

https://github.com/Graf009/jetpack-dom.git
npm package: @nas-user/tango
Description: Toolkit for building redux/react applications
Author: Oleg Orlov
Latest version: 1.3.2

# @nas-user/tango

> Toolkit for building redux/react applications

## Install

```js
npm install --save @nas-user/tango react react-dom
```

## Repository

https://github.com/Graf009/tango.git

## Core Ideals

- Everything should be immutable
- Everything should work easily and be simple to understand
- Spend time building applications rather than wiring modules together

## Implementation

- Use ES6
- Central store is completely immutable via Immutable.js
  - And PropTypes include Immutable.js types by default
- Easy to understand objects instead of crazy functional composition
  - Before: `createStore(combineReducers(reducers), {}, compose(applyMiddleware(middleware), devtools))`
  - After: `createStore({middleware: middleware, reducers: reducers, initialState: {}})`
- Bundle groups of middleware, enhancers, and reducers together as "plugins"
  - One line of code to add a router and etc. to your project
  - High quality ecosystem of modules guaranteed to work well with eachother
- Namespaced/nested actions and reducers
  - `todos.create` as an action corresponds to a `todos.create` reducer and `todos` in the store
- Default enhancers
  - redux-batched-subscribe
- Default middleware
  - redux-thunk
  - devtools
- Dead simple Component API
  - Use ES6 classes
  - Bring back sane behavior
    - Bind component functions scope to class (like old react)
  - Never write mapDispatchToProps or mapStateToProps

## Documentation

**Now**, check out the [documentation](https://github.com/Graf009/tango/tree/master/docs) to get started!
npm package: @nas-user/tango-data-view
Description: Lightweight data view abstraction for managing fetching/loaded/errored states for remote data
Author: Oleg Orlov
Latest version: 1.2.0

# @nas-user/tango-data-view

Simple component for managing asynchronous data dependency states. If you have a view with 3 base states: fetching, loaded, and errored - this will help you clean up a lot of boilerplate.
Works out of the box with `@nas-user/rumba` for doing API stuff.

## Install

```js
npm install --save @nas-user/tango-data-view
```

## Repository

https://github.com/Graf009/tango-data-view.git

## API

You can define three functions:

- `resolveData`
  - Defaults to doing nothing
  - Triggered on mount/update when any `storeProps` (what you give to tango's connect function) are not fulfilled
  - Responsible for dispatching any actions to fetch data
- `renderData`
  - Defaults to displaying nothing
  - Triggered when all storeProps are resolved
  - Receives a data object as an argument
  - Responsible for rendering the data
- `renderLoader`
  - Defaults to displaying nothing
  - Triggered when all storeProps are not resolved
  - Responsible for rendering a loader
- `renderErrors`
  - Defaults to displaying nothing
  - Triggered when any storeProp value has an `error` attribute
  - Receives an errors Map as an argument
    - Key is the storeProp
    - Value is the error object
  - Responsible for rendering any errors that happened while fetching data

## Example

```js
import React from 'react'
import { PropTypes, connect } from '@nas-user/tango'
import DataComponent from '@nas-user/tango-data-view'
import actions from 'core/actions'

@connect({
  users: 'subsets.users'
})
export default class UserList extends DataComponent {
  static propTypes = {
    users: PropTypes.iterable
  }

  resolveData() {
    actions.api.users.find({ subset: 'users' })
  }

  renderData({ users }) {
    return (
      <div>
        <div>Users</div>
        {
          users.map(user =>
            <Media key={user.get('id')} align="center" img={user.get('image')}>
              <Heading level={3}>{user.get('name')}</Heading>
            </Media>
          )
        }
      </div>
    )
  }

  renderErrors(errors) {
    return (
      <div>
        <div>Users</div>
        <div>Failed to Load!</div>
        {
          errors.map((err, field) =>
            <Media key={field} align="center">
              <Heading level={3}>{field}</Heading>
              <Text>{err.message}</Text>
            </Media>
          ).toArray()
        }
      </div>
    )
  }
}
```
npm package: @nas-user/tango-router
Description: Dead simple router for @nas-user/tango
Author: Oleg Orlov
Latest version: 1.4.0

# @nas-user/tango-router

> Dead simple router for @nas-user/tango

Wraps react-router + react-router-redux and provides the simplest API possible. Built for @nas-user/tango, but will work in any redux application.

## Install

```
npm install --save @nas-user/tango-router
```

## Repository

https://github.com/rtobon/tango-router.git

## Get Started

- Import in the module
- Add it to your store's plugins
- Router state is now under `router` in your store

### Example

```js
import { createStore } from '@nas-user/tango'
import * as router from '@nas-user/tango-router'

// you get the point
let store = createStore({
  plugins: [ router ]
})
```

## API

- history
- actions
- reducers
- middleware
- hook

### Components

These are all re-exported from react-router, the behavior is exactly the same. See the [react-router documentation](https://github.com/reactjs/react-router/tree/master/docs) if you haven't used these before.

- Router
- Route
- Link
- Redirect
- IndexRoute
- IndexLink
- IndexRedirect

#### Auth

   handling authentication

##### Props

- `store` - Redux store
- `options` - Options Object

##### Options Object Keys

- `authSelector(state): authData` \(*Function*): A state selector for the auth data.
- `redirectAction` \(*Function*): action for redirecting the user.
- `[failureRedirectPath]` \(*String*): Optional path to redirect the browser to on a failed check. Defaults to `/login`
- `[predicate(authData): Bool]` \(*Function*): Optional function to be passed the result of the `authSelector` param.
If it evaluates to false the browser will be redirected to `failureRedirectPath`.
- `[allowRedirectBack]` \(*Bool*): Optional bool on whether to pass a `redirect` query parameter to the `failureRedirectPath`