open-index/open-npm huggingface dataset:
npm package: @pqt/abbreviate
Description: Abbreviate numbers in the Thousands (K), Millions (M), Billions (B) and Trillions (T)
Author: Austin Paquette
Latest version: 1.0.2

<h1 align="center">
  abbreviate
</h1>

<h3 align="center">
Abbreviate numbers in the Thousands (K), Millions (M), Billions (B) and Trillions (T)
</h3>

<p align="center">
  <a href="https://www.npmjs.org/package/@pqt/abbreviate">
    <img src="https://img.shields.io/npm/v/@pqt/abbreviate.svg" alt="Current npm package version." />
  </a>
  <a href="https://github.com/pqt/abbreviate/blob/master/LICENSE">
    <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="Released under the MIT license." />
  </a>
  <a href="https://github.com/pqt/abbreviate/actions?workflow=status">
    <img src="https://github.com/pqt/abbreviate/workflows/status/badge.svg" alt="Current Github Action build status." />
  </a>
  <a href="https://npmcharts.com/compare/@pqt/abbreviate?minimal=true">
    <img src="https://img.shields.io/npm/dm/@pqt/abbreviate.svg" alt="Downloads per month on npm." />
  </a>
  <a href="https://npmcharts.com/compare/@pqt/abbreviate?minimal=true">
    <img src="https://img.shields.io/npm/dt/@pqt/abbreviate.svg" alt="Total downloads on npm." />
  </a>
  <a href="https://twitter.com/intent/follow?screen_name=pqtdev">
    <img src="https://img.shields.io/twitter/follow/pqtdev.svg?label=Follow%20@pqtdev" alt="Follow @pqtdev" />
  </a>
</p>

## Installation

```
npm install @pqt/abbreviate
# OR
yarn add @pqt/abbreviate
```

## Usage

```js
import { abbreviate } from "@pqt/abbreviate";

// Thousands
abbreviate(1234); // => 1K
abbreviate(1234, 1); // => 1.2K
abbreviate(1234, 2); // => 1.23K
abbreviate(1234, 3); // => 1.234K

// Millions
abbreviate(1234123); // => 1M
abbreviate(1234123, 1); // => 1.2M
abbreviate(1234123, 2); // => 1.23M
abbreviate(1234123, 3); // => 1.234M

// Billions
abbreviate(1234123412); // => 1B
abbreviate(1234123412, 1); // => 1.2B
abbreviate(1234123412, 2); // => 1.23B
abbreviate(1234123412, 3); // => 1.234B

// Trillions
abbreviate(1234123412); // => 1T
abbreviate(1234123412, 1); // => 1.2T
abbreviate(1234123412, 2); // => 1.23T
abbreviate(1234123412, 3); // => 1.234T
```

## License

MIT
npm package: @pr-impact/core
Description: PR analysis engine — breaking changes, test coverage, doc staleness, impact graphs, and risk scoring
Latest version: 0.2.1

# @pr-impact/core

PR analysis engine -- detect breaking changes, map blast radius, check test coverage, find stale docs, and score risk.

## Install

```bash
npm install @pr-impact/core
```

## Quick Start

```typescript
import { analyzePR, formatMarkdown, formatJSON } from '@pr-impact/core';

const analysis = await analyzePR({
  repoPath: '/path/to/repo',
  baseBranch: 'main',
  headBranch: 'feature/my-branch',
});

console.log(analysis.riskScore.score);   // 42
console.log(analysis.riskScore.level);   // "medium"
console.log(analysis.breakingChanges);   // BreakingChange[]

console.log(formatMarkdown(analysis));   // Markdown report
console.log(formatJSON(analysis));       // JSON string
```

## Individual Analysis Steps

Each step can be used independently:

```typescript
import {
  parseDiff,
  detectBreakingChanges,
  checkTestCoverage,
  checkDocStaleness,
  buildImpactGraph,
  calculateRisk,
} from '@pr-impact/core';

const repoPath = '/path/to/repo';
const base = 'main';
const head = 'HEAD';

const changedFiles = await parseDiff(repoPath, base, head);
const breakingChanges = await detectBreakingChanges(repoPath, base, head, changedFiles);
const testCoverage = await checkTestCoverage(repoPath, changedFiles);
const docStaleness = await checkDocStaleness(repoPath, changedFiles, base, head);
const impactGraph = await buildImpactGraph(repoPath, changedFiles);
const riskScore = calculateRisk(changedFiles, breakingChanges, testCoverage, docStaleness, impactGraph);
```

## Lower-Level Utilities

```typescript
import {
  categorizeFile,
  parseExports,
  diffExports,
  diffSignatures,
  mapTestFiles,
  extractImportPaths,
  findConsumers,
} from '@pr-impact/core';

categorizeFile('src/utils/auth.ts');       // 'source'
categorizeFile('__tests__/auth.test.ts');  // 'test'
categorizeFile('README.md');               // 'doc'
```

