open-index/open-npm huggingface dataset:
npm package: @jacobbubu/pull-pushable
Description: a pull-pushable written in typescript
Author: jacobbubu
Latest version: 1.4.0

# @jacobbubu/pull-pushable

[![Build Status](https://travis-ci.org/jacobbubu/pull-pushable.svg)](https://travis-ci.org/jacobbubu/pull-pushable)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-pushable/badge.svg)](https://coveralls.io/github/jacobbubu/pull-pushable)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-pushable.svg)](https://www.npmjs.com/package/@jacobbubu/pull-pushable/)

> A typescript version of [pull-pushable](https://github.com/pull-stream/pull-pushable).

## Intro.

This package is a modification of [pull-pushable](https://github.com/pull-stream/pull-pushable).

## Usage

```bash
npm install @jacobbubu/pull-pushable
npm run example:ex1
```
npm package: @jacobbubu/pull-pushable-duplex
Description: [![Build Status](https://github.com/jacobbubu/pull-pushable-duplex/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-pushable-duplex/actions?query=workflow%3A%22Build+and+Release%22) [![Coverage Status](https://coveralls.io/rep
Author: jacobbubu
Latest version: 1.2.0

# @jacobbubu/pull-pushable-duplex

[![Build Status](https://github.com/jacobbubu/pull-pushable-duplex/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-pushable-duplex/actions?query=workflow%3A%22Build+and+Release%22)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-pushable-duplex/badge.svg)](https://coveralls.io/github/jacobbubu/pull-pushable-duplex)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-pushable-duplex.svg)](https://www.npmjs.com/package/@jacobbubu/pull-pushable-duplex/)

> A helper class for constructing full/half pushable duplex in pull-stream manner.

## Intro.

Constructing a full-duplex, pushable duplex requires complex state management considerations.

Especially, you need to make sure that you follow the guidelines of the pull-stream ([pull-stream-protocol-checker](https://github.com/elavoie/pull-stream-protocol-checker)).

## Usage

``` ts
import * as pull from 'pull-stream'
import { PushableDuplex } from '@jacobbubu/pull-pushable-duplex'

function valuesToRead<T>(values: T[] = []) {
  let i = 0
  return (cb: OnReadCallback<T>) => {
    i === values.length ? cb(true) : cb(null, values[i])
    i += 1
  }
}

const results: any[] = []
const d = new PushableDuplex({
  allowHalfOpen: true,
  onRead: valuesToRead([1, 2, 3]),
  onReceived: (data) => {
    results.push(data)
  },
  onFinished: (err) => {
    console.log("we've" got, results)
  },
})
const peer = {
  source: pull.values(['a', 'b', 'c']),
  sink: pull.collect((err, results) => {
    console.log("peer's got", results)
  })
}
pull(d, peer, d)
```
npm package: @jacobbubu/pull-randomly-split
Description: [![Build Status](https://travis-ci.org/jacobbubu/pull-randomly-split.svg)](https://travis-ci.org/jacobbubu/pull-randomly-split) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-randomly-split/badge.svg)](https://coveralls.io/github/jac
Author: jacobbubu
Latest version: 1.0.0

# @jacobbubu/pull-randomly-split

[![Build Status](https://travis-ci.org/jacobbubu/pull-randomly-split.svg)](https://travis-ci.org/jacobbubu/pull-randomly-split)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-randomly-split/badge.svg)](https://coveralls.io/github/jacobbubu/pull-randomly-split)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-randomly-split.svg)](https://www.npmjs.com/package/@jacobbubu/pull-randomly-split/)

> Rewritten [pull-randomly-split](https://github.com/dominictarr/pull-randomly-split) in TypeScript

# pull-randomly-split

randomly split incoming buffers, to test that parsing works correctly.

``` ts
import randomSplit from '@jacobbubu/pull-randomly-split'
pull(
  pull.values(crypto.randomBytes(1024*1024)),
  randomSplit(1024, 2096),
  pull.collect(function () {
    //...
  })
)
```

Please see test-cases for the usage.

## License

MIT
npm package: @jacobbubu/pull-reader
Description: [![Build Status](https://travis-ci.org/jacobbubu/pull-reader.svg)](https://travis-ci.org/jacobbubu/pull-reader) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-reader/badge.svg)](https://coveralls.io/github/jacobbubu/pull-reader) [![n
Author: jacobbubu
Latest version: 1.0.2

# @jacobbubu/pull-reader

[![Build Status](https://travis-ci.org/jacobbubu/pull-reader.svg)](https://travis-ci.org/jacobbubu/pull-reader)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-reader/badge.svg)](https://coveralls.io/github/jacobbubu/pull-reader)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-reader.svg)](https://www.npmjs.com/package/@jacobbubu/pull-reader/)

> Rewritten [pull-reader](https://github.com/dominictarr/pull-reader) in TypeScript.

# pull-reader

read bytes from a binary pull-stream


## example

``` js
import Reader from '@jacobbubu/pull-reader'
import File from '@jacobbubu/pull-file'
const reader = Reader(1000) // 1 second timeout, abort upstream if read takes longer than this.

pull(
  File('./package.json'),
  reader
)

// Read the first byte of a file
reader.read(1, function (err, data) {
  console.log(data.toString()) // => {
})
```
npm package: @jacobbubu/pull-spec
Description: [![Build Status](https://github.com/jacobbubu/pull-spec/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-spec/actions?query=workflow%3A%22Build+and+Release%22) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pu
Author: jacobbubu
Latest version: 1.0.0

# @jacobbubu/pull-spec

[![Build Status](https://github.com/jacobbubu/pull-spec/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-spec/actions?query=workflow%3A%22Build+and+Release%22)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-spec/badge.svg)](https://coveralls.io/github/jacobbubu/pull-spec)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-spec.svg)](https://www.npmjs.com/package/@jacobbubu/pull-spec/)

> Rewritten [pull-spec](https://github.com/dominictarr/pull-spec) in TypeScript.

# pull-spec

check that a pull-stream has the correct behavior.

``` js
import { Source } from '@jacobbubupull-spec'
var pull = require('pull-stream')

pull(
  Source(pull.values([1,2,3])),
  ...
)
```
will throw an error if the stream callbacks too many times, or out of turn,
and also if read is called incorrectly.

It's generally enough to just connect the sink.

## License

MIT
npm package: @jacobbubu/pull-split
Description: [![Build Status](https://github.com/jacobbubu/pull-split/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-split/actions?query=workflow%3A%22Build+and+Release%22) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/
Author: jacobbubu
Latest version: 1.0.1

# @jacobbubu/pull-split

[![Build Status](https://github.com/jacobbubu/pull-split/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-split/actions?query=workflow%3A%22Build+and+Release%22)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-split/badge.svg)](https://coveralls.io/github/jacobbubu/pull-split)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-split.svg)](https://www.npmjs.com/package/@jacobbubu/pull-split/)

> A starter project that makes creating a TypeScript module extremely easy.

## Intro.

This tool was modified from [typescript-library-starter](https://github.com/alexjoverm/typescript-library-starter), but I made the following revisions:

  - Use GitHub Actions instead of TravisCI
  - Used to develop Node.JS Module instead of packaging code for browser

## Usage

```bash
git clone https://github.com/jacobbubu/typescript-starter.git YOURFOLDERNAME
cd YOURFOLDERNAME
npm install
```

**Start coding!** `package.json` and entry files are already set up for you, so don't worry about linking to your main file, typings, etc. Just keep those files with the same name.

## Before push

Before pushing the code to GitHub, please make sure that `NPM_TOKEN` is configured in `https://github.com/__your_repo__/settings/secrets`, or you can do this through [`semantic-release-cli`](https://github.com/semantic-release/cli).
npm package: @jacobbubu/pull-stream-protocol-checker
Description: [![Build Status](https://github.com/jacobbubu/pull-stream-protocol-checker/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-stream-protocol-checker/actions?query=workflow%3A%22Build+and+Release%22) [![Coverage Status](https://
Author: jacobbubu
Latest version: 1.0.0

# @jacobbubu/pull-stream-protocol-checker

[![Build Status](https://github.com/jacobbubu/pull-stream-protocol-checker/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-stream-protocol-checker/actions?query=workflow%3A%22Build+and+Release%22)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-stream-protocol-checker/badge.svg)](https://coveralls.io/github/jacobbubu/pull-stream-protocol-checker)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-stream-protocol-checker.svg)](https://www.npmjs.com/package/@jacobbubu/pull-stream-protocol-checker/)

> Rewriting [pull-stream-protocol-checker](https://github.com/elavoie/pull-stream-protocol-checker) with TypeScript

# pull-stream-protocol-checker

## Why rewrite?

* For other TypeScript projects to have a type-friendly checking library.
* Easy for my colleagues to port to other strongly typed programming languages

## Original readme

Pull-stream module for detecting protocol violations at the interface of two modules.

Report an error if one of the following invariants is violated:

1. No ask request (`read(false, ...)`) after termination
2. Every callback is eventually invoked
3. Every callback is invoked only once
4. The callbacks are invoked in the order in which they were created
5. No value answer (`cb(false, data)`) after termination

Optionally can check:

6. That no other request are made after the stream has terminated or was aborted
7. The stream is eventually terminated

## Usage

``` ts
import * as pull from 'pull-stream'
import checker from '@jacobbubu/pull-stream-protocol-checker'

const probe = checker({
  forbidExtraRequests: true,
  enforceStreamTermination: true,
})

pull(
  pull.count(10),
  probe,
  pull.drain(null, function () {
    probe.terminate()
  })
)
```

## options

``` ts
const probe = checker({forbidExtraRequests: true, enforceStreamTermination:true, notifyEagerly: true})
```

* `forbidExtraRequests`      `<Boolean>` (Defaults to `false`)
* `enforceStreamTermination` `<Boolean>` (Defaults to `false`)
* `notifyEagerly`            `<Boolean>` (Defaults to `true`)

Invariant 6 is activated by setting `forbidExtraRequests` to `true`. Invariant 7 is activated by setting `enforceStreamTermination` to `true`. If `notifyEagerly===true`, an invariant violation is reported as an error that is thrown immediately; otherwise all violations are remembered and returned as an error array when invoking `errors = probe.terminate()`.

## Other modules with similar goals

https://github.com/dominictarr/pull-spec

https://github.com/nichoth/pull-stream-spec
npm package: @jacobbubu/pull-stream-types
Description: [![Build Status](https://travis-ci.org/jacobbubu/pull-stream-types.svg)](https://travis-ci.org/jacobbubu/pull-stream-types) [![npm](https://img.shields.io/npm/v/@jacobbubu/pull-stream-types.svg)](https://www.npmjs.com/package/@jacobbubu/pull-stream-types/
Author: jacobbubu
Latest version: 1.1.0

# @jacobbubu/pull-stream-types

[![Build Status](https://travis-ci.org/jacobbubu/pull-stream-types.svg)](https://travis-ci.org/jacobbubu/pull-stream-types)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-stream-types.svg)](https://www.npmjs.com/package/@jacobbubu/pull-stream-types/)

> Yet another [pull-stream](https://github.com/pull-stream/pull-stream) typescript declaration file.

## Intro.

Although [Michael de Wit](https://github.com/mjwwit) has provided a typescript declaration file for [pull-stream](https://github.com/pull-stream/pull-stream), in order to facilitate some type-wise modifications, I still extract the original one out and use it independently.

## Usage

```bash
npm install pull-stream -S
npm install @jacobbubu/pull-stream-types -D
```

Then add a module definition into your `compilerOptions` in `tsconfig.json`. That may look like:

```json
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "pull-stream": ["node_modules/@jacobbubu/pull-stream-types"]
    }
  }
}
```

It works for `tsc`, `ts-node` and `ts-node-dev`.

## Test

A test file(`test/pull-stream-test.ts`) has been provided to verify the correctness of the declaration file.

You can `npm run build:watch` for debugging.
npm package: @jacobbubu/pull-tee
Description: [![Build Status](https://travis-ci.org/jacobbubu/pull-tee.svg)](https://travis-ci.org/jacobbubu/pull-tee) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-tee/badge.svg)](https://coveralls.io/github/jacobbubu/pull-tee) [![npm](https://
Author: jacobbubu
Latest version: 1.0.1

# @jacobbubu/pull-tee

[![Build Status](https://travis-ci.org/jacobbubu/pull-tee.svg)](https://travis-ci.org/jacobbubu/pull-tee)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-tee/badge.svg)](https://coveralls.io/github/jacobbubu/pull-tee)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-tee.svg)](https://www.npmjs.com/package/@jacobbubu/pull-tee/)

> Rewritten [pull-tee](https://github.com/dominictarr/pull-tee) in TypeScript.

# pull-tee

feed a pull-stream into multiple sinks

## example

```ts
import * as pull from 'pull-stream'
import tee from '../src'
import * as assert from 'assert'

let a: number[] = []
let b: number[] = []

pull(
  pull.values([1, 2, 3, 4, 5]),
  tee(
    pull.collect((_, _a: number[]) => {
      a = _a
      if (b && a) assert.deepEqual(a, b)
    })
  ),
  pull.collect((_, _b: number[]) => {
    b = _b
    if (b && a) assert.deepEqual(a, b)
  })
)

console.log(a, b)
```
npm package: @jacobbubu/pull-through
Description: [![Build Status](https://travis-ci.org/jacobbubu/pull-through.svg)](https://travis-ci.org/jacobbubu/pull-through) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-through/badge.svg)](https://coveralls.io/github/jacobbubu/pull-through) 
Author: jacobbubu
Latest version: 1.1.2

# @jacobbubu/pull-through

[![Build Status](https://travis-ci.org/jacobbubu/pull-through.svg)](https://travis-ci.org/jacobbubu/pull-through)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-through/badge.svg)](https://coveralls.io/github/jacobbubu/pull-through)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-through.svg)](https://www.npmjs.com/package/@jacobbubu/pull-through/)

> Rewritten [through](https://github.com/dominictarr/through) in TypeScript.

## Example

Same Good Old Api, Brand New Underlying Mechanism.

``` js
import through from '@jacobbubu/pull-through'

const ts = through(function (data) {
  this.queue(data)
}, function (end) {
  this.queue(null)
})
```

Please see the test-cases for the detail.
npm package: @jacobbubu/pull-throughput
Description: [![Build Status](https://github.com/jacobbubu/pull-throughput/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-throughput/actions?query=workflow%3A%22Build+and+Release%22) [![Coverage Status](https://coveralls.io/repos/github/
Author: jacobbubu
Latest version: 1.1.1

# @jacobbubu/pull-throughput

[![Build Status](https://github.com/jacobbubu/pull-throughput/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-throughput/actions?query=workflow%3A%22Build+and+Release%22)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-throughput/badge.svg)](https://coveralls.io/github/jacobbubu/pull-throughput)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-throughput.svg)](https://www.npmjs.com/package/@jacobbubu/pull-throughput/)

> A starter project that makes creating a TypeScript module extremely easy.

## Intro.

This tool was modified from [typescript-library-starter](https://github.com/alexjoverm/typescript-library-starter), but I made the following revisions:

  - Use GitHub Actions instead of TravisCI
  - Used to develop Node.JS Module instead of packaging code for browser

## Usage

```bash
git clone https://github.com/jacobbubu/typescript-starter.git YOURFOLDERNAME
cd YOURFOLDERNAME
npm install
```

**Start coding!** `package.json` and entry files are already set up for you, so don't worry about linking to your main file, typings, etc. Just keep those files with the same name.

## Before push

Before pushing the code to GitHub, please make sure that `NPM_TOKEN` is configured in `https://github.com/__your_repo__/settings/secrets`, or you can do this through [`semantic-release-cli`](https://github.com/semantic-release/cli).
npm package: @jacobbubu/pull-utf8-decoder
Description: [![Build Status](https://travis-ci.org/jacobbubu/pull-utf8-decoder.svg)](https://travis-ci.org/jacobbubu/pull-utf8-decoder) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-utf8-decoder/badge.svg)](https://coveralls.io/github/jacobbubu
Author: jacobbubu
Latest version: 1.0.1

# @jacobbubu/pull-utf8-decoder

[![Build Status](https://travis-ci.org/jacobbubu/pull-utf8-decoder.svg)](https://travis-ci.org/jacobbubu/pull-utf8-decoder)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-utf8-decoder/badge.svg)](https://coveralls.io/github/jacobbubu/pull-utf8-decoder)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-utf8-decoder.svg)](https://www.npmjs.com/package/@jacobbubu/pull-utf8-decoder/)

> Rewite [pull-utf8-decoder](https://github.com/pull-stream/pull-utf8-decoder) in TypeScript.

## Usage

```bash
npm i @jacobbubu/pull-utf8-decoder
```

```ts
pull(
  // '¢' = [0xc2, 0xa2] in utf8
  pull.values([Buffer.from([0xc2], Buffer.from([0xa2]])),
  decode('utf8'),
  pull.collect(function(_, ary) {
    console.log(ary)  // ['¢']
  })
)
```
npm package: @jacobbubu/pull-write-file
Description: [![Build Status](https://github.com/jacobbubu/pull-write-file/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-write-file/actions?query=workflow%3A%22Build+and+Release%22) [![Coverage Status](https://coveralls.io/repos/github/
Author: jacobbubu
Latest version: 1.0.1

# @jacobbubu/pull-write-file

[![Build Status](https://github.com/jacobbubu/pull-write-file/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/pull-write-file/actions?query=workflow%3A%22Build+and+Release%22)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/pull-write-file/badge.svg)](https://coveralls.io/github/jacobbubu/pull-write-file)
[![npm](https://img.shields.io/npm/v/@jacobbubu/pull-write-file.svg)](https://www.npmjs.com/package/@jacobbubu/pull-write-file/)

> A typescript version of [pull-write-file](https://github.com/dominictarr/pull-write-file)

# pull-write-file

pull-stream version of fs.createWriteStream

currently really simple and does not yet support all fs.createWriteStream options yet.

## why rewriting?

* Familiarity with the original author's intent
* Strong type declarations for colleagues to understand and migrate to other programming languages

## Example

``` ts
import * as pull from 'pull-stream'
import * as fs from 'fs'
import * as path from 'path'
import osenv = require('osenv')
import writeFile from '@jacobbubu/pull-write-file'

const file = path.join(osenv.tmpdir(), 'pull-write-file_test.' + Date.now())
pull(
  pull.values([1, 2, 3, 4]),
  writeFile(file, {}, (err) => {
    const readBack = fs.readFileSync(file)
    console.log(readBack.toString()) // '1234'
    fs.unlinkSync(file)
    done()
  })
)
```

## Performance

For large buffers this is currently as fast as node's streams,
but for lots of small buffers it's a little less.
Node uses the fs binding's `writev` to pass many buffers to the kernel simutaniously.

TODO: benchmarks with graphs comparing node streams and pull streams.

## License

MIT
npm package: @jacobbubu/rest-file-server
Description: [![Build Status](https://github.com/jacobbubu/rest-file-server/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/rest-file-server/actions?query=workflow%3A%22Build+and+Release%22) [![Coverage Status](https://coveralls.io/repos/githu
Author: jacobbubu
Latest version: 1.0.1

# @jacobbubu/rest-file-server

[![Build Status](https://github.com/jacobbubu/rest-file-server/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/rest-file-server/actions?query=workflow%3A%22Build+and+Release%22)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/rest-file-server/badge.svg)](https://coveralls.io/github/jacobbubu/rest-file-server)
[![npm](https://img.shields.io/npm/v/@jacobbubu/rest-file-server.svg)](https://www.npmjs.com/package/@jacobbubu/rest-file-server/)

> A test file upload server.

## Intro.

This tool was modified from [express-rest-file-server](https://github.com/bitIO/express-rest-file-server), but I made the following revisions:

  - Only support memory storage.
  - File uploads can be speed limited.

## Usage

```bash
npm install @jacobbubu/rest-file-server
```

Start server:
```
npm start
```

### Upload and Download

``` bash
curl -X POST -F "file=@README.md" http://localhost:8080/files
```

THEN get it back,

``` bash
curl http://localhost:8080/files/README.md
```

### Enable JWT token

Start server:

```
npm start -- --useToken=true
```

### Get Token

```
curl http://localhost:8080/token?expiresIn=100
```

`expiresIn` indicates the number of seconds after which the token timed out, which can be a negative value. The default value is one day.

### Upload

```
curl -X POST -F "file=@README.md" http://localhost:8080/files -H "Authorization: Bearer eyJhbGciOiJI..."
```

Please see test cases for more usage.
npm package: @jacobbubu/rngmt
Description: [![Build Status](https://github.com/jacobbubu/rngmt/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/rngmt/actions?query=workflow%3A%22Build+and+Release%22) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/rngmt/badg
Author: jacobbubu
Latest version: 1.0.0

# @jacobbubu/rngmt

[![Build Status](https://github.com/jacobbubu/rngmt/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/rngmt/actions?query=workflow%3A%22Build+and+Release%22)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/rngmt/badge.svg)](https://coveralls.io/github/jacobbubu/rngmt)
[![npm](https://img.shields.io/npm/v/@jacobbubu/rngmt.svg)](https://www.npmjs.com/package/@jacobbubu/rngmt/)

> Implementation of mersenne-twister random number generation algorithm with TypeScript

## Intro.

This module was modified from [rng](https://github.com/jhermsmeier/rng.js) for two reasons:

  - Comes with TypeScript type declaration
  - Help my colleagues migrate to other programming languages with minimal effort

## Usage

``` ts
import { RNG } from '@jacobbubu/rngmt'

const rng = new RNG() // or send a seed number as parameter
rng.random() // returns a tempered pseudorandom number between 0 and 1
rng.range(0, 100) // returns a number between 0 and 100
```

## License
MIT
npm package: @jacobbubu/scuttleboat-pull
Description: [![Build Status](https://travis-ci.org/jacobbubu/scuttleboat-pull.svg)](https://travis-ci.org/jacobbubu/scuttleboat-pull) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/scuttleboat-pull/badge.svg)](https://coveralls.io/github/jacobbubu/sc
Author: jacobbubu
Latest version: 2.0.0

# @jacobbubu/scuttleboat-pull

[![Build Status](https://travis-ci.org/jacobbubu/scuttleboat-pull.svg)](https://travis-ci.org/jacobbubu/scuttleboat-pull)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/scuttleboat-pull/badge.svg)](https://coveralls.io/github/jacobbubu/scuttleboat-pull)
[![npm](https://img.shields.io/npm/v/@jacobbubu/scuttleboat-pull.svg)](https://www.npmjs.com/package/@jacobbubu/scuttleboat-pull/)

> Rewritten [scuttleboat](https://github.com/kumavis/scuttleboat) in TypeScript and inherited from [scuttlebutt-pull](https://github.com/jacobbubu/scuttlebutt-pull).

## Intro.

Please see [examples/ex1.ts](https://github.com/jacobbubu/scuttleboat-pull/tree/master/examples/ex1.ts) for the usage.
npm package: @jacobbubu/scuttlebucket-pull
Description: [![Build Status](https://travis-ci.org/jacobbubu/scuttlebucket-pull.svg)](https://travis-ci.org/jacobbubu/scuttlebucket-pull) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/scuttlebucket-pull/badge.svg)](https://coveralls.io/github/jacobb
Author: jacobbubu
Latest version: 1.1.0

# @jacobbubu/scuttlebucket-pull

[![Build Status](https://travis-ci.org/jacobbubu/scuttlebucket-pull.svg)](https://travis-ci.org/jacobbubu/scuttlebucket-pull)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/scuttlebucket-pull/badge.svg)](https://coveralls.io/github/jacobbubu/scuttlebucket-pull)
[![npm](https://img.shields.io/npm/v/@jacobbubu/scuttlebucket-pull.svg)](https://www.npmjs.com/package/@jacobbubu/scuttlebucket-pull/)

> Rewrite [scuttlebucket](https://github.com/dominictarr/scuttlebucket) in TypeScript

## Intro.

Please see [examples/ex1.ts](https://github.com/jacobbubu/scuttlebucket-pull/tree/master/examples/ex1.ts) for the usage.
npm package: @jacobbubu/scuttlebutt-pull
Description: [![Build Status](https://travis-ci.org/jacobbubu/scuttlebutt-pull.svg)](https://travis-ci.org/jacobbubu/scuttlebutt-pull) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/scuttlebutt-pull/badge.svg)](https://coveralls.io/github/jacobbubu/sc
Author: jacobbubu
Latest version: 1.9.3

# @jacobbubu/scuttlebutt-pull

[![Build Status](https://travis-ci.org/jacobbubu/scuttlebutt-pull.svg)](https://travis-ci.org/jacobbubu/scuttlebutt-pull)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/scuttlebutt-pull/badge.svg)](https://coveralls.io/github/jacobbubu/scuttlebutt-pull)
[![npm](https://img.shields.io/npm/v/@jacobbubu/scuttlebutt-pull.svg)](https://www.npmjs.com/package/@jacobbubu/scuttlebutt-pull/)

A roughly implementation of [scuttlebutt](https://github.com/dominictarr/scuttlebutt) that uses [pull-stream](https://pull-stream.github.io) and written in typescript.

This project is still in development, pls do not use it in production.
npm package: @jacobbubu/webcrypto-ed25519
Description: Ed25519 Polyfill & Polyfill for WebCrypto
Author: jacobbubu
Latest version: 1.0.0

# @jacobbubu/webcrypto-ed25519

[![Build Status](https://github.com/jacobbubu/webcrypto-ed25519/workflows/Build%20and%20Release/badge.svg)](https://github.com/jacobbubu/webcrypto-ed25519/actions?query=workflow%3A%22Build+and+Release%22)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/webcrypto-ed25519/badge.svg)](https://coveralls.io/github/jacobbubu/webcrypto-ed25519)
[![npm](https://img.shields.io/npm/v/@jacobbubu/webcrypto-ed25519.svg)](https://www.npmjs.com/package/@jacobbubu/webcrypto-ed25519/)

# Ed25519 Ponyfill & Polyfill for WebCrypto

`@yoursunny/webcrypto-ed25519` package adds [Ed25519](https://ed25519.cr.yp.to/) crypto algorithm to [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) in browsers.
The crypto implementation comes from [@noble/ed25519](https://www.npmjs.com/package/@noble/ed25519) library.

## Caution

This library should be considered suitable for research and experimentation.
Further code and security review is needed before utilization in a production application.

## Usage

```js
import { Ed25519Algorithm, polyfillEd25519, ponyfillEd25519 } from "@yoursunny/webcrypto-ed25519";

// ponyfill: crypto.subtle remains unchanged; call methods on the returned SubtleCrypto instance.
const subtlePonyfill = ponyfillEd25519();
subtlePonyfill.generateKey(Ed25519Algorithm, true, ["sign", "verify"]);

// polyfill: crypto.subtle is patched to support Ed25519 and NODE-ED25519 algorithms.
polyfillEd25519();
crypto.subtle.generateKey(Ed25519Algorithm, true, ["sign", "verify"]);
```

## Algorithm Identifier

The ponyfill and polyfill for browser recognize two forms of algorithm identifier:

* `{ name: "Ed25519" }`, as specified in [Secure Curves in the Web Cryptography API](https://wicg.github.io/webcrypto-secure-curves/) draft and implemented in Node.js 18.4.0 and later.
* `{ name: "NODE-ED25519", namedCurve: "NODE-ED25519" }`, as implemented in Node.js 18.3.0 and earlier.

This package does not provide any ponyfill or polyfill for Node.js.
The exported `Ed25519Algorithm` variable gives a suitable algorithm identifier for the current Node.js version, which helps you writing code to support Node.js before and after 18.4.0.

## Features

* `subtle.generateKey`
* `subtle.exportKey`
  * format: `"jwk"` or `"spki"`
* `subtle.importKey`
  * format: `"jwk"` or `"spki"`
* `subtle.sign`
* `subtle.verify`

All other methods and non-Ed25519 keys are passed to the original `SubtleCrypto` implementation.
npm package: @jacobbubu/xtend
Description: [![Build Status](https://travis-ci.org/jacobbubu/xtend.svg)](https://travis-ci.org/jacobbubu/xtend) [![Coverage Status](https://coveralls.io/repos/github/jacobbubu/xtend/badge.svg)](https://coveralls.io/github/jacobbubu/xtend) [![npm](https://img.shields.
Author: jacobbubu
Latest version: 1.0.0

# @jacobbubu/xtend

[![Build Status](https://travis-ci.org/jacobbubu/xtend.svg)](https://travis-ci.org/jacobbubu/xtend)
[![Coverage Status](https://coveralls.io/repos/github/jacobbubu/xtend/badge.svg)](https://coveralls.io/github/jacobbubu/xtend)
[![npm](https://img.shields.io/npm/v/@jacobbubu/xtend.svg)](https://www.npmjs.com/package/@jacobbubu/xtend/)

> Rewritten [xtend](https://github.com/Raynos/xtend) in typescript for learning purpose.

## Examples

```js
import { extend, mutableExtend } from '@jacobbubu/xtend'

// extend returns a new object. Does not mutate arguments
const combination = extend(
  {
    a: 'a',
    b: 'c'
  },
  {
    b: 'b'
  }
)
// combination = { a: "a", b: "b" }

// mutate argument in-place
const a = { foo: 'bar' }
mutableExtend(a, { bar: 'baz' })
// a.bar = 'baz'
```
npm package: @jacobdweightman/ligh-test
Description: A lightweight testing framework for JavaScript and TypeScript, with no external dependencies.
Author: Jacob Weightman
Latest version: 0.1.0

# ligh-test

`ligh-test` (pronounced "lightest") is a lightweight test framework for TypeScript and JavaScript. It is only a few hundred lines of code, and has no external dependencies; this means it's easy to understand and prevents bloating your `node_modules` folder.

## Usage

Install `ligh-test`:
```
npm install @jacobdweightman/ligh-test --save-dev
```

Test cases are created by subclassing `TestCase`. The particular tests, then, are the methods of this test case whose names start with "test". For example:
```
import TestCase from 'ligh-test';

function double(x: number): number {
    return x * 2;
}

export default class ExampleTest extends TestCase {
    testDouble() {
        this.assertEqual(double(5), 10);
        this.assertEqual(double(0), 0);
    }
}
```

In order for `ligh-test` to find your tests, it currently uses an index file. The test index is another JS/TS file that exports an array of instances of your test cases. For the example above, this would look like
```
import ExampleTest from 'path/to/example-test';

export default [
    new ExampleTest()
];
```

Finally, you can run your tests using
```
ligh-test path/to/compiled/test-index.js
```

## Contributing

This project is new and small. If you run into any trouble or have ideas for improvements or new features, feel free to open an issue or create a pull request.

Some possible next steps for `ligh-test` include automated test discovery (so that it is no longer necessary to maintain the test index) and a more comprehensive set of test assertions.
npm package: @jacobfitzp/lazyimage
Description: Image lazyloading
Author: Jacob Fitzpatrick
Latest version: 1.0.0

<h1>LazyImage</h1>

<img src=https://img.shields.io/npm/v/@jacobfitzp/lazyimages> <img src=https://img.shields.io/badge/dependancies-1-green>

LazyImage.js enables easy and effective lazyloading of images.

Powered by `@jacobfitzp/viewport-helper` it ensures images are only loaded when inside the viewport, cutting down loadtimes and resource sizes.

<img src="https://i.ibb.co/S58rsmw/Group-1.png">

## Installation

### NPM

```
npm install @jacobfitzp/lazyimages
```

Once installed, you can require the package using:

```javascript
require('@jacobfitzp/lazyimages');
```

### CDN

```html
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jacobfitzp/lazyimages@v1.0.0/dist/lazyimages.min.js"></script>
```

## Usage

To use simply add the `lazyload` class to the element you wish to lazyload, and unset the **src**, making sure to instead set **data-src** or **data-srcset**

```html

<!-- Example Image Element -->
<img class="lazyload" data-src="/image.jpg" alt="Lazyloaded Image" />

<!-- Example "other" element, will apply background image -->
<div class="lazyload" data-src="/image.jpg"></div>

```

Once loaded the **lazyload** class is removed and replaced with a **lazyloaded** class, you can use this to apply custom transitions such as fading in images.

### Initialisation

LazyImage only applies lazyloading automatically to elements that are present on DOMContentLoaded, this means if additional elements are added after load you will need to reinitialise lazyloading yourself, this can easily be done by doing:

```javascript
LazyImage.init();
```
npm package: @jacobg213/primeng-17
Description: The PrimeNG team does not seem to be interested in supporting v17 anymore. This fork was first created to add Angular 19 support to PrimeNG v17 in the official repository. Unfortunately, [the PR](https://github.com/primefaces/primeng/pull/18058) was rejec
Latest version: 17.19.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# PrimeNG 17 with Angular 19 support

The PrimeNG team does not seem to be interested in supporting v17 anymore. This fork was first created to add Angular 19 support to PrimeNG v17 in the official repository. Unfortunately, [the PR](https://github.com/primefaces/primeng/pull/18058) was rejected. That is why this is published as a separate package.

[![npm version](https://badge.fury.io/js/primeng.svg)](https://badge.fury.io/js/primeng)
[![npm downloads](https://img.shields.io/npm/dm/primeng.svg)](https://www.npmjs.com/package/primeng)
[![Actions CI](https://github.com/primefaces/primeng/workflows/NodeJS%20CI/badge.svg)](https://github.com/primefaces/primeng/actions/workflows/node.js.yml)
[![Discord Chat](https://img.shields.io/discord/557940238991753223.svg?color=7289da&label=chat&logo=discord)](https://discord.gg/gzKFYnpmCY)
[![Discussions](https://img.shields.io/github/discussions-search?query=org%3Aprimefaces&logo=github&label=Prime%20Discussions&link=https%3A%2F%2Fgithub.com%2Forgs%2Fprimefaces%2Fdiscussions)](https://github.com/orgs/primefaces/discussions)

[![PrimeNG Hero](https://www.primefaces.org/static/social/primeng-preview.jpg)](https://primeng.org)

### Website
Visit the [PrimeNG Website](https://primeng.org) for general information, demos and documentation.
npm package: @jacobgardos/vuxtify
Description: A Nuxt 3 Module For Vuetify
Author: Jacob Gardos
Latest version: 1.0.3

# Vuxtify

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![License][license-src]][license-href]
[![Nuxt][nuxt-src]][nuxt-href]

A Nuxt Module for Vuetify 3

- [✨ &nbsp;Release Notes](/CHANGELOG.md)
  <!-- - [🏀 Online playground](https://stackblitz.com/github/your-org/vuxtify?file=playground%2Fapp.vue) -->
- [📖 &nbsp;Documentation](https://jacobgardos.github.io/Vuxtify/)

## Features

- 📦 &nbsp;Tree Shaking
- 🚀 &nbsp;Vite Builder Compatible
- ⚙️ &nbsp;Webpack Builder Compatible
- 💅 &nbsp;Easily Customize Sass Variables
- 📚 &nbsp;Auto Imported Vuetify Composables
- 🧩 &nbsp;Provide $vuetify
- 🤖 &nbsp;Automatically Suggests Dependencies
- 🎨 &nbsp;HMR Theme Altering

## Quick Setup

1. Add `@jacobgardos/vuxtify` dependency to your project

```bash
# Using pnpm
pnpm add -D @jacobgardos/vuxtify

# Using yarn
yarn add --dev @jacobgardos/vuxtify

# Using npm
npm install --save-dev @jacobgardos/vuxtify
```

2. Add `vuxtify` to the `modules` section of `nuxt.config.ts`

```js
export default defineNuxtConfig({
  modules: ["@jacobgardos/vuxtify"],
  vuxtify: {
    // ... Module Options See Docs
  },
});
```

1. Add your `vuetify` options to your `app.config.ts` file

```js
export default defineAppConfig({
  vuetify: {
    theme: {
      defaultTheme: "light",
      themes: {
        light: {
          colors: {
            primary: "#1976D2",
            secondary: "#424242",
            accent: "#82B1FF",
            error: "#FF5252",
            info: "#2196F3",
            success: "#4CAF50",
            warning: "#FFC107",
          },
        },
      },
    },
  },
});
```

That's it! You can now use Vuetify in your Nuxt app ✨ Check out the [docs](https://jacobgardos.github.io/Vuxtify/) for more details and examples.

## Development

```bash
# Install dependencies
npm install

# Generate type stubs
npm run dev:prepare

# Develop with the playground
npm run dev

# Build the playground
npm run dev:build

# Run ESLint
npm run lint

# Run Vitest
npm run test
npm run test:watch

# Release new version
npm run release
```

<!-- Badges -->

[npm-version-src]: https://img.shields.io/npm/v/@jacobgardos/vuxtify/latest.svg?style=flat&colorA=18181B&colorB=28CF8D
[npm-version-href]: https://npmjs.com/package/@jacobgardos/vuxtify
[npm-downloads-src]: https://img.shields.io/npm/dm/@jacobgardos/vuxtify.svg?style=flat&colorA=18181B&colorB=28CF8D
[npm-downloads-href]: https://npmjs.com/package/@jacobgardos/vuxtify
[license-src]: https://img.shields.io/npm/l/@jacobgardos/vuxtify.svg?style=flat&colorA=18181B&colorB=28CF8D
[license-href]: https://npmjs.com/package/@jacobgardos/vuxtify
[nuxt-src]: https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js
[nuxt-href]: https://nuxt.com
npm package: @jacobgold/turboplus
Description: A nicer interface to autocomplete turbo builds
Latest version: 0.0.2

# TurboPlus

A nicer interface to autocomplete turbo builds in your Turborepo monorepo.

## Installation

```bash
npm install -g turboplus
# or
yarn global add turboplus
```

## Usage

Run any turbo command with package selection:

```bash
tp <command>
```

For example:

```bash
tp build
```

This will open a fuzzy-finder interface that lets you select which package to run the command on. Once selected, it will execute:

```bash
turbo run build --filter=<selected-package>
```

## Features

- Fuzzy search through all packages in your Turborepo
- Works with any turbo command (build, test, lint, etc.)
- Automatically detects Turborepo packages and workspaces

## License

MIT
npm package: @jacobhumston/lib
Description: Simple utility package created by Jacob Humston.
Author: jacobhumston
Latest version: 1.1.3

# @jacobhumston/lib

Simple utility package created by Jacob Humston.

## Install

```
npm i @jacobhumston/lib
```

## Usage

```js
// .cjs
const lib = await import('@jacobhumston/lib');
// .mjs
import * as lib from '@jacobhumston/lib';
```

## Documentation

https://lib.lovelyjacob.com
npm package: @jacobhumston/tc.js
Description: A very simple module that helps convert time. Such as seconds to minutes.
Author: Jacob Humston
Latest version: 1.0.4

# `tc.js` - Time Convert (Javascript Package)

**very** simple module that converts time. (Ex; ms -> seconds)

```bash
npm install @jacobhumston/tc.js
```

Documentation can be found at https://jacobhumston.github.io/tc.js/globals

# Examples

Here is an example of how to convert time:

```js
import { convert, floorConvert, roundConvert } from '@jacobhumston/tc.js';

const time = { minutes: 300, seconds: 30, milliseconds: 500 }; // Units of time to convert

console.log(convert(time).hours); // 5.008472222222222
console.log(roundConvert(time, 2).hours); // 5.01
console.log(floorConvert(time).hours); // 5
console.log(convertTo(time, 'seconds')); // 18030.5 (Same as "convert(time).seconds")
```

You can also use a chain to simplify adding and subtracting units of time.

```js
import { ChainConvert } from '@jacobhumston/tc.js';

const chain = new ChainConvert();
chain.add({ minutes: 1 }).subtract({ seconds: 30 }).add({ hours: 1 });

console.log(chain.floorConvert().seconds); // 3630
```

There is also some utility functions included in the package.

```js
import { createInterval, createTimeout, toDate } from '@jacobhumston/tc.js';

// Create a simple timeout
createTimeout(
    function () {
        console.log('2 seconds is up!');
    },
    { seconds: 2 }
);

// Create a simple counter
let count = 0;
createInterval(
    function () {
        count++;
        console.log(`Count: ${count}`); // Add 1 to the counter every minute
    },
    { minutes: 1 }
);

// Get a date 10 minutes in the future
const date = toDate('future', { minutes: 10 });
console.log('The date in 10 minutes will be: ' + date.toISOString());
```
npm package: @jacobjmarks/nicehash-api
Description: A Typescript interface to the [NiceHash API](https://www.nicehash.com/docs).
Author: Jacob Marks
Latest version: 0.0.2

# NiceHash API

A Typescript interface to the [NiceHash API](https://www.nicehash.com/docs).

🚨 Currently in development.

## Support my work

☕ [Buy me a coffee?](https://www.buymeacoffee.com/jacobjmarks)
npm package: @jacobjonsson/react-burger-menu
Description: [![Package size](https://badgen.net/bundlephobia/minzip/@jacobjonsson/react-burger-menu)](https://bundlephobia.com/result?p=@jacobjonsson/react-burger-menu)
Latest version: 0.0.4

# React burger menu

[![Package size](https://badgen.net/bundlephobia/minzip/@jacobjonsson/react-burger-menu)](https://bundlephobia.com/result?p=@jacobjonsson/react-burger-menu)

`react-burger-menu` provides a zero dependency left sliding burger menu.

## Usage

Install from npm

```sh
yarn add @jacobjonsson
```

```jsx
import { ReactBurgerMenu } from '@jacobjonsson/react-burger-menu';
// Include the base styles
import '@jacobjonsson/react-burger-menu/ReactBurgerMenu.css';

function App() {
  const [open, setOpen] = useState(false);

  return (
    <ReactBurgerMenu show={open} onOverlayClick={() => setOpen(false)}>
      <ul>
        <li>
          <a href="https://www.facebook.com">Facebook</a>
        </li>

        <li>
          <a href="https://www.instagram.com">Instagram</a>
        </li>

        <li>
          <a href="https://www.twitter.com">Twitter</a>
        </li>
      </ul>
    </ReactBurgerMenu>
  );
}
```

## Props

| Name           | Description                                        | Type       |
| -------------- | -------------------------------------------------- | ---------- |
| show           | Indicates if the menu should be shown or not       | boolean    |
| onOverlayClick | Will be called when the user clicks on the overlay | () => void |