open-index/open-npm huggingface dataset:
npm package: @rob-myers/recast-navigation__core
Description: Recast Navigation for JavaScript!
Author: Isaac Mason
Latest version: 0.39.13

# @recast-navigation/core

This package contains the the core functionality for `recast-navigation`. Please refer to the [main package's README](https://github.com/isaac-mason/recast-navigation-js/tree/main/packages/recast-navigation/README.md) for usage information.
npm package: @rob-myers/recast-navigation__generators
Description: NavMesh generator implementations for @recast-navigation/core
Author: Isaac Mason
Latest version: 0.39.13

# @recast-navigation/generators

This package contains "Preset" NavMesh generators for @recast-navigation/core that make getting started easy.

These can also be used as a basis for your own generator.

Please refer to the [main package's README](https://github.com/isaac-mason/recast-navigation-js/tree/main/packages/recast-navigation/README.md) for usage information.
npm package: @rob-myers/recast-navigation__wasm
Description: A webassembly port of Recast Navigation
Author: Isaac Mason
Latest version: 0.39.13

# @recast-navigation/wasm

WASM build of Recast Navigation.

This library isn't intended for direct use - [`recast-navigation`](https://github.com/isaac-mason/recast-navigation-js/tree/main/packages/recast-navigation) is probably what you're looking for. It uses `@recast-navigation/wasm` internally, and provides a more friendly API.

This WASM build is based on the [Babylon.js Recast Navigation Extension](https://github.com/BabylonJS/Extensions/tree/master/recastjs).
npm package: @rob.hameetman/eslint-config
Description: Eslint config for `@rob.hameetman` packages
Author: Robert H. Hameetman
Latest version: 0.0.11

![@rob.hameetman/eslint-config][header]

![Version](https://img.shields.io/npm/v/@rob.hameetman/eslint-config)
![Downloads](https://img.shields.io/npm/dt/@rob.hameetman/eslint-config)
![Build](https://img.shields.io/bitbucket/pipelines/rob.hameetman/master)
![License](https://img.shields.io/npm/l/@rob.hameetman/eslint-config)

# 📦 @rob.hameetman/eslint-config

This project is a curated collection of public packages for personal use across
distributed and internal solutions.

- [📦 @rob.hameetman/eslint-config](#%f0%9f%93%a6-robhameetmaneslint-config)
  - [💼 Getting Started](#%f0%9f%92%bc-getting-started)
    - [📚 Prerequisites](#%f0%9f%93%9a-prerequisites)
    - [📲 Installing](#%f0%9f%93%b2-installing)
  - [🛥 Deployment](#%f0%9f%9b%a5-deployment)
  - [🧾 Project Dependencies](#%f0%9f%a7%be-project-dependencies)
  - [🏷 Versioning](#%f0%9f%8f%b7-versioning)
  - [📜 Authors](#%f0%9f%93%9c-authors)
  - [📄 License](#%f0%9f%93%84-license)

## 💼 Getting Started

These instructions will get you a copy of the project up and running on your
local machine for development and testing purposes. See deployment for notes on
how to deploy the project on a live system.

### 📚 Prerequisites

What things you need to install the software and how to install them

* Node v10+
* NPM v6+

### 📲 Installing

To install the project, clone and build the repo, then use `npm` to install
dependencies for each package.

```bash
git clone git@bitbucket.org:rob.hameetman.git
cd packages/eslint-config
npm i
```

## 🛥 Deployment

Each package is versioned and deployed independently with `npm`:

```bash
npm version patch
npm publish
```

## 🧾 Project Dependencies

* [TypeScript](https://www.typescriptlang.org/) - Implementation language
* [NPM](https://www.npmjs.com/) - Dependency Management

## 🏷 Versioning

I use [SemVer](http://semver.org/) for versioning. For the versions available,
see the [tags on this repository](https://github.com/RobHameetman/packages/tags/).

## 📜 Authors

* **Robert Hameetman** - *<engineering@robhameetman.com>*

See also the list of [contributors](https://github.com/RobHameetman/packages/graphs/contributors) who participated in this project.

## 📄 License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

[header]: /.github/readme-eslint-config.png "@rob.hameetman/eslint-config"
npm package: @rob.hameetman/type-guards
Description: Eslint plugin for TypeScript projects
Author: Robert H. Hameetman
Latest version: 1.1.0

![@rob.hameetman/type-guards][header]

![Version](https://img.shields.io/npm/v/@rob.hameetman/type-guards)
![Downloads](https://img.shields.io/npm/dt/@rob.hameetman/type-guards)
![Build](https://img.shields.io/bitbucket/pipelines/rob.hameetman/master)
![License](https://img.shields.io/npm/l/@rob.hameetman/type-guards)

# 📦 @rob.hameetman/type-guards

This project is a curated collection of public packages for personal use across
distributed and internal solutions.

- [📦 @rob.hameetman/type-guards](#-robhameetmantype-guards)
  - [💼 Getting Started](#-getting-started)
    - [📚 Prerequisites](#-prerequisites)
    - [📲 Installing](#-installing)
  - [🛥 Deployment](#-deployment)
  - [🧾 Project Dependencies](#-project-dependencies)
  - [🏷 Versioning](#-versioning)
  - [📜 Authors](#-authors)
  - [📄 License](#-license)

## 💼 Getting Started

These instructions will get you a copy of the project up and running on your
local machine for development and testing purposes. See deployment for notes on
how to deploy the project on a live system.

### 📚 Prerequisites

What things you need to install the software and how to install them

- Node v20.5.0+
- NPM v9.8.0+

### 📲 Installing

To install the project, clone and build the repo, then use `npm` to install
dependencies for each package.

```bash
git clone git@bitbucket.org:rob.hameetman.git
cd packages/type-guards
npm i
```

## 🛥 Deployment

Each package is versioned and deployed independently with `npm`:

```bash
npm version patch
npm publish
```

## 🧾 Project Dependencies

- [TypeScript](https://www.typescriptlang.org/) - Implementation language
- [NPM](https://www.npmjs.com/) - Dependency Management

## 🏷 Versioning

I use [SemVer](http://semver.org/) for versioning. For the versions available,
see the [tags on this repository](https://github.com/RobHameetman/packages/tags/).

## 📜 Authors

- **Robert Hameetman** - *<engineering@robhameetman.com>*

See also the list of [contributors](https://github.com/RobHameetman/packages/graphs/contributors) who participated in this project.

## 📄 License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

[header]: /.github/readme-type-guards.png "@rob.hameetman/type-guards"
npm package: @rob4226/ngrx-devtools-nativescript
Description: Nativescript devtools for ngrx
Author: Rob4226
Latest version: 7.0.1

## Looking for maintainers

This repo is looking for maintainers. If you are interested please ping me on <https://twitter.com/ufsa>

# ngrx-devtools-nativescript

Implementation of a devtools monitor similar to those available in [@ngrx/store-devtools](https://github.com/ngrx/store-devtools) for [NativeScript](https://www.nativescript.org/).

## Install

```sh
npm i ngrx-devtools-nativescript
```

## How to use

First of all you should instrument your @ngrx/store using `StoreModule.provideStore(...)`. Check out [@ngrx/devtools readme](https://github.com/ngrx/devtools/blob/master/README.md) for how to do that.

Import the `NativeScriptDevToolsMonitors` in your app(or other) module and add store-dev-tools instrumentation by importing `StoreDevtoolsModule.instrumentStore()`:

```typescript
import { NgModule } from "@angular/core";
import { StoreModule } from '@ngrx/store';
import { NativeScriptDevToolsMonitors } from "ngrx-devtools-nativescript";
import { StoreDevtoolsModule } from '@ngrx/store-devtools';

@NgModule({
  imports: [
    NativeScriptModule,
    NativeScriptDevToolsMonitors,
    StoreModule.provideStore({ ... }),
    StoreDevtoolsModule.instrumentStore()
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
class AppModule { };

```

Use `<ns-dock-monitor>` component inside you application - preferably in the root of the visual tree.

```typescript
import { NSDockMonitor } from "ngrx-devtools-nativescript";

@Component({
    selector: "my-app",
    directives: [NSDockMonitor],
    template: `
    <grid-layout>
        //...
        <ns-dock-monitor screenCover="0.5"></ns-dock-monitor>
    </grid-layout>`
})
export class AppComponent {
    //...
}
```

You can specify what part of the screen should be covered by the dev-tools slideout with the `screenCover` property.

## Example

Example projects:

* [counter](https://github.com/vakrilov/ngrx-devtools-nativescript/tree/master/examples/counter)
* [tic-tac-toe](https://github.com/vakrilov/ngrx-devtools-nativescript/tree/master/examples/tic-tac-toe)
  
## Pure Redux example with Vanilla JS {N} App

* [reduxDemo](https://github.com/shiv19/nativescript-redux-poc)
npm package: @rob8080/eslint-config
Description: A config mostly used by myself, including recommend extends from JS, TS & Vue, also with some additional rules.
Author: rob8080
Latest version: 0.2.1

# @rob8080/eslint-config

A config mostly used by myself, including recommend extends from JS, TS & Vue, also with some additional rules.


# Install

```shell
# Yarn
yarn add --dev eslint @rob8080/eslint-config

# NPM
npm install -D eslint @rob8080/eslint-config
```

* Also add peer dependencies listed below

# Peer Dependencies
package|eslint-config|-base|-ts|-vue
-|-|-|-|-
eslint@>=7|✔️|✔️|✔️|✔️
@typescript-eslint/eslint-plugin@>=4.14.0|✔️||✔️|
@typescript-eslint/parser@>=4.14.0|✔️||✔️|
eslint-plugin-vue@>=7.4.0|✔️|||✔️
vue-eslint-parser@>=7.3.0|✔️|||✔️

# Usage

.eslintrc.js
```javascript
module.exports = {
    // ...
    extends: [
        '@rob8080/eslint-config', // or other package
    ],
    // ...
}
```

# See also:
* [@rob8080/eslint-config-base](https://www.npmjs.com/package/@rob8080/eslint-config-base)
* [@rob8080/eslint-config-ts](https://www.npmjs.com/package/@rob8080/eslint-config-ts)
* [@rob8080/eslint-config-vue](https://www.npmjs.com/package/@rob8080/eslint-config-vue)
npm package: @rob8080/eslint-config-base
Description: A config mostly used by myself, including recommend extends from JS, TS & Vue, also with some additional rules.
Author: rob8080
Latest version: 0.2.1

# @rob8080/eslint-config-base

A config mostly used by myself, including recommend extends from JS, TS & Vue, also with some additional rules.


# Install

```shell
# Yarn
yarn add --dev eslint @rob8080/eslint-config-base

# NPM
npm install -D eslint @rob8080/eslint-config-base
```

* Also add peer dependencies listed below

# Peer Dependencies
package|eslint-config|-base|-ts|-vue
-|-|-|-|-
eslint@>=7|✔️|✔️|✔️|✔️
@typescript-eslint/eslint-plugin@>=4.14.0|✔️||✔️|
@typescript-eslint/parser@>=4.14.0|✔️||✔️|
eslint-plugin-vue@>=7.4.0|✔️|||✔️
vue-eslint-parser@>=7.3.0|✔️|||✔️

# Usage

.eslintrc.js
```javascript
module.exports = {
    // ...
    extends: [
        '@rob8080/eslint-config-base', // or other package
    ],
    // ...
}
```

# See also:
* [@rob8080/eslint-config](https://www.npmjs.com/package/@rob8080/eslint-config)
* [@rob8080/eslint-config-ts](https://www.npmjs.com/package/@rob8080/eslint-config-ts)
* [@rob8080/eslint-config-vue](https://www.npmjs.com/package/@rob8080/eslint-config-vue)
npm package: @rob8080/eslint-config-ts
Description: A config mostly used by myself, including recommend extends from JS, TS & Vue, also with some additional rules.
Author: rob8080
Latest version: 0.2.1

# @rob8080/eslint-config-ts

A config mostly used by myself, including recommend extends from JS, TS & Vue, also with some additional rules.


# Install

```shell
# Yarn
yarn add --dev eslint @rob8080/eslint-config-ts

# NPM
npm install -D eslint @rob8080/eslint-config-ts
```

* Also add peer dependencies listed below

# Peer Dependencies
package|eslint-config|-base|-ts|-vue
-|-|-|-|-
eslint@>=7|✔️|✔️|✔️|✔️
@typescript-eslint/eslint-plugin@>=4.14.0|✔️||✔️|
@typescript-eslint/parser@>=4.14.0|✔️||✔️|
eslint-plugin-vue@>=7.4.0|✔️|||✔️
vue-eslint-parser@>=7.3.0|✔️|||✔️

# Usage

.eslintrc.js
```javascript
module.exports = {
    // ...
    extends: [
        '@rob8080/eslint-config-ts', // or other package
    ],
    // ...
}
```

# See also:
* [@rob8080/eslint-config](https://www.npmjs.com/package/@rob8080/eslint-config)
* [@rob8080/eslint-config-base](https://www.npmjs.com/package/@rob8080/eslint-config-base)
* [@rob8080/eslint-config-vue](https://www.npmjs.com/package/@rob8080/eslint-config-vue)
npm package: @rob8080/eslint-config-vue
Description: A config mostly used by myself, including recommend extends from JS, TS & Vue, also with some additional rules.
Author: rob8080
Latest version: 0.2.1

# @rob8080/eslint-config-vue

A config mostly used by myself, including recommend extends from JS, TS & Vue, also with some additional rules.


# Install

```shell
# Yarn
yarn add --dev eslint @rob8080/eslint-config-vue

# NPM
npm install -D eslint @rob8080/eslint-config-vue
```

* Also add peer dependencies listed below

# Peer Dependencies
package|eslint-config|-base|-ts|-vue
-|-|-|-|-
eslint@>=7|✔️|✔️|✔️|✔️
@typescript-eslint/eslint-plugin@>=4.14.0|✔️||✔️|
@typescript-eslint/parser@>=4.14.0|✔️||✔️|
eslint-plugin-vue@>=7.4.0|✔️|||✔️
vue-eslint-parser@>=7.3.0|✔️|||✔️

# Usage

.eslintrc.js
```javascript
module.exports = {
    // ...
    extends: [
        '@rob8080/eslint-config-vue', // or other package
    ],
    // ...
}
```

# See also:
* [@rob8080/eslint-config](https://www.npmjs.com/package/@rob8080/eslint-config)
* [@rob8080/eslint-config-base](https://www.npmjs.com/package/@rob8080/eslint-config-base)
* [@rob8080/eslint-config-ts](https://www.npmjs.com/package/@rob8080/eslint-config-ts)
npm package: @robakk08/svelte-evaicons
Description: Another take on svelte-eva-icons for Svelte
Author: Robert Hamiga
Latest version: 0.0.3

# svelte-evaicons

[svelte-eva-icons](https://github.com/dylanblokhuis/svelte-eva-icons/) remake with Svelte.

## Install

```bash
yarn add -D @robakk08/svelte-evaicons
```

or use NPM

```bash
npm install --save-dev @robakk08/svelte-evaicons
```

## Usage

```html
<script>
	import { CheckmarkSquareOutlineIcon, CheckmarkSquareIcon, ... } from '@robakk08/svelte-evaicons'
</script>

<ChessIcon size="32" />
<FlipHorizontalIcon size="1.5x" />
```

## Credits

Package heavily inspired by dylanblokhuis's [svelte-feather-icons](https://github.com/dylanblokhuis/svelte-feather-icons).
npm package: @robandzik/id-generator
Description: ## About the project
Latest version: 1.0.1

# ID Generator

## About the project

Random ID generator that randomizes a 10-digit ID (big, small letters & numbers).

## How to use

* Install package by using: npm i @robandzik/id-generator
* Import package into your file
* Call package with parameter reflecting number of digits to be used in ID

## Example of IDs created

* EZyQzcZYfT
* FwJemqxunS
* tpnxLaA2ZR
npm package: @robatbobat/mini-ecs
Description: lightweight ECS library
Author: Neyman Aleksandr
Latest version: 0.1.6

![Build Status](https://github.com/neymanushka/mini-ecs/actions/workflows/build.yml/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/neymanushka/mini-ecs/badge.svg?branch=master&service=github)](https://coveralls.io/github/neymanushka/mini-ecs)
[![NPM](https://img.shields.io/npm/v/@robatbobat/mini-ecs?color=blue)](https://www.npmjs.com/package/@robatbobat/mini-ecs)
[![NPM](https://img.shields.io/npm/dw/@robatbobat/mini-ecs?color=blue)](https://www.npmjs.com/package/@robatbobat/mini-ecs)
[![MIT License](https://img.shields.io/github/license/neymanushka/mini-ecs)](LICENSE)

# lightweight ECS library

## Installation

```
npm install @robatbobat/mini-ecs
```

## Usage

```ts
import { World } from '@robatbobat/mini-ecs';

const world = new World();
```

## Creating Entity

```ts
const entity = world.addEntity();
```

or with string id for fast retrival:

```ts
const entity = world.addEntity('someId');
```

## Components

Components must implements Component interface:

```ts
import { Component } from '@robatbobat/mini-ecs';

export class SomeComponent implements Component {
	prop: 'test';
}
```

```ts
entity.addComponent(new SomeComponent());
entity.addComponent(new SomeOtherComponent());
```

or with chaining:

```ts
entity.addComponent(new SomeComponent()).addComponent(new SomeOtherComponent());
```

## System and Querying

Creating query:

To get all entities that have a specific set of components you must pass array of constructors to createQuery method:

```ts
const query = world.createQuery([SomeComponent, AnotherComponent]);
```

Iterate through entities:

```ts
query.entities.forEach((enemy) => {
	...
});
```

System example:

```ts
import { World, System, Query } from '@robatbobat/mini-ecs';

import { PositionComponent } from '../components/PositionComponent';
import { EnemyComponent } from '../components/EnemyComponent';

export class CollisionSystem implements System {
	world: World;

	enemies: Query;

	constructor(world: World) {
		this.world = world;
		this.enemies = this.world.createQuery([PositionComponent, EnemyComponent]);
	}

	update(dt: number) {
		this.enemies.entities.forEach((enemy) => {
			...
		});
	}
}
```

register system in world:

```ts
world.registerSystem(new CollisionSystem(world));
```

loop through registred systems:

```ts
world.update();
```

## Remove Entity

Entity is not deleted immediately,but marked as removed.

```ts
world.removeEntity(entity);
```

entity will be removed only at the end of `world.update()`

## Example project:

### [live demo ](https://neymanushka.github.io/mini-ecs-example-project)

repo can be found [here](https://github.com/neymanushka/mini-ecs-example-project)

---

## License

Released under the MIT license.
npm package: @robb-lee/ccusage-mcp-server
Description: MCP server for tracking Claude token usage and sending to n8n webhook
Latest version: 1.0.25

# CCUsage MCP Server

Track Claude token usage and send to team spreadsheet automatically.

## Quick Start

### 1. Setup
```bash
npx -y @robb-lee/ccusage-mcp-server@latest --setup
```

When prompted, enter:
- **n8n Webhook URL**: Your team's webhook URL (from n8n workflow)
- **Your Name**: Your name for tracking in the spreadsheet

The setup will automatically:
- Install required dependencies (ccusage CLI)
- Configure webhook and user settings
- Install the `/robb:send-usage` command
- Add the MCP server to Claude Code

### 2. Usage
In Claude Code, use the command:
```
/robb:send-usage
```

Or with a note:
```
/robb:send-usage "Working on project X"
```

Done! Your usage data will be sent to the team spreadsheet automatically.

## Manual Installation (if automatic setup fails)

If the automatic MCP server installation fails, you can add it manually:
```bash
claude mcp add ccusage-tracker -s user -- npx -y @robb-lee/ccusage-mcp-server@latest
```
npm package: @robb_j/chowchow
Description: A modular express wrapper for typescript
Author: Rob Anderson
Latest version: 0.9.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# ChowChow

This package is part of a monorepo, the docs are at the root.

[Take me to the docs →](https://github.com/robb-j/chowchow/#readme)
npm package: @robb_j/chowchow-json-envelope
Description: A json structuring for chowchow
Author: Rob Anderson
Latest version: 0.2.3
Deprecated: This is no longer supported

# Chow Chow | Json Envelope

Provides json response envelopes to [chowchow](https://github.com/robb-j/chowchow),
similar to [api-formatter](https://npmjs.org/package/api-formatter).

[![CircleCI](https://circleci.com/gh/robb-j/chowchow-json-envelope.svg?style=svg)](https://circleci.com/gh/robb-j/chowchow-json-envelope)

```ts
// An example endpoint
export async function showProduct({ req, sendData, sendFail }: Context) {
  if (!req.query.id) {
    sendFail([`Please provide an 'id'`])
  } else {
    let product = await findProduct(req.query.id)
    sendData(product)
  }
}
```

Here's how to configure it:

```ts
import { ChowChow, BaseContext } from '@robb_j/chowchow'
import {
  JsonEnvelopeModule,
  JsonEnvelopeConfig
} from '@robb_j/chowchow-json-envelope'

type Context = BaseContext & JsonEnvelopeConfig

// App entry point
;(async () => {
  let chow = ChowChow.create<Context>()

  // Add the module
  chow.use(new JsonEnvelopeModule({ handleErrors: true }))

  // Adds new methods to the context
  chow.applyRoutes((app, r) => {
    app.get('/', r(ctx => ctx.sendData({ msg: 'Hey!' })))
    app.get('/err', r(ctx => ctx.sendFail(['Something broke :S']), 418))
  })

  // Run chow
  await chow.start()
})()
```

## Features

- Adds a `sendData` & `sendFail` method to the context to send formatted responses
- Defaults `name` & `version` in the envelope from `package.json` values
  - Configure this by passing them to the constructor
- Optionally handle express errors by passing `handleErrors`
  - Any errors thrown from routes will be formatted in the envelope
  - See [Catching errors](#catching-errors) for more

### Success Response, HTTP 200

```json
{
  "meta": {
    "success": true,
    "messages": [],
    "name": "my-fancy-api",
    "version": "v1"
  },
  "data": {
    "msg": "Hey!"
  }
}
```

### Failure Response, HTTP 400

```json
{
  "meta": {
    "success": false,
    "messages": ["Something broke :S"],
    "name": "my-fancy-api",
    "version": "v1"
  },
  "data": null
}
```

## Catching errors

You can pass `handleErrors` to add a chowchow error handler which will catch errors
and send the error message to `sendFail`.

The error handler will look at what was throw to determine how to send back an error.

- It will see if the object is an iterator, looking for [Symbol.iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator).
- It will look for a string directly
- It will use an `Error`'s message

## Dev Commands

```bash
# Lint the source code
npm run lint

# Manually format code
# -> This repo runs prettier on git-stage, so committed code is always formatted
npm run prettier

# Run the unit tests
npm test

# Generate code coverage in coverage/
npm run coverage
```
npm package: @robb_j/chowchow-jwt
Description: Adds jwt signing and verification to chowchow
Author: Rob Anderson
Latest version: 0.1.0
Deprecated: This is no longer supported

# ChowChow | JWT

Adds [jsonwebtoken](https://npm.im/jsonwebtoken) signing and verification to
[chowchow](https://github.com/robb-j/chowchow/)

<!-- toc-head -->
<!-- toc-tail -->

> WIP
npm package: @robb_j/chowchow-pug
Description: Adds pug rendering capabilities to chowchow
Author: Rob Anderson
Latest version: 0.2.0
Deprecated: This is no longer supported

# ChowChow | Pug

Adds [pug](https://pugjs.org/api/getting-started.html) rendering capabilities to
[chowchow](https://github.com/robb-j/chowchow/)

<!-- toc-head -->
<!-- toc-tail -->

> WIP
npm package: @robb_j/gamedoy
Description: A minimalistic fantasy console, kinda like a gameboy, for the web.
Latest version: 0.2.0

# Gamedoy

A minimalistic fantasy console, kinda like a gameboy, for the web.

> Named after [Cowdoy](https://r0b.url.lol/cowdoy)

[Documentation →](https://gamedoy.r0b.io/)

**Notes**

- Try this https://htmlwithsuperpowers.netlify.app/writing/css-module-scripts.html
npm package: @robb_j/md-toc
Description: A CLI to generate a markdown table of contents & insert it in
Author: Rob Anderson
Latest version: 0.3.3

# Markdown Table of Contents Generator

Quickly generate a table of contents from a markdown file and optionally insert it inline.

## Table of Contents

- [Usage](#usage)
  - [Installation](#installation)
  - [Example use](#example-use)
  - [Full usage info](#full-usage-info)
- [API](#api)

## Usage

### Installation

```bash
# Install on a project as a dev dependancy
npm i -D @robb_j/md-toc
```

### Example use

> You can use `npx md-toc` when added as a project dependancy

```bash
# Output a table of contents for a README.md in the current directory
npx @robb_j/md-toc

# Insert a table of contents in the local README.md
# -> Replaces inbetween <!-- toc-head --> and <!-- toc-tail -->
npx @robb_j/md-toc -i

# Output a table of contents for a different file
npx @robb_j/md-toc -f CONTRIBUTING.md

# Use a glob to process multiple files
npx @robb_j/md-toc -f "**/*.md"

# Test a glob to see what it matches
npx @robb_j/md-toc -f "**/*.md" --dry-run
```

### Full usage info

```
Usage: @robb_j/md-toc [options]

A tool for generating a table of contents for readmes

Options:
  -V, --version          output the version number
  -f --file [README.md]  specify where the markdown file(s) you want to process are, accepts a filename or a glob (default: "README.md")
  -i --inline [false]    edit the table of contents inline, it replaces between '<!-- toc-head -->' and <!-- toc-tail --> (default: false)
  --dry-run [false]      perform a dry run, useful for testing your glob
  -h, --help             output usage information
```

## API

You can use this programmatically in node by importing the module,
see [cli.js](/src/cli.js) for detailed usage.

```js
const { tableOfContents, headTag, tailTag } = require('@robb_j/md-toc')

// filename: string
// inline: boolean
tableOfContents(filename, inline)
```

### Development

```bash
# Run the cli when you have the repo checked out
# NOTE: Make sure not to process this readme as it has toc-head/tail comments in for documentation only
node src/cli.js # ...
```

## Future work

- Take file pattern as an argument rather than an option, i.e. `md-toc <...pattern>`, perhaps as a varadic argument

---

> This repo was set up with [robb-j/node-base](https://github.com/robb-j/node-base)
npm package: @robb_j/mockchow
Description: A test framework for chowchow
Author: Rob Anderson
Latest version: 0.1.5
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# ChowChow | mockchow

This package is part of a monorepo, the docs are at the root.

[Take me to the docs →](https://github.com/robb-j/chowchow/#readme)
npm package: @robb_j/puggle-presets
Description: A repo of puggle presets
Author: Rob Anderson
Latest version: 0.9.0

# Puggle presets

My personal presets for
[puggle](https://www.npmjs.com/package/puggle).

## Presets

- [robb-j:ts-node](/src/ts-node.ts)

## Future explorations

- Move back to plugins but in this repo?
- jsx-based syntax for VFile & VDir structures

```ts
root.addChild(
  <VFile name="README.md" contents={targetName} />,
  <VDir name="src">
    <VFile name=".env" contents="NODE_ENV=development" />
  </VDir>
)
```
npm package: @robb_j/r0b-design
Description: This repo / package is the styles for https://r0b.io. It is also used to generate https://ux.r0b.io.
Author: Rob Anderson
Latest version: 0.2.7

# r0b design

This repo / package is the styles for https://r0b.io.
It is also used to generate https://ux.r0b.io.

## What is it?

This repo is a set of css styles for r0b.io, generated with
[sass](https://sass-lang.com/).

There is also a ux site used to visualise css rules for development.
It's based on on [atomic design](http://atomicdesign.bradfrost.com).

The purpose is for my site and its sub-sites to be able to depend on this package
to get all their style needs and I can also develop the styles independently.

## CLI Usage

When cloned locally, there is a CLI to build assets and run a watch server.
Built assets are placed into `dist/`, it contains compressed css and image assets.
The watch server runs on port `8080`, watching for file changes and rebuilding assets.

```
cli

Generate assets

Commands:
  cli build  Generate assets                                           [default]
  cli watch  Watch for changes and serve the site locally

Options:
  --version   Show version number                                      [boolean]
  --website   Generate the ux website                 [boolean] [default: false]
  --verbose   Output debug info                       [boolean] [default: false]
  -h, --help  Show help                                                [boolean]
```

## UX site

Theres a docker build to generate the ux site which builds the assets and serves them with
[nginx](https://www.nginx.com/).

The docker image is pushed here: [robbj/r0b-design](https://hub.docker.com/r/robbj/r0b-design).

> The deployment of this image isn't locked down yet

## Misc

I should link to the font-awesome license: https://fontawesome.com/license

---

> This project was set up by [puggle](https://npm.im/puggle)
npm package: @robbe-luo/nest-kafka
Description: Kafka for NestJS
Author: robbe luo
Latest version: 0.1.3

## NestJs Kafka Client

### Description

A NestJS - KafkaJs Wrapper, wrapping on [KafkaJS](https://github.com/tulios/kafkajs)

### Installation

```shell
npm install @robbe-luo/nest-kafka kafkajs --save
```

## Setup

Import and add the `KafkaModule` to the imports array of the module for which you would like to use Kafka.

#### Asynchronous Module Initialization

Register the `KafkaModule` synchronous with the `forRootAsync()` method:

```typescript
@Module({
  imports: [
    KafkaModule.forRootAsync({
      useFactory: async () => {
        return { clientId: 'client-id', brokers: ['localhost:9092'] };
      },
    }),
  ]
  ...
})
export class AppModule {}
```

#### Synchronous Module Initialization

Register the `KafkaModule` synchronous with the `forRoot()` method:

```typescript
@Module({
  imports: [
    KafkaModule.forRoot({ clientId: 'client-id', brokers: ['localhost:9092'] }),
  ]
  ...
})
export class AppModule {}
```

Full settings can be found: [https://kafka.js.org/docs/configuration](https://kafka.js.org/docs/configuration)

#### Producing Messages

Send messages back to kafka.

```js
import { Injectable } from '@nestjs/common';
import { KafkaService, InjectKafka } from '@robbe-luo/nest-kafka';

@Injectable()
export class TraceCollectorService {
  constructor(@InjectKafka() private readonly kafkaService: KafkaService) {}

  async post(message: string = 'Hello world') {
    const result = await this.kafkaService.sendMessage({
      topic: 'test-topic',
      messages: [{ value: message }],
    });
    return result;
  }
```

Full params can be found: [https://kafka.js.org/docs/producing](https://kafka.js.org/docs/producing)

#### Consuming Messages

Creating the consumer:

```js
@Module({
  imports: [KafkaModule.registryConsumer({ groupId: 'test-group' })],
  providers: [ConsumerService],
})
export class MessageQueueModule {}
```

Subscribing to some topics:

```typescript
@KafkaConsumer({ groupId: 'test-group' })
export class ConsumerService {
    @KafkaSubscribe('test-topic')
    async sub(payload: EachMessagePayload) {
        console.log(payload)
    }
}
```

TODO

* Tests
* registryConsumerAsync

PRs Welcome ❤️
npm package: @robbedchunk/bull-board-api
Description: A Dashboard server API built on top of bull or bullmq with dynamic Redis connections support.
Author: robbedchunk
Latest version: 2.3.0

# <img alt="@bull-board" src="https://raw.githubusercontent.com/felixmosh/bull-board/master/packages/ui/src/static/images/logo.svg" width="35px" /> @bull-board/api 

Core server APIs of `bull-board`.

<p align="center">
  <a href="https://www.npmjs.com/package/@bull-board/api">
    <img alt="npm version" src="https://img.shields.io/npm/v/@bull-board/api">
  </a>
  <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>
<p>

![Overview](https://raw.githubusercontent.com/felixmosh/bull-board/master/screenshots/overview.png)
![UI](https://raw.githubusercontent.com/felixmosh/bull-board/master/screenshots/dashboard.png)

For more info visit the main [README](https://github.com/felixmosh/bull-board#readme)
npm package: @robberfree/is-falsy
Description: Detect whether a value is falsy.
Author: robberfree
Latest version: 1.0.2

# is-falsy

Detect whether a value is falsy in javascript.

## Usage

1. broswer

```html
<script src="./is-falsy.js"></script>
```

2. node

```shell
npm install @robberfree/is-falsy
```

## Reference Documents

https://tc39.github.io/ecma262/#sec-toboolean

https://developer.mozilla.org/en-US/docs/Glossary/Falsy
npm package: @robberphex/bootstrap5-cron-generator
Description: 基于bootstrap5，用来生成quartz cron表达式，可配置弹出窗口的位置。
Author: Robert Lu
Latest version: 1.0.3

### 介绍：

基于bootstrap5，用来生成quartz cron表达式，可配置弹出窗口的位置。

### 使用示例：
1. 引入依赖
   ```html
   <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.css" rel="stylesheet" crossorigin="anonymous">
   <link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.css" rel="stylesheet">
   <link href="./src/cronGen.css" rel="stylesheet">
   <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.js"></script>
   <script src="./src/cronGen.min.js"></script>
   <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.js"></script>
   ```

2. bootstrap form表单：
   ```html
	<div class="container">
		<form role="form" class="form-inline">
			<div class="form-group">
				<label for="cron">Cron</label>
				<input id="cron" class="form-control" />
			</div>
		</form>
	</div>
   ``` 
3. 初始化：
   ```js
	$(function() {
	    $("#cron").cronGen({
	        direction : 'right'
	    });
	});
   ```
npm package: @robbie-c/babel-plugin-dotenv
Description: Load environment variables from .env file using import statement
Author: David Chang
Latest version: 0.1.1

# babel-plugin-dotenv

Loads environment variables from a .env file through `import` statement.

## Installation

```sh
$ npm install babel-plugin-dotenv
```

## Usage

**.babelrc**

```json
{
  "plugins": [["babel-plugin-dotenv", {
      "replacedModuleName": "babel-dotenv"
   }]]
}
```

**.env**

```
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
```

In **whatever.js**

```js
import { DB_HOST, DB_USER, DB_PASS } from "babel-dotenv"
db.connect({
  host: DB_HOST,
  username: DB_USER,
  password: DB_PASS
});
```
npm package: @robbie-cook/bookshop-addon-import-tab
Description: A Storybook addon that gives an example for importing a component
Author: Robbie Cook
Latest version: 1.2.5
Deprecated: Use bookshop-addon-import-tab instead

# Bookshop Addon HTML

This addon for Bookshop adds a tab that displays some import code for each
story. It is forked from [whitespace-se/storybook-addon-html](https://github.com/whitespace-se/storybook-addon-html)

![Animated preview](https://raw.githubusercontent.com/whitespace-se/storybook-addon-html/master/image.gif)

## Getting Started

With NPM:

```sh
npm i --save-dev @robbie-cook/bookshop-addon-import-tab
```

With Yarn:

```sh
yarn add -D @robbie-cook/bookshop-addon-import-tab
```

### Register addon

```js
// .storybook/main.js

module.exports = {
  // ...
  addons: [
    '@robbie-cook/bookshop-addon-import-tab',
    // ...
  ],
};
```
npm package: @robbie-cook/javascript-styleguide
Description: A styleguide for Javascript
Author: Robbie Cook
Latest version: 1.0.1

# Deprecated!

# React Styleguide
A styleguide installer for eslint and Prettier, to provide formatting and linting of code.

The purpose of this repo is to help people write good quality code

## Notable files

* .eslintrc.js - The eslint rules for the guide, based off AirBnB's styleguide, but with some revisions (to be documented later)
* .prettierrc - The rules for Prettier, a code formatter
npm package: @robbie-cook/react-components
Description: A set of react components to use in your projects
Author: Robbie Cook
Latest version: 6.1.30

# React Components

> Some bespoke components used in https://blog.robbie.digital and https://robbie.digital.
> Not recommended for general use.

## Demo

Check out the components here: https://reactcomponents.robbie.digital

## Context

This component library is primarily used in https://blog.robbie.digital.

---

## Examples

```typescript
import "bigiron.css/dist/bigiron.min.css";
import { Button } from "@robbie-cook/react-components";

const MyComponent: React.FC = () => {
  return (
    <Button>Hello!</Button>
  )
}
```

--- 

## Installation

`npm i @robbie-cook/react-components`

Also, add this to your html file (e.g. public/index.html in Create React App)

```html
<link
  href="https://fonts.googleapis.com/css2?family=Lexend+Peta&family=Vollkorn:ital,wght@0,600;0,700;0,800;0,900;1,700&display=swap"
  rel="stylesheet"
/>

and remember to import `bigiron.css` (https://bigiron.robbie.digital) too.
```

---

## Contributing

Contributions to the component APIs will not be possible at the moment, as this package
is core to my blog, and it is very tied to these components.
npm package: @robbinapp/eslint-config
Description: Robbin Eslint Config
Author: Jose Guerrero
Latest version: 1.0.0

# `@robbinapp/eslint-config`

## Usage

**Install**:

yarn: 
```bash
$ yarn add --dev @robbinapp/eslint-config
```

npm:
```bash
$ npm i --save-dev @robbinapp/eslint-config
```

**Edit `.eslint.js`**:

```jsonc
module.exports = {
    extends: ['@robbinapp/eslint-config']
}
```
npm package: @robbinapp/prettier-config
Description: Robbin Prettier Config
Author: Jose Guerrero
Latest version: 1.0.1

# `@robbinapp/prettier-config`

## Usage

**Install**:

yarn: 
```bash
$ yarn add --dev @robbinapp/prettier-config
```

npm:
```bash
$ npm i --save-dev @robbinapp/prettier-config
```

**Edit `package.json`**:

```jsonc
{
  // ...
  "prettier": "@robbinapp/prettier-config"
}
```
npm package: @robbinapp/ui-kit-web
Description: Robbin Ui Kit Web
Author: Jose Guerrero
Latest version: 3.2.0

# @robbinapp/ui-kit-web
[![Release](https://github.com/Robbin-App/ui-kit-web/actions/workflows/release.yml/badge.svg)](https://github.com/Robbin-App/ui-kit-web/actions/workflows/release.yml)
npm package: @robbinbaauw/eslint-config
Description: My personal ESLint config
Author: Robbin Baauw
Latest version: 0.0.1

# eslint-config

## Installation
```bash
yarn add @robbinbaauw/eslint-config --dev
```

## Usage
### Vue project
**.eslintrc.js**
```js
module.exports = {
    root: true,
    env: {
        node: true
    },
    extends: [
        "plugin:vue/vue3-recommended",
        "eslint:recommended",
        "@vue/typescript/recommended",
        "@vue/prettier",
        "@robbinbaauw"
    ],
    parser: "vue-eslint-parser",
    parserOptions: {
        ecmaVersion: 2020
    },
};
```

### Typescript  project
**.eslintrc.js**
```js
module.exports = {
    extends:  ["@robbinbaauw"],
};
```
npm package: @robbo23/radix-react-navigation-menu
Description: This code is based on @radix-ui/react-navigation-menu with modifications to improve SEO. The menu has been modified to render all NavigationMenuContent elements in the DOM tree by default and not removed when not visible.
Latest version: 1.2.2

# `@robbo23/radix-react-navigation-menu`

This code is based on @radix-ui/react-navigation-menu with modifications to improve SEO. The menu has been modified to
render all NavigationMenuContent elements in the DOM tree by default and not removed when not visible.

## Installation

```sh
$ yarn add @robbo23/radix-react-navigation-menu
```

or

```sh
$ npm install @robbo23/radix-react-navigation-menu
```

or

```sh
$ pnpm install @robbo23/radix-react-navigation-menu
```

## Usage

View official `@radix-ui/react-navigation-menu` docs [here](https://radix-ui.com/primitives/docs/components/navigation-menu).
npm package: @robbot/robbot-core
Description: Core of RobBot, a Discord bot
Author: Robert Smieja
Latest version: 0.0.13

# RobBot-Core

![NPM Version](https://img.shields.io/npm/v/@robbot/robbot-core)
![NPM Downloads](https://img.shields.io/npm/dw/@robbot/robbot-core)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/robbot-discord/robbot-core/Node%20CI)
![Codecov](https://img.shields.io/codecov/c/github/robbot-discord/robbot-core)
![NPM License](https://img.shields.io/npm/l/@robbot/robbot-core)

Warning! This is currently pre-release software. The API _will_ change until version 1.0!

## Description

"Core" of the RobBot Discord bot.
Handles the "boring" things such as:

- Clean start-up
- Clean shut-down
- Error-handling
- Logging
- Configuration
- Exposing functions to extend behavior
npm package: @robby-rabbitman/nx-plus-nx-http-cache
Description: HTTP handler for integrating custom cache solutions in Nx workspaces.
Author: Robby Rabbitman
Latest version: 0.10.0

[![NPM downloads per week](https://img.shields.io/npm/dw/%40robby-rabbitman%2Fnx-plus-nx-http-cache?logo=npm)](https://www.npmjs.com/package/@robby-rabbitman/nx-plus-nx-http-cache)
[![NPM version](https://img.shields.io/npm/v/%40robby-rabbitman%2Fnx-plus-nx-http-cache?logo=npm)](https://www.npmjs.com/package/@robby-rabbitman/nx-plus-nx-http-cache)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=robby-rabbitman-nx-plus--nx-http-cache&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=robby-rabbitman-nx-plus--nx-http-cache)

# @robby-rabbitman/nx-plus-nx-http-cache

A http handler that implements the [Nx Remote Caching OpenAPI](https://nx.dev/recipes/running-tasks/self-hosted-caching#open-api-specification) for integrating a custom cache solution.

Checkout the [azurite blob storage example](../../examples/nx-http-cache-azurite/README.md).

## Usage

```ts
import { createServer } from 'http';
import {
  nxHttpCacheHandler,
  NxCache,
} from '@robby-rabbitman/nx-plus-nx-http-cache';

// TODO: make sure to implement your caching solution
class MyCache
  implements
    NxCache
{
  get: (
    hash: string,
  ) => Promise<Buffer>;

  has: (
    hash: string,
  ) => Promise<boolean>;

  set: (
    hash: string,
    data: Buffer,
  ) => Promise<void>;
}

const server =
  createServer(
    nxHttpCacheHandler(
      new MyCache(),
      {
        readAccessToken:
          'my-read-access-token',
        writeAccessToken:
          'my-write-access-token',
      },
    ),
  );

server.listen(
  3000,
);
```