open-index/open-npm huggingface dataset:
npm package: @inocan/browser-sniffer
Description: Sniff out browser traits/characteristics from within the browser or with the user agent string
Author: Ken Snyder
Latest version: 0.2.1

# Browser Sniffer
> Detects features and identifying information about a given device

## Installation

```sh
# npm
npm i --save @inocan/browser-sniffer
# yarn
yarn add @inocan/browser-sniffer
```sh

## Usage
All exported symbols are provided with full typing so you can explore all the capabilities interactively but the most common usages are:

### Get Full Profile

By using the `getProfile()` you get all _non-transient_ detection possible while running from within the
browser:

```ts
import { getProfile } from '@inocan/browser-sniffer';
const profile = getProfile();
```

### Detect whether online

The browser does provide an api to synchronously identify whether it is online but it is notorious for giving false positives when in LiFi areas. With the `isOnline()` function you will get not only what the browser API tells you but it will attempt a quick HEAD network request to Google to validate that indeed the network is reachable. If you want to replace the Google URL with your own
you can do that too.

```ts
import { isOnline } from '@inocan/browser-sniffer';
const status = await isOnline();
```

> Note: because an actual network request is involved it is _asynchronous_ but it will respond in no more than 500ms (this can be configured too)

### Get a Browser Fingerprint

The `deviceFingerprint()` provides a hash code which is intended to provide useful identification of a particular device. To be useful, however, it must only use variables which are considered to be "static". For instance, the browser _version_ is NOT static ... over time the user will upgrade
the this. However, the browser vendor _may_ be considered static depending on the circumstances of how you're tracking "devices". A better indicator of a "device" is the operating system's name (not the version). Also the "availableWidth" of the screen can often help in making a device more specific.

This function will by default use the following variables to build the hash:

- Operating system name
- Available Resolution
- hasTouchSupport
- hasCanvasSupport

This may be enough for your purposes but in many cases, you may have contextual information that you want to add to the fingerprint to help facilitate it's uniqueness. For instance, if you know a user's ID then adding this will ensure that their device will never be mixed with another users.

```ts
import { deviceFingerprint, getBrowser } from '@inocan/browser-sniffer';
const fingerprint = deviceFingerprint(userId, getBrowser().name);
```

## Modules and Sizing

This library is exported in both ES and CJS and therefore is tree-shakable if you are using a modern build system. From an import
npm package: @inoch/react-address-picker
Description: 基于腾讯位置服务api的移动端地址选择器
Author: phill
Latest version: 0.1.1

# react-address-picker

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

基于react的地址选择器

## 演示地址

## props

- getChildren - 获取下一级地址数据的方法，应该返回一个promise，resolve的值是地址信息数组。
- active - 指定一个布尔值控制是否打开选择器
- address - 指定一个数组为所选的地址
- onAddressChange - 订阅一个地址变更事件


## 位置数据来源

[腾讯位置服务](URL 'http://lbs.qq.com/webservice_v1/index.html')

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo

[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.org/package/npm-package

[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo
npm package: @inodaf/use-carousel
Description: A React Hook for creating interactive presentations & sliders.
Author: Isac Fadoni
Latest version: 0.2.3

# 🎠 use-carousel
A [React Hook](https://reactjs.org/docs/hooks-intro.html) for easily creating interactive presentations.

- **Styleless:** Composable properties ready for any situation with no enforced styling rules.
- **Nano-weight:** Less than `1.60kb` minified and `650b` compressed with `gzip`.

## Installation
The package is available through the npm registry for easy installation.

```sh
yarn add @inodaf/use-carousel
```

## Basic Usage

Import the `useCarousel` hook function.
```ts
import { useCarousel } from '@inodaf/use-carousel'
```

Define the carousel items. They can be of any kind, even JavaScript primitives. In this case we defined some image elements with dog pictures.
```ts
const items = [
  <img src="cute-dogo.png" alt="My dog" />,
  <img src="cute-dogo-2.png" alt="My other dog" />
];
```

Create a component and attach the `useCarousel` hook into it. Now reference the `items` on the hook's first argument.
```tsx
function Gallery() {
  const { carouselItem, previous, next } = useCarousel(items)

  return (
    <>
      <div>{carouselItem}</div>
      <button onClick={previous}>Previous</button>
      <button onClick={next}>Next</button>
    </>
  )
}
```