open-index/open-npm huggingface dataset:
npm package: @figure8app/eslint-config
Description: Organization base eslint config.
Latest version: 3.0.0

# Figure8app eslint config

Common JavaScript linting configuration for Figure8.

## Usage

Install by running:

```bash
npm install --save-dev @figure8app/eslint-config
yarn add --dev eslint @figure8app/eslint-config
```

Then create a `.eslintrc.yml` file with:

```yaml
extends: '@figure8app/eslint-config'
```

## Development

### Test configuration

You can play with `index.js` and run:

```bash
npm install
./node_modules/.bin/eslint index.js
```

Or let your IDE test it.
npm package: @figureai/react-native-aes-kit
Description: AES-CBC-PKCS5Padding
Author: figureai
Latest version: 1.0.0

# react-native-aes-kit

> AES-CBC-PKCS5Padding

## Install 

```
npm i --S react-native-aes-kit

react-native link react-native-aes-kit
```


## methods
* encrypt

| Name                    | Type  | Note
| ----------------------- |:-------:| -------
| sourceText     | string      |  plaintxt
| secretKey     | string     | secret key,max 16 bytes
| iv      | string     | initialization vector,max 16 bytes

* decrypt

| Name                    | Type  | Note
| ----------------------- |:-------:| -------
| sourceText     | string      |  cipher txt
| secretKey     | string     | secret key,max 16 bytes
| iv      | string     | initialization vector,max 16 bytes


## Usage 

```js
import AesCrypto from 'react-native-aes-kit';

const plaintxt = 'test';
const secretKey = '0102030405060708';
const iv = '1112131415161718';

AesCrypto.encrypt(plaintxt,secretKey,iv).then(cipher=>{
    console.log(cipher);// return a string type cipher
    this.setState({ cipher });
}).catch(err=>{
    console.log(err);
});

AesCrypto.decrypt(this.state.cipher,secretKey,iv).then(plaintxt=>{
    console.log(plaintxt);// return a string type plaintxt
}).catch(err=>{
    console.log(err);
});
```
npm package: @figuredev/react-native-local-server
Description: Library for creating a local server on the device running React Native.
Author: Figure
Latest version: 0.17.6

# React Native Local Server

[![badge][npm-badge]][npm]
[![GitHub Actions][build-badge]][build]
[![MIT License][license-badge]][license]

Library for creating a local server on the device running React Native.

The library exposes several classes to ease communication over local network.

- TCP server and client
- UDP server
- Messaging server and client
- Caller ID server (Whozz Calling?)
- Service browser (zero-configuration)

## Installation

Install yarn dependency:

```sh
yarn add @figuredev/react-native-local-server
```

Install iOS dependencies (from ios/ directory):

```sh
pod install
```

## Usage

### TCP server and client

Low level implementation of TCP protocol. There are two classes: server and client.
Once the server is running the client can connect to it.
All data parts has to be delimited by new line character.

See documentation of classes for more information.

### UDP server

Low level implementation of UDP protocol. There is only one call: server.
The server doesn't have to be running in order to send data.

See documentation of the class for more information.

### Messaging server and client

