open-index/open-npm huggingface dataset:
npm package: @kevinmoral.es/my-button-component
Description: A web component for a button
Author: Kevin Morales
Latest version: 0.0.7

# Design token automation (build and deploy components)
This is a companion project to [token-demo-src](https://github.com/nyan-matt/token-demo-src), an example design token build pipeline.

This repo contains a sample component built in [Stencil](https://stenciljs.com) documented in [Storybook](https://storybook.js.org/) that consumes design token pipeline outputs (css variables) for a themeable button component. 

The repository has a [companion blog post](https://matthewrea.com/blog/design-token-automation-from-figma-to-storybook/) if you'd like more context.

## High-level workflow
### [`token-demo-src`](https://github.com/nyan-matt/token-demo-src)
- Watch for design token changes
- Transform tokens
- Output css variables
- Push css variables to [`stencil-storybook-token-demo`](https://github.com/nyan-matt/stencil-storybook-token-demo)

### [`stencil-storybook-token-demo`](https://github.com/nyan-matt/stencil-storybook-token-demo)
- Watch for css variable changes
- Trigger new stencil / storybook build
- Deploy to [Github Pages](https://nyan-matt.github.io/stencil-storybook-token-demo/?path=/story/button--multi-theme)


## Running locally
### Stencil
`npm start`

### Storybook
`npm run storybook`

### Build Storybook
`npm run build-storybook` - /doc folder configured
npm package: @kevinoconnell/mcpkit
Description: Easy setup for MCPs with Browserbase - run browser automation anywhere with just an API key
Author: Kevin O'Connell
Latest version: 1.0.9

# MCPKit

> Easy setup for MCPs with Browserbase. Run browser automation anywhere with just an API key.

## What is MCPKit?

**MCPKit** is a CLI tool that generates [Stagehand](https://github.com/browserbase/stagehand) MCP servers for any website. With this, an LLM can do any kind of web flow.

## Quick Start

### Installation

```bash
npm install -g @kevinoconnell/mcpkit
```

### Setup

Set up your Browserbase API key and llm model secrets:
```bash
mcpkit secrets
```

### Create Your First MCP Server

```bash
# Create an MCP server for any website
mcpkit create https://mcpkit.sh

# Or use interactive mode
mcpkit create
```
At some point in the above, you will be prompted to sign in via a Browserbase session.

## CLI Commands

### `mcpkit create <url>`
Generate an MCP server for a website with AI-powered discovery.

**Arguments:**
- `url` (optional): The website URL. If omitted, you'll be prompted interactively.

**Examples:**
```bash
mcpkit create https://news.ycombinator.com
mcpkit create  # Interactive mode
```

### `mcpkit contexts`
Manage saved authentication contexts for websites.

**Actions:**
- `list`: Show all saved contexts
- `show <domain>`: Display details for a specific context
- `delete <domain>`: Remove a context

**Examples:**
```bash
mcpkit contexts list
mcpkit contexts show github.com
mcpkit contexts delete mcpkit.sh
mcpkit contexts create mcpkit.sh
```

### `mcpkit secrets`
Set up and manage secrets for browserbase, as well as your model of choice

**Examples:**
```bash
mcpkit secrets  # Interactive setup
```

### `mcpkit help`
Display help information and available commands.

### `mcpkit version`
Show the current version of MCPKit.

**Note:** For detailed documentation, examples, and guides, visit **[mcpkit.sh](https://mcpkit.sh)**

## Testing Generated MCP Servers

After running `mcpkit create`, test your generated server:

1. Navigate to the created folder:
```bash
cd mcp-stagehand-{domain}/
```

3. Test with the MCP Inspector:
```bash
npx @modelcontextprotocol/inspector node dist/index.js
```

You should see a screen like this:

![Hacker News MCP Example](HNMCP.png)

Alternatively, you can install into claude code with

```bash
claude mcp add --transport stdio "your-server-name" -- node /absolute/path/to/dist/index.js
```



## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

### Development Setup

Within the repo, run:

```bash
npm install && npm run build && npm link
```

Now you can run a local instance of MCPKit for testing :)

## License

MIT
npm package: @kevinoid/dotnet-identifier-case
Description: Transform a string to PascalCase according to Microsoft's .NET Capitalization Conventions.
Author: Kevin Locke
Latest version: 1.0.0

.NET Identifier Case
====================

[![Build Status](https://img.shields.io/github/actions/workflow/status/kevinoid/dotnet-identifier-case/node.js.yml?branch=main&style=flat&label=build)](https://github.com/kevinoid/dotnet-identifier-case/actions?query=branch%3Amain)
[![Coverage](https://img.shields.io/codecov/c/github/kevinoid/dotnet-identifier-case/main.svg?style=flat)](https://app.codecov.io/gh/kevinoid/dotnet-identifier-case/branch/main)
[![Dependency Status](https://img.shields.io/librariesio/release/npm/@kevinoid/dotnet-identifier-case.svg?style=flat)](https://libraries.io/npm/@kevinoid%2Fdotnet-identifier-case)
[![Supported Node Version](https://img.shields.io/node/v/@kevinoid/dotnet-identifier-case.svg?style=flat)](https://www.npmjs.com/package/@kevinoid/dotnet-identifier-case)
[![Version on NPM](https://img.shields.io/npm/v/@kevinoid/dotnet-identifier-case.svg?style=flat)](https://www.npmjs.com/package/@kevinoid/dotnet-identifier-case)

Transform a string to PascalCase according to [Microsoft's .NET Capitalization
Conventions](https://docs.microsoft.com/dotnet/standard/design-guidelines/capitalization-conventions) similarly to [`change-case`](https://www.npmjs.com/package/change-case).

## Introductory Example

```js
import dotnetCase from '@kevinoid/dotnet-identifier-case';

dotnetCase('TEST_VALUE'); //=> "TestValue"
```

## Installation

[This package](https://www.npmjs.com/package/@kevinoid/dotnet-identifier-case) can be
installed using [npm](https://www.npmjs.com/), either globally or locally, by
running:

```sh
npm install @kevinoid/dotnet-identifier-case
```

## Recipes

More examples can be found in the [test
specifications](https://kevinoid.github.io/dotnet-identifier-case/spec).

## API Docs

To use this module as a library, see the [API
Documentation](https://kevinoid.github.io/dotnet-identifier-case/api).

## Contributing

Contributions are appreciated.  Contributors agree to abide by the [Contributor
Covenant Code of
Conduct](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html).
If this is your first time contributing to a Free and Open Source Software
project, consider reading [How to Contribute to Open
Source](https://opensource.guide/how-to-contribute/)
in the Open Source Guides.

If the desired change is large, complex, backwards-incompatible, can have
significantly differing implementations, or may not be in scope for this
project, opening an issue before writing the code can avoid frustration and
save a lot of time and effort.

## License

This project is available under the terms of the [MIT License](LICENSE.txt).
See the [summary at TLDRLegal](https://tldrlegal.com/license/mit-license).
npm package: @kevinold/react-scripts
Description: Configuration and scripts for Create React App.
Latest version: 2.1.5

# react-scripts

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

- [Getting Started](https://facebook.github.io/create-react-app/docs/getting-started) – How to create a new app.
- [User Guide](https://facebook.github.io/create-react-app/) – How to develop apps bootstrapped with Create React App.
npm package: @kevinorriss/chatroom-server
Description: A React and Express chatroom using SocketIO
Author: Kevin Orriss
Latest version: 2.0.1

# Chatroom

A React and Express chatroom using SocketIO

![Screenshot](screenshot.jpg)

## Installing

### Client
```
npm install @kevinorriss/chatroom-component@2.0.0 react@17.0.2 react-dom@17.0.2
```

### Server
```
npm install @kevinorriss/chatroom-server@2.0.0 express@4.17.1
```

## Usage

### Client
```javascript
// import the component and CSS styles
import Chatroom from '@kevinorriss/chatroom-component'
import '@kevinorriss/chatroom-component/dist/styles.css'

...

// This token should be generated on the server and passed to the user
var token = jwt.sign({ username: 'username' }, 'thisismychatroomsecret')
```

```html
<Chatroom token={token} uri="http://localhost:5000" path="/socketio/chatroom"/>
```

### Server
```javascript
// import the server
import ChatroomServer from '@kevinorriss/chatroom-server'

// setup the express server as normla
const app = express()
const httpServer = http.createServer(app)
httpServer.listen(5000)

// create the chatroom server, passing in your express server
new ChatroomServer(httpServer, '/socketio/chatroom', 'thisismychatroomsecret')
```

## Development
Within the root folder, in a terminal, run:
```
npm start
```
This will concurrently run the server, component and example React app in watch mode.

**Configurable Username**

The react app accepts a URL param to control the username, this allows you to open the chat in multiple tabs and fake being different users. Simply use the following URL:

```
http://localhost:3000/chat?username=Kevin
```

## Tests

### Server
```
cd server
npm test
```

### Component
```
cd component
npm test
```

## Author

* **Kevin Orriss** - [orriss.io](http://orriss.io)
npm package: @kevinorriss/chatroom-types
Description: Enums used between the chatroom socket and client packages
Author: Kevin Orriss
Latest version: 1.0.1

# Chatroom Types

Enums used between the chatroom socket and client packages

## Prerequisites

This package does not have any prerequisites

## Installing

```
yarn add @kevinorriss/chatroom-types
```

## Author

* **Kevin Orriss** - [orriss.io](http://orriss.io)

## License

This project is licensed under the ISC License
npm package: @kevinorriss/tappy-plane
Description: Tappy plane is a clone of the popular Flappy Bird game, created in the Phaser HTML5 game framework.
Author: Kevin Orriss
Latest version: 1.0.2

# Tappy Plane

Tappy plane is a clone of the popular Flappy Bird game, created in the Phaser HTML5 game framework.

A simple game created to experiment with Phaser games in [React](https://www.npmjs.com/package/react).

![Tappy Plane](https://github.com/kevinorriss/tappy-plane/blob/master/cover.png?raw=true)

## How to play
Simply click or tap anywhere on the game scene to make the plane ascend and try to fly safely between as many rocks as you can.

## Requirements
- [Phaser v3.55.x](https://www.npmjs.com/package/phaser/v/3.55.2)
- A resource server to host the game assets

## Usage
You can use this package directly with Phaser like so:
```js
import Phaser from 'phaser'
import TappyPlane from '@kevinorriss/tappy-plane'

const tappyPlane = new Phaser.Game({
    ...TappyPlane,
    scale: {
        ...TappyPlane.scale,
        parent: 'tappy-plane',
        fullscreenTarget: 'tappy-plane'
    },
    loader: { 
        ...TappyPlane.loader, 
        baseURL: 'http://localhost:4566/',
        path: 'images/tappy-plane'
    }
})
```

By overriding the scale object, you can specify the DOM element by ID where you want Phaser to place the HTML5 canvas. The same element can also be specified when in fullscreen mode otherwise the scaling and centering won't work.

The loader scene sets the baseURL and path values which are prepended to all load calls when loading the game assets.

## Game Assets

This game was created for a [React](https://www.npmjs.com/package/react) application so the assets do not get included in the package so that they can be lazy loaded.

You can download the assets for this game over on [GitHub](https://github.com/kevinorriss/tappy-plane/tree/master/src/assets).
npm package: @kevinpaulconnor/react-icon-picker
Description: simple react icon picker
Author: kevinpaulconnor
Latest version: 1.0.0
Deprecated: false

# React IconPicker

Forked from https://www.npmjs.com/package/react-icon-picker
for bugfix


## Usage

```js
import * as React from 'react';
import IconPicker from 'react-icon-picker';

const icons = [
  'fas fa-camera',
  'fas fa-fish',
  'fas fa-align-center',
  'fas fa-align-justify'
];

const App = () => {

  const [state, setState] = React.useState({
    icon: ''
  });

  return (<>
    <span className={state.icon}></span>
    <IconPicker 
      icons={icons} 
      defaultValue="fas fa-camera" 
      onChange={(icon) => {
        setState({
          ...state,
          icon
        })
      }}
    />
  </>);
}
```
npm package: @kevinpollet/option.ts
Description: Option monad for TypeScript
Author: kevinpollet
Latest version: 1.0.0

# option.ts <!-- omit in toc -->

[![Build Status](https://github.com/kevinpollet/option.ts/workflows/build/badge.svg)](https://github.com/kevinpollet/option.ts/actions)
![TypeScript Version](https://img.shields.io/badge/TypeScript-3.x-blue.svg)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE.md)

Option monad for TypeScript.

## Table of Contents <!-- omit in toc -->

- [Install](#install)
- [Usage](#usage)
- [Type safety](#type-safety)
- [Contributing](#contributing)
- [License](#license)

## Install

```shell
$ npm install --save @kevinpollet/option.ts
```

## Usage

```ts
import { from } from "@kevinpollet/option.ts";

const user: User | undefined = findById(42);

const name: string = from(user)
  .map(value => value.getName())
  .getOrElse("No Name");
```

💡 You may have noticed that `Option` monad does not play well with ES6 `Promise`. The following example shows that you need to write a lot of boilerplate code.

```ts
import { from } from "@kevinpollet/option.ts";

const user: Promise<Option<User>> = findById(42);

const name: Promise<Option<string>> = from(user).then(promiseValue =>
  promiseValue.map(value => value.getName())
);
```

To reduce this boilerplate `option.ts` adds support for asynchronous `Option`:

```ts
import { fromPromise } from "@kevinpollet/option.ts";

const user: Promise<Option<User>> = findById(42);

const name: PromiseOption<string> = fromPromise(user).map(value =>
  value.getName()
);
```

## Type safety

You're strongly encouraged to add the `strictNullChecks` flag to your TypeScript compiler options. From TypeScript documentation:

> In strict null checking mode, the null and undefined values are not in the domain of every type and are only assignable to themselves and any (the one exception being that undefined is also assignable to void).

With this flag the following code will not compile. Without `strictNullChecks` a `TypeError` will be thrown at runtime:

```ts
Some(null); // Compilation error
Some(undefined); // Compilation error
```

## Contributing

Contributions are welcome!

Want to file a bug, request a feature or contribute some code?

1. Check out the [Code of Conduct](./CODE_OF_CONDUCT.md).
2. Check for an existing issue corresponding to your bug or feature request.
3. Open an issue to describe your bug or feature request.

## License

[MIT](./LICENSE.md)
npm package: @kevinpollet/tsconfig
Description: Shareable TypeScript project configuration
Author: kevinpollet
Latest version: 0.1.0

# @kevinpollet/tsconfig &middot; [![Build Status](https://travis-ci.com/kevinpollet/tsconfig.svg?branch=master)](https://travis-ci.com/kevinpollet/tsconfig)

Shareable TypeScript project configuration.

## Install

```bash
$ npm install --save-dev @kevinpollet/tsconfig
```

## Extend configuration

```json
{
  "extends": "@kevinpollet/tsconfig"
}
```

👉 See https://www.typescriptlang.org/docs/handbook/tsconfig-json.html for available configuration options.

## License

See [LICENSE.md](./LICENSE.md)
npm package: @kevinpqh/squeezebox
Description: Angular simple accordion component
Author: kevinpqh
Latest version: 1.0.1

# Squeezebox
Simple Angular accordion component with smooth transitions/animations.
This package is an update of [squeezebox](https://www.npmjs.com/package/squeezebox)

<img alt="Screenshot 1" width="300" src="https://raw.githubusercontent.com/asotog/squeezebox/master/screenshot-1.png">

### Live Sample
Running sample can be seen [here](http://plnkr.co/edit/S9S8NBP1Ha8JKM6QjjmT?p=preview) , but this is not for real use case, so for real usage take a look at the following references: installation via npm, typescript usage, etc

### Installation via npm
` npm i @kevinpqh/squeezebox`

### Typescript Usage
Import the module wherever is going to be used:

`import { SqueezeBoxModule } from '@kevinpqh/squeezebox';`



Import the module also in your app module, like:

```
@NgModule({
  imports:      [BrowserModule, SqueezeBoxModule], // here
  declarations: [AppComponent],
  bootstrap:    [AppComponent]
})
export class AppModule { }

```

Start using it in the component template:

```
<squeezebox>
    <sb-item>
        <sb-item-head>Title 1</sb-item-head>
        <sb-item-body>Lorem ipsum dolor sit amet</sb-item-body>
    </sb-item>
</squeezebox>
```

or iterate a data list

```
<squeezebox>
    <sb-item  *ngFor="let item of itemsList">
        <sb-item-head>{{item.title}}</sb-item-head>
        <sb-item-body>{{item.description}}</sb-item-body>
    </sb-item>
</squeezebox>
```

### Styles
Styles needs to be included or imported, also feel free to modify the styles:
```
@import '@kevinpqh/squeezebox/assets/styles/styles.css';
```

### Inputs

*   **multiple:boolean** (default: true) => this attribute enable/disable the multiple item expanded at the same time, for example: `... <squeezebox [multiple]="false"> ...` 
*   **collapsed:boolean** (default: true) => this attribute enable/disable collapse from the beginning when component is rendered, for example: `... <sb-item [collapsed]="false"> ...`  
*   **collapsed:boolean** (default: true) => this attribute enable/disable collapse from the beginning when component is rendered, for example: `... <sb-item [collapsed]="false"> ...`  

### Outputs
*   **onToggled** => this output is triggered everytime item is expanded or collapsed, returns `true` if collapsed or `false` if expanded, for example:
```
<sb-item  *ngFor="let item of itemsList" (onToggled)="itemWasToggled($event)">
   ...
</sb-item>

... 

itemWasToggled(event) {
    console.log('collapsed:', event);
}
...
```
### Methods
*   **refresh** => This method is useful when accordion is hidden for example when using tabs or panels that go visible and hidden. It can be called from a SqueezeBox reference via `@ViewChild` or `@ViewChildren`, for example following code can refresh all the available squeezeboxes in the current component :
```
...
@ViewChildren(SqueezeBox) squeezeboxes: QueryList<SqueezeBox>;
...

...
onTabActive(event:Event) {
    event.preventDefault();
    this.squeezeboxes.toArray().forEach(function(s) { 
        s.refresh();
    });
}
...
```
npm package: @kevinrabun/judges-cli
Description: CLI wrapper for the Judges code review toolkit.
Author: kevinrabun
Latest version: 3.129.9

# @kevinrabun/judges-cli

Standalone CLI package for the [Judges Panel](https://github.com/KevinRabun/judges) — 45 specialized judges that evaluate code for security, quality, compliance, and 40 more dimensions.

## Install

```bash
npm install -g @kevinrabun/judges-cli
```

## Usage

```bash
# Evaluate code
judges eval src/app.ts
judges eval src/ --format sarif --output report.sarif
judges eval src/app.ts --judge cybersecurity
judges eval src/app.ts --preset strict --fail-on-findings

# List judges and regulatory frameworks
judges list
judges list --frameworks

# Auto-fix findings
judges fix src/app.ts --apply

# Agentic skills
judges skill ai-code-review --file src/app.ts
judges skill security-review --file src/api.ts --format json
judges skills

# Self-teaching
judges codify-amendments          # bake benchmark amendments into judge files
judges codify-amendments --dry-run
```

## Configuration

Create a `.judgesrc.json` in your project root:

```json
{
  "preset": "strict",
  "regulatoryScope": ["GDPR", "PCI-DSS"],
  "disabledJudges": ["accessibility"],
  "failOnFindings": true
}
```

See the [full configuration reference](https://github.com/KevinRabun/judges#configuration) for all options.

## Packages

- **`@kevinrabun/judges-cli`** — This package. Binary `judges` for CI/CD pipelines.
- **`@kevinrabun/judges`** — Programmatic API + MCP server.
- **VS Code extension** — [`kevinrabun.judges-panel`](https://marketplace.visualstudio.com/items?itemName=kevinrabun.judges-panel).
npm package: @kevinrobertandrews/lightpay
Description: Reusable Stripe payment flows for modern web apps.
Author: Kevin Andrews
Latest version: 0.1.4

# @kevinrobertandrews/lightpay

> Reusable Stripe payment flows for modern web apps.  
> One function call. One session. Zero boilerplate.

---

## ✨ Features

- ✅ Framework-agnostic
- 🔐 Secure Stripe abstraction
- 🧠 Type-safe configuration
- ⚡ Easy checkout session creation
- 🧩 Ideal for monorepos or modular APIs

---

## 🚀 Getting Started

### 1. Install

```bash
pnpm add @kevinrobertandrews/lightpay
# or
npm install @kevinrobertandrews/lightpay
```

### 2. Configure Lightpay

```ts
import { configureLightpay } from "@kevinrobertandrews/lightpay";

const lightpay = configureLightpay({
  stripeSecretKey: process.env.STRIPE_SECRET_KEY!,
  successUrl: "https://yourapp.com/success",
  cancelUrl: "https://yourapp.com/cancel",
});
```

### 3. Create a Checkout Session

```ts
const session = await lightpay.createCheckoutSession({
  priceId: "price_123",
  customerEmail: "user@example.com",
});

return session.url;
```
npm package: @kevinrobertandrews/logger
Description: A simple logger.
Author: Kevin Andrews
Latest version: 0.0.5
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Logger
My super cool logger.

```
npm i --save-dev @kevinrobertandrews/logger
```

## Features
- A visible default log message for quick debugging.
- Logs date and time.
- Zero dependencies.
- Zero config.
npm package: @kevinrodriguez-io/pigment-core
Description: A powerful library that provides color-conversions, palette/scheme generation, color manipulation and many more features intended to provide a great UX.
Author: Kevin Rodríguez
Latest version: 1.4.0

# @kevinrodriguez-io/pigment-core 🌈 - Pigment's engine

![Features](https://user-images.githubusercontent.com/6248571/73604650-c2279000-4559-11ea-8dfd-76d8fa5e9497.png)

- Color conversions between:
  - HEX
  - RGB
  - HSL
  - LAB
  - XYZ
- 24 Hand-Picked Flat Colors in both shades (Light and Dark)
- Color shades generation
- Find most similar hand-picked Flat color from another color
- Get contrasting color text (Black / White) for another color
- Generate Color Schemes:
  - Analogous
  - Complementary
  - Triadic
- Compatible with Chameleon Framework's Sketch, PhotoShop and Storyboard [plugins](https://github.com/viccalexander/Chameleon/tree/master/Extras).

## Installing

```bash
npm i @kevinrodriguez-io/pigment-core --save
```
or
```bash
yarn add @kevinrodriguez-io/pigment-core
```

## Usage

- Wrap your color * Supported formats: HEX, RGB, HSL

```ts
const hex = '#E74C3C'
const color = new Color(hex)
```

- Get complementary color

```ts
color.complementaryColor
```

- Get most similar Hand-Picked Flat color

```ts
color.nearestFlatColor
```

- Get all color shades with a 25% separation

```ts
color.all(25)
color.nearestFlatColor.all(25) // Flat-color shades
```

- Get color tints/shades (Array or single item) with a 25% separation

```ts
color.tints(25)
color.shades(25)
color.tint(25) // Just one color
color.shade(25) // Just one color
```

- Get analogous color scheme (Regular & Flat)

```ts
color.analogousColorScheme
color.analogousFlatColorScheme
```

- Get complementary color scheme

```ts
color.complementaryColorScheme
color.complementaryFlatColorScheme
```

- Get triadic color scheme

```ts
color.triadicColorScheme
color.triadicFlatColorScheme
```

- Get contrasting text color (Black/White)

```ts
color.contrastingTextColor
color.contrastingFlatTextColor // Flat version
```
npm package: @kevinscheeren/strom
Description: Git Extension CLI to bootstrap GitFlow.
Author: Kevin Scheeren
Latest version: 1.0.0

# @kevinscheeren/strom

## Introduction

A CLI distributed through npm to automatically execute GitFlow workflows.

## GitFlow

<img src="https://wac-cdn.atlassian.com/dam/jcr:cc0b526e-adb7-4d45-874e-9bcea9898b4a/04%20Hotfix%20branches.svg?cdnVersion=202">

### What is GitFlow?

Giflow is an alternative Git branching model that involves the use of feature branches and multiple primary branches. It was first published and made popular by [Vincent Driessen at nvie](https://nvie.com/posts/a-successful-git-branching-model/). Compared to trunk-based development, Giflow has numerous, longer-lived branches and larger commits. Under this model, developers create a feature branch and delay merging it to the main trunk branch until the feature is complete. These long-lived feature branches require more collaboration to merge and have a higher risk of deviating from the trunk branch. They can also introduce conflicting updates.

Gitflow can be used for projects that have a scheduled release cycle and for the [DevOps best practice](https://www.atlassian.com/devops/what-is-devops/devops-best-practices) of [continuous delivery](https://www.atlassian.com/continuous-delivery). This workflow doesn’t add any new concepts or commands beyond what’s required for the [Feature Branch Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow). Instead, it assigns very specific roles to different branches and defines how and when they should interact. In addition to feature branches, it uses individual branches for preparing, maintaining, and recording releases. Of course, you also get to leverage all the benefits of the Feature Branch Workflow: pull requests, isolated experiments, and more efficient collaboration. [(Source / read more)](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)

### How to use this CLI?

(No **Windows** Support - GitBash & WSL should work, but are not officially supported)
`strom` can also be replaced with `stm`.

```bash
# init a project
strom init

# features
strom feature start [feature-name]
strom feature finish [feature-name]

# hotfixes
strom hotfix start [hotfix-name]
strom hotfix finish [hotfix-name]

# releases (prefix version code with v manually)
strom release start v[release-number]
strom release finish v[release-number]
```

## Installation

### Requirements

- [Git](https://git-scm.com/) is installed
- [NodeJS](https://nodejs.org/en/) is installed
- [npm](https://www.npmjs.com/) is installed

### Set Up

**Official Releases:**

You can use it locally for specific NodeJS Projects

```bash
npm install --save-dev @kevinscheeren/strom
```

or install it globally

```bash
npm install -g @kevinscheeren/strom
```

**Beta Versions / Pre-Release Versions:**

For beta versions clone the `develop` branch, cd into it and execute the following command.

```bash
npm install && npm run build && npm link
```
npm package: @kevinseghetti/react-data-grid
Description: Excel-like grid component built with React, with editors, keyboard navigation, copy & paste, and the like
Author: Adazzle
Latest version: 7.0.0-alpha.25

# react-data-grid [![npm-badge]][npm-url] [![bundlesize-badge]][bundlesize-url] [![coverage-badge]][azure-url]

[npm-badge]: https://img.shields.io/npm/v/react-data-grid/alpha.svg
[npm-url]: https://www.npmjs.com/package/react-data-grid
[bundlesize-badge]: https://img.shields.io/bundlephobia/minzip/react-data-grid/alpha.svg
[bundlesize-url]: https://bundlephobia.com/result?p=react-data-grid@alpha
[coverage-badge]: https://img.shields.io/azure-devops/coverage/nstepi181/react-data-grid/1/alpha.svg?style=flat-square
[azure-url]: https://dev.azure.com/nstepi181/react-data-grid/_build/latest?definitionId=1&branchName=alpha

## Install

```sh
npm install react-data-grid
```

## Usage

```jsx
import DataGrid from 'react-data-grid';

const columns = [{ key: 'id', name: 'ID' }, { key: 'title', name: 'Title' }];
const rows = [{ id: 1, title: 'Title 1' }, ...];
const rowGetter = rowNumber => rows[rowNumber];

const Grid = () => {
  return <DataGrid
    columns={columns}
    rowGetter={rowGetter}
    rowsCount={rows.length}
    minHeight={500} />;
}
```

## Exports
Aside from the grid this package exports:

name                   | source                                  |
-----------------------|-----------------------------------------|
RowComparer            | [RowComparer](./src/RowComparer.js)     |
RowsContainer          | [RowsContainer](./src/RowsContainer.js) |
Row                    | [Row](./src/Row.js)                     |
Cell                   | [Cell](./src/Cell.js)                   |
HeaderCell             | [HeaderCell](./src/HeaderCell.js)       |
shapes                 | [shapes](./src/PropTypeShapes)          |
npm package: @kevinsensis/askyellowutilfn
Description: Various util functions for use with AskYellowChatbot
Latest version: 2.2.3

[![npm (scoped)]](https://img.shields.io/npm/v/@kevinsensis/testnpm.svg)
[![npm bundle size (minified)]](https://img.shields.io/bundlephobia/min/@kevinsensis/testnpm.svg)

test npm package

Removes all spaces from a string
npm package: @kevinsensis/testnpm
Description: Removes all spaces from a string
Latest version: 5.1.0

[![npm (scoped)]](https://img.shields.io/npm/v/@kevinsensis/testnpm.svg)
[![npm bundle size (minified)]](https://img.shields.io/bundlephobia/min/@kevinsensis/testnpm.svg)

test npm package

Removes all spaces from a string
npm package: @kevinsperrine/react-native-screenshot-detector
Description: react-native ios screenshot detector
Author: gcarling
Latest version: 1.0.1


# react-native-screenshot-detector

Note: this project is designed to work with the newer version of React Native library imports, i.e. React Native >= 0.40.0

## Getting started

`$ npm install react-native-screenshot-detector --save`

`$ react-native link react-native-screenshot-detector`


## Usage

# iOS
```objectivec
#import <RNScreenshotDetector/RNScreenshotDetector.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  // ... setup code

  // Somewhere React Native will have placed something like
  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL...]

  // Somewhere below this you can setup the screenshot detector to listen for events
  RNScreenshotDetector* screenshotDetector = [[RNScreenshotDetector alloc] init];
  [screenshotDetector setupAndListen:rootView.bridge];
}
```

# In JS
```javascript
import * as ScreenshotDetector from 'react-native-screenshot-detector';

// Subscribe callback to screenshots:
this.eventEmitter = ScreenshotDetector.subscribe(function() { ... });

// Unsubscribe later (a good place would be componentWillUnmount)
ScreenshotDetector.unsubscribe(this.eventEmitter);
```
npm package: @kevinsperrine/react-native-simple-compass
Description: Simple module exposing the compass on iOS and Android
Author: Viktor Nilsson
Latest version: 2.0.4

# react-native-simple-compass

## Getting started

`$ npm install react-native-simple-compass --save`

### Mostly automatic installation

`$ react-native link react-native-simple-compass`

### Manual installation

#### iOS

##### Using CocoaPods

To install with CocoaPods, add the following to your Podfile:

```
pod 'react-native-simple-compass', :path => '../node_modules/react-native-simple-compass'
```

Then run pod install and rebuild your project.

##### Manual installation

1. In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`
2. Go to `node_modules` ➜ `react-native-simple-compass` and add `RNSimpleCompass.xcodeproj`
3. In XCode, in the project navigator, select your project. Add `libRNSimpleCompass.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`
4. Run your project (`Cmd+R`)<

#### Android

1. Open up `android/app/src/main/java/[...]/MainActivity.java`

- Add `import com.reactlibrary.RNSimpleCompassPackage;` to the imports at the top of the file
- Add `new RNSimpleCompassPackage()` to the list returned by the `getPackages()` method

2. Append the following lines to `android/settings.gradle`:
   ```
   include ':react-native-simple-compass'
   project(':react-native-simple-compass').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-simple-compass/android')
   ```
3. Insert the following lines inside the dependencies block in `android/app/build.gradle`:
   ```
     compile project(':react-native-simple-compass')
   ```

## Usage

```javascript
import RNSimpleCompass from 'react-native-simple-compass';

const degree_update_rate = 3; // Number of degrees changed before the callback is triggered
RNSimpleCompass.start(degree_update_rate, degree => {
  console.log('You are facing', degree);
  RNSimpleCompass.stop();
});
```
npm package: @kevintcoughlin/podr-server
Description: Podr Server
Author: Kevin T. Coughlin
Latest version: 1.3.0

# Podr - Server
[![Build Status](https://img.shields.io/travis/KevinTCoughlin/podr-server.svg?style=flat-square)](https://travis-ci.org/KevinTCoughlin/podr-server)
[![Coverage Status](https://img.shields.io/coveralls/KevinTCoughlin/podr-server.svg?style=flat-square)](https://coveralls.io/github/KevinTCoughlin/podr-server?branch=master)
[![npm version](https://img.shields.io/npm/v/podr-server.svg?style=flat-square)](https://www.npmjs.com/package/podr-server)
[![dependencies](https://img.shields.io/david/kevintcoughlin/podr-server.svg?style=flat-square)](https://www.npmjs.com/package/podr-server)

# Deployment
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)

# Demo
[![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/7a31589c9f924c2cda82)