open-index/open-npm huggingface dataset:
npm package: @giautm/react-native-branch
Description: Config plugin to auto configure react-native-branch on prebuild
Author: 650 Industries, Inc.
Latest version: 0.0.9

# config-plugins/react-native-branch

Config plugin to auto configure `react-native-branch` when the native code is generated (`expo prebuild`).

## Expo installation

> Tested against Expo SDK 44

> This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).
> First install the package with yarn, npm, or [`expo install`](https://docs.expo.io/workflow/expo-cli/#expo-install).

```sh
expo install react-native-branch @config-plugins/react-native-branch
```

After installing this npm package, add the [config plugin](https://docs.expo.io/guides/config-plugins/) to the [`plugins`](https://docs.expo.io/versions/latest/config/app/#plugins) array of your `app.json` or `app.config.js`:

```json
{
  "expo": {
    "plugins": ["@config-plugins/react-native-branch"]
  }
}
```

Next, rebuild your app as described in the ["Adding custom native code"](https://docs.expo.io/workflow/customizing/) guide.

## API

The plugin provides props for extra customization. Every time you change the props or plugins, you'll need to rebuild (and `prebuild`) the native app. If no extra properties are added, defaults will be used.

- `apiKey` (_string_): Branch API key. Optional.
- `iosAppDomain` (_string_): App Domain for iOS. Optional.

#### Example

```json
{
  "expo": {
    "plugins": [
      [
        "@config-plugins/react-native-branch",
        {
          "apiKey": "key_live_f9f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8",
          "iosAppDomain": "awesome-alternate.app.link",
        }
      ]
    ]
  }
}
```
npm package: @gibass/gzoom-move
Description: Zoom and Move a DOM element with javascript
Author: Gino Rakotozafy
Latest version: 1.0.4

# gZoomMove.js

A js module for zooming and dragging DOM elements. Touch screen has support.

[Try it on demo](https://gibass.github.io/gZoomMove.js/)

## Install

You can install the module via npm.

```bash
  npm install @gibass/gzoom-move --save
```

## Usage

```javascript
import GZoomMove from '@gibass/gzoom-move';

// Basic usage with default options
new GZoomMove(document.querySelector('#zoom'))
```


### Options

```javascript
import GZoomMove from @gibass/gzoom-move;

new GZoomMove(document.querySelector('#zoom', {
    move: true, // enable drag action
    zoom: true, // enable zoom action
    scale: {min: 0.1, max: 4}, // scale min and max value for zooming
    controls: { // action control
        zoomIn : document.querySelector('.control-zoom-in'),
        zoomOut : document.querySelector('.control-zoom-out'),
        reset : document.querySelector('.control-reset')
    },
})
```
---

#### `move` option
To enable drag action on the DOM Element, this value need to be `true`
* Default value => `true`

---

#### `zoom` option
To enable zoom action on the DOM Element, this value need to be `true`
* Default value => `true`

---

#### `scale` option
Define the max and min values for scale properties of css transform style.  
* Default value => `{ min: 0.1, max: 4 }`
* If `min` value isn't defined like: `scale: {max: 6}`, it take the default value like `{ min: 0.1, max: 6 }`
* if `max` value is missing like `scale: {min: 0.5}`, it take max integer number `Number.MAX_SAFE_INTEGER`, like an infinite zoom

---

#### `controls` option
To specify the element control action to `Zoom` / `UnZoom` / `Reset` 
* Default value => `controls: { zoomIn: false, zoomOut: false, reset: false }`
* `zoomIn` : Zoom DOM element with scale `0.5` step
* `zoomOut` : UnZoom DOM element with scale `-0.5` step
* `reset` : reset the DOM element to the initial appearance

---

Licensed under the MIT License.
npm package: @gibbitz/react-build-config
Description: Build configuration used for gibbitzStudios Reactjs projects
Author: Paul Fox
Latest version: 1.0.2-beta

# react-build-config
React Build with Webpack et al. This is currently a WIP. As I work through this I will remove the beta flag and better document for future use.

## Usage

```bash
  $ npx @gibbitz/react-build-config create
```

## Features
  * sourcemaps work on prod -- make prod build and run local server while debugging prod
  * class properties
  * .babelrc is used by CLI ES6 Modules
  * ./config/babelrc.js is used by webpack
  * git and github commit support via husky
  * Expandable and modifyable -- childDevDependencies allows configurations for other frameworks (vue, angualar etc.)

## Issues
  * Originally built for work in older NPM/Node
npm package: @gibme/arp
Description: A cross-platform arp helper
Author: Brandon Lehmann
Latest version: 22.0.0

# @gibme/arp

[![CI/CD](https://github.com/gibme-npm/arp/actions/workflows/ci.yml/badge.svg)](https://github.com/gibme-npm/arp/actions/workflows/ci.yml)
[![NPM](https://img.shields.io/npm/v/@gibme/arp)](https://www.npmjs.com/package/@gibme/arp)
[![License](https://img.shields.io/npm/l/@gibme/arp)](https://github.com/gibme-npm/arp/blob/master/LICENSE)

A simple, cross-platform ARP helper for Node.js. Give it an IP address on your local network and it'll hand back the MAC address — no native modules, no fuss.

Works on **Linux**, **macOS**, and **Windows**.

## Installation

```bash
yarn add @gibme/arp
# or
npm install @gibme/arp
```

Requires **Node >= 22**.

## Quick Start

```typescript
import ARP from '@gibme/arp';

// Look up a MAC address by IP
const mac = await ARP.lookup('192.168.1.1');
console.log(mac); // e.g. "AA:BB:CC:DD:EE:FF"
```

## API

### `ARP.lookup(ip, separator?)`

Resolves an IP address to a MAC address on your local network. It pings the target first (to populate the ARP table), then reads the result from the system ARP cache.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `ip` | `string` | — | The IPv4 or IPv6 address to look up |
| `separator` | `string` | `':'` | Character between MAC octets |

**Returns** an uppercase MAC string (e.g. `AA:BB:CC:DD:EE:FF`).

**Throws** if the IP is invalid, the address isn't found in the ARP table, or the platform is unsupported.

```typescript
await ARP.lookup('192.168.1.1');       // "AA:BB:CC:DD:EE:FF"
await ARP.lookup('192.168.1.1', '-');  // "AA-BB-CC-DD-EE-FF"
await ARP.lookup('192.168.1.1', '');   // "AABBCCDDEEFF"
```

### `ARP.get_gateway_ipv4()`

Returns your default gateway's IPv4 address, or `undefined` if one isn't available. Handy for discovering the local router so you can pass it straight into `lookup()`.

```typescript
const gateway = await ARP.get_gateway_ipv4();
if (gateway) {
    const mac = await ARP.lookup(gateway);
    console.log(`Router MAC: ${mac}`);
}
```

### `ARP.get_gateway_ipv6()`

Same as above, but for IPv6.

## How It Works

Under the hood, `lookup()` spawns two system commands in sequence:

1. **`ping`** — sends a single ICMP packet to ensure the target IP is in the local ARP cache
2. **`arp`** — reads the system ARP table and extracts the MAC address for the given IP

Each spawned process has a 10-second timeout to avoid hanging on unresponsive hosts. Platform-specific flags are handled automatically (`-c 1` on Linux/macOS, `-n 1` on Windows, etc.).

The gateway functions use the [`default-gateway`](https://www.npmjs.com/package/default-gateway) package to query the system routing table.

## Named Exports

In addition to the default export, each function is available as a named export:

```typescript
import { lookup, get_gateway_ipv4, get_gateway_ipv6 } from '@gibme/arp';
```

## Documentation

Full generated API docs are available at [https://gibme-npm.github.io/arp/](https://gibme-npm.github.io/arp/).

## License

[MIT](LICENSE)
npm package: @gibme/base32
Description: A simple base32 helper
Author: Brandon Lehmann
Latest version: 22.0.1

# @gibme/base32

A simple, lightweight Base32 encoding/decoding library for Node.js using the standard [RFC 4648](https://datatracker.ietf.org/doc/html/rfc4648) alphabet (`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`).

## Requirements

- Node.js >= 22

## Installation

```bash
npm install @gibme/base32
```

or

```bash
yarn add @gibme/base32
```

## Usage

```typescript
import Base32 from '@gibme/base32';

// Encode a hex string
const encoded = Base32.encode(
    '02c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cfeb05f9d2');

console.log(encoded);
// ALAN5UV4D4JQL6YPVLC6NQB64OQZEQRUTBKCPNQWPSSWTUJ56Q2472YF7HJA====

// Decode back to a Buffer
const decoded = Base32.decode(encoded);

console.log(decoded.toString('hex'));
// 02c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cfeb05f9d2
```

### Encoding without padding

```typescript
const encoded = Base32.encode(data, false);
// ALAN5UV4D4JQL6YPVLC6NQB64OQZEQRUTBKCPNQWPSSWTUJ56Q2472YF7HJA
```

### Encoding a Buffer or Uint8Array

```typescript
const buf = Buffer.from([0x48, 0x65, 0x6c, 0x6c, 0x6f]);
const encoded = Base32.encode(buf);
// JBSWY3DP
```

### Encoding a string with a specific encoding

```typescript
const encoded = Base32.encode('Hello', true, 'utf-8');
```

## API

### `Base32.encode(data, padding?, encoding?)`

| Parameter | Type | Default | Description |
|---|---|---|---|
| `data` | `string \| Uint8Array \| Buffer` | | The data to encode |
| `padding` | `boolean` | `true` | Whether to pad the output with `=` |
| `encoding` | `BufferEncoding` | `'hex'` | How to interpret string input |

Returns a Base32-encoded `string`.

### `Base32.decode(encoded)`

| Parameter | Type | Description |
|---|---|---|
| `encoded` | `string` | A Base32-encoded string (padded or unpadded) |

Returns a `Buffer` containing the decoded data. Throws `TypeError` on invalid characters. Decoding is case-insensitive.

## Documentation

Full API documentation is available at [https://gibme-npm.github.io/base32/](https://gibme-npm.github.io/base32/)

## License

MIT
npm package: @gibme/base58
Description: Base58 Library
Author: Brandon Lehmann
Latest version: 22.0.0

# @gibme/base58

A lightweight TypeScript Base58 encoding/decoding library with support for both standard Base58 and CryptoNote Base58 formats.

## Installation

```bash
yarn add @gibme/base58
```

or

```bash
npm install @gibme/base58
```

**Requires Node.js >= 22**

## Documentation

Full API documentation is available at [https://gibme-npm.github.io/base58/](https://gibme-npm.github.io/base58/)

## Usage

### Standard Base58

```typescript
import Base58 from '@gibme/base58';

// Encode from hex string
const encoded = Base58.encode('02c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cfeb05f9d2');
console.log(encoded);
// => 6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

// Encode from Buffer or Uint8Array
const encodedFromBuffer = Base58.encode(Buffer.from('deadbeef', 'hex'));
console.log(encodedFromBuffer);

// Decode back to Buffer
const decoded = Base58.decode(encoded);
console.log(decoded.toString('hex'));
```

### CryptoNote Base58

CryptoNote Base58 is a variant used by CryptoNote-based cryptocurrencies that encodes data in fixed-size blocks.

```typescript
import Base58 from '@gibme/base58';

const encoded = Base58.cn_encode(
    '9df6ee01c179d13e2a0c52edd8b821e2d53d707e47ddcaaf696644a45563564c2934bd50' +
    'a8faca00a94c5a4dcc3cf070898c2db6ff5990556d08f5a09c8787900dcecab3b77173c1');
console.log(encoded);
// => TRTLv2RUL7X82vLeXnFmF7cfhKJ6UeiJzJdWQf556DEb7tkVqDAs7FVVKQVqkZqY47Q1PFwne2jZNKEn1gEeTWrb3JxG7HaMU4Q

const decoded = Base58.cn_decode(encoded);
console.log(decoded.toString('hex'));
```

## API

### `Base58.encode(data: string | Uint8Array | Buffer): string`

Encodes the given data into a standard Base58 string. String input is treated as hex-encoded.

### `Base58.decode(encoded: string): Buffer`

Decodes a standard Base58 string back into a Buffer.

### `Base58.cn_encode(data: string | Uint8Array | Buffer): string`

Encodes the given data into a CryptoNote Base58 string. String input is treated as hex-encoded.

### `Base58.cn_decode(encoded: string): Buffer`

Decodes a CryptoNote Base58 string back into a Buffer.

## License

MIT - See [LICENSE](LICENSE) for details.
npm package: @gibme/cache
Description: A caching helper wrapped around various cache types
Author: Brandon Lehmann
Latest version: 22.0.0

# @gibme/cache

A caching helper that provides a unified interface across multiple cache backends.

## Features

* Common async API across all backends (set, get, del, mset, mget, mdel, take, keys, list, clear, ttl)
* Configurable TTL with automatic expiration
* Generic key/value types with JSON serialization
* EventEmitter support for cache events
* Backend systems supported:
  * [node-cache](https://npmjs.org/package/node-cache) (in-memory)
  * [redis](https://npmjs.org/package/redis)
  * SQL databases via [@gibme/sql](https://npmjs.org/package/@gibme/sql) (MySQL, MariaDB, PostgreSQL, SQLite)

## Requirements

* Node.js >= 22

## Installation

```bash
npm install @gibme/cache
```

## Documentation

[https://gibme-npm.github.io/cache](https://gibme-npm.github.io/cache)

## Usage

### Memory

```typescript
import Memory from '@gibme/cache/memory';

const client = new Memory({ stdTTL: 600 });

await client.set('somekey', { some: 'value' });

const value = await client.get('somekey');

if (value) {
    console.log(value);
}

await client.disconnect();
```

### Redis

Redis configuration can be supplied directly or via environment variables (`REDIS_HOST`, `REDIS_PORT`, `REDIS_USERNAME`, `REDIS_PASSWORD`).

```typescript
import Redis from '@gibme/cache/redis';

const client = new Redis({
    host: 'localhost',
    username: 'someuser',
    password: 'somepassword'
});

await client.set('somekey', { some: 'value' });

const value = await client.get('somekey');

if (value) {
    console.log(value);
}

await client.disconnect();
```

### Database

```typescript
import Database from '@gibme/cache/database';

const client = new Database({
    stdTTL: 600,
    tableName: 'cache'
});

await client.connect();

await client.set('somekey', { some: 'value' });

const value = await client.get('somekey');

if (value) {
    console.log(value);
}

await client.disconnect();
```

## API

All backends implement the same abstract `Cache` interface:

| Method | Description |
|---|---|
| `set(key, value, ttl?)` | Store a value with optional TTL (seconds) |
| `get(key)` | Retrieve a value |
| `del(key)` | Delete a key |
| `includes(key)` | Check if a key exists |
| `take(key)` | Get a value and delete it in one operation |
| `mset(keys, values, ttl?)` | Set multiple key/value pairs |
| `mget(keys)` | Get multiple values |
| `mdel(keys)` | Delete multiple keys |
| `keys()` | List all keys |
| `list()` | Get all entries as a Map |
| `clear()` | Delete all entries |
| `ttl(key, ttl)` | Update a key's TTL |
| `getTtl(key)` | Get remaining TTL in seconds |
| `connect()` | Establish backend connection |
| `disconnect()` | Close backend connection |
| `isReady` | Whether the backend is connected |

## License

MIT