open-index/open-npm huggingface dataset:
npm package: @nickgraffis/roshambo
Description: Rock 🗿, Paper 📄, Scissors ✂!
Author: Nick Graffis
Latest version: 1.0.2

# Roshambo
Rock 🗿, Paper 📄, Scissors ✂!
# Demo

<img src="/image/demo.gif">

```
~> npm install -g @nickgraffis/roshambo
~> roshambo
```
# Game Play
You can play Rock, Paper, Scissors!

# How it works?
At the heart, it accepts two responses. One from player a and one from player b. It assigns the response a numeric value:
```//rock = 0, paper = 1, scissors = 2```
It then computes ((player a - player b) + total_options(3)) % 3. If the answer is 1, player a wins, if not, player b wins. If the numbers are equal, it is a tie.

```
function rockPaperScissors (playerA, playerB) {
  var options = ['rock', 'paper', 'scissors'];
  var a = options.indexOf(playerA);
  var b = options.indexOf(playerB);
  if (a == b) {
    return 2;
  } else if (((a - b) + 3) % 3 == 1) {
    return 0;
  } else {
    return 1;
  }
}
```

Have Fun!
npm package: @nickgraffis/tsconfig
Description: Automating tsconfig setup
Author: Nick Graffis
Latest version: 0.0.1

# @nickgraffis/tsconfig

```
npx @nickgraffis/tsconfig
```
* If you do not have a `package.json` it will not write one for you.
* If you already have a `tsconfig.json` - you'll be asked if you want to overwrite it.
npm package: @nickgraffis/us-counties
Description: Easily work with US Counties.
Author: Nick Graffis
Latest version: 0.0.2

## US Counties

Work easily with US Counties from a dataset of all US Counties by `FIPS`, `Name`, and `StateCode`. 

