open-index/open-npm huggingface dataset:
npm package: @rodat.dev/webpack-speculation-rules-plugin
Description: A webpack plugin to add speculation rules to the bundling process.
Author: Tomas Roda
Latest version: 1.0.10

# speculation-rules-plugin

To install dependencies:

```bash
bun install
```

To run:

```bash
bun run index.js
```

This project was created using `bun init` in bun v1.1.20. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
npm package: @rodbe/eslint-config
Description: Shareable config for eslint to keep all projects consistent
Author: KevinRodbe
Latest version: 1.4.0

# Eslint config by Rodbe 👨🏻‍🚀

Here you will find the eslint rules I use to keep all my projects consistent.

## Use ✨

### For JS files

1.- **Install dependencies**

```sh
npm i -D eslint @rodbe/eslint-config
```

2.- **In your `eslint.config.js`**
```js
import { defineConfig } from "eslint/config";

import { jsRules } from "@rodbe/eslint-config";

export default defineConfig([
	{
		files: ["**/*.js"],
		extends: [jsRules],
	},
]);
```

### For TS files

1.- **Install dependencies**

```sh
npm i -D eslint @eslint/js typescript typescript-eslint @rodbe/eslint-config
```

2.- **In your `eslint.config.js`**

You can integrate in 2 ways.

2.1- **Recommended integration**
```js
import tseslint from 'typescript-eslint';
import eslint from '@eslint/js';

import { jsRules, tsRules } from "@rodbe/eslint-config";

export default tseslint.config(
  {
    extends: [
      eslint.configs.recommended,
      tsEslint.configs.strictTypeChecked,
      tsEslint.configs.stylisticTypeChecked
      tsRules,
      jsRules,
    ],
    files: ['**/*.{ts,tsx,js,jsx}'],
    languageOptions: {
      parserOptions: {
        projectService: {
          allowDefaultProject: ['eslint.config.js'],
        },
        // import.meta.dirname is available after Node.js v20.11.0
        tsconfigRootDir: import.meta.dirname,
      },
    },
  }
);
```

2.2.- **Integration from scratch**
```js
import tseslint from 'typescript-eslint';

import { jsRules } from "@rodbe/eslint-config";

export default tseslint.config(
  {
    extends: [
      jsRules,
      tsRules,
    ],
    files: ['**/*.{ts,tsx,js,jsx}'],
    languageOptions: {
      parser: tsEslint.parser,
      parserOptions: {
        projectService: {
          allowDefaultProject: ['eslint.config.js'],
        },
        // import.meta.dirname is available after Node.js v20.11.0
        tsconfigRootDir: import.meta.dirname,
      },
    },
    plugins: {
      '@typescript-eslint': tsEslint.plugin,
    }
  }
);
```

### For NX projects

1.- **Install dependencies**

```sh
npm i -D eslint @eslint/js typescript typescript-eslint @nx/eslint-plugin @rodbe/eslint-config
```

2.- **In your `eslint.config.js`**

```js
import tseslint from 'typescript-eslint';
import eslint from '@eslint/js';
import nxPlugin from '@nx/eslint-plugin';

import { nxRules } from "@rodbe/eslint-config";

export default tseslint.config(
  {
    // Here is the recommended TS configuration (explained above)
  },
  {
    extends: [nxRules],
    files: ['**/*.{ts,tsx,js,jsx}'],
    plugins: {
      '@nx': nxPlugin,
    },
  }
);
```
npm package: @rodbe/ghx
Description: Clone GitHub repositories
Author: KevinRodbe
Latest version: 1.8.1

# GHX 🐙: CLI with a user-friendly interface to clone GitHub repositories ⚡️

## Overview

The GHX is a CLI that **allows** users to **easily clone your repositories**. It's designed with a **user-friendly interface**, prompting users to select the method (SSH/HTTPS) and the source (personal account, organizations, or starred)

## Features

- Choose between `SSH` and `HTTPS` cloning methods.
- Choose where to clone your repos: personal account, organizations, or starred.
- Select multiple GitHub organizations.
- Select multiple repositories from each organization to clone.
- Apply **fuzzy search** to your selections.

## Prerequisites

