open-index/open-npm huggingface dataset:
npm package: @idovgopoly/ci-npm-test
Description: Template hardhat repository for ad-hoc smart contracts development.
Author: Distributed Lab
Latest version: 5.4.0

# Hardhat template 

Template hardhat repository for ad-hoc smart contracts development.

### How to use

The template works out of the box. To clean up the repo, you may need to delete the mock contracts, tests and migration files.

#### Compilation

To compile the contracts, use the next script:

```bash
npm run compile
```

#### Test

To run the tests, execute the following command:

```bash
npm run test
```

Or to see the coverage, run:

```bash
npm run coverage
```

#### Local deployment

To deploy the contracts locally, run the following commands (in the different terminals):

```bash
npm run private-network
npm run deploy-localhost
```

#### Bindings

The command to generate the bindings is as follows:

```bash
npm run generate-types
```

> See the full list of available commands in the `package.json` file.

### Integrated plugins

- Hardhat official `ethers` + `ethers-v6`
- [`Typechain`](https://www.npmjs.com/package/@typechain/hardhat)
- [`hardhat-migrate`](https://www.npmjs.com/package/@solarity/hardhat-migrate), [`hardhat-markup`](https://www.npmjs.com/package/@solarity/hardhat-markup), [`hardhat-gobind`](https://www.npmjs.com/package/@solarity/hardhat-gobind)
- [`hardhat-contract-sizer`](https://www.npmjs.com/package/hardhat-contract-sizer)
- [`hardhat-gas-reporter`](https://www.npmjs.com/package/hardhat-gas-reporter)
- [`solidity-coverage`](https://www.npmjs.com/package/solidity-coverage)

### Other niceties

- The template comes with presetup `prettier` and `solhint` that lint the project via `husky` before compilation hook.
- The `.env.example` file is provided to check what is required as ENVs
- Preinstalled `@openzeppelin/contracts` and `@solarity/solidity-lib`
npm package: @idowei/json-to-json-schema
Description: Convert JSON to JSON Schema
Author: Ido Weitzman
Latest version: 1.0.3

<h1>json-to-json-schema</h1>
Converts JSON to it's corresponsing JSON schema.

## Features
1. Convert JSON to JSON schema
2. Enrich the converted JSON schema with:
   * `title` - generate title for each property
   * `required` - mark each fields as required
   * `examples` - generate examples for each property
   * `format` - detect format for relevant properties (supported formats: `uuid`, `email`, `uri`, `date`, `time`)

## Installation

npm:
```
npm i @idowei/json-to-json-schema
```

yarn:
```
yarn add @idowei/json-to-json-schema
```

## Usage

```js
import jsonToJsonSchema from '@idowei/json-to-json-schema'

const json = {
  userId: '07b84a8a-7fa3-467c-8129-e6e0dcdd5a40',
  userName: "John Doe",
  lastLoginDate: "2020-01-01T00:00:00.000Z",
  email: "john.doe@gmail.com",
}

const jsonSchema = jsonToJsonSchema(json, { 
  examples: true, 
  titles: true, 
  format: true, 
  required: true 
});
```

For the above example the following json schema is generated:

```js
{
   properties: {
     userId: {
       type: 'string',
       examples: ['07b84a8a-7fa3-467c-8129-e6e0dcdd5a40'],
       title: 'User Id',
       format: 'uuid'
     },
     userName: { type: 'string', examples: ['John Doe'], title: 'User Name' },
     lastLoginDate: {
       type: 'string',
       examples: ['2020-01-01T00:00:00.000Z'],
       title: 'Last Login Date',
       format: 'date-time'
     },
     email: {
       type: 'string',
       examples: ['john.doe@gmail.com'],
       title: 'Email',
       format: 'email'
     }
   },
   required: ['userId', 'userName', 'lastLoginDate', 'email']
}
```

### Parameters

```typescript
type jsonToJsonSchema = (json: Record<string, any>, options?: JsonToJsonSchemaOptions) => JSONSchema7
```

`json: Record<string, any>` - JSON object
<br/> <br/>
`options: JsonToJsonSchemaOptions` - optional options object with the following properties:
Key        | Type          | Default value | Description
---        | --------      | ----          | ---------
`titles`   | `boolean`     | `false`       | Generates title for each property.
`required` | `boolean`     | `false`       | Marks each property as required.
`examples` | `boolean`     | `false`       | Generates examples for each property.
`format`   | `boolean`     | `false`       | detects format for each property and adds it (if found). for an example check out Usage section.
npm package: @idoyana/cjsx-converter
Description: Convert Coffee/CJSX into pretty JS/JSX
Author: Rylan Collins
Latest version: 1.0.0

# cjsx-converter

A tool to help convert Coffee/CJSX files into pretty JS/JSX

## Installation

```
yarn global add cjsx-converter
```

## Usage

```
$ cjsx-converter <file>
```
npm package: @idoz.dev/salai-mcp
Description: SalAi MCP server — npx bridge to the SalAi MCP HTTP endpoint
Latest version: 0.1.0

# @salai/mcp

> SalAi MCP server — instant `npx` bridge to the [SalAi](https://salai.co.il) grocery intelligence API.

Connects any MCP client (Cursor, Claude Desktop, etc.) to the SalAi MCP HTTP endpoint via a local stdio bridge. No installation required — just `npx`.

## Quick Start

### 1. Get your API key

Open the SalAi app → **Profile → API Key → Generate** (or copy your existing key).

### 2. Configure your MCP client

**Cursor** (`~/.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "salai": {
      "command": "npx",
      "args": ["-y", "@salai/mcp"],
      "env": {
        "SALAI_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

**Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "salai": {
      "command": "npx",
      "args": ["-y", "@salai/mcp"],
      "env": {
        "SALAI_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

That's it. Restart your MCP client and the SalAi tools will appear.

---

## Alternative: Remote HTTP (no npx needed)

If your client supports remote HTTP MCP endpoints directly (e.g. Cursor), you can skip `npx` entirely:

```json
{
  "mcpServers": {
    "salai": {
      "url": "https://mcp.salai.co.il/mcp",
      "headers": {
        "Authorization": "Bearer your-api-key-here"
      }
    }
  }
}
```

---

## CLI Options

```
npx @salai/mcp [options]

Options:
  --api-key, -k <key>   SalAi API key (or set SALAI_API_KEY env var)
  --url, -u <url>       MCP endpoint URL (default: https://mcp.salai.co.il/mcp)
  --version, -v         Print version
  --help, -h            Show help
```

## Environment Variables

| Variable | Description |
|---|---|
| `SALAI_API_KEY` | Your SalAi API key from Profile |
| `SALAI_MCP_URL` | Override the MCP endpoint URL |

---

## Available Tools

| Domain | Tools |
|---|---|
| **Search** | `autocomplete_products`, `search_products` |
| **Prices** | `get_product_prices`, `compare_prices`, `cart_of_israel` |
| **Stores** | `get_stores`, `get_retailers`, `get_my_store_context`, `set_my_selected_store` |
| **Carts** | `get_my_cart`, `get_cart`, `add_cart_item`, `update_cart_items`, `remove_cart_item`, `delete_cart`, `compare_my_cart` |
| **Recommendations** | `get_complementary_recommendations` |

User-scoped tools (`get_my_cart`, store context, etc.) require a valid API key.

---

## How It Works

`@salai/mcp` is a lightweight stdio↔HTTP bridge:

```
Cursor / Claude Desktop
        │  stdio (MCP)
        ▼
  @salai/mcp (npx)
        │  HTTPS (Streamable HTTP MCP)
        ▼
  https://mcp.salai.co.il/mcp
```

It connects to the SalAi MCP HTTP endpoint, discovers all available tools, and re-exposes them locally over stdio so any MCP client can use them.
npm package: @idozorenko/react-selections
Description: Interactive area selections for react apps
Author: Denys Provodnikov, Mark Salabutin [https://madappgang.com]
Latest version: 2.1.10

# React Selections
[![Build Status](https://travis-ci.org/MadAppGang/react-selections.svg?branch=master)](https://travis-ci.org/MadAppGang/react-selections)
[![Coverage Status](https://coveralls.io/repos/github/MadAppGang/react-selections/badge.svg?branch=master)](https://coveralls.io/github/MadAppGang/react-selections?branch=master)

This is a library that provides a set of tools for drawing regions with cursor.

![Example](https://image.ibb.co/mfodSJ/ezgif_com_gif_maker.gif "Example")

## Installation

```bash
npm install --save @madappgang/react-selections
```

## Usage

You need to specify an area for the selections to be rendered inside of. Selections can't be drawn outside the container. The package provides a container component, which you should use to render as a parent node to your selections (and other components as well).

```javascript
import { Selection, SelectionContainer } from '@madappgang/react-selections';
```

You then simply wrap your area that you want to render selections above in the container:

```javascript

const selectionArea = {
  id: 1,
  dimensions: {
    height: 150,
    width: 300
  },
  coordinates: {
    x: 100,
    y: 100
  },
};

...
<SelectionContainer>
  <Selection
    area={selectionArea}
    className="my-selection"
  />
  ...
  <AnyOtherComponent />
  ...
</SelectionContainer>
...
```

As you see you can render anything inside the container, it will recognize selections inside and pass them special props.

### Interactive selections

If you need a selection to be draggable/resizable you need to specify it explicitly with an *interactive* boolean property.

```javascript
<Selection interactive area={area} />
```

Then you have to provide a handler that is going to handle area updates.

```javascript
...

constructor() {
  ...

  this.state = {
    selectionArea: { ... },
  };
}

...

handleSelectionAreaUpdate(selectionArea) {
  this.setState({ selectionArea });
}

render() {
  return (
    <SelectionContainer>
      ...
      <Selection
        interactive
        area={this.selectionArea}
        onAreaUpdate={this.handleSelectionAreaUpdate}
      />
    </SelectionContainer>
  );
}

...
```

...