open-index/open-npm huggingface dataset:
npm package: @pedroaf0/up-ftp
Description: Upload a directory to FTP via CLI (usable with npx)
Author: pedroaf0
Latest version: 0.1.0

# up-ftp

Ferramenta CLI para publicar uma pasta local em um servidor FTP. Pode ser executado com `npx up-ftp` ou instalar localmente.

Uso:

```
up-ftp -h ftp.example.com -u username -p password -o ./build -d /remote/path
```

Parâmetros:

- `-h`, `--host`: Host do FTP
- `-u`, `--user`: Usuário
- `-p`, `--pass`: Senha
- `-o`, `--origin`: Diretório de origem local (se omitido, procura `dist` ou `out`)
- `-d`, `--dest`: Diretório remoto no FTP (destino)
- `--dry-run`: Não conecta, apenas mostra arquivos que seriam enviados

Exemplo de uso com npx:

```
npx @pedroaf0/up-ftp -h ftp.example.com -u me -p secret -d /site
```
npm package: @pedroalves0/slate-react
Description: Patched version of slate-react
Latest version: 0.21.24

This package contains the React-specific logic for Slate. It's separated further into a series of directories:

* [**Components**](./src/components) — containing the React components for rendering Slate editors.
* [**Constants**](./src/constants) — containing a few private constants modules.
* [**Plugins**](./src/plugins) — containing the React-specific plugins for Slate editors.
* [**Utils**](./src/utils) — containing a few private convenience modules.

Feel free to poke around in each of them to learn more!
npm package: @pedroamaya/platzom
Description: Traductor de idioma platzom
Author: Pedro Amaya
Latest version: 0.1.0
Deprecated: not apply

# Platzom