All data is from [USDA Natural Resources Conservation Service](https://www.nrcs.usda.gov/wps/portal/nrcs/detail/national/home/?cid=nrcs143_013697).

### Installation

```bash
npm i @nickgraffis/us-counties
```

_Or use yarn or pnpm_.

### Useage

#### Get County By Name - Includes
```js
import { getCountyByNameIncludes } from "@nickgraffis/us-counties"

getCountyByNameIncludes('Los')
/*
* [
*   {
*     name: 'Los Angeles',
*     FIPS: '64723',
*     state: 'CA'
*   }
* ]
*/
```

#### Get County By Name - Starts With
```js
import { getCountyByNameStartsWith } from "@nickgraffis/us-counties"

getCountyByNameStartsWith('Los')
/*
* [
*   {
*     name: 'Los Angeles',
*     FIPS: '64723',
*     state: 'CA'
*   }
* ]
*/
```

#### Get County By FISP
```js
import { getCountyByFips } from "@nickgraffis/us-counties"

getCountyByFips('64723')
/*
* {
*   name: 'Los Angeles',
*   FIPS: '64723',
*   state: 'CA'
* }
*/
```

#### Get County By State
```js
import { getCountyByState } from "@nickgraffis/us-counties"

getCountyByState('CA')
/*
* [
*   {
*     name: 'Los Angeles',
*     FIPS: '64723',
*     state: 'CA'
*   }
* ]
*/
```
npm package: @nickgraffis/versionify
Description: Simple scripts to create random versions for your scripts and css files to avoid your browser cacheing your changes during development.
Author: Nick Graffis
Latest version: 1.0.2

# Versionify
Simple scripts to create random versions for your scripts and css files to avoid your browser cacheing your changes during development.

# Reason
I run into the issue on both Chrome and Safari that when running something like http-server to develop webpages with CSS and JS, the browser caches my files and does not update changes when I make them. There is a way with both browsers to stop this, but I never found a great way to really do this. My soultion was the create a new version of the files everytime the files were opened. This forces the browser to load the new version of the file.

# Usage
<p>Use something like raw.githack to create a raw link to the index.js file of versionify and add it to the head of your document.</p>

```<script type="text/javascript" src="https://raw.githack.com/nickgraffis/versionify/master/versionify.js"></script>``` 

<p>You can also npm install @nickgraffis/versionify.</p>

<p>Then just below call a function for each of the JS files you'd like randomly versionified</p>

  ```javascript
  <script>
    scripts('your-file.js');
  </script>
  ``` 
<p>Works with CSS files too!</p>

  ```javascript
  <script>
    styles('your-file.css');
  </script>
  ```
npm package: @nickhudkins/malcolm-contrib
Description: A set of easy to use things to make Malcom even better!
Author: Nick Hudkins
Latest version: 0.3.1

# 👴🏻 Malcolm (in the Middle) - Contrib

Fun little utilities for Malcolm

### Usage

In your `proxy.config.ts`:

```typescript
import { defineConfig } from "@nickhudkins/malcolm";
import { withoutCSP } from "@nickhudkins/malcolm-contrib";

export default defineConfig({
  hosts: ["google.com"],
  handleResponse: (res: PassThroughResponse) => {
    // Using `withoutCSP`, if your CSP is in a http-equiv
    // tag, you must pass `removeHttpEquiv`. This is a simple
    // optimization to prevent unnecessary parsing of the response
    // body if we only need to strip a header.
    return withoutCSP(res, { removeHttpEquiv: true });
  },
});
```
npm package: @nickhudkins/react-scripts
Description: Configuration and scripts for Create React App.
Latest version: 3.4.1-alpha.lol

# react-scripts

This package includes scripts and configuration used by [Create React App](https://github.com/facebook/create-react-app).<br>
Please refer to its documentation:

- [Getting Started](https://facebook.github.io/create-react-app/docs/getting-started) – How to create a new app.
- [User Guide](https://facebook.github.io/create-react-app/) – How to develop apps bootstrapped with Create React App.
npm package: @nickiam7/turboflow
Description: Beautiful page transitions for Turbo applications using the View Transitions API
Author: Nick McNeany
Latest version: 0.1.0

# @nickiam7/turboflow

Beautiful, smooth page transitions for Turbo applications using the native View Transitions API.

[![npm version](https://badge.fury.io/js/@nickiam7%2Fturboflow.svg)](https://www.npmjs.com/package/@nickiam7/turboflow)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Features

-**Smooth Transitions** - Hardware-accelerated animations using View Transitions API
-**Zero Configuration** - Works out of the box with sensible defaults
-**Built-in Animations** - Fade, slide, zoom, flip, morph and more
-**Tiny Size** - Under 10KB gzipped with no dependencies
-**Accessible** - Respects `prefers-reduced-motion` settings
-**Extensible** - Easy to add custom animations

## Installation

```bash
npm install @nickiam7/turboflow
```

Or via CDN:
```html
<script src="https://unpkg.com/@nickiam7/turboflow"></script>
```

## Quick Start

### 1. Add the View Transitions Meta Tag

```html
<head>
  <meta name="view-transition" content="same-origin" />
</head>
```

### 2. Initialize TurboFlow

```javascript
import TurboFlow from '@nickiam7/turboflow'

// Initialize with defaults
const turboflow = new TurboFlow()
turboflow.init()
```

### 3. Add Transitions to Your HTML

```html
<!-- Links -->
<a href="/page" data-turbo-flow="slide">Slide to page</a>

<!-- Forms -->
<form data-turbo-flow="zoom">
  <!-- form content -->
</form>

<!-- Turbo Frames -->
<turbo-frame id="modal" data-turbo-flow="fade">
  <!-- frame content -->
</turbo-frame>
```

## Available Transitions

- **fade** - Smooth opacity transition (default)
- **slide** - Horizontal slide (direction-aware)
- **slideUp** - Slide up from bottom
- **slideDown** - Slide down from top
- **zoom** - Scale in/out
- **flip** - 3D flip effect
- **morph** - Seamlessly morph elements with matching IDs

## Configuration

```javascript
const turboflow = new TurboFlow({
  defaultTransition: 'fade',
  duration: 300,
  easing: 'ease-out',
  debug: false
})
```

## Browser Support

- ✅ Chrome 111+
- ✅ Edge 111+
- ⚠️ Safari (graceful fallback)
- ⚠️ Firefox (graceful fallback)

## Links

- [GitHub Repository](https://github.com/Nickiam7/TurboFlow)
- [Rails Integration](https://rubygems.org/gems/turboflow-rails)
- [Documentation](https://github.com/Nickiam7/TurboFlow#readme)

## License

MIT © Nick McNeany
npm package: @nickiv/node-red-attempt
Description: Retries input messages on error with configurable delay and attempt count.
Author: Nikolay Ivannikov
Latest version: 0.0.1

# Node-RED: Attempt Node  

The **Attempt** node simplifies message retry logic in case of errors, making it ideal for handling temporary failures (e.g., network issues, API timeouts, or unstable connections). It ensures fault-tolerant processing by retrying failed operations before escalating the error.  

## **Features**  
- Automatic retry of failed messages with configurable **delay** and **max attempts**.  
- Two outputs:  
  - **Output 1**: Passes the message to the target node (retries on failure).  
  - **Output 2**: Sends the message if all retries are exhausted (for fallback logic).  
- Works seamlessly with Node-RED’s **Catch node** for error handling.  

## **How It Works**  
1. The incoming message is sent to the first output.  
2. If the target node fails, the **Catch node** (connected to the **input**) captures the error.  
3. The message is retried after a delay (configurable).  
4. If all attempts fail, the message is forwarded to the second output for fallback processing (e.g., logging, alerts).  

### **Example Workflow**
![Workflow Example](./examples/attempt.png)

1. The **Attempt** node retries the HTTP request up to 3 times (with a 5-second delay).  
2. If all retries fail, the error is logged via a **file write** node (connected to the second output).  

## **Setup Guide**  
1. Connect the target node (e.g., HTTP request) to **Output 1** of the **Attempt** node.  
2. Attach a **Catch node** to the **input** of the **Attempt** node.  
   - ⚠️ **Important**: In the Catch node’s settings, select **only the node connected to Output 1**.  
3. (Optional) Connect a fallback node (e.g., email, Telegram, file write) to **Output 2** for handling permanent failures.  

## **Use Cases**  
- Retry failed HTTP/API requests due to **temporary network issues**.  
- Handle unstable database connections with delayed retries.  
- Implement **fallback logic** (e.g., send an alert if a service is down after N attempts).  
- Improve robustness in IoT workflows where devices may intermittently disconnect.  

---

### **Key Notes**  
- The **Catch node** is **required**—errors won’t be retried without it.
- Configure retry settings (attempts/delay) based on your use case.
npm package: @nickiv/node-red-offline-alert
Description: Get alert in Telegram when your Node-RED is offline
Author: Nikolay Ivannikov
Latest version: 0.0.5

# Node-RED Offline Alert Module

Using Node-RED for remote location monitoring? Great idea—but who’s watching the watcher?

Ensure basic health monitoring of your Node-RED instance with this module.

A dedicated Telegram bot will notify you immediately in case of power outages or internet disruptions, keeping you informed even when the unexpected happens.

![image of example flow](./examples/flow-screenshot.png) ![image of Telegram chat with notification](./examples/alert-chat.png)

## Overview

This module allows you to receive Telegram notifications when Node-RED loses its Internet connection.

Once enabled, the module sends periodic HTTPS requests to the maintainer's server. If the server detects that no requests have been received for a certain period, it sends you a notification via Telegram.

This way, you can be informed if the computer running Node-RED has gone offline or even shut down completely, for instance, due to a power outage.

No need to panic, though—it could be a temporary network issue or even a false alarm. When Node-RED comes back online, you will also receive a notification.

## Install

```
$ npm install @nickiv/node-red-offline-alert
```

## Usage

This module has only one node without inputs or outputs. To use the node, you need to fill in the Slot ID configuration.

To get a Slot ID, follow the link to the Telegram bot. The link is provided in the node's settings.

The Slot ID is required for the monitoring server to identify which user should receive a notification in case a disconnection is detected.

The monitoring status is displayed in the node's status. If you need to process this status, use the status node.
npm package: @nickiv/node-red-pixoo-dash
Description: Turn your Divoom Pixoo64 into 4 sections text dashboard
Author: Nikolay Ivannikov
Latest version: 0.0.3

# Node-RED Pixoo Dashboard Module

![image of Divoom Pixoo 64 Dashboard](./examples/pixoo-dashboard.jpeg)

![image of example flow](./examples/example-flow.png)

## Overview

This Node-RED module lets you display text information on a basic dashboard using the Divoom Pixoo 64.

You can use up to 20 fields, each with 7 characters, grouped into 4 identical blocks. Each field supports custom text color.

The module communicates with the Pixoo 64 over the network, so your Node-RED setup must have IP access to the device.

### Compatible devices

[Divoom Pixoo 64](https://divoom.com/products/pixoo-64)

## Install

```
$ npm install @nickiv/node-red-pixoo-dash
```

## Usage

To display a text field, drag the Pixoo Text node into your flow. In the text settings, specify the column number (0 or 1), row number (0-9), and text color.

All node settings can be overridden via the input message.

To adjust the brightness, including turning the display off, use the Pixoo Brightness node. You can set the brightness as a percentage in the node settings or pass it in the payload.

## Disclaimer

This module’s code is based on [pixoo64-js](https://github.com/Byteschmiede/pixoo64-js). I recommend using that library if you need to display more complex content on the Pixoo 64.

If something isn't working or you have suggestions for improvements, feel free to create an issue. I’ll consider all improvement suggestions as long as they don’t make the module overly complex.
npm package: @nickjct/bunyan-request
Description: Request, response logger middleware using bunyan. Also provides request<>response duration.
Latest version: 1.4.5

# bunyan-request

[![Build Status](http://img.shields.io/travis/vvo/bunyan-request/master.svg?style=flat-square)](https://travis-ci.org/vvo/bunyan-request) [![Dependency Status](http://img.shields.io/david/vvo/bunyan-request.svg?style=flat-square)](https://david-dm.org/vvo/bunyan-request) [![devDependency Status](http://img.shields.io/david/dev/vvo/bunyan-request.svg?style=flat-square)](https://david-dm.org/vvo/bunyan-request#info=devDependencies)

```shell
npm install bunyan-request --save
```

Request, response logger middleware for [bunyan](https://github.com/trentm/node-bunyan):

- log request as `req`
- log response as `res`
- log request<>response duration in milliseconds as `duration`
- creates, use and forward to response the `x-request-id` request header: get it if present, create it otherwise ([uuid.v4()](https://github.com/defunctzombie/node-uuid#uuidv4options--buffer--offset))
- log request id as `id`
- provides `req.log` as an id-specialized logger for you to track your request in your entire application, every time you access the `request` object
- compatible with pure [http server](http://nodejs.org/api/http.html#http_http_createserver_requestlistener), [express](https://github.com/strongloop/express), [connect](https://github.com/senchalabs/connect) and any http middleware system
- uses standard [bunyan serializers](https://github.com/trentm/node-bunyan#serializers)
- log `req.url` in response log, it is easy for support to identify which response is for which request.
- option `passthroughLogHeaderNames` in javascript array for specifying a list request header to be logged in end request, the headers only for logging, won't sent to callers.

Here are the fields it creates, beautified with [`| bunyan`](https://github.com/trentm/node-bunyan#cli-usage) cli.

![screenshot](screenshot.png)

## Install

```shell
npm install bunyan-request --save
```

## Usage

```js
var bunyan = require('bunyan');
var bunyanRequest = require('bunyan-request');
var express = require('express');

var app = express();
var logger = bunyan.createLogger({ name: 'My App' });
var requestLogger = bunyanRequest({
  logger: logger,
  headerName: 'x-request-id',
  passthroughLogHeaderNames: []
});

app.use(requestLogger);
app.get('/', function (req, res) {
  // now use `req.log` as your request-specialized bunyan logger
  req.log.info('YO DAWG!');
  res.send('ok');
});
```

## `x-request-id`

Will use and forward `x-request-id` (case insensitive) header when present.

Otherwise it will generate
a [uuid.v4()](https://github.com/defunctzombie/node-uuid#uuidv4options--buffer--offset) and
add it to the response headers.

## Example

```shell
npm run example
```

See [example](example).

## Test

```shell
npm test
```

## Credits

First version by [tellnes/bunyan-middleware](https://github.com/tellnes/bunyan-middleware).

## License

MIT
npm package: @nickjfree/vuetify-jsonschema-form
Description: Generate forms for the vuetify UI library (vuejs) based on annotated JSON schemas.
Author: Alban Mouton
Latest version: 1.0.0
Deprecated: false

# vuetify-jsonschema-form

Generate forms for the [vuetify](https://vuetifyjs.com/en/) UI library (vuejs) based on annotated JSON schemas.

![](assets/demo-video.gif)

All basic types, nested objects, nested arrays, various display options, simple validation rules, custom content injected using slots, etc. For a view of all the functionalities check the [demo](https://koumoul-dev.github.io/vuetify-jsonschema-form/latest/).

Compatible with vuetify 1 and 2. Check this [alternative demo](https://koumoul-dev.github.io/vuetify-jsonschema-form/latest/vuetify1.html) for support of vuetify 1.

## Installation

```bash
npm i --save @koumoul/vuetify-jsonschema-form
```

## Usage

```html
<template>
  <v-form v-model="formValid">
    <v-jsonschema-form v-if="schema" :schema="schema" :model="dataObject" :options="options" @error="showError" @change="showChange" @input="showInput" />
  </v-form>
</template>

<script>
import Vue from 'vue'
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css'
import Draggable from 'vuedraggable'
import axios from 'axios'
import VueAxios from 'vue-axios'
import Swatches from 'vue-swatches'
import 'vue-swatches/dist/vue-swatches.min.css'
import VJsonschemaForm from '@koumoul/vuetify-jsonschema-form'
import '@koumoul/vuetify-jsonschema-form/dist/main.css'
import { Sketch } from 'vue-color'

Vue.use(Vuetify)
Vue.use(VueAxios, axios)

Vue.component('swatches', Swatches)
Vue.component('draggable', Draggable)
Vue.component('color-picker', Sketch)

export default {
  components: {VJsonschemaForm},
  data() {
    return {
      schema: {...},
      dataObject: {},
      formValid: false,
      options: {
        debug: false,
        disableAll: false,
        autoFoldObjects: true
      }
    }
  },
  methods: {
    showError(err) {
      window.alert(err)
    },
    showChange(e) {
      console.log('"change" event', e)
    },
    showInput(e) {
      console.log('"input" event', e)
    }
  }
}
</script>
```

The library can also be loaded from source if you use [Vuetify "à la carte"](https://vuetifyjs.com/en/framework/a-la-carte). In this case you will have to instruct your build tool to transpile the source with babel.

```js
import VJsonschemaForm from '@koumoul/vuetify-jsonschema-form/lib/index.vue'
```

I you don't use a build tool, and want to load the library through script tags, you can do something like this.

```html
...
<script src="https://cdn.jsdelivr.net/npm/@koumoul/vuetify-jsonschema-form@0.26/dist/main.js"></script>
<link href="https://cdn.jsdelivr.net/npm/@koumoul/vuetify-jsonschema-form@0.26/dist/main.css" rel="stylesheet">
...
<script>
  ...
  components: {
    "v-jsonschema-form": VJsonschemaForm.default
  }
  ...
</script>
```
npm package: @nickjmorrow/algorithms
Description: Utility library for common algorithms. All self-implemented.
Author: Nicholas Morrow
Latest version: 1.0.2

# Algorithms

## Description

This is a library of self-implemented algorithms that I reference in other projects.

https://www.npmjs.com/package/@nickjmorrow/algorithms

## Getting Started

Building and generating Javascript files and typings.

`npm run build`

Running tests.

`npm run test`

`npm run test:watch`
npm package: @nickjmorrow/react-component-library
Description: Personal component library
Author: nickjmorrow
Latest version: 0.0.60

# React Component Library

[![NPM](https://img.shields.io/npm/v/react-component-library.svg)](https://www.npmjs.com/package/react-component-library) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

The live demo can be found [here](https://nickjmorrow.github.io/react-component-library/).

## At a Glance

-   The component library uses [Rollup](https://github.com/rollup/rollup) for the [build pipeline](https://github.com/ezolenko/rollup-plugin-typescript2).
-   The component library and the demo application are built in [TypeScript](https://www.typescriptlang.org/).
-   [Styled components](https://styled-components.com/) are used for styling and theming.

## Purpose

I wanted a set of reusable components and styles to use across my personal projects. This component library prioritizes **consistent design** guidelines while allowing for **easy departures**.

## Install

```bash
npm install --save @nickjmorrow/react-component-library
```

## Usage

```tsx
import * as React from 'react';
import { Typography } from '@nickjmorrow/react-component-library';

const SomeOtherComponent: React.FC = () => {
    return <Typography>Hello, World!</Typography>;
};
```

## License

MIT © [nickjmorrow](https://github.com/nickjmorrow)
npm package: @nickkaramoff/log-symbols
Description: Chalk-free colored symbols for various log levels. Example: `✔︎ Success`
Author: Nikita Karamov
Latest version: 5.0.2
Deprecated: Package renamed to 'nanosymbols'. Use the new one instead.

# log-symbols

<img src="screenshot.png" width="226" height="192" align="right">

> Chalk-free colored symbols for various log levels

Includes fallbacks for Windows CMD which only supports a [limited character set](https://en.wikipedia.org/wiki/Code_page_437).

> ## HEADS UP!
>
> This is a fork of sindresorhus' [log-symbols](https://github.com/sindresorhus/log-symbols). This should act as a drop-in replacement for this module. The only change is that the `chalk` dependency is replaced with `colorette`.

## Install

```
$ npm install @nickkaramoff/log-symbols
```

## Usage

```js
import logSymbols from '@nickkaramoff/log-symbols';

console.log(logSymbols.success, 'Finished successfully!');
// Terminals with Unicode support:     ✔ Finished successfully!
// Terminals without Unicode support:  √ Finished successfully!
```

## API

### logSymbols

#### info
#### success
#### warning
#### error

## Related

- [figures](https://github.com/sindresorhus/figures) - Unicode symbols with Windows CMD fallbacks
- [py-log-symbols](https://github.com/ManrajGrover/py-log-symbols) - Python port
- [log-symbols](https://github.com/palash25/log-symbols) - Ruby port
- [guumaster/logsymbols](https://github.com/guumaster/logsymbols) - Golang port

## Licence

[MIT] © 2021 Nikita Karamov

[MIT] © 2021 Sindre Sorhus

[MIT]: https://spdx.org/licenses/MIT.html