open-index/open-npm huggingface dataset:
npm package: @miwone/midtrans-client-typescript
Description: Unofficial Midtrans Payment API Client for Typescript
Author: Azriel Akbar Ferry Ardiansyah Kusumawardhana
Latest version: 0.0.6

# Midtrans Client Typescript

Typescript version of [https://github.com/Midtrans/midtrans-nodejs-client](https://github.com/Midtrans/midtrans-nodejs-client) for personal use.
Types are incomplete, because the response of the Midtrans API is too dynamic

## Installation
```
bun add github:khilmeee/midtrans-client-typescript
```

Issues and/or PRs are welcome.
npm package: @miwt/adb
Description: you can use the ADB command in the nodejs program
Author: dongwa
Latest version: 0.10.5

# @miwt/adb

## 中文

@miwt/adb 包含 adb 所需的二进制文件，所以你可以在 nodejs 程序中运行 adb 命令，即使用户的电脑上没有安装 adb。

## en

@miwt/adb contains adb binary files, so you can use the ADB command in the nodejs program, even if ADB is not installed in the user's computer environment

# useage

```ts
import { getAdbDevices,execAdbCmdSync,execAdbCmdAsync,execAdbCmd } from '@miwt/adb'

/**
 *  get adb devices list
 *  获取 adb 连接的设备列表
 */
cosnt list = await getAdbDevices()
// list: [ { sn: '0e2e40071d40xxxx', status: 'device' } ]

/**
 *  use sync method to run adb commamnd, will return a string
 *  同步方法运行一个 adb 命令
 */
const res = execAdbCmdSync('adb devices');
// res: List of devices attached
// 0e2e40071d40xxxx        device

/**
 *  use async method to run adb commamnd, will return a string
 *  使用异步的方法运行一个 adb 命令
 */
 const res = await execAdbCmdAsync('adb devices');
// res: List of devices attached
// 0e2e40071d40xxxx        device


/**
 *  use exec method to run adb commamnd, will return a ChildProcess
 *  so than you can control the adb process more finely
 *  使用 nodejs 子进程的exec方法运行一个adb命令，并返回这个子进程，
 *  使得你可以更细腻度的方式控制 adb
 */
const adbShell = execAdbCmd('adb shell')
adbShell.stdin.write('ls /data/tmp \n')
adbShell.stdin.write('ls /data/tmp/dir \n')

/**
 *  use spawn method to run adb commamnd, will return a ChildProcess
 *  so than you can control the adb process more finely
 *  使用 nodejs 子进程的 spawn 方法运行一个adb命令，并返回这个子进程，
 *  使得你可以更细腻度的方式控制 adb
 */
const adbShell = spawnAdbCmd('adb', ['shell'])
adbShell.stdin.write('ls /data/tmp \n')
adbShell.stdin.write('ls /data/tmp/dir \n')
```

### Apk 相关（v0.7.0+）：

```ts
declare function isApkInstalled(
  sn: string,
  apkName: string
): Promise<{
  status: boolean;
  msg: string;
}>;

declare function installApk(
  sn: string,
  apkPath: string
): Promise<{
  status: boolean;
  msg: string;
}>;

declare function uninstallApk(
  sn: string,
  apkName: string
): Promise<{
  status: boolean;
  msg: string;
}>;
```

## 自定义 adb 二进制文件路径 (Custom binary file path) v0.6.0+

如果不想使用 node-adb 内置的二进制文件，可以通过设置环境变量的方式自定义 adb 的二进制文件路径。

If you do not want to use the built-in binary files of node adb, you can customize the binary file path of adb by setting environment variables.

```js
process.env.NODE_ADB_BIN_PATH = '/custom-path-to-adb';
```
npm package: @mix-visit/lite
Description: Fingerprint library for generating client fingerprint
Latest version: 1.0.14

# MixVisitJS

> Fingerprint library for generating client fingerprint

## Demo

You can visit [mixvisit.com](https://mixvisit.com) for check our demo example

## Install

At first install MixvisitJS package

```bash 
# with npm package manager
npm install @mix-visit/lite

# with yarn package manager
yarn add @mix-visit/lite

# with pnpm package manager
pnpm add @mix-visit/lite
```

## Usage

After installation, you can use the module. Import the main `MixVisit` class and the `ClientData` type.

```typescript
import { MixVisit, type ClientData } from '@mix-visit/lite';
```

First, create an instance of `MixVisit` for usage.

```typescript
const mixvisit = new MixVisit();
```

For example, collect all data except `geolocation`, with a timeout of 700 ms for asynchronous parameters. Then, use `get` method to retrieve all collected client data and save it in the `data` variable.

```typescript
await mixvisit.load({ exclude: ['geolocation'], timeout: 700 });
const data: ClientData = mixvisit.get();
```

Suppose that after we need this `geolocation` parameter, we also need the `webrtc` parameter that was not loaded due to a timeout. The `load` method with the `only` option executes with a maximum timeout of 12 seconds. This option loads only the specified parameters. After that, when requesting all data, the `geolocation` and `webrtc` parameters will be included.

```typescript
await mixvisit.load({ only: ['geolocation', 'webrtc'] });
const extendedData = mixvisit.get();
```

After you have loaded the parameters using the `load` method, the properties `loadTime` and `fingerprintHash` become available. 
The `loadTime` property stores the time of the last `load` function execution. The `fingerprintHash` property contains the generated fingerprint hash.

```typescript
const loadTime = mixvisit.loadTime;
const hash = mixvisit.fingerprintHash;
```

You can also retrieve the loaded parameters using the `get()` method. If you want to retrieve all client data, call the `get()` method without options. If you need a specific parameter, pass its name as a string. To get multiple parameters, provide an array with the required parameters.

```typescript
const allClientData = mixvisit.get();
const isDevToolsOpen = mixvisit.get('devToolsOpen');
const { location, geolocation, webrtc } = mixvisit.get(['location', 'geolocation', 'webrtc']);
```