open-index/open-npm huggingface dataset:
npm package: @snickbit/out
Description: Cross-platform pretty output for your terminal or browser console.
Latest version: 2.2.1

# @snickbit/out

Cross-platform pretty output for your terminal or browser console.

## Installation

```bash
pnpm add @snickbit/out
```

```bash
npm add @snickbit/out
```

## Usage

Simply import the `out` function and call it with your message.

```js
import out from '@snickbit/out'

// Multiple import/require options
// import {out} from '@snickbit/out';
// const out = require('@snickbit/out');

out('Standard out')
out.info('Info log')
out.info('Info log', 'with multiple', 'arguments')
out.info('Info log', 'long', 'with multiple', 'arguments', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque suscipit sed velit sit amet laoreet. Fusce et nisl vel nunc pulvinar aliquam. Maecenas euismod dui tortor, ut fermentum ex interdum ut. Integer a facilisis felis, sed posuere massa. Curabitur suscipit semper ligula eu tristique. Curabitur dictum eros ac mattis vulputate. Donec dictum mauris sed ipsum vulputate, vitae congue dui mollis. Maecenas pulvinar eleifend blandit.')
out.info('Info log', 'with different', {message: 'Variable types'})
out.info.broken.log('Info log', 'with multiple', 'arguments', 'broken')
out.warn('This is a warning log')
out.verbose.warn.success('This is verbose warning success')
out.verbose.success.warn('This is verbose success warning ')
out.block.warn('This is a block warning log')
out.block.warn('This is a block warning log')
out.block.heading('my heading').debug('This is a block debug log with a heading')
out.heading('non block heading').info('hello')
out.block('my block')
out.verbose.text('Verbose text')
out.info('Inspecting object', out)
```

### Browsers

In browsers, you just need to include it in your document somewhere and an instance of `out` is created and attached to the `window` object so it can be used globally in most environments.

```html

<html lang="en">
<head>
	<script src="../lib/index.js" type="text/javascript"></script>
	<title></title>
</head>
<body>
<div>My Out testing page</div>
<script lang="js">
	out.write('Hello, world!')
	window.out.info('I love out!')
</script>
</body>
</html>
```

## Browser

<img src="assets/browser.png" alt="browser screenshot" />

## Terminal

<img src="assets/terminal.png" alt="terminal screenshot" />

## Documentation

### [API Docs](https://github.com/snickbit/out/blob/main/docs/README.md)

### [CHANGELOG](https://github.com/snickbit/out/blob/main/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/out/blob/main/LICENSE)
npm package: @snickbit/pinia-plugin-debounce
Description: Pinia plugin for debouncing actions
Latest version: 1.0.33

# @snickbit/pinia-plugin-debounce

<!--START_SECTION:readmes-description-->

Pinia plugin for debouncing actions

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/pinia-plugin-debounce
```

```bash
npm add @snickbit/pinia-plugin-debounce
```

## Documentation

### [API Docs](https://github.com/snickbit/pinia/blob/main/packages/pinia-plugin-debounce/README.md)

### [CHANGELOG](https://github.com/snickbit/pinia/blob/main/packages/pinia-plugin-debounce/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/pinia/blob/main/LICENSE)
npm package: @snickbit/pinia-plugin-init
Description: Pinia plugin for running an action when the store is initialized
Latest version: 1.0.40

# @snickbit/pinia-plugin-init

<!--START_SECTION:readmes-description-->

Pinia plugin for running an action when the store is initialized

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/pinia-plugin-init
```

```bash
npm add @snickbit/pinia-plugin-init
```

## Documentation

### [API Docs](https://github.com/snickbit/pinia/blob/main/packages/pinia-plugin-init/README.md)

### [CHANGELOG](https://github.com/snickbit/pinia/blob/main/packages/pinia-plugin-init/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/pinia/blob/main/LICENSE)
npm package: @snickbit/pinia-plugin-loading
Description: Pinia plugin to track loading state of all asynchronous actions
Latest version: 1.0.39

# @snickbit/pinia-plugin-loading

<!--START_SECTION:readmes-description-->

