open-index/open-npm huggingface dataset:
npm package: @juanganma/api-client
Description: Api Client for @juanganma/api-server
Author: Juan Gan
Latest version: 1.0.3

# api-client

To install dependencies:

```bash
bun install
```

To run:

```bash
bun run index.ts
```

This project was created using `bun init` in bun v1.2.13. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
npm package: @juangm/samba-client
Description: Wrapper for smbclient
Author: Juan Antonio Garcia Marin
Latest version: 1.8.0

# Node-Samba-Client

[![npm version](https://badge.fury.io/js/%40juangm%2Fsamba-client.svg)](https://badge.fury.io/js/%40juangm%2Fsamba-client)

## Overview

- **node-samba-client** is a wrapper for smbclient for linux systems to interact with **SMB/CIFS** file sharing protocol.

## Requirements

- Requires Node.js 10+
- Smbclient must be installed.
- This can be installed on Ubuntu with `sudo apt install smbclient`.

## Installation

Just run >>> `npm install @juangm/samba-client`

## Example (using Typescript)

```javascript
    import { SambaClient } from '@juangm/samba-client'

    const config: SmbConfig = {
        address: '//server/folder',
        domain: 'WORKGROUP',
        username: 'guest',
        password: 'test'
        path: '...',
        others: '...',
    };

    const client = new SambaClient(config);

    // send a file
    await client.sendFile('somePath/file', 'destinationFolder/name');

    // get a file
    await client.getFile('someRemotePath/file', 'destinationFolder/name');
```
npm package: @juanherrerakare/react-native-library
Description: test library
Author: Juan Herrera
Latest version: 0.1.0

# react-native-library

test library

## Installation

```sh
npm install react-native-library
```

## Usage


```js
import { multiply } from 'react-native-library';

// ...

const result = await multiply(3, 7);
```


## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @juanibiapina/cron-await
Description: Block until a cron schedule fires
Author: Juan Ibiapina
Latest version: 1.0.0

# cron-await

Block until the next cron schedule fires.

A CLI tool that takes one or more cron expressions, computes the next matching time, sleeps until then, and prints the result as JSON to stdout. Designed for use in agent loops and automation scripts.

## Install

```bash
npm install -g @juanibiapina/cron-await
```

## Usage

```
cron-await [options] [expression...]
```

### Options

| Flag | Description |
|---|---|
| `--file <path>` | Read jobs from a JSON file (needs `name` and `cron` fields) |
| `--timeout <seconds>` | Max wait time (exit 1 if exceeded) |
| `--timezone <tz>` | Timezone for cron evaluation (e.g. `Europe/Berlin`) |
| `--help`, `-h` | Show help |

Positional arguments are cron expressions. Each uses the expression itself as the job name in the output.

### Exit codes

| Code | Meaning |
|---|---|
| 0 | Cron fired, job info printed to stdout |
| 1 | Timeout or runtime error |
| 2 | Bad arguments or usage error |

## Examples

Wait for the next minute boundary:

```bash
cron-await "* * * * *"
```

Wait for the earliest of two schedules:

```bash
cron-await "30 21 * * 1-4" "0 9 * * *"
```

Read jobs from a file:

```bash
cron-await --file scheduler.json
```

Timeout after 60 seconds:

```bash
cron-await --timeout 60 "0 0 1 1 *"
```

Evaluate in a specific timezone:

```bash
cron-await --timezone Europe/Berlin "0 9 * * *"
```

### Output

A single JSON line on stdout:

```json
{"name":"30 21 * * 1-4","cron":"30 21 * * 1-4","time":"2026-03-19T21:30:00.000Z"}
```

When using `--file`, the `name` field comes from the file:

```json
{"name":"post-market-scan","cron":"30 21 * * 1-4","time":"2026-03-19T21:30:00.000Z"}
```

Status messages go to stderr so stdout stays clean for piping.

## File format

The `--file` flag reads a JSON file with a `jobs` array. Each entry must have `name` and `cron` fields. Other fields are ignored.

```json
{
  "jobs": [
    {
      "name": "post-market-scan",
      "cron": "30 21 * * 1-4",
      "other": "ignored"
    },
    {
      "name": "morning-report",
      "cron": "0 9 * * 1-5"
    }
  ]
}
```

## Use with a coding agent

Run an agent loop that dispatches on the next job:

```bash
while true; do
  result=$(cron-await --file scheduler.json)
  job=$(echo "$result" | jq -r '.name')

  case "$job" in
    post-market-scan)
      run-post-market-scan
      ;;
    morning-report)
      run-morning-report
      ;;
  esac
done
```

## How it works

1. Parses cron expressions from arguments and/or a JSON file
2. Computes the next matching time for each expression using [croner](https://github.com/Hexagon/croner)
3. Picks the earliest match
4. Sleeps until that time (with chunked setTimeout to avoid overflow)
5. Prints the result as JSON to stdout

## License

MIT
npm package: @juanibiapina/pi-files
Description: Pi extension that tracks files read/written/edited by the agent
Author: Juan Ibiapina
Latest version: 0.1.1

# @juanibiapina/pi-files

A [pi](https://github.com/badlogic/pi-mono) extension that tracks files read, written, and edited by the agent during a session.

## Features

- **`/files` command** — Show a list of all files the agent has interacted with, sorted by most recent access
- **Operation indicators** — Each file shows R (read), W (written), E (edited) labels
- **Open in editor** — Select a file to open it in your configured editor
- **Keyboard shortcut** — Optionally bind a shortcut to open the file list
- **Session-aware** — Rebuilds file list from session history on resume, clears on session switch

## Installation

```bash
pi install npm:@juanibiapina/pi-files
```

Requires [@juanibiapina/pi-extension-settings](https://github.com/juanibiapina/pi-extension-settings) for settings management.

## Usage

Use `/files` in pi to open the file picker. Navigate with arrow keys, press Enter to open a file in your editor.

## Settings

Configure via `/extension-settings`:

| Setting | Description | Example |
|---------|-------------|---------|
| `editorCommand` | Command to open files (space-separated, path is appended) | `code -g` |
| `shortcut` | Keyboard shortcut to open file list | `ctrl+f` |

## License

MIT
npm package: @juanibiapina/pi-gob
Description: Pi extension for managing gob background jobs
Author: Juan Ibiapina
Latest version: 0.5.1

# @juanibiapina/pi-gob

A [pi](https://github.com/badlogic/pi-mono) extension for managing [gob](https://github.com/juanibiapina/gob) background jobs.

## Features

- **Powerbar segment** — Running jobs displayed in the powerbar via the `gob` segment, updated in real time via daemon connection
- **`/gob` command** — Interactive list of all jobs with actions (logs, stop, start, restart, remove)
- **Daemon protocol** — Connects directly to the gob daemon Unix socket for instant updates, with CLI fallback

## Installation

```bash
pi install npm:@juanibiapina/pi-gob
```

## Usage

### Powerbar Segment

Add `gob` to your powerbar left or right segments in powerbar settings. The segment appears when there are running gob jobs in the current working directory.

- 1 job: `⚙ npm run dev`
- Multiple jobs: `⚙ 2 jobs`

The segment updates in real time via the gob daemon event stream.

### `/gob` Command

Use `/gob` to open an interactive job list. Navigate with arrow keys, press Enter to see available actions.

| Action | Available When | Description |
|--------|---------------|-------------|
| logs | Always | View last 50 lines of output |
| stop | Running | Stop the job |
| start | Stopped | Start the job again |
| restart | Always | Stop and start the job |
| remove | Stopped | Remove the job |

## How It Works

The extension connects to the gob daemon's Unix socket (`$XDG_RUNTIME_DIR/gob/daemon.sock`) and subscribes to job events. When jobs change, it emits `powerbar:update` events with segment id `gob`. If the daemon isn't running, the extension retries every 5 seconds and falls back to the `gob` CLI for the `/gob` command.

## License

MIT
npm package: @juanibiapina/pi-plan
Description: Pi extension for plan mode - read-only exploration and analysis
Author: Juan Ibiapina
Latest version: 0.3.1

# @juanibiapina/pi-plan

A [pi](https://github.com/badlogic/pi-mono) extension for plan mode — read-only exploration and analysis.

## Features

- **`/plan` command** — Toggle plan mode on and off
- **Configurable shortcut** — Optional keyboard shortcut via `/extension-settings`
- **Read-only tools** — Only safe, non-modifying tools are available while in plan mode
- **Session persistence** — System reminders are kept in session history, so what the LLM sees is exactly what you see
- **Status indicator** — Shows `⏸ plan` in the status bar when active
- **Powerbar support** — Emits a `⏸ plan` segment to [pi-powerbar](https://github.com/juanibiapina/pi-powerbar) when plan mode is active

## Installation

```bash
pi install npm:@juanibiapina/pi-plan
```

## Usage

### Entering Plan Mode

Use `/plan` to toggle plan mode. When enabled:

- Only read-only tools are available (`read`, `bash`, `grep`, `find`, `ls`, `questionnaire`)
- The agent is instructed to only observe, analyze, and plan — no modifications
- A `⏸ plan` indicator appears in the status bar

### Exiting Plan Mode

Use `/plan` again to return to normal mode with full tool access.

### Keyboard Shortcut

No shortcut is bound by default. To configure one, use `/extension-settings` and set the `shortcut` setting under `plan` (e.g. `tab`, `ctrl+p`).

> **Note:** The `/extension-settings` command is provided by the [`@juanibiapina/pi-extension-settings`](https://github.com/juanibiapina/pi-extension-settings) package, which must be installed separately:
>
> ```bash
> pi install npm:@juanibiapina/pi-extension-settings
> ```

### CLI Flag

Start pi directly in plan mode:

```bash
pi --plan
```

### How It Works

Plan mode works by injecting system reminder messages into the session when the mode changes. These messages instruct the LLM to operate in read-only mode (or restore full access when exiting). The messages are kept in the session history, so what is sent to the LLM is always exactly what you see in the session — no hidden prompt manipulation. When resuming a session that was in plan mode, the mode is automatically restored from these messages.

## License

MIT
npm package: @juanibiapina/pi-tokyonight
Description: Tokyo Night theme for pi coding agent
Author: Juan Ibiapina
Latest version: 1.0.1

# pi-tokyonight

[Tokyo Night](https://github.com/folke/tokyonight.nvim) theme for the [pi coding agent](https://github.com/badlogic/pi-mono).

## Variants

- **tokyonight-moon** — the Moon variant with a cool, muted blue palette

## Installation

```bash
pi install npm:@juanibiapina/pi-tokyonight
```

## Usage

Once installed, activate the theme in pi:

```
/theme tokyonight-moon
```

## Contributing

This theme could use some love! If you have an eye for design and want to help improve the color mappings, PRs are welcome.

## License

MIT
npm package: @juanibiapina/websearch
Description: Multi-provider web search and content extraction CLI
Author: Juan Ibiapina
Latest version: 1.0.0

# websearch

Multi-provider web search and content extraction CLI.

## Install

```bash
npm install -g @juanibiapina/websearch
```

## Usage

```bash
websearch search "query"                       # Search (default: Tavily)
websearch search "query" -p brave              # Specific provider
websearch search "query" -n 10                 # More results (default: 5)
websearch search "query" --content             # Include page content
websearch search "query" --freshness week      # Filter: day, week, month, year
websearch extract "https://example.com"        # Extract page content as markdown
websearch answer "What is Node.js?"            # Direct answer with citations
websearch similar "https://example.com"        # Find similar pages (Exa)
websearch code "React hooks"                   # Find code examples (Exa)
```

All commands support `--json` for raw JSON output.

## Providers

| Provider | Best for | Free tier |
|---|---|---|
| tavily | General AI-optimized search, answers | 1,000/month |
| exa | Semantic search, similar pages, code context | 1,000/month |
| websearchapi | Google-powered search, generous quota | 2,000/month |
| brave | Independent index, privacy-focused | ~1,000/month |
| serpapi | YouTube, Scholar, Amazon (40+ engines) | 100/month |

## Environment Variables

```
TAVILY_API_KEY      # https://app.tavily.com
EXA_API_KEY         # https://dashboard.exa.ai
WEBSEARCHAPI_KEY    # https://websearchapi.ai
BRAVE_API_KEY       # https://api-dashboard.search.brave.com
SERPAPI_KEY          # https://serpapi.com/manage-api-key
```

## License

MIT
npm package: @juanjavier1979/gatsby-theme-minimal-ecommerce
Description: ## 🚀 Quick start
Author: JuanJavier1979
Latest version: 0.1.9-alpha

# Gatsby Theme Minimal E-Commerce

## 🚀 Quick start

1.  **Create a Gatsby site.**

    Use the Gatsby CLI to create a new site, specifying the default starter.

    ```shell
    # create a new Gatsby site using the default starter
    gatsby new my-ecommerce-site https://github.com/JuanJavier1979/gatsby-theme-minimal-ecommerce
    ```

1.  **Start developing.**

    Navigate into your new site’s directory and start it up.

    ```shell
    cd my-ecommerce-site/
    gatsby develop
    ```

1.  **Open the source code and start editing!**

    Your site is now running at `http://localhost:8000`!

    _Note: You'll also see a second link: _`http://localhost:8000/___graphql`_. This is a tool you can use to experiment with querying your data. Learn more about using this tool in the [Gatsby tutorial](https://www.gatsbyjs.org/tutorial/part-five/#introducing-graphiql)._

    Open the `my-ecommerce-site` directory in your code editor of choice and edit `src/pages/index.js`. Save your changes and the browser will update in real time!
npm package: @juanjofp/gt511c3
Description: Library for GT-511C3 fingerprint scanner
Author: juanjofp, francescorivola
Latest version: 0.0.40

[![Package GT511C3 in npm](https://github.com/Juanjofp/node-gt511c3/actions/workflows/npm.yml/badge.svg?branch=main)](https://github.com/Juanjofp/node-gt511c3/actions/workflows/npm.yml)

# GT511C3

Library for GT-511C3 fingerprint scanner

# installation

```
npm install @juanjofp/gt511c3
```

# Usage

```ts
import { createSerialPortObservable } from '@juanjofp/serialport-observable';

const serialPortObservable = createSerialPortObservable('/dev/ttyAMA0', {
    baudRate: 9600
});

const finger = gt511c3(serialPortObservable);
try {
    await finger.connect();
    const fingerId = await finger.findIdForPressedFinger();
    console.log('Finger found: ', fingerId);
} finally {
    await finger.disconnect();
}
```
npm package: @juanjofp/serialport-observable
Description: Serialport-observable is a library for RxJS that allows you to read and write data from/to a serial port.
Author: juanjofp, francescorivola
Latest version: 0.0.25

[![Publish package in npm](https://github.com/Juanjofp/-serialport-observable/actions/workflows/npm.yml/badge.svg)](https://github.com/Juanjofp/-serialport-observable/actions/workflows/npm.yml)

# Serialport Observable

Serialport-observable is a library for RxJS that allows you to read and write data from/to a serial port.

# install

```js
npm install @juanjofp/serialport-observable
```

# Usage

```ts
const uartDevice = createSerialPortObservable('/dev/ttyAMA0', {
    baudRate: 9600,
    highWaterMark: 100000
});

await uartDevice.open();

let subscription: Subscription | undefined;
const obsValue = await new Promise<Buffer>(resolve => {
    subscription = uartDevice.data().subscribe(resolve);
    uartDevice.write([0x01, 0x02, 0x03]);
});

subscription?.unsubscribe();
await uartDevice.close();

expect(uartDevice.isConnected()).toBe(false);
expect(obsValue.byteLength).toBeGreaterThanOrEqual(1);
```
npm package: @juanjose/platzom
Description: Traductor de idioma platzom
Author: Juan Jose Vega
Latest version: 0.1.0

# Platzom 

Platzom es un idioma inventado para el [Curso de fundamentos de JavaScript](htpps://platzi.com/js) de [Platzi](htpps://platzi.com)

## Descripción del idioma	 

-Si la palabra termina en "ar", se le quitan esos dos caracteres
-Si la palabra inicia con Z, se le añade "pe" al final 
-Si la palabra traducida tiene 10 o mas letras, se debe partir a la mitad y unir con un guión del medio
-Si la palabra original es un palíndromo, ninguna regla anterior cuenta y se devuelve la misma palabra intercambiando mayúsculas y min

## Instalación 

```
npm install platzom
```

## Uso 

```
import platzom from 'platzom'

platzom("Programar") // Program
platzom("Zorro") //Zorrope
platzom("Zarpar") //Zarppe
platzom("abecedario") //abece-dario
platzom("sometemos") //SoMeTeMoS
```

## Créditos
- [Juan Jose Vega](https://twitter.com/juanjosevega17)

## Licencia 

[MIT](https://opensource.org/licenses/MIT)
npm package: @juanjosegongi/vue-mouseflow
Description: Vue.js plugin to add Mouseflow tracking to your application
Author: Jamie McElwain
Latest version: 1.0.2

# VueMouseflow

[![npm](https://img.shields.io/npm/v/vue-mouseflow.svg?style=flat-square)](https://www.npmjs.com/package/vue-mouseflow)
[![prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

> 📈 Vue.js plugin for Mouseflow tracking

## Installation

```bash
npm install --save vue-mouseflow
```

## Plugin Installation

### `VueMouseflow.install(Vue, options)`

- **`Vue`**`<Object>`: a Vue instance
- **`tracking_key`**`<String>`: The Mouseflow tracking key you want to use

Install the plugin using the `Vue.use` method:

```js
import Vue from 'vue';
import VueMouseflow from 'vue-mouseflow';

Vue.use(VueMouseflow, { tracking_key: 'your-tracking-key' });
```

## Methods

### Push

#### `VueMouseflow.push([commandName, argument1, argument2, …]);`

This acts as a wrapper for the `_mfq` object. Check [https://js-api-docs.mouseflow.com/#the-\_mfq-object](https://js-api-docs.mouseflow.com/#the-_mfq-object) for more information.

### Router Hook

#### `VueMouseflow.logRouteChange(route[, options])`

- **`route`**`<Object>`: a VueRouter route object
- **`options`**`<Object>`:
  - **`includeRouteParams`**`<Boolean>`: Set to false to remove all user-entered URL params. Useful if there is sensitive data in the URL which you do not want to track. Defaults to `true`.

```js
// router.js
import VueRouter from 'vue-router';
import VueMouseflow from 'vue-mouseflow';

const router = new VueRouter({
  routes: [
    /* some routes */
  ]
});

router.afterEach(to => {
  VueMouseflow.logRouteChange(to, { includeRouteParams: false });
});
```

### `this.$mf`

`VueMouseflow` is also added to your Vue prototype when installed. The above two methods are exposed on the `this.$mf` namespace.

This can be useful for event logging within components:

```js
const MyApp = new Vue({
  ...,
  methods: {
    buttonPressed(evt) {
      this.$mf.push('addedToCart', Date.now());
    }
  }
})
```
npm package: @juankyapps/logger
Description: Simple logging utility. Its small and it uses moment.
Author: JuankyApps
Latest version: 1.0.1

# JuankyApps Logger

Simple logging utility. Its small and it uses moment.

```npm i @juankyapps/logger```

## Features:

- [x] Small
- [x] Uses moment

Feel free to contribute. Or not.
npm package: @juanlatorre/react-facebook-pixel
Description: Pixel Kit for React
Author: Zain Sajjad
Latest version: 1.0.7

# React Facebook Pixel

[![npm](https://img.shields.io/npm/dm/react-facebook-pixel.svg)](https://www.npmjs.com/package/react-facebook-pixel)

> React JS wrapper for [Facebook's Pixel](https://developers.facebook.com/docs/facebook-pixel)

## Install

```bash
npm install --save react-facebook-pixel

```

or

```bash
yarn add react-facebook-pixel

```

## Sponsors

React Facebook Pixel is being sponsored by the following tool; please help to support us by taking a look and signing up to a free trial

<a href="https://tracking.gitads.io/?repo=react-facebook-pixel" target="_blank">
 <img src="https://images.gitads.io/react-facebook-pixel" alt="GitAds"/>
</a>

## How to use

```js
import ReactPixel from 'react-facebook-pixel';

const advancedMatching = { em: 'some@email.com' }; // optional, more info: https://developers.facebook.com/docs/facebook-pixel/advanced/advanced-matching
const options = {
  autoConfig: true, // set pixel's autoConfig. More info: https://developers.facebook.com/docs/facebook-pixel/advanced/
  debug: false, // enable logs
};
ReactPixel.init('yourPixelIdGoesHere', advancedMatching, options);

ReactPixel.pageView(); // For tracking page view
ReactPixel.track(event, data); // For tracking default events. More info about standard events: https://developers.facebook.com/docs/facebook-pixel/implementation/conversion-tracking#standard-events
ReactPixel.trackSingle('PixelId', event, data); // For tracking default events.
ReactPixel.trackCustom(event, data); // For tracking custom events. More info about custom events: https://developers.facebook.com/docs/facebook-pixel/implementation/conversion-tracking#custom-events
ReactPixel.trackSingleCustom('PixelId', event, data); // For tracking custom events.
```

if you're bundling in CI

```js
  ...
  componentDidMount() {
    const ReactPixel =  require('react-facebook-pixel');
    ReactPixel.default.init('yourPixelIdGoesHere');
  }
  ...
```

otherwise CI will complain there's no `window`.

## GDPR Compliance

To be GDPR compliant, revoke the consent right after init and grant it when the user accepts to be tracked

```js
  ...
  ReactPixel.init('yourPixelIdGoesHere', advancedMatching, options);
  ReactPixel.revokeConsent();
  ...

  ...
  <button onClick={ReactPixel.grantConsent}>Accept cookies</button>.
  ...
```

## Dev Server

```bash
npm run start

```

Default dev server runs at localhost:8080 in browser.
You can set IP and PORT in webpack.config.dev.js

## Production Bundle

```bash
npm run bundle
```

### Follow me on Twitter: [@zsajjad93](https://twitter.com/zsajjad93)