open-index/open-npm huggingface dataset:
npm package: @shashwatrajs/repo-insights
Description: GitHub Repository Insights - CLI tool and library to fetch GitHub repo statistics
Author: Shashwat Raj Singh
Latest version: 1.0.0

# @shashwatraajsingh/repo-insights

GitHub Repository Insights - A powerful CLI tool and JavaScript library to fetch comprehensive GitHub repository statistics.

## 🚀 Features

- ⭐ Get repository stars, forks, and open issues
- 📊 Analyze commit activity for the last 30 days
- 🛡️ Handle API rate limits gracefully
- 🎨 Beautiful CLI output with colored tables
- 📦 Use as both CLI tool and importable library
- 💾 Export data to JSON files

## 📦 Installation

### Global CLI Installation
npm install -g @shashwatraajsingh/repo-insights


### Library Installation
npm install @shashwatraajsingh/repo-insights


## 🖥️ CLI Usage
Get all metrics
repo-insights owner/repository --all

Get specific metrics
repo-insights facebook/react --stars --forks
repo-insights microsoft/vscode --commits --issues

JSON output
repo-insights nodejs/node --json

Save to file
repo-insights torvalds/linux --save stats.json


## 📚 Library Usage

### Basic Usage

const { getRepoInsights } = require('@shashwatraajsingh/repo-insights');

async function analyzeRepo() {
const insights = await getRepoInsights('facebook', 'react');
console.log(insights);
}

analyzeRepo();


### Response Format
{
"repo": "facebook/react",
"stars": 228847,
"forks": 46704,
"issues_open": 1234,
"commits_last_30_days": 89,
"last_commit_date": "2025-09-03T10:23:00Z"
}


### Error Handling
const { getRepoInsights } = require('@shashwatraajsingh/repo-insights');

async function safeAnalyze(owner, repo) {
const result = await getRepoInsights(owner, repo);

if (result.error) {
console.error('Error:', result.error);
return null;
}

return result;
}


### Integration Example
const { getRepoInsights } = require('@shashwatraajsingh/repo-insights');

// Analyze multiple repositories
async function compareRepos(repoList) {
const results = [];

for (const [owner, repo] of repoList) {
const insights = await getRepoInsights(owner, repo);
if (!insights.error) {
results.push(insights);
}
}

return results.sort((a, b) => b.stars - a.stars);
}

// Usage
compareRepos([
['facebook', 'react'],
['vuejs', 'vue'],
['angular', 'angular']
]).then(console.log);


## 🔧 API Reference

### `getRepoInsights(owner, repo)`

**Parameters:**
- `owner` (string): Repository owner/organization name
- `repo` (string): Repository name

**Returns:** Promise<Object>

**Success Response:**
{
repo: "owner/name",
stars: number,
forks: number,
issues_open: number,
commits_last_30_days: number,
last_commit_date: string | null
}


**Error Response:**
{
error: string
}


## 🛠️ Requirements

- Node.js >= 18.0.0
- No GitHub token required (uses public API)

## 📄 License

MIT License - see LICENSE file for details.

## 🤝 Contributing

Contributions welcome! Please open an issue or submit a pull request.
npm package: @shasvinth/tokengenius
Description: TokenGenius is a versatile and secure Node.js and browser-compatible package for generating random tokens. With customizable token lengths, various token types (numeric, alphabetic, hex, alphanumeric, special), and the ability to define your own character
Author: Shasvinth Srikanth
Latest version: 1.2.0

# tokengenius

TokenGenius is a versatile and secure Node.js and browser-compatible package for generating random tokens. With customizable token lengths, various token types (numeric, alphabetic, hex), and the ability to define your own character set, TokenGenius empowers developers to create unique and tailored tokens for a wide range of applications.

# Installation

`npm i @shasvinth/tokengenius`

# Usage:

```
const generateRandomToken = require('@shasvinth/tokengenius');

// Generate a default hex token
const defaultToken = generateRandomToken();
console.log('Default Token:', defaultToken);

// Generate a numeric token with custom length
const numericToken = generateRandomToken(8, 'numeric');
console.log('Numeric Token:', numericToken);

// Generate an alphabetic token with custom character set
const customCharacterSetToken = generateRandomToken(12, 'alphabetic', 'ABC!@');
console.log('Custom Character Set Token:', customCharacterSetToken);

// Generate a token with expiry time of 10 seconds
const tokenWithExpiry = generateRandomToken(16, 'alphabetic', undefined, 10);
console.log('Token with Expiry:', tokenWithExpiry);
```

