open-index/open-npm huggingface dataset:
npm package: @quvels/use-mask
Description: Mask hook for React
Author: Oscar Yáñez
Latest version: 1.0.3

# useMask

## Install

```sh
npm install @quvels/use-mask
```

## Quick start

```typescript
import { ChangeEvent, useState } from 'react';
import { useMask } from '@quvels/use-mask';

function App() {
  const [maskedValue, setMaskedValue] = useState('');
  const [realValue, setRealValue] = useState('');

  const mask = useMask('(###) ###-####', {
    '#': /[0-9]/,
  });

  const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
    const [maskedValue, realValue] = mask(event.target.value);
    setMaskedValue(maskedValue);
    setRealValue(realValue);
  };

  return (
    <div className='App'>
      <h1>useMask</h1>
      <div className='card'>
        <img src='logo.svg' alt='useMask Logo' title='useMask' />
        <input type='text' onChange={handleChange} value={maskedValue} />
        <div>
          <h2>Masked value:</h2>
          <p>" {maskedValue} "</p>
          <h2>Real value:</h2>
          <p>" {realValue} "</p>
        </div>
      </div>
    </div>
  );
}

export default App;
```
**useMask**
```typescript
useMask(regex: string, patterns?: Patterns) => (string) => [string, string]
```
| Props      | Description                                          |
| :----:     | :------------                                        |
| regex      | A string value with a regex pattern used for masking |
| patterns?  | A pattern configuration                              |

***Return***
```typescript
(string) => [string, string]
```
A function that recevies a string and returns a tuple that the first value is the "masked value" and the second is the "real value"

**Tokens**

| Token  | Description                          |
| :----: | :------------                        |
| *      | zero or more                         |
| {n}    | n times                              |
| {l, m} | at least l times and maximum m times |

### Examples

**Phone number**
```typescript
useMask('(###) ###-####', {
    '#': /[0-9]/,
});
```

**Phone number with country code**
```typescript
useMask('+#{1,3} (###) ###-####', {
    '#': /[0-9]/,
});
```

**Card number**
```typescript
useMask('####-####-####-####', {
    '#': /[0-9]/,
});
```

## Development

**Installation**

```sh
npm run install
```

**Running demo**

```sh
npm run demo
```

**Running unit tests**

```sh
npm run test
```
npm package: @quweren/aiwess-style
Description: Web style for REACT Apps based on Bootstrap and neumorphism. Designed kit by Andrey Mishurenkov
Latest version: 0.0.1

# Aiwess Style
for those who love best look of application style


## Usage
```javascript
import Panel from 'quweren/aiwess-style';
...

render(){
  ...

  <Panel >
    <h1>I love neuromorphism</h1>
  </Panel>
}
```

### Clarification
read full documentation


## v0.0.1
* First release
npm package: @quxiy/status-checker
Description: A robust status checker for FiveM servers and web endpoints.
Author: quxiy
Latest version: 1.0.2

# Universal Status Checker
A robust, lightweight, and batch-processing status monitor for FiveM servers, Websites, and APIs.
Built with TypeScript, zero-dependencies (core), and designed for high performance.

# 🚀 Features
- Batch Processing: Scans nodes in chunks to prevent network congestion.
- Universal Support: Works with FiveM (JSON), HTTP/HTTPS Websites, and APIs.
- Caching System: Built-in TTL caching to reduce load on target servers.
- Dev-Friendly: JSDoc support and strict typing.
- Safety Mode: Blocks local/private IPs by default (configurable).

# 📦 Installation
```
npm install @quxiy/status-checker
```

⚡ Quick Start
```js
const { Monitor } = require('@quxiy/status-checker');

// 1. ตั้งค่า Node ที่ต้องการเช็ค
const nodes = [
    { id: 'sv-1', type: 'fivem', addr: 'sv1.stcom.me:30120', tag: 'Roleplay', name: 'Server 1' },
    { id: 'web-1', type: 'website', addr: 'https://google.com', tag: 'Web', name: 'Google' }
];

// 2. สร้าง Monitor instance
const monitor = new Monitor(nodes, {
    wait: 5000, // รอ 5 วิ
    debug: true // เปิดดู Log
});

// 3. แจ้งเตือนเมื่อสถานะเปลี่ยน
monitor.on('status-change', (node, oldState, newState) => {
    console.log(`[ALERT] ${node.name} state changed from ${oldState.toUpperCase()} to ${newState.toUpperCase()}!`);
});

// 4. ดูรายงานเมื่อเช็คเสร็จ
monitor.on('scan-end', (report) => {
    console.log(`Scan completed at ${report.time}`);
});

// 5. เริ่มทำงาน (เช็คทุกๆ 60 วินาที)
monitor.start(60000);
```

# ⚙️ Configuration
| Option    | Type    | Default | Description |
| -------- | ------- | ------- | ----------- |
| wait     | number  | 5000    | Request timeout in milliseconds. |
| ttl      | number  | 10000   | Cache duration in milliseconds. |
| batch    | number  | 10      | Number of concurrent requests. |
| unsafe   | boolean | false   | Set `true` to allow scanning localhost/private IPs. |
| retries  | number  | 1       | Number of retry attempts before marking as down. |
| debug    | boolean | false   | Enable verbose logging to console for debugging. |
| headers  | object  | {}      | Global custom HTTP headers (e.g., User-Agent). |


# 📝 License
MIT © Likit Phongsakaew