open-index/open-npm huggingface dataset:
npm package: @letis009/node-red-contrib-tdn-hcp-api
Description: Node-RED nodes to call HCP
Author: Switch Point
Latest version: 2.1.0

password DQ*'5HZ-TMAq5UD4
AK 21830011
SK LnHugQEbXLkUJstdyIBY
# HIKVISION CENTRAL PRO
## Install main package and openAPI 
### in web client config
go to system enable openAPI
ensure all access systems are created
ie. access groups, personal, custom field under additional information is set to public and 
### Create openAPI user and Authorize

#### PS Scripts
Get person list 
```
node app.js /artemis/api/resource/v1/person/advance/personList '{"pageNo":1,"pageSize":2}'
```
Get Person Info by ID
```
node app.js /artemis/api/resource/v1/person/personId/personInfo '{"personId":\"1\","appendInfo":[6]}'
```

Get access groups
```
node app.js /artemis/api/acs/v1/privilege/group '{"pageNo":1,"pageSize":2,"type":1}'
```

Add Group to person by personId ( NOT CODE )
```
node app.js /artemis/api/acs/v1/privilege/group/single/addPersons '{"privilegeGroupId":"1","type":1,"list":[{"id":"1"}]}'
```

Remove Access from personID
```
node app.js /artemis/api/acs/v1/privilege/group/single/deletePersons '{"privilegeGroupId":"1","type":1,"list":[{"id":"1"}]}'
```

edit customField for person 1
```
node app.js /artemis/api/resource/v1/person/personId/customFieldsUpdate '{\"personId\":\"1\",\"list\":[{\"id\":\"5\",\"customFiledName\":\"podScanId\",\"customFieldType\":0,\"customFieldValue\":\"\"}]}'
```

### Event suscription
```
node app.js /artemis/api/eventService/v1/eventSubscriptionByEventTypes '{\"eventTypes\":[197127],\"eventDest\":\"http://192.168.0.25:80/hikProAPI\",\"token\":\"qscasd\",\"passBack\":1}'
```
npm package: @letis009/node-red-contrib-tdn-report
Description: TDN Deposit Report Formatter Node
Author: Switch Point
Latest version: 1.0.3

# node-red-contrib-tdn-report

A Node-RED custom node to generate formatted TDN reports.

## Installation

```bash
cd ~/.node-red
npm install /full/path/to/node-red-contrib-tdn-report
```

Restart Node-RED afterwards.

## Usage

Drag the `tdn-report` node from the palette and wire it to any payload that contains format data. It outputs a formatted string report.
npm package: @letitapp/js-api
Description: This library provides a convenient way to interact with the LetItApp API, allowing seamless integration of notifications into your JS applications.
Author: LetItApp
Latest version: 0.0.1

# LetItApp JS API Library

Welcome to the LetItApp JS API Library! This library provides a convenient way to interact with the LetItApp API, allowing seamless integration of notifications into your JS applications.

## Features

- Create, update, and delete notifications.
- Retrieve lists and details of notifications.
- Send notifications instantly.

## Getting Started

To get started, make sure you have your LetItApp API key. You can obtain it from your account.

```JS
// Example Usage
let apiKey = 'YOUR_API_KEY';
let letItAppApi = new LetItAppApi(apiKey);

// Use the various methods to interact with the LetItApp API
// ...
```

## Documentation