# Options:

`length` (optional): Desired length of the token in characters (default is 32).

`type` (optional): Token type (`numeric`, `alphabetic`, `hex`). Default is hex.

`customCharacters` (optional): Custom character set for token generation.

# Compatibility:
TokenGenius works seamlessly in both Node.js and browser environments. In browsers, it leverages the `crypto.getRandomValues` method for enhanced security.
npm package: @shaswat2031/zero-trust-engine
Description: Advanced Behavioral Zero-Trust Security Middleware with Dynamic Configs, DDoS protection, & Sarvam AI Integration
Author: Research Team
Latest version: 1.1.7

# Zero-Trust Engine (Behavioral Security Middleware)

An advanced Express.js middleware implementing Behavioral Zero-Trust Architecture. Instead of relying on static IP blocks, this engine evaluates a dynamic trust score (0-100) for every user session based on request velocity, heuristics, and deep AI reasoning via Sarvam AI.

## Architecture: The Three-Layer Defense

Layer 1: Heuristic Analysis: Instant evaluation of request frequency, failed authentication attempts, and user-agent consistency.
Layer 2: AI Reasoning Layer: Traffic in the "Grey Area" (Score 40-89) is analyzed by a 105B Reasoning LLM (Sarvam AI).
Layer 3: Enforcement & Override: Confirmation or rescue of confirmed threats.

## Key Features

- Dynamic Trust Scoring: Real-time behavioral scoring.
- Micro-Velocity Tracking: Identifies automated scripts.
- Bot/Scraper Detection: Native signatures for common scraper libraries.
- Geo-Jump Protection: Alerts on impossible travel.
- Event-Driven Alerts: Real-time hooks for SOC integration.

## Installation

npm install @shaswat2031/zero-trust-engine

## Basic Quick-Start

Protecting your routes:

```javascript
import { trustMiddleware, setConfig } from '@shaswat2031/zero-trust-engine';

setConfig({
  sarvamApiKey: 'your_api_key_here',
  logging: true
});

app.post('/api/auth/login', trustMiddleware, (req, res) => {
  res.send('Done.');
});
```
npm package: @shaun-farrell/cli
Description: Shaun Farrell CLI
Author: Shaun Farrell
Latest version: 0.2.0

# @shaun-farrell/cli [![npm (scoped)](https://img.shields.io/npm/v/@shaun-farrell/cli?color=ff69b4&logo=npm)](https://www.npmjs.com/package/@shaun-farrell/cli) [![CI status](https://github.com/shaun-farrell/cli/workflows/CI/badge.svg)](https://github.com/shaun-farrell/cli/actions)