Pinia plugin to track loading state of all asynchronous actions

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/pinia-plugin-loading
```

```bash
npm add @snickbit/pinia-plugin-loading
```

## Documentation

### [API Docs](https://github.com/snickbit/pinia/blob/main/packages/pinia-plugin-loading/README.md)

### [CHANGELOG](https://github.com/snickbit/pinia/blob/main/packages/pinia-plugin-loading/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/pinia/blob/main/LICENSE)
npm package: @snickbit/pinia-plugin-persist
Description: Pinia plugin to persist state using LocalForage
Latest version: 1.0.44

# @snickbit/pinia-plugin-persist

<!--START_SECTION:readmes-description-->

Pinia plugin to persist state using LocalForage

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/pinia-plugin-persist
```

```bash
npm add @snickbit/pinia-plugin-persist
```

## Documentation

### [API Docs](https://github.com/snickbit/pinia/blob/main/packages/pinia-plugin-persist/README.md)

### [CHANGELOG](https://github.com/snickbit/pinia/blob/main/packages/pinia-plugin-persist/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/pinia/blob/main/LICENSE)
npm package: @snickbit/plural
Description: Pluralize and singularize any English word.
Latest version: 1.0.20

# @snickbit/plural

<!--START_SECTION:readmes-description-->

- Pluralizes strings
- Singularizes strings
- Written in TypeScript
- Zero dependencies

<!--END_SECTION:readmes-description-->

## Installation
```bash
pnpm add @snickbit/plural
```

```bash
yarn add @snickbit/plural
```

```bash
npm i @snickbit/plural
```

## Usage

```js
import {plural, singular} from '@snickbit/plural'

// or in Node.js
// const {plural, singular} = require('@snickbit/plural')

console.log(plural('test')) //=> "tests"
console.log(plural('test', 0)) //=> "tests"
console.log(plural('test', 1)) //=> "test"
console.log(plural('test', 2)) //=> "tests"

// Singularize
console.log(singular('tests')) //=> "test"
console.log(singular('test')) //=> "test"
console.log(singular('test', 0)) //=> "tests"
console.log(singular('test', 2)) //=> "tests"

```

## Documentation

### [API Docs](./docs/README.md)

### [CHANGELOG](CHANGELOG.md)

## Acknowledgements

### Based on [pluralize](https://github.com/plurals/pluralize)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickbit/progress
Description: Minimal terminal progress bars for Node.js
Latest version: 1.0.2

# @snickbit/progress

<!--START_SECTION:readmes-description-->

Minimal terminal progress for Node.js

<!--END_SECTION:readmes-description-->

## Installation
```bash
pnpm add @snickbit/progress
```

```bash
yarn add @snickbit/progress
```

```bash
npm i @snickbit/progress
```

## Documentation

### [API Docs](../../README.md)

### [CHANGELOG](CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickbit/quasar
Description: My custom Quasar components. Use with caution.
Latest version: 0.2.30

# @snickbit/quasar

<!--START_SECTION:readmes-description-->

My custom Quasar components. Use with caution.

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/quasar
```

```bash
npm add @snickbit/quasar
```

## Documentation

### [API Docs](https://github.com/snickbit/quasar/blob/main/packages/quasar/README.md)

### [CHANGELOG](https://github.com/snickbit/quasar/blob/main/packages/quasar/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/quasar/blob/main/LICENSE)
npm package: @snickbit/quasar-forms
Description: Quasar form generation
Latest version: 0.1.15

# @snickbit/quasar-forms

<!--START_SECTION:readmes-description-->

Quasar form generation using [@snickbit/minia](https://github.com/snickbit/minia)

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/quasar-forms
```

```bash
npm add @snickbit/quasar-forms
```

## Documentation

### [API Docs](https://github.com/snickbit/quasar/blob/main/packages/quasar-forms/README.md)

### [CHANGELOG](https://github.com/snickbit/quasar/blob/main/packages/quasar-forms/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/quasar/blob/main/LICENSE)
npm package: @snickbit/quasar-menu
Description: Quasar sidebar menu generation using @snickbit/minia
Latest version: 0.1.15

