open-index/open-npm huggingface dataset:
npm package: @parasol-finance/parasol-finance-sdk
Description: Parasol Finance TypeScript SDK.
Author: Paraasol Finance
Latest version: 0.2.4

<p align="center">
  <p align="center">
    <img src="https://parasol.finance/icon.png" height="100" alt="Parasol Finance" />
  </p>
  <h3 align="center">
    Parasol Finance SDK
  </h3>
  <p align="center">
    Parasol Finance TypeScript SDK
  </p>
  <p align="center">
    <a href="https://github.com/parasol-finance/parasol-finance-sdk/actions/workflows/npm-publish.yml"><img src="https://github.com/parasol-finance/parasol-finance-sdk/actions/workflows/npm-publish.yml/badge.svg" /></a>
    <img src="https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white" />
    <a href="https://t.me/parasolfinance"><img src="https://img.shields.io/badge/Telegram-Channel-0088cc" /></a>
  </p>
</p>

## Installation

```bash
npm i @parasol-finance/parasol-finance-sdk
```

## Initialize program adapter

```typescript
const { connection } = useConnection();
const { publicKey, sendTransaction } = useWallet();

const config: ProgramConfig = {
  mint: new PublicKey(process.env.NEXT_PUBLIC_MINT),
}

// initialize provider
const provider = new Provider(connection, useWallet() as any, {
  preflightCommitment: "confirmed",
});

// initialize program adapter
const adapter = await new ProgramAdapter(provider, config);
const nftStore = await new NftStore(adapter.config.mint).build();
const user = await new User(adapter.program.provider, nftStore).build();
```

## Sign & send transaction with connected wallet

```typescript
try {
  const mintKeypair = Keypair.generate();
  // purchase for tier 1
  const tx = await user.purchase(adapter.program, 0, mintKeypair);
  // sign transaction
  let signature = await sendTransaction(tx, connection, { signers: [mintKeypair] });
  // confirm transaction
  await connection.confirmTransaction(signature, "confirmed");
} catch (err) {
  // handle custom program error code
}
```

## User APIs

- purchase(program, tier, mintKeypair)
- redeem(program, nftMint)


## Addresses

- NFT Creator: 8oRwYDYCeCFT3jQBuvCGJdNRyPe2iytACCjuWgyP6win

### Devnet

- PSOL Mint: HK3Q8SJYiV1kLo3b6vfwLnL45nhunnt4kSBVQNa3Z28J
- PSOL Vault: AV3r9TRZUyqm8Umb57UcPfAAZHQGGhHXhXdxrDtuFGK5
npm package: @paraspace-org/ethers-multicall
Description: Make multiple Ethereum network requests in a single HTTP query. ethcall for ethers v5.
Author: Cavan Flynn
Latest version: 0.2.9

# ethers-multicall