- `Node.js 18.18.2 or higher` installed on your system.
- Set up a [GitHub personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic) as an environment variable `GHX_GITHUB_PAT`.
- Configure your [ssh](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) for [GitHub](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account#adding-a-new-ssh-key-to-your-account)

> Set read permissions to repos and orgs, for you token

## Installation

Clone the repository and navigate to the directory:

```bash
npm i -g @rodbe/ghx
```

> if you have a permission error, try to install with **administrator privileges**

## Usage

1. **Set up the GitHub Personal Access Token:**

  Ensure you have a GitHub personal access token and set it as an environment variable:

  ```bash
  export GHX_GITHUB_PAT=your_personal_access_token
  ```

2. **Run the tool:**

  Execute the CLI tool:

  ```bash
  ghx
  ```

3. **Follow the prompts:**

  - Choose your preferred cloning method (SSH or HTTPS).
  - Choose where to clone your repositories from (personal account, organizations, or starred).
  - Select the organizations you wish to clone repositories from.
  - Choose the specific repositories within each organization to clone.

4. **Cloning:**

  The selected repositories will be cloned to your current directory.

## Support

If you encounter any issues or have questions, please open an issue in the GitHub repository or contact the development team.
npm package: @rodbe/nsl
Description: List, fuzzy search and run scripts from any type of project
Author: KevinRodbe
Latest version: 1.36.0

# NSL ⚡️ - Node Script List
List, fuzzy search and run scripts from any type of project

> Easy and fast way to run npm scripts  🚀

## Prerequisites

- **Node.js 18.18.2 or higher**

## 📦 Install

```bash
npm i -g @rodbe/nsl
```

> if you have a permission error, try to install with **administrator privileges**

## 🏎️ Usage

### 🌟 Just run the command and search for the script you want to run.

```bash
nsl
```
#### 🧙‍♂️ Ways to search
```sh
Select or search a script to run: <script> [project-path]
```
- `<script>`: Text to match the script name (required)
- `[project-path]`: Text to filter by the folder where the script lives (optional)

#### 🎖️ Examples (Pro Tips)
- Search for a script named `build` throughout the entire project:
```sh
Select or search a script to run: build
```
- Look for a script called `build` inside folders containing `api`:
```sh
Select or search a script to run: build api
```

![nsl](./assets/preview.gif)

### 🌟 To run the *latest executed script* of the current project

```bash
nn
```
![nsl](./assets/nn-preview.gif)

## 🧩 Arguments

| Argument  | Alias | Description                     | Comment                                  |
|-----------|-------|---------------------------------|------------------------------------------|
| --all     | -a    | list all scripts                | by default lifecycle scripts are ignored |
| --info    | -i    | get all info tech for debugging |                                          |
| --version | -v    | get current version             |                                          |
| --print   | -p    | print the selected script       | no exec the script, just print it        |
| --update  | -u    | update to last version          | if exists, update to last version        |

## ⚙️ Configuration file

You can configure NSL via (**in order of precedence**):

- A `.nslrc` file written in JSON
- A `.nslrc.json` file
- A `.nslrc.js` file written in ES module that exports an object using `export default`
- A `.nslrc.cjs` file written in CommonJS module that exports an object using `module.exports`

### Options

The options you can use in the configuration file.

| Option        | Type     | Description       |
|---------------|----------|-------------------|
| ignoreScripts | string[] | scripts to ignore |


## ✨ Basic configuration

JSON: `.nslrc` o `.nslrc.json` file
```json
{
  "ignoreScripts": [
    "any-script-name-to-ignore",
    "other-script-name-to-ignore",
    "another-script-name-to-ignore"
  ]
}
```

JS (ES Modules): `.nslrc.js` file
```js
export default {
  ignoreScripts: [
    'any-script-name-to-ignore',
    'other-script-name-to-ignore',
    'another-script-name-to-ignore',
  ],
};
```

CJS (CommonJS): `.nslrc.cjs` file
```js
module.exports = {
  ignoreScripts: [
    'any-script-name-to-ignore',
    'other-script-name-to-ignore',
    'another-script-name-to-ignore',
  ],
};
```

## 👋 Contributors are welcome

## License

MIT
npm package: @rodbe/prettier-config
Description: RBX Prettier config
Author: KevinRodbe
Latest version: 1.5.0

# Shareable RBX Prettier Config

## Installation

```sh
npm install -D @rodbe/prettier-config prettier
```

### If you want to use the mid config, install the peer dependencies

```sh
npm install -D prettier-plugin-curly prettier-plugin-packagejson
```

## Usage

| Type | How to import?             | peerDependencies (to install in your project)                      |
|------|----------------------------|--------------------------------------------------------------------|
| lite | @rodbe/prettier-config     | prettier                                                           |
| mid  | @rodbe/prettier-config/mid | prettier <br>prettier-plugin-curly <br>prettier-plugin-packagejson |

### In JS file: `.prettierrc.js`, or `prettier.config.js`

```ts
import rodbePrettier from "@rodbe/prettier-config";
// import rodbePrettier from "@rodbe/prettier-config/mid";

/**
 * @type {import("prettier").Config}
 */
const config = {
  ...rodbePrettier,
  semi: false,
};

export default config;
```

### In JSON format: `.prettierrc`, `.prettierrc.json`
```jsonc
"@rodbe/prettier-config"
// or
// "@rodbe/prettier-config/mid"
```


### In `package.json`
```jsonc
{
  "name": "my-cool-library",
  "version": "1.0.0",
  "prettier": "@rodbe/prettier-config",
  // or
  // "prettier": "@rodbe/prettier-config/mid",
  "prettierOptions": {
    "semi": false
  }
}
````

### In order to make this work, you have to install prettier and the other peer dependencies for the project.

```json
{
  "name": "my-cool-library",
  "version": "1.0.0",
  "type": "module",
  "exports": "./index.js",
  "publishConfig": {
    "access": "public"
  },
+ "devDependencies": {
+   "prettier": "^3.3.3",
+   "prettier-plugin-curly": "^0.3.1",
+   "prettier-plugin-packagejson": "^2.5.8"
+ }
}
```
npm package: @rodbe/rbx
Description: Generator of TypeScript projects, ready to deploy. Agile, Scalable, Strict
Author: KevinRodbe
Latest version: 1.2.0

# RodBe eXperience: CLI Project Scaffold 🚀

This project provides a **CLI tool** to **scaffold new projects based on predefined archetypes**. It's designed to streamline the creation of new projects by setting up the necessary files and configurations based on user inputs.

## Features

- Check for updates and prompt to update the CLI.
- Create new projects with customizable options.
- Supports different archetypes like **typescript library** and **typescript CLI**.
- Automatically initializes a git repository.
- Customizes project files based on user inputs.

## Prerequisites

- **Node.js 22.14.0 or higher**

## Installation

To use this CLI tool, ensure you have Node.js installed. Then, you can run the script directly using:

```sh
npm i -g @rodbe/rbx
```

## Usage

```sh
rbx
```

When you run the CLI, you'll be prompted with a series of questions to help customize your new project setup:

1. **Archetype Type**: Choose from a list of available archetypes.
2. **Project Name**: Input the name of your new project.
3. **Scope**: Optionally, provide a scope for your project.
4. **Description**: Optionally, add a description for your project.
5. **Repository URL**: Provide the HTTPS URL for the project's repository.
6. **Author**: Optionally, add project author information.
7. **Command Name**: If the archetype type is `ts-cli`, you'll need to specify a command name.


You'll then be prompted with the questions as outlined above. Once completed, your project will be scaffolded in the directory specified by the project name.

## Project Structure

Once you've created a new project, it will have the following structure:

- Basic file setup cloned from the specified archetype.
- Git repository initialized without the `.git` folder from the archetype source.
- Custom placeholders in files replaced with your specified project details.

## Contributions

Contributions are welcome. Please ensure your changes are tested and documented.

## License

This project is licensed under the MIT License.
npm package: @rodbuild/qa-public
Description: A package to combine with WDIO software; explore a collection of re-usable functions to simplify your testing workflow!
Author: Rodrigo Rodriguez
Latest version: 0.0.17

### WDIO QA PUBLIC

Enhance your WebDriverIO testing experience with this npm package. This comprehensive library provides a set of reusable functions and utilities to streamline your test automation workflows. Whether you're a seasoned automation engineer or just getting started, these tools are designed to simplify common tasks and boost the efficiency of your WebDriverIO scripts.

&nbsp; <!-- Empty Line -->

#### Key Features

1. **Reusable Functions:** Access a collection of pre-built functions for common WebDriverIO actions, from interacting with elements to handling browser windows.
2. **Enhanced Assertions:** Elevate your assertions with functions that evalute elements in different aspects, making it easier to validate complex scenarios.
3. **Adaptable Functions:** Easily configure the behavior of the function through the parameters, allowing you to tailor its functionality to specific requirements.

&nbsp; <!-- Empty Line -->

#### Installation

```bash
npm install @rodbuild/qa-public --save-dev
```

&nbsp; <!-- Empty Line -->

#### Getting Started

```javascript
import { Interface } from '@rodbuild/qa-public'

describe('Verify top section of the page', () => {
  it('should open the page', async () => {
    await Interface.browserOpenUrl('https://webdriver.io/', 5000, 'h1')
  })
  it('search bar should not be disabled', async () => {
    await Interface.buttonIsDisplayedAndClickable('button[class*="DocSearch"]', 5000)
  })
  it('should contain four nav links', async () => {
    await Interface.elementQuantityIsValid($$('div[class*="buttons"] a'), 'nav-links', 5000, 4)
  })
  it('should validate the first nav link', async () => {
    await Interface.linkIsDisplayedAndVerifyHref(await $('div[class*="buttons"] a'), 'gettingstarted', 5000)
  })
})
```

&nbsp; <!-- Empty Line -->

#### Definitions

Functions start with a name that relates to their funcionality

- <a>Link</a>
- <button>Button</button>
- Input <input type="text" placeholder="input text">
- <div>Elements is for any DOM HTML</div>
- **browser**, the window object in WDIO context