# @snickbit/quasar-menu

<!--START_SECTION:readmes-description-->

Quasar sidebar menu generation using [@snickbit/minia](https://github.com/snickbit/minia)

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/quasar-menu
```

```bash
npm add @snickbit/quasar-menu
```

## Documentation

### [API Docs](https://github.com/snickbit/quasar/blob/main/packages/quasar-menu/README.md)

### [CHANGELOG](https://github.com/snickbit/quasar/blob/main/packages/quasar-menu/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/quasar/blob/main/LICENSE)
npm package: @snickbit/queue
Description: Fluid queueing library for any function or promise
Latest version: 1.3.10

# @snickbit/queue

<!--START_SECTION:readmes-description-->

Fluid queueing library for any function or promise

<!--END_SECTION:readmes-description-->

## Installation

```bash
pnpm add @snickbit/queue
```

```bash
yarn add @snickbit/queue
```

```bash
npm i @snickbit/queue
```

## Basic Usage

### Initialize

```js
import {queue} from '@snickbit/queue'
// or const {queue} = require('@snickbit/queue')

const $queue = queue({concurrency: 25, limit: 5, interval: 1000, strict: true})
```

or as a class with

```js
import {Queue} from '@snickbit/queue'

const $queue = new Queue({concurrency: 5})
```

Add some Promises or functions to the queue

```js
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms))

for (let i = 0; i < 100; i++) {
	$queue.push(async () => {
		await sleep(Math.random() * 100)
		console.log(`${i}`)
	})
}

$queue.run()
	.then(() => console.log('done'))
	.catch((err) => console.error('Oops', err))

// or await $queue.run()
```

### `thenEach (callback)`

Attaches a callback for the resolution of each Promise or Function in the queue.

### `catchEach (callback)`

Attaches a callback for the rejection of each Promise or Function in the queue.

### `finallyEach (callback)`

Attaches a callback that is invoked when each Promise or Function in the queue is settled (fulfilled or rejected).

### Check the API Docs for more details

## Documentation

### [API Docs](../../README.md)

### [CHANGELOG](CHANGELOG.md)

## Acknowledgements

- [kleinron/lite-fifo](https://github.com/kleinron/lite-fifo)
- [sindresorhus/p-throttle](https://github.com/sindresorhus/p-throttle)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickbit/raknet
Description: Basic RakNet implementation written in TypeScript
Author: snickbit
Latest version: 1.0.4

# @snickbit/raknet

Basic RakNet implementation written in TypeScript

## Installation

```bash
pnpm add @snickbit/raknet
```

```bash
npm add @snickbit/raknet
```

## Acknowledgements

Forked from [JSPrismarine/raknet](https://github.com/JSPrismarine/JSPrismarine/tree/master/packages/raknet)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/raknet/blob/main/LICENSE)
npm package: @snickbit/spinner
Description: Minimal terminal spinner for Node.js
Latest version: 1.3.6

# @snickbit/spinner

<!--START_SECTION:readmes-description-->

Minimal terminal spinner for Node.js

<!--END_SECTION:readmes-description-->

## Installation
```bash
pnpm add @snickbit/spinner
```

```bash
yarn add @snickbit/spinner
```

```bash
npm i @snickbit/spinner
```

## Documentation

### [API Docs](../../README.md)

### [CHANGELOG](CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickbit/upwords
Description: Helper function to convert a string to title case, attempting to preserve acronyms and special case words.
Latest version: 2.0.41

# @snickbit/upwords

<!--START_SECTION:readmes-description-->

Helper function to convert a string to title case, attempting to preserve acronyms and special case words like "of" and "iPhone".

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/upwords
```

```bash
npm add @snickbit/upwords
```

## Basic Usage

```js
import upwords from '@snickbit/upwords'

upwords('hello') // 'Hello'
upwords('hello world') // 'Hello World'
upwords('iphone') // 'iPhone'
upwords('usd') // 'USD'
upwords('d&d') // 'D&D'
upwords('created_at') // 'Created at'
upwords('created__at') // 'Created at'
upwords('i-like-to--play--d&d-in-3d') // 'I Like to Play D&D in 3D'
```

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickbit/utilities
Description: A collection of simple JavaScript helpers
Latest version: 3.15.0