Abstraction above TCP layer using RxJS. There are again two classes: server and client.
Both server and client require a handler when starting. The handler is a function that takes a stream of incoming messages and defined dependencies. This design was inspired by [redux-observable](https://redux-observable.js.org/) library.
Both classes also provides a stream of status events.

See documentation of classes for more information.

### Caller ID server (Whozz Calling?)

Abstraction above UDP layer using RxJS. All incoming calls are provided via stream `CallerIdServer.getIncomingCall$()`.
The server can also simulate incoming call via method `CallerIdServer.simulateCall(call: PhoneCall)`.

See documentation of the class for more information.

### Service browser (zero-configuration)

Implementation of zero-configuration standard for service discovery. This browser allows you discover all available services in provided group.

On iOS you have to specify service groups in Info.plist, the key is `NSBonjourServices`.

See documentation of classes for more information.

## Known Issues

### UDP server

- Android: not receiving broadcast messages
- iOS: not sending broadcast messages

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

<!-- badges -->

[npm-badge]: https://img.shields.io/npm/v/@figuredev/react-native-local-server.svg
[npm]: https://www.npmjs.com/package/@figuredev/react-native-local-server
[build-badge]: https://img.shields.io/github/actions/workflow/status/FigurePOS/react-native-local-server/check.yml
[build]: https://github.com/FigurePOS/react-native-local-server/actions/workflows/check.yml
[license-badge]: https://img.shields.io/npm/l/@figuredev/react-native-local-server.svg
[license]: https://opensource.org/licenses/MIT
npm package: @figuredev/react-native-receipts
Description: React Native Module for Rendering Figure Receipts.
Author: FigurePOS
Latest version: 0.1.23

# rn-receipts

React Native Module for Rendering Figure Receipts.

## Installation

```sh
npm install rn-receipts
```

## Usage

```js
import { multiply } from "rn-receipts";

// ...

const result = await multiply(3, 7);
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT
npm package: @figureland/git
Description: A tiny collection of git helpers
Author: Figure Systems
Latest version: 0.0.19

A tiny tool for working with git and Typescript. I made this because I wanted a way of adding git information to be visible in the front-end.

It's so basic it probably doesn't need to be a library of its own. But I found myself needing this so often, I have packaged it up here for my own use.

## Basic usage

The node.js/bun side of this library exports three little functions. These will fail if you try to use them in the browser, because they depend on access to the filesystem and git in the command line.

```ts
import { git, state, isGitAvailable, commands } from '@figureland/git'

// 1. A very basic wrapper that is essentially just a way
// of calling 'git <command>' programmatically
const branchName: string = git('rev-parse --abbrev-ref HEAD')

// There are a few preset commands if, like me, you are constantly
// forgetting git commands.

const branchName: string = git(commands.branchName) // same as above

// 2. state() returns an object representing the current
// state of git in the current working directory
type GitInformation = {
  status: 'ok' | 'error'
  branch: string
  commitHash: string
  commitHashShort: string
  timestamp: string
  message: string
}
const gitState = state()

// 3. This one is hopefully self-explanatory

const available: boolean = isGitAvailable()
```

## Vite plugin

There is also a Vite plugin that does the same sort of thing but has the feature of adding git state throughout the whole app (front-end) using Vite's [virtual modules feature](https://vitejs.dev/guide/api-plugin#virtual-modules-convention).

### Add it to `vite.config.ts`

```ts
import { gitPlugin } from '@figureland/git/vite'

export default {
  plugins: [gitPlugin()]
}
```

### Import it in your Vite application

```ts
import { gitState } from 'virtual:git'

// gitState is a snapshot based on GitInformation (see above)
```

This might also be required in a declaration if you are using typescript.

```ts
/// <reference types="@figureland/git/module"/>
```

## Scripts

### Install

```bash
bun install
```

### Test

```bash
bun test
```

### Build

```bash
bun run build
```
npm package: @figureland/mathkit
Description: A minimal toolkit for working with numbers, matrices and vectors
Author: Figure Systems
Latest version: 0.0.37
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

![mathkit illustration](./docs/mathkit-hero.svg)

[![CI](https://github.com/figureland/mathkit/actions/workflows/ci.yml/badge.svg)](https://github.com/figureland/mathkit/actions/workflows/ci.yml)
[![NPM](https://img.shields.io/npm/v/@figureland/mathkit.svg)](https://img.shields.io/npm/v/@figureland/mathkit.svg)

**mathkit** is a collection of tools for working with numbers, matrices, shapes and more. The aim here is to have something minimal and unbloated, and also a place to learn by building from scratch.

> [!NOTE]
> It would be great to use [DOMMatrix](https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix#specifications) and [DOMPoint](https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint#specifications) more. I could remove a big chunk of this library. But somehow I found them inflexible and didn't perform that well. Maybe something to do with having to call `new DOMMatrix()` every time you want to multiply two matrices, for example, feels as if it incurs a real cost if you're running it every frame. Maybe in 2024 that's not the case and when I have time I will revisit. They would need to be polyfilled somehow in Bun/node.js servers.
>
> In the meantime, there are some helpers in [src/style.ts](./src/style.ts) to help with translation.

Credit to [gl-matrix](https://glmatrix.net/) for inspiration, some API choices and indeed directly copying over a few methods. A library I've used many many times over the years.

## Scripts

### Install

```bash
bun install
```

### Test

```bash
bun test
```

### Build

```bash
bun run build
```
npm package: @figureland/media-tools
Description: Minimal tools for working with video
Author: Figure Systems
Latest version: 0.0.30

[![CI](https://github.com/figureland/media-tools/actions/workflows/ci.yml/badge.svg)](https://github.com/figureland/media-tools/actions/workflows/ci.yml)
[![NPM](https://img.shields.io/npm/v/@figureland/media-tools?color=40bd5c)](https://img.shields.io/npm/v/@figureland/media-tools?color=40bd5c)

`media-tools` is a small tool for working with video files on the web. In particular it provides a simple workflow for managing video in [Astro](https://astro.build/) projects.

## Background

This tool were born out of frustration with the baffling complexity of managing videos on the web. Third-party video platforms like [Mux](https://mux.com/) or [Cloudinary](https://cloudinary.com/) are great, but they feel like overkill for a lot of smaller projects, and introduce another service, another login and another place where payment details need to be left.

This library is still quite complicated, so there is still a way to go to make it as user friendly as possible, but the core structure is minimal – essentially a much nicer experience of what you can do with `ffmpeg` and bash scripts.

## Getting started

This project depends on [bun](https://bun.sh/), [ffmpeg](https://www.ffmpeg.org/) and [sharp](https://sharp.pixelplumbing.com/). It's intended for local use, not for CI or servers although that may change with a more mature version in the future.

### 1. Install the dependency

```bash
bun add @figureland/media-tools
```

### 2. Run the script

You can now run the media tools CLI to ingest videos and output optimised versions. `--src` is the source folder for one or more videos. `--output` is the target folder where you want your optimised videos to live.

```json
"process-video": "media-process-video --src videos --output public"
```

For each video, it will be optimised and output into two versions (`.webm` and `.mp4`) alongside a poster thumbnail, and a `.json` manifest file. The manifest bundles links to the generated video assets.

### 3. Access the videos

Your processed videos are now available through an API. You query this using an `id` which is the original filename of your video, so if your original file is called `my-movie.mov` then the ID is `my-movie`.

```ts
const manifest = await getVideoManifest('public', 'my-movie')
```

### 4. Usage in astro

The library provides an Astro collection Zod schema which transforms the `string` ID into a `VideoManifest` if the API can find it. This works similarly to how Astro's built-in `image()` helper works.

```ts
import { video } from '@figureland/media-tools/astro'

const videoAssetsFolder = path.resolve(process.cwd(), 'public')

export const videoSchema = () =>
  z.object({
    type: z.enum(['video']),
    src: video(videoAssetsFolder),
    autoplay: z.boolean().default(true),
    loop: z.boolean().default(true),
    muted: z.boolean().default(true),
    caption: z.string().optional()
  })
```
npm package: @figureland/toolkit
Description: A collection of utilities for building experimental, creative tools
Author: Figure Systems
Latest version: 0.0.84
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

**toolkit** is a collection of utilities for building experimental, creative tools

[![CI](https://github.com/figureland/toolkit/actions/workflows/ci.yml/badge.svg)](https://github.com/figureland/toolkit/actions/workflows/ci.yml)
[![NPM](https://img.shields.io/npm/v/@figureland/toolkit.svg)](https://img.shields.io/npm/v/@figureland/toolkit.svg)

## Scripts

### Install

```bash
bun install
```

### Test

```bash
bun test
```

### Build

```bash
bun run build
```
npm package: @figureland/typekit
Description: A tiny personal toolbox for Typescript
Author: Figure Systems
Latest version: 0.0.29
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

A collection of Typescript utilities.

## Scripts

### Install

```bash
bun install
```

### Test

```bash
bun test
```

### Build

```bash
bun run build
```
npm package: @figuro/chatwoot-sdk
Description: SDK for JS/Typescript for Chatwoot.
Author: Figuro
Latest version: 1.1.17

# Chatwoot API SDK
[![npm (scoped)](https://img.shields.io/npm/v/@figuro/chatwoot-sdk)](https://www.npmjs.com/package/@figuro/chatwoot-sdk) ![GitHub Workflow Status (with branch)](https://img.shields.io/github/actions/workflow/status/figurolatam/chatwoot-sdk/npm-publish.yml?logo=github-actions) [![NPM](https://img.shields.io/npm/l/@figuro/chatwoot-sdk)](https://opensource.org/licenses/MIT)

The Chatwoot SDK is a JavaScript client that allows developers to connect to the Chatwoot API. With full TypeScript support, the SDK provides an easy-to-use interface for developers to interact with the Chatwoot platform programmatically.

The SDK is built with simplicity in mind and only depends on Axios for advanced data fetching support and compatibility. This means that developers can enjoy a lightweight, efficient SDK without the added burden of extraneous dependencies.

To learn more about the Chatwoot API, please refer to [Chatwoot's documentation](https://www.chatwoot.com/developers/api/). There, you'll find everything you need to get started, including detailed API reference documentation, sample code, and tutorials.

## Installation

Using **npm**:

```shell
npm i @figuro/chatwoot-sdk --save
```

Using **yarn**:

```shell
yarn add @figuro/chatwoot-sdk
```

## Example

```typescript
import ChatwootClient from "@figuro/chatwoot-sdk";

const client = new ChatwootClient({
    config: {
        basePath: "https://app.chatwoot.com",
        with_credentials: true,
        credentials: "include",
        token: "<YOUR_API_TOKEN_HERE>"
    }
});

client.messages.create({
    accountId: 1,
    conversationId: 8,
    data: {
        content: "Hello, World!"
    }
})
    .then(response => {
        console.log(response.sender?.name);
    })
    .catch(err => {
        console.error(err);
    });
```

While not documented on Chatwoot, file messages are supported via `multipart/form-data`, to enable this, an attachment parameter is implemented. (Please note that content was shortened for simplicity and is not valid).

```typescript
client.messages.create({
    accountId: 1,
    conversationId: 8,
    data: {
        content: "Hello, World!",
        attachments: [
            {
                content: "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/...gUaFFSdABUVmZpaSnFk7kXiPwNOgbDxE5JKbEAAAAASUVORK5CYII=",
                encoding: "base64",
                filename: "test.png"
            }
        ]
    }
})
    .then(response => {
        console.log(response.sender?.name);
    })
    .catch(err => {
        console.error(err);
    });
```

## Documentation
The full documentation for the Chatwoot API can be found [Chatwoot's documentation](https://www.chatwoot.com/developers/api/).

## Contributing
If you'd like to contribute, please open an issue or pull request on this repository. We'd love to hear from you!

## License
This SDK is licensed under the [MIT License](https://opensource.org/licenses/MIT).

## Support
If you have any questions or need help, please reach out to us by opening an issue on this repository.
npm package: @figus/cli
Description: Easily download Figma and create SVGs components for Vue, React, Angular and more to come
Author: omridevk
Latest version: 2.0.22

<h1 align="center">
Figus
</h1>
<p align="center">
Easily download Figma and create SVGs components for Vue, React, Angular.
<p>
<p align="center">
  <a href="https://www.npmjs.com/package/@figus/cli"><img src="https://img.shields.io/npm/v/@figus/cli?color=729B1B&label="></a>
<p>

<p align="center">
 <a href="https://figus.dev">Documentation</a> | <a href="https://figus.dev/guide/">Getting Started</a> | <a href="https://figus.dev/guide/#examples">Examples</a>
</p>

<h4 align="center">

</h4>
<br>
<br>

## Features

- [SVGO](https://github.com/svg/svgo/)'s optimized!
- [React](https://reactjs.org/)
- [Vue](https://vuejs.org/)
- [React MUI](https://mui.com/)
- [Figma](https://www.figma.com/) integration
- Fast,
- ESM first, top level await

> Figus requires Node >=v14


```bash
npx @figus/cli init
npx @figus/cli --token="figma token"
```


## License

[MIT](../../LICENSE) License © 2021-Present [Omri Katz](https://github.com/omridevk)