open-index/open-npm huggingface dataset:
npm package: @popgrids/prettier-config
Description: Prettier config used at PopGrids
Author: PopGrids
Latest version: 0.0.1

# prettier-config
Prettier config used at PopGrids

## Usage

Install the package using `npm` (or `yarn`)

```sh
npm install --save-dev @popgrids/prettier-config
```

Add the `prettier` key to your `package.json`

```diff
diff --git a/package.json b/package.json
index 2ecef3d..260838f 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,7 @@
   "keywords": [
     "prettier"
   ],
+  "prettier": "@popgrids/prettier-config",
   "license": "MIT",
   "author": "PopGrids",
   "main": "index.js"
 ```

 [Check out the `prettier` documentation for more info on sharing configurations](https://prettier.io/docs/en/sharing-configurations).
npm package: @popicons/react-native
Description: Bring life & personality to your projects with Popicons! 🎈
Latest version: 0.0.27

# @popicons/react

Please refer to [https://github.com/uxthings/popicons#get-popicons-via-npm](https://github.com/uxthings/popicons#get-popicons-via-npm) for all documentation.
npm package: @popiha5411/accordion
Description: Collapse display a list of high-level options that can expand/collapse to reveal more information.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/accordion

Accordion display a list of high-level options that can expand/collapse to reveal more information.

Please refer to the [documentation](https://heroui.com//docs/components/accordion) for more information.

## Installation

```sh
yarn add @popiha5411/accordion
# or
npm i @popiha5411/accordion
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/alert
Description: Alerts are temporary notifications that provide concise feedback about an action or event.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/alert

Alerts are temporary notifications that provide concise feedback about an action or event.

Please refer to the [documentation](https://heroui.com/docs/components/alert) for more information.

## Installation

```sh
yarn add @popiha5411/alert
# or
npm i @popiha5411/alert
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/autocomplete
Description: An autocomplete combines a text input with a listbox, allowing users to filter a list of options to items matching a query.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/autocomplete

An autocomplete combines a text input with a listbox, allowing users to filter a list of options to items matching a query.

Please refer to the [documentation](https://heroui.com/docs/components/autocomplete) for more information.

## Installation

```sh
yarn add @popiha5411/autocomplete
# or
npm i @popiha5411/autocomplete
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/avatar
Description: The Avatar component is used to represent a user, and displays the profile picture, initials or fallback icon.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/avatar

The Avatar component is used to represent a user, and displays the profile picture, initials or fallback icon.

Please refer to the [documentation](https://heroui.com/docs/components/avatar) for more information.

## Installation

```sh
yarn add @popiha5411/avatar
# or
npm i @popiha5411/avatar
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/badge
Description: Badges are used as a small numerical value or status descriptor for UI elements.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/badge

Badges are used as a small numerical value or status descriptor for UI elements.

Please refer to the [documentation](https://heroui.com/docs/components/badge) for more information.

## Installation

```sh
yarn add @popiha5411/badge
# or
npm i @popiha5411/badge
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/breadcrumbs
Description: Breadcrumbs display a hierarchy of links to the current page or resource in an application.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/breadcrumbs

Breadcrumbs display a hierarchy of links to the current page or resource in an application.

Please refer to the [documentation](https://heroui.com/docs/components/breadcrumbs) for more information.

## Installation

```sh
yarn add @popiha5411/breadcrumbs
# or
npm i @popiha5411/breadcrumbs
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/button
Description: Buttons allow users to perform actions and choose with a single tap.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/button

Buttons allow users to perform actions and choose with a single tap.

Please refer to the [documentation](https://heroui.com/docs/components/button) for more information.

## Installation

```sh
yarn add @popiha5411/button
# or
npm i @popiha5411/button
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/calendar
Description: A calendar displays one or more date grids and allows users to select a single date.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/calendar

A calendar displays one or more date grids and allows users to select a single date.

Please refer to the [documentation](https://heroui.com/docs/components/calendar) for more information.

## Installation

```sh
yarn add @popiha5411/calendar
# or
npm i @popiha5411/calendar
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/card
Description: Card is a container for text, photos, and actions in the context of a single subject.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/card

Card is a container for text, photos, and actions in the context of a single subject.

Please refer to the [documentation](https://heroui.com/docs/components/card) for more information.

## Installation

```sh
yarn add @popiha5411/card
# or
npm i @popiha5411/card
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/checkbox
Description: Checkboxes allow users to select multiple items from a list of individual items, or to mark one individual item as selected.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/checkbox

Checkboxes allow users to select multiple items from a list of individual items, or to mark one individual item as selected.

Please refer to the [documentation](https://heroui.com/docs/components/checkbox) for more information.

## Installation

```sh
yarn add @popiha5411/checkbox
# or
npm i @popiha5411/checkbox
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/chip
Description: Chips help people enter information, make selections, filter content, or trigger actions.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/chip

A Chip is a small block of essential information that represent an input, attribute, or action.

Please refer to the [documentation](https://heroui.com/docs/components/chip) for more information.

## Installation

```sh
yarn add @popiha5411/chip
# or
npm i @popiha5411/chip
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/code
Description: Code is a component used to display inline code.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/code

Code is a component used to display inline code.

Please refer to the [documentation](https://heroui.com/docs/components/code) for more information.

## Installation

```sh
yarn add @popiha5411/code
# or
npm i @popiha5411/code
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/date-input
Description: A date input allows users to enter and edit date and time values using a keyboard.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/date-input

A date input allows users to enter and edit date and time values using a keyboard.

## Installation

```sh
yarn add @popiha5411/date-input
# or
npm i @popiha5411/date-input
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/date-picker
Description: A date picker combines a DateInput and a Calendar popover to allow users to enter or select a date and time value.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/date-picker

A date picker combines a DateInput and a Calendar popover to allow users to enter or select a date and time value.

## Installation

```sh
yarn add @popiha5411/date-picker
# or
npm i @popiha5411/date-picker
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/divider
Description: . A separator is a visual divider between two groups of content
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/divider

Divider is a component that separates content in a page.

Please refer to the [documentation](https://heroui.com/docs/components/divider) for more information.

## Installation

```sh
yarn add @popiha5411/divider
# or
npm i @popiha5411/divider
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/drawer
Description: Used to render a content that slides in from the side of the screen.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/drawer

Used to render a content that slides in from the side of the screen.

Please refer to the [documentation](https://heroui.com/docs/components/drawer) for more information.

## Installation

```sh
yarn add @popiha5411/drawer
# or
npm i @popiha5411/drawer
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/dropdown
Description: A dropdown displays a list of actions or options that a user can choose.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/dropdown

Displays a list of actions or options that a user can choose.

Please refer to the [documentation](https://heroui.com/docs/components/dropdown) for more information.

## Installation

```sh
yarn add @popiha5411/dropdown
# or
npm i @popiha5411/dropdown
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/form
Description: A form is a group of inputs that allows users submit data to a server and supports field validation errors.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/form

A form is a group of inputs that allows users submit data to a server and supports field validation errors.

Please refer to the [documentation](https://heroui.com/docs/components/form) for more information.

## Installation

```sh
yarn add @popiha5411/form
# or
npm i @popiha5411/form
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/image
Description: A simple image component
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/image

The Image component is used to display images with support for fallback.

Please refer to the [documentation](https://heroui.com/docs/components/image) for more information.

## Installation

```sh
yarn add @popiha5411/image
# or
npm i @popiha5411/image
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/input
Description: The input component is designed for capturing user input within a text field.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/input

Input is a component that allows users to enter text. It can be used to get user inputs in forms, search fields, and more.

This package contains the Input component and the TextArea component.

Please refer to the [documentation](https://heroui.com/docs/components/input) for more information.

## Installation

```sh
yarn add @popiha5411/input
# or
npm i @popiha5411/input
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/input-otp
Description: InputOTP is a component that allows users to enter otp input. It can be used to get user otp in forms.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/input-otp

InputOTP is a component that allows users to enter otp input. It can be used to get user otp in forms.

This package contains the InputOTPcomponent.

Please refer to the [documentation](https://heroui.com/docs/components/input-otp) for more information.

## Installation

```sh
yarn add @popiha5411/input-otp
# or
npm i @popiha5411/input-otp
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/switch
Description: A switch is similar to a checkbox, but represents on/off values as opposed to selection.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/switch

The Switch component is used as an alternative between checked and not checked states.

Please refer to the [documentation](https://heroui.com/docs/components/switch) for more information.

## Installation

```sh
yarn add @popiha5411/switch
# or
npm i @popiha5411/switch
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/table
Description: Tables are used to display tabular data using rows and columns. 
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/table

Tables are used to display tabular data using rows and columns. They allow users to quickly scan, sort, compare, and take action on large amounts of data.

Please refer to the [documentation](https://heroui.com/docs/components/table) for more information.

## Installation

```sh
yarn add @popiha5411/table
# or
npm i @popiha5411/table
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/tabs
Description: Tabs organize content into multiple sections and allow users to navigate between them.
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/tabs

Tabs organize content into multiple sections and allow users to navigate between them.

Please refer to the [documentation](https://heroui.com/docs/components/tabs) for more information.

## Installation

```sh
yarn add @popiha5411/tabs
# or
npm i @popiha5411/tabs
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/master/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/master/LICENSE).
npm package: @popiha5411/toast
Description: Toast are temporary notifications that provide concise feedback about an action or event
Author: Vx OSS Devs
Latest version: 0.0.1

# @popiha5411/toast

Toast Component helps to provide feedback on user-actions.

## Installation

```sh
yarn add @popiha5411/toast
# or
npm i @popiha5411/toast
```

## Contribution

Yes please! See the
[contributing guidelines](https://github.com/heroui-inc/heroui/blob/canary/CONTRIBUTING.md)
for details.

## License

This project is licensed under the terms of the
[MIT license](https://github.com/heroui-inc/heroui/blob/canary/LICENSE).
npm package: @popile/language-utils
Description: Popile's language utilities
Latest version: 1.0.1

# @popile/language-utils <!-- omit in toc -->

[![npm version](https://img.shields.io/npm/v/@popile/language-utils.svg)](https://npmjs.com/package/@popile/language-utils)
[![Build and Deploy](https://github.com/popile-media/language-utils/actions/workflows/build_and_deploy.workflow.yml/badge.svg)](https://github.com/popile-media/language-utils/actions/workflows/build_and_deploy.workflow.yml)
[![codecov](https://codecov.io/gh/popile-media/language-utils/branch/main/graph/badge.svg?token=4G9ZHBL8UA)](https://codecov.io/gh/popile-media/language-utils)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![license](https://img.shields.io/npm/l/@popile/language-utils.svg)](https://github.com/popile-media/language-utils/blob/master/LICENSE)

> Language utilities

## Installation

```bash
npm i @popile/language-utils
```

## Usage

```javascript
import { Turkish } from '@popile/language-utils';

// returns -> ['Si', 'ne', 'ma']
Turkish.spelling('Sinema');

// returns -> Ali'ye
new Turkish('Ali').dative().toString();

// returns -> Ali'den
new Turkish('Ali').ablative().toString();

// returns -> Ali'de
new Turkish('Ali').locative().toString();

// returns -> Ali'yi
new Turkish('Ali').accusative().toString();
```
npm package: @popit/cli
Description: Simple command line interface for frontend developers
Author: popit team
Latest version: 1.1.9

# cli

## About The Project

Simple command line interface for frontend developers

## Prerequisites

- [node v14+](https://nodejs.org/en/download/)

## Instalation

1. Clone this repository

   ```sh
   git clone https://github.com/EPJA-popit/cli.git
   ```

2. Run npm installation process
   ```sh
   npm i
   ```

## Versioning

In order to create a new version of @popit/cli you should run this commands:

1. Create a new verstion of package

   ```sh
   npm version < major | minor | patch >
   ```

2. Publish this version of package, please be sure that you logged in under your npmjs.com account `npm login`

   ```sh
   npm publish --access public
   ```

3. Push commits realted to package versioning into github repository
   ```sh
   git push
   ```

## Testing

There is no testing for now :(

## Usage

For now this project does nothing to entertain you

## License

Distributed under the MIT License. See `LICENSE` for more information.
npm package: @popjs/util
Description: Poppy Js Framework Util Library
Author: imvkmark
Latest version: 0.3.2

# @popjs/util

[popjs-util](https://github.com/imvkmark/popjs-util)

[![](https://img.shields.io/badge/Powered%20by-jslib%20base-brightgreen.svg)](https://github.com/yanhaijing/jslib-base)
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/imvkmark/popjs-util/blob/master/LICENSE)
[![Build Status](https://travis-ci.org/@popjs/util.svg?branch=master)](https://travis-ci.org/imvkmark/popjs-util)
[![NPM downloads](http://img.shields.io/npm/dm/@popjs/util.svg?style=flat-square)](http://www.npmtrends.com/@popjs/util)
[![Percentage of issues still open](http://isitmaintained.com/badge/open/imvkmark/popjs-util.svg)](http://isitmaintained.com/project/imvkmark/popjs-util "Percentage of issues still open")

Poppy Framework Js Util Packages

文档 : [中文文档](https://imvkmark.github.io/popjs-util/index.html)

## 使用者指南

通过npm下载安装代码

```bash
$ npm install --save @popjs/util
```

如果你是node环境

```js
var poppyjs = require('@popjs/util');
```

如果你是webpack等环境

```js
import { isMobile } from '@popjs/util';
```

如果你是requirejs环境

```js
requirejs(['node_modules/@popjs/util/dist/index.aio.js'], function(base) {
    // xxx
})
```

如果你是浏览器环境

```html

<script src="node_modules/@popjs/util/dist/index.aio.js"></script>
```

## 包的发布

发布之前需要生成 ts 文件

```
yarn doc
```

```
nrm use npm
yarn publish
```
npm package: @popmenu/admin-ui
Description: React components specifically for the MyPop web app.
Author: Popmenu Design System Team
Latest version: 0.152.0

# @popmenu/admin-ui

Components for the Admin application.

## Installation

packages are available on NPM. @popmenu/common-ui is a peer-dependency for all sub-system components.

```
yarn add @popmenu/admin-ui
```

## Usage

Common components are ready to use out of the box.

```jsx
import React from 'react'
import { Button } from '@popmenu/admin-ui'

const MyComponent = () => {
  return <Button>Click Me!</Button>
}
```
npm package: @popmenu/common-ui
Description: React components for all Popmenu apps on the web.
Author: Popmenu Design System Team
Latest version: 0.152.0

# @popmenu/common-ui

The base set of component for the Popmenu Design System.

## Installation

packages are available on NPM. @popmenu/common-ui is a peer-dependency for all sub-system components.

```
yarn add @popmenu/common-ui
```

## Usage

Common components are ready to use out of the box.

```jsx
import React from 'react'
import { Button } from '@popmenu/common-ui'

const MyComponent = () => {
  return <Button>Click Me!</Button>
}
```
npm package: @popmenu/star-print
Description: StarPRNT React Native bridge for Star Micronics Bluetooth/LAN printers
Author: Ruben Casas
Latest version: 1.3.6


# react-native-star-prnt

react-native bridge for [Star micronics printers](http://www.starmicronics.com/pages/All-Products).

Ionic/Cordova Version ➜ [here](https://github.com/auctifera-josed/starprnt)

## Installation

`$ npm install react-native-star-prnt --save`

### Link

`$ react-native link react-native-star-prnt`


#### iOS Configuration

1. In XCode, go to Build Phases, Link Binary with Libraries and Add the following frameworks:

    - Go to `node_modules` ➜ `react-native-star-prnt` ➜ `ios` ➜ `Frameworks` and add `StarIO.framework` and `StarIO_Extension.framework`
    - Add the `CoreBluetooth.framework`
    - Add the `ExternalAccessory.framework`
2. Go to Build Settings ➜ Search Paths and Add 
`$(PROJECT_DIR)/../node_modules/react-native-star-prnt/ios/Frameworks` to Framework Search Paths  

For Bluetooth printers:

1. Click on the information property list file (default : “Info.plist”).
2. Add the “Supported external accessory protocols” Key.
3. Click the triangle of this key and set the value for the `Item 0` to `jp.star-m.starpro`

## Usage
```javascript
import { StarPRNT } from 'react-native-star-prnt';

async function portDiscovery() {
    try {
      let printers = await StarPRNT.portDiscovery('All');
      console.log(printers);
    } catch (e) {
      console.error(e);
    }
  }

```
  
## Take a look at the [Documentation](/Documentation.md)
npm package: @popomore/cf-tools
Description: Cloudflare Tools
Author: popomore
Latest version: 1.0.1

# cf-tools

Cloudflare Tools

## Features

- Supported Country code ([ISO-3166-1 Alpha-2](https://www.iso.org/iso-3166-country-codes.html)) enum
- Supported [Cloudflare Durable Objects region](https://developers.cloudflare.com/durable-objects/reference/data-location/#supported-locations-1) enum (`LocationHint`)
- Country to LocationHint mapping

## Usage Example

```typescript
import { getLocationHint, CountryAlpha2 } from '@popomore/cf-tools';

const region = getLocationHint(CountryAlpha2.US); // e.g. 'wnam'
```

## Installation

```bash
npm install
```

## Build

```bash
npm run build
```

## Test

```bash
npm test
```

## Coverage

```bash
npm run coverage
```

## License

MIT
npm package: @popovdk/vue-base-lib
Description: Vue 3 base lib structure
Author: Danil Popov
Latest version: 0.0.3

# vue-base-lib

## Project setup
```
npm i -g vue-sfc-rollup
npm install
```

### Compiles and hot-reloads for development
```
npm run storybook
```

### Compiles and minifies for production
```
npm run build
```

### Lints and fixes files
```
npm run lint
```

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
npm package: @popovmp/camel-case
Description: Converts a string to camel case
Author: Popov
Latest version: 1.0.3

# Converts a text to camel case

Code:

```javascript
const {toCamelCase} = require("@popovmp@camel-case")

toCamelCase("foo")         // => foo
toCamelCase("-foo")        // => foo
toCamelCase("--foo")       // => foo
toCamelCase("-foo-bar")    // => fooBar
toCamelCase("_foo_bar")    // => fooBar
toCamelCase("_foo bar")    // => fooBar
toCamelCase(" Foo barBaz") // => fooBarBaz
```
npm package: @popovmp/dbiler
Description: DBil http client
Author: Popov MP
Latest version: 1.0.0

## DBil

DBiler is a http client to DBil.


## Installation

```
npm install @popovmp/dbiler
```

## Usage

```javascript
const {getDbiler} = require('@popovmp/dbiler')

const url    = 'http://example.com/api/dbil'
const secret = 'foo-bar'

const userDb = getDbiler(url, secret, 'user')

const query      = {email: 'john@example.com'}
const projection = {name: 1, email: 1, _id: 0}

userDb.findOne(query, projection, (user) => {
	if (user) // Object or undefined
		console.log(`User name: ${user.name}, email: ${user.email}`)
	else
		console.log('Cannot find such a user!')
})
```


## API

*DBiler* connects to a DBil client by url, secret, and DB name.

```javascript
const dbiler = getDbiler(url, secret, dbName)
```

The `dbiler` object provides the same method as `DBil` plus a callback.
The callback accepts a parameter corresponding to the DBil native return value. 

For example DBil's `count` returns count of object, but DBiler's `count` accepts a callback, which accepts a parameter count.

```javascript
// DBil
const dbil  = dbil.getDb(user)
const count = dbil.count({foo: 42})

// DBiler
const dbiler = dbiler.getDbiler(url, secret, user)
dbiler.count({foo: 42}, (count) => {
})
```

### Inserting documents

A document is of type `Object`.

```javascript
const doc     = {...}
const options = {skipSave: false}
dbiler.insert(doc, options, (id) => {
	console.log(typeof id) // string or undefined
})
```
### Finding documents

Use `find` or `findOne` to look for one or multiple documents matching you query.

* `find` returns an array of documents. If no matches, it returns an empty array.
* `findOne` returns the first found document or `undefined`.

```javascript
dbiler.find(query, projection, (docs) => {
	console.log( Array.isArray(docs) ) // => true
})

dbiler.findOne(query, projection, (doc) => {
	console.log(typeof doc) // => Object or undefined
})
```

### Counting documents

You can use `count` to count documents. It accepts the same query as `find`.

```javascript
dbiler.count(query, (count) => {
	console.log(typeof count) // => number
})
```

### Updating documents

`update` returns the `id` of the inserted doc or `undefined`:

```javascript
dbiler.update(query, update, options, (id) => {
	console.log(typeof id) // => string or undefined
})
```

### Removing documents

```javascript
dbiler.remove(query, options, (numRemoved) => {
	console.log(typeof numRemoved) // => number
})
```

### Saving DB

Yuo can force the DB save with the `save` method.
It is useful only if the previous `insert`, `update`, or `remove` were sent with option `{skipSave: true}`

```javascript
dbiler.save((isSaved) => {
	console.log(typeof isSaved) // => boolean
})
```
npm package: @popovmp/file-writer
Description: Provides fire-and-forget IO methods
Latest version: 1.7.0

# file-writer

## Description

**file-writer** provides methods for easy fire-and-forget file operations.

It prevents race conditions on multiple write operations for the same filename.
It schedules a write operation, if it is requested before the previous one has finished.

## Installation

```bash
npm install "@popovmp/file-writer"
```

## Usage

```javascript
import {appendAndForget, writeAndForget} from "@popovmp/file-writer";

writeAndForget("example.txt", "Some text\n");
appendAndForget("example.txt", "Another text\n");
```

It safely writes the following content to `example.txt`:

```javascript
import {appendAndForget} from "@popovmp/file-writer";

for (let i = 0; i < 1000; i++) {
    appendAndForget("example.txt", `Line ${i}\n`);
}
```

## Error handling

The lib logs the errors to the console by default. However, we can provide a custom error handler.

```javascript
import { errorHandler, writeAndForget } from "@popovmp/file-writer";

function errorHandler(err, filepath, stage) {
    console.error(`[file-writer] ${stage} error for ${filepath}:`, err);
}

setErrorHandler(errorHandler);
writeAndForget("hello.txt", "Hello, World!\n");
```

## Chekc is busy

**file-writer** provides functionality to check if there are ongoing operations.

```javascript

import { writeAndForget, isWriterBusy } from "@popovmp/file-writer";

writeAndForget("hello.txt", "Hello, World!\n");
console.log( isWriterBusy() ); // => true

setTimeout(() => {
    console.log( isWriterBusy() ); // => false
}, 100);
```
npm package: @popovmp/html-ast
Description: Parses a standard HTML string into an AST
Latest version: 1.5.0

# Parse a standard HTML string to AST

Example:

```javascript
import {parse} from "@popovmp/html-ast";

const html = `
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Page Title</title>
</head>
<body>
    <!-- Comment -->
    <h1 id="heading-1">Heading</h1>
    <p>Some text</p>
</body>
</html>`;

const ast = parse(html);
```

When the HTML string is parsed to a DOM object, the result is:
```json
{
  "tagName": "document",
  "attributes": {},
  "children": [
    {
      "tagName": "html",
      "attributes": {
        "lang": "en"
      },
      "children": [
        {
          "tagName": "head",
          "attributes": {},
          "children": [
            {
              "tagName": "meta",
              "attributes": {
                "charset": "UTF-8"
              },
              "children": [
                {
                  "tagName": "title",
                  "attributes": {},
                  "children": [
                    {
                      "tagName": "#text",
                      "value": "Page Title"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "tagName": "body",
          "attributes": {},
          "children": [
            {
              "tagName": "h1",
              "attributes": {
                "id": "heading-1"
              },
              "children": [
                {
                  "tagName": "#text",
                  "value": "Heading"
                }
              ]
            },
            {
              "tagName": "p",
              "attributes": {},
              "children": [
                {
                  "tagName": "#text",
                  "value": "Some text"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
```

Element properties: "getAttributeNames", "getAttribute", "getId", "getClassName", "getClassList".

Query methods: "getElementById", "getElementsByClassName", "getElementsByTagName".
npm package: @popovmp/html-template-engine
Description: HTML Template Engine using valid HTML files and comments
Latest version: 1.6.2

# HTML Template Engine

The template engine encodes the operations within HTML comments.

The purpose is to have absolutely valid HTML templates.

```html
Replace the placeholder with the value of `viewModel.key`.
<!-- key -->

Include the file content
<!-- include(filename.html); -->

The file content will be included if `viewModel.isInclude` is true.
<!-- includeIf(isInclude, filename.html); -->

<!-- renderIf(property); -->
This content is conditional
<!-- endIf(); -->
```

## Examples:

### Render a template

```javascript
const html = `
    <h1><!-- title --></h1>
    <!-- include(hello-world.html); -->
    <!-- includeIf(hello, hello-world.html); -->
    <!-- renderIf(section); -->
        <h2>Section</h2>
    <!-- endIf(); -->`;
const viewModel = { title: "Hello, World!", hello: true, section: true };
const result    = await renderTemplate(html, viewModel, ".");
```

### Replace placeholders in the HTML with the values from the view model.

Template syntax: `<!-- key -->` Where `key` is a property in the viewModel.

```javascript
const html      = "<h1><!-- title --></h1>";
const viewModel = { title: "Hello, World!" };
const result    = replacePlaceholders(html, viewModel);
console.log(result); // "<h1>Hello, World!</h1>"
```

### Include files in the HTML template.

Template syntax: `<!-- include(filename.html); -->`

```javascript
const html   = "<div><!-- include(hello-world.txt); --></div>";
const result = await includeFiles(html, ".");
console.log(result); // "<div>Hello, World!</div>"
```

### Include files conditionally in the HTML.

Template syntax: `<!-- includeIf(isInclude, filename.html); -->` Where
`isInclude` is a property in the viewModel. If the property is `true`, the file
is loaded and its content replaces the placeholder.

If the property is `false`, the function does not check for the file and does not remove the comment.
Yuo can use the `minifyHtml` function ot remove all the HTML comments later.

```javascript
const html      = "<div><!-- includeIf(show, hello-world.html); --></div>";
const viewModel = { show: true };
const result    = await includeFilesIf(html, ".", viewModel);
console.log(result); // "<div>Hello, World!</div>"
```

### Render the content conditionally.

```html
<h1>Template file</h1>
<!-- renderIf(property); -->
    <h2>Content to render if the property is true.</h2>
<!-- endIf(); -->
```

```javascript
const html =
    <h1>Template file</h1>
    <!-- renderIf(show); -->
    <h2>Shown</h2>
    <!-- endIf(); -->
    <!-- renderIf(dontShow); -->
        <h2>Not shown</h2>
    <!-- endIf(); -->`;

const viewModel = { show: true, dontShow: false };
const result    = renderIf(html, viewModel);
console.log(result); // "<h1>Template file</h1><h2>Shown</h2>"
```

### Minify the HTML - remove leading spaces, empty lines and trim.

```javascript
const html   = "  <div><span>Hello, World!</span><!-- Comment  --></div>  ";
const result = minifyHtml(html); //=> "<div><span>Hello, World!</span></div>"
```
npm package: @popovmp/ini-parser
Description: INI file parser
Author: Popov
Latest version: 1.2.1

# A Simple INI Parser

Parser an INI formatted string to JSON.
Allow arbitrary texts in groups and keys.
Allow leading spaces.
Parses integer and float numbers, booleans, and null.

Input:
```ini
;; Global fields
    global = foo
    let another_Global-var = 3.14
    
    ; Arbitrary text in group
[may group]
    gr-42 = 42
    boolean = true
    falsy = False
    nil = null
    
    ; Empty string value
PascalCase=
; Negative float number
  negative = -2.2
    [Other_group]
    my long variable = this is a long text
```

Usage:
```js
const {parse} = require('@popovmp/ini-parser')
const output = parse(input)
```

Output:

```json
{
  "global": "foo",
  "letAnotherGlobalVar": 3.14,
  "mayGroup": {
    "gr42": 42,
    "boolean": true,
    "falsy": false,
    "nil": null,
    "pascalCase": "",
    "negative": -2.2
  },
  "otherGroup": {
    "myLongVariable": "this is a long text"
  }
}
```
npm package: @popovmp/json-value-parser
Description: Parses JSON values to number, boolean, null, or string
Author: Popov
Latest version: 1.1.0

# Parses JSON values to number, boolean, null, or string

Code:
```javascript
const {parseJsonValue} = require('@popovmp/json-value-parser')

const json = {
	"foo"  :  "bar",
    "iNum" :   "42",
    "iPos" :  "+42",
    "iNeg" :  "-42",
    "fNum" : "3.14",
    "fPos" : "+.14",
    "fNeg" : "-3.1",
    "true" : "true",
    "false": "false",
    "nil"  : "null"
};

const obj = {};

for (const key of Object.keys(json)) {
    obj[key] = parseJsonValue(json[key]);
}
```

Output:
```javascript
const obj = {
	foo  : "bar",
	iNum :    42,
	iPos :    42,
	iNeg :   -42,
	fNum :  3.14,
	fPos :  0.14,
	fNeg :  -3.1,
	true :  true,
	false: false,
	nil  :  null,
};
```
npm package: @popovmp/jwt
Description: JWT helpers for NodeJS
Latest version: 2.0.0

# JWT

A module for working with JWT (JSON Web Tokens) in NodeJS.

```typescript
import {createJwt, getPayloadJwt, validateJwt, parseJwtPayload, isTokenJwt, encodeSha256} from "@popovmp/jwt";

const nowSec = Math.floor(Date.now() / 1000);
const oneHour = 60 * 60;

const payload = {
  "iss": "example.com",
  "iat": nowSec,
  "exp": nowSec + oneHour,
  "aud": "John",
};

// Create JWT with a key
const key = "foobar";
const jwt = createJwt(payload, key);

// Check if the JWT is valid
const isValid = validateJwt(jwt, key);

// Check if authorization header contains a JWT token
const authHeader = "Bearer " + jwt;
const isJWT = isTokenJwt(authHeader);

// Get the JWT payload
const decodedPayload = getPayloadJwt(jwt);

// Parse and validate Authorization header
const settings = {key: "foobar", iss: "example.com", aud: "John"};
const validatedPayload = parseJwtPayload(authHeader, settings);

// Low-level HMAC SHA-256 encoding (used internally)
const signature = encodeSha256("data", "secret-key");
```
npm package: @popovmp/micro-tester
Description: A miniature tester for nodejs
Author: PopovMP
Latest version: 2.3.0

# A miniature Tester helper for nodejs

**micro-tester** is a very simple, zero dependencies helper for unit tests.

Homepage: https://github.com/popovmp/micro-tester

## Synopsis

```javascript
const { strictEqual } = require('assert');
const {init, test, done, ensure} = require('@popovmp/micro-tester');

init('My tests');

test('6 * 7 = 42', () => {
    const actual   = 6 * 7;
    const expected = 42;
    strictEqual(actual, expected);
});

done();
```

## Installation

```
npm install @popovmp/micro-tester
```

## Usage

**micro-tester** runs a testFunction, collects stats, and prints a summary.

Start the test file with `init('Test set description');`. The `intit` function resets the testing statistics.
It also prints the provided message on the console.

Perform test: `test('Test description', () => {...})`. **micro-tester** a tests passes when the function completes.
The test fails when the function throws.

Call `ensure();` at the end of the test file. It shows a test summary and throws an error if there are failed tests.

If you don't want to throw errors, call `done()` at the end of the test set.


```javascript
const { strictEqual } = require('assert');
const {init, test, done, ensure} = require('@popovmp/micro-tester');

init('My tests');

test('6 * 7 = 42', () => {
    const actual   = 6 * 7;
    const expected = 42;
    strictEqual(actual, expected);
});

ensure(); 
```

Output - passed test:

![Micro Tester - passed test](https://image-holder.forexsb.com/store/micro-tester-success.png)

Output - failed test:

![Micro Tester - failed test](https://image-holder.forexsb.com/store/micro-tester-failure.png)

You may have several testing groups:

```javascript
init('Testing foo');

test();
test();

done();

init('Testing bar');

test();
test();

ensure(); // Call `ensure` if you want to throw on a failed test
```

## Run all tests

**micro-tester** exports a `micro-tester` command. It finds and runs all tests in `./test` folder.

The accepted test files format is `test-name.test.js`.

You can set this command in your `package.js`:

```json
{
  "scripts": {
    "test": "micro-tester"
  }
}
```

## Methods

**micro-tester** exports three methods:

```javascript
/**
 * Resets the stats and shows the message
 * @param {string} message
 */
function init(message) { }
```

```javascript
/**
 * Performs a test
 *
 * @param { string   } message
 * @param { function } assertion
 */
function test(message, assertion) { }
```

```javascript
/**
 * Called at the end of testing.
 * It resets the stats.
 */
function done() { }
```

```javascript
/**
 * Called at the end of testing.
 * It resets the stats.
 * It throws error on failed tests.
 */
function ensure() { }
```

## License

`micro-tester` is free for use and modification. No responsibilities for damages of any kind.

Copyright (c) 2020 Miroslav Popov
npm package: @popovmp/nedb-service
Description: Loads `nedb` DB from a folder on startup and provides connections.
Author: Popov MP
Latest version: 1.0.4

# Loads and provides NEDB connections 

**nedb-service** loads NEDB dat abases from a folder and provides connections. It flushes the DB connections every hour.

The lib provides singleton persistent connections, which can be used in different modules of the application.  

Homepage: https://github.com/popovmp/nedb-service

## Synopsis

```javascript
// Init in your `index.js`
const dbService = require("@popovmp/nedb-service");
dbService.init(path.join(__dirname, "db-folder"), ".db");

// Use in all other files
const pageDb = dbService.getConnection("page");

pageDb.fineOne({author: "popov"}, {_id: 0},
   pageDb_findOne_ready);

function pageDb_findOne_ready(err, data) {
   console.log(JSON.stringify(data));
}
````

## Installation

```
npm install @popovmp/nedb-srevice
```

## Logging errors

**nedb-service** uses the **micro-logger** ( https://npmjs.com/package/@popovmp/micro-logger ) package for logging errors.

When **micro-logger** is not initialized, it logs in the console.
If you want to log the errors in a log file, init **micro-logger** in your `index.js` as follows;

```javascript
const logger = require("micro-logger").init("./logs/log.txt");
```

## Methods

**nedb-service** exports two methods:

```javascript
/**
 * Initialize the DB Service
 * Reads the DB files and sets a connection for each of them
 *
 * @param {string} dbDirectory - directory containing the DB files
 * @param {string} dbFileExt - DB files extension (including the dot)
 */
function init(dbDirectory, dbFileExt)
````

```javascript
/**
 * Gets a connection to a DB
 *
 * @param {string} dbName
 * @returns {DataStore}
 */
function getConnection(dbName)
````

## License

`nedb-service` is free for use and modification. No responsibilities for damages of any kind.

Copyright (c) 2020 Miroslav Popov
npm package: @popovmp/options-parser
Description: Parses CLI options
Author: Popov
Latest version: 1.3.0

# A Simple CLI Options Parser

Parses options.

Features:
 * Converts the keys to camel-case.
 * Collects multiple options in an array.
 * Converts the options to the correct data types: string, null, boolean, or number.

Input:
```shell
node foo --foo bar --foo-bar boo --FooBar 42 --foo_bar_baz null false 3.14 
```

Code:
```javascript
const {parceOptions} = require("@popovmp@options-parser");
const options = parseOptions();
console.log( JSON.stringify(options) );
```

Output:
```json
{
  "foo": "bar",
  "fooBar": ["boo", 42],
  "fooBarBaz": [null, false, 3.14]
}
```
npm package: @popovmp/postmark
Description: Sends emails via Postmark or logs them locally
Author: Popov MP
Latest version: 1.0.2

# Postmark

## Sends emails via Postmark

`Postmark` sends text mails via https://postmarkapp.com.

## Synopsis

```javascript
const { sendMail } = require('@popovmp/postmark')

// Email model
const mail = {
	to     : 'john@example.com',
	tag    : 'Foo',              // Optional. Helps to sort mails in PostMark
	subject: 'Test email subject',
	message: 'Test email body.',
}

// Fire and forget
sendMail(mail)
```

## Initialization

`Postmark` depends of own modules `config-json` and `micro-logger`.
They have to be initialized in the application's `index.js`

```javascript
// in index.js
const { configGet } = require('@popovmp/config-json').init(__dirname)
require('@popovmp/micro-logger').init(configGet('loggerLogPath'), configGet('loggerOptions'))
```

`Postmark` needs of teh log file path, logger options, your email and your Postmark token.

The easiest way to have them is to set the info in `config.json`.

Optionally, you can have a public `config.json` and a private `config-local.json`.

Example of `config.json` or `config-local.json`
```json
{
  "loggerLogPath": "./log.txt",
  "loggerOptions": { "tee": false, "suppress": ["debug"] },
  "postmarkToken": "set-your-post-mark-app-token-here",
  "emailDriver"  : "postmark",
  "fromEmail"    : "John Doe <john@example.com>"
}
```

The `emailDriver` can be `log` or `postmark`.

## Methods


**sendMail(mail)**

`mail` is defined as follows:

```js
/**
 * @typedef {Object } MailModel
 *
 * @property { string } to
 * @property { string } subject
 * @property { string } message
 * @property { string } [replyTo]
 * @property { string } [tag]
 */
```

## Dependencies

`config-json` https://www.npmjs.com/package/@popovmp/config-json

`micro-logger` https://www.npmjs.com/package/@popovmp/micro-logger

Copyright @ 2022 Miroslav Popov