## Types

All TypeScript interfaces are exported from the package:

```typescript
import type {
  PRAnalysis,
  AnalysisOptions,
  ChangedFile,
  BreakingChange,
  TestCoverageReport,
  TestCoverageGap,
  DocStalenessReport,
  StaleReference,
  ImpactGraph,
  ImpactEdge,
  RiskAssessment,
  RiskFactor,
  ExportedSymbol,
  FileExports,
} from '@pr-impact/core';
```

## Risk Score

The risk score is a weighted average of six factors (0--100):

| Factor | Weight | Description |
|---|---|---|
| Breaking changes | 0.30 | Severity of detected breaking API changes |
| Untested changes | 0.25 | Ratio of changed source files lacking test updates |
| Diff size | 0.15 | Total lines added + deleted |
| Stale documentation | 0.10 | References to modified/removed symbols in docs |
| Config file changes | 0.10 | CI/build config modifications |
| Impact breadth | 0.10 | Number of indirectly affected files |

Risk levels: **Low** (0--25), **Medium** (26--50), **High** (51--75), **Critical** (76--100).

## Requirements

- Node.js >= 20
- Must be run inside a git repository (uses `simple-git` for git operations)

## License

[MIT](../../LICENSE)
npm package: @pr-impact/mcp-server
Description: MCP server exposing pr-impact analysis tools to AI assistants
Latest version: 0.2.1

# @pr-impact/mcp-server

