open-index/open-npm huggingface dataset:
npm package: @ouroboros/browser
Description: Package to handle common browser functionality.
Author: Chris Nasr
Latest version: 0.5.5

# @ouroboros/browser
[![npm version](https://img.shields.io/npm/v/@ouroboros/browser.svg)](https://www.npmjs.com/package/@ouroboros/browser) ![MIT License](https://img.shields.io/npm/l/@ouroboros/browser.svg)

A library of classes to manage functionality in browsers.

## Installation

```bash
npm install @ouroboros/browser
```

## clipboard

Import clipboard into your code

```javascript
import clipboard from '@ouroboros/browser/clipboard';
```

or

```javascript
import { clipboard } from '@ouroboros/browser';
```

`clipboard.copy()`

## cookies

Import Cookies into your code

```javascript
import cookies from '@ouroboros/browser/cookies';
```

or

```javascript
import { cookies } from '@ouroboros/browser';
```

`get()`, `remove()`, `set()`

## devices

Import Devices into your code

```javascript
import devices, { hasPointer, isMobile } from '@ouroboros/browser/devices';
```

or

```javascript
import { devices } from '@ouroboros/browser';
```

`devices.hasPointer()`

## hash

Import hash into your code

```javascript
import hash from '@ouroboros/browser/hash';
```

or

```javascript
import { hash } from '@ouroboros/browser';
```

`hash.get()`, `hash.set()`, `hash.subscribe()`, `hash.unsubscribe()`

## network

Import network into your code

```javascript
import network from '@ouroboros/browser/network';
```

or

```javascript
import { network } from '@ouroboros/browser';
```

default (`Subscribe`)

## pageVisibility

Import pageVisibility into your code

```javascript
import pageVisibility from '@ouroboros/browser/pageVisibility';
```

or

```javascript
import { pageVisibility } from '@ouroboros/browser';
```

default (`Subscribe`)

## safeLocalStorage

Import safeLocalStorage into your code

```javascript
import safeLocalStorage from '@ouroboros/browser/safeLocalStorage';
```

or

```javascript
import { safeLocalStorage } from '@ouroboros/browser';
```

`safeLocalStorage.bool()`, `safeLocalStorage.json()`, `safeLocalStorage.string()`

## size

Import size into your code

```javascript
import size from '@ouroboros/browser/size';
```

or

```javascript
import { size } from '@ouroboros/browser';
```

default (`Subscribe`), `size.compare()`, `size.greaterThan()`, `size.lessThan()`
npm package: @ouroboros/react-errors
Description: Errors Component. Shows error messages sent to it.
Author: Chris Nasr
Latest version: 1.0.1

# @ouroboros/react-errors

[![npm version](https://img.shields.io/npm/v/@ouroboros/react-errors.svg)](https://www.npmjs.com/package/@ouroboros/react-errors) ![MIT License](https://img.shields.io/npm/l/@ouroboros/react-errors.svg)

A React component that displays error messages.

## Installation
npm
```bash
npm install @ouroboros/react-errors
```

## Using
```javascript
import Errors, { addError } from '@ouroboros/react-errors';

function SomeComponent(props) {
  return (
    <div>
      <button onClick={() => addError('Test Error!')}>Add Error</button>
    </div>
  );
}

function App(props) {
  return (
    <SomeComponent />
    <Errors />
  );
}
```

![Example image of component in use](example.png)

## Props

| Name | Type | Required | Description |
|--|--|--|--|
| position | "bottom" \| "top" | no | Default, "bottom" |

## addError

The `addError` function takes a string, or an object. In the case of an object the data will be JSON stringified and then displayed in a PRE elemenent to maintain the structure.

## Style

You can set your own styles using the #oc_errors ID, or import / include `node_modules/@ouroboros/react-errors/style.css`.
npm package: @ouroboros/react-hooks
Description: Common hooks used with React
Author: Chris Nasr
Latest version: 1.0.2

# @ouroboros/react-hooks

[![npm version](https://img.shields.io/npm/v/@ouroboros/react-hooks.svg)](https://www.npmjs.com/package/@ouroboros/react-hooks) ![MIT License](https://img.shields.io/npm/l/@ouroboros/react-hooks.svg)

Common hooks used in React

## Installation

```bash
npm install @ouroboros/react-hooks
```

## online

Keeps track of whether the client is connected to the internet or not. Uses the
standard [@ouroboros/subscribe](https://www.npmjs.com/package/@ouroboros/subscribe) interface of .set() / .get(), .subscribe() / .unsubscribe()
and returns a simple `true` for online, and `false` for offline.

## useOnline

A React hook that uses [`online`](#online) internally to return a `boolean`

```javascript
import { useOnline } from '@ouroboros/react-hooks/online';

function App() {
	const online = useOnline();

	return (
		<p>Browser is currently {online ? 'online' : 'offline'}</p>
	)
}
```

## useSize

A react hook that uses `size` from [@ouroboros/browser](https://www.npmjs.com/package/@ouroboros/browser#size) internally to return the current width of the screen in terms of:

| value | name | range |
| ----- | ---- | ----- |
| 'xs' | extra small | 0 - 599 |
| 'sm' | small | 600 - 899 |
| 'md' | medium | 900 - 1199 |
| 'lg' | large | 1200 - 1535 |
| 'xl' | extra large | 1536 - ∞ |

```javascript
import { greaterThan } from '@ouroboros/browser/size';
import { useSize } from '@ouroboros/react-hooks';

function App() {

	const size = useSize();

	return (
		<div>
			<p>Current size is {size}</p>
			{greaterThan(size, 'sm') ? (
				<div id="desktop" />
			) : (
				<div id="mobile_tablet" />
			)}
		</div>
	);
}
```

## useWidth

A react hook that always returns the current width of the client in pixels and updates when the browser is resized.

```javascript
import { useWidth } from '@ouroboros/react-hooks';

function App() {

	const width = useWidth();

	return (
		<p>The current width of the screen is {width}px.</p>
	);
}
```
npm package: @ouroboros/react-modal
Description: Modal Component
Author: Chris Nasr
Latest version: 1.0.2

# @ouroboros/react-modal

[![npm version](https://img.shields.io/npm/v/@ouroboros/react-modal.svg)](https://www.npmjs.com/package/@ouroboros/react-modal) ![MIT License](https://img.shields.io/npm/l/@ouroboros/react-modal.svg)

A React component that displays content in a box that overlays the rest of the site.

## Installation
npm
```bash
npm install @ouroboros/react-modal
```

## Using
```javascript
import Modal from '@ouroboros/react-modal';
import React, { useState } from 'react';

import '@ouroboros/react-modal/style.css';

function App(props) {
  const [ modal, modalSet ] = useState(false);

  return (
    <button onClick={() => modalSet(true)}>Open Modal</button>
    {modal &&
      <Modal
        onClose={() => modalSet(false)}
        xIcon={ <i className="fa-solid fa-circle-xmark" /> }
      >
        <div>
          <p>This is modal content</p>
        </div>
      </Modal>
    }
  );
}
```

![Example image of Modal component closed](https://github.com/ouroboroscoding/react-modal/blob/main/images/closed.png)

And then after the user clicks

![Example image of Modal component open](https://github.com/ouroboroscoding/react-modal/blob/main/images/open.png)

## Props

| Name | Type | Required | Description |
|--|--|--|--|
| maxWidth | string \| number | no | The maximum allowable width for the modal dialog, can be sent a string as is, or a number (pixels) |
| noBackground | bool | no | Set to `true` to make the modal transparent |
| onClose | callback | no | Called when the user clicks outside the modal, or on the X `xIcon` if provided |
| open | boolean | no | Set to `false` to hide the modal without destroying the Modal or children |
| width | string \| number | no | The width to set the modal dialog, can be sent a string as is, or a number (pixels) |
| xIcon | string \| element | no | If set, whatever is passed will be displayed in the top right corner and trigger the onClose prop (if it was also passed) when clicked |

## CSS

If you want to change any aspect of the modal's styling, you can do so by modifying any of the following styles, listed from root to children.

.oc_modal, .oc_modal_outer, .oc_modal_inner, .oc_modal_inner_close, oc_modal_inner_content.

For example, if you wanted to increase the z-index of the entire modal component to 100, and also change the background color of the main content from white to a light blue.

```css
.oc_modal {
  z-index: 100;
}

.oc_modal_inner {
  background-color: rgb(121, 165, 199);
}
```
npm package: @ouroboros/react-native-snackbar
Description: A notification/popup component for displaying messages to users
Author: Chris Nasr
Latest version: 0.1.4

# @ouroboros/react-native-snackbar
[![npm version](https://img.shields.io/npm/v/@ouroboros/react-native-snackbar.svg)](https://www.npmjs.com/package/@ouroboros/react-native-snackbar) ![Supports Android, iOS, Expo](https://img.shields.io/badge/platforms-android%20|%20ios%20|%20expo%20-lightgrey.svg) ![MIT License](https://img.shields.io/npm/l/@ouroboros/react-native-snackbar.svg)

A cross platform react-native-snackbar for showing user's messages and allowing them to
take an extra action, like UNDO

## Installation

react-native

```bash
npm install @ouroboros/react-native-snackbar
```

expo

```bash
expo install @ouroboros/react-native-snackbar
```

## Getting Started

Import Snackbar in your main App file
```javascript
import { Snackbar } from '@ouroboros/react-native-snackbar';
```

Add it to the app
```javascript
export default function App() {
    return (
        <View>
            <Test />
            <Snackbar />
        </View>
    );
}
```

Import addMessage into other components (or in the App)

```javascript
import { addMessage } from '@ouroboros/react-native-snackbar';
```

Add messages from other components

```javascript
export default function Test(props) {
    return (
        <View>
            <TouchableOpacity onPress={() => addMessage('Hello!')}>
                <Text>Click Me!</Text>
            </TouchableOpacity>
        </View>
    );
}
```

### addMessage

The addMessage function can be passed a single string, resulting in the default
duration with no action, or it can be passed the following structure

```typescript
{
    text: string;
    duration?: number;
    action?: {
        text: string;
        onPress: () => void;
    }
}
```

Duration is milliseconds (1000 = 1 second) before the popup disappears, default is 1000.

Action is an additional touchable opacity, added on the right hand side of the popup, which will call the onPress callback if pressed.
npm package: @ouroboros/react-offline
Description: Offline Component. Displayed when the browser is no longer connected to the network/internet.
Author: Chris Nasr
Latest version: 1.0.2

# @ouroboros/react-offline

[![npm version](https://img.shields.io/npm/v/@ouroboros/react-offline.svg)](https://www.npmjs.com/package/@ouroboros/react-offline) ![MIT License](https://img.shields.io/npm/l/@ouroboros/react-offline.svg)

A React component that displays a message when the user is offline.

## Installation
npm
```bash
npm install @ouroboros/react-offline
```

## Using
```javascript
import Offline from '@ouroboros/react-offline';

function App(props) {

	return (
		<Offline />
	);
}
```

![Example image of component in use](example.png)

## Props

| Name | Type | Required | Description |
|--|--|--|--|
| message | string | no | Default, "You are not online! Please check your network connection." |
| position | "bottom" \| "top" | no | Default, "top" |

## Style

You can set your own styles using the #oc_offline ID, or import / include `node_modules/@ouroboros/react-offline/style.css`.
npm package: @ouroboros/react-portal
Description: Portal Component. Appends children to the end of body, disconnecting it from its own parent Component.
Author: Chris Nasr
Latest version: 1.0.3

# @ouroboros/react-portal

[![npm version](https://img.shields.io/npm/v/@ouroboros/react-portal.svg)](https://www.npmjs.com/package/@ouroboros/react-portal) ![MIT License](https://img.shields.io/npm/l/@ouroboros/react-portal.svg)

A React component that allows you to add children to the end of the body no matter how deep it and its parents are in the DOM.

## Installation
npm
```bash
npm install @ouroboros/react-portal
```

## Using
```javascript
import Portal from '@ouroboros/react-portal';

function App(props) {

  return (
    <div>
      <div>
        <div>
          <div>
            <Portal>
              <p>I am the last text in the body!</p>
            </Portal>
          </div>
          <p>I am above the portal</p>
        </div>
        <p>I am also above the portal</p>
      </div>
      <p>I am still above the portal</p>
    </div>
  );
}
```

![Example image of component in use](example.png)

## Props

| Name | Type | Required | Description |
| ---- | ---- | -------- | ----------- |
| className | string | no | CSS class name |
| id | string | no | Element ID |
| onClick | function | no | A function that takes a single MouseEvent parameter |
| style | object | no | React.CSSProperties |

All props will be passed to the DIV element created and attached to the body. If no ID is passed, a universally unique ID will be created and added.
npm package: @ouroboros/react-radiobuttons-mui
Description: RadioButtons using Material-UI
Author: Chris Nasr
Latest version: 1.1.0

# @ouroboros/react-radiobuttons-mui

[![npm version](https://img.shields.io/npm/v/@ouroboros/react-radiobuttons-mui.svg)](https://www.npmjs.com/package/@ouroboros/react-radiobuttons-mui) ![MIT License](https://img.shields.io/npm/l/@ouroboros/react-radiobuttons-mui.svg)

A React component using real buttons to simulate radio inputs

## Installation
npm
```bash
npm install @ouroboros/react-radiobuttons-mui
```

## Using
```javascript
import RadioButtons from '@ouroboros/react-radiobuttons-mui';

function App(props) {

	const [type, setType] = useState('email');

	return (
		<RadioButtons
			border={true}
			gridContainerProps={{spacing: 2}}
			gridItemProps={{ xs: 12, sm: 6 }}
			label="Type"
			onChange={setType}
			options={[
				{text: 'E-Mail', value: 'email'},
				{text: 'SMS', value: 'sms'}]}
			value={type}
			variant="grid"
		/>
	);
}
```

![example](https://raw.githubusercontent.com/ouroboroscoding/react-radiobuttons-mui/develop/images/example.png?raw=true)

## Props

| Name | Type | Required | Description |
|--|--|--|--|
| border | boolean | No | Display a border around the buttons |
| buttonProps | object | No | The props to pass to the Button components |
| defaultValue | string | No | The default/initial value of the radio |
| gridContainerProps | object | No | The props to pass to the Grid container if variant = grid |
| gridItemProps | object | No | The props to pass to the Grid items if variant = grid |
| label | string | No | The string to display above the buttons |
| onChange | function | No | The function called with the new value (string) => void |
| options | object[] | Yes | The list of value and text of each button, if text is not passed, value is used for both |
| value | string | No | The current value |
| variant| 'free' \| 'grid' | No | The method to use to display the buttons. Using 'free' simply creates one button after the other with no styling. Using 'grid' allows you to set Grid props for containers (gridContainerProps) and items (gridItemProps) |
npm package: @ouroboros/react-testing
Description: Testing
Author: Chris Nasr
Latest version: 1.0.2

# @ouroboros/react-testing

[![npm version](https://img.shields.io/npm/v/@ouroboros/react-testing.svg)](https://www.npmjs.com/package/@ouroboros/react-testing) ![MIT License](https://img.shields.io/npm/l/@ouroboros/react-testing.svg)

A React component that displays testing info. Can be useful for debugging, but should only be rendered during development / staging and never in production.

## Installation
npm
```bash
npm install @ouroboros/react-testing
```

## Using
```javascript
import Testing from '@ouroboros/react-testing';

function App(props) {

	return (
		<Testing />
	);
}
```

## Props

| Name | Type | Required | Description |
|--|--|--|--|
| border | boolean | No | Display a border around the buttons |
npm package: @ouroboros/styling
Description: CSS for Ouroboros Coding projects
Author: Chris Nasr
Latest version: 0.1.2

# @ouroboros/styling
[![npm version](https://img.shields.io/npm/v/@ouroboros/styling.svg)](https://www.npmjs.com/package/@ouroboros/styling) ![MIT License](https://img.shields.io/npm/l/@ouroboros/styling.svg)

Simple CSS Styling to bootstrap Ouroboros Coding projects.

## Install

```bash
npm install @ouroboros/styling
```

## Import Full CSS
```javascript
import '@ouroboros/styling/oc-styling.css';
```
or
```javascript
import '@ouroboros/styling/oc-styling.min.css';
```

## Import Full SASS
```javascript
import '@ouroboros/styling/src/index.scss';
```

## Import Individual SASS
```javascript
import '@ouroboros/styling/src/card.scss';
import '@ouroboros/styling/src/grid.scss';
```
npm package: @ouroboros/subscribe
Description: A class that allows adding easy subscription and notification abilities by extending it
Author: Chris Nasr
Latest version: 1.3.2

# @ouroboros/subscribe

[![npm version](https://img.shields.io/npm/v/@ouroboros/subscribe.svg)](https://www.npmjs.com/package/@ouroboros/subscribe) ![MIT License](https://img.shields.io/npm/l/@ouroboros/subscribe.svg)

A class that allows adding easy subscription and notification abilities by
extending it

## Installation
npm
```bash
npm install @ouroboros/subscribe
```

## Extending Subscribe
To add subscription and notification to your class it's as easy as extending it from Subscribe
##### MyClass.js
```javascript
import Subscribe from '@ouroboros/subscribe';

export default class MyClass extends Subscribe {

	// Constructor
	constructor() {
		super('Hello, World!');
	}

	// do class stuff
}
```

MyForm is passed an instance of MyClass via props.my
##### MyForm.js
```javascript
import React from 'react';

export default function MyForm(props) {
	return (
		<button onClick={props.my.set('Goodbye')}>
			Say Goodbye
		</button>
	);
}
```
MyComponent subscribes to changes to `oMy` and adds each one it's notified about to the list of `messages`
##### MyComponent.js
```javascript
import MyClass from './MyClass';
import MyForm from './MyForm';
import React, { useEffect, useState } from 'react';

// Create a new instance of the subscription
const oMy = new MyClass();

// Create a React Component
function MyComponent(props) {

	const [ messages, setMessages ] = useState([]);

	useEffect(() => {

		// Subscribe to MyClass instance
		const r = oMy.subscribe(data => {

			// Add each new message we are notified about to the end of the list
			setMessages(val => [...messages, data]);
		})

		// Unsubscribe
		return () => {
			r.unsubscribe();
		}

	}, []);

	return () {
		<div>
			<MyForm my={o} />
			{msgs.map(s =>
				<p>{s}</p>
			)}
		</div>
	}
}
```

In the example, clicking the button a single time would result in

	<div>
		<button>Say Goodbye</button>
		<p>Hello, World!</p>
		<p>Goodbye</p>
	</div>

And a second click...

	<div>
		<button>Say Goodbye</button>
		<p>Hello, World!</p>
		<p>Goodbye</p>
		<p>Goodbye</p>
	</div>
npm package: @ourodemi/idaas-js
Description: Front-end JS SDK to implement Ourodemi's IDaaS API
Author: Ourodemi
Latest version: 1.4.5


# @ourodemi/idaas-js

A Javascript library that implements Ourodemi's 
Identity as a Service API. The HTTP API for IDaaS
can be found on our [website here](https://ourodemi.com/docs)


## Features

- Manage Access & Refresh Tokens
- Queue API Requests
- Obtain & Validate Captchas
- Create New User Accounts

**Note**: for React Native, see 
[@ourodemi/idaas-rn](https://www.npmjs.com/package/@ourodemi/idaas-rn)
## Usage/Examples

Wrap your API calls inside the `.request()` function as shown below

```javascript
import IDaaSModule from '@ourodemi/idaas-js';

var AuthModule = new IDaaSModule('myapp-xyz.ourodemi.com');

AuthModule.request(function handler(accessToken){
    // your backend request here
    axios.get('myapi.com/endpoint', {
        headers:{
            'x-access-token': accessToken
        }
    }).then({data, status} => {
        // handle response
    }).catch(err => {
        // handle error
    });
});

```

**Note: You must use the same instance of IDaaS module for all
your requests**


## API Reference

#### Available methods

| Method | Returns     | Description                |
| :-------- | :------- | :------------------------- |
| auth(`{email, username, password}`) | `true\|false` | Attempts to authenticate with the specified credentials |
| deauth() | `true\|false` | Sends a request to invalidate the refresh token and removes it from local storage |
| isAuthenticated() | `true\|false` | Checks if the refresh token is valid |
| setDeauthHandler() | `void` | Sets the deauthHandler() which is invoked when the current session is invalidated |
| getUser() | `object` | Returns current user's profile. See user object below |

#### User Object
```json
{
    "user_id": "cdad02ec-1e45-458b-8f94-c180a6ef95da",
    "username": "talha",
    "name": "Talha",
    "email": "talha@example.com",
    "groups": [
        "standard"
    ]
}
```
## Badges

[![MIT License](https://img.shields.io/apm/l/atomic-design-ui.svg?)](https://github.com/tterb/atomic-design-ui/blob/master/LICENSEs)


## Feedback

If you have any feedback, please reach out to us at developers@ourodemi.com
npm package: @ourongxing/db0
Description: Lightweight SQL Connector
Latest version: 0.1.6

# DB0

<!-- automd:badges color=yellow -->

[![npm version](https://img.shields.io/npm/v/db0?color=yellow)](https://npmjs.com/package/db0)
[![npm downloads](https://img.shields.io/npm/dm/db0?color=yellow)](https://npmjs.com/package/db0)

<!-- /automd -->

> [!IMPORTANT]
> DB0 development is in the early stages. Track progress via [GitHub issues](https://github.com/unjs/db0/issues).

DB0 is a lightweight SQL connector:

✅ Works with several SQL [connectors](https://db0.unjs.io/connectors).

✅ Can be [integrated](https://db0.unjs.io/integrations) with ORMs and embeded into frameworks.

✅ Provides a simple but elegant query API out of the box.

👉 Read [📚 Documentation](https://db0.unjs.io)

## Contribution

<details>
  <summary>Local development</summary>

- Clone this repository
- Install the latest LTS version of [Node.js](https://nodejs.org/en/)
- Enable [Corepack](https://github.com/nodejs/corepack) using `corepack enable`
- Install dependencies using `pnpm install`
- Run tests using `pnpm dev` or `pnpm test`

</details>

<!-- /automd -->

## License

<!-- automd:contributors license=MIT author="pi0" -->

Published under the [MIT](https://github.com/unjs/db0/blob/main/LICENSE) license.
Made by [@pi0](https://github.com/pi0) and [community](https://github.com/unjs/db0/graphs/contributors) 💛
<br><br>
<a href="https://github.com/unjs/db0/graphs/contributors">
<img src="https://contrib.rocks/image?repo=unjs/db0" />
</a>

<!-- /automd -->

<!-- automd:with-automd -->

---

_🤖 auto updated with [automd](https://automd.unjs.io)_

<!-- /automd -->
npm package: @ourschool/sonner
Description: An opinionated toast component for React.
Author: Emil Kowalski
Latest version: 1.5.0

https://github.com/vallezw/sonner/assets/50796600/59b95cb7-9068-4f3e-8469-0b35d9de5cf0

[Sonner](https://sonner.emilkowal.ski/) is an opinionated toast component for React. You can read more about why and how it was built [here](https://emilkowal.ski/ui/building-a-toast-component).

## Usage

To start using the library, install it in your project:

```bash
npm install sonner
```

Add `<Toaster />` to your app, it will be the place where all your toasts will be rendered.
After that you can use `toast()` from anywhere in your app.

```jsx
import { Toaster, toast } from 'sonner';

// ...

function App() {
  return (
    <div>
      <Toaster />
      <button onClick={() => toast('My first toast')}>Give me a toast</button>
    </div>
  );
}
```

## Documentation

Find the full API reference in the [documentation](https://sonner.emilkowal.ski/getting-started).
npm package: @ourservings/belts
Description: [![Node.js CI](https://github.com/OurServings/belts/actions/workflows/publish.yml/badge.svg)](https://github.com/OurServings/belts/actions/workflows/publish.yml)
Author: Willem van Heemstra
Latest version: 1.1.0

[![Node.js CI](https://github.com/OurServings/belts/actions/workflows/publish.yml/badge.svg)](https://github.com/OurServings/belts/actions/workflows/publish.yml)

[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)

# Belts

| Color | URL |
| -- | -- |
| Summer's Dark Blue | [Summer's Dark Blue](./summers-dark-blue/README.md) |
| Summer's Light Brown | [Summer's Light Brown](./summers-light-brown/README.md) |
npm package: @ourservings/cereals
Description: [![Node.js CI](https://github.com/OurServings/cereals/actions/workflows/publish.yml/badge.svg)](https://github.com/OurServings/cereals/actions/workflows/publish.yml)
Author: Willem van Heemstra
Latest version: 1.2.0

[![Node.js CI](https://github.com/OurServings/cereals/actions/workflows/publish.yml/badge.svg)](https://github.com/OurServings/cereals/actions/workflows/publish.yml)

[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)

# Cereals