Make multiple Ethereum network requests in a single HTTP query. [ethcall](https://github.com/Destiner/ethcall) for ethers v5.

## API

* `Contract(address, abi)`: Create contract instance; calling `contract.callFuncName` will yield a `call` object
* `all(calls)`: Execute all calls in a single request
* `calls`: List of helper call methods
* `getEthBalance(address)`: Returns account ether balance

## Example

```ts
import { Contract, Provider } from 'ethers-multicall';
import { ethers } from 'ethers';

import erc20Abi from './abi/erc20.json';

const infuraKey = 'INSERT_YOUR_KEY_HERE';
const provider = new ethers.providers.InfuraProvider('mainnet', infuraKey);

const daiAddress = '0x6b175474e89094c44da98b954eedeac495271d0f';

async function call() {
  const ethcallProvider = new Provider(provider);

  await ethcallProvider.init(); // Only required when `chainId` is not provided in the `Provider` constructor

  const daiContract = new Contract(daiAddress, erc20Abi);

  const uniswapDaiPool = '0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667';

  const ethBalanceCall = ethcallProvider.getEthBalance(uniswapDaiPool);
  const daiBalanceCall = daiContract.balanceOf(uniswapDaiPool);

  const [ethBalance, daiBalance] = await ethcallProvider.all([ethBalanceCall, daiBalanceCall]);

  console.log('ETH Balance:', ethBalance.toString());
  console.log('DAI Balance:', daiBalance.toString());
}

call();
```
npm package: @paraspace-utilities/contract-helpers
Description: The `@paraspace-utilities/contract-helpers` package offers a set of services which allow querying aggregated on-chain data via rpc.
Latest version: 0.0.125

# @paraspace-utilities/contract-helpers

The `@paraspace-utilities/contract-helpers` package offers a set of services which allow
querying aggregated on-chain data via rpc.

## Installation

Install the package in your project directory with:

```sh
// with npm
npm install @paraspace-utilities/contract-helpers

// with yarn
yarn add @paraspace-utilities/contract-helpers
```
npm package: @paraspace-utilities/math-utils
Description: The `@paraspace-utilities/math-utils` data formatting methods act as a layer on top of the chain data. The use-cases range from "human readable formatting" to "approximating accrual over time".
Latest version: 0.0.12

# @paraspace-utilities/math-utils

The `@paraspace-utilities/math-utils` data formatting methods act as a layer on top of the
chain data. The use-cases range from "human readable formatting" to
"approximating accrual over time".

## Installation

Install the package in your project directory with:

```sh
// with npm
npm install @paraspace-utilities/math-utils

// with yarn
yarn add @paraspace-utilities/math-utils
```
npm package: @paraspell/sdk-common
Description: SDK common code for ParaSpell XCM/XCMP tool for developers
Latest version: 13.1.0

<br /><br />

<div align="center">
  <h1 align="center">@paraspell/sdk-common</h1>
  <h4 align="center"> Common code for @paraspell/sdk-core, @paraspell/assets and @paraspell/pallets. </h4>
  <p align="center">
    <a href="https://npmjs.com/package/@paraspell/sdk-common">
      <img alt="version" src="https://img.shields.io/npm/v/@paraspell/sdk-common?style=flat-square" />
    </a>
    <a href="https://npmjs.com/package/@paraspell/sdk-common">
      <img alt="downloads" src="https://img.shields.io/npm/dm/@paraspell/sdk-common?style=flat-square" />
    </a>
    <a href="https://github.com/paraspell/xcm-sdk/actions">
      <img alt="build" src="https://github.com/paraspell/xcm-sdk/actions/workflows/release.yml/badge.svg" />
    </a>
    <a href="https://snyk.io/test/github/paraspell/sdk">
      <img alt="snyk" src="https://snyk.io/test/github/paraspell/sdk/badge.svg" />
    </a>
  </p>
</div>

<br /><br />
<br /><br />

## Information

This package serves as a `core` component for both `@paraspell/sdk-core`, `assets` and `pallets` and is `automatically` installed as a `dependency`. The package on its own `doesn't` offer any XCM functionality but can be used to get `common types` shared in mentioned packages.

## 💻 Tests

- Run compilation using `pnpm compile`

- Run linter using `pnpm lint`

- Run unit tests using `pnpm test`

XCM SDK can be tested in [Playground](https://playground.paraspell.xyz/xcm-sdk/xcm-transfer).

## Contribute to XCM Tools and earn rewards 💰

We run an open Bug Bounty Program that rewards contributors for reporting and fixing bugs in the project. More information on bug bounty can be found in the [official documentation](https://paraspell.github.io/docs/contribution.html).

## Get Support 🚑

- Contact form on our [landing page](https://paraspell.xyz/#contact-us).
- Message us on our [X](https://x.com/paraspell).
- Support channel on [telegram](https://t.me/paraspell).

## License

Made with 💛 by [ParaSpell✨](https://paraspell.xyz/)

Published under [MIT License](https://github.com/paraspell/xcm-tools/blob/main/packages/sdk-common/LICENSE).

## Supported by

<p align="center">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_transparent.png">
      <source media="(prefers-color-scheme: light)" srcset="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_w3f_standard.png">
      <img width="750" alt="Shows a black logo in light color mode and a white one in dark color mode." src="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_w3f_standard.png">
    </picture>
</p>
npm package: @paraspell/sdk-core
Description: SDK core for ParaSpell XCM/XCMP tool for developers
Latest version: 13.1.0

<br /><br />

<div align="center">
  <h1 align="center">@paraspell/sdk-core</h1>
  <h4 align="center"> Core component for @paraspell/sdk and @paraspell/sdk-pjs. </h4>
  <p align="center">
    <a href="https://npmjs.com/package/@paraspell/sdk-core">
      <img alt="version" src="https://img.shields.io/npm/v/@paraspell/sdk-core?style=flat-square" />
    </a>
    <a href="https://npmjs.com/package/@paraspell/sdk-core">
      <img alt="downloads" src="https://img.shields.io/npm/dm/@paraspell/sdk-core?style=flat-square" />
    </a>
    <a href="https://github.com/paraspell/xcm-sdk/actions">
      <img alt="build" src="https://github.com/paraspell/xcm-sdk/actions/workflows/release.yml/badge.svg" />
    </a>
    <a href="https://snyk.io/test/github/paraspell/sdk">
      <img alt="snyk" src="https://snyk.io/test/github/paraspell/sdk/badge.svg" />
    </a>
  </p>
</div>

<br /><br />
<br /><br />

## Information

This package serves as a `core` component for both `@paraspell/sdk` and `@paraspell/sdk-pjs` and is `automatically` installed as a `dependency`. The package on its own `doesn't` offer any XCM functionality but can be used to get `common functions` shared between both XCM SDK versions.


## 💻 Tests
- Run compilation using `pnpm compile`

- Run linter using `pnpm lint`

- Run unit tests using `pnpm test`

- Run all core tests and checks using `pnpm runAll`

XCM SDK can be tested in [Playground](https://playground.paraspell.xyz/xcm-sdk/xcm-transfer).

## Contribute to XCM Tools and earn rewards 💰

We run an open Bug Bounty Program that rewards contributors for reporting and fixing bugs in the project. More information on bug bounty can be found in the [official documentation](https://paraspell.github.io/docs/contribution.html).

## Get Support 🚑

- Contact form on our [landing page](https://paraspell.xyz/#contact-us).
- Message us on our [X](https://x.com/paraspell).
- Support channel on [telegram](https://t.me/paraspell).

## License

Made with 💛 by [ParaSpell✨](https://paraspell.xyz/)

Published under [MIT License](https://github.com/paraspell/xcm-tools/blob/main/packages/sdk-core/LICENSE).

## Supported by

<p align="center">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_transparent.png">
      <source media="(prefers-color-scheme: light)" srcset="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_w3f_standard.png">
      <img width="750" alt="Shows a black logo in light color mode and a white one in dark color mode." src="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_w3f_standard.png">
    </picture>
</p>
npm package: @paraspell/swap
Description: Tool for XCM cross-chain asset exchanging across Polkadot and Kusama ecosystems
Latest version: 13.1.0

<br /><br />

<div align="center">
  <h1 align="center">@paraspell/swap</h1>
  <h4 align="center"> An extension to @paraspell/sdk for cross-chain asset swaps via XCM. </h4>
  <p align="center">
    <a href="https://npmjs.com/package/@paraspell/swap">
      <img alt="version" src="https://img.shields.io/npm/v/@paraspell/swap?style=flat-square" />
    </a>
    <a href="https://npmjs.com/package/@paraspell/swap">
      <img alt="downloads" src="https://img.shields.io/npm/dm/@paraspell/swap?style=flat-square" />
    </a>
    <a href="https://github.com/paraspell/xcm-sdk/actions">
      <img alt="build" src="https://github.com/paraspell/xcm-tools/actions/workflows/ci.yml/badge.svg" />
    </a>
  </p>
  <p>How to swap <a href = "https://paraspell.github.io/docs/sdk/xcmPallet.html#swap" \>[here]</p>
    <p>XCM SDK starter template project <a href = "https://github.com/paraspell/xcm-sdk-template" \>[here]</p>
</div>

<br /><br />
<br /><br />

# Installation

Please reffer to [SDK documentation](https://paraspell.github.io/docs/sdk/getting-started.html#install-swap-extension) 

## 💻 Testing

- Run compilation using `pnpm compile`

- Run linting test using `pnpm lint`

- Run unit tests using `pnpm test`

> [!NOTE]
> Swaps can be tested in [Playground](https://playground.paraspell.xyz/https://playground.paraspell.xyz/xcm-sdk/xcm-transfer).

## Contribute to XCM Tools and earn rewards 💰

We run an open Bug Bounty Program that rewards contributors for reporting and fixing bugs in the project. More information on bug bounty can be found in the [official documentation](https://paraspell.github.io/docs/contribution.html).

## Get Support 🚑

- Contact form on our [landing page](https://paraspell.xyz/#contact-us).
- Message us on our [X](https://x.com/paraspell).
- Support channel on [telegram](https://t.me/paraspell).

## License

Made with 💛 by [ParaSpell✨](https://paraspell.xyz/)

Published under [MIT License](https://github.com/paraspell/xcm-tools/blob/main/packages/swap/LICENSE).

## Supported by

<p align="center">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_transparent.png">
      <source media="(prefers-color-scheme: light)" srcset="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_w3f_standard.png">
      <img width="750" alt="Shows a black logo in light color mode and a white one in dark color mode." src="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_w3f_standard.png">
    </picture>
</p>
npm package: @paraspell/xcm-router
Description: Tool for XCM cross-chain asset exchanging across Polkadot and Kusama ecosystems
Latest version: 12.8.4

<br /><br />

<div align="center">
  <h1 align="center">@paraspell/xcm-router</h1>
  <h4 align="center"> ⚠️ Deprecated. Please use @paraspell/sdk with @paraspell/swap package. </h4>
  <p align="center">
    <a href="https://npmjs.com/package/@paraspell/xcm-router">
      <img alt="version" src="https://img.shields.io/npm/v/@paraspell/xcm-router?style=flat-square" />
    </a>
  </p>
</div>

<br /><br />
<br /><br />


## Get Support 🚑

- Contact form on our [landing page](https://paraspell.xyz/#contact-us).
- Message us on our [X](https://x.com/paraspell).
- Support channel on [telegram](https://t.me/paraspell).

## Supported by

<p align="center">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_transparent.png">
      <source media="(prefers-color-scheme: light)" srcset="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_w3f_standard.png">
      <img width="750" alt="Shows a black logo in light color mode and a white one in dark color mode." src="https://github.com/paraspell/presskit/blob/main/logos_supporters/polkadot_kusama_w3f_standard.png">
    </picture>
</p>
npm package: @parasrp/delay
Description: A simple sleep/delay function with support for milliseconds, seconds, minutes, and hours.
Author: Paras R Poshiya
Latest version: 2.1.0

# @parasrp/delay

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
![npm version](https://img.shields.io/npm/v/@parasrp/delay)
![npm downloads](https://img.shields.io/npm/dw/@parasrp/delay)
![install size](https://packagephobia.com/badge?p=@parasrp/delay)
![bundle size](https://img.shields.io/bundlephobia/min/@parasrp/delay)

A lightweight, promise-based JavaScript utility to pause execution for a specified duration. Perfect for adding timeouts, staggering API calls, or building simple animations.

---
## ✨ Features

- 🪶 **Lightweight & Fast**: Zero overhead, minimal footprint.
- 🤝 **Promise-based**: Works seamlessly with `async/await`.
- 📦 **Zero Dependencies**: Keeps your node_modules clean.
- 🌍 **Universal**: Works in Node.js, browsers, and modern JS environments.
- ⏱️ **Flexible Units**: Supports `milliseconds`, `seconds`, `minutes`, and `hours`.

---
## 📦 Installation

Install the package via npm:
```bash
npm install @parasrp/delay
```

Install the package via yarn:
```bash
yarn add @parasrp/delay
```

---
## ✨ Features
You can use @parasrp/delay with both CommonJS and ES Modules.

ES6 Modules:
```js
import delay from "@parasrp/delay";
```

CommonJS:
```js
const delay = require("@parasrp/delay");
```

---
## 📖 API

```js
/**
    * Sleep (pause execution) for a given time with unit
    * @param {number} value - The amount of time to wait
    * @param {'milliseconds'|'seconds'|'minutes'|'hours'} [unit='milliseconds'] - The unit of time (default is milliseconds)
    * @returns {Promise<void>} - A Promise that resolves after the specified delay
**/
await delay(value, unit?);
```

---
## Examples

Using async/await:
```js
async function demo() {
  console.log("Waiting 2 seconds...");
  await delay(2, "seconds"); // waits 2000 ms
  console.log("Done!");

  console.log("Waiting 1 minute...");
  await delay(1, "minutes"); // waits 60000 ms
  console.log("Finished!");
}

demo();
```

Using .then():
```js
console.log("Start waiting...");

delay(1000).then(() => {
  console.log("Finished waiting 1000 milliseconds");
});

delay(0.5, "hours").then(() => {
  console.log("Finished waiting 30 minutes");
});

```

---
## 👤 Author
**Paras R Poshiya**
* [GitHub](https://github.com/parasposhiya)
* [GitLab](https://gitlab.com/parasposhiya)
npm package: @parasutcom/frame-design-system-css
Description: HTML/CSS component library for Frame Design System.
Author: Mikrogrup
Latest version: 1.2.0

# Installation

Welcome to Frame Design System. This guide walks you through the process of installing and integrating the Frame Design System into your project directly from GitHub. Please follow the steps below to get started.

## Prerequisites

Before you begin, ensure you have Node 14.x or newer installed.

## Getting Started

### Clone the Repository

Open your terminal and navigate to your project directory. Then, run one of the following commands to clone the repository:

Using HTTPS:

```bash
  git clone https://github.com/parasutcom/frame-design-system.git
```

Or using SSH:

```bash
  git clone git@github.com:parasutcom/frame-design-system.git
```

### Install Dependencies

Change into the cloned design system directory:

```bash
  cd frame-design-system
```

Install the necessary dependencies with npm:

```bash
  npm install
```

### Build with Gulp

Frame Design System uses Gulp to compile and build assets. If you haven't installed Gulp CLI globally, do so by running:

```bash
  npm install -g gulp-cli
```

Next, execute the Gulp build process:

```bash
  gulp
```

### Embedding Frame Design System into Your Project

After the build process, the dist folder will contain all the compiled CSS and other assets. To apply Frame Design System styles to your web project, include the CSS file in your HTML:

```bash
  <link rel="stylesheet" href="path/to/frame-design-system/dist/css/main.css">
```

Congratulations! You've successfully installed the Frame Design System from GitHub and built it using Gulp. Now, you can begin to use the design system's components and utilities in your project. For further instructions on usage and access to component documentation, please see our Components Documentation.
npm package: @paraswap/subscription-service-client
Description: > Simple client for [Http-Subscription-Service](https://github.com/paraswap/http-subscription-service)
Author: nazar@paraswap.io
Latest version: 1.0.3

# Subscription-service-client

> Simple client for [Http-Subscription-Service](https://github.com/paraswap/http-subscription-service)

## Table of Contents

- [Install](#install)
- [Usage](#usage)

## Install
Install the package from NPM:

```npm install @paraswap/subscription-service-client```

## Usage

```
import { HttpSubscriptionService } from '@paraswap/subscription-service-client;

// Create na instance
const client = new HttpSubscriptionService(HTTP_SUBSCRIPTION_SERVICE_WS_URL)

// Subscribe for connection event (this event will be triggered as soon as we get a connection to the `http-subscription-service`)
client.on('opened', () => {
      // Create a subscription
      HttpSubscriptionService.subscribe(
        {
          pollInterval: 5000, // Provide a polling interval for your subscription
          requestOptions: { // Request options (AxiosRequestOptions)
            url: `test.com/getWeather`
          },
        },
        (state: { data: WeatherResponse }) => { // Callback for data
          console.log(`Current temp: ${weather.temp}`);
        },
      );
});

```
npm package: @paraswtf/react-svg-buttons
Description: Configurable animated SVG buttons for react, fork of react-svg-buttons
Author: Raphaël Benitte
Latest version: 0.4.5

# React SVG buttons

[![Version][npm-image]][npm-url]

This package provides a `<MorphIcon />` component used to compose available buttons,
it's able to morph from whatever icon type to another one.
  
The `<MorphIcon />` component exposes 18 icon types.

It also provides a set of button components.

Please, take a look at the [demo](http://plouc.github.io/react-svg-buttons/).


## Installation

```
npm install --save react-svg-buttons
```

## Usage

```javascript
import { render } from 'react-dom'
import {
    MorphIcon,
    CloseButton,
    NavButton,
    PlusButton,
} from 'react-svg-buttons'

const Demo = () => (
    <div>
        <MorphIcon type="thunderbolt" />
        <CloseButton />
        <NavButton direction="right" opened={false} />
        <PlusButton />
    </div>
)

render(<Demo />, document.getElementById('demo'))
```

## License

MIT. Copyright (c) 2015 Raphaël Benitte.

[npm-image]: https://img.shields.io/npm/v/react-svg-buttons.svg?style=flat-square
[npm-url]:   https://www.npmjs.org/package/react-svg-buttons
npm package: @parataxic/gatsby-lazy-pagedata
Description: Fetch gatsby page data asynchrononously via URL from clientside
Latest version: 0.4.0-alpha.47

## What does it do

Allows lazy loading data in gatsby for client-side component loading

## How?

In `gatsby-node.js`, during
[`createPages`](https://www.gatsbyjs.org/docs/node-apis/#createPages), a you
slip in a `createJSON` (included) before `createPage`, this will register the
same path as the page, but prepended with _.json_, and include all the context
data for the component.

e.g.

```javascript
const pageData = {
  // @ts-ignore: Not sure waht this is
  path: `/who/${psychologist.id}`,
  // This component will wrap our MDX content
  component: `path/to/your/template.tsx`,
  // We can use the values in this context in
  // our page layout component
  context: { mdx, psychologist },
};

await createJSON(pageData); // data for your component (you can customize and tweak this if needed)
return createPage(pageData);
```

## Usage case

You can use the created `/normal/page.json` file (assuming a page at
`/normal/page`) however you'd like.

In my use case, it's used to fetch popover information based on other objects in
the gatsby store.

## Pros / Cons

#### Pros:

- Works with SSR

  Lets you have all the benefits of client side loading / lazy components

- Keeps pages lite and simpler

  No need to pull asset information for popups / popover / hover content or
  other stuff in your initial request.

- Creates a new JSON file with every page The json for the file can be
  customized to include:

  - Less data: Only pass the amount of data your components need to preview / do
    whatever it needs to do when working with `createJSON`. Don't want to
    include all the `mdx` stuff? Don't pass it.

  - Pass additional data: Add additional contextual information not necessary to
    include in your `createPage`

#### Cons

- Creates a redundant file. page-data.json has the data also. Future versions
  may give the option to `fetch` from page-data.json since those are often
  pre-cached.
- Not using page-data.json eliminates possibility of a lazy-loaded component
  also being able to preload the target page

## Other methods

Utilize page-data.json. Future versions may try this.

This would prevent duplication, but the results for this wouldn't be adjustable.

Also, the location of page-data.json is consistent enough to pull via `fetch`
without additional specialized logic.
npm package: @parataxic/gatsby-use-search
Description: React use-search hook for gatsby
Latest version: 0.4.0-alpha.47

`yarn add @parataxic/gatsby-use-search`
`npm install @parataxic/gatsby-use-search`


```typescript
import { useSearch } from "@parataxic/gatsby-use-search";

const MyView:React.FC = () => {
  const { hasMounted, inputRef, onInputChange, searchTerm } = useSearch();

  return (
    <>
      <input
        onChange={onInputChange}
        placeholder="Search"
        value={searchTerm}
        ref={inputRef}
        role="search"
      />
      {hasMounted && "My results here, use hasMounted to avoid SSR flicker"}
    </>
  )
}
```
npm package: @parataxic/react-use-flexsearch
Description: Fork of react-use-flexsearch to for TS, lazy loading
Latest version: 0.4.0-alpha.47

Typed version of https://github.com/angeloashmore/react-use-flexsearch

- TypeScript
- Uses a typed react [`useReducer`](https://reactjs.org/docs/hooks-reference.html#usereducer) to support [lazily loading](https://www.gatsbyjs.com/plugins/gatsby-plugin-local-search/#lazy-loading-the-index-andor-store)
- Supports lazy loading results from [gatsby-plugin-local-search](https://www.gatsbyjs.com/plugins/gatsby-plugin-local-search/)
- Accepts and returns a typed object
- Downloads lazy loading results
- Returns `onFocus` to trigger downloading of search data

`yarn add @parataxic/react-use-flexsearch`
`npm install @parataxic/react-use-flexsearch`


```typescript
import { useFlexSearch } from "@parataxic/react-use-flexsearch";

const MyView:React.FC = () => {
  const { localSearchPages } =
    useStaticQuery<GatsbyTypes.ListerQuery>(graphql`
      query Lister {
        localSearchPages {
          publicIndexURL
          publicStoreURL
        }
      }
    `);

  const {results} = useFlexSearch(searchTerm, {...localSearchPages});

  const resultsIds = results.map(({ id }) => id);

  const filterPosts = (post) => {
    if (resultsIds.length === 0) return true;
    return resultsIds.includes(post.id);
  };


  return (
    <>
      <button onClick={onFocus}>Fetch search data</button>
      {items.filter(filterPosts).map((item, idx: number) => <div key={key}>{item.title}</div>)}
    </>
  )
}
```
npm package: @paratrooper/cli
Description: CLI for Paratrooper OTA service
Author: Aleksander Gierczak
Latest version: 1.0.2

# Paratrooper CLI

A command line utility to interact with and manage Paratrooper.

## Installation

```sh
npm install -g @paratrooper/cli
```
## Usage

Create paratrooper.json config file for your React Native (or Expo) project:

```sh
ota init
```

Push a new update:

```sh
ota update
```

Rollback a previously published update:

```sh
ota rollback <updateId>
```

List all updates:

```sh
ota list # or ls
```
npm package: @paratus-medical/paratus-icons
Description: PARATUS SVG icon library
Author: Joao Oliveira
Latest version: 0.1.30

# Paratus Icons

A beautiful, customizable SVG icon library for Vue and Nuxt applications, featuring a collection of medical and UI icons with consistent styling.

## Features

- 60+ carefully crafted SVG icons
- Non-scaling strokes for consistent line weights at any size
- Optimized for Vue 3 and Nuxt 3
- Stroke-based design with `fill="none"` by default
- Simple API with customizable size and color

## Installation

```bash
# Install from GitHub
npm install @paratus-medical/paratus-icons

# With yarn
yarn add @paratus-medical/paratus-icons
```

## Usage

### Basic Usage

```vue
<template>
  <div>
    <ParatusIcon name="arrow-right" :size="24" color="blue" />
  </div>
</template>

<script setup>
import ParatusIcon from '@paratus-medical/paratus-icons';
</script>
```

### Available Props

| Prop   | Type   | Default       | Description                       |
|--------|--------|---------------|-----------------------------------|
| name   | String | (required)    | Icon name (see available icons)   |
| size   | Number | 24            | Size in pixels                    |
| color  | String | 'currentColor'| Stroke color                      |

## Available Icons

The library includes the following icons:

```
administration, adult, airway, algorithm, arrow-left, arrow-right, arrow-short-left, arrow-short-right, arrow-short-up, arrow-short-down, calendar, check, checklist, close-circle, close, compatibility, conditions, drugs, equipment, edit, expand, expand2, export, institution, forbiden, frame, gender, gift, graduation, heart, heart-plus, height, lungs, home, medical-pack, menu, neonatal, pack-equipment, paratus-glyph, peds, phone, place, plus, procedures, redo, reference, resuscitation, search, secure-check, secure, slides, star, star-active, user, vitals, warning, weight, weight-adjusted, weight-drug, weight-ideal
```

## Styling

The icons are designed to be used with strokes only by default (`fill="none"`). You can customize the stroke color using the `color` prop.

```vue
<!-- Default (uses currentColor) -->
<ParatusIcon name="heart-outline" />

<!-- Custom color -->
<ParatusIcon name="heart-outline" color="#FF0000" />

<!-- Using Tailwind classes -->
<div class="text-blue-500">
  <ParatusIcon name="heart-outline" />
</div>
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

MIT © [Paratus Medical](https://github.com/paratus-medical)
npm package: @parcae/auth-betterauth
Description: Better Auth adapter for Parcae — self-hosted auth with your User model
Latest version: 0.8.0

# @parcae/auth-betterauth

Better Auth adapter for Parcae. Self-hosted authentication that uses your User Model as the users table.

## Install

```bash
npm install @parcae/auth-betterauth
```

Requires `@parcae/backend` and `@parcae/model` as peer dependencies.

## Usage

```typescript
import { createApp } from "@parcae/backend";
import { betterAuth } from "@parcae/auth-betterauth";
import { User } from "./models/User";
import { Post } from "./models/Post";

const app = createApp({
  models: [User, Post],
  auth: betterAuth({
    providers: ["email", "google"],
    google: { clientId: "...", clientSecret: "..." },
  }),
});

await app.start();
```

## User Model

The User Model is a real, managed Parcae Model. Better Auth writes auth fields (`email`, `name`, `image`, `emailVerified`) into the same table. Your custom fields live alongside them.

```typescript
import { Model } from "@parcae/model";

class User extends Model {
  static type = "user" as const;

  // Auth-synced fields (written by Better Auth)
  name: string = "";
  email: string = "";
  emailVerified: boolean = false;
  image?: string;

  // Your custom fields
  bio: string = "";
  role: "user" | "admin" = "user";
  plan: "free" | "pro" = "free";
}
```

No `managed = false`. One table, one Model, one source of truth.

## How It Works

- **`setup()`** — Creates the Better Auth instance using your Postgres connection. Points Better Auth at your User model's table. Creates `sessions`, `accounts`, `verifications` tables internally. Uses Parcae's `generateId()` for ID generation.
- **`resolveRequest()`** — Calls `auth.api.getSession(headers)` to resolve the session from HTTP headers.
- **`resolveToken()`** — Same, for Socket.IO auth via Bearer token.
- **`routes`** — Mounts Better Auth's handler at `/v1/auth/*` (configurable via `basePath`).

## Configuration

```typescript
betterAuth({
  // Auth providers. Default: ["email"]
  providers: ["email", "google", "github"],

  // OAuth config (required if using social providers)
  google: { clientId: "...", clientSecret: "..." },
  github: { clientId: "...", clientSecret: "..." },

  // Session config
  session: {
    expiresIn: 60 * 60 * 24 * 30, // 30 days (default)
    updateAge: 60 * 60 * 24, // refresh daily (default)
  },

  // Additional trusted origins (added to TRUSTED_ORIGINS env var)
  trustedOrigins: ["https://myapp.com"],

  // Auth route prefix. Default: "/v1/auth"
  basePath: "/v1/auth",

  // Base URL for OAuth callbacks. Auto-detected from PORT if not set.
  baseURL: "https://api.myapp.com",
});
```

## Environment Variables

| Variable          | Required | Description                                |
| ----------------- | -------- | ------------------------------------------ |
| `AUTH_SECRET`     | Yes      | Secret for session signing                 |
| `DATABASE_URL`    | Yes      | PostgreSQL connection (shared with Parcae) |
| `TRUSTED_ORIGINS` | No       | Additional CORS origins                    |

## License

MIT
npm package: @parcel-vue-ts/cli
Description: Parcel-vue-ts command line
Author: Masonz
Latest version: 1.0.3

# @parcel-vue-ts/cli

> Parcel-vue-ts command line.

## Install

```sh
npm install -g @parcel-vue-ts/cli 
```

## Usage

```sh
mkdir demo
cd demo
parcel-vue-ts       // init project..
npm install
```
npm package: @parcel-vue-ts/template
Description: parcel-vue-ts template
Author: Masonz
Latest version: 1.0.2

# parcel-vue-ts 📦
[![Build Status][travis-image]][travis-url]
[![codecov][codecov-image]][codecov-url]
[![standard][standard-image]][standard-url]
> Boilerplate for Vue.js & Typescript, base on Parcel bundler.

## What's inside? 🗃
* [Vue2](https://github.com/vuejs/vue)
* [Vue-Router](https://github.com/vuejs/vue-router)
* [Vuex](https://github.com/vuejs/vuex)
* [Typescript](https://github.com/Microsoft/TypeScript)
* [Jest](https://github.com/facebook/jest)
* [Parcel bundler](https://github.com/parcel-bundler/parcel)

## Getting Started 🚀

### Install

```
npm install -g @parcel-vue-ts/cli
```

### Usage

```
mkdir demo
cd demo
parcel-vue-ts       // init project...
npm install
```

### Development
```
npm run dev
```
Parcel has a development server built in, which will automatically rebuild your app as you change files and supports hot module replacement for fast development.

### Production
```
npm run build
```
When you build production, parcel defaults to enable miniatation.

### Unit tests
```
npm run test:unit
```
Unit test the code using jest,and you can run through ` npm run test:coverage ` to get the test coverage.

### Demo
You can preview the result by: https://masonz.github.io/parcel-vue-ts/

## License
[MIT](https://github.com/masonz/parcel-vue-ts/blob/master/LICENSE) © masonz

[travis-image]: https://travis-ci.org/masonz/parcel-vue-ts.svg?branch=master
[travis-url]: https://travis-ci.org/masonz/parcel-vue-ts
[codecov-image]: https://codecov.io/gh/masonz/parcel-vue-ts/branch/master/graph/badge.svg
[codecov-url]: https://codecov.io/gh/masonz/parcel-vue-ts
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
[standard-url]: https://github.com/standard/standard
npm package: @parcelaexpress/checkout-component-3ds
Description: Checkout component 3ds
Author: Parcela Express
Latest version: 2.0.0

# Parcela Express Checkout Component 3ds

## Importação

Para importar o componente adicione o script
*`<script src="https://parcela-sub-api-components.s3.us-east-1.amazonaws.com/checkout-component-3ds/v2.0.0/index.js"></script>`*
 no body do seu site e importe o css através do link: 
 *`<link rel="stylesheet" href="https://parcela-sub-api-components.s3.us-east-1.amazonaws.com/checkout-component-3ds/v2.0.0/index.css" />`*

O componente pode ser usado da seguinte forma:

#### **`index.html`**
  ```html
...
<body>
    <div id='checkout-container'></div>
</body>
...
  ```

#### **`index.js`**
  ```js
import * as ParcelaChekout from '@parcelaexpress/checkout-component-3ds';

const action = {
		paymentData: "",
		paymentMethodType: "scheme",
		url: "",
		data: {
			MD: "",
			PaReq: "",
			TermUrl: ""
		},
		method: "POST",
		type: "redirect"
	}

const config = {
    clientKey: 'test_IBIF7UD6SNB7ZJG3KVEGM3UP5M57BJ4B',
    environment: 'TEST',
    action
};



const checkoutInstance = new window.Component.Checkout3ds(config);
checkoutInstance.mount("checkout-container");
  ```
npm package: @parcelaexpress/checkout-library-js
Description: Checkout library js
Author: Parcela Express
Latest version: 1.6.0

# Parcela Express Checkout Library JS

[![npm](https://img.shields.io/npm/v/@parcelaexpress/checkout-library-js.svg)](https://www.npmjs.com/package/@parcelaexpress/checkout-library-js)

## Instalação

Esse pacote é um módulo [Node.js](https://nodejs.org/en/) disponibilizado pelo 
[npm](https://www.npmjs.com/).

Siga as instruções abaixo para realizar a instalação do componente em sua aplicação.

1. Instale o componente [Parcela Checkout Library JS](https://www.npmjs.com/package/@parcelaexpress/checkout-library-js):

  ```sh
  npm install @parcelaexpress/checkout-library-js --save
  ```

  ```sh
  yarn add @parcelaexpress/checkout-library-js
  ```

## Instalação

O componente pode ser usado da seguinte forma:

Importe o componente dentro de sua aplicação e adicione uma div container para renderizar o componente:

#### **`index.html`**
  ```html
...
<body>
    <div id='checkout-container'></div>
</body>
...
  ```

#### **`index.js`**
  ```js
import * as ParcelaChekout from '@parcelaexpress/checkout-library-js';
import '@parcelaexpress/checkout-library-js/lib/main.css';

const customerData = {
    amount_cents: 1000,
    description: "Venda Teste",
    form_payment: "debit",
    installment_plan: {
        number_installments: 1,
    },
    customer: {
        email: "teste@fulano.com.br",
        ip: "99.106.129.24",
        first_name: "Testando",
        last_name: "Teste",
        document: "29896147027",
        billing_address: {
            city: "Belo Horizonte",
            country: "BR",
            house_number_or_name: '10',
            postal_code: "31010500",
            state: "MG",
            street: "Rua Adamina",
        },
    },
    pre_capture: false,
    has_split_rules: true,
    split_rules: [
        {
          amount: 10000,
          seller_id: "d6a245d2-b705-42a1-8d4a-0956aaa00fed",
          description: "Descrição do split",
        },
        {
          amount: 5000,
          seller_id: "99d1f231-557a-44b9-ae5d-9b5f533c684e",
          no_cost: true,
        }
    ],
    confirmation_required: false,
    active_3ds: true,
    service_id: "seu id (opcional)",
    protocol: "PROTOCOLO123658 (opcional)"
}

const config = {
    clientKey: 'test_IBIF7UD6SNB7ZJG3KVEGM3UP5M57BJ4B',
    environment: 'TEST',
    apiUrl: "https://sandbox.parcelaexpress.com.br/",
    sellerKey: "e137d1b6-8f84-4377-ab5c-d27dd24415bd",
    successReturnUrl: "https://success-url.com.br",
    errorReturnUrl: "https://error-url.com.br",
    customerData,
    onChange: (state) => console.log('onc', state),
    onSubmit: (state) => console.log('ons', state),
    onSubmitError: (state) => console.log('onerr', state),
    beforeSubmit: (state) => console.log("before submit", state),
    afterSubmit: (state) => console.log("after submit", state),
    showPayButton: true
};

const checkoutInstance = new window.Checkout.Checkout(config);
checkoutInstance.mount('checkout-container');
  ```


Os campos has_split_rules e split_rules(opcionais) são usados para dividir o valor da venda entre os estabelecimentos