[Model Context Protocol](https://modelcontextprotocol.io/) server that exposes pr-impact analysis tools to AI assistants like Claude Code, Cursor, and other MCP-compatible clients.

## Install

```bash
npm install -g @pr-impact/mcp-server
```

## Setup

### Claude Code

Add to `.claude/mcp.json`:

```json
{
  "mcpServers": {
    "pr-impact": {
      "command": "npx",
      "args": ["-y", "@pr-impact/mcp-server"]
    }
  }
}
```

### Claude Desktop

Add to your Claude Desktop config:

```json
{
  "mcpServers": {
    "pr-impact": {
      "command": "npx",
      "args": ["-y", "@pr-impact/mcp-server"]
    }
  }
}
```

### Cursor / VS Code

Follow the editor's MCP server configuration to add:

```
command: npx
args: -y @pr-impact/mcp-server
```

## Available Tools

| Tool | Description |
|---|---|
| `analyze_diff` | Full PR analysis -- breaking changes, test coverage, doc staleness, impact graph, and risk score |
| `get_breaking_changes` | Detect breaking API changes with optional severity filtering |
| `get_risk_score` | Calculate risk score with full factor breakdown |
| `get_impact_graph` | Build import-dependency graph showing directly changed and indirectly affected files |

### Parameters

All tools accept these optional parameters:

| Parameter | Type | Description |
|---|---|---|
| `repoPath` | `string` | Path to git repo (defaults to cwd) |
| `baseBranch` | `string` | Base branch (defaults to main/master) |
| `headBranch` | `string` | Head branch (defaults to HEAD) |

Additional tool-specific parameters:

- **`get_breaking_changes`**: `minSeverity` (`"low"` | `"medium"` | `"high"`) -- filter by minimum severity
- **`get_impact_graph`**: `filePath` (`string`) -- focus on a specific file; `depth` (`number`) -- max graph traversal depth

## Transport

Uses **stdio** transport. The server reads from stdin and writes to stdout, which is the standard transport for local MCP servers.

## Requirements

- Node.js >= 20
- Must be run inside (or pointed at) a git repository

## License

[MIT](../../LICENSE)
npm package: @pr-impact/skill
Description: Claude Code skill for AI-powered PR impact analysis
Latest version: 1.0.4

# @pr-impact/skill

Claude Code plugin that provides the `/pr-impact` slash command for AI-powered PR impact analysis.

## Installation

```bash
claude plugin add @pr-impact/skill
```

## Usage

In Claude Code, run:

```
/pr-impact
```

Or with arguments:

```
/pr-impact main feature-branch
```

This starts an AI-driven analysis of your current branch against `main`, using MCP tools to gather evidence and produce a structured risk report.

## How It Works

The plugin bundles:
- **skills/pr-impact/SKILL.md** -- System prompt with analysis methodology and report template
- **.mcp.json** -- References `@pr-impact/tools` MCP server for git/repo tools
- **.claude-plugin/plugin.json** -- Plugin metadata

At build time, `SKILL.md` is assembled from shared templates (`templates/system-prompt.md` and `templates/report-template.md`).

## License

[MIT](../../LICENSE)
npm package: @pr-impact/tools
Description: MCP server providing git/repo tools for AI-powered PR impact analysis
Latest version: 1.0.4

# @pr-impact/tools

MCP server that exposes git/repo tools for AI-powered PR impact analysis. Wraps `@pr-impact/tools-core` handlers with zod input schemas and the MCP protocol.

## Usage

### With any MCP client

```json
{
  "mcpServers": {
    "pr-impact": {
      "command": "npx",
      "args": ["-y", "@pr-impact/tools"]
    }
  }
}
```

### Available Tools

| Tool | Description |
|---|---|
| `git_diff` | Get raw git diff between two branches, optionally for a single file |
| `read_file_at_ref` | Read a file's content at a specific git ref |
| `list_changed_files` | List files changed between two branches with status and stats |
| `search_code` | Search for a regex pattern in the codebase |
| `find_importers` | Find files that import a given module |
| `list_test_files` | Find test files associated with a source file |

## Architecture

- `src/index.ts` -- MCP server entry point using stdio transport
- `src/register.ts` -- Tool registration with zod schemas

The server uses `@modelcontextprotocol/sdk` for the MCP protocol and `zod` for input validation.

## License

[MIT](../../LICENSE)
npm package: @pr-impact/tools-core
Description: Pure tool handler functions for git/repo operations — no framework dependency
Latest version: 1.0.4

# @pr-impact/tools-core

Pure tool handler functions for git and repository operations. This is the shared foundation used by both the MCP server (`@pr-impact/tools`) and the GitHub Action (`@pr-impact/action`).

## Tools

| Function | Description |
|---|---|
| `gitDiff` | Get raw git diff between two refs, optionally for a single file |
| `readFileAtRef` | Read a file's content at a specific git ref (branch/commit/tag) |
| `listChangedFiles` | List changed files between two refs with status and addition/deletion stats |
| `searchCode` | Search for a regex pattern across the codebase via `git grep` |
| `findImporters` | Find all source files that import a given module (session-cached) |
| `listTestFiles` | Find test files associated with a source file using naming conventions |

## Usage

```typescript
import { gitDiff, listChangedFiles, findImporters } from '@pr-impact/tools-core';

const diff = await gitDiff({ base: 'main', head: 'feature-branch', file: 'src/index.ts' });
const files = await listChangedFiles({ base: 'main', head: 'feature-branch' });
const consumers = await findImporters({ modulePath: 'src/utils/parser.ts' });
```

All functions accept an optional `repoPath` parameter (defaults to `process.cwd()`).

## License

[MIT](../../LICENSE)
npm package: @pr-merger/app
Description: Your friendly merging bot
Latest version: 0.7.0

# pr-merger

![build](https://github.com/pr-merger/pr-merger/workflows/build/badge.svg)
[![renovate badge](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)

This project is a rebuild of [bors-ng](https://github.com/bors-ng/bors-ng) in TypeScript.

We did so since we would like to change certain things and don't feel good with Elixir.

---

A few things will be different:

tbd

---

![Process Chart](./resources/process.svg)
npm package: @pr-merger/base
Description: Your friendly merging bot
Latest version: 0.7.0

# pr-merger

![build](https://github.com/pr-merger/pr-merger/workflows/build/badge.svg)
[![renovate badge](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)

This project is a rebuild of [bors-ng](https://github.com/bors-ng/bors-ng) in TypeScript.

We did so since we would like to change certain things and don't feel good with Elixir.

---

A few things will be different:

tbd

---

![Process Chart](./resources/process.svg)
npm package: @pr-merger/core
Description: Your friendly merging bot
Latest version: 0.7.0

# pr-merger

![build](https://github.com/pr-merger/pr-merger/workflows/build/badge.svg)
[![renovate badge](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)

This project is a rebuild of [bors-ng](https://github.com/bors-ng/bors-ng) in TypeScript.

We did so since we would like to change certain things and don't feel good with Elixir.

---

A few things will be different:

tbd

---

![Process Chart](./resources/process.svg)
npm package: @pr-merger/github
Description: Your friendly merging bot
Latest version: 0.7.0

# pr-merger

![build](https://github.com/pr-merger/pr-merger/workflows/build/badge.svg)
[![renovate badge](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)

This project is a rebuild of [bors-ng](https://github.com/bors-ng/bors-ng) in TypeScript.

We did so since we would like to change certain things and don't feel good with Elixir.

---

A few things will be different:

tbd

---

![Process Chart](./resources/process.svg)
npm package: @pr-mpt/actions-semver-aliases
Description: Generate release aliases for a Semantic Version
Author: Samuel Ryan
Latest version: 2.0.0

# SemVer Aliases

A GitHub Action for generating the major and minor aliases of a
[Semantic Version][semver]: generate `v3` and `v3.14` from `v3.14.1`.

```
pr-mpt/actions-semver-aliases@v2
```

## Inputs

| ID | Description | Default | Examples |
| ---- | ----------- | ------- | -------- |
| **`version`** | **Semantic Version number** | **<kbd>required</kbd>** | **`v1.2.3` `1.2.3`** |
| `prefix` | String prefixed before each alias | `v` | `v` `app-` |
| `major` | Generate major version alias | `true` | |
| `minor` | Generate minor version alias | `true` | |
| `patch` | Generate patch version alias | `false` | |

## Outputs

| ID | Description | Example |
| ---- | --------- | -------- |
| `list` | Newline separated string of aliases | `v1`<br/>`v1.2` |
| `csv` | Comma-separated string of aliases | `v1,v1.2` |

[semver]: https://semver.org/
npm package: @pr-note/pr-note
Description: A command-line tool to generate PR notes summarizing unmerged PRs on GitHub between two branches.
Author: K-tecchan
Latest version: 0.1.3

# [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note)

A command-line tool to generate PR notes summarizing unmerged PRs on GitHub between two branches.

## Installation

```bash
# If you want to install globally
npm install -g @pr-note/pr-note
# If you want to install as a development dependency in a project
npm install -D @pr-note/pr-note
```

## Usage

For example, to create a release pull request from the `feature` to the `main` in the [octocat/Hello-World](https://github.com/octocat/Hello-World) repository, do the following:

```bash
pr-note \
--owner octocat \
--repo Hello-World \
--base main \
--head feature \
--token <github_token>
```

Alternatively, if environment variables are set in a CI/CD environment, corresponding arguments can be omitted as follows:

```bash
export PR_NOTE_GITHUB_TOKEN="<GITHUB_TOKEN>"

pr-note \
--owner octocat \
--repo Hello-World \
--base main \
--head feature
```

For more details on usage, options, and templates, please refer to the [Rust version documentation](/README.md).

## Options

```bash
$ pr-note --help
Generate or update a GitHub Pull Request (PR) note summarizing unmerged PRs between two branches.

Usage: pr-note [OPTIONS] --owner <OWNER> --repo <REPO> --base <BASE> --head <HEAD> --token <TOKEN>

Options:
      --host <HOST>
          API host domain for GitHub. Default is "api.github.com".
          For GitHub Enterprise, set your enterprise host domain.

          [env: PR_NOTE_GITHUB_HOST=]
          [default: api.github.com]

  -o, --owner <OWNER>
          The owner of the repository.

          [env: PR_NOTE_REPO_OWNER=]

  -r, --repo <REPO>
          The name of the repository.

          [env: PR_NOTE_REPO_NAME=]

  -b, --base <BASE>
          The name of the base branch.

          [env: PR_NOTE_BASE_BRANCH=]

  -a, --head <HEAD>
          The name of the head branch.

          [env: PR_NOTE_HEAD_BRANCH=]

  -t, --token <TOKEN>
          GitHub API token with appropriate repository permissions:
            - Contents: read
            - Metadata: read
            - Pull requests: write

          [env: PR_NOTE_GITHUB_TOKEN]

  -p, --template-path <TEMPLATE_PATH>
          Template file path for PR title and body.
          First line is used as the title, rest as the body.
          If not specified, the default template will be used.

          [env: PR_NOTE_TEMPLATE_PATH=]

  -g, --group-by <GROUP_BY>
          Grouping options for unmerged PRs.
          Options are "label" or "title".

          [env: PR_NOTE_GROUP_BY=]
          [possible values: label, title]

  -d, --dry-run
          Dry run mode.
          With this option, no PR will be created or updated, only output the generated text to stdout.

          [env: PR_NOTE_DRY_RUN=]

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version
```
npm package: @pr-note/pr-note-darwin-arm64
Description: This is the Darwin ARM64 (Apple Silicon) build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
Latest version: 0.1.3

# [@pr-note/pr-note-darwin-arm64](https://www.npmjs.com/package/@pr-note/pr-note-darwin-arm64)

This is the Darwin ARM64 (Apple Silicon) build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
npm package: @pr-note/pr-note-darwin-x64
Description: This is the Darwin X64 (Intel) build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
Latest version: 0.1.3

# [@pr-note/pr-note-darwin-x64](https://www.npmjs.com/package/@pr-note/pr-note-darwin-x64)

This is the Darwin X64 (Intel) build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
npm package: @pr-note/pr-note-linux-arm64
Description: This is the Linux ARM64 build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
Latest version: 0.1.3

# [@pr-note/pr-note-linux-arm64](https://www.npmjs.com/package/@pr-note/pr-note-linux-arm64)

This is the Linux ARM64 build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
npm package: @pr-note/pr-note-linux-x64
Description: This is the Linux X64 (Intel) build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
Latest version: 0.1.3

# [@pr-note/pr-note-linux-x64](https://www.npmjs.com/package/@pr-note/pr-note-linux-x64)

This is the Linux X64 (Intel) build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
npm package: @pr-note/pr-note-win32-arm64
Description: This is the Windows ARM64 build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
Latest version: 0.1.3

# [@pr-note/pr-note-win32-arm64](https://www.npmjs.com/package/@pr-note/pr-note-win32-arm64)

This is the Windows ARM64 build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
npm package: @pr-note/pr-note-win32-x64
Description: This is the Windows X64 (Intel) build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
Latest version: 0.1.3

# [@pr-note/pr-note-win32-x64](https://www.npmjs.com/package/@pr-note/pr-note-win32-x64)

This is the Windows X64 (Intel) build of [@pr-note/pr-note](https://www.npmjs.com/package/@pr-note/pr-note), a tool to generate or update GitHub Pull Request (PR) notes summarizing unmerged PRs between two branches.
npm package: @pr0da/angular-gettext-cli
Description: A command line interface for angular gettools
Author: Andrey Skladchikov
Latest version: 1.0.7

**Note: this is a forked version of [`angular-gettext-cli`](https://github.com/huston007/angular-gettext-cli) to add json extraction possibility.**

Additional cli parameters: 
`--json-properties [property]`

Usage:
`angular-gettext-cli --files "example/*.+(html|js|json)" --dest example/dist/extract.pot --json-properties title --json-properties validationMessage --json-properties description`

---

angular-gettext-cli [![Build Status](https://travis-ci.org/huston007/angular-gettext-cli.svg?branch=master)](https://travis-ci.org/huston007/angular-gettext-cli)
===================

A command line interface for [angular-gettext-tools](https://github.com/rubenv/angular-gettext-tools)

## Installation

`npm install angular-gettext-cli -g` for global using or
`npm install angular-gettext-cli --save-dev` for local.

## Extraction:

`angular-gettext-cli  --files "./app/*.+(js|html)" --dest ./extract.pot --marker-name i18n`

### Parameters:
* `--files` - a [glob](https://github.com/isaacs/node-glob) pattern to specify files to process
* `--dest` - path to file to write extracted words.
* `--marker-name` - a name of marker to search in js-files (see [angular-gettext-tools](https://github.com/rubenv/angular-gettext-tools#options))

## Compilation:

`angular-gettext-cli  --compile --files 'test/*.po' --dest test/output.js --format javascript --module gettext-test`

### Parameters:
* `--files` - a [glob](https://github.com/isaacs/node-glob) pattern to specify files to process
* `--dest` - path to file to write extracted words.
* `--format` - `javascript` or `json`
* `--module` - For the `javascript` output format, the angular module name to use in the output file.

For more options, see [angular-gettext-tools](https://github.com/rubenv/angular-gettext-tools#options).
npm package: @pr0da/cli-github-pages
Description: Just a dummy test module for [this](http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm) npm article.
Author: pr0da
Latest version: 3.1.0

#Github Pages CLI Tool

Just a dummy test module for [this](http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm) npm article.
npm package: @pr0da/json-schema-loader
Description: json-schema loader for webpack
Author: pr0da
Latest version: 0.3.1

# json-schema loader for webpack

## Installation

`npm install @pr0da/json-schema-loader`

## Description

Enchanced json loader for webpack, which handles json schema references (`$ref`). The loader uses [json-schema-ref-parser](https://github.com/BigstickCarpet/json-schema-ref-parser) to resolve references.

Additionally the loader can merger subschemas given by `allOf`.

## Usage

``` javascript
var dummySchema = require('json-schema!./root.json');
// => returns file.json content as json parsed object with resolved $ref's
```

## Query Options

* **mergeAllOf**: Optional parameter to merge subschemas given by the `allOf` keyword.
    * E.g.: `json-schema?mergeAllOf=true!./root.json` 
    * Default: `false`;

## License

[MIT](http://www.opensource.org/licenses/mit-license.php)
npm package: @pr0gramm/design-system
Description: The react design system that powers pr0gramm.com
Author: pr0gramm.com developers
Latest version: 0.3.0

# @pr0gramm/design-system
[![CI](https://github.com/pr0gramm-com/design-system/actions/workflows/CI.yml/badge.svg)](https://github.com/pr0gramm-com/design-system/actions/workflows/CI.yml) [![CD](https://github.com/pr0gramm-com/design-system/actions/workflows/CD.yml/badge.svg)](https://github.com/pr0gramm-com/design-system/actions/workflows/CD.yml) [![version](https://img.shields.io/npm/v/%40pr0gramm/design-system)](https://www.npmjs.com/package/@pr0gramm/design-system) [![downloads](https://img.shields.io/npm/dm/%40pr0gramm/design-system)](https://www.npmjs.com/package/@pr0gramm/design-system) ![License](https://img.shields.io/npm/l/%40pr0gramm%2Fdesign-system)

The react design system that powers pr0gramm.com built with [StyleX](https://stylexjs.com). Assumes `react`, `react-dom` and `react-router`.

Links:
- [Demo/Showcase](https://pr0gramm-com.github.io/design-system)
- [API-Docs](https://pr0gramm-com.github.io/design-system/docs)

## Installation
```sh
npm i @pr0gramm/design-system
```

## Usage with Vite + React
1. Install StyleX + StyleX for Vite: `npm i -D vite-plugin-stylex @stylexjs/stylex`

2. Use StyleX plugin in `vite.config.ts`:
```js
import styleX from "vite-plugin-stylex";

export default defineConfig({
  plugins: [
    react(),
    styleX({
      libraries: ["@pr0gramm/design-system"],
    }),
  ],
});
```

3. Add this to `index.css`: `@stylex stylesheet;`
npm package: @pr0vin/inertia-sidebar
Description: A sidebar component for Inertia.js with React and Tailwind CSS.
Author: Paradox
Latest version: 1.0.0

# @paradox/inertia-sidebar

A sidebar component for Inertia.js with React and Tailwind CSS.

## Installation

```bash
npm install @paradox/inertia-sidebar
```
npm package: @pr4j3sh/ai
Description: ai in your code
Author: Prajesh Pratap Singh
Latest version: 1.0.7

# ai

> ai in your code

This is a javascript npm package for using LLM inside your code.

Supports:

- SheCodes
- Ollama

> Use chaining to make context aware

## Installation

- Using `npm`

```bash
npm i @pr4j3sh/ai
```

## Usage

- Server side

```js
const AI = require("@pr4j3sh/ai");

async function main() {
  try {
    const ai = new AI("write two lines on javascript");
    await ai.shecodes();
    await ai.ollama(
      `${ai.response}\n use the above and give me two mcqs on it`,
    );

    console.log(ai.response);
  } catch (error) {
    console.error(error.message);
  }
}

main();
```

- Client side

```js
import AI from "@pr4j3sh/ai";

async function main() {
  try {
    const ai = new AI("write two lines on javascript");
    await ai.shecodes();
    await ai.ollama(
      `${ai.response}\n use the above and give me two mcqs on it`,
    );

    console.log(ai.response);
  } catch (error) {
    console.error(error.message);
  }
}

main();
```

[Read More](docs/usage.md)

## Reference

- [NodeJS Documentation](https://nodejs.org/en/learn/getting-started/introduction-to-nodejs)
- [NPM Documentation](https://docs.npmjs.com/)
- [@pr4j3sh/frames](https://pr4j3sh.github.io/frames/)
npm package: @pr4j3sh/auth
Description: Authentication server SDK
Author: Prajesh Pratap Singh
Latest version: 1.0.11

# pr4j3sh/auth

`pr4j3sh/auth` is an authentication service that enables user registration, login, and profile access. With our SDKs, developers can easily integrate authentication into their own applications.

> limited to `10 req/min/user`

## Documentation

[Website](https://pr4j3sh-auth.vercel.app/) | [Documentation](https://pr4j3sh.github.io/auth/)

## Installation

- Install [@pr4j3sh/auth](https://www.npmjs.com/package/@pr4j3sh/auth)

```bash
npm i @pr4j3sh/auth
```

## Usage

### SDK

#### Client side

- User Registration

```js
import auth from "@pr4j3sh/auth";

const payload = {
  username: "johndoe",
  password: "securepassword123",
};

const res = await auth.register(payload);
console.log(res);
```

#### Server side

```js
const { authHandler } = require("@pr4j3sh/auth");

app.get("/protected", authHandler, (req, res) => {
  res.json({ user: req.user });
});
```

### Curl

- User registration

```bash
curl -X POST https://pr4j3sh-auth.up.railway.app/api/auth/register -H 'Content-Type: application/json' -d '{"username":"john", "password":"123456"}'
```

> returns JWT token

## References

- [exhandlers Documentation](https://pr4j3sh.github.io/exhandlers/)
- [ExpressJs Documentation](https://expressjs.com/en/starter/hello-world.html)
- [Railway Documentation](https://docs.railway.com/guides/express)
- [@pr4j3sh/frames](https://github.com/pr4j3sh/frames)
npm package: @pr4j3sh/bitter
Description: bittorrent client
Author: Prajesh Pratap Singh
Latest version: 1.0.4

# bitter

This is a bittorrent client, written in javascript. Easily download torrents with magnet links.

## Installtion

```bash
npm i -g @pr4j3sh/bitter
```

## Usage

```bash
bitter <magnet_link>
```

> Note: The downloader gets stuck at 99%, although the download is complete. You may press `Ctrl + C` to exit.

## Reference

- [Bittorrent Client](https://allenkim67.github.io/programming/2016/05/04/how-to-make-your-own-bittorrent-client.html)
- [NodeJS Documentation](https://nodejs.org/en/learn/getting-started/introduction-to-nodejs)
- [NPM Documentation](https://docs.npmjs.com/)
- [@pr4j3sh/frames](https://pr4j3sh.github.io/frames/)
npm package: @pr4j3sh/clai
Description: command line ai assistant
Author: Prajesh Pratap Singh
Latest version: 1.0.5

# clai

clai (pronounced "clay") is a command line ai assistant that uses LLM to answer to your queries.

## Installation

```bash
npm i -g @pr4j3sh/clai
```

## Usage

```bash
clai ["prompt"] [help | -h]
```

> Use

## Reference

- [@pr4j3sh/ai](https://github.com/pr4j3sh/ai)
- [NodeJS Documentation](https://nodejs.org/en/learn/getting-started/introduction-to-nodejs)
- [NPM Documentation](https://docs.npmjs.com/)
- [@pr4j3sh/frames](https://pr4j3sh.github.io/frames/)
npm package: @pr4j3sh/codemap
Description: Parses file tree and it's contents in JSON format.
Author: Prajesh Pratap Singh
Latest version: 1.0.1

# codemap

This is a javascript npm package that parses file tree and their contents in `JSON` format.

## Installation

```bash
npm i @pr4j3sh/codemap
```

## Usage

```js
const Parser = require("@pr4j3sh/codemap");

// provide directory path
const tree = new Parser(".").scan().getTree();

console.log(tree);
```

## Reference

- [NodeJS Documentation](https://nodejs.org/en/learn/getting-started/introduction-to-nodejs)
- [NPM Documentation](https://docs.npmjs.com/)
- [@pr4j3sh/frames](https://pr4j3sh.github.io/frames/)
npm package: @pr4j3sh/create-frames
Description: frames CLI tool for cloning templates
Author: Prajesh Pratap Singh
Latest version: 1.0.18

# frames

With frames, you can skip setup and focus on building. Choose from ready-to-use templates, with custom CSS and pre-integrated utilities. Build faster and smarter!

### Pre-requisites

- [NodeJs](https://nodejs.org/en)
- [Git](https://git-scm.com/)

## Usage

```bash
npm create @pr4j3sh/frames@latest <template_name> myproject
```

- [Browse Templates](https://pr4j3sh.github.io/frames/templates)
- [Browse UI](https://pr4j3sh.github.io/ui)
npm package: @pr4j3sh/env-parser
Description: ENV parser to JSON
Author: Prajesh Pratap Singh
Latest version: 1.0.4

# env parser

This is a javascript npm package that parses `ENV` variables to `JSON`.

## Installation

- Install using npm

```bash
npm i @pr4j3sh/env-parser
```

## Usage

- Require `@pr4j3sh/env-parser` in your file.

```js
const Parser = require("@pr4j3sh/env-parser");

const p = new Parser();

let json = p
  .input(
    "APP_NAME=MyApp\nAPP_ENV=production\nAPP_PORT=4892\nAPP_SECRET=sdj32j42hfs73ksdlfh29dsfsd\n",
  )
  .parse()
  .toJson();

// provide file path
json = p.fileInput(".env").parse().toJson();
```

## Reference

- [NodeJS Documentation](https://nodejs.org/en/learn/getting-started/introduction-to-nodejs)
- [NPM Documentation](https://docs.npmjs.com/)
- [@pr4j3sh/frames](https://pr4j3sh.github.io/frames/)
npm package: @pr4j3sh/hash-tag
Description: Markdown to HTML parser.
Latest version: 0.1.16

# hash-tag

> <#>

Markdown to HTML Parser written in `rust`, built with wasm, for direct usage in `javascript`.

### Features

- Parses headings, blockquotes, inline code, codeblock, paragraphs, links, bold, italics, unordered lists and ordered list.
- Visualize outputs using frames ui.

## Usage

### Using `cargo`

```bash
cargo install hash-tag
```

- Use `run`

```bash
hash-tag path/to/file.md
```

> Generates a `index.html` file

- Specify output file using `-o` flag

```bash
hash-tag path/to/file.md -o path/to/file.html
```

- Visualize output file using `-v` flag

```bash
hash-tag path/to/file.md -v path/to/view.html
```

> This uses [frames ui](https://pr4j3sh.github.io/ui/).

### Using `npm`

- Create a node environment

```bash
mkdir test
cd test
npm init -y
```

- Add `"type": "module",` to `package.json` file.

- Install [@pr4j3sh/hash-tag](https://www.npmjs.com/package/@pr4j3sh/hash-tag) npm package

```bash
npm install @pr4j3sh/hash-tag
```

- Create a new file `index.js` and write the code as:

```js
import * as wasm from "@pr4j3sh/hash-tag";

const html = wasm.parse("## heading 2\n");
console.log(html);
```

- Run using

```bash
node index.js
```

- Outputs

```html
<h2>heading 2</h2>
```

## References

- [Rust Documentation](https://www.rust-lang.org/learn/get-started)
- [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen)
- [wasm-pack](https://github.com/rustwasm/wasm-pack)
- [frames ui](https://pr4j3sh.github.io/ui/)
- [@pr4j3sh/frames](https://github.com/pr4j3sh/frames)
npm package: @pr4j3sh/id
Description: generates random unique general purpose hash/ids
Author: Prajesh Pratap Singh
Latest version: 1.0.0

# id

This is a javascript npm package that generates general purpose unique hash/ids.

## Installation

```bash
npm i @pr4j3sh/id
```

## Usage

- CJS

```bash
const id = require("@pr4j3sh/id");

console.log(id());
```

- MJS

```bash

import id from "@pr4j3sh/id";

console.log(id());
```

## Reference

- [NodeJS Documentation](https://nodejs.org/en/learn/getting-started/introduction-to-nodejs)
- [NPM Documentation](https://docs.npmjs.com/)
- [@pr4j3sh/frames](https://pr4j3sh.github.io/frames/)
npm package: @pr4j3sh/imaige
Description: generate images using ai
Author: Prajesh Pratap Singh
Latest version: 1.0.1

# imaige

This is a javascript npm package for generating images using AI.

It provides both package scenarios:

- library
- binary

## Usage

### CLI Tool

- Install using `npm`

```bash
npm i -g @pr4j3sh/imaige
```

- Run using

```bash
imaige "a samurai cat in a burning village"
```

> use `imaige help` for more usage options

### Library

- Install using `npm`

```bash
npm i @pr4j3sh/imaige
```

- Provides a single function `imaige` with 5 arguments, returns an url string

```js
const { imaige } = require("@pr4j3sh/imaige");

imaige("a samurai cat in a burning village")
  .then((res) => console.log(res))
  .catch((err) => console.error(err));
```

| argument   | type     | description                  | default |
| ---------- | -------- | ---------------------------- | ------- |
| prompt     | required | prompt for image generation  | -       |
| width      | optional | image width                  | 1216    |
| height     | optional | image height                 | 832     |
| generator  | optional | image generator              | hd      |
| preference | optional | genius generator preferences | classic |

**Recommended Values**:

- all arguments are of type string
- image width and height(for standard images `1024x576`, `1024x720`, `512x512`, `768x1024`, `576x1024`, for hd images `1216x832`, `1152x896`, `1024x1024`, `896x1152`, `832x1216`)
- image generator(either `standard`, `hd`, or `genius`)
- `genius` generator preferences(either `classic`, `anime`, `photography`, `graphic`, or `cinematic`)

## Reference

- [DeepAI Documentation](https://deepai.org/docs#ai-image-generator)
- [NodeJS Documentation](https://nodejs.org/en/learn/getting-started/introduction-to-nodejs)
- [NPM Documentation](https://docs.npmjs.com/)
- [@pr4j3sh/frames](https://pr4j3sh.github.io/frames/)
npm package: @pr4j3sh/oscar
Description: open source codebase augmented retrieval
Author: Prajesh Pratap Singh
Latest version: 1.0.1

# oscar

> open source codebase augmented retrieval

`oscar` is a CLI tool that lets you semantically search and query any open source codebase. It uses embeddings and retrieval to help you understand large projects faster.

## Installation

- Install `oscar` using `npm`

```bash
npm i -g @pr4j3sh/oscar
```

- Install `chromadb`

  - using `pipx`

  ```bash
  pipx install chromadb
  ```

  - Or, using `docker`

  ```bash
  docker run -v ./chroma-data:/data -p 8000:8000 chromadb/chroma
  ```

- Install `llama3.2`
  - on `linux`
  ```bash
  curl -fsSL https://ollama.com/install.sh | sh
  ```
  - for `windows`, `macos`, visit [here](https://github.com/ollama/ollama?tab=readme-ov-file#ollama).

## Usage

- run `llama3.2`

```bash
ollama run llama3.2
```

- run `chromadb`

```bash
chroma run
```

- create collection

```bash
oscar [init | i] -c <collection_name> <path_to_codebase>
```

> this is a one-time process

- query collection

```bash
oscar [query | q] -c <collection_name> "<query>"
```

- list collections

```bash
oscar [list]
```

- delete collection

```bash
oscar [rm] <collection_name>
```

## Reference

- [Langchain Documentation](https://js.langchain.com/docs/introduction/)
- [ChromaDB Documentation](https://docs.trychroma.com/docs/overview/getting-started?lang=typescript)
- [ollama](https://github.com/ollama/ollama)
- [NodeJS Documentation](https://nodejs.org/en/learn/getting-started/introduction-to-nodejs)
- [NPM Documentation](https://docs.npmjs.com/)
- [@pr4j3sh/frames](https://pr4j3sh.github.io/frames/)