> [Shaun Farrell](https://www.jsclouddev.com/) CLI

<p align="center"><img src="https://raw.githubusercontent.com/shaun-farrell/cli/main/screenshot.png" width="700"></p>

## Usage

```sh
$ npx @shaun-farrell/cli
```

## Inspired by

- [@jakejarvis/cli](https://github.com/jakejarvis/cli)
- [@sindresorhus/sindresorhus](https://github.com/sindresorhus/sindresorhus)
- [@yg/ygcodes](https://github.com/yg/ygcodes)

## Built with

- [ink](https://github.com/vadimdemedes/ink) - React for interactive command-line apps
- [meow](https://github.com/sindresorhus/meow) - CLI helper

## License

MIT © [Shaun Farrell](https://www.jsclouddev.com), [Sindre Sorhus](https://sindresorhus.com)
npm package: @shaunbharat/google-meet-api
Description: A Javascript package for interacting with a Google Meet, using Puppeteer.
Author: Shaun Bharat
Latest version: 1.0.2

# GoogleMeetAPI

A Javascript package for interacting with a Google Meet, using Puppeteer.

- [GitHub Repository](https://github.com/shaunbharat/GoogleMeetAPI)
- [npm Package](https://www.npmjs.com/package/@shaunbharat/google-meet-api)
- [Documentation](https://shaunbharat.github.io/GoogleMeetAPI)

## Features

I have not written documentation for this package, but here is a quick list of some things that can be done with this package.

### Quick List of Features

- Sending Messages
- Reading and Handling Messages
- Handling Member Joins and Leaves
- Toggling Microphone and Video

### Main Functions

```javascript
client.sendMessage();

client.chatEnabled();

client.toggleMic();

client.toggleVideo();
```

### Events

```javascript
client.on('message', () => {});

client.on('memberJoin', () => {});

client.on('memberLeave', () => {});
```

## Install

```bash
npm install @shaunbharat/google-meet-api
```

## Usage

> examples/start.js

```javascript
const { Meet } = require('../meet');
const client = new Meet();

config = { meetingLink: 'https://meet.google.com/xyz-wxyz-xyz', email: '', pw: '' };

async function command(client, message) {
    if (message.content.startsWith("!quote")) {
        await client.sendMessage(`${message.author} said, "${message.content.replace("!quote ", "")}" at ${message.time}`);
    }

}

(async () => {

    await client.once('ready', async () => {
        console.log('ready');
    })

    await client.login(config);

    await client.on('message', async (message) => {
        command(client, message);
    })

    await client.on('memberJoin', async (member) => {
        await client.sendMessage(`Welcome, ${member.name}!`);
    })

    await client.on('memberLeave', async (member) => {
        await client.sendMessage(`Goodbye, ${member.name}!`);
    })

})()

/*
 Async/await syntax is required if you need to execute specific actions with Puppeteer or don't want to be limited to only the events already implemented.
*/

// If errors like "Node is detached" get thrown, restarting almost always fixes most errors
```

## License

Copyright © 2022 [Shaun Bharat](https://github.com/shaunbharat).

This project is licensed with the [MIT](https://github.com/shaunbharat/GoogleMeetAPI/blob/main/LICENSE) license.
npm package: @shaungc/bull-board
Description: Bull queue UI for inspecting jobs
Latest version: 0.6.0--debug-03

# bull-board 🎯

Bull Dashboard is a UI built on top of [Bull](https://github.com/OptimalBits/bull) to help you visualize your queues and their jobs.

<p align="center">
  <a href="https://www.npmjs.com/package/bull-board">
    <img alt="npm downloads" src="https://img.shields.io/npm/dw/bull-board">
  </a>
  <a href="https://github.com/vcapretz/bull-board/blob/master/LICENSE">
    <img alt="licence" src="https://img.shields.io/github/license/vcapretz/bull-board">
  </a>
  <a href="https://snyk.io/test/github/vcapretz/bull-board">
    <img alt="snyk" src="https://snyk.io/test/github/vcapretz/bull-board/badge.svg">
  </a>
<p>

![UI](https://raw.githubusercontent.com/vcapretz/bull-board/master/shot.png)

## Starting

To add it to your project start by adding the library to your dependencies list:

```sh
yarn add bull-board
```

Or

```sh
npm i bull-board
```

## Hello World

### Add existing Bull Queue(s)

When you already defined your queue(s) you can add them using the `setQueues` function.

```js
const Queue = require('bull');

const someQueue = new Queue();
const someOtherQueue = new Queue();

const { setQueues } = require('bull-board')

setQueues(someQueue)

// OR

setQueues([
    someQueue,
    someOtherQueue
])
```

### Configure Queue(s) using bull-board

You can also use bull-board itself to create the queues without the need for explicitly importing Bull.

Remember that it depends on Redis as well, so the first step is to configure all of your queues:

```js
const { createQueues } = require('bull-board')

const redisConfig = {
  redis: {
    port: process.env.REDIS_PORT,
    host: process.env.REDIS_HOST,
    password: process.env.REDIS_PASSWORD,
  },
}

const queues = createQueues(redisConfig)
```

And then you can setup how your queues will work:

```js
const helloQueue = queues.add('helloQueue') // adds a queue
const helloQueueWithOpts = queues.add('helloQueue', {
  prefix: 'hello',
}) // adds a queue with QueueOptions https://github.com/OptimalBits/bull/blob/master/REFERENCE.md#queue

// defines how the queue works
helloQueue.process(async job => {
  console.log(`Hello ${job.data.hello}`)
})

helloQueue.add({ hello: 'world' }) // adds a job to the queue
```

And finally, add `UI` to your middlewares (this can be set up using an admin endpoint with some authentication method):

```js
const app = require('express')()
const { UI } = require('bull-board')

app.use('/admin/queues', UI)

// other configurations for your server
```

## Developing

To try it out locally you can clone this repo and run:

```sh
yarn && yarn start:example
```

Just make sure you spin up a Redis instance locally (default port is 6379).

## Further ref

For further ref, please check [Bull's docs](https://optimalbits.github.io/bull/). Apart from the way you configure and start your UI, this library doesn't hijack Bull's way of working.

If you want to learn more about queues and Redis: https://redis.io/

### Acknowledgements ❤️

- [Juan](https://github.com/joaomilho) for building the first version of this library
npm package: @shaungrady/homebridge-security-floodlights
Description: HomeKit security lighting
Author: Shaun Grady
Latest version: 0.4.1

# Homebridge Security Floodlights

This [Homebridge](https://homebridge.io/) plugin is for linking your smart lights and motion sensors together to create a motion-controlled security floodlight setup.

## Prerequisites

* HomeKit lights.
* HomeKit sensors that will be used to trigger your lights.
* An app, like [Controller for HomeKit](https://controllerforhomekit.com/), that can build advanced automations.

## Features

* A _Wind Override_ switch for disabling the motion sensor automations if there's high wind that might falsely trigger your lights.
* One or more _Light Groups_ for controlling as many groups of floodlights/sensors as you wish.
* An _Override_ switch per _Light Group_ for disabling the motion sensor automations for that group of floodlights.
* A customizable motion delay, so your floodlights won't turn off until motion hasn't been detected for the customized amount of time.

## Getting Set Up

[Please refer to the Wiki](https://github.com/shaungrady/homebridge-security-floodlights/wiki#getting-set-up).
npm package: @shaunlusk/slgfx
Description: Canvas graphics framework used by Shaun's JavaScript projects.
Author: Shaun Lusk
Latest version: 4.0.6

# slgfx

Common Graphics framework for Shaun's projects.


Documentation [here](https://shaunlusk.github.io/docs/index.html).
Quickstart Tutorial [here](https://shaunlusk.github.io/demos/tutorial.html).
npm package: @shaunmolloy/address-generator
Description: Address generator is a node module that outputs a random address
Author: Shaun Molloy
Latest version: 1.0.0

# Address generator

Address generator is a node module that outputs a random address.

## Installation

Install the package with either npm:

```sh
npm i @shaunmolloy/address-generator
```

Or with yarn:

```sh
yarn @shaunmolloy/address-generator
```

## Usage

```sh
address-generator
```

Example of output:

```
street: 79 Chorley Road
town: Bolton
county: Lancashire
postcode: BL7 0GJ
```

## License

[MIT licensed](./LICENSE)
npm package: @shaunmolloy/joi-postcode
Description: Validate postcodes with this Joi postcode extension
Author: Shaun Molloy
Latest version: 1.0.3

# Joi Postcode

![npm version](https://img.shields.io/npm/v/@shaunmolloy/joi-postcode)

Validate postcodes with this Joi postcode extension.  
Using [ideal-postcodes/postcode](https://github.com/ideal-postcodes/postcode) behind the scenes.

### Install

```sh
npm i @shaunmolloy/joi-postcode
```

### Basic usage

```js
import JoiPostcode from '@shaunmolloy/joi-postcode';

const schema = JoiPostcode.string();
schema.validate('SW1A 2AA');
```

### License

MIT
npm package: @shaunmolloy/name-generator
Description: Name generator is a node module that outputs a random first and last name
Author: Shaun Molloy
Latest version: 1.0.2

# Name generator

Name generator is a node module that outputs a random first and last name.

## Limitation

This does not yet generate female names, until a data source is added.

## Installation

Install the package with either npm:

```sh
npm i @shaunmolloy/name-generator
```

Or with yarn:

```sh
yarn @shaunmolloy/name-generator
```

## Usage

```sh
name-generator
```

Example of output:

```
Ross Adams
```

## License

[MIT licensed](./LICENSE)
npm package: @shaunpearce/strapi-provider-upload-imagekit
Description: ImageKit provider for strapi upload
Author: Denis Šaško
Latest version: 0.0.1

# strapi-provider-upload-imagekit
![version v4.0.2](https://img.shields.io/badge/Version-4.0.2-956fff "version v4.0.2")

## Notes
### ImageKit provider for the Strapi Upload plugin
- Current version: `4.0.2`
- Compatible with Strapi version: `^4.0.0`
  - Latest tested version `4.0.7`

:exclamation: `MAYOR` and `MINOR` versions of the provider are representing compatability with Strapi, while the `PATCH` version is used to denote changes in the provider itself.

:exclamation: For Strapi `v3` please use `v0.2.5` of this provider.

## Installation

**1. Install via npm or yarn**

```
npm install strapi-provider-upload-imagekit --save
```

or

```
yarn add strapi-provider-upload-imagekit
```

**2. Add or modify the plugins configuration file**

Global configuration file is located in `./config/plugins.js`

Environment configuration files are located in `./config/env/{env}/plugins.js`

For more information please check the [official documentation](https://docs.strapi.io/developer-docs/latest/plugins/upload.html#using-a-provider).

**3. Add your configuration**

Example `./config/plugins.js`:

```js
module.exports = ({ env }) => ({
  upload: {
    config: {
      provider: "strapi-provider-upload-imagekit",  // Community providers need to have the full package name
      providerOptions: {
        publicKey: "publicKey",
        privateKey: "privateKey",
        urlEndpoint: "urlEndPoint",  // Example: https://ik.imagekit.io/username

        // Optional
        params: {
          folder: "/production/images"  // Defaults to "/" if value is not supplied
        }
      }
    }
  }
});
```

**4. Setting up `strapi::security` middlewares to prevent `contentSecurityPolicy` URL blocking**

Modify `./config/middleware.js`:

```js
// ...
{
    name: 'strapi::security',
    config: {
      contentSecurityPolicy: {
        useDefaults: true,
        directives: {
          'connect-src': ["'self'", 'https:'],
          'img-src': ["'self'", 'data:', 'blob:', 'ik.imagekit.io'],
          'media-src': ["'self'", 'data:', 'blob:', 'ik.imagekit.io'],
          upgradeInsecureRequests: null,
        },
      },
    },
},
// ...
```

## Resources
- [MIT License](LICENSE.md)

## Links
- [Strapi website](http://strapi.io/)
- [Strapi community on Discord](https://discord.strapi.io/)
- [Strapi news on Twitter](https://twitter.com/strapijs)

## Imagekit links
- [Imagekit node library](https://www.npmjs.com/package/imagekit)
- [Imagekit API Docs](https://docs.imagekit.io/api-reference/api-introduction)
npm package: @shauray03/portfolio
Description: A CLI interactive portfolio
Author: Shauray Dhingra
Latest version: 1.0.1

# Interactive Portfolio CLI

An interactive Command Line Interface (CLI) portfolio presentation built using Node.js and various libraries for enhanced user experience. This application allows users to navigate through different sections of a portfolio, including projects, education, skills, and relevant courses. Additionally, users can exit the application gracefully with a thank you message.

## Features

- Animated welcome message
- User input for name personalization
- Interactive options to view different sections of the portfolio
- Spinner animations for loading feedback
- Graceful exit with a personalized thank you message

## Libraries Used

- [chalk](https://www.npmjs.com/package/chalk): Terminal string styling
- [inquirer](https://www.npmjs.com/package/inquirer): Interactive command line user interfaces
- [gradient-string](https://www.npmjs.com/package/gradient-string): Gradient color strings
- [chalk-animation](https://www.npmjs.com/package/chalk-animation): Animations for terminal strings
- [figlet](https://www.npmjs.com/package/figlet): Create ASCII art from text
- [nanospinner](https://www.npmjs.com/package/nanospinner): Minimalistic terminal spinners

## Getting Started

### Prerequisites

- Node.js (version 14 or higher)
- npm (Node package manager)

### Installation

1. Install the CLI globally using npm:

   ```bash
   npm install -g @shauray03/portfolio