# @snickbit/utilities

<!--START_SECTION:readmes-description-->

This is a collection of basic helper functions with very minimal dependencies.

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/utilities
```

```bash
npm add @snickbit/utilities
```

## Documentation

### [API Docs](./docs/README.md)

### [CHANGELOG](CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickerdoodlelabs/circuits
Description: ZK-Snickerdoodle circuits for Snickerdoodle Protocol
Author: Todd Chapman
Latest version: 1.0.6

![Core](https://github.com/SnickerdoodleLabs/Snickerdoodle-Theme-Light/blob/main/snickerdoodle_horizontal_notab.png?raw=true)

# Circuits

This package implements various zero-knowledge circuits for the Snickerdoodle protocol. The circuits are writtin in O1js, a typescript-native zk-circuit library from
O1Labs. 

## Zero-Knowledge Proof of Membership

The primary circuit in the Snickerdoodle circuits package calculates [proof of membership](/packages/circuits/src/membership.ts) with response deduplication and was inspired by the [Semaphore](https://docs.semaphore.pse.dev/) project. This circuit takes in a reasonably large anonymity 
set and uses a Merkle tree inclusion proof (calculated with the Poseidon hash function) to prove that a user belongs to set. The anonymity set 
is nominally written to a public blockchain network so that an end-user client can fetch it without the need of a proprietary third-party data 
provider. 

![Zero-Knowledge Proof of Membership Circuit](/documentation/images/membership-circuit.png)

Each member of the anonymity set commits to two secret [identity](/packages/circuits/src/membership.ts#L13) values: a *trapdoor* value and 
an *identity nullifier* value. It is this commitment (the Poseidon hash of these two values concatenated together) that is written to the 
blockchain by/for each participant. The nullifier value is used in conjunction with the IPFS CID value corresponding to an SDQL query that the 
user's core instance is responding to. The hash of the concatenation of the identity nullifier with the IPFS CID results in a public 
*response nullifier* that allows for deduplication of responses without the need for a centralized coordinator. 

Lastly, the circuit computes the square of the Poseidon hash of the response data so that the verifier can ensure that the payload was not modified 
after being sent over the wire. 

## Zero-Knowledge Commitment Validation Circuit

This package also includes a helper circuit that validates if an identity commitment was constructed properly. A participant generates their
secret identity nullifier and trapdoor value, produces their identity commitment with this data, then uses this circuit to prove that their 
identity commitment is well-formed. The circuit can also accept the Poseidon hash of an optional data payload in order to provide an additional
assertion that the payload sent over the wire was not tampered with during delivery. 

![Zero-Knowledge Commitment Validation Circuit](/documentation/images/commitment-circuit.png)

This circuit also serves as a *quasi proof-of-work* for network participants who sponsor unauthenticated optIn transactions for end-users. It 
leaves room to be extended for additional protection of transaction sponsors against bot account in the future.
npm package: @snickerdoodlelabs/circuits-sdk
Description: ZK-Snickerdoodle circuit wrappers for Snickerdoodle Protocol
Author: Charlie Sibbach
Latest version: 1.0.5

![Core](https://github.com/SnickerdoodleLabs/Snickerdoodle-Theme-Light/blob/main/snickerdoodle_horizontal_notab.png?raw=true)

# Circuits SDK

This package provides Neverthrow compatible wrappers and tools for working with o1js Circuits and ZKApps.
npm package: @snickerdoodlelabs/insight-platform-api
Description: Repository for making signed calls to the Insight Platform API
Author: Charlie Sibbach
Latest version: 3.0.2

# Insight Platform API

This package exports a repository object that can be used to make signed requests to an Insight Platform using the documented OpenAPI spec. All calls to the Insight API require a signature from a data wallet, which makes using Postman very difficult for this purpose. This package is designed to be used by any clients that need to make such requests, including Snickerdoodle Core.