open-index/open-npm huggingface dataset:
npm package: @sixtyninecommerce/client
Description: JavaScript/TypeScript client for sixtynine-commerce storefronts
Latest version: 0.2.2

# @sixtyninecommerce/client

JavaScript/TypeScript client for [sixtynine-commerce](https://sixtyninecommerce.com) storefronts.

## Install

```bash
npm install @sixtyninecommerce/client
```

## Quick Start

```typescript
import { createStorefrontClient } from '@sixtyninecommerce/client';

const client = await createStorefrontClient({
  storeCode: 'my-store',
  cdnUrl: 'https://cdn.my-store.com',
});

// Products
const product = await client.commerce.getProduct('blue-shirt');
const results = await client.commerce.searchProducts({ term: 'shirt' });

// Cart
await client.commerce.addToCart(product.variants[0].id, 1);
const order = await client.commerce.getActiveOrder();

// CMS content
const page = await client.content.resolvePath('/about-us');
const menu = await client.content.getMenu('main-menu');

// Routes
const routes = await client.navigation.getRoutes();

// Pricing helpers
client.pricing.formatPrice(2999, 'EUR'); // "€29.99"
client.pricing.getTierForQuantity(variant.priceTiers, 10);
client.pricing.validateOrderMinimums(order, { minOrderAmount: 5000 });

// Media helpers
client.media.assetUrl('shop/source/photo.jpg');
client.media.getPresetUrl(asset, 'm', 'webp');
client.media.getResponsiveImageData(asset); // { src, srcSet, sizes, alt }

// Language & auth
client.setLanguage('nl');
client.setAuthToken(token);

// Escape hatch for custom queries
const data = await client.graphql(`query { activeChannel { id } }`);
```

## Modules

| Module | Description |
|--------|-------------|
| `commerce` | Products, collections, search, cart, checkout, customer auth |
| `content` | CMS resolve, content items, assets, forms, content strings, menus |
| `navigation` | Unified route manifest, route lookup |
| `pricing` | Price formatting, tier lookup, order validation (pure functions) |
| `media` | CDN URLs, preset URLs, responsive image data (pure functions) |
| `currency` | Exchange rates, currency conversion |

## Tree-Shakeable Imports

```typescript
// Import only pricing (no network code)
import { formatPrice, getTierForQuantity } from '@sixtyninecommerce/client/pricing';

// Import only media helpers
import { PRESETS, getResponsiveImageData } from '@sixtyninecommerce/client/media';
```

## Error Handling

Cart and checkout mutations throw `MutationError` with the Vendure error code:

```typescript
import { MutationError } from '@sixtyninecommerce/client';

try {
  await client.commerce.addToCart(variantId, 100);
} catch (error) {
  if (error instanceof MutationError) {
    // error.errorCode — "INSUFFICIENT_STOCK_ERROR"
    // error.message — "Only 3 items available"
    // error.fields — { quantityAvailable: 3 }
  }
}
```

## Requirements

- Node.js 20+ / modern browser / edge runtime
- Standard `fetch` API (inject custom fetch via config for SSR)
npm package: @sixxgate/lint
Description: Opinionated ESLint configuration builder inspired Standard
Author: Matthew Holder
Latest version: 4.0.0

# Quick and Easy Opinionated Linting Setup

## ESLint

Provides a strict, quick, and easy to setup opinionated ESLint rule set for;

- JavaScript
- TypeScript
- Node.js
- Vue.

These rulesets are loosely based on Standard JS and Standard TS.

The setup should use a `.eslintrc.cjs` file.

Example:

```js
'use strict'
const { defineConfig } = require('./dist/index.cjs')

module.exports = defineConfig(({ useNode, useTypeScript }) => {
  // Enable these rulesets:
  useNode()
  useTypeScript('./tsconfig.json')

  // Additions and overrides for ESLint.
  return {
    root: true,
    env: { es2021: true },
    reportUnusedDisableDirectives: true
  }
})
```

Support function from `defineConfig`.

- `usePrettier`
- `useNode`
- `useTypeScript`
- `useVue`

JavaScript is always supported by default.

The following ESLint plug-ins are used:

- `prettier`
- `n`
- `import`
- `promise`
- `typescript`
- `vue`

## Prettier

Provides a compatible opinionated Prettier configuration to run Prettier separately.

Simply add a `prettier.config.cjs` with the following contents:

```js
module.exports = require('@sixxgate/lint/prettier.config.cjs')
```
npm package: @siyahjs/swagger
Description: Plugin for Siyah to auto-generate Swagger page
Latest version: 0.1.4

# @siyahjs/swagger
Plugin for [siyah](https://gtihub.com/siyahjs/siyah) to auto-generate Swagger page.

## Installation
```bash
bun add @siyahjs/swagger
```

## Example
```typescript
import { Siyah, t } from 'siyah'
import { swagger } from '@siyahjs/swagger'

const app = new Siyah()
    .use(swagger())
    .get('/', () => 'hi', { response: t.String({ description: 'sample description' }) })
    .post(
        '/json/:id',
        ({ body, params: { id }, query: { name } }) => ({
            ...body,
            id,
            name
        }),
        {
            params: t.Object({
                id: t.String()
            }),
            query: t.Object({
                name: t.String()
            }),
            body: t.Object({
                username: t.String(),
                password: t.String()
            }),
            response: t.Object({
                username: t.String(),
                password: t.String(),
                id: t.String(),
                name: t.String()
            }, { description: 'sample description' })
        }
    )
    .listen(8080);
```

Then go to `http://localhost:8080/swagger`.

# config

## provider
@default 'scalar'
Choose between [Scalar](https://swagger.io/specification/v2/) & [SwaggerUI](https://github.com/swagger-api/swagger-ui)

## scalar
Customize scalarConfig, refers to [Scalar config](https://github.com/scalar/scalar)

## swagger
Customize Swagger config, refers to [Swagger 3.0.3 config](https://swagger.io/specification/v3/)

## path
@default '/swagger'

The endpoint to expose Swagger

## excludeStaticFile
@default true

Determine if Swagger should exclude static files.

## exclude
@default []

Paths to exclude from the Swagger endpoint
npm package: @siyamhosan/redis-remotify
Description: a tiny library for remote calls and events via redis
Author: siyamhosan
Latest version: 0.2.6

# redis-remotify

A tiny library for remote calls and events via redis.

Install via npm:

    yarn add @siyamhosan/redis-remotify

# Author

- [phiresky](https://github.com/phiresky)

## Example use

Say you have a backend like this:

```typescript
class Squarer {
	public async square(x: number) {
		// maybe do some more interesting stuff here
		return x ** 2;
	}
}
```

But you want to use the functions it provides in different processes. With this library, you can start a server process like this:

```typescript
import Redis from "ioredis";
import { Listen } from "@siyamhosan/redis-remotify";

const squarer = new Squarer();

const pub = new Redis();
const sub = new Redis();
const r = new Listen("backend", { pub, sub });
// add methods to RPC interface with a name like Squarer.square()
r.listenAll(squarer);
```

And then call the functions from one or more separate node processes like this:

```typescript
import { Remotify } from "@siyamhosan/redis-remotify";

const backend = new Remotify("backend", { pub, sub });
const remoteSquarer = backend.remotifyClass(Squarer);
for (const x of [1, 2, 3, 4, 5, 11]) {
	const res = await remoteSquarer.square(x);
	// typeof res is number as expected
	console.log(x, "^2 =", res);
}
```

Of course it also works with single functions or other non-class objects. A more complete example can be seen in [examples/elaborate.ts](examples/elaborate.ts).
npm package: @siyu/text-label
Description: 一个文本划词高亮工具
Latest version: 0.0.13

### @siyu/text-label

这是一个为文本标签提供划词高亮能力的组件，支持react

```js
const text = document.getElementById("text");
const scope = new TextLabelScope(text, {
    onLabel: info => {
        //划词结束回调
    },
    onRelabel: info => {
        //修改左右边界回调
    },
    onSelect: info => {
        //选中标注回调
    },
    onStartLabel: () => {
        //开始划词回调
    },
    color: '',//初始划词标注颜色
    labelOpacity: 0.7,//初始划词标注透明度
    labelDirectory: true,//是否直接标注
    initValue: [],//标注初始值
});
```

![image-20220406014444567](./images/Readme/image-20220406014444567.png)
npm package: @siyu971017/turtle.js
Description: JavaScript version of turtle graphics
Author: Siyu1017
Latest version: 1.5.0

# turtle.js

JavaScript version of turtle graphics

[![npm version](https://img.shields.io/npm/v/@siyu971017/turtle.js.svg)](https://www.npmjs.org/package/@siyu971017/turtle.js)
[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@siyu971017/turtle.js@latest)](https://bundlephobia.com/package/@siyu971017/turtle.js@latest)
[![npm downloads](https://img.shields.io/npm/dm/@siyu971017/turtle.js.svg)](https://npm-stat.com/charts.html?package=@siyu971017/turtle.js)
[![jsdelivr hits](https://data.jsdelivr.com/v1/package/npm/@siyu971017/turtle.js/badge?style=rounded)](https://www.jsdelivr.com/package/npm/@siyu971017/turtle.js)
[![Known Vulnerabilities](https://snyk.io/test/npm/@siyu971017/turtle.js/badge.svg)](https://snyk.io/test/npm/@siyu971017/turtle.js)

> Turtle.js’ website is now available: https://turtlejs.vercel.app/

## Install
Use npm

```
$ npm install @siyu971017/turtle.js
```

Or grab from [jsDelivr CDN](https://www.jsdelivr.com/package/npm/@siyu971017/turtle.js)

```html
<script src="https://cdn.jsdelivr.net/npm/@siyu971017/turtle.js/dist/turtle.umd.min.js"></script>
```

## Usage

1. Import the turtle

    ```js
    import turtle from '@siyu971017/turtle.js';
    ```
2. Call the turtle-function after the target canvas element has loaded

    ```js
    var t = new turtle(canvasElement);
    ```

## Methods
See [Docs](https://turtlejs.vercel.app/docs) for more information

## Examples

### Get turtle's position
```js
t.position().then(position => {
    console.log('position:', position);
})
```

### Draw a triangle
```js
for (let i = 0; i < 3; i++) {
    t.forward(50);
    t.right(120);
}
```

### Draw a square
```js
for (let i = 0; i < 4; i++) {
    t.forward(50);
    t.right(90);
}
```

### Draw a regular polygon with any number of sides
```js
function drawRegularPolygon(sides) {
    if (sides < 3) {
        sides = 3;
    }
    for (let i = 0; i < sides; i++) {
        t.forward(50);
        t.right(360 / sides);
    } 
}

drawRegularPolygon(6);
```

### Change the shape
```js
t.shape('turtle');
t.forward(50);
t.shape('arrow');
t.backward(50);
t.shape('classic');
```
npm package: @siyuan0215/as-cli
Description: angularjs staging cli, for generating scaffold with angularjs
Author: siyuan0215
Latest version: 1.0.1

# AS-CLI

自动生成基于 angular.js@1.5+ 的移动端 H5 单页面应用脚手架；

## 一、环境依赖

本 `CLI` 主要依赖以下环境：
* `Node.js`：长期稳定支持版本（LTS） 即可，点击「[传送门](https://nodejs.org/en/ )」进行安装；
* `Npm` 或 `Yarn` ，包管理工具，其中 `Node.js` 会自带安装 `Npm`，但是鉴于 `Npm` 对于依赖包的下载时好时坏（需要翻墙），推荐使用 `Yarn`；

如果你想要了解更多关于 Npm 和 Yarn 方面的知识，请点击「[传送门 - Npm](https://www.npmjs.com/)」或「[传送门 - Yarn](https://yarn.bootcss.com/)」。

## 二、安装说明

确保当前的开发环境已经安装了上述的依赖后，在你的终端中输入如下命令：

```
# 若当前使用 Npm 进行包管理
npm install @siyuan0215/as-cli -g

# 若当前使用 Yarn 进行包管理
yarn global add @siyuan0215/as-cli
```

需要注意的是，不论使用哪种包管理工具，请以全局模式（`-g / global`）进行安装，以便于将 `as-cli` 注入到系统环境随时使用。

## 三、使用说明

本 `CLI` 会自动在当前目录创建 `projectName` 文件夹，下载脚手架项目并自动完成所需依赖包的安装。

**请注意，确保你传入的 `projectName` 参数对应的文件夹内不会有你的重要的数据。**

具体执行命令如下：

```bash
# projectName is variable
as-cli <projectName>
```
其中：
*  `projectName` ：想要创建的项目的名称；
*  `options` ：命令执行时传入的参数；

## 四、参数说明

| 完成 | 参数 | 必须 | 说明 |
| :--: | :----: | :--: | :---- |
|- [x]|`-y, --with-yarn`|否|安装依赖时，使用 `yarn` 包管理器进行安装|
|- [x]|`-c, --cache`|否|安装依赖时，禁止清除缓存|
npm package: @siyuan0215/rs-cli
Description: react staging cli, for generating scaffold with react and umiJs
Author: siyuan0215
Latest version: 1.2.5

# @siyuan0215/rs-cli

一键生成基于 React 和 UmiJS 的前端管理控制台单页面应用脚手架；

## 环境依赖

主要依赖 `Node@16` 版本；

> 未来有可能支持 16 以上版本，目前暂无计划。

如果你想要了解更多关于 npm 和 yarn 方面的知识，请点击「[npm 传送门](https://www.npmjs.com/)」或「[yarn 传送门](https://yarn.bootcss.com/)」。

## 安装

在终端中输入如下命令：

```
# 若当前使用 Npm 进行包管理
npm install @siyuan0215/rs-cli -g

# 若当前使用 Yarn 进行包管理
yarn global add @siyuan0215/rs-cli
```

🌈 最佳实践：不论使用哪种包管理工具，请以全局模式（`-g / global`）进行安装，以便于将 `rs-cli` 注入到系统路径随时使用。

## 使用

执行如下命令：

```bash
rs-cli create <project-name> [options]
```

自动在当前执行命令的目录创建 `<project-name>` 文件夹，下载脚手架项目并自动安装依赖。

> 目前 cli 仅支持创建项目。

## Commands 说明

| Commands                  | 说明                                                                    |
| :---------------------|:---------------------------------------------------------------------- |
| `rs-cli create <project-name> [options]`         | 创建名字为 `<project-name>` 的项目                        |


### `create` options


| 参数                   | 必须 | 说明                                                                    |
| :--------------------- | :--: | :---------------------------------------------------------------------- |
| `-C, --cache`          |  否  | 安装项目依赖时，使用缓存，默认 `false`                                  |
| `-F, --force`          |  否  | 如果 `projectName` 文件加已存在，会强制清空文件夹内的内容，默认 `false` |
| `-R, --registry <url>` |  否  | 指定安装项目依赖的源存                                                  |
| `-T, --taobao`         |  否  | 指定淘宝源为安装依赖的源存，默认 `false`                                |
| `-Y, --with-yarn`      |  否  | 使用 `yarn` 包管理器进行依赖安装，默认使用 npm 安装                     |
| `-H, --help`           |  否  | 帮助查看 `create 的 options`                                                                |
npm package: @size-limit/dual-publish
Description: dual-publish plugin for Size Limit
Author: Andrey Sitnik
Latest version: 9.0.0

# Size Limit File Plugin

The plugin for [Size Limit] to track file size.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/esbuild
Description: esbuild plugin for Size Limit
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit esbuild Plugin

The plugin for [Size Limit] to track dependencies size by esbuild.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/esbuild-why
Description: esbuild plugin for Size Limit
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit esbuild-why Plugin

The plugin for [Size Limit] to create report about the size of
your dependencies.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/file
Description: File size plugin for Size Limit
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit File Plugin

The plugin for [Size Limit] to track file size.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/preset-app
Description: Size Limit preset for applications
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit Preset for Applications

The preset for [Size Limit] for applications with own bundlers. It uses file
and time plugins to track the time to execute JS.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/preset-big-lib
Description: Size Limit preset for big open source libraries
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit Preset for Big Libraries

The preset for [Size Limit] for libraries > 10 kB. It uses
webpack, file and time plugins to track the time of JS download and execution
of library and all dependencies.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/preset-small-lib
Description: Size Limit preset for small open source libraries
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit Preset for Small Libraries

The preset for [Size Limit] for libraries < 10 kB. It uses
esbuild and file plugins to track the size of all files and dependencies.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/time
Description: Downloading and running time plugin for Size Limit
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit Time Plugin

The plugin for [Size Limit] to track JS download and execution time by [estimo]
and Puppeter.

## Customize Network Speed

By default, Size Limit measures the loading time of your files using a slow 3G
network (50 kB/s) without latency. You can customize these settings for each
check by modifying your Size Limit configuration:

1. Install the preset:

```sh
npm install --save-dev size-limit @size-limit/file @size-limit/time
```

2. Add the size-limit [config](https://github.com/ai/size-limit?tab=readme-ov-file#limits-config):

```js
// .size-limit.js
export default [
  {
    path: 'index.js',
    time: {
      networkSpeed: '5 MB', // Custom network speed for loading files
      latency: '800 ms', // Custom network latency
      loadingMessage: 'on fast 4G' // Custom message in output
    }
  }
]
```

3. After configuring, run Size Limit to check the customized loading time:

```sh
    $ npm run size-limit

      Package size: 998.6 kB
      Loading time: 200 ms   on fast 4G
      Running time: 214 ms   on Snapdragon 410
      Total time:   1.3 s
```

See [Size Limit] docs for more details.

[Size Limit]: https://github.com/ai/size-limit/
[estimo]: https://github.com/mbalabash/estimo

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/webpack
Description: Webpack plugin for Size Limit
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit Webpack Plugin

The plugin for [Size Limit] to track dependencies size by webpack.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/webpack-css
Description: Webpack plugin to support css for Size Limit
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit Webpack Plugin

The plugin for [Size Limit] to add CSS support for webpack.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @size-limit/webpack-why
Description: Webpack Statoscope plugin for Size Limit
Author: Andrey Sitnik
Latest version: 12.0.1

# Size Limit webpack-why Plugin

The plugin for [Size Limit] to create report about the size of
your dependencies.

See Size Limit docs for more details.

[Size Limit]: https://github.com/ai/size-limit/

<a href="https://evilmartians.com/?utm_source=size-limit">
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
       alt="Sponsored by Evil Martians" width="236" height="54">
</a>
npm package: @siziksu/args
Description: Command line arguments tool
Author: Esteban Latre
Latest version: 1.1.0

# args

## Execution with node.js

The script should be called like:

```bash
$ node ./app/index.js --port=1234 -n "John Doe" --numbers 134,25,3.5,41.23 --tags tag1,tag2,tag3 -x --tags=tag4 -t=tag5,tag6 -g=25,3
```

## Usage

__app.js__
```javascript
import { Args } from '@siziksu/args'

const args = new Args()
args.options({
    debug: false, // Include debug info
    includeInput: true, // Include the parameters in the response
    includeProcessed: true // Include the real processed parameters in the response
}).parameters({ // You define the params and the types to be used
    '--port': Number, // --port <number> or --port=<number>
    '--age': Number, // --age <number> or --age=<number>
    '--name': String, // --name <string> or --name=<string>
    '--tags': [String], // --tag <string>,... or --tag=<string>,...
    '--allowed': Boolean,
    '--numbers': [Number] // --numbers <number>,... or --numbers=<number>,...
}).aliases({ // You define the aliases to be used
    '-p': '--port', // -p <number> or -p=<number>; result is stored in --port
    '-a': '--age', // -a <number> or -a=<number>; result is stored in --age
    '-n': '--name', // -n <string> or -n=<string>; result is stored in --name
    '-t': '--tags', // -t <string>,... or -t=<string>,...; result is stored in --tags
    '-x': '--allowed', // -x; result is stored in --allowed
    '-g': '--numbers' // -g <number>,... or -g=<number>,...; result is stored in --numbers
})
const params = args.process()

console.log(params)
```

__Output__
```javascript
{
  input: '--port=1234 -n John Doe --numbers 134,25,3.5,41.23 --tags tag1,tag2,tag3 -x --tags=tag4 -t=tag5,tag6 -g=25,3',
  valid_arguments: '--port 1234 --name John Doe --numbers 134,25,3.5,41.23 --tags tag1,tag2,tag3 --allowed --tags tag4 --tags tag5,tag6 --numbers 25,3',
  args: {
    numbers: [ 25, 3, 134, 25, 3.5, 41.23 ],
    tags: [ 'tag5', 'tag6', 'tag4', 'tag1', 'tag2', 'tag3' ],
    allowed: true,
    name: 'John Doe',
    port: 1234
  }
}
```

## Testing

__index.js__
```javascript
import { Args } from '@siziksu/args'

const argv = ['--port=1234', '-n', 'Siziksu', '--allowed', '--numbers', '134,25,3.5,41.23', '--tags', 't1,t2,t3', '--tags=t4', '-t=t5,t6', '-g=25,3']

const args = new Args()
args.argv(argv) // Add the 'argv' defined
    .options({ debug: true })
    .parameters({
        '--port': Number,
        '--age': Number,
        '--name': String,
        '--tags': [String],
        '--allowed': Boolean,
        '--numbers': [Number]
    }).aliases({
        '-p': '--port',
        '-a': '--age',
        '-n': '--name',
        '-t': '--tags',
        '-x': '--allowed',
        '-g': '--numbers'
    })
const params = args.process()

console.log(params.args)
```

__Output__
```javascript
{
  numbers: [ 25, 3, 134, 25, 3.5, 41.23 ],
  tags: [ 't5', 't6', 't4', 't1', 't2', 't3' ],
  allowed: true,
  name: 'Siziksu',
  port: 1234
}
```
npm package: @siziksu/calc
Description: Command line calculator
Author: Esteban Latre
Latest version: 1.1.0

# calc

This library is using the [__Shunting yard algorithm__](https://en.wikipedia.org/wiki/Shunting_yard_algorithm).

## Execution with node.js

The script should be called like this:

```bash
$ node ./app/index.js -x "4*5.3+(.7*(5+2.5)-3*(2-1))/23" -i -r
```

## Execution with npm:

__package.json__
```json
{
    "scripts": {
        "start": "node ./app/index.js"
    }
}
```

```bash
$ npm start -- -x "4*5.3+(.7*(5+2.5)-3*(2-1))/23" -i -r
```

## Usage

__app.js__
```javascript
import { Calc } from '@siziksu/calc'
import { Args } from '@siziksu/args'

const args = new Args()
args.parameters({
    '--includeInput': Boolean,
    '--includeRpn': Boolean,
    '--expression': String
}).aliases({
    '-i': '--includeInput',
    '-r': '--includeRpn',
    '-x': '--expression'
})
const params = args.process()

const calc = new Calc()
calc.expression(params.args.expression)
    .options({
        includeInput: params.args.includeInput,
        includeRpn: params.args.includeRpn
    })
const output = calc.process()

console.log(output)
```

__oputput__
```javascript
{
  input: '4*5.3+(.7*(5+2.5)-3*(2-1))/23',
  input_array: '4,*,5.3,+,(,0.7,*,(,5,+,2.5,),-,3,*,(,2,-,1,),),/,23',
  rpn: '45.3*0.752.5+*321-*-23/+',
  rpn_array: '4,5.3,*,0.7,5,2.5,+,*,3,2,1,-,*,-,23,/,+',
  result: 21.297826086956523
}
```

## Testing

__app.js__
```javascript
import { Calc } from '@siziksu/calc'
import { Args } from '@siziksu/args'

const expressions = [
    "4*5.3+(.7*(5+2.5)-3*(2-1))/23", // 21.297826086956523
    "4*5+(7*(5+2)-3*(2-1))/2", // 43
    "3+4*2/3", // 5.666666666666666
    "(2+6*3+5-(3*14/7+2)*5)+3", // -12
    "3+4*2/(1-5)^2^3", // 3.001953125
    "17%5", // 2
    "3+(58%6*(1.5*3)/2)^2/3", // 30
    "3*5^2+12*1.02" // 87.24
]

const args = new Args()
args.parameters({ '--expression': String }).aliases({ '-x': '--expression' })

const calc = new Calc()

let params
let output
for (let i = 0; i < expressions.length; i++) {
    args.argv(['-x', expressions[i]])
    params = args.process()
    calc.expression(params.args.expression)
    output = calc.process()
    console.log(`Test ${i + 1}: ${output.result}`)
}
```

__oputput__
```bash
Test 1: 21.297826086956523
Test 2: 43
Test 3: 5.666666666666666
Test 4: -12
Test 5: 3.0001220703125
Test 6: 2
Test 7: 30
Test 8: 87.24
```
npm package: @sizze/sizze-library
Description: Sizze offers a comprehensive library of ready-made components and screens tailored for cross-platform mobile applications. This extensive collection enables developers to craft popular app features efficiently, ensuring a seamless and consistent user expe
Author: sizze
Latest version: 1.1.25

# Sizze Library

Sizze offers a comprehensive library of ready-made components and screens tailored for cross-platform mobile applications. This extensive collection enables developers to craft popular app features efficiently, ensuring a seamless and consistent user experience across different platforms. Sizze's resources are designed to accelerate the app development process, allowing for the quick integration of high-quality, customizable UI elements into various projects.

## Installation

Install Sizze Library with npm

```bash
  npm i @sizze/sizze-library
```
npm package: @sizzle/remote-config
Description: Remote configuration that is either fetched or cached locally for your React Native app or PWA
Author: Bohdan Kostko
Latest version: 1.1.1

# remote-config
Remote configuration that is either fetched or cached locally for your React Native app or PWA

Config is used as a browser/embedded utility to provide auto refreshing remote configuration with local persistance and caching.

Persistance is disabled by default. To enable it - provide it in the constructor.
 
Example of usage
```js
const path = 'https://raw.githubusercontent.com/sizzlehq/remote-config/master/package.json';
const headers = { 
  'Authorization': 'Bearer 9145221F-F8F9-4A5C-8487-1EBA74386877'
};

const defaultConfig = {
  key: 'value'
};

(async (): Promise<void> => {
  let config;

  try {
    config = new Config(defaultConfig, path, {
      storage: localStorage,
      headers: headers
    });
    await config.fetch();
  } catch (err) {
    throw new Error(`couldn't fetch config - ${err}`);
  }

  config.autoRefresh();
  const repType = config.value('repository.type'); // "git"
});
```