Platzom es un idioma inventado para el curso de [Fundamentos de JavaScript](https://platzi.com/clases/fundamentos-javascript/) de platzi, el mejor lugar de educacion online.

## Descripcion del idioma

- Si la palabra original es un palíndromo, ninguna regla anterior cuenta y se devuelve la misma palabra intercalando mayúsculas y minúsculas
- 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 más letras, se debe partir a la mitad y unir con un guión del medio

## Instalacion

```
npm install platzom
```

## Uso

```
import platzom from 'platzom'

console.log(platzom("Programar")) // Program
console.log(platzom("Zorro")) // Zorrope
console.log(platzom("Zarpar")) // Zarppe
console.log(platzom("abecedario")) // abece-dario
console.log(platzom("sometemos")) // SoMeTeMoS
```

## Creditos
- [Pedro Amaya](https://www.pedroamaya.com)

## Licencia

[MIT](https://opensource.org/licenses/MIT)
npm package: @pedrocavaleiro/avalanche
Description: A simple snowflake id generator
Author: Pedro Cavaleiro
Latest version: 1.0.7

# Avalanche

[![Build](https://github.com/PedroCavaleiro/avalanche/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/PedroCavaleiro/avalanche/actions/workflows/build.yml)
[![Tests](https://github.com/PedroCavaleiro/avalanche/actions/workflows/testing.yml/badge.svg?branch=main)](https://github.com/PedroCavaleiro/avalanche/actions/workflows/testing.yml)
[![CI](https://github.com/PedroCavaleiro/avalanche/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/PedroCavaleiro/avalanche/actions/workflows/ci.yml)
[![Publish](https://github.com/PedroCavaleiro/avalanche/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/PedroCavaleiro/avalanche/actions/workflows/npm-publish.yml)

A Simple TypeScript Snowflake ID library

This will allow you to generate unique IDs for your application but also parse the details back.

## Installation

To install just use npm to install the package.

```bash
npm install @pedrocavaleiro/avalanche
```

## Usage

### Generate a Snowflake ID

To generate a Snowflake ID with the default settings and for the current date just call `generateSnowflake`.

```typescript
import { Avalanche } from '@pedrocavaleiro/avalanche';

let snowflake = Avalanche.generateSnowflake();
```

You can generate for a specific date (not recommended as it might not be unique) by passing a `Date` object.

```typescript
import { Avalanche } from '@pedrocavaleiro/avalanche';

const date = new Date('2025-01-08T16:12:12.603Z');
let snowflake = Avalanche.generateSnowflake(date);
```

You can go further and specify the epoch, worker ID.

```typescript
import { Avalanche } from '@pedrocavaleiro/avalanche';

const config = {
  epoch: 1577836800000, // 2020-01-01T00:00:00.000Z
  workerId: 1,
};

Avalanche.configure(config);
let snowflake = Avalanche.generateSnowflake();
```

### Parse a Snowflake ID

To parse a Snowflake ID you can use the `toSnowflake` method or `toSnowflakeCustom` the difference is that `toSnowflakeCustom` takes a configuration to correctly parse the Snowflake ID.

Both parsers take a string or bigint as input.

```typescript
import { toSnowflake } from '@pedrocavaleiro/avalanche';

// Parse with global configuration
let snowflake = toSnowflake('62937765418893312');

// Parse with default configuration
let snowflake = toSnowflake('62937765418893312', false);

// Parse with custom configuration
let snowflake = toSnowflakeCustom('62937765418893312', myConfig);
```

## Related projects

- [SwiftySnowflake](https://github.com/PedroCavaleiro/SwiftySnowflake) - A Swift Snowflake ID library
- [Sharpflake](https://github.com/PedroCavaleiro/Sharpflake) - A Simple C# Snowflake ID library
npm package: @pedrocs378/eslint-config
Description: ESLint configuration used by pedrocs378
Latest version: 2.0.0

# ESLint Config

## Setup

1. Install the dependencies
```
npm i -D eslint @pedrocs378/eslint-config
```

2. Create a `.eslintrc.json` file extendig the config:
```json
{
  "extends": "@pedrocs378/eslint-config/react"
}
```
npm package: @pedroct/kit-agentes
Description: Codex-ready dev tools kit with Skills, Agents, and Workflows.
Latest version: 0.1.0

# Codex Dev Tools Kit

A Codex-first project template for dev tools teams, with Skills, Agents, and Workflows.

## Quick Start
1. Open this repo in Codex.
2. Ask for changes normally, or invoke a workflow like `/plan build X`.
3. Codex will load skills from `.agents/skills/` as needed.

## CLI

Use the CLI to scaffold a new kit from this template:

```bash
npx @pedroct/kit-agentes init my-kit
```

You can also install globally:

```bash
npm install -g @pedroct/kit-agentes
kit-agentes init my-kit
```

Options:
- `--force` overwrite an existing non-empty directory

## Release (npm)
1. Authenticate with npm:
   - Local: `npm login --scope=@pedroct --registry=https://registry.npmjs.org`
   - CI: set `NPM_TOKEN` in your CI secrets (used by `.npmrc`).
2. Bump version: `npm version patch|minor|major`
3. Publish: `npm publish` (uses `publishConfig.access=public`).

## Domain and stack
- Dev tools: integrations, data pipelines, and CI/CD.
- Stack: React/Next.js, Node.js, Python/FastAPI, Java/Spring.

## Structure
- `AGENTS.md` core instructions and registry of skills, agents, workflows.
- `.agents/skills/` Codex-compatible skills.
- `agents/` persona briefs.
- `workflows/` step-by-step procedures for slash commands.

## Add a skill
1. Create a folder under `.agents/skills/<skill-name>/`.
2. Add `SKILL.md` with YAML frontmatter containing `name` and `description`.
3. Keep instructions short and task focused.

## Notes
- Keep `.agents/skills/` tracked in git so Codex can read them.
- You can expand agents and workflows as your team evolves.
npm package: @pedroebineraivia/topic-scout-mcp-server
Description: Topic Scout MCP Server for finding trending topics via NewsAPI
Author: Topic Scout Team
Latest version: 1.0.0

# @topic-scout/mcp-server

Topic Scout MCP Server for finding trending topics via NewsAPI.

## Installation

```bash
npm install -g @topic-scout/mcp-server
```

## Usage

### Command Line

```bash
npx -y @topic-scout/mcp-server
```

### Environment Variables

- `NEWS_API_KEY`: Your NewsAPI.org API key

## Features

- **search_news_articles**: Search for news articles on specific topics
- **get_news_sources**: Get list of available news sources

## Example Usage

```bash
# Set environment variable
export NEWS_API_KEY=your-api-key-here

# Run the server
npx -y @topic-scout/mcp-server
```

## MCP Tools

### search_news_articles

Search for news articles on a specific topic.

**Parameters:**
- `topic`: The topic to search for
- `timeframe`: Time frame for search (1d, 7d, 30d)
- `max_articles`: Maximum number of articles to return
- `language`: Language code (en, pt, etc.)

### get_news_sources

Get list of available news sources.

**Parameters:**
- `category`: News category
- `language`: Language code

## License

MIT
npm package: @pedroeldiablo/tiny
Description: Removes all spaces from a string
Latest version: 2.1.0

# tiny
A tiny npm module

![npm (scoped)](https://img.shields.io/npm/v/@pedroeldiablo/tiny?style=for-the-badge)
![npm bundle size (scoped)](https://img.shields.io/bundlephobia/min/@pedroeldiablo/tiny?style=for-the-badge)

Removes all spaces from a string.

## Install

```
$ npm install @pedroeldiablo/tiny
```

## Usage

```js
const tiny = require("@pedroeldiablo/tiny");

tiny("So much space!");
//=> "Somuchspace!"

tiny(1337);
//=> Uncaught TypeError: Tiny wants a string!
//    at tiny (<anonymous>:2:41)
//    at <anonymous>:1:1
```
npm package: @pedroentringer/cheerio-table-parser
Description: Parse html table
Author: Pedro Entringer
Latest version: 2.0.0

# Cheerio Table Parser

Usado para converter tabelas em HTML para JSON

## Como usar

Para iniciar você precisará instalar a lib cheerio

```
yarn add cheerio @pedroentringer/cheerio-table-parser
```

Feito isso basta iniciar as duas libs e fazer o scrapping

```javascript
import { parseTable } from '@pedroentringer/cheerio-table-parser';

const html =
  '<table id="tabela"><thead><tr><th>id</th><th>nome</th><th>Data de Nascimento</th><th>idade</th></tr></thead><tbody><tr><td>1</td><td>Pedro Entringer</td><td>05/10/1997</td><td>22</td></tr></tbody></table>';

const table = parseTable(html);
```

O resultado sera:

```json
[
  {
    "id": 1,
    "nome": "Pedro Entringer",
    "dataDeNascimento": "05/10/1997",
    "idade": 22
  }
]
```

#### Conversão automatica de tipos

O Script convert para String, Number e Boolean

#### Tabela sem thead

Se sua tabela não tiver os campos em thead, você pode usar a configuração `headerIsFirstLine`.

```javascript
import { parseTable } from '@pedroentringer/cheerio-table-parser';

const html =
  '<table id="tabela"><tbody><tr><th>id</th><th>nome</th><th>Data de Nascimento</th><th>idade</th></tr><tr><td>1</td><td>Pedro Entringer</td><td>05/10/1997</td><td>22</td></tr></tbody></table>';

const table = parseTable(html, { headerIsFirstLine: true });
```

O resultado sera:

```json
[
  {
    "id": 1,
    "nome": "Pedro Entringer",
    "dataDeNascimento": "05/10/1997",
    "idade": 22
  }
]
```

#### Header customizado

Se sua tabela não tiver header, você poderá definir manualmente usando a configuração `headers`.

```javascript
import { parseTable } from '@pedroentringer/cheerio-table-parser';

const html =
  '<table id="tabela"><tbody><tr><td>1</td><td>Pedro Entringer</td><td>05/10/1997</td><td>22</td></tr></tbody></table>';

const table = parseTable(html, { headers: ["id", "nome", "dataDeNascimento", "idade"] });
```

O resultado sera:

```json
[
  {
    "id": 1,
    "nome": "Pedro Entringer",
    "dataDeNascimento": "05/10/1997",
    "idade": 22
  }
]
```
npm package: @pedroentringer/custom-soap
Description: Send SOAP requests
Author: Pedro Entringer
Latest version: 2.0.0

# cusom-soap

send SOAP requests

## Simple Custom SOAP

```js
import { Soap } from '@pedroentringer/custom-soap';

console.log('>> Simetrias');

const soap = new Soap({
  prefix: 'soap12',
  url: 'http://187.75.229.91:8091/WSCTE/Service_CTE.asmx',
  agentOptions: {
    rejectUnauthorized: false,
  },
  envelopeAttrs: {
    'xmlns:ns': 'http://simetrias.com.br/webservices/wscte/1.0',
  },
  requestHeaders: {
    SOAPAction: 'http://simetrias.com.br/webservices/wscte/1.0/ReceberConhecimentos',
  },
});

const payloadToConvert = {
  'ns:ReceberConhecimentos': {
    'ns:xml': {
      CTE: {
        viagem: {
          A: '1',
          B: 'E',
          C: 'C',
          D: '88832175000106',
          E: '54',
          F: '',
          G: '003',
          H: '41160202351144003052570030000869681567202596',
          I: '05/11/2015',
          J: '06/11/2015',
          K: 'N',
          L: 'R',
          M: 'SP',
          N: '0',
          O: 'RJ',
          P: '0',
          Q: '0',
          R: 'S',
          S: '9497,16',
          T: '',
          U: '150,88',
          V: '99,75',
          W: '1999,99',
          Z: '1,80',
          AA: 'JXA6906',
          AB: 'N',
          AC: '',
          AD: 'N',
          AE: 'S',
          AF: 'N',
          AG: 'N',
          AH: '',
          AI: '',
          AJ: '',
          AK: '86111146000120',
          AL: '06/01/2016 13:56:06',
          AM: '',
          AN: 'N',
          AO: 'Observação Emissão',
          AP: '',
          AQ: '',
          AR: '',
          AS: '',
          AT: '',
          AU: '',
          AV: '',
          AW: '000869681',
          AX: '',
          AZ: '',
          BA: '',
          BB: '',
          BC: '',
          BD: '',
        },
      },
    },
  },
};

const response = await soap.soapRequest({}, payloadToConvert);

console.log(JSON.str);
```

Result:

```js
{
  json: {
    "ReceberConhecimentosResponse": {
      "xmlns": "http://simetrias.com.br/webservices/wscte/1.0",
      "ReceberConhecimentosResult": {
        "xmlns": "",
        "CTE": {
          "viagem": {
            "id": "1",
            "TipoOperacao": "E",
            "Numero": "41160202351144003052570030000869681567202596",
            "ProtocoloCITNET": {},
            "Descricao": "Informação da tag N menor que permitido",
            "Codigo": "158"
          }
        }
      }
    }
  },
  body: '<ReceberConhecimentosResponse xmlns="http://simetrias.com.br/webservices/wscte/1.0"><ReceberConhecimentosResult xmlns=""><CTE><viagem><id>1</id><TipoOperacao>E</TipoOperacao><Numero>41160202351144003052570030000869681567202596</Numero><ProtocoloCITNET /><Descricao>Informação da tag N menor que permitido</Descricao><Codigo>158</Codigo></viagem></CTE></ReceberConhecimentosResult></ReceberConhecimentosResponse>'
}
```
npm package: @pedroentringer/parser-command-line
Description: parser command line
Author: Pedro Entringer
Latest version: 1.0.1

# parser-command-line
A Command Line Parser for Node.js

## How to use

Parse args params:
```
const parser = require('@pedroentringer/parser-command-line')
const params = parser.parseArgs();
```

Parse string params:
```
const parser = require('@pedroentringer/parser-command-line')
const params = parser.parseString('yarn add parser-command-line -d --version=1.0.0');
```

## Result
yarn add parser-command-line -d --version=1.0.0
```
{
    "bin": "yarn",
    "commands": ["install"],
    "flags": {
        "d": true,
        "version": "1.0.0"
    }
}
```
npm package: @pedroescudero/rgb
Description: Transforms from RGB decimal numbers to its hexadecimal value  
Author: Pedro Escudero Zumel
Latest version: 1.0.3

RGB
========

Packed with a transformer from RGB to Hexadecimal.

## Installation

  `npm install @pedroescudero/rgb`

## Usage

The main function requires 3 decimal numbers. The response will be a string representing the hexadecimal value .

```
    let rgb = require('@pedroescudero/rgb');
    let rgbValue = rgb(0, 0, 0); # The result is 000000
```

## Tests

  `npm test`

  It is using [mocha](https://mochajs.org/) as a testing framework and [Chai](https://www.chaijs.com/) for the assertions.

  For manual testing and training you can employ [Runkit](https://npm.runkit.com/@pedroescudero/rgb).