open-index/open-npm huggingface dataset:
npm package: @forst/cli
Description: Forst compiler CLI: install the native `forst` binary. Linux, macOS, Windows.
Author: haveyaseen
Latest version: 0.0.20

# @forst/cli

Install the **Forst** compiler for Node.js without a separate Go toolchain. The package ships a small wrapper that downloads the official **native binary** for your OS/arch from [GitHub Releases](https://github.com/forst-lang/forst/releases) (same artifacts as `task build:release`).

The **npm package version** is chosen by Release Please for `packages/cli`; the wrapper downloads the native binary for that semver from [GitHub Releases](https://github.com/forst-lang/forst/releases) (typically aligned with the compiler).

**Releases:** Tags `cli-v*` (same pattern as `sidecar-v*`, see [`.release-please-config.json`](https://github.com/forst-lang/forst/blob/main/.release-please-config.json) `packages/cli`) bump `package.json` and `jsr.json`. When GitHub publishes that release, [publish-packages.yml](https://github.com/forst-lang/forst/blob/main/.github/workflows/publish-packages.yml) publishes **@forst/cli** to npm and JSR (link [jsr.io/@forst/cli](https://jsr.io/@forst/cli) to this repo for OIDC, or set `JSR_TOKEN`).

**Local JSR dry-run / publish:** from `packages/cli`, run `npx jsr publish --dry-run` or `npx jsr publish` (CI only runs on GitHub Release). Committed trees are required unless you pass `--allow-dirty`.

## Install

```bash
npm install -D @forst/cli
# or
npx @forst/cli version
```

With a local dependency, `node_modules/.bin/forst` runs the wrapper.

## Environment

| Variable | Purpose |
| --- | --- |
| `FORST_BINARY` | Absolute path to a `forst` executable; skips download. |
| `FORST_CACHE_DIR` | Base directory for cached binaries (default: `~/.cache/forst-cli` on Unix, `%LOCALAPPDATA%/forst-cli/cache` on Windows). Each compiler version is stored in a subdirectory. |
| `FORST_CLI_VERIFY` | **Default:** sha256 verification is **required** using digests from [GitHub release metadata](https://docs.github.com/en/rest/releases/releases). Set to `0` or `false` to skip (not recommended). |

Downloads use retries on transient HTTP errors, an exclusive lock when two processes install at once, and an atomic write so a partial file never replaces the binary. In CI or air-gapped environments, prefer `FORST_BINARY`, or set `FORST_CLI_VERIFY=0` only if the GitHub API is unreachable or the release has no digest metadata.

## API

```typescript
import { resolveForstBinary, spawnForst, getCliPackageVersion } from "@forst/cli";

const bin = await resolveForstBinary();
// spawnForst(["generate", "-h"], {}, { version: "0.0.19" });
```

## Relation to `@forst/sidecar`

[`@forst/sidecar`](../sidecar/README.md) depends on this package for [`resolveForstBinary`](./src/resolve.ts) so dev-server integration and the CLI share one download/cache implementation.

## Compiler CLI

The native binary implements `forst dev`, `forst generate`, `forst lsp`, `forst fmt`, etc. See the Go entrypoint in [`forst/cmd/forst/main.go`](../../forst/cmd/forst/main.go).
npm package: @forsyteco/actionstep-client-typescript
Description: TypeScript Actionstep API client generated with Hey API.
Latest version: 0.1.0

# Actionstep Client TypeScript

TypeScript Actionstep API clients generated from the official OpenAPI YAML files using [Hey API](https://heyapi.dev/openapi-ts/).

This package generates one client module per Actionstep domain under `src/clients/<endpoint>` and exports them all through `src/index.ts`.

## Install

```bash
npm install @forsyteco/actionstep-client-typescript
```

## Development

```bash
npm install
npm run generate
npm run lint
npm run build
```

## Regenerate Clients

```bash
npm run generate
```

The generation flow:

1. Runs spec preflight checks against every `https://docs.actionstep.com/downloads/<endpoint>.yaml` URL.
2. Runs Hey API with one generation job per endpoint.
3. Refreshes `src/index.ts` and `src/clients/index.ts` barrel exports from the manifest.

## Manifest

The endpoint list is defined in `openapi/manifest.ts`.

Add/remove endpoints in that file, then rerun:

```bash
npm run generate
```

- Generated clients are intended to be treated as build artifacts.
- Re-run generation whenever Actionstep updates their published YAML specs.

## Publish Checklist

```bash
npm run generate
npm run pack:check
npm run publish:public
```

`prepack` runs automatically during pack/publish, so lint/build happen before publishing without committing `dist`.

## Release Commands

```bash
# choose one semantic version bump
npm run release:patch
npm run release:minor
npm run release:major
```

## CI Publish (npm token)

Set `NPM_TOKEN` in your CI secret store, then run:

```bash
npm ci
npm run generate
npm run lint
npm run build
npm run pack:check
npm run publish:public
```
npm package: @forsyteco/product-ui
Description: An implementation of Forsyte's product design system using React 🐝
Author: etiCloud Ltd
Latest version: 0.0.13

# @forsyteco/product-ui

React component library for Forsyte app, built with React 19, TypeScript, and Tailwind CSS 4.

## Installation

```bash
npm install @forsyteco/product-ui
# or
pnpm add @forsyteco/product-ui
# or
yarn add @forsyteco/product-ui
```

## Peer Dependencies

This package requires React 19.x and Tailwind CSS 4.x:

```bash
npm install react@^19.2.1 react-dom@^19.2.1 tailwindcss@^4.1.17
```

## Setup

### 1. Import Tailwind base styles

Make sure Tailwind CSS is imported in your application:

```css
/* src/index.css or your main CSS file */
@import 'tailwindcss';
```

### 2. Import the design system styles

Pull in the design tokens, fonts, and utilities provided by the library:

```css
/* src/index.css or your main CSS file, after tailwindcss */
@import '@forsyteco/product-ui/styles.css';
```

### 3. Import components

```typescript
import { Spinner } from '@forsyteco/product-ui'
import type { SpinnerProps } from '@forsyteco/product-ui'
```

### Example

```tsx
import { Spinner } from '@forsyteco/product-ui'

function App() {
  return (
    <div>
      <Spinner />
    </div>
  )
}
```

## Components

All components use Tailwind CSS classes directly. Make sure Tailwind CSS is configured in your project.

### Spinner

A loading spinner component.

```tsx
import { Spinner } from '@forsyteco/product-ui'

// Basic usage
<Spinner />

// Full-width centered spinner
<Spinner full />

// Custom styling with Tailwind classes
<Spinner className="text-blue-500 w-8 h-8" />
```

## Development

This package is part of a Turborepo monorepo. For local development:

```bash
# Install dependencies
pnpm install

# Build the package
pnpm turbo run build --filter=@forsyteco/product-ui

# Run Storybook
pnpm --filter @forsyteco/product-ui storybook
```

## License

MIT
npm package: @forta/network
Description: 🌤️ A goodie to get chains common metadata.
Author: Denny Portillo
Latest version: 0.0.3

# @forta/network 🦍

<p align="center">
  <img src="https://raw.githubusercontent.com/D3Portillo/usemetamask/master/assets/logo.png">
</p>

<p align="center">🌤️ A goodie to get chains common metadata.</p>

<p align="center">
  <a
    href="https://www.npmjs.com/package/@forta/network"
  >
    <img src="https://badgen.net/npm/v/@forta/network" />
  </a>
  <a
    href="https://bundlephobia.com/result?p=@forta/network"
  >
    <img src="https://badgen.net/bundlephobia/minzip/@forta/network" />
  </a>
  <a
    href="https://github.com/D3Portillo/forta/blob/master/LICENSE"
  >
    <img src="https://badgen.net/npm/license/@forta/network" />
  </a>
</p>

## Install

```bash
npm i @forta/network
```

## Get Started

```js
import { Rinkeby } from "@forta/network"

const ADDRR = "0x6635f83421bf059cd8111f180f0727128685bae4"
console.log(Rinkeby.getExplorerURL(ADDRR))
// https://rinkeby.etherscan.io/address/0x6635f83421bf059cd8111f180f0727128685bae4
```

## Networks

Each exported network(Mainnet or Testnet) follows the model bellow:

```ts
export type NetworkType = "Mainnet" | "Testnet"
export interface NetworkProps {
  chainName: string
  shortName: string
  chainId: string
  chainDecimalId: number
  currency: string
  rpcUrl: string
  blockExplorerUrl: string
  type: NetworkType
}
```

**Example for Polygon:**

```js
import { Rinkeby } from "@forta/network"

console.log(Rinkeby)
/**
{
  chainName: "Matic Mainnet"
  shortName: "Matic"
  chainId: "0x89"
  chainDecimalId: 137
  currency: "MATIC"
  rpcUrl: "https://rpc-mainnet.maticvigil.com"
  blockExplorerUrl: "https://polygonscan.com"
  type: "Mainnet"
}
*/
```

---

**[READ THE DOCS 🌟](https://forta.vercel.app/network)** | **[FOLLOW ME 🐦](https://twitter.com/d3portillo)**
npm package: @forta/usemetamask
Description: Utility React hook to handle Metamask's browser API
Author: Denny Portillo
Latest version: 0.2.0

# useMetamask 🦍

<p align="center">
  <img src="https://raw.githubusercontent.com/D3Portillo/usemetamask/master/assets/logo.png">
</p>

<p align="center">An utility <em>React</em> hook to handle Metamask's browser API</p>

<p align="center">
  <a
    href="https://www.npmjs.com/package/@forta/usemetamask"
  >
    <img src="https://badgen.net/npm/v/@forta/usemetamask" />
  </a>
  <a
    href="https://bundlephobia.com/result?p=@forta/usemetamask"
  >
    <img src="https://badgen.net/bundlephobia/minzip/@forta/usemetamask" />
  </a>
  <a
    href="https://github.com/D3Portillo/usemetamask/blob/master/LICENSE"
  >
    <img src="https://badgen.net/npm/license/@forta/usemetamask" />
  </a>
</p>

## Install

```bash
npm i @forta/usemetamask
```

## Get Started

```js
import { useMetamask } from "@forta/usemetamask"

function App() {
  const { account, connect, balance } = useMetamask()
  return (
    <div>
      <p>Address: {account}</p>
      <p>BALANCE: {balance}ETH</p>
      <button onClick={connect}>CONNECT</button>
    </div>
  )
}
```

## Send Ether

```js
import { parse, useMetamask } from "@forta/usemetamask"
// ..

const { send } = useMetamask()
send({
  to: "0x3c0e20fCA6d2E084127D056377a5f35294503447",
  value: parse.toTxWei(0.5),
  /* 0.5 in ETH. Request expects wei in HEX value.
  .toTxWei parses a number to wei & then to HEX */
})
```

---

**[READ THE DOCS 🌟](https://forta.vercel.app/usemetamask)** | **[FOLLOW ME 🐦](https://twitter.com/d3portillo)**
npm package: @fortanetwork/forta-bot
Description: Forta Detection Bot Typescript SDK
Latest version: 0.2.3

# Forta Detection Bot Typescript SDK

[![npm version](https://badge.fury.io/js/forta-bot.svg)](https://badge.fury.io/js/forta-bot)

Visit [forta.org](https://forta.org/) to learn more about Forta. See the developer documentation at [docs.forta.network](https://docs.forta.network)

## Bug Bounty

We have a [bug bounty program on Immunefi](https://immunefi.com/bounty/forta). Please report any security issues you find through the Immunefi dashboard, or reach out to [tech@forta.org](mailto:tech@forta.org)

## Changelog
npm package: @fortanetwork/forta-bot-cli
Description: Forta Detection Bot CLI
Latest version: 0.2.4

# Forta Detection Bot CLI

[![npm version](https://badge.fury.io/js/forta-bot.svg)](https://badge.fury.io/js/forta-bot)

Visit [forta.org](https://forta.org/) to learn more about Forta. See the developer documentation at [docs.forta.network](https://docs.forta.network)

## Bug Bounty

We have a [bug bounty program on Immunefi](https://immunefi.com/bounty/forta). Please report any security issues you find through the Immunefi dashboard, or reach out to [tech@forta.org](mailto:tech@forta.org)

## Changelog
npm package: @fortawesome/fa-icon-chooser
Description: Font Awesome Icon Chooser
Latest version: 0.10.0

# fa-icon-chooser web component

## Usage

Add it to your JavaScript bundle:

```
npm install --save @fortawesome/fa-icon-chooser
```

After the resulting JavaScript bundle has been loaded in the DOM, you can
mount an `fa-icon-chooser` in the DOM. Suppose your HTML has a container `div`:

```
<div id="fa-icon-chooser-container"></div>
```

Then you could write JavaScript like this:

```js
function handleQuery(query) {
  // some function that handles queries
}

function getUrlText(url) {
  // some function that handles GET requests
}

function handleResult(event) {
  const result = event && event.detail;

  if (result) {
    console.log(`<i class"${result.prefix} ${result.iconName}">`);
  }
}

window.addEventListener('DOMContentLoaded', event => {
  const container = document.querySelector('#fa-icon-chooser-container');
  const el = document.createElement('fa-icon-chooser');
  el.handleQuery = handleQuery;
  el.getUrlText = getUrlText;
  el.addEventListener('finish', handleResult);
  container.appendChild(el);
});
```

See the `fa-icon-chooser` [API Reference](src/components/fa-icon-chooser/readme.md)
for details about what you'd need to implement in
`handleQuery()`, `getUrlText()`, and `handleResult()`.

You can also look at some example implementations in this repo's [development runtime code](../../dev/runtime.js).
npm package: @fortawesome/fa-icon-chooser-react
Description: React specific wrapper for @fortawesome/fa-icon-chooser
Latest version: 0.10.0

# FaIconChooser React Component

Find API References for the required callback functions in the [`fa-icon-chooser` component documentation over here](../fa-icon-chooser/src/components/fa-icon-chooser/readme.md).

## Usage

```
npm install --save @fortawesome/fa-icon-chooser-react
```

```js
import ReactDOM from 'react-dom'
import { FaIconChooser } from '@fortawesome/fa-icon-chooser-react'

// One or both of these would be provided somehow by the user.
// If both are provided as propse, kitToken takes priority over version.
// If only version is present, the Icon Chooser will run with only
// Font Awesome Free with the given version.
const version = '5.15.5'
const kitToken = undefined

// Implement the required callback functions.

function handleQuery() {
  // ...
}

function handleResult() {
  // ...
}

function getUrlText() {
  // ...
}

const chooser = <FaIconChooser
  version={ version }
  kitToken={ kitToken }
  handleQuery={ handleQuery }
  getUrlText={ getUrlText }
  onFinish={ handleResult }
></FaIconChooser>

ReactDOM.render(chooser, document.body)
```

See also the [example React app](example).
npm package: @fortawesome/fontawesome-common-types
Description: The iconic font, CSS, and SVG framework
Author: The Font Awesome Team
Latest version: 7.2.0

# @fortawesome/fontawesome-common-types - SVG with JavaScript

> "I came here to chew bubblegum and install Font Awesome 7 - and I'm all out of bubblegum"

[![npm](https://img.shields.io/npm/v/@fortawesome/fontawesome-common-types.svg?style=flat-square)](https://www.npmjs.com/package/@fortawesome/fontawesome-common-types)

## What is this package?

Font Awesome 7 JavaScript packages support TypeScript. This package abstracts out some of the common definitions that those packages use.

## Here be dragons

If you are trying to import types from this package we *highly* recommend you do the following instead as *all types in this package are re-exported to the main fontawesome package*.

your.ts

```
import {
  IconName
} from `@fortawesome/fontawesome-svg-core`

const myIcon: IconName = "..."
```

## Issues and support

Start with [GitHub issues](https://github.com/FortAwesome/Font-Awesome/issues) and ping us on [Twitter](https://twitter.com/fontawesome) if you need to.