For detailed information on how to use the library and available API endpoints, refer to our [Apiary Documentation](https://letitapp.docs.apiary.io/).

## Installation with NPM

You can install the LetItApp JS API Library using NPM. Run the following command in your project's root directory:
```bash
npm i @letitapp/js-api
```

## Generating documentation
Documentation is written in JSDoc syntax, for generating documentation use prepared script:
```bash
npm run docs
```

## Issues and Contributions

If you encounter any issues or have suggestions for improvement, please feel free to open an issue. Contributions are always welcome!
npm package: @letladi/unzip
Description: A utility for unzipping files
Author: Letladi Sebesho
Latest version: 1.0.2

# @letladi/unzip

A simple utility for unzipping files in Node.js. This library allows you to unzip files and list the contents of the extracted directory.

## Installation

You can install the package via npm:

```bash
npm install @letladi/unzip
```

## Usage
### Example 1:
```js
import { unzip } from '@letladi/unzip';

async function example() {
  try {
    const { extractedFolderPath, files } = await unzip('path/to/your/file.zip', 'path/to/extract/');
    console.log('Files extracted to:', extractedFolderPath);
    console.log('Extracted files:', files);
  } catch (error) {
    console.error('An error occurred:', error);
  }
}

example();

```

### Example 2:
```js
import { unzip } from '@letladi/unzip';

async function example() {
  try {
    const { extractedFolderPath, files } = await unzip('path/to/your/file.zip');
    console.log('Files extracted to:', extractedFolderPath);
    console.log('Extracted files:', files);
  } catch (error) {
    console.error('An error occurred:', error);
  }
}

example();


```

### Example 3 (Using promises):
```js
import { unzip } from '@letladi/unzip';

// Example 1: Using .then() and .catch()
unzip('path/to/your/file.zip', 'path/to/extract/')
  .then(({ extractedFolderPath, files }) => {
    console.log('Files extracted to:', extractedFolderPath);
    console.log('Extracted files:', files);
  })
  .catch((error) => {
    console.error('An error occurred:', error);
  });

// Example 2: Using .then() and .catch() with default extraction path
unzip('path/to/your/file.zip')
  .then(({ extractedFolderPath, files }) => {
    console.log('Files extracted to:', extractedFolderPath);
    console.log('Extracted files:', files);
  })
  .catch((error) => {
    console.error('An error occurred:', error);
  });
```

## Parameters
- `filePath`:  The path to the zip file you want to unzip.
- `extractfilePath`:  (optional): The path where the contents should be extracted. If not provided, a unique directory name will be generated.

## Returns
- `extractedFolderPath`: The path to the folder where the files were extracted.
- `files`: An array of file paths of the extracted files.

## Error Handling
The unzip function will throw an error if:
- The zip file cannot be found or opened.
- There is an issue during the extraction process.

## Development
To contribute or modify the library:

1.     Clone the repository.
2.     Install dependencies: npm install
3.     Build the project: npm run build
4.     Run tests: npm test


## Scripts
 - `build`: Compiles TypeScript code into JavaScript.
 - `test`: Runs tests using Jest.
 - `clean-up`: Cleans up temporary files after tests.

 ## License
This project is licensed under the MIT License. 

## Author
Created by Letladi Sebesho.
npm package: @letmemad/use-resolver
Description: A React hook for managing asynchronous data fetching and state management.
Author: Elias Wacheski
Latest version: 2.0.0


# USE-RESOLVER
  A React hook for managing asynchronous data fetching and state management.

## Installation

npm
```bash
npm install @letmemad/use-resolver
```

yarn
```bash
yarn add @letmemad/use-resolver
```

## Usage

```javascript
import React from  'react';
import useResolver from  'use-resolver';

function  MyComponent() {
  const { state, mutate, revalidate } =  useResolver('myData', async function () {
	const response =  await  fetch('https://api.example.com/data');
	return response.json();
  });

  // Access resolved data and loading state:
  return (
    <div>
	{state.isLoading  ? (
	  <p>Loading...</p>
	) : (
	  <div>
	    <p>Data: {JSON.stringify(state.data)}</p>
	    <button  onClick={revalidate}>Revalidate</button>
	  </div>
	)}
     </div>
  );
}
```

## Features

-  **Asynchronous data fetching:** Fetches data using a promise and manages loading, success, and error states.

-  **State management:** Stores fetched data and error information in a state object, accessible within your component.

-  **Automatic revalidation:** Re-fetches data when dependencies change (e.g., when props or other hooks update).

-  **Manual revalidation:** Offers a `revalidate` function to manually trigger re-fetching.

-  **Data mutation:** Allows you to directly modify the fetched data using the `mutate` function.

## Options

-  **`key` (string):** A unique identifier for the resolver.

-  **`promise` (function):** A function that returns a promise for the data to be fetched.

-  **`options` (object):** Optional configuration options:

-  **`onResolve` (function):** A callback function to be executed when data is successfully resolved.

-  **`onError` (function):** A callback function to be executed when an error occurs.

-  **`deps` (DependencyList):** An optional dependency list for automatic revalidation.

## Additional Information

-  **Subscriber:** The library utilizes a subscriber mechanism for managing state updates and subscriptions.

-  **ReturnResolver:** The `useResolver` hook returns a `ReturnResolver` object with:

	-  `state`: The state object containing `data`, `isLoading`, and `error` properties.

	-  `mutate`: A function to mutate the fetched data.

	-  `revalidate`: A function to manually trigger re-fetching.
npm package: @letnow/react-scripts
Description: Configuration and scripts for Create React App.
Latest version: 3.1.3

# react-scripts

This package includes scripts and configuration used by [Create React App](https://github.com/facebook/create-react-app).<br>
Please refer to its documentation:

- [Getting Started](https://facebook.github.io/create-react-app/docs/getting-started) – How to create a new app.
- [User Guide](https://facebook.github.io/create-react-app/) – How to develop apps bootstrapped with Create React App.
npm package: @letoast/histoire__plugin-nuxt
Description: Histoire plugin to integrate with Nuxt 3
Author: Guillaume Chau
Latest version: 0.17.18-2

# Histoire + Nuxt 3

```bash
pnpm add -D @histoire/plugin-nuxt
```

Add the plugin in histoire config:

```js
import { defineConfig } from 'histoire'
import { HstNuxt } from '@histoire/plugin-nuxt'

export default defineConfig({
  plugins: [
    HstNuxt(),
  ],
})
```
npm package: @letrongcong11062003/strapi-provider-upload-minio-ce
Description: MinIO provider for Strapi uploads
Author: Lê Trọng Công
Latest version: 1.0.2

# addition-of-two-numbers

A simple ESM package that exports `add(a, b)` which returns `a + b`.

## Install

```bash
npm install strapi-provider-upload-minio-ce
npm package: @letruxux/cool-icons-react-native
Description: A custom SVG icon library for React Native, built from raw `.svg` files.
Latest version: 0.2.0

# @letruxux/cool-icons-react-native

A custom SVG icon library for React Native, built from raw `.svg` files.

## Usage

```tsx
import { CaretDownSm } from "@letruxux/cool-icons-react-native";

<CaretDownSm width={24} height={24} color="black" />
```

## Development

To regenerate icon components from SVGs:

```bash
bun run generate
```

To build the library:

```bash
bun run build
```
npm package: @letruxux/file-upload
Description: Zero dependencies package to upload anonymous files to different hosting sites easily.
Author: letruxux
Latest version: 1.0.0

# @letruxux/file-upload

Zero dependencies package to upload anonymous files to different hosting sites easily.

> [!IMPORTANT]  
> Please donate and support the owners of the websites you use if you can. And obviously don't abuse any of the services provided.

## Supported hosts

| Website                                   | Max file size | Expiry                                              |
| ----------------------------------------- | ------------- | --------------------------------------------------- |
| [catbox](https://catbox.moe)              | 200MB         | **No expiry**, all files are permanently on catbox. |
| [0x0](https://0x0.st)                     | 512MB         | **30 days** to **a year** (more info on website)    |
| [litterbox](https://litterbox.catbox.moe) | 1GB           | **1 hour** to **3 days** (user choice)              |

## Installation

```bash
npm install @letruxux/file-upload
bun add @letruxux/file-upload
pnpm add @letruxux/file-upload
yarn add @letruxux/file-upload
```

## Usage

```js
import { catbox, litterbox, zeroX0 } from "@letruxux/file-upload";

/* Load image from file */
const filename = "image.png";
const buf = await readFile(filename);
const blob = new Blob([buf]);

/* Upload on catbox, litterbox and 0x0 */
const catboxUrl = await catbox(blob, filename);
const litterboxUrl = await litterbox(blob, filename);
const zeroX0Url = await zeroX0x(blob, filename);
```
npm package: @letruxux/weserv-js
Description: A TypeScript library for interacting with the weserv.nl image processing service.
Author: letruxux
Latest version: 0.0.2

# weserv-js

A TypeScript library for interacting with the weserv.nl image processing service.

## Installation

```bash
npm install @letruxux/weserv-js
bun add @letruxux/weserv-js
pnpm add @letruxux/weserv-js
yarn add @letruxux/weserv-js
```

## Basic Usage

```typescript
import { ImageWeserv } from "@letruxux/weserv-js";

const imageUrl = new ImageWeserv("https://example.com/image.jpg")
  .setWidth(300)
  .setHeight(200)
  .setFit("cover")
  .setBlur(5)
  .toString();
```

## API Documentation

### Constructor

`new ImageWeserv(url: string)` - Creates a new instance with the source image URL.

### Transformation Methods

All methods return `this` for method chaining.

- `setWidth(width: number)` - Sets image width
- `setHeight(height: number)` - Sets image height
- `setFit(fit: FitOption)` - Sets resize mode (contain|cover|fill|inside|outside)
- `setBlur(blur: number)` - Sets blur intensity (0-100)
- `setQuality(q: number)` - Sets output quality (1-100)
- `setOutputFormat(format: OutputFormat)` - Sets output format (jpg|png|gif|tiff|webp|json)

See [src/defs.ts](./src/defs.ts) for all available options.
npm package: @letruxux/youtube-chat
Description: Zero dependencies, lightweight package to fetch YouTube live chat messages with no API key
Author: letruxux
Latest version: 1.0.7

# @letruxux/youtube-chat

Zero dependencies, lightweight package to fetch YouTube live chat messages with no API key.
Supports both history fetching and realtime messages (with polling).

## Installation

```bash
npm install @letruxux/youtube-chat
bun add @letruxux/youtube-chat
pnpm add @letruxux/youtube-chat
yarn add @letruxux/youtube-chat
```

## Usage

```js
import {
  ChatListener,
  getYouTubeLiveVideoId,
  fetchChatMessages,
} from "@letruxux/youtube-chat";
```

### ChatListener

```js
const livestreamId = await getYouTubeLiveVideoId("lofigirl");
const listener = new ChatListener(livestreamId, {
  /* config */
});

listener.onMessage((message) => {
  console.log(`${message.author}: ${message.text}`);
});

listener.start();
```

### Types

[Check the definitions file.](./src/defs.ts)
npm package: @letry-js/letry
Description: Let you retry failed process with ease.
Author: BlockchainSpace-Dev
Latest version: 0.0.5

# Letry

Let you retry failed process with ease.

### TODO

- [x] Basic Retry
- [x] TTL Timeout Support
- [x] Add support to retry the exceeded retry attempts jobs 
- [x] Store the exceeded retry attempts jobs data to anywhere, BigQuery abstraction is supported by default for this.
<!-- Default is for 10 times (once per hour) (e.g start from 06:00AM to 16:00PM runs once per-hour) -->
### Pre-requisites

- Redis
    - Windows Port (https://github.com/tporadowski/redis/releases)
    - Others (https://redis.io/download/)

### Migrate from pRetry

Using pRetry:

```js
const detail = await pRetry(
    async () => await requestCyblocDetail(value.mentor_id),
    {
        retries: 5,
        onFailedAttempt: (error) => {
            if (error.retriesLeft === 3) {
                withProxyDetail = true;
            }

            const timeout = 5000;

            console.log(
                `Retrying in ${
                timeout / 1000
                } second/s, retry left for cyball performance is ${
                error.retriesLeft
                }.. reason: ${error}`
            );

            setTimeout(() => {}, timeout);
        },
    }
);
```

Using letry:

```js
const detail = await letry(
    "requestCyblocDetailQueue",
    value.mentor_id,
    requestCyblocDetail,
    {
        attempts: 5,
        backoff: 3000,
        onFailedAttempt: (error) => {
            if (error.retriesLeft === 3) {
                withProxyDetail = true;
            }

            const timeout = 5000;

            console.log(
                `Retrying in ${
                timeout / 1000
                } second/s, retry left for cyball performance is ${
                error.retriesLeft
                }.. reason: ${error}`
            );

            setTimeout(() => {}, timeout);
        }
    }
);
```
npm package: @lets-fiware/cesium-japangsi
Description: Libraries which make Japan GSI's APIs can be used with Cesium.
Author: Kazuhito Suda, TilemapJP
Latest version: 1.0.0

Cesium-JapanGSI
===============

**注意(NOTE)**
--------------

このソフトウェアは、歴史国土プロジェクトによって作成された [tilemapjp/Cesium-JapanGSI](https://github.com/tilemapjp/Cesium-JapanGSI) をベースとしています。  
This software is based on [tilemapjp/Cesium-JapanGSI](https://github.com/tilemapjp/Cesium-JapanGSI)
created by Historical Nation Project.

概要(Abstruct)
--------------

国土地理院の地図系APIをCesiumで利用可能にするライブラリ群です。  
Libraries which make Japan GSI's APIs can be used with Cesium.

### JapanGSIImageryProvider

国土地理院の提供する地図画像タイル群から、好きなレイヤを組み合わせてCesiumの地図タイルレイヤを生成するライブラリです。  
Cesium's image tile provider from Japan GSI's map image tile service.

#### プロパティ / Property

* layerLists

地理院地図の使いたいレイヤIDを、配列で与えます。  
全国レベルの画像セットがあるレイヤはプリセットされていますが、災害情報レイヤ等、一部しかないレイヤはプリセットされていません。  
そのようなレイヤを使いたい場合は、本項末尾に記載したような方法で使いたいレイヤを定義してください。  
列挙されたレイヤ中、提供されるズームレベルに重なりがある場合は、先に書いたレイヤが優先されます。  
Give a list of GSI tile layer names which you want to use.

    var layers = new Cesium.JapanGSIImageryProvider({
        layerLists: [{
            "id": "20130717dol",
            "zoom": "10-18",
            "ext": "jpg"
        },"relief","std"]
    });

### JapanGSITerrainProvider

国土地理院のDEMタイル仕様から、Cesiumの地形を生成するライブラリです。  
Cesium's terrain provider from Japan GSI's DEM tile service.

* heightPower

高度差の描画を強調したい場合、この値に1以上の値を与えると、その倍率だけ高さが強調された描画が為されます。  
ただしもちろん、建物地物や飛行機の飛行経路等、その他の高度を持つ情報を描画する際は、そちらも同じ倍率を掛けないと相対高さがおかしくなります。  
If you want to emphasize height of terrain, you can give powering value by this property.

    var terrain = new Cesium.JapanGSITerrainProvider({
        heightPower: 2.0
    });

### 使い方 / Usage

    var viewer = new Cesium.Viewer('cesiumContainer', {
        imageryProvider: new Cesium.JapanGSIImageryProvider({
            layerLists: ["ort","relief","std"]
        }),
        terrainProvider: new Cesium.JapanGSITerrainProvider({}),
        baseLayerPicker: false,
        mapProjection: new Cesium.WebMercatorProjection(Cesium.Ellipsoid.WGS84)
    });
    var scene = viewer.scene;
    scene.globe.depthTestAgainstTerrain = true;

### Tips

どちらのライブラリも、Cesium.ViewerのbaseLayerPickerプロパティをfalse、viewer.scene.globe.depthTestAgainstTerrainプロパティをtrueにして使う事が推奨されます。  
前者は、falseにしないと、Cesium標準の地図セット切り替えコントロールが出てきてしまい、設定した地図タイル、地形が反映されません。  
後者は、trueにしないと、地形の地面の下に描画した地物も、透けて見えてしまいます。  
You should use these libraries with Cesium.Viewer's baseLayerPicker property as false and viewer.scene.globe.depthTestAgainstTerrain property as true.

https://github.com/gsi-cyberjapan/elevation-php/blob/master/getelevation.php に示されている「dem5a」も活用して、特に都市域で詳しく地形が見えるようにしています。

### 参照 / See other

* [Cesium:WebGL Virtual Globe and Map Engine](http://cesiumjs.org/index.html)
* [国土地理院地図タイル / Japan GSI tile API](http://portal.cyberjapan.jp/help/development/ichiran.html)
* [サンプル / Example](http://t.tilemap.jp.s3.amazonaws.com/cesium/index.html)