pax_global_header 0000666 0000000 0000000 00000000064 14340072270 0014511 g ustar 00root root 0000000 0000000 52 comment=52ab642fa447419dca139ce29fad780dd61a27af
minipass-3.3.6/ 0000775 0000000 0000000 00000000000 14340072270 0013345 5 ustar 00root root 0000000 0000000 minipass-3.3.6/.github/ 0000775 0000000 0000000 00000000000 14340072270 0014705 5 ustar 00root root 0000000 0000000 minipass-3.3.6/.github/FUNDING.yml 0000664 0000000 0000000 00000000100 14340072270 0016511 0 ustar 00root root 0000000 0000000 # These are supported funding model platforms
github: [isaacs]
minipass-3.3.6/.github/workflows/ 0000775 0000000 0000000 00000000000 14340072270 0016742 5 ustar 00root root 0000000 0000000 minipass-3.3.6/.github/workflows/ci.yml 0000664 0000000 0000000 00000001507 14340072270 0020063 0 ustar 00root root 0000000 0000000 name: CI
on: [push, pull_request]
jobs:
build:
strategy:
matrix:
node-version: [12.x, 14.x, 16.x, 17.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
fail-fast: false
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- name: Checkout Repository
uses: actions/checkout@v1.1.0
- name: Use Nodejs ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Run Tests
run: npm test -- -c -t0
minipass-3.3.6/.github/workflows/commit-if-modified.sh 0000664 0000000 0000000 00000000432 14340072270 0022737 0 ustar 00root root 0000000 0000000 #!/usr/bin/env bash
git config --global user.email "$1"
shift
git config --global user.name "$1"
shift
message="$1"
shift
if [ $(git status --porcelain "$@" | egrep '^ M' | wc -l) -gt 0 ]; then
git add "$@"
git commit -m "$message"
git push || git pull --rebase
git push
fi
minipass-3.3.6/.github/workflows/copyright-year.sh 0000664 0000000 0000000 00000001001 14340072270 0022234 0 ustar 00root root 0000000 0000000 #!/usr/bin/env bash
dir=${1:-$PWD}
dates=($(git log --date=format:%Y --pretty=format:'%ad' --reverse | sort | uniq))
if [ "${#dates[@]}" -eq 1 ]; then
datestr="${dates}"
else
datestr="${dates}-${dates[${#dates[@]}-1]}"
fi
stripDate='s/^((.*)Copyright\b(.*?))((?:,\s*)?(([0-9]{4}\s*-\s*[0-9]{4})|(([0-9]{4},\s*)*[0-9]{4})))(?:,)?\s*(.*)\n$/$1$9\n/g'
addDate='s/^.*Copyright(?:\s*\(c\))? /Copyright \(c\) '$datestr' /g'
for l in $dir/LICENSE*; do
perl -pi -e "$stripDate" $l
perl -pi -e "$addDate" $l
done
minipass-3.3.6/.github/workflows/isaacs-makework.yml 0000664 0000000 0000000 00000002146 14340072270 0022551 0 ustar 00root root 0000000 0000000 name: "various tidying up tasks to silence nagging"
on:
push:
branches:
- main
workflow_dispatch:
jobs:
makework:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Use Node.js
uses: actions/setup-node@v2.1.4
with:
node-version: 16.x
- name: put repo in package.json
run: node .github/workflows/package-json-repo.js
- name: check in package.json if modified
run: |
bash -x .github/workflows/commit-if-modified.sh \
"package-json-repo-bot@example.com" \
"package.json Repo Bot" \
"chore: add repo to package.json" \
package.json package-lock.json
- name: put all dates in license copyright line
run: bash .github/workflows/copyright-year.sh
- name: check in licenses if modified
run: |
bash .github/workflows/commit-if-modified.sh \
"license-year-bot@example.com" \
"License Year Bot" \
"chore: add copyright year to license" \
LICENSE*
minipass-3.3.6/.github/workflows/package-json-repo.js 0000664 0000000 0000000 00000001056 14340072270 0022607 0 ustar 00root root 0000000 0000000 #!/usr/bin/env node
const pf = require.resolve(`${process.cwd()}/package.json`)
const pj = require(pf)
if (!pj.repository && process.env.GITHUB_REPOSITORY) {
const fs = require('fs')
const server = process.env.GITHUB_SERVER_URL || 'https://github.com'
const repo = `${server}/${process.env.GITHUB_REPOSITORY}`
pj.repository = repo
const json = fs.readFileSync(pf, 'utf8')
const match = json.match(/^\s*\{[\r\n]+([ \t]*)"/)
const indent = match[1]
const output = JSON.stringify(pj, null, indent || 2) + '\n'
fs.writeFileSync(pf, output)
}
minipass-3.3.6/.gitignore 0000664 0000000 0000000 00000000053 14340072270 0015333 0 ustar 00root root 0000000 0000000 .*.swp
node_modules
.nyc_output/
coverage/
minipass-3.3.6/LICENSE 0000664 0000000 0000000 00000001423 14340072270 0014352 0 ustar 00root root 0000000 0000000 The ISC License
Copyright (c) 2017-2022 npm, Inc., Isaac Z. Schlueter, and Contributors
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
minipass-3.3.6/README.md 0000664 0000000 0000000 00000061255 14340072270 0014635 0 ustar 00root root 0000000 0000000 # minipass
A _very_ minimal implementation of a [PassThrough
stream](https://nodejs.org/api/stream.html#stream_class_stream_passthrough)
[It's very
fast](https://docs.google.com/spreadsheets/d/1oObKSrVwLX_7Ut4Z6g3fZW-AX1j1-k6w-cDsrkaSbHM/edit#gid=0)
for objects, strings, and buffers.
Supports `pipe()`ing (including multi-`pipe()` and backpressure transmission),
buffering data until either a `data` event handler or `pipe()` is added (so
you don't lose the first chunk), and most other cases where PassThrough is
a good idea.
There is a `read()` method, but it's much more efficient to consume data
from this stream via `'data'` events or by calling `pipe()` into some other
stream. Calling `read()` requires the buffer to be flattened in some
cases, which requires copying memory.
If you set `objectMode: true` in the options, then whatever is written will
be emitted. Otherwise, it'll do a minimal amount of Buffer copying to
ensure proper Streams semantics when `read(n)` is called.
`objectMode` can also be set by doing `stream.objectMode = true`, or by
writing any non-string/non-buffer data. `objectMode` cannot be set to
false once it is set.
This is not a `through` or `through2` stream. It doesn't transform the
data, it just passes it right through. If you want to transform the data,
extend the class, and override the `write()` method. Once you're done
transforming the data however you want, call `super.write()` with the
transform output.
For some examples of streams that extend Minipass in various ways, check
out:
- [minizlib](http://npm.im/minizlib)
- [fs-minipass](http://npm.im/fs-minipass)
- [tar](http://npm.im/tar)
- [minipass-collect](http://npm.im/minipass-collect)
- [minipass-flush](http://npm.im/minipass-flush)
- [minipass-pipeline](http://npm.im/minipass-pipeline)
- [tap](http://npm.im/tap)
- [tap-parser](http://npm.im/tap-parser)
- [treport](http://npm.im/treport)
- [minipass-fetch](http://npm.im/minipass-fetch)
- [pacote](http://npm.im/pacote)
- [make-fetch-happen](http://npm.im/make-fetch-happen)
- [cacache](http://npm.im/cacache)
- [ssri](http://npm.im/ssri)
- [npm-registry-fetch](http://npm.im/npm-registry-fetch)
- [minipass-json-stream](http://npm.im/minipass-json-stream)
- [minipass-sized](http://npm.im/minipass-sized)
## Differences from Node.js Streams
There are several things that make Minipass streams different from (and in
some ways superior to) Node.js core streams.
Please read these caveats if you are familiar with node-core streams and
intend to use Minipass streams in your programs.
You can avoid most of these differences entirely (for a very
small performance penalty) by setting `{async: true}` in the
constructor options.
### Timing
Minipass streams are designed to support synchronous use-cases. Thus, data
is emitted as soon as it is available, always. It is buffered until read,
but no longer. Another way to look at it is that Minipass streams are
exactly as synchronous as the logic that writes into them.
This can be surprising if your code relies on `PassThrough.write()` always
providing data on the next tick rather than the current one, or being able
to call `resume()` and not have the entire buffer disappear immediately.
However, without this synchronicity guarantee, there would be no way for
Minipass to achieve the speeds it does, or support the synchronous use
cases that it does. Simply put, waiting takes time.
This non-deferring approach makes Minipass streams much easier to reason
about, especially in the context of Promises and other flow-control
mechanisms.
Example:
```js
const Minipass = require('minipass')
const stream = new Minipass({ async: true })
stream.on('data', () => console.log('data event'))
console.log('before write')
stream.write('hello')
console.log('after write')
// output:
// before write
// data event
// after write
```
### Exception: Async Opt-In
If you wish to have a Minipass stream with behavior that more
closely mimics Node.js core streams, you can set the stream in
async mode either by setting `async: true` in the constructor
options, or by setting `stream.async = true` later on.
```js
const Minipass = require('minipass')
const asyncStream = new Minipass({ async: true })
asyncStream.on('data', () => console.log('data event'))
console.log('before write')
asyncStream.write('hello')
console.log('after write')
// output:
// before write
// after write
// data event <-- this is deferred until the next tick
```
Switching _out_ of async mode is unsafe, as it could cause data
corruption, and so is not enabled. Example:
```js
const Minipass = require('minipass')
const stream = new Minipass({ encoding: 'utf8' })
stream.on('data', chunk => console.log(chunk))
stream.async = true
console.log('before writes')
stream.write('hello')
setStreamSyncAgainSomehow(stream) // <-- this doesn't actually exist!
stream.write('world')
console.log('after writes')
// hypothetical output would be:
// before writes
// world
// after writes
// hello
// NOT GOOD!
```
To avoid this problem, once set into async mode, any attempt to
make the stream sync again will be ignored.
```js
const Minipass = require('minipass')
const stream = new Minipass({ encoding: 'utf8' })
stream.on('data', chunk => console.log(chunk))
stream.async = true
console.log('before writes')
stream.write('hello')
stream.async = false // <-- no-op, stream already async
stream.write('world')
console.log('after writes')
// actual output:
// before writes
// after writes
// hello
// world
```
### No High/Low Water Marks
Node.js core streams will optimistically fill up a buffer, returning `true`
on all writes until the limit is hit, even if the data has nowhere to go.
Then, they will not attempt to draw more data in until the buffer size dips
below a minimum value.
Minipass streams are much simpler. The `write()` method will return `true`
if the data has somewhere to go (which is to say, given the timing
guarantees, that the data is already there by the time `write()` returns).
If the data has nowhere to go, then `write()` returns false, and the data
sits in a buffer, to be drained out immediately as soon as anyone consumes
it.
Since nothing is ever buffered unnecessarily, there is much less
copying data, and less bookkeeping about buffer capacity levels.
### Hazards of Buffering (or: Why Minipass Is So Fast)
Since data written to a Minipass stream is immediately written all the way
through the pipeline, and `write()` always returns true/false based on
whether the data was fully flushed, backpressure is communicated
immediately to the upstream caller. This minimizes buffering.
Consider this case:
```js
const {PassThrough} = require('stream')
const p1 = new PassThrough({ highWaterMark: 1024 })
const p2 = new PassThrough({ highWaterMark: 1024 })
const p3 = new PassThrough({ highWaterMark: 1024 })
const p4 = new PassThrough({ highWaterMark: 1024 })
p1.pipe(p2).pipe(p3).pipe(p4)
p4.on('data', () => console.log('made it through'))
// this returns false and buffers, then writes to p2 on next tick (1)
// p2 returns false and buffers, pausing p1, then writes to p3 on next tick (2)
// p3 returns false and buffers, pausing p2, then writes to p4 on next tick (3)
// p4 returns false and buffers, pausing p3, then emits 'data' and 'drain'
// on next tick (4)
// p3 sees p4's 'drain' event, and calls resume(), emitting 'resume' and
// 'drain' on next tick (5)
// p2 sees p3's 'drain', calls resume(), emits 'resume' and 'drain' on next tick (6)
// p1 sees p2's 'drain', calls resume(), emits 'resume' and 'drain' on next
// tick (7)
p1.write(Buffer.alloc(2048)) // returns false
```
Along the way, the data was buffered and deferred at each stage, and
multiple event deferrals happened, for an unblocked pipeline where it was
perfectly safe to write all the way through!
Furthermore, setting a `highWaterMark` of `1024` might lead someone reading
the code to think an advisory maximum of 1KiB is being set for the
pipeline. However, the actual advisory buffering level is the _sum_ of
`highWaterMark` values, since each one has its own bucket.
Consider the Minipass case:
```js
const m1 = new Minipass()
const m2 = new Minipass()
const m3 = new Minipass()
const m4 = new Minipass()
m1.pipe(m2).pipe(m3).pipe(m4)
m4.on('data', () => console.log('made it through'))
// m1 is flowing, so it writes the data to m2 immediately
// m2 is flowing, so it writes the data to m3 immediately
// m3 is flowing, so it writes the data to m4 immediately
// m4 is flowing, so it fires the 'data' event immediately, returns true
// m4's write returned true, so m3 is still flowing, returns true
// m3's write returned true, so m2 is still flowing, returns true
// m2's write returned true, so m1 is still flowing, returns true
// No event deferrals or buffering along the way!
m1.write(Buffer.alloc(2048)) // returns true
```
It is extremely unlikely that you _don't_ want to buffer any data written,
or _ever_ buffer data that can be flushed all the way through. Neither
node-core streams nor Minipass ever fail to buffer written data, but
node-core streams do a lot of unnecessary buffering and pausing.
As always, the faster implementation is the one that does less stuff and
waits less time to do it.
### Immediately emit `end` for empty streams (when not paused)
If a stream is not paused, and `end()` is called before writing any data
into it, then it will emit `end` immediately.
If you have logic that occurs on the `end` event which you don't want to
potentially happen immediately (for example, closing file descriptors,
moving on to the next entry in an archive parse stream, etc.) then be sure
to call `stream.pause()` on creation, and then `stream.resume()` once you
are ready to respond to the `end` event.
However, this is _usually_ not a problem because:
### Emit `end` When Asked
One hazard of immediately emitting `'end'` is that you may not yet have had
a chance to add a listener. In order to avoid this hazard, Minipass
streams safely re-emit the `'end'` event if a new listener is added after
`'end'` has been emitted.
Ie, if you do `stream.on('end', someFunction)`, and the stream has already
emitted `end`, then it will call the handler right away. (You can think of
this somewhat like attaching a new `.then(fn)` to a previously-resolved
Promise.)
To prevent calling handlers multiple times who would not expect multiple
ends to occur, all listeners are removed from the `'end'` event whenever it
is emitted.
### Emit `error` When Asked
The most recent error object passed to the `'error'` event is
stored on the stream. If a new `'error'` event handler is added,
and an error was previously emitted, then the event handler will
be called immediately (or on `process.nextTick` in the case of
async streams).
This makes it much more difficult to end up trying to interact
with a broken stream, if the error handler is added after an
error was previously emitted.
### Impact of "immediate flow" on Tee-streams
A "tee stream" is a stream piping to multiple destinations:
```js
const tee = new Minipass()
t.pipe(dest1)
t.pipe(dest2)
t.write('foo') // goes to both destinations
```
Since Minipass streams _immediately_ process any pending data through the
pipeline when a new pipe destination is added, this can have surprising
effects, especially when a stream comes in from some other function and may
or may not have data in its buffer.
```js
// WARNING! WILL LOSE DATA!
const src = new Minipass()
src.write('foo')
src.pipe(dest1) // 'foo' chunk flows to dest1 immediately, and is gone
src.pipe(dest2) // gets nothing!
```
One solution is to create a dedicated tee-stream junction that pipes to
both locations, and then pipe to _that_ instead.
```js
// Safe example: tee to both places
const src = new Minipass()
src.write('foo')
const tee = new Minipass()
tee.pipe(dest1)
tee.pipe(dest2)
src.pipe(tee) // tee gets 'foo', pipes to both locations
```
The same caveat applies to `on('data')` event listeners. The first one
added will _immediately_ receive all of the data, leaving nothing for the
second:
```js
// WARNING! WILL LOSE DATA!
const src = new Minipass()
src.write('foo')
src.on('data', handler1) // receives 'foo' right away
src.on('data', handler2) // nothing to see here!
```
Using a dedicated tee-stream can be used in this case as well:
```js
// Safe example: tee to both data handlers
const src = new Minipass()
src.write('foo')
const tee = new Minipass()
tee.on('data', handler1)
tee.on('data', handler2)
src.pipe(tee)
```
All of the hazards in this section are avoided by setting `{
async: true }` in the Minipass constructor, or by setting
`stream.async = true` afterwards. Note that this does add some
overhead, so should only be done in cases where you are willing
to lose a bit of performance in order to avoid having to refactor
program logic.
## USAGE
It's a stream! Use it like a stream and it'll most likely do what you
want.
```js
const Minipass = require('minipass')
const mp = new Minipass(options) // optional: { encoding, objectMode }
mp.write('foo')
mp.pipe(someOtherStream)
mp.end('bar')
```
### OPTIONS
* `encoding` How would you like the data coming _out_ of the stream to be
encoded? Accepts any values that can be passed to `Buffer.toString()`.
* `objectMode` Emit data exactly as it comes in. This will be flipped on
by default if you write() something other than a string or Buffer at any
point. Setting `objectMode: true` will prevent setting any encoding
value.
* `async` Defaults to `false`. Set to `true` to defer data
emission until next tick. This reduces performance slightly,
but makes Minipass streams use timing behavior closer to Node
core streams. See [Timing](#timing) for more details.
### API
Implements the user-facing portions of Node.js's `Readable` and `Writable`
streams.
### Methods
* `write(chunk, [encoding], [callback])` - Put data in. (Note that, in the
base Minipass class, the same data will come out.) Returns `false` if
the stream will buffer the next write, or true if it's still in "flowing"
mode.
* `end([chunk, [encoding]], [callback])` - Signal that you have no more
data to write. This will queue an `end` event to be fired when all the
data has been consumed.
* `setEncoding(encoding)` - Set the encoding for data coming of the stream.
This can only be done once.
* `pause()` - No more data for a while, please. This also prevents `end`
from being emitted for empty streams until the stream is resumed.
* `resume()` - Resume the stream. If there's data in the buffer, it is all
discarded. Any buffered events are immediately emitted.
* `pipe(dest)` - Send all output to the stream provided. When
data is emitted, it is immediately written to any and all pipe
destinations. (Or written on next tick in `async` mode.)
* `unpipe(dest)` - Stop piping to the destination stream. This
is immediate, meaning that any asynchronously queued data will
_not_ make it to the destination when running in `async` mode.
* `options.end` - Boolean, end the destination stream when
the source stream ends. Default `true`.
* `options.proxyErrors` - Boolean, proxy `error` events from
the source stream to the destination stream. Note that
errors are _not_ proxied after the pipeline terminates,
either due to the source emitting `'end'` or manually
unpiping with `src.unpipe(dest)`. Default `false`.
* `on(ev, fn)`, `emit(ev, fn)` - Minipass streams are EventEmitters. Some
events are given special treatment, however. (See below under "events".)
* `promise()` - Returns a Promise that resolves when the stream emits
`end`, or rejects if the stream emits `error`.
* `collect()` - Return a Promise that resolves on `end` with an array
containing each chunk of data that was emitted, or rejects if the stream
emits `error`. Note that this consumes the stream data.
* `concat()` - Same as `collect()`, but concatenates the data into a single
Buffer object. Will reject the returned promise if the stream is in
objectMode, or if it goes into objectMode by the end of the data.
* `read(n)` - Consume `n` bytes of data out of the buffer. If `n` is not
provided, then consume all of it. If `n` bytes are not available, then
it returns null. **Note** consuming streams in this way is less
efficient, and can lead to unnecessary Buffer copying.
* `destroy([er])` - Destroy the stream. If an error is provided, then an
`'error'` event is emitted. If the stream has a `close()` method, and
has not emitted a `'close'` event yet, then `stream.close()` will be
called. Any Promises returned by `.promise()`, `.collect()` or
`.concat()` will be rejected. After being destroyed, writing to the
stream will emit an error. No more data will be emitted if the stream is
destroyed, even if it was previously buffered.
### Properties
* `bufferLength` Read-only. Total number of bytes buffered, or in the case
of objectMode, the total number of objects.
* `encoding` The encoding that has been set. (Setting this is equivalent
to calling `setEncoding(enc)` and has the same prohibition against
setting multiple times.)
* `flowing` Read-only. Boolean indicating whether a chunk written to the
stream will be immediately emitted.
* `emittedEnd` Read-only. Boolean indicating whether the end-ish events
(ie, `end`, `prefinish`, `finish`) have been emitted. Note that
listening on any end-ish event will immediateyl re-emit it if it has
already been emitted.
* `writable` Whether the stream is writable. Default `true`. Set to
`false` when `end()`
* `readable` Whether the stream is readable. Default `true`.
* `buffer` A [yallist](http://npm.im/yallist) linked list of chunks written
to the stream that have not yet been emitted. (It's probably a bad idea
to mess with this.)
* `pipes` A [yallist](http://npm.im/yallist) linked list of streams that
this stream is piping into. (It's probably a bad idea to mess with
this.)
* `destroyed` A getter that indicates whether the stream was destroyed.
* `paused` True if the stream has been explicitly paused, otherwise false.
* `objectMode` Indicates whether the stream is in `objectMode`. Once set
to `true`, it cannot be set to `false`.
### Events
* `data` Emitted when there's data to read. Argument is the data to read.
This is never emitted while not flowing. If a listener is attached, that
will resume the stream.
* `end` Emitted when there's no more data to read. This will be emitted
immediately for empty streams when `end()` is called. If a listener is
attached, and `end` was already emitted, then it will be emitted again.
All listeners are removed when `end` is emitted.
* `prefinish` An end-ish event that follows the same logic as `end` and is
emitted in the same conditions where `end` is emitted. Emitted after
`'end'`.
* `finish` An end-ish event that follows the same logic as `end` and is
emitted in the same conditions where `end` is emitted. Emitted after
`'prefinish'`.
* `close` An indication that an underlying resource has been released.
Minipass does not emit this event, but will defer it until after `end`
has been emitted, since it throws off some stream libraries otherwise.
* `drain` Emitted when the internal buffer empties, and it is again
suitable to `write()` into the stream.
* `readable` Emitted when data is buffered and ready to be read by a
consumer.
* `resume` Emitted when stream changes state from buffering to flowing
mode. (Ie, when `resume` is called, `pipe` is called, or a `data` event
listener is added.)
### Static Methods
* `Minipass.isStream(stream)` Returns `true` if the argument is a stream,
and false otherwise. To be considered a stream, the object must be
either an instance of Minipass, or an EventEmitter that has either a
`pipe()` method, or both `write()` and `end()` methods. (Pretty much any
stream in node-land will return `true` for this.)
## EXAMPLES
Here are some examples of things you can do with Minipass streams.
### simple "are you done yet" promise
```js
mp.promise().then(() => {
// stream is finished
}, er => {
// stream emitted an error
})
```
### collecting
```js
mp.collect().then(all => {
// all is an array of all the data emitted
// encoding is supported in this case, so
// so the result will be a collection of strings if
// an encoding is specified, or buffers/objects if not.
//
// In an async function, you may do
// const data = await stream.collect()
})
```
### collecting into a single blob
This is a bit slower because it concatenates the data into one chunk for
you, but if you're going to do it yourself anyway, it's convenient this
way:
```js
mp.concat().then(onebigchunk => {
// onebigchunk is a string if the stream
// had an encoding set, or a buffer otherwise.
})
```
### iteration
You can iterate over streams synchronously or asynchronously in platforms
that support it.
Synchronous iteration will end when the currently available data is
consumed, even if the `end` event has not been reached. In string and
buffer mode, the data is concatenated, so unless multiple writes are
occurring in the same tick as the `read()`, sync iteration loops will
generally only have a single iteration.
To consume chunks in this way exactly as they have been written, with no
flattening, create the stream with the `{ objectMode: true }` option.
```js
const mp = new Minipass({ objectMode: true })
mp.write('a')
mp.write('b')
for (let letter of mp) {
console.log(letter) // a, b
}
mp.write('c')
mp.write('d')
for (let letter of mp) {
console.log(letter) // c, d
}
mp.write('e')
mp.end()
for (let letter of mp) {
console.log(letter) // e
}
for (let letter of mp) {
console.log(letter) // nothing
}
```
Asynchronous iteration will continue until the end event is reached,
consuming all of the data.
```js
const mp = new Minipass({ encoding: 'utf8' })
// some source of some data
let i = 5
const inter = setInterval(() => {
if (i-- > 0)
mp.write(Buffer.from('foo\n', 'utf8'))
else {
mp.end()
clearInterval(inter)
}
}, 100)
// consume the data with asynchronous iteration
async function consume () {
for await (let chunk of mp) {
console.log(chunk)
}
return 'ok'
}
consume().then(res => console.log(res))
// logs `foo\n` 5 times, and then `ok`
```
### subclass that `console.log()`s everything written into it
```js
class Logger extends Minipass {
write (chunk, encoding, callback) {
console.log('WRITE', chunk, encoding)
return super.write(chunk, encoding, callback)
}
end (chunk, encoding, callback) {
console.log('END', chunk, encoding)
return super.end(chunk, encoding, callback)
}
}
someSource.pipe(new Logger()).pipe(someDest)
```
### same thing, but using an inline anonymous class
```js
// js classes are fun
someSource
.pipe(new (class extends Minipass {
emit (ev, ...data) {
// let's also log events, because debugging some weird thing
console.log('EMIT', ev)
return super.emit(ev, ...data)
}
write (chunk, encoding, callback) {
console.log('WRITE', chunk, encoding)
return super.write(chunk, encoding, callback)
}
end (chunk, encoding, callback) {
console.log('END', chunk, encoding)
return super.end(chunk, encoding, callback)
}
}))
.pipe(someDest)
```
### subclass that defers 'end' for some reason
```js
class SlowEnd extends Minipass {
emit (ev, ...args) {
if (ev === 'end') {
console.log('going to end, hold on a sec')
setTimeout(() => {
console.log('ok, ready to end now')
super.emit('end', ...args)
}, 100)
} else {
return super.emit(ev, ...args)
}
}
}
```
### transform that creates newline-delimited JSON
```js
class NDJSONEncode extends Minipass {
write (obj, cb) {
try {
// JSON.stringify can throw, emit an error on that
return super.write(JSON.stringify(obj) + '\n', 'utf8', cb)
} catch (er) {
this.emit('error', er)
}
}
end (obj, cb) {
if (typeof obj === 'function') {
cb = obj
obj = undefined
}
if (obj !== undefined) {
this.write(obj)
}
return super.end(cb)
}
}
```
### transform that parses newline-delimited JSON
```js
class NDJSONDecode extends Minipass {
constructor (options) {
// always be in object mode, as far as Minipass is concerned
super({ objectMode: true })
this._jsonBuffer = ''
}
write (chunk, encoding, cb) {
if (typeof chunk === 'string' &&
typeof encoding === 'string' &&
encoding !== 'utf8') {
chunk = Buffer.from(chunk, encoding).toString()
} else if (Buffer.isBuffer(chunk))
chunk = chunk.toString()
}
if (typeof encoding === 'function') {
cb = encoding
}
const jsonData = (this._jsonBuffer + chunk).split('\n')
this._jsonBuffer = jsonData.pop()
for (let i = 0; i < jsonData.length; i++) {
try {
// JSON.parse can throw, emit an error on that
super.write(JSON.parse(jsonData[i]))
} catch (er) {
this.emit('error', er)
continue
}
}
if (cb)
cb()
}
}
```
minipass-3.3.6/bench/ 0000775 0000000 0000000 00000000000 14340072270 0014424 5 ustar 00root root 0000000 0000000 minipass-3.3.6/bench/README.md 0000664 0000000 0000000 00000002525 14340072270 0015707 0 ustar 00root root 0000000 0000000 Stream Benchmarks
Run `node index.js` to benchmark all the different stream implementations
with the following configurations:
- `implementation` One of the implementations in `./impls`
- `case` How is the data emitted and how is it consumed?
- `fast-fast` Source emits data as fast as possible, destination
consumes it immediately.
- `fast-slow` Source emits data as fast as possible, destination
consumes one chunk per Promise cycle.
- `slow-fast` Source emits one data per Promise cycle, destination
consumes it immediately.
- `slow-slow` Source emits one data per Promise cycle, destination
consumes one chunk per Promise cycle.
- `fast-mixed` Source emits data as fast as possible, data is piped to
one fast destination stream and one slow destination stream.
- `pipeline` How many instances of the tested implementation are piped
together between the source and destination? Tested with `1` and `20` by
default.
- `type` What kind of data is written?
- `defaults` a buffer
- `str` a string
- `obj` the object `{i: 'object'}`
Results are written to the `./results` folder for each test case, and to
`results.json` and `results.tab`.
See [this google
sheet](https://docs.google.com/spreadsheets/d/1K_HR5oh3r80b8WVMWCPPjfuWXUgfkmhlX7FGI6JJ8tY/edit?usp=sharing)
for analysis and comparisons.
minipass-3.3.6/bench/impls/ 0000775 0000000 0000000 00000000000 14340072270 0015550 5 ustar 00root root 0000000 0000000 minipass-3.3.6/bench/impls/README.md 0000664 0000000 0000000 00000001255 14340072270 0017032 0 ustar 00root root 0000000 0000000 To add a new stream type to test, create a file here that exports a
function or class that can be called with `s = new Class(options)`, where
`options` can include `{encoding: 'utf8'}` or `{objectMode: true}`.
The returned object must implement at minimum the following subset of the
stream interface:
* `on(event, fn)` call `fn` when `event` happens
* `write(data)` where `data` will be an object, string, or buffer. Return
`true` if more data should be written, `false` otherwise. Emit `drain`
when ready for more data if `false` is written.
* `end()` no further data will be written, emit `'finish'` when all data
processed
* `pipe(dest)` pipe all output to `dest` stream
minipass-3.3.6/bench/impls/baseline.js 0000664 0000000 0000000 00000000517 14340072270 0017673 0 ustar 00root root 0000000 0000000 // piping to /dev/null
module.exports = class BaselineNoOpStream {
constructor () {
this.pipeDests = []
}
write () { return true }
end () {
this.pipeDests.forEach(d => d.end())
return this
}
pipe (d) {
this.pipeDests.push(d)
return d
}
read () { return null }
on () { return this }
emit () {}
}
minipass-3.3.6/bench/impls/core-extend-transform.js 0000664 0000000 0000000 00000000331 14340072270 0022331 0 ustar 00root root 0000000 0000000 const stream = require('stream')
module.exports = class ExtendTransform extends stream.Transform {
constructor (opts) {
super(opts)
}
_transform (data, enc, done) {
this.push(data, enc)
done()
}
}
minipass-3.3.6/bench/impls/core-passthrough.js 0000664 0000000 0000000 00000000057 14340072270 0021405 0 ustar 00root root 0000000 0000000 module.exports = require('stream').PassThrough
minipass-3.3.6/bench/impls/extend-minipass-current.js 0000664 0000000 0000000 00000000317 14340072270 0022677 0 ustar 00root root 0000000 0000000 const Minipass = require('../..')
module.exports = class ExtendMinipass extends Minipass {
constructor (opts) {
super(opts)
}
write (data, encoding) {
return super.write(data, encoding)
}
}
minipass-3.3.6/bench/impls/extend-minipass.js 0000664 0000000 0000000 00000000322 14340072270 0021213 0 ustar 00root root 0000000 0000000 const Minipass = require('minipass')
module.exports = class ExtendMinipass extends Minipass {
constructor (opts) {
super(opts)
}
write (data, encoding) {
return super.write(data, encoding)
}
}
minipass-3.3.6/bench/impls/extend-through2.js 0000664 0000000 0000000 00000000450 14340072270 0021134 0 ustar 00root root 0000000 0000000 const through2 = require('through2')
module.exports = function (opts) {
if (opts.objectMode)
return through2.obj(func)
s = through2(func)
if (opts.encoding) {
s.setEncoding(opts.encoding)
}
return s
function func (data, enc, done) {
this.push(data, enc)
done()
}
}
minipass-3.3.6/bench/impls/minipass-current-async.js 0000664 0000000 0000000 00000000235 14340072270 0022524 0 ustar 00root root 0000000 0000000 const Minipass = require('../..')
module.exports = class extends Minipass {
constructor (options = {}) {
options.async = true
super(options)
}
}
minipass-3.3.6/bench/impls/minipass-current.js 0000664 0000000 0000000 00000000042 14340072270 0021405 0 ustar 00root root 0000000 0000000 module.exports = require('../..')
minipass-3.3.6/bench/impls/minipass-latest.js 0000664 0000000 0000000 00000000045 14340072270 0021222 0 ustar 00root root 0000000 0000000 module.exports = require('minipass')
minipass-3.3.6/bench/impls/push-through.js 0000664 0000000 0000000 00000004024 14340072270 0020543 0 ustar 00root root 0000000 0000000 // This is a minimal non-EE stream class inspired by push-stream
// It can support multiple outputs, but only one input.
class PushThrough {
constructor (opt) {
this.dests = []
this.paused = false
this.buffer = []
this.ended = false
this.ondrain = []
this.onfinish = []
}
on (ev, fn) {
switch (ev) {
case 'error': break
case 'finish':
this.onfinish.push(fn)
break
case 'drain':
this.ondrain.push(fn)
break
default:
throw new Error(`event ${ev} not supported`)
}
}
once (ev, fn) {
const f = () => {
fn()
this[`on${ev}`] = this[`on${ev}`].filter(fn => fn !== f)
}
this.on(ev, f)
}
emit (ev) {
switch (ev) {
case 'finish':
this.onfinish.forEach(f => f())
break
case 'drain':
this.ondrain.forEach(f => f())
break
default:
throw new Error(`event ${ev} not supported`)
}
}
pipe (dest) {
this.dests.push(dest)
dest.on('drain', () => this.resume())
this.resume()
}
resume () {
this.paused = false
if (this.buffer.length) {
const b = this.buffer.slice(0)
this.buffer.length = 0
for (const c of b) {
for (const dest of this.dests) {
const ret = dest.write(c)
this.paused = this.paused || ret === false
}
}
}
if (this.buffer.length === 0) this.emit('drain')
if (this.ended && this.buffer.length === 0) {
for (const d of this.dests) {
d.end()
}
this.emit('finish')
}
}
pause () {
this.paused = true
}
write (chunk) {
if (this.ended) {
throw new Error('write after end')
}
if (!this.dests.length || this.paused) {
this.buffer.push(chunk)
return false
}
for (const dest of this.dests) {
const ret = dest.write(chunk)
this.paused = this.paused || ret === false
}
return !this.paused
}
end () {
this.ended = true
this.resume()
}
}
module.exports = PushThrough
minipass-3.3.6/bench/impls/through2.js 0000664 0000000 0000000 00000000323 14340072270 0017646 0 ustar 00root root 0000000 0000000 const through2 = require('through2')
module.exports = function (opts) {
if (opts.objectMode)
return through2.obj()
s = through2()
if (opts.encoding) {
s.setEncoding(opts.encoding)
}
return s
}
minipass-3.3.6/bench/impls/web-std.js.REMOVED-GH-42157 0000664 0000000 0000000 00000000533 14340072270 0021530 0 ustar 00root root 0000000 0000000 const { TransformStream: WebTS } = require('stream/web')
const { Transform: NodeTS } = require('stream')
module.exports = function PassthroughFromWeb (opt) {
if (opt.objectMode) {
throw new Error('object mode not supported')
}
const s = NodeTS.fromWeb(new WebTS())
if (opt.encoding) {
s.setEncoding(opt.encoding)
}
return s
}
minipass-3.3.6/bench/index.js 0000664 0000000 0000000 00000016454 14340072270 0016103 0 ustar 00root root 0000000 0000000 // if you go much higher the core streams just choke and take forever lol
const N = Math.floor(128*1024 / Math.PI)
const fs = require('fs')
// const { basename } = require('path')
// const impls = fs.readdirSync(__dirname + '/impls')
// .filter(f => /\.js$/.test(f)).map(f => basename(f, '.js'))
const impls = [
'baseline',
'minipass-latest',
'minipass-current',
'minipass-current-async',
'extend-minipass-current',
'core-extend-transform',
'core-passthrough',
]
const promiseSpawn = require('@npmcli/promise-spawn')
const main = async () => {
const [node, _, impl, cse, len, type] = process.argv
const opt = { stdioString: true, stdio: ['ignore', 'pipe', 'inherit'] }
const results = {}
if (impl === undefined) {
// run against all implementations
const a = [__filename]
for (const i of impls) {
const res = await promiseSpawn(process.execPath, [...a, i], opt)
.catch(e => e)
try {
results[i] = JSON.parse(res.stdout)
} catch (e) {
results[i] = e
}
}
} else if (cse === undefined) {
const a = [__filename, impl]
for (const c of cases) {
const res = await promiseSpawn(process.execPath, [...a, c], opt)
.catch(e => e)
try {
results[c] = JSON.parse(res.stdout)
} catch (e) {
results[c] = e
}
}
} else if (len === undefined) {
const a = [__filename, impl, cse]
for (const l of pipeLen) {
const res = await promiseSpawn(process.execPath, [...a, l], opt)
.catch(e => e)
try {
results[l] = JSON.parse(res.stdout)
} catch (e) {
results[l] = e
}
}
} else {
const fs = require('fs')
const dir = __dirname + '/results'
fs.mkdirSync(dir, { recursive: true })
// ok, actually run this one case and return the score
const opts = {
defaults: {},
str: {encoding:'utf8'},
obj: {objectMode: true},
}
const typeOpts = type ? [[type, opts[type]]] : Object.entries(opts)
for (const [name, opt] of typeOpts) {
await new Promise((res, rej) => {
process.stderr.write(`${impl} ${cse} ${len} ${name} ... `)
const { src, start, dest, dest2 } = setupPipeline(impl, len, cse, opt)
const end = () => {
const result = performance.now() - startTime
results[name] = result
console.error(result)
res()
}
let ended1 = false
let ended2 = !dest2
if (dest2) {
dest2.on('finish', () => {
if (ended2) throw new Error('emitted multiple dest2.finish')
ended2 = true
if (ended1) {
end()
}
})
}
dest.on('finish', () => {
if (ended1) throw new Error('emitted multiple dest1.finish')
ended1 = true
if (ended2) {
end()
}
})
// kick it off!
const startTime = performance.now()
src.pipe(start).on('error', rej)
}).catch(e => results[name] = e)
}
fs.writeFileSync(`${dir}/${impl}-${cse}-${len}.json`,
JSON.stringify(results, 0, 2))
}
console.log(JSON.stringify(results, 0, 2))
fs.writeFileSync('results.json', JSON.stringify(results, 0, 2) + '\n')
// write out the results.tab from the top level
if (impl === undefined) {
const header = ['impl', 'case', 'pipeline', 'type', 'time', 'score']
const rows = []
let max = -1
for (const [impl, iRes] of Object.entries(results)) {
for (const [cse, cRes] of Object.entries(iRes)) {
for (const [len, lRes] of Object.entries(cRes)) {
for (const [type, time] of Object.entries(lRes)) {
max = Math.max(max, time)
rows.push([impl, cse, len, type, time])
}
}
}
}
for (const row of rows) {
row.push(max / row[row.length - 1])
}
const output = [header].concat(rows.sort((a, b) => a[a.length-1] - b[b.length-1]))
.map(row => row.join('\t'))
.join('\n') + '\n'
fs.writeFileSync(__dirname + '/results.tab', output)
}
}
// is the src and dest fast or slow?
const cases = [
'fast-fast',
'fast-slow',
'slow-fast',
'slow-slow',
'fast-mixed', // two dests: 1 fast, 1 slow
]
// how many of the stream under test piped together?
const pipeLen = [ 1, 20 ]
const EE = require('events')
const setupPipeline = (impl, len, cse, opt) => {
const Cls = require(`./impls/${impl}.js`)
let s = new Cls(opt)
let start = s
while (len > 1) {
s = s.pipe(new Cls(opt))
len --
}
let src
let dest
let dest2
switch (cse) {
case 'fast-fast':
src = new FastSrc(opt)
dest = new FastDest(opt)
break
case 'fast-slow':
src = new FastSrc(opt)
dest = new SlowDest(opt)
break
case 'slow-fast':
src = new SlowSrc(opt)
dest = new FastDest(opt)
break
case 'slow-slow':
src = new SlowSrc(opt)
dest = new SlowDest(opt)
break
case 'fast-mixed':
src = new FastSrc(opt)
dest = new FastDest(opt)
dest2 = new SlowDest(opt)
break
default:
throw new Error('unknown case: ' + cse)
}
s.pipe(dest)
if (dest2) {
s.pipe(dest2)
}
return { src, start, dest, dest2 }
}
class Src extends EE {
constructor (options) {
super()
this.chunk = options.objectMode ? { i: 'object' }
: options.encoding ? 'x'.repeat(N)
: Buffer.from('x'.repeat(N))
this.n = N
this.flowing = false
this.readable = true
this.writable = false
}
pipe (dest) {
dest.on('drain', () => this.resume())
this.on('data', c => dest.write(c) === false ? this.pause() : true)
this.on('end', () => dest.end())
this.resume()
return dest
}
pause () {
this.flowing = false
}
}
class FastSrc extends Src {
resume () {
if (this.flowing) {
return
}
this.flowing = true
while (this.n > 0 && this.flowing) {
this.emit('data', this.chunk)
this.n --
}
if (this.flowing && this.n === 0) {
this.emit('end')
}
}
}
class SlowSrc extends Src {
resume () {
if (this.flowing) {
return
}
this.flowing = true
const doResume = () => {
if (!this.flowing ) {
return
}
if (this.flowing && this.n > 0) {
this.emit('data', this.chunk)
this.n --
return Promise.resolve().then(doResume)
}
if (this.flowing && this.n <= 0) {
this.emit('end')
return
}
}
Promise.resolve().then(doResume)
}
}
class Dest extends EE {
constructor () {
super()
this.writable = true
this.readable = false
this.ended = false
this.buffering = false
}
}
class FastDest extends Dest {
write (c) {
if (this.ended) {
throw new Error('write after end in '+this.constructor.name)
}
return true
}
end () {
this.ended = true
return this.emit('finish')
}
}
class SlowDest extends Dest {
write (c) {
if (this.ended) {
throw new Error('write after end in '+this.constructor.name)
}
this.buffering = true
Promise.resolve().then(() => {
this.buffering = false
this.emit('drain')
})
return false
}
end () {
this.ended = true
if (this.buffering) {
this.once('drain', () => this.end())
} else {
Promise.resolve().then(() => this.emit('finish'))
}
return this
}
}
main()
minipass-3.3.6/bench/package-lock.json 0000664 0000000 0000000 00000016146 14340072270 0017650 0 ustar 00root root 0000000 0000000 {
"name": "bench",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"dependencies": {
"@npmcli/promise-spawn": "^2.0.0",
"@web-std/stream": "^1.0.1",
"minipass": "latest",
"through2": "^4.0.2"
}
},
"node_modules/@npmcli/promise-spawn": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-2.0.1.tgz",
"integrity": "sha512-7b5KiY/LEpUPqslzOA3v8aZrFmn2z7sLRw3aRDEgRipx0b7vZtQlb9FiMg6azzGuLyLTKuyvwgKPfixuV1tqKA=="
},
"node_modules/@web-std/stream": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@web-std/stream/-/stream-1.0.1.tgz",
"integrity": "sha512-tsz4Y0WNDgFA5jwLSeV7/UV5rfMIlj0cPsSLVfTihjaVW0OJPd5NxJ3le1B3yLyqqzRpeG5OAfJAADLc4VoGTA==",
"dependencies": {
"web-streams-polyfill": "^3.1.1"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/minipass": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
"integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/through2": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
"integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
"dependencies": {
"readable-stream": "3"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"node_modules/web-streams-polyfill": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
"engines": {
"node": ">= 8"
}
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
},
"dependencies": {
"@npmcli/promise-spawn": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-2.0.1.tgz",
"integrity": "sha512-7b5KiY/LEpUPqslzOA3v8aZrFmn2z7sLRw3aRDEgRipx0b7vZtQlb9FiMg6azzGuLyLTKuyvwgKPfixuV1tqKA=="
},
"@web-std/stream": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@web-std/stream/-/stream-1.0.1.tgz",
"integrity": "sha512-tsz4Y0WNDgFA5jwLSeV7/UV5rfMIlj0cPsSLVfTihjaVW0OJPd5NxJ3le1B3yLyqqzRpeG5OAfJAADLc4VoGTA==",
"requires": {
"web-streams-polyfill": "^3.1.1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"minipass": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
"integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
"requires": {
"yallist": "^4.0.0"
}
},
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
}
},
"through2": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
"integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
"requires": {
"readable-stream": "3"
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"web-streams-polyfill": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q=="
},
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
}
}
minipass-3.3.6/bench/package.json 0000664 0000000 0000000 00000000227 14340072270 0016713 0 ustar 00root root 0000000 0000000 {
"dependencies": {
"@npmcli/promise-spawn": "^2.0.0",
"@web-std/stream": "^1.0.1",
"minipass": "latest",
"through2": "^4.0.2"
}
}
minipass-3.3.6/bench/results.json 0000664 0000000 0000000 00000023705 14340072270 0017027 0 ustar 00root root 0000000 0000000 {
"baseline": {
"fast-fast": {
"1": {
"defaults": 3.329833984375,
"str": 2.8888330459594727,
"obj": 1.9252495765686035
},
"20": {
"defaults": 3.4190421104431152,
"str": 2.601707935333252,
"obj": 1.685542106628418
}
},
"fast-slow": {
"1": {
"defaults": 3.585207939147949,
"str": 2.7080001831054688,
"obj": 1.7782092094421387
},
"20": {
"defaults": 3.566500186920166,
"str": 2.587916851043701,
"obj": 1.745542049407959
}
},
"slow-fast": {
"1": {
"defaults": 7.4960408210754395,
"str": 7.6979169845581055,
"obj": 5.522083282470703
},
"20": {
"defaults": 7.44379186630249,
"str": 7.8836669921875,
"obj": 5.76891565322876
}
},
"slow-slow": {
"1": {
"defaults": 7.4205002784729,
"str": 7.702875137329102,
"obj": 5.622167110443115
},
"20": {
"defaults": 7.6765828132629395,
"str": 7.841750144958496,
"obj": 5.872457981109619
}
},
"fast-mixed": {
"1": {
"defaults": 3.577208995819092,
"str": 2.7121658325195312,
"obj": 1.7675423622131348
},
"20": {
"defaults": 3.5723328590393066,
"str": 2.6376662254333496,
"obj": 1.8755831718444824
}
}
},
"minipass-latest": {
"fast-fast": {
"1": {
"defaults": 10.694499969482422,
"str": 10.034541130065918,
"obj": 7.591958045959473
},
"20": {
"defaults": 101.94470834732056,
"str": 106.39775037765503,
"obj": 83.3781247138977
}
},
"fast-slow": {
"1": {
"defaults": 20.002583980560303,
"str": 19.90779161453247,
"obj": 16.551458835601807
},
"20": {
"defaults": 250.42383289337158,
"str": 261.65675020217896,
"obj": 235.33891677856445
}
},
"slow-fast": {
"1": {
"defaults": 15.32420825958252,
"str": 14.633959293365479,
"obj": 11.675666332244873
},
"20": {
"defaults": 103.60004091262817,
"str": 107.82666730880737,
"obj": 89.49645805358887
}
},
"slow-slow": {
"1": {
"defaults": 26.139249801635742,
"str": 25.96370792388916,
"obj": 25.568833827972412
},
"20": {
"defaults": 246.73425006866455,
"str": 258.8834590911865,
"obj": 237.89187479019165
}
},
"fast-mixed": {
"1": {
"defaults": 20.174625396728516,
"str": 20.026957988739014,
"obj": 16.881999969482422
},
"20": {
"defaults": 249.19720792770386,
"str": 262.65816736221313,
"obj": 236.38895797729492
}
}
},
"minipass-current": {
"fast-fast": {
"1": {
"defaults": 10.026582717895508,
"str": 9.438958168029785,
"obj": 6.078125
},
"20": {
"defaults": 89.02404165267944,
"str": 93.60058307647705,
"obj": 61.51558256149292
}
},
"fast-slow": {
"1": {
"defaults": 16.08120822906494,
"str": 16.00995922088623,
"obj": 11.185208320617676
},
"20": {
"defaults": 186.31754112243652,
"str": 197.53145837783813,
"obj": 164.88866710662842
}
},
"slow-fast": {
"1": {
"defaults": 14.138416290283203,
"str": 14.746541976928711,
"obj": 8.604499816894531
},
"20": {
"defaults": 90.66391706466675,
"str": 94.54366731643677,
"obj": 68.79845905303955
}
},
"slow-slow": {
"1": {
"defaults": 23.115708351135254,
"str": 23.19800043106079,
"obj": 19.721415996551514
},
"20": {
"defaults": 189.99808311462402,
"str": 199.26554107666016,
"obj": 170.10429191589355
}
},
"fast-mixed": {
"1": {
"defaults": 16.844333171844482,
"str": 16.537292003631592,
"obj": 11.395583152770996
},
"20": {
"defaults": 186.95450019836426,
"str": 197.8732500076294,
"obj": 165.9179162979126
}
}
},
"minipass-current-async": {
"fast-fast": {
"1": {
"defaults": 16.188167095184326,
"str": 14.847332954406738,
"obj": 9.77025032043457
},
"20": {
"defaults": 158.68620824813843,
"str": 166.0300407409668,
"obj": 132.29212522506714
}
},
"fast-slow": {
"1": {
"defaults": 28.027541160583496,
"str": 18.382500171661377,
"obj": 12.458750247955322
},
"20": {
"defaults": 166.70508289337158,
"str": 171.29291582107544,
"obj": 138.14916706085205
}
},
"slow-fast": {
"1": {
"defaults": 15.835124969482422,
"str": 14.931042194366455,
"obj": 15.144291877746582
},
"20": {
"defaults": 107.30662488937378,
"str": 110.42562532424927,
"obj": 81.3732500076294
}
},
"slow-slow": {
"1": {
"defaults": 25.29937505722046,
"str": 23.007457733154297,
"obj": 18.679749965667725
},
"20": {
"defaults": 273.60687494277954,
"str": 267.45716667175293,
"obj": 224.5688328742981
}
},
"fast-mixed": {
"1": {
"defaults": 28.457082748413086,
"str": 18.49833393096924,
"obj": 12.807291984558105
},
"20": {
"defaults": 165.82100009918213,
"str": 169.9223747253418,
"obj": 137.14441680908203
}
}
},
"extend-minipass-current": {
"fast-fast": {
"1": {
"defaults": 10.963582992553711,
"str": 10.400875091552734,
"obj": 6.979042053222656
},
"20": {
"defaults": 108.85300016403198,
"str": 112.98379182815552,
"obj": 80.6841254234314
}
},
"fast-slow": {
"1": {
"defaults": 17.35587501525879,
"str": 17.23883295059204,
"obj": 12.244625091552734
},
"20": {
"defaults": 212.35604190826416,
"str": 223.48966693878174,
"obj": 187.6898341178894
}
},
"slow-fast": {
"1": {
"defaults": 15.251583099365234,
"str": 15.613249778747559,
"obj": 9.619916915893555
},
"20": {
"defaults": 112.902916431427,
"str": 116.77554225921631,
"obj": 90.9947919845581
}
},
"slow-slow": {
"1": {
"defaults": 23.67870807647705,
"str": 23.867958068847656,
"obj": 21.026416778564453
},
"20": {
"defaults": 212.40991687774658,
"str": 223.33199977874756,
"obj": 193.59470796585083
}
},
"fast-mixed": {
"1": {
"defaults": 17.667749881744385,
"str": 18.020249843597412,
"obj": 12.56712532043457
},
"20": {
"defaults": 211.5590844154358,
"str": 224.7543749809265,
"obj": 187.83008289337158
}
}
},
"core-extend-transform": {
"fast-fast": {
"1": {
"defaults": 23.541666984558105,
"str": 1410.315041065216,
"obj": 6.503125190734863
},
"20": {
"defaults": 228.57879209518433,
"str": 29180.4340839386,
"obj": 73.42491722106934
}
},
"fast-slow": {
"1": {
"defaults": 32.58241605758667,
"str": 1451.8822078704834,
"obj": 24.079749584197998
},
"20": {
"defaults": 274.3609576225281,
"str": 30182.570083141327,
"obj": 124.58154201507568
}
},
"slow-fast": {
"1": {
"defaults": 31.042624950408936,
"str": 1425.865791797638,
"obj": 11.923707962036133
},
"20": {
"defaults": 250.88299989700317,
"str": 31964.667541980743,
"obj": 81.42899990081787
}
},
"slow-slow": {
"1": {
"defaults": 37.82354164123535,
"str": 1457.156666278839,
"obj": 14.744708061218262
},
"20": {
"defaults": 258.49733304977417,
"str": 29576.854750156403,
"obj": 92.44012546539307
}
},
"fast-mixed": {
"1": {
"defaults": 36.43495798110962,
"str": 1543.0077500343323,
"obj": 27.787333011627197
},
"20": {
"defaults": 287.8984160423279,
"str": 30980.08158302307,
"obj": 128.26529216766357
}
}
},
"core-passthrough": {
"fast-fast": {
"1": {
"defaults": 24.717000007629395,
"str": 1445.3550839424133,
"obj": 6.450333118438721
},
"20": {
"defaults": 219.69770908355713,
"str": 29583.401374816895,
"obj": 75.41662502288818
}
},
"fast-slow": {
"1": {
"defaults": 33.23187494277954,
"str": 1524.7200002670288,
"obj": 23.51645803451538
},
"20": {
"defaults": 283.2999997138977,
"str": 30345.344042301178,
"obj": 123.50012493133545
}
},
"slow-fast": {
"1": {
"defaults": 30.58524990081787,
"str": 1437.685417175293,
"obj": 12.23199987411499
},
"20": {
"defaults": 256.95475006103516,
"str": 29740.22958278656,
"obj": 80.6258339881897
}
},
"slow-slow": {
"1": {
"defaults": 36.816792011260986,
"str": 1471.3464999198914,
"obj": 14.990999698638916
},
"20": {
"defaults": 270.89395809173584,
"str": 30246.11995792389,
"obj": 96.37879180908203
}
},
"fast-mixed": {
"1": {
"defaults": 35.9570837020874,
"str": 1490.9656672477722,
"obj": 25.987332820892334
},
"20": {
"defaults": 276.7832088470459,
"str": 31351.60183286667,
"obj": 201.0685420036316
}
}
}
}
minipass-3.3.6/bench/results.tab 0000664 0000000 0000000 00000036236 14340072270 0016627 0 ustar 00root root 0000000 0000000 impl case pipeline type time score
core-extend-transform fast-mixed 20 str 30747.63024997711 1
core-passthrough fast-mixed 20 str 30447.11287498474 1.0098701435576598
core-extend-transform fast-slow 20 str 30113.022541046143 1.021074194995403
core-passthrough fast-slow 20 str 29451.729625225067 1.0440008325909023
core-extend-transform slow-slow 20 str 29411.705083847046 1.0454215477246764
core-passthrough slow-slow 20 str 29246.384957790375 1.0513309694293294
core-passthrough fast-fast 20 str 29222.67541694641 1.052183956851068
core-extend-transform fast-fast 20 str 29134.15249967575 1.0553809742816207
core-extend-transform slow-fast 20 str 29110.925499916077 1.0562230407296997
core-passthrough slow-fast 20 str 29077.25270795822 1.0574461954434133
core-extend-transform fast-mixed 1 str 1461.4726247787476 21.0387999943769
core-passthrough fast-mixed 1 str 1454.6930408477783 21.136851133939395
core-passthrough fast-slow 1 str 1448.1420831680298 21.232467868561642
core-passthrough slow-slow 1 str 1446.2176671028137 21.260720947748744
core-extend-transform slow-slow 1 str 1443.0942077636719 21.306738038693933
core-extend-transform fast-slow 1 str 1441.7533750534058 21.326553335682778
core-passthrough slow-fast 1 str 1430.5638751983643 21.493364108410468
core-extend-transform slow-fast 1 str 1429.897292137146 21.50338378781125
core-passthrough fast-fast 1 str 1419.7792496681213 21.656627434979406
core-extend-transform fast-fast 1 str 1417.3917908668518 21.69310592039792
core-extend-transform fast-mixed 20 defaults 274.6799998283386 111.93982186250494
core-passthrough fast-mixed 20 defaults 274.4687910079956 112.02596162957339
core-passthrough fast-slow 20 defaults 272.5765838623047 112.80363784113474
minipass-current-async slow-slow 20 defaults 270.37124967575073 113.72374202823693
core-extend-transform slow-slow 20 defaults 267.4429588317871 114.9689278950745
core-extend-transform fast-slow 20 defaults 266.26683282852173 115.47675661797076
minipass-latest fast-mixed 20 str 266.0526661872864 115.56971290914439
minipass-latest fast-slow 20 str 265.93070793151855 115.62271423687979
core-passthrough slow-slow 20 defaults 263.0804166793823 116.87540501142445
minipass-current-async slow-slow 20 str 260.62041664123535 117.97859371970716
minipass-latest slow-slow 20 str 256.8340826034546 119.71787364938899
core-passthrough slow-fast 20 defaults 256.4482922554016 119.89797233414593
core-extend-transform slow-fast 20 defaults 249.86824989318848 123.05537123312322
minipass-latest fast-mixed 20 defaults 246.4864583015442 124.74368962030918
minipass-latest slow-slow 20 defaults 246.13241577148438 124.92312381366295
minipass-latest fast-slow 20 defaults 245.7106671333313 125.13754737922045
minipass-latest fast-slow 20 obj 240.51108312606812 127.84288295712427
minipass-latest fast-mixed 20 obj 240.15312480926514 128.03343814242498
minipass-latest slow-slow 20 obj 236.080500125885 130.24214297064594
extend-minipass-current slow-slow 20 str 229.88083410263062 133.7546488814713
core-extend-transform fast-fast 20 defaults 226.87533378601074 135.52654551234
minipass-current-async slow-slow 20 obj 224.95733261108398 136.68205385034037
extend-minipass-current fast-mixed 20 str 224.0742907524109 137.22069652315204
extend-minipass-current fast-slow 20 str 222.7903332710266 138.01150973894508
core-passthrough fast-fast 20 defaults 219.50999975204468 140.07393870306223
extend-minipass-current slow-slow 20 defaults 216.60487508773804 141.9526233540333
extend-minipass-current fast-mixed 20 defaults 214.0547080039978 143.64379338670213
extend-minipass-current fast-slow 20 defaults 213.12683391571045 144.26916444570043
core-extend-transform fast-mixed 20 obj 199.47045803070068 154.1462858888343
minipass-current slow-slow 20 str 199.00683307647705 154.5053995113876
minipass-current fast-mixed 20 str 198.75245904922485 154.70314378531475
minipass-current fast-slow 20 str 197.72462511062622 155.5073387180475
extend-minipass-current slow-slow 20 obj 197.5637083053589 155.634000362318
minipass-current slow-slow 20 defaults 189.56308364868164 162.20262752721342
extend-minipass-current fast-mixed 20 obj 188.06141567230225 163.49781341407626
minipass-current fast-mixed 20 defaults 187.45829105377197 164.02384806312583
extend-minipass-current fast-slow 20 obj 186.86549997329712 164.54417885790002
minipass-current fast-slow 20 defaults 184.97087478637695 166.2295768752112
minipass-current-async fast-mixed 20 str 171.08720779418945 179.71904881962413
minipass-current slow-slow 20 obj 170.29383325576782 180.5563340851962
minipass-current-async fast-slow 20 str 170.0132918357849 180.85427273342904
minipass-current-async fast-mixed 20 defaults 167.80179071426392 183.23779572969374
minipass-current fast-mixed 20 obj 166.30270767211914 184.88953475489316
minipass-current-async fast-slow 20 defaults 165.56383275985718 185.7146560177497
minipass-current fast-slow 20 obj 165.23862504959106 186.08016279940117
minipass-current-async fast-fast 20 str 163.9047498703003 187.59450396836007
minipass-current-async fast-fast 20 defaults 159.47150039672852 192.80956267097292
minipass-current-async fast-mixed 20 obj 138.03287506103516 222.75584882500763
minipass-current-async fast-slow 20 obj 137.74329233169556 223.22415654139186
minipass-current-async fast-fast 20 obj 131.72820806503296 233.41720578782412
core-passthrough fast-mixed 20 obj 129.18008375167847 238.0214453884622
core-passthrough fast-slow 20 obj 126.37016582489014 243.31399780375213
core-extend-transform fast-slow 20 obj 122.05166673660278 251.92306727226386
extend-minipass-current fast-fast 20 str 114.95495796203613 267.47545991127686
extend-minipass-current slow-fast 20 str 113.89054203033447 269.97527364289436
extend-minipass-current slow-fast 20 defaults 110.9661660194397 277.09013794881014
minipass-current-async slow-fast 20 str 110.63445901870728 277.9209165272636
extend-minipass-current fast-fast 20 defaults 108.50787496566772 283.36773031179325
minipass-latest slow-fast 20 str 107.90645933151245 284.9470776861801
minipass-current-async slow-fast 20 defaults 106.81470775604248 287.85951762563076
minipass-latest fast-fast 20 str 106.13970756530762 289.6901730302784
minipass-latest slow-fast 20 defaults 103.7354998588562 296.40412676289907
minipass-latest fast-fast 20 defaults 101.7110424041748 302.30375702761506
core-extend-transform slow-slow 20 obj 98.4611668586731 312.2817983064423
minipass-current slow-fast 20 str 95.58812522888184 321.66788684633343
minipass-current slow-fast 20 defaults 94.26279211044312 326.19053140237577
core-passthrough slow-slow 20 obj 93.67749977111816 328.2285535491731
minipass-current fast-fast 20 str 93.47599983215332 328.93609381218647
minipass-latest slow-fast 20 obj 90.60833311080933 339.34660526614414
minipass-current fast-fast 20 defaults 88.68699979782104 346.6982795682818
extend-minipass-current slow-fast 20 obj 87.91937494277954 349.72530537197923
extend-minipass-current fast-fast 20 obj 83.29762506484985 369.12973480383266
minipass-latest fast-fast 20 obj 82.52587509155273 372.5816929037861
minipass-current-async slow-fast 20 obj 81.92266702651978 375.32506406344874
core-extend-transform slow-fast 20 obj 78.86537504196167 389.87490053293106
core-passthrough slow-fast 20 obj 78.67212533950806 390.83258672987796
core-extend-transform fast-fast 20 obj 73.56233310699463 417.9806288261063
core-passthrough fast-fast 20 obj 73.49420881271362 418.3680693581143
minipass-current slow-fast 20 obj 68.56379222869873 448.4528823524887
minipass-current fast-fast 20 obj 67.34345817565918 456.57931865890765
core-passthrough slow-slow 1 defaults 37.59954214096069 817.7660816906822
core-extend-transform slow-slow 1 defaults 37.39179086685181 822.3096443672932
core-extend-transform fast-mixed 1 defaults 36.60337495803833 840.0217271010071
core-passthrough fast-mixed 1 defaults 36.25349998474121 848.1286017327576
core-passthrough fast-slow 1 defaults 32.09275007247925 958.0864893328157
core-extend-transform fast-slow 1 defaults 31.869500160217285 964.7980073549882
core-passthrough slow-fast 1 defaults 30.979166984558105 992.5260503390422
core-extend-transform slow-fast 1 defaults 30.577166080474854 1005.5748845087089
minipass-current-async fast-mixed 1 defaults 28.696916103363037 1071.4611332878987
minipass-current-async fast-slow 1 defaults 28.066959381103516 1095.5098424618948
core-passthrough fast-mixed 1 obj 26.775332927703857 1148.3565987022034
core-extend-transform fast-mixed 1 obj 26.36491584777832 1166.2328234803795
minipass-latest slow-slow 1 defaults 26.117584228515625 1177.2769633267353
minipass-current-async slow-slow 1 defaults 25.94129180908203 1185.2775288242347
minipass-latest slow-slow 1 str 25.474292278289795 1207.0062600397132
minipass-latest slow-slow 1 obj 24.977290630340576 1231.0234406540135
core-passthrough fast-fast 1 defaults 24.267333984375 1267.0378324118578
extend-minipass-current slow-slow 1 str 23.8774995803833 1287.7240410565437
core-extend-transform fast-fast 1 defaults 23.673917293548584 1298.7977388244149
extend-minipass-current slow-slow 1 defaults 23.53883409500122 1306.2511985887513
minipass-current-async slow-slow 1 str 23.38579225540161 1314.7995977290475
core-passthrough fast-slow 1 obj 23.09958267211914 1331.0902922540265
minipass-current slow-slow 1 str 23.042624950408936 1334.3805367726318
core-extend-transform fast-slow 1 obj 23.005332946777344 1336.5435884414935
minipass-current slow-slow 1 defaults 22.831292152404785 1346.7319346066233
extend-minipass-current slow-slow 1 obj 21.23620891571045 1447.8869732360824
minipass-latest fast-mixed 1 defaults 20.828207969665527 1476.249435129434
minipass-current slow-slow 1 obj 19.78458309173584 1554.1207063807483
minipass-latest fast-slow 1 str 19.734874725341797 1558.0352385259228
minipass-latest fast-mixed 1 str 19.701833248138428 1560.6481824670996
minipass-latest fast-slow 1 defaults 19.414709091186523 1583.7286103831073
minipass-current-async slow-slow 1 obj 18.815707683563232 1634.1468929620544
minipass-current-async fast-mixed 1 str 18.774374961853027 1637.7445487507364
extend-minipass-current fast-mixed 1 defaults 18.58133363723755 1654.7590635990703
minipass-current-async fast-slow 1 str 18.07433271408081 1701.176510158141
extend-minipass-current fast-mixed 1 str 17.90204095840454 1717.5488717414594
extend-minipass-current fast-slow 1 str 17.827374935150146 1724.7424459196268
extend-minipass-current fast-slow 1 defaults 17.689249992370605 1738.2099446408752
minipass-current fast-mixed 1 defaults 16.839958667755127 1825.8732611293258
minipass-current fast-mixed 1 str 16.83329200744629 1826.5963803381862
minipass-latest fast-mixed 1 obj 16.61987543106079 1850.0517875430667
minipass-current fast-slow 1 defaults 16.580334186553955 1854.4638427681582
minipass-latest fast-slow 1 obj 16.394832611083984 1875.4464275036082
minipass-current-async fast-fast 1 defaults 16.294415950775146 1887.0041333708807
minipass-current fast-slow 1 str 16.225249767303467 1895.0481928443787
minipass-current-async slow-fast 1 defaults 15.839667320251465 1941.1790429881942
extend-minipass-current slow-fast 1 str 15.76479196548462 1950.3987313816679
minipass-latest slow-fast 1 defaults 15.393832683563232 1997.3992755428542
extend-minipass-current slow-fast 1 defaults 15.024083614349365 2046.5561187778756
minipass-current-async slow-fast 1 str 15.014665603637695 2047.8398295149307
minipass-current-async fast-fast 1 str 14.916707992553711 2061.2879373469036
minipass-current-async slow-fast 1 obj 14.817874908447266 2075.0364299842163
core-extend-transform slow-slow 1 obj 14.769332885742188 2081.856403931408
core-passthrough slow-slow 1 obj 14.75304126739502 2084.1553746569502
minipass-current slow-fast 1 str 14.631457805633545 2101.4741427978806
minipass-current slow-fast 1 defaults 14.294374942779541 2151.0300641378194
minipass-latest slow-fast 1 str 14.280582904815674 2153.1075065296145
extend-minipass-current fast-slow 1 obj 12.602625370025635 2439.7797559790965
minipass-current-async fast-mixed 1 obj 12.601791858673096 2439.9411285955553
minipass-current-async fast-slow 1 obj 12.47458267211914 2464.8223558370796
extend-minipass-current fast-mixed 1 obj 12.456417083740234 2468.416884507905
core-extend-transform slow-fast 1 obj 12.065583229064941 2548.3749659037403
core-passthrough slow-fast 1 obj 11.86299991607666 2591.8933210399946
minipass-latest slow-fast 1 obj 11.7600417137146 2614.5851348570577
minipass-current fast-mixed 1 obj 11.486834049224854 2676.7715210486567
minipass-current fast-slow 1 obj 11.322457790374756 2715.632137407104
extend-minipass-current fast-fast 1 defaults 10.998665809631348 2795.5781894065667
minipass-latest fast-fast 1 defaults 10.866167068481445 2829.6666208238335
extend-minipass-current fast-fast 1 str 10.592041969299316 2902.8992085849077
minipass-latest fast-fast 1 str 9.983208656311035 3079.9346491210054
minipass-current fast-fast 1 defaults 9.972874641418457 3083.126115140241
minipass-current-async fast-fast 1 obj 9.839959144592285 3124.7721457131242
minipass-current fast-fast 1 str 9.307541847229004 3303.5178089616807
extend-minipass-current slow-fast 1 obj 9.241541862487793 3327.110422426843
minipass-current slow-fast 1 obj 8.58270788192749 3582.5092351939466
baseline slow-fast 1 str 8.003375053405762 3841.8329823107247
baseline slow-slow 20 str 7.897832870483398 3893.1730709180174
baseline slow-slow 1 str 7.8102922439575195 3936.8091858233865
baseline slow-fast 20 str 7.786833763122559 3948.669149146849
minipass-latest fast-fast 1 obj 7.564582824707031 4064.6828731322585
baseline slow-slow 20 defaults 7.510125160217285 4094.1568341435623
baseline slow-slow 1 defaults 7.441458225250244 4131.93615004714
extend-minipass-current fast-fast 1 obj 7.383708953857422 4164.25274101762
baseline slow-fast 20 defaults 7.3038330078125 4209.7937092877255
baseline slow-fast 1 defaults 7.280125141143799 4223.502982964696
core-extend-transform fast-fast 1 obj 6.536875247955322 4703.719909538538
core-passthrough fast-fast 1 obj 6.521208763122559 4715.020077850442
minipass-current fast-fast 1 obj 6.048374652862549 5083.618660332988
baseline slow-fast 1 obj 5.887584209442139 5222.452733782727
baseline slow-slow 20 obj 5.646541118621826 5445.392073489727
baseline slow-fast 20 obj 5.621959209442139 5469.20194624254
baseline slow-slow 1 obj 5.609624862670898 5481.227533517688
baseline fast-mixed 1 defaults 3.6585421562194824 8404.339471039433
baseline fast-slow 20 defaults 3.5812501907348633 8585.725266982192
baseline fast-mixed 20 defaults 3.5488338470458984 8664.150415374304
baseline fast-slow 1 defaults 3.507875442504883 8765.314149245
baseline fast-fast 1 defaults 3.4846248626708984 8823.799250060347
baseline fast-fast 20 defaults 3.3921661376953125 9064.30552097531
baseline fast-fast 20 str 2.8175411224365234 10912.930428993172
baseline fast-slow 1 str 2.7819581031799316 11052.513772522625
baseline fast-slow 20 str 2.7803330421447754 11058.973793390629
baseline fast-mixed 1 str 2.732333183288574 11253.25067895635
baseline fast-mixed 20 str 2.683958053588867 11456.077045936978
baseline fast-fast 1 str 2.6225829124450684 11724.178520369713
baseline fast-fast 20 obj 1.8565001487731934 16562.148012913258
baseline fast-slow 1 obj 1.794041633605957 17138.749555201524
baseline fast-mixed 1 obj 1.7576251029968262 17493.850194533
baseline fast-mixed 20 obj 1.748208999633789 17588.07457027052
baseline fast-fast 1 obj 1.7300000190734863 17773.196480335428
baseline fast-slow 20 obj 1.7018342018127441 18067.347698868452
minipass-3.3.6/bench/results/ 0000775 0000000 0000000 00000000000 14340072270 0016125 5 ustar 00root root 0000000 0000000 minipass-3.3.6/bench/results/baseline-fast-fast-1.json 0000664 0000000 0000000 00000000136 14340072270 0022626 0 ustar 00root root 0000000 0000000 {
"defaults": 3.4846248626708984,
"str": 2.6225829124450684,
"obj": 1.7300000190734863
} minipass-3.3.6/bench/results/baseline-fast-fast-20.json 0000664 0000000 0000000 00000000136 14340072270 0022707 0 ustar 00root root 0000000 0000000 {
"defaults": 3.3921661376953125,
"str": 2.8175411224365234,
"obj": 1.8565001487731934
} minipass-3.3.6/bench/results/baseline-fast-mixed-1.json 0000664 0000000 0000000 00000000135 14340072270 0022776 0 ustar 00root root 0000000 0000000 {
"defaults": 3.6585421562194824,
"str": 2.732333183288574,
"obj": 1.7576251029968262
} minipass-3.3.6/bench/results/baseline-fast-mixed-20.json 0000664 0000000 0000000 00000000134 14340072270 0023056 0 ustar 00root root 0000000 0000000 {
"defaults": 3.5488338470458984,
"str": 2.683958053588867,
"obj": 1.748208999633789
} minipass-3.3.6/bench/results/baseline-fast-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0022653 0 ustar 00root root 0000000 0000000 {
"defaults": 3.507875442504883,
"str": 2.7819581031799316,
"obj": 1.794041633605957
} minipass-3.3.6/bench/results/baseline-fast-slow-20.json 0000664 0000000 0000000 00000000136 14340072270 0022736 0 ustar 00root root 0000000 0000000 {
"defaults": 3.5812501907348633,
"str": 2.7803330421447754,
"obj": 1.7018342018127441
} minipass-3.3.6/bench/results/baseline-slow-fast-1.json 0000664 0000000 0000000 00000000133 14340072270 0022652 0 ustar 00root root 0000000 0000000 {
"defaults": 7.280125141143799,
"str": 8.003375053405762,
"obj": 5.887584209442139
} minipass-3.3.6/bench/results/baseline-slow-fast-20.json 0000664 0000000 0000000 00000000131 14340072270 0022731 0 ustar 00root root 0000000 0000000 {
"defaults": 7.3038330078125,
"str": 7.786833763122559,
"obj": 5.621959209442139
} minipass-3.3.6/bench/results/baseline-slow-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0022702 0 ustar 00root root 0000000 0000000 {
"defaults": 7.441458225250244,
"str": 7.8102922439575195,
"obj": 5.609624862670898
} minipass-3.3.6/bench/results/baseline-slow-slow-20.json 0000664 0000000 0000000 00000000133 14340072270 0022762 0 ustar 00root root 0000000 0000000 {
"defaults": 7.510125160217285,
"str": 7.897832870483398,
"obj": 5.646541118621826
} minipass-3.3.6/bench/results/core-extend-transform-fast-fast-1.json 0000664 0000000 0000000 00000000135 14340072270 0025271 0 ustar 00root root 0000000 0000000 {
"defaults": 23.673917293548584,
"str": 1417.3917908668518,
"obj": 6.536875247955322
} minipass-3.3.6/bench/results/core-extend-transform-fast-fast-20.json 0000664 0000000 0000000 00000000134 14340072270 0025351 0 ustar 00root root 0000000 0000000 {
"defaults": 226.87533378601074,
"str": 29134.15249967575,
"obj": 73.56233310699463
} minipass-3.3.6/bench/results/core-extend-transform-fast-mixed-1.json 0000664 0000000 0000000 00000000134 14340072270 0025441 0 ustar 00root root 0000000 0000000 {
"defaults": 36.60337495803833,
"str": 1461.4726247787476,
"obj": 26.36491584777832
} minipass-3.3.6/bench/results/core-extend-transform-fast-mixed-20.json 0000664 0000000 0000000 00000000134 14340072270 0025522 0 ustar 00root root 0000000 0000000 {
"defaults": 274.6799998283386,
"str": 30747.63024997711,
"obj": 199.47045803070068
} minipass-3.3.6/bench/results/core-extend-transform-fast-slow-1.json 0000664 0000000 0000000 00000000136 14340072270 0025321 0 ustar 00root root 0000000 0000000 {
"defaults": 31.869500160217285,
"str": 1441.7533750534058,
"obj": 23.005332946777344
} minipass-3.3.6/bench/results/core-extend-transform-fast-slow-20.json 0000664 0000000 0000000 00000000136 14340072270 0025402 0 ustar 00root root 0000000 0000000 {
"defaults": 266.26683282852173,
"str": 30113.022541046143,
"obj": 122.05166673660278
} minipass-3.3.6/bench/results/core-extend-transform-slow-fast-1.json 0000664 0000000 0000000 00000000135 14340072270 0025320 0 ustar 00root root 0000000 0000000 {
"defaults": 30.577166080474854,
"str": 1429.897292137146,
"obj": 12.065583229064941
} minipass-3.3.6/bench/results/core-extend-transform-slow-fast-20.json 0000664 0000000 0000000 00000000135 14340072270 0025401 0 ustar 00root root 0000000 0000000 {
"defaults": 249.86824989318848,
"str": 29110.925499916077,
"obj": 78.86537504196167
} minipass-3.3.6/bench/results/core-extend-transform-slow-slow-1.json 0000664 0000000 0000000 00000000135 14340072270 0025347 0 ustar 00root root 0000000 0000000 {
"defaults": 37.39179086685181,
"str": 1443.0942077636719,
"obj": 14.769332885742188
} minipass-3.3.6/bench/results/core-extend-transform-slow-slow-20.json 0000664 0000000 0000000 00000000133 14340072270 0025426 0 ustar 00root root 0000000 0000000 {
"defaults": 267.4429588317871,
"str": 29411.705083847046,
"obj": 98.4611668586731
} minipass-3.3.6/bench/results/core-passthrough-fast-fast-1.json 0000664 0000000 0000000 00000000132 14340072270 0024335 0 ustar 00root root 0000000 0000000 {
"defaults": 24.267333984375,
"str": 1419.7792496681213,
"obj": 6.521208763122559
} minipass-3.3.6/bench/results/core-passthrough-fast-fast-100.json 0000664 0000000 0000000 00000000035 14340072270 0024477 0 ustar 00root root 0000000 0000000 {
"obj": 407.321750164032
} minipass-3.3.6/bench/results/core-passthrough-fast-fast-20.json 0000664 0000000 0000000 00000000134 14340072270 0024420 0 ustar 00root root 0000000 0000000 {
"defaults": 219.50999975204468,
"str": 29222.67541694641,
"obj": 73.49420881271362
} minipass-3.3.6/bench/results/core-passthrough-fast-mixed-1.json 0000664 0000000 0000000 00000000135 14340072270 0024511 0 ustar 00root root 0000000 0000000 {
"defaults": 36.25349998474121,
"str": 1454.6930408477783,
"obj": 26.775332927703857
} minipass-3.3.6/bench/results/core-passthrough-fast-mixed-100.json 0000664 0000000 0000000 00000000036 14340072270 0024651 0 ustar 00root root 0000000 0000000 {
"obj": 722.3131666183472
} minipass-3.3.6/bench/results/core-passthrough-fast-mixed-20.json 0000664 0000000 0000000 00000000134 14340072270 0024571 0 ustar 00root root 0000000 0000000 {
"defaults": 274.4687910079956,
"str": 30447.11287498474,
"obj": 129.18008375167847
} minipass-3.3.6/bench/results/core-passthrough-fast-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0024366 0 ustar 00root root 0000000 0000000 {
"defaults": 32.09275007247925,
"str": 1448.1420831680298,
"obj": 23.09958267211914
} minipass-3.3.6/bench/results/core-passthrough-fast-slow-100.json 0000664 0000000 0000000 00000000036 14340072270 0024527 0 ustar 00root root 0000000 0000000 {
"obj": 713.4662504196167
} minipass-3.3.6/bench/results/core-passthrough-fast-slow-20.json 0000664 0000000 0000000 00000000135 14340072270 0024450 0 ustar 00root root 0000000 0000000 {
"defaults": 272.5765838623047,
"str": 29451.729625225067,
"obj": 126.37016582489014
} minipass-3.3.6/bench/results/core-passthrough-mixed-1.json 0000664 0000000 0000000 00000000017 14340072270 0023555 0 ustar 00root root 0000000 0000000 {
"obj": {}
} minipass-3.3.6/bench/results/core-passthrough-slow-fast-1.json 0000664 0000000 0000000 00000000135 14340072270 0024367 0 ustar 00root root 0000000 0000000 {
"defaults": 30.979166984558105,
"str": 1430.5638751983643,
"obj": 11.86299991607666
} minipass-3.3.6/bench/results/core-passthrough-slow-fast-20.json 0000664 0000000 0000000 00000000133 14340072270 0024446 0 ustar 00root root 0000000 0000000 {
"defaults": 256.4482922554016,
"str": 29077.25270795822,
"obj": 78.67212533950806
} minipass-3.3.6/bench/results/core-passthrough-slow-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0024415 0 ustar 00root root 0000000 0000000 {
"defaults": 37.59954214096069,
"str": 1446.2176671028137,
"obj": 14.75304126739502
} minipass-3.3.6/bench/results/core-passthrough-slow-slow-100.json 0000664 0000000 0000000 00000000037 14340072270 0024557 0 ustar 00root root 0000000 0000000 {
"obj": 423.62200021743774
} minipass-3.3.6/bench/results/core-passthrough-slow-slow-20.json 0000664 0000000 0000000 00000000134 14340072270 0024476 0 ustar 00root root 0000000 0000000 {
"defaults": 263.0804166793823,
"str": 29246.384957790375,
"obj": 93.67749977111816
} minipass-3.3.6/bench/results/core-transform-fast-fast-20.json 0000664 0000000 0000000 00000000207 14340072270 0024065 0 ustar 00root root 0000000 0000000 {
"obj": {
"code": "MODULE_NOT_FOUND",
"requireStack": [
"/Users/isaacs/dev/isaacs/minipass/bench/index.js"
]
}
} minipass-3.3.6/bench/results/extend-core-passthroughfast-fast-20-obj.json 0000664 0000000 0000000 00000000626 14340072270 0026406 0 ustar 00root root 0000000 0000000 {
"defaults": {
"code": "MODULE_NOT_FOUND",
"requireStack": [
"/Users/isaacs/dev/isaacs/minipass/bench/index.js"
]
},
"str": {
"code": "MODULE_NOT_FOUND",
"requireStack": [
"/Users/isaacs/dev/isaacs/minipass/bench/index.js"
]
},
"obj": {
"code": "MODULE_NOT_FOUND",
"requireStack": [
"/Users/isaacs/dev/isaacs/minipass/bench/index.js"
]
}
} minipass-3.3.6/bench/results/extend-core-transform-fast-fast-20.json 0000664 0000000 0000000 00000000207 14340072270 0025352 0 ustar 00root root 0000000 0000000 {
"obj": {
"code": "MODULE_NOT_FOUND",
"requireStack": [
"/Users/isaacs/dev/isaacs/minipass/bench/index.js"
]
}
} minipass-3.3.6/bench/results/extend-minipass-current-fast-fast-1.json 0000664 0000000 0000000 00000000135 14340072270 0025633 0 ustar 00root root 0000000 0000000 {
"defaults": 10.998665809631348,
"str": 10.592041969299316,
"obj": 7.383708953857422
} minipass-3.3.6/bench/results/extend-minipass-current-fast-fast-20.json 0000664 0000000 0000000 00000000135 14340072270 0025714 0 ustar 00root root 0000000 0000000 {
"defaults": 108.50787496566772,
"str": 114.95495796203613,
"obj": 83.29762506484985
} minipass-3.3.6/bench/results/extend-minipass-current-fast-mixed-1.json 0000664 0000000 0000000 00000000134 14340072270 0026003 0 ustar 00root root 0000000 0000000 {
"defaults": 18.58133363723755,
"str": 17.90204095840454,
"obj": 12.456417083740234
} minipass-3.3.6/bench/results/extend-minipass-current-fast-mixed-20.json 0000664 0000000 0000000 00000000134 14340072270 0026064 0 ustar 00root root 0000000 0000000 {
"defaults": 214.0547080039978,
"str": 224.0742907524109,
"obj": 188.06141567230225
} minipass-3.3.6/bench/results/extend-minipass-current-fast-slow-1.json 0000664 0000000 0000000 00000000136 14340072270 0025663 0 ustar 00root root 0000000 0000000 {
"defaults": 17.689249992370605,
"str": 17.827374935150146,
"obj": 12.602625370025635
} minipass-3.3.6/bench/results/extend-minipass-current-fast-slow-20.json 0000664 0000000 0000000 00000000135 14340072270 0025743 0 ustar 00root root 0000000 0000000 {
"defaults": 213.12683391571045,
"str": 222.7903332710266,
"obj": 186.86549997329712
} minipass-3.3.6/bench/results/extend-minipass-current-slow-fast-1.json 0000664 0000000 0000000 00000000134 14340072270 0025661 0 ustar 00root root 0000000 0000000 {
"defaults": 15.024083614349365,
"str": 15.76479196548462,
"obj": 9.241541862487793
} minipass-3.3.6/bench/results/extend-minipass-current-slow-fast-20.json 0000664 0000000 0000000 00000000134 14340072270 0025742 0 ustar 00root root 0000000 0000000 {
"defaults": 110.9661660194397,
"str": 113.89054203033447,
"obj": 87.91937494277954
} minipass-3.3.6/bench/results/extend-minipass-current-slow-slow-1.json 0000664 0000000 0000000 00000000132 14340072270 0025706 0 ustar 00root root 0000000 0000000 {
"defaults": 23.53883409500122,
"str": 23.8774995803833,
"obj": 21.23620891571045
} minipass-3.3.6/bench/results/extend-minipass-current-slow-slow-20.json 0000664 0000000 0000000 00000000135 14340072270 0025772 0 ustar 00root root 0000000 0000000 {
"defaults": 216.60487508773804,
"str": 229.88083410263062,
"obj": 197.5637083053589
} minipass-3.3.6/bench/results/extend-minipass-fast-fast-1.json 0000664 0000000 0000000 00000000134 14340072270 0024152 0 ustar 00root root 0000000 0000000 {
"defaults": 12.583540916442871,
"str": 12.105957984924316,
"obj": 9.06024980545044
} minipass-3.3.6/bench/results/extend-minipass-fast-fast-20.json 0000664 0000000 0000000 00000000136 14340072270 0024235 0 ustar 00root root 0000000 0000000 {
"defaults": 126.18258285522461,
"str": 128.73254108428955,
"obj": 105.26249980926514
} minipass-3.3.6/bench/results/extend-minipass-fast-mixed-1.json 0000664 0000000 0000000 00000000134 14340072270 0024323 0 ustar 00root root 0000000 0000000 {
"defaults": 21.804834365844727,
"str": 20.67766571044922,
"obj": 18.17937469482422
} minipass-3.3.6/bench/results/extend-minipass-fast-mixed-20.json 0000664 0000000 0000000 00000000134 14340072270 0024404 0 ustar 00root root 0000000 0000000 {
"defaults": 284.1690001487732,
"str": 296.5096673965454,
"obj": 267.44170808792114
} minipass-3.3.6/bench/results/extend-minipass-fast-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0024201 0 ustar 00root root 0000000 0000000 {
"defaults": 20.50854206085205,
"str": 20.54229211807251,
"obj": 17.428500175476074
} minipass-3.3.6/bench/results/extend-minipass-fast-slow-20.json 0000664 0000000 0000000 00000000134 14340072270 0024262 0 ustar 00root root 0000000 0000000 {
"defaults": 276.1806254386902,
"str": 293.58387517929077,
"obj": 276.8616247177124
} minipass-3.3.6/bench/results/extend-minipass-slow-fast-1.json 0000664 0000000 0000000 00000000135 14340072270 0024202 0 ustar 00root root 0000000 0000000 {
"defaults": 16.363709449768066,
"str": 15.237417221069336,
"obj": 12.49150037765503
} minipass-3.3.6/bench/results/extend-minipass-slow-fast-20.json 0000664 0000000 0000000 00000000136 14340072270 0024264 0 ustar 00root root 0000000 0000000 {
"defaults": 125.16524982452393,
"str": 128.87895822525024,
"obj": 110.46454191207886
} minipass-3.3.6/bench/results/extend-minipass-slow-slow-1.json 0000664 0000000 0000000 00000000135 14340072270 0024231 0 ustar 00root root 0000000 0000000 {
"defaults": 27.080874919891357,
"str": 26.84391689300537,
"obj": 26.955999851226807
} minipass-3.3.6/bench/results/extend-minipass-slow-slow-20.json 0000664 0000000 0000000 00000000133 14340072270 0024310 0 ustar 00root root 0000000 0000000 {
"defaults": 274.1978340148926,
"str": 294.1859998703003,
"obj": 277.8759160041809
} minipass-3.3.6/bench/results/extend-through2-fast-fast-1.json 0000664 0000000 0000000 00000000135 14340072270 0024072 0 ustar 00root root 0000000 0000000 {
"defaults": 24.68295907974243,
"str": 1409.8773746490479,
"obj": 21.667250156402588
} minipass-3.3.6/bench/results/extend-through2-fast-fast-20.json 0000664 0000000 0000000 00000000134 14340072270 0024152 0 ustar 00root root 0000000 0000000 {
"defaults": 289.5474581718445,
"str": 1649.342541694641,
"obj": 235.78379201889038
} minipass-3.3.6/bench/results/extend-through2-fast-mixed-1.json 0000664 0000000 0000000 00000000136 14340072270 0024244 0 ustar 00root root 0000000 0000000 {
"defaults": 26.036499977111816,
"str": 1378.7794170379639,
"obj": 16.916458129882812
} minipass-3.3.6/bench/results/extend-through2-fast-mixed-20.json 0000664 0000000 0000000 00000000133 14340072270 0024322 0 ustar 00root root 0000000 0000000 {
"defaults": 242.00229215621948,
"str": 1575.54691696167,
"obj": 149.2092089653015
} minipass-3.3.6/bench/results/extend-through2-fast-slow-1.json 0000664 0000000 0000000 00000000136 14340072270 0024122 0 ustar 00root root 0000000 0000000 {
"defaults": 24.177124977111816,
"str": 1384.6977500915527,
"obj": 16.081832885742188
} minipass-3.3.6/bench/results/extend-through2-fast-slow-20.json 0000664 0000000 0000000 00000000136 14340072270 0024203 0 ustar 00root root 0000000 0000000 {
"defaults": 239.68829202651978,
"str": 1595.5013337135315,
"obj": 154.00483322143555
} minipass-3.3.6/bench/results/extend-through2-slow-fast-1.json 0000664 0000000 0000000 00000000135 14340072270 0024121 0 ustar 00root root 0000000 0000000 {
"defaults": 30.115875244140625,
"str": 1383.3513751029968,
"obj": 32.43433332443237
} minipass-3.3.6/bench/results/extend-through2-slow-fast-20.json 0000664 0000000 0000000 00000000133 14340072270 0024200 0 ustar 00root root 0000000 0000000 {
"defaults": 312.4208331108093,
"str": 1739.513334274292,
"obj": 239.5954999923706
} minipass-3.3.6/bench/results/extend-through2-slow-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0024147 0 ustar 00root root 0000000 0000000 {
"defaults": 35.7008752822876,
"str": 1406.1673340797424,
"obj": 37.660542011260986
} minipass-3.3.6/bench/results/extend-through2-slow-slow-20.json 0000664 0000000 0000000 00000000136 14340072270 0024232 0 ustar 00root root 0000000 0000000 {
"defaults": 298.22725009918213,
"str": 1673.6373329162598,
"obj": 248.40116691589355
} minipass-3.3.6/bench/results/minipass-current-async-fast-fast-1.json 0000664 0000000 0000000 00000000135 14340072270 0025461 0 ustar 00root root 0000000 0000000 {
"defaults": 16.294415950775146,
"str": 14.916707992553711,
"obj": 9.839959144592285
} minipass-3.3.6/bench/results/minipass-current-async-fast-fast-20.json 0000664 0000000 0000000 00000000135 14340072270 0025542 0 ustar 00root root 0000000 0000000 {
"defaults": 159.47150039672852,
"str": 163.9047498703003,
"obj": 131.72820806503296
} minipass-3.3.6/bench/results/minipass-current-async-fast-mixed-1.json 0000664 0000000 0000000 00000000136 14340072270 0025633 0 ustar 00root root 0000000 0000000 {
"defaults": 28.696916103363037,
"str": 18.774374961853027,
"obj": 12.601791858673096
} minipass-3.3.6/bench/results/minipass-current-async-fast-mixed-20.json 0000664 0000000 0000000 00000000136 14340072270 0025714 0 ustar 00root root 0000000 0000000 {
"defaults": 167.80179071426392,
"str": 171.08720779418945,
"obj": 138.03287506103516
} minipass-3.3.6/bench/results/minipass-current-async-fast-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0025507 0 ustar 00root root 0000000 0000000 {
"defaults": 28.066959381103516,
"str": 18.07433271408081,
"obj": 12.47458267211914
} minipass-3.3.6/bench/results/minipass-current-async-fast-slow-20.json 0000664 0000000 0000000 00000000135 14340072270 0025571 0 ustar 00root root 0000000 0000000 {
"defaults": 165.56383275985718,
"str": 170.0132918357849,
"obj": 137.74329233169556
} minipass-3.3.6/bench/results/minipass-current-async-slow-fast-1.json 0000664 0000000 0000000 00000000136 14340072270 0025511 0 ustar 00root root 0000000 0000000 {
"defaults": 15.839667320251465,
"str": 15.014665603637695,
"obj": 14.817874908447266
} minipass-3.3.6/bench/results/minipass-current-async-slow-fast-20.json 0000664 0000000 0000000 00000000135 14340072270 0025571 0 ustar 00root root 0000000 0000000 {
"defaults": 106.81470775604248,
"str": 110.63445901870728,
"obj": 81.92266702651978
} minipass-3.3.6/bench/results/minipass-current-async-slow-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0025536 0 ustar 00root root 0000000 0000000 {
"defaults": 25.94129180908203,
"str": 23.38579225540161,
"obj": 18.815707683563232
} minipass-3.3.6/bench/results/minipass-current-async-slow-slow-20.json 0000664 0000000 0000000 00000000136 14340072270 0025621 0 ustar 00root root 0000000 0000000 {
"defaults": 270.37124967575073,
"str": 260.62041664123535,
"obj": 224.95733261108398
} minipass-3.3.6/bench/results/minipass-current-fast-fast-1.json 0000664 0000000 0000000 00000000133 14340072270 0024344 0 ustar 00root root 0000000 0000000 {
"defaults": 9.972874641418457,
"str": 9.307541847229004,
"obj": 6.048374652862549
} minipass-3.3.6/bench/results/minipass-current-fast-fast-20.json 0000664 0000000 0000000 00000000133 14340072270 0024425 0 ustar 00root root 0000000 0000000 {
"defaults": 88.68699979782104,
"str": 93.47599983215332,
"obj": 67.34345817565918
} minipass-3.3.6/bench/results/minipass-current-fast-mixed-1.json 0000664 0000000 0000000 00000000135 14340072270 0024517 0 ustar 00root root 0000000 0000000 {
"defaults": 16.839958667755127,
"str": 16.83329200744629,
"obj": 11.486834049224854
} minipass-3.3.6/bench/results/minipass-current-fast-mixed-100.json 0000664 0000000 0000000 00000000036 14340072270 0024657 0 ustar 00root root 0000000 0000000 {
"obj": 676.8444590568542
} minipass-3.3.6/bench/results/minipass-current-fast-mixed-20.json 0000664 0000000 0000000 00000000136 14340072270 0024601 0 ustar 00root root 0000000 0000000 {
"defaults": 187.45829105377197,
"str": 198.75245904922485,
"obj": 166.30270767211914
} minipass-3.3.6/bench/results/minipass-current-fast-slow-1.json 0000664 0000000 0000000 00000000136 14340072270 0024376 0 ustar 00root root 0000000 0000000 {
"defaults": 16.580334186553955,
"str": 16.225249767303467,
"obj": 11.322457790374756
} minipass-3.3.6/bench/results/minipass-current-fast-slow-20.json 0000664 0000000 0000000 00000000136 14340072270 0024457 0 ustar 00root root 0000000 0000000 {
"defaults": 184.97087478637695,
"str": 197.72462511062622,
"obj": 165.23862504959106
} minipass-3.3.6/bench/results/minipass-current-slow-fast-1.json 0000664 0000000 0000000 00000000134 14340072270 0024374 0 ustar 00root root 0000000 0000000 {
"defaults": 14.294374942779541,
"str": 14.631457805633545,
"obj": 8.58270788192749
} minipass-3.3.6/bench/results/minipass-current-slow-fast-20.json 0000664 0000000 0000000 00000000133 14340072270 0024454 0 ustar 00root root 0000000 0000000 {
"defaults": 94.26279211044312,
"str": 95.58812522888184,
"obj": 68.56379222869873
} minipass-3.3.6/bench/results/minipass-current-slow-slow-1.json 0000664 0000000 0000000 00000000135 14340072270 0024424 0 ustar 00root root 0000000 0000000 {
"defaults": 22.831292152404785,
"str": 23.042624950408936,
"obj": 19.78458309173584
} minipass-3.3.6/bench/results/minipass-current-slow-slow-20.json 0000664 0000000 0000000 00000000136 14340072270 0024506 0 ustar 00root root 0000000 0000000 {
"defaults": 189.56308364868164,
"str": 199.00683307647705,
"obj": 170.29383325576782
} minipass-3.3.6/bench/results/minipass-latest-fast-fast-1.json 0000664 0000000 0000000 00000000134 14340072270 0024157 0 ustar 00root root 0000000 0000000 {
"defaults": 10.866167068481445,
"str": 9.983208656311035,
"obj": 7.564582824707031
} minipass-3.3.6/bench/results/minipass-latest-fast-fast-20.json 0000664 0000000 0000000 00000000134 14340072270 0024240 0 ustar 00root root 0000000 0000000 {
"defaults": 101.7110424041748,
"str": 106.13970756530762,
"obj": 82.52587509155273
} minipass-3.3.6/bench/results/minipass-latest-fast-mixed-1.json 0000664 0000000 0000000 00000000135 14340072270 0024331 0 ustar 00root root 0000000 0000000 {
"defaults": 20.828207969665527,
"str": 19.701833248138428,
"obj": 16.61987543106079
} minipass-3.3.6/bench/results/minipass-latest-fast-mixed-20.json 0000664 0000000 0000000 00000000134 14340072270 0024411 0 ustar 00root root 0000000 0000000 {
"defaults": 246.4864583015442,
"str": 266.0526661872864,
"obj": 240.15312480926514
} minipass-3.3.6/bench/results/minipass-latest-fast-slow-1.json 0000664 0000000 0000000 00000000136 14340072270 0024210 0 ustar 00root root 0000000 0000000 {
"defaults": 19.414709091186523,
"str": 19.734874725341797,
"obj": 16.394832611083984
} minipass-3.3.6/bench/results/minipass-latest-fast-slow-20.json 0000664 0000000 0000000 00000000135 14340072270 0024270 0 ustar 00root root 0000000 0000000 {
"defaults": 245.7106671333313,
"str": 265.93070793151855,
"obj": 240.51108312606812
} minipass-3.3.6/bench/results/minipass-latest-slow-fast-1.json 0000664 0000000 0000000 00000000134 14340072270 0024206 0 ustar 00root root 0000000 0000000 {
"defaults": 15.393832683563232,
"str": 14.280582904815674,
"obj": 11.7600417137146
} minipass-3.3.6/bench/results/minipass-latest-slow-fast-20.json 0000664 0000000 0000000 00000000134 14340072270 0024267 0 ustar 00root root 0000000 0000000 {
"defaults": 103.7354998588562,
"str": 107.90645933151245,
"obj": 90.60833311080933
} minipass-3.3.6/bench/results/minipass-latest-slow-slow-1.json 0000664 0000000 0000000 00000000136 14340072270 0024237 0 ustar 00root root 0000000 0000000 {
"defaults": 26.117584228515625,
"str": 25.474292278289795,
"obj": 24.977290630340576
} minipass-3.3.6/bench/results/minipass-latest-slow-slow-20.json 0000664 0000000 0000000 00000000133 14340072270 0024315 0 ustar 00root root 0000000 0000000 {
"defaults": 246.13241577148438,
"str": 256.8340826034546,
"obj": 236.080500125885
} minipass-3.3.6/bench/results/push-through-fast-fast-1.json 0000664 0000000 0000000 00000000134 14340072270 0023477 0 ustar 00root root 0000000 0000000 {
"defaults": 4.571958065032959,
"str": 4.329500198364258,
"obj": 0.9436254501342773
} minipass-3.3.6/bench/results/push-through-fast-fast-20.json 0000664 0000000 0000000 00000000056 14340072270 0023563 0 ustar 00root root 0000000 0000000 {
"defaults": {},
"str": {},
"obj": {}
} minipass-3.3.6/bench/results/push-through-fast-mixed-1.json 0000664 0000000 0000000 00000000132 14340072270 0023646 0 ustar 00root root 0000000 0000000 {
"defaults": 8.806500434875488,
"str": 7.162916660308838,
"obj": 3.48104190826416
} minipass-3.3.6/bench/results/push-through-fast-mixed-20.json 0000664 0000000 0000000 00000000056 14340072270 0023734 0 ustar 00root root 0000000 0000000 {
"defaults": {},
"str": {},
"obj": {}
} minipass-3.3.6/bench/results/push-through-fast-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0023526 0 ustar 00root root 0000000 0000000 {
"defaults": 8.510458946228027,
"str": 6.624207973480225,
"obj": 3.3635826110839844
} minipass-3.3.6/bench/results/push-through-fast-slow-20.json 0000664 0000000 0000000 00000000056 14340072270 0023612 0 ustar 00root root 0000000 0000000 {
"defaults": {},
"str": {},
"obj": {}
} minipass-3.3.6/bench/results/push-through-slow-fast-1.json 0000664 0000000 0000000 00000000133 14340072270 0023525 0 ustar 00root root 0000000 0000000 {
"defaults": 8.911791801452637,
"str": 9.212250232696533,
"obj": 6.082250118255615
} minipass-3.3.6/bench/results/push-through-slow-fast-20.json 0000664 0000000 0000000 00000000056 14340072270 0023612 0 ustar 00root root 0000000 0000000 {
"defaults": {},
"str": {},
"obj": {}
} minipass-3.3.6/bench/results/push-through-slow-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0023555 0 ustar 00root root 0000000 0000000 {
"defaults": 16.439791202545166,
"str": 14.342957973480225,
"obj": 11.8979172706604
} minipass-3.3.6/bench/results/push-through-slow-slow-20.json 0000664 0000000 0000000 00000000056 14340072270 0023641 0 ustar 00root root 0000000 0000000 {
"defaults": {},
"str": {},
"obj": {}
} minipass-3.3.6/bench/results/through2-fast-fast-1.json 0000664 0000000 0000000 00000000136 14340072270 0022606 0 ustar 00root root 0000000 0000000 {
"defaults": 23.358792304992676,
"str": 1519.4609580039978,
"obj": 18.863791942596436
} minipass-3.3.6/bench/results/through2-fast-fast-20.json 0000664 0000000 0000000 00000000134 14340072270 0022665 0 ustar 00root root 0000000 0000000 {
"defaults": 269.9025411605835,
"str": 30722.50658416748,
"obj": 237.11420822143555
} minipass-3.3.6/bench/results/through2-fast-mixed-1.json 0000664 0000000 0000000 00000000136 14340072270 0022757 0 ustar 00root root 0000000 0000000 {
"defaults": 25.791290760040283,
"str": 1463.4079580307007,
"obj": 16.932791233062744
} minipass-3.3.6/bench/results/through2-fast-mixed-20.json 0000664 0000000 0000000 00000000136 14340072270 0023040 0 ustar 00root root 0000000 0000000 {
"defaults": 237.30966711044312,
"str": 36814.678584098816,
"obj": 142.29699993133545
} minipass-3.3.6/bench/results/through2-fast-slow-1.json 0000664 0000000 0000000 00000000135 14340072270 0022634 0 ustar 00root root 0000000 0000000 {
"defaults": 23.46716594696045,
"str": 1448.8229160308838,
"obj": 14.695291996002197
} minipass-3.3.6/bench/results/through2-fast-slow-20.json 0000664 0000000 0000000 00000000135 14340072270 0022715 0 ustar 00root root 0000000 0000000 {
"defaults": 235.12229204177856,
"str": 36618.73558282852,
"obj": 148.23050022125244
} minipass-3.3.6/bench/results/through2-slow-fast-1.json 0000664 0000000 0000000 00000000134 14340072270 0022633 0 ustar 00root root 0000000 0000000 {
"defaults": 30.843832969665527,
"str": 1474.772541999817,
"obj": 30.43804121017456
} minipass-3.3.6/bench/results/through2-slow-fast-20.json 0000664 0000000 0000000 00000000135 14340072270 0022715 0 ustar 00root root 0000000 0000000 {
"defaults": 284.6131248474121,
"str": 29469.896290779114,
"obj": 238.76466703414917
} minipass-3.3.6/bench/results/through2-slow-slow-1.json 0000664 0000000 0000000 00000000134 14340072270 0022662 0 ustar 00root root 0000000 0000000 {
"defaults": 34.66804075241089,
"str": 1452.2015419006348,
"obj": 37.72975015640259
} minipass-3.3.6/bench/results/through2-slow-slow-20.json 0000664 0000000 0000000 00000000136 14340072270 0022745 0 ustar 00root root 0000000 0000000 {
"defaults": 294.61695766448975,
"str": 29603.270833015442,
"obj": 264.94858407974243
} minipass-3.3.6/bench/test.js 0000664 0000000 0000000 00000010302 14340072270 0015735 0 ustar 00root root 0000000 0000000 'use strict'
const iterations = +process.env.BENCH_TEST_ITERATION || 100
const testCount = +process.env.BENCH_TEST_COUNT || 20
const tests = [
'baseline',
'minipass',
'extend-minipass',
'through2',
'extend-through2',
'passthrough',
'extend-transform'
]
const manyOpts = [ 'many', 'single' ]
const typeOpts = [ 'buffer', 'string', 'object' ]
const main = () => {
const spawn = require('child_process').spawn
const node = process.execPath
const results = {}
const testSet = []
tests.forEach(t =>
manyOpts.forEach(many =>
typeOpts.forEach(type =>
new Array(testCount).join(',').split(',').forEach(() =>
t !== 'baseline' || (many === 'single' && type === 'object')
? testSet.push([t, many, type]) : null))))
let didFirst = false
const mainRunTest = t => {
if (!t)
return afterMain(results)
const k = t.join('\t')
if (!results[k]) {
results[k] = []
if (!didFirst)
didFirst = true
else
process.stderr.write('\n')
process.stderr.write(k + ' #')
} else {
process.stderr.write('#')
}
const c = spawn(node, [__filename].concat(t), {
stdio: [ 'ignore', 'pipe', 2 ]
})
let out = ''
c.stdout.on('data', c => out += c)
c.on('close', (code, signal) => {
if (code || signal)
throw new Error('failed: ' + code + ' ' + signal)
results[k].push(+out)
mainRunTest(testSet.shift())
})
}
mainRunTest(testSet.shift())
}
const afterMain = results => {
console.log('test\tmany\ttype\tops/s\tmean\tmedian\tmax\tmin' +
'\tstdev\trange\traw')
// get the mean, median, stddev, and range of each test
Object.keys(results).forEach(test => {
const k = results[test].sort((a, b) => a - b)
const min = k[0]
const max = k[ k.length - 1 ]
const range = max - min
const sum = k.reduce((a,b) => a + b, 0)
const mean = sum / k.length
const ops = iterations / mean * 1000
const devs = k.map(n => n - mean).map(n => n * n)
const avgdev = devs.reduce((a,b) => a + b, 0) / k.length
const stdev = Math.pow(avgdev, 0.5)
const median = k.length % 2 ? k[Math.floor(k.length / 2)] :
(k[k.length/2] + k[k.length/2+1])/2
console.log(
'%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%s', test, round(ops),
round(mean), round(median),
max, min, round(stdev), round(range),
k.join('\t'))
})
}
const round = num => Math.round(num * 1000)/1000
const test = (testname, many, type) => {
const timer = require('./lib/timer.js')
const Class = getClass(testname)
const done = timer()
runTest(Class, many, type, iterations, done)
}
// don't blow up the stack! loop unless deferred
const runTest = (Class, many, type, iterations, done) => {
const Nullsink = require('./lib/nullsink.js')
const Numbers = require('./lib/numbers.js')
const opt = {}
if (type === 'string')
opt.encoding = 'utf8'
else if (type === 'object')
opt.objectMode = true
while (iterations--) {
let finished = false
let inloop = true
const after = iterations === 0 ? done
: () => {
if (iterations === 0)
done()
else if (inloop)
finished = true
else
runTest(Class, many, type, iterations, done)
}
const out = new Nullsink().on('finish', after)
let sink = Class ? new Class(opt) : out
if (many && Class)
sink = sink
.pipe(new Class(opt))
.pipe(new Class(opt))
.pipe(new Class(opt))
.pipe(new Class(opt))
if (sink !== out)
sink.pipe(out)
new Numbers(opt).pipe(sink)
// keep tight-looping if the stream is done already
if (!finished) {
inloop = false
break
}
}
}
const getClass = testname =>
testname === 'through2' ? require('through2').obj
: testname === 'extend-through2' ? require('./lib/extend-through2.js')
: testname === 'minipass' ? require('../')
: testname === 'extend-minipass' ? require('./lib/extend-minipass.js')
: testname === 'passthrough' ? require('stream').PassThrough
: testname === 'extend-transform' ? require('./lib/extend-transform.js')
: null
if (!process.argv[2])
main()
else
test(process.argv[2], process.argv[3] === 'many', process.argv[4])
minipass-3.3.6/index.d.ts 0000664 0000000 0000000 00000010200 14340072270 0015237 0 ustar 00root root 0000000 0000000 ///
import { EventEmitter } from 'events'
import { Stream } from 'stream'
declare namespace Minipass {
type Encoding = BufferEncoding | 'buffer' | null
interface Writable extends EventEmitter {
end(): any
write(chunk: any, ...args: any[]): any
}
interface Readable extends EventEmitter {
pause(): any
resume(): any
pipe(): any
}
interface Pipe {
src: Minipass
dest: Writable
opts: PipeOptions
}
type DualIterable = Iterable & AsyncIterable
type ContiguousData = Buffer | ArrayBufferLike | ArrayBufferView | string
type BufferOrString = Buffer | string
interface StringOptions {
encoding: BufferEncoding
objectMode?: boolean
async?: boolean
}
interface BufferOptions {
encoding?: null | 'buffer'
objectMode?: boolean
async?: boolean
}
interface ObjectModeOptions {
objectMode: true
async?: boolean
}
interface PipeOptions {
end?: boolean
proxyErrors?: boolean
}
type Options = T extends string
? StringOptions
: T extends Buffer
? BufferOptions
: ObjectModeOptions
}
declare class Minipass<
RType extends any = Buffer,
WType extends any = RType extends Minipass.BufferOrString
? Minipass.ContiguousData
: RType
>
extends Stream
implements Minipass.DualIterable
{
static isStream(stream: any): stream is Minipass.Readable | Minipass.Writable
readonly bufferLength: number
readonly flowing: boolean
readonly writable: boolean
readonly readable: boolean
readonly paused: boolean
readonly emittedEnd: boolean
readonly destroyed: boolean
/**
* Not technically private or readonly, but not safe to mutate.
*/
private readonly buffer: RType[]
private readonly pipes: Minipass.Pipe[]
/**
* Technically writable, but mutating it can change the type,
* so is not safe to do in TypeScript.
*/
readonly objectMode: boolean
async: boolean
/**
* Note: encoding is not actually read-only, and setEncoding(enc)
* exists. However, this type definition will insist that TypeScript
* programs declare the type of a Minipass stream up front, and if
* that type is string, then an encoding MUST be set in the ctor. If
* the type is Buffer, then the encoding must be missing, or set to
* 'buffer' or null. If the type is anything else, then objectMode
* must be set in the constructor options. So there is effectively
* no allowed way that a TS program can set the encoding after
* construction, as doing so will destroy any hope of type safety.
* TypeScript does not provide many options for changing the type of
* an object at run-time, which is what changing the encoding does.
*/
readonly encoding: Minipass.Encoding
// setEncoding(encoding: Encoding): void
// Options required if not reading buffers
constructor(
...args: RType extends Buffer
? [] | [Minipass.Options]
: [Minipass.Options]
)
write(chunk: WType, cb?: () => void): boolean
write(chunk: WType, encoding?: Minipass.Encoding, cb?: () => void): boolean
read(size?: number): RType
end(cb?: () => void): this
end(chunk: any, cb?: () => void): this
end(chunk: any, encoding?: Minipass.Encoding, cb?: () => void): this
pause(): void
resume(): void
promise(): Promise
collect(): Promise
concat(): RType extends Minipass.BufferOrString ? Promise : never
destroy(er?: any): void
pipe(dest: W, opts?: Minipass.PipeOptions): W
unpipe(dest: W): void
/**
* alias for on()
*/
addEventHandler(event: string, listener: (...args: any[]) => any): this
on(event: string, listener: (...args: any[]) => any): this
on(event: 'data', listener: (chunk: RType) => any): this
on(event: 'error', listener: (error: any) => any): this
on(
event:
| 'readable'
| 'drain'
| 'resume'
| 'end'
| 'prefinish'
| 'finish'
| 'close',
listener: () => any
): this
[Symbol.iterator](): Iterator
[Symbol.asyncIterator](): AsyncIterator
}
export = Minipass
minipass-3.3.6/index.js 0000664 0000000 0000000 00000040367 14340072270 0015024 0 ustar 00root root 0000000 0000000 'use strict'
const proc = typeof process === 'object' && process ? process : {
stdout: null,
stderr: null,
}
const EE = require('events')
const Stream = require('stream')
const SD = require('string_decoder').StringDecoder
const EOF = Symbol('EOF')
const MAYBE_EMIT_END = Symbol('maybeEmitEnd')
const EMITTED_END = Symbol('emittedEnd')
const EMITTING_END = Symbol('emittingEnd')
const EMITTED_ERROR = Symbol('emittedError')
const CLOSED = Symbol('closed')
const READ = Symbol('read')
const FLUSH = Symbol('flush')
const FLUSHCHUNK = Symbol('flushChunk')
const ENCODING = Symbol('encoding')
const DECODER = Symbol('decoder')
const FLOWING = Symbol('flowing')
const PAUSED = Symbol('paused')
const RESUME = Symbol('resume')
const BUFFERLENGTH = Symbol('bufferLength')
const BUFFERPUSH = Symbol('bufferPush')
const BUFFERSHIFT = Symbol('bufferShift')
const OBJECTMODE = Symbol('objectMode')
const DESTROYED = Symbol('destroyed')
const EMITDATA = Symbol('emitData')
const EMITEND = Symbol('emitEnd')
const EMITEND2 = Symbol('emitEnd2')
const ASYNC = Symbol('async')
const defer = fn => Promise.resolve().then(fn)
// TODO remove when Node v8 support drops
const doIter = global._MP_NO_ITERATOR_SYMBOLS_ !== '1'
const ASYNCITERATOR = doIter && Symbol.asyncIterator
|| Symbol('asyncIterator not implemented')
const ITERATOR = doIter && Symbol.iterator
|| Symbol('iterator not implemented')
// events that mean 'the stream is over'
// these are treated specially, and re-emitted
// if they are listened for after emitting.
const isEndish = ev =>
ev === 'end' ||
ev === 'finish' ||
ev === 'prefinish'
const isArrayBuffer = b => b instanceof ArrayBuffer ||
typeof b === 'object' &&
b.constructor &&
b.constructor.name === 'ArrayBuffer' &&
b.byteLength >= 0
const isArrayBufferView = b => !Buffer.isBuffer(b) && ArrayBuffer.isView(b)
class Pipe {
constructor (src, dest, opts) {
this.src = src
this.dest = dest
this.opts = opts
this.ondrain = () => src[RESUME]()
dest.on('drain', this.ondrain)
}
unpipe () {
this.dest.removeListener('drain', this.ondrain)
}
// istanbul ignore next - only here for the prototype
proxyErrors () {}
end () {
this.unpipe()
if (this.opts.end)
this.dest.end()
}
}
class PipeProxyErrors extends Pipe {
unpipe () {
this.src.removeListener('error', this.proxyErrors)
super.unpipe()
}
constructor (src, dest, opts) {
super(src, dest, opts)
this.proxyErrors = er => dest.emit('error', er)
src.on('error', this.proxyErrors)
}
}
module.exports = class Minipass extends Stream {
constructor (options) {
super()
this[FLOWING] = false
// whether we're explicitly paused
this[PAUSED] = false
this.pipes = []
this.buffer = []
this[OBJECTMODE] = options && options.objectMode || false
if (this[OBJECTMODE])
this[ENCODING] = null
else
this[ENCODING] = options && options.encoding || null
if (this[ENCODING] === 'buffer')
this[ENCODING] = null
this[ASYNC] = options && !!options.async || false
this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null
this[EOF] = false
this[EMITTED_END] = false
this[EMITTING_END] = false
this[CLOSED] = false
this[EMITTED_ERROR] = null
this.writable = true
this.readable = true
this[BUFFERLENGTH] = 0
this[DESTROYED] = false
}
get bufferLength () { return this[BUFFERLENGTH] }
get encoding () { return this[ENCODING] }
set encoding (enc) {
if (this[OBJECTMODE])
throw new Error('cannot set encoding in objectMode')
if (this[ENCODING] && enc !== this[ENCODING] &&
(this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH]))
throw new Error('cannot change encoding')
if (this[ENCODING] !== enc) {
this[DECODER] = enc ? new SD(enc) : null
if (this.buffer.length)
this.buffer = this.buffer.map(chunk => this[DECODER].write(chunk))
}
this[ENCODING] = enc
}
setEncoding (enc) {
this.encoding = enc
}
get objectMode () { return this[OBJECTMODE] }
set objectMode (om) { this[OBJECTMODE] = this[OBJECTMODE] || !!om }
get ['async'] () { return this[ASYNC] }
set ['async'] (a) { this[ASYNC] = this[ASYNC] || !!a }
write (chunk, encoding, cb) {
if (this[EOF])
throw new Error('write after end')
if (this[DESTROYED]) {
this.emit('error', Object.assign(
new Error('Cannot call write after a stream was destroyed'),
{ code: 'ERR_STREAM_DESTROYED' }
))
return true
}
if (typeof encoding === 'function')
cb = encoding, encoding = 'utf8'
if (!encoding)
encoding = 'utf8'
const fn = this[ASYNC] ? defer : f => f()
// convert array buffers and typed array views into buffers
// at some point in the future, we may want to do the opposite!
// leave strings and buffers as-is
// anything else switches us into object mode
if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
if (isArrayBufferView(chunk))
chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)
else if (isArrayBuffer(chunk))
chunk = Buffer.from(chunk)
else if (typeof chunk !== 'string')
// use the setter so we throw if we have encoding set
this.objectMode = true
}
// handle object mode up front, since it's simpler
// this yields better performance, fewer checks later.
if (this[OBJECTMODE]) {
/* istanbul ignore if - maybe impossible? */
if (this.flowing && this[BUFFERLENGTH] !== 0)
this[FLUSH](true)
if (this.flowing)
this.emit('data', chunk)
else
this[BUFFERPUSH](chunk)
if (this[BUFFERLENGTH] !== 0)
this.emit('readable')
if (cb)
fn(cb)
return this.flowing
}
// at this point the chunk is a buffer or string
// don't buffer it up or send it to the decoder
if (!chunk.length) {
if (this[BUFFERLENGTH] !== 0)
this.emit('readable')
if (cb)
fn(cb)
return this.flowing
}
// fast-path writing strings of same encoding to a stream with
// an empty buffer, skipping the buffer/decoder dance
if (typeof chunk === 'string' &&
// unless it is a string already ready for us to use
!(encoding === this[ENCODING] && !this[DECODER].lastNeed)) {
chunk = Buffer.from(chunk, encoding)
}
if (Buffer.isBuffer(chunk) && this[ENCODING])
chunk = this[DECODER].write(chunk)
// Note: flushing CAN potentially switch us into not-flowing mode
if (this.flowing && this[BUFFERLENGTH] !== 0)
this[FLUSH](true)
if (this.flowing)
this.emit('data', chunk)
else
this[BUFFERPUSH](chunk)
if (this[BUFFERLENGTH] !== 0)
this.emit('readable')
if (cb)
fn(cb)
return this.flowing
}
read (n) {
if (this[DESTROYED])
return null
if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) {
this[MAYBE_EMIT_END]()
return null
}
if (this[OBJECTMODE])
n = null
if (this.buffer.length > 1 && !this[OBJECTMODE]) {
if (this.encoding)
this.buffer = [this.buffer.join('')]
else
this.buffer = [Buffer.concat(this.buffer, this[BUFFERLENGTH])]
}
const ret = this[READ](n || null, this.buffer[0])
this[MAYBE_EMIT_END]()
return ret
}
[READ] (n, chunk) {
if (n === chunk.length || n === null)
this[BUFFERSHIFT]()
else {
this.buffer[0] = chunk.slice(n)
chunk = chunk.slice(0, n)
this[BUFFERLENGTH] -= n
}
this.emit('data', chunk)
if (!this.buffer.length && !this[EOF])
this.emit('drain')
return chunk
}
end (chunk, encoding, cb) {
if (typeof chunk === 'function')
cb = chunk, chunk = null
if (typeof encoding === 'function')
cb = encoding, encoding = 'utf8'
if (chunk)
this.write(chunk, encoding)
if (cb)
this.once('end', cb)
this[EOF] = true
this.writable = false
// if we haven't written anything, then go ahead and emit,
// even if we're not reading.
// we'll re-emit if a new 'end' listener is added anyway.
// This makes MP more suitable to write-only use cases.
if (this.flowing || !this[PAUSED])
this[MAYBE_EMIT_END]()
return this
}
// don't let the internal resume be overwritten
[RESUME] () {
if (this[DESTROYED])
return
this[PAUSED] = false
this[FLOWING] = true
this.emit('resume')
if (this.buffer.length)
this[FLUSH]()
else if (this[EOF])
this[MAYBE_EMIT_END]()
else
this.emit('drain')
}
resume () {
return this[RESUME]()
}
pause () {
this[FLOWING] = false
this[PAUSED] = true
}
get destroyed () {
return this[DESTROYED]
}
get flowing () {
return this[FLOWING]
}
get paused () {
return this[PAUSED]
}
[BUFFERPUSH] (chunk) {
if (this[OBJECTMODE])
this[BUFFERLENGTH] += 1
else
this[BUFFERLENGTH] += chunk.length
this.buffer.push(chunk)
}
[BUFFERSHIFT] () {
if (this.buffer.length) {
if (this[OBJECTMODE])
this[BUFFERLENGTH] -= 1
else
this[BUFFERLENGTH] -= this.buffer[0].length
}
return this.buffer.shift()
}
[FLUSH] (noDrain) {
do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]()))
if (!noDrain && !this.buffer.length && !this[EOF])
this.emit('drain')
}
[FLUSHCHUNK] (chunk) {
return chunk ? (this.emit('data', chunk), this.flowing) : false
}
pipe (dest, opts) {
if (this[DESTROYED])
return
const ended = this[EMITTED_END]
opts = opts || {}
if (dest === proc.stdout || dest === proc.stderr)
opts.end = false
else
opts.end = opts.end !== false
opts.proxyErrors = !!opts.proxyErrors
// piping an ended stream ends immediately
if (ended) {
if (opts.end)
dest.end()
} else {
this.pipes.push(!opts.proxyErrors ? new Pipe(this, dest, opts)
: new PipeProxyErrors(this, dest, opts))
if (this[ASYNC])
defer(() => this[RESUME]())
else
this[RESUME]()
}
return dest
}
unpipe (dest) {
const p = this.pipes.find(p => p.dest === dest)
if (p) {
this.pipes.splice(this.pipes.indexOf(p), 1)
p.unpipe()
}
}
addListener (ev, fn) {
return this.on(ev, fn)
}
on (ev, fn) {
const ret = super.on(ev, fn)
if (ev === 'data' && !this.pipes.length && !this.flowing)
this[RESUME]()
else if (ev === 'readable' && this[BUFFERLENGTH] !== 0)
super.emit('readable')
else if (isEndish(ev) && this[EMITTED_END]) {
super.emit(ev)
this.removeAllListeners(ev)
} else if (ev === 'error' && this[EMITTED_ERROR]) {
if (this[ASYNC])
defer(() => fn.call(this, this[EMITTED_ERROR]))
else
fn.call(this, this[EMITTED_ERROR])
}
return ret
}
get emittedEnd () {
return this[EMITTED_END]
}
[MAYBE_EMIT_END] () {
if (!this[EMITTING_END] &&
!this[EMITTED_END] &&
!this[DESTROYED] &&
this.buffer.length === 0 &&
this[EOF]) {
this[EMITTING_END] = true
this.emit('end')
this.emit('prefinish')
this.emit('finish')
if (this[CLOSED])
this.emit('close')
this[EMITTING_END] = false
}
}
emit (ev, data, ...extra) {
// error and close are only events allowed after calling destroy()
if (ev !== 'error' && ev !== 'close' && ev !== DESTROYED && this[DESTROYED])
return
else if (ev === 'data') {
return !data ? false
: this[ASYNC] ? defer(() => this[EMITDATA](data))
: this[EMITDATA](data)
} else if (ev === 'end') {
return this[EMITEND]()
} else if (ev === 'close') {
this[CLOSED] = true
// don't emit close before 'end' and 'finish'
if (!this[EMITTED_END] && !this[DESTROYED])
return
const ret = super.emit('close')
this.removeAllListeners('close')
return ret
} else if (ev === 'error') {
this[EMITTED_ERROR] = data
const ret = super.emit('error', data)
this[MAYBE_EMIT_END]()
return ret
} else if (ev === 'resume') {
const ret = super.emit('resume')
this[MAYBE_EMIT_END]()
return ret
} else if (ev === 'finish' || ev === 'prefinish') {
const ret = super.emit(ev)
this.removeAllListeners(ev)
return ret
}
// Some other unknown event
const ret = super.emit(ev, data, ...extra)
this[MAYBE_EMIT_END]()
return ret
}
[EMITDATA] (data) {
for (const p of this.pipes) {
if (p.dest.write(data) === false)
this.pause()
}
const ret = super.emit('data', data)
this[MAYBE_EMIT_END]()
return ret
}
[EMITEND] () {
if (this[EMITTED_END])
return
this[EMITTED_END] = true
this.readable = false
if (this[ASYNC])
defer(() => this[EMITEND2]())
else
this[EMITEND2]()
}
[EMITEND2] () {
if (this[DECODER]) {
const data = this[DECODER].end()
if (data) {
for (const p of this.pipes) {
p.dest.write(data)
}
super.emit('data', data)
}
}
for (const p of this.pipes) {
p.end()
}
const ret = super.emit('end')
this.removeAllListeners('end')
return ret
}
// const all = await stream.collect()
collect () {
const buf = []
if (!this[OBJECTMODE])
buf.dataLength = 0
// set the promise first, in case an error is raised
// by triggering the flow here.
const p = this.promise()
this.on('data', c => {
buf.push(c)
if (!this[OBJECTMODE])
buf.dataLength += c.length
})
return p.then(() => buf)
}
// const data = await stream.concat()
concat () {
return this[OBJECTMODE]
? Promise.reject(new Error('cannot concat in objectMode'))
: this.collect().then(buf =>
this[OBJECTMODE]
? Promise.reject(new Error('cannot concat in objectMode'))
: this[ENCODING] ? buf.join('') : Buffer.concat(buf, buf.dataLength))
}
// stream.promise().then(() => done, er => emitted error)
promise () {
return new Promise((resolve, reject) => {
this.on(DESTROYED, () => reject(new Error('stream destroyed')))
this.on('error', er => reject(er))
this.on('end', () => resolve())
})
}
// for await (let chunk of stream)
[ASYNCITERATOR] () {
const next = () => {
const res = this.read()
if (res !== null)
return Promise.resolve({ done: false, value: res })
if (this[EOF])
return Promise.resolve({ done: true })
let resolve = null
let reject = null
const onerr = er => {
this.removeListener('data', ondata)
this.removeListener('end', onend)
reject(er)
}
const ondata = value => {
this.removeListener('error', onerr)
this.removeListener('end', onend)
this.pause()
resolve({ value: value, done: !!this[EOF] })
}
const onend = () => {
this.removeListener('error', onerr)
this.removeListener('data', ondata)
resolve({ done: true })
}
const ondestroy = () => onerr(new Error('stream destroyed'))
return new Promise((res, rej) => {
reject = rej
resolve = res
this.once(DESTROYED, ondestroy)
this.once('error', onerr)
this.once('end', onend)
this.once('data', ondata)
})
}
return { next }
}
// for (let chunk of stream)
[ITERATOR] () {
const next = () => {
const value = this.read()
const done = value === null
return { value, done }
}
return { next }
}
destroy (er) {
if (this[DESTROYED]) {
if (er)
this.emit('error', er)
else
this.emit(DESTROYED)
return this
}
this[DESTROYED] = true
// throw away all buffered data, it's never coming out
this.buffer.length = 0
this[BUFFERLENGTH] = 0
if (typeof this.close === 'function' && !this[CLOSED])
this.close()
if (er)
this.emit('error', er)
else // if no error to emit, still reject pending promises
this.emit(DESTROYED)
return this
}
static isStream (s) {
return !!s && (s instanceof Minipass || s instanceof Stream ||
s instanceof EE && (
typeof s.pipe === 'function' || // readable
(typeof s.write === 'function' && typeof s.end === 'function') // writable
))
}
}
minipass-3.3.6/package-lock.json 0000664 0000000 0000000 00000751260 14340072270 0016574 0 ustar 00root root 0000000 0000000 {
"name": "minipass",
"version": "3.3.6",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "minipass",
"version": "3.3.6",
"license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
"devDependencies": {
"@types/node": "^17.0.41",
"end-of-stream": "^1.4.0",
"prettier": "^2.6.2",
"tap": "^16.2.0",
"through2": "^2.0.3",
"ts-node": "^10.8.1",
"typescript": "^4.7.3"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@ampproject/remapping": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
"integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
"dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.1.0",
"@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/code-frame": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
"integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
"dev": true,
"dependencies": {
"@babel/highlight": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/compat-data": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz",
"integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz",
"integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.18.2",
"@babel/helper-compilation-targets": "^7.18.2",
"@babel/helper-module-transforms": "^7.18.0",
"@babel/helpers": "^7.18.2",
"@babel/parser": "^7.18.0",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.18.2",
"@babel/types": "^7.18.2",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.2.1",
"semver": "^6.3.0"
},
"engines": {
"node": ">=6.9.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/babel"
}
},
"node_modules/@babel/generator": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz",
"integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==",
"dev": true,
"dependencies": {
"@babel/types": "^7.18.2",
"@jridgewell/gen-mapping": "^0.3.0",
"jsesc": "^2.5.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",
"integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.0",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz",
"integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==",
"dev": true,
"dependencies": {
"@babel/compat-data": "^7.17.10",
"@babel/helper-validator-option": "^7.16.7",
"browserslist": "^4.20.2",
"semver": "^6.3.0"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-environment-visitor": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz",
"integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-function-name": {
"version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz",
"integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==",
"dev": true,
"dependencies": {
"@babel/template": "^7.16.7",
"@babel/types": "^7.17.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-hoist-variables": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
"integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
"dev": true,
"dependencies": {
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
"integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
"dev": true,
"dependencies": {
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
"version": "7.18.0",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz",
"integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==",
"dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
"@babel/helper-simple-access": "^7.17.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.18.0",
"@babel/types": "^7.18.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz",
"integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==",
"dev": true,
"dependencies": {
"@babel/types": "^7.18.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-split-export-declaration": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
"integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
"dev": true,
"dependencies": {
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
"integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
"integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz",
"integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==",
"dev": true,
"dependencies": {
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.18.2",
"@babel/types": "^7.18.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
"version": "7.17.12",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz",
"integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
"version": "7.18.4",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz",
"integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/template": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
"integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.16.7",
"@babel/parser": "^7.16.7",
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz",
"integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.18.2",
"@babel/helper-environment-visitor": "^7.18.2",
"@babel/helper-function-name": "^7.17.9",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/parser": "^7.18.0",
"@babel/types": "^7.18.2",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/types": {
"version": "7.18.4",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz",
"integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dev": true,
"dependencies": {
"@jridgewell/trace-mapping": "0.3.9"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"node_modules/@istanbuljs/load-nyc-config": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
"integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
"dependencies": {
"camelcase": "^5.3.1",
"find-up": "^4.1.0",
"get-package-type": "^0.1.0",
"js-yaml": "^3.13.1",
"resolve-from": "^5.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
"integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.0",
"@jridgewell/sourcemap-codec": "^1.4.10"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
"integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/set-array": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz",
"integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.13",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
"integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==",
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz",
"integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==",
"dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"node_modules/@tsconfig/node10": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
"dev": true
},
"node_modules/@tsconfig/node12": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
"dev": true
},
"node_modules/@tsconfig/node14": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
"dev": true
},
"node_modules/@tsconfig/node16": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true
},
"node_modules/@types/node": {
"version": "17.0.41",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz",
"integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==",
"dev": true
},
"node_modules/acorn": {
"version": "8.7.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
"integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/acorn-walk": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
"dev": true,
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"dev": true,
"dependencies": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/anymatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/append-transform": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
"integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
"dev": true,
"dependencies": {
"default-require-extensions": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/archy": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
"integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
"dev": true
},
"node_modules/arg": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true
},
"node_modules/argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"dependencies": {
"sprintf-js": "~1.0.2"
}
},
"node_modules/async-hook-domain": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-2.0.4.tgz",
"integrity": "sha512-14LjCmlK1PK8eDtTezR6WX8TMaYNIzBIsd2D1sGoGjgx0BuNMMoSdk7i/drlbtamy0AWv9yv2tkB+ASdmeqFIw==",
"dev": true,
"engines": {
"node": ">=10"
}
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/bind-obj-methods": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-3.0.0.tgz",
"integrity": "sha512-nLEaaz3/sEzNSyPWRsN9HNsqwk1AUyECtGj+XwGdIi3xABnEqecvXtIJ0wehQXuuER5uZ/5fTs2usONgYjG+iw==",
"dev": true,
"engines": {
"node": ">=10"
}
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"dependencies": {
"fill-range": "^7.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/browserslist": {
"version": "4.20.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz",
"integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
}
],
"dependencies": {
"caniuse-lite": "^1.0.30001349",
"electron-to-chromium": "^1.4.147",
"escalade": "^3.1.1",
"node-releases": "^2.0.5",
"picocolors": "^1.0.0"
},
"bin": {
"browserslist": "cli.js"
},
"engines": {
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true
},
"node_modules/caching-transform": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
"integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
"dev": true,
"dependencies": {
"hasha": "^5.0.0",
"make-dir": "^3.0.0",
"package-hash": "^4.0.0",
"write-file-atomic": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001350",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001350.tgz",
"integrity": "sha512-NZBql38Pzd+rAu5SPXv+qmTWGQuFsRiemHCJCAPvkoDxWV19/xqL2YHF32fDJ9SDLdLqfax8+S0CO3ncDCp9Iw==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
}
]
},
"node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
],
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
"glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.6.0"
},
"engines": {
"node": ">= 8.10.0"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
}
},
"node_modules/clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^7.0.0"
}
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
"node_modules/color-support": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"dev": true,
"bin": {
"color-support": "bin.js"
}
},
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
"dev": true
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"node_modules/convert-source-map": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
"integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
"dev": true,
"dependencies": {
"safe-buffer": "~5.1.1"
}
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"dev": true
},
"node_modules/create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
"dev": true
},
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/default-require-extensions": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
"integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
"dev": true,
"dependencies": {
"strip-bom": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/diff": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true,
"engines": {
"node": ">=0.3.1"
}
},
"node_modules/electron-to-chromium": {
"version": "1.4.148",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.148.tgz",
"integrity": "sha512-8MJk1bcQUAYkuvCyWZxaldiwoDG0E0AMzBGA6cv3WfuvJySiPgfidEPBFCRRH3cZm6SVZwo/oRlK1ehi1QNEIQ==",
"dev": true
},
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"node_modules/end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
"dependencies": {
"once": "^1.4.0"
}
},
"node_modules/es6-error": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
"integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
"dev": true
},
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/events-to-array": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz",
"integrity": "sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==",
"dev": true
},
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/find-cache-dir": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
"integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
"dev": true,
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
"pkg-dir": "^4.1.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/avajs/find-cache-dir?sponsor=1"
}
},
"node_modules/find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/findit": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz",
"integrity": "sha512-ENZS237/Hr8bjczn5eKuBohLgaD0JyUd0arxretR1f9RO46vZHA1b2y0VorgGV3WaOT3c+78P8h7v4JGJ1i/rg==",
"dev": true
},
"node_modules/foreground-child": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
"integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.0",
"signal-exit": "^3.0.2"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/fromentries": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
"integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/fs-exists-cached": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz",
"integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==",
"dev": true
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-loop": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/function-loop/-/function-loop-2.0.1.tgz",
"integrity": "sha512-ktIR+O6i/4h+j/ZhZJNdzeI4i9lEPeEK6UPR2EVyTVBqOwcU3Za9xYKLH64ZR9HmcROyRrOkizNyjjtWJzDDkQ==",
"dev": true
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true,
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/get-package-type": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
"integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true,
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/graceful-fs": {
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
"dev": true
},
"node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/hasha": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
"integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
"dev": true,
"dependencies": {
"is-stream": "^2.0.0",
"type-fest": "^0.8.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true
},
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
"engines": {
"node": ">=0.8.19"
}
},
"node_modules/indent-string": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/is-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"dev": true,
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
"dev": true
},
"node_modules/is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"dev": true
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true
},
"node_modules/istanbul-lib-coverage": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
"integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-hook": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
"integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
"dev": true,
"dependencies": {
"append-transform": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-instrument": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
"integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
"dev": true,
"dependencies": {
"@babel/core": "^7.7.5",
"@istanbuljs/schema": "^0.1.2",
"istanbul-lib-coverage": "^3.0.0",
"semver": "^6.3.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-processinfo": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz",
"integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==",
"dev": true,
"dependencies": {
"archy": "^1.0.0",
"cross-spawn": "^7.0.3",
"istanbul-lib-coverage": "^3.2.0",
"p-map": "^3.0.0",
"rimraf": "^3.0.0",
"uuid": "^8.3.2"
},
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-report": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
"integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
"dev": true,
"dependencies": {
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^3.0.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-report/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-report/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-source-maps": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
"integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
"dependencies": {
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
"source-map": "^0.6.1"
},
"engines": {
"node": ">=10"
}
},
"node_modules/istanbul-reports": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz",
"integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==",
"dev": true,
"dependencies": {
"html-escaper": "^2.0.0",
"istanbul-lib-report": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/jackspeak": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.1.tgz",
"integrity": "sha512-npN8f+M4+IQ8xD3CcWi3U62VQwKlT3Tj4GxbdT/fYTmeogD9eBF9OFdpoFG/VPNoshRjPUijdkp/p2XrzUHaVg==",
"dev": true,
"dependencies": {
"cliui": "^7.0.4"
},
"engines": {
"node": ">=8"
}
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"node_modules/js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
"integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"dev": true,
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
"node": ">=4"
}
},
"node_modules/json5": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
"integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
"dev": true,
"bin": {
"json5": "lib/cli.js"
},
"engines": {
"node": ">=6"
}
},
"node_modules/libtap": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/libtap/-/libtap-1.4.0.tgz",
"integrity": "sha512-STLFynswQ2A6W14JkabgGetBNk6INL1REgJ9UeNKw5llXroC2cGLgKTqavv0sl8OLVztLLipVKMcQ7yeUcqpmg==",
"dev": true,
"dependencies": {
"async-hook-domain": "^2.0.4",
"bind-obj-methods": "^3.0.0",
"diff": "^4.0.2",
"function-loop": "^2.0.1",
"minipass": "^3.1.5",
"own-or": "^1.0.0",
"own-or-env": "^1.0.2",
"signal-exit": "^3.0.4",
"stack-utils": "^2.0.4",
"tap-parser": "^11.0.0",
"tap-yaml": "^1.0.0",
"tcompare": "^5.0.6",
"trivial-deferred": "^1.0.1"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"dependencies": {
"p-locate": "^4.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/lodash.flattendeep": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
"integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
"dev": true
},
"node_modules/make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"dependencies": {
"semver": "^6.0.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/minipass": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
"integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
"dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
"bin": {
"mkdirp": "bin/cmd.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"node_modules/node-preload": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
"integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
"dev": true,
"dependencies": {
"process-on-spawn": "^1.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/node-releases": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz",
"integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==",
"dev": true
},
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/nyc": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
"integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
"dev": true,
"dependencies": {
"@istanbuljs/load-nyc-config": "^1.0.0",
"@istanbuljs/schema": "^0.1.2",
"caching-transform": "^4.0.0",
"convert-source-map": "^1.7.0",
"decamelize": "^1.2.0",
"find-cache-dir": "^3.2.0",
"find-up": "^4.1.0",
"foreground-child": "^2.0.0",
"get-package-type": "^0.1.0",
"glob": "^7.1.6",
"istanbul-lib-coverage": "^3.0.0",
"istanbul-lib-hook": "^3.0.0",
"istanbul-lib-instrument": "^4.0.0",
"istanbul-lib-processinfo": "^2.0.2",
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^4.0.0",
"istanbul-reports": "^3.0.2",
"make-dir": "^3.0.0",
"node-preload": "^0.2.1",
"p-map": "^3.0.0",
"process-on-spawn": "^1.0.0",
"resolve-from": "^5.0.0",
"rimraf": "^3.0.0",
"signal-exit": "^3.0.2",
"spawn-wrap": "^2.0.0",
"test-exclude": "^6.0.0",
"yargs": "^15.0.2"
},
"bin": {
"nyc": "bin/nyc.js"
},
"engines": {
"node": ">=8.9"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"dependencies": {
"wrappy": "1"
}
},
"node_modules/opener": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
"integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
"dev": true,
"bin": {
"opener": "bin/opener-bin.js"
}
},
"node_modules/own-or": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz",
"integrity": "sha512-NfZr5+Tdf6MB8UI9GLvKRs4cXY8/yB0w3xtt84xFdWy8hkGjn+JFc60VhzS/hFRfbyxFcGYMTjnF4Me+RbbqrA==",
"dev": true
},
"node_modules/own-or-env": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.2.tgz",
"integrity": "sha512-NQ7v0fliWtK7Lkb+WdFqe6ky9XAzYmlkXthQrBbzlYbmFKoAYbDDcwmOm6q8kOuwSRXW8bdL5ORksploUJmWgw==",
"dev": true,
"dependencies": {
"own-or": "^1.0.0"
}
},
"node_modules/p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"dependencies": {
"p-try": "^2.0.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-locate": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"dependencies": {
"p-limit": "^2.2.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/p-map": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
"integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
"dev": true,
"dependencies": {
"aggregate-error": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/package-hash": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
"integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.15",
"hasha": "^5.0.0",
"lodash.flattendeep": "^4.4.0",
"release-zalgo": "^1.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"engines": {
"node": ">=8.6"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
"integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
"dependencies": {
"find-up": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/prettier": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
"integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
},
"engines": {
"node": ">=10.13.0"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true
},
"node_modules/process-on-spawn": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
"integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
"dev": true,
"dependencies": {
"fromentries": "^1.2.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"dependencies": {
"picomatch": "^2.2.1"
},
"engines": {
"node": ">=8.10.0"
}
},
"node_modules/release-zalgo": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
"integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
"dev": true,
"dependencies": {
"es6-error": "^4.0.1"
},
"engines": {
"node": ">=4"
}
},
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true
},
"node_modules/resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
"node_modules/semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true
},
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"dependencies": {
"shebang-regex": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/signal-exit": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true
},
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-support": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dev": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
}
},
"node_modules/spawn-wrap": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
"integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
"dev": true,
"dependencies": {
"foreground-child": "^2.0.0",
"is-windows": "^1.0.2",
"make-dir": "^3.0.0",
"rimraf": "^3.0.0",
"signal-exit": "^3.0.2",
"which": "^2.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true
},
"node_modules/stack-utils": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
"integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
"dev": true,
"dependencies": {
"escape-string-regexp": "^2.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/stack-utils/node_modules/escape-string-regexp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-bom": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
"integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"dependencies": {
"has-flag": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/tap": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/tap/-/tap-16.2.0.tgz",
"integrity": "sha512-ikfNLy701p2+sH3R0pAXQ/Aen6ZByaguUY7UsoTLL4AXa2c9gYQL+pI21p13lq54R7/CEoLaViC1sexcWG32ig==",
"bundleDependencies": [
"ink",
"treport",
"@types/react",
"@isaacs/import-jsx",
"react"
],
"dev": true,
"dependencies": {
"@isaacs/import-jsx": "^4.0.1",
"@types/react": "^17",
"chokidar": "^3.3.0",
"findit": "^2.0.0",
"foreground-child": "^2.0.0",
"fs-exists-cached": "^1.0.0",
"glob": "^7.1.6",
"ink": "^3.2.0",
"isexe": "^2.0.0",
"istanbul-lib-processinfo": "^2.0.2",
"jackspeak": "^1.4.1",
"libtap": "^1.4.0",
"minipass": "^3.1.1",
"mkdirp": "^1.0.4",
"nyc": "^15.1.0",
"opener": "^1.5.1",
"react": "^17.0.2",
"rimraf": "^3.0.0",
"signal-exit": "^3.0.6",
"source-map-support": "^0.5.16",
"tap-mocha-reporter": "^5.0.3",
"tap-parser": "^11.0.1",
"tap-yaml": "^1.0.0",
"tcompare": "^5.0.7",
"treport": "^3.0.3",
"which": "^2.0.2"
},
"bin": {
"tap": "bin/run.js"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
},
"peerDependencies": {
"coveralls": "^3.1.1",
"flow-remove-types": ">=2.112.0",
"ts-node": ">=8.5.2",
"typescript": ">=3.7.2"
},
"peerDependenciesMeta": {
"coveralls": {
"optional": true
},
"flow-remove-types": {
"optional": true
},
"ts-node": {
"optional": true
},
"typescript": {
"optional": true
}
}
},
"node_modules/tap-mocha-reporter": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-5.0.3.tgz",
"integrity": "sha512-6zlGkaV4J+XMRFkN0X+yuw6xHbE9jyCZ3WUKfw4KxMyRGOpYSRuuQTRJyWX88WWuLdVTuFbxzwXhXuS2XE6o0g==",
"dev": true,
"dependencies": {
"color-support": "^1.1.0",
"debug": "^4.1.1",
"diff": "^4.0.1",
"escape-string-regexp": "^2.0.0",
"glob": "^7.0.5",
"tap-parser": "^11.0.0",
"tap-yaml": "^1.0.0",
"unicode-length": "^2.0.2"
},
"bin": {
"tap-mocha-reporter": "index.js"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/tap-mocha-reporter/node_modules/escape-string-regexp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/tap-parser": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-11.0.1.tgz",
"integrity": "sha512-5ow0oyFOnXVSALYdidMX94u0GEjIlgc/BPFYLx0yRh9hb8+cFGNJqJzDJlUqbLOwx8+NBrIbxCWkIQi7555c0w==",
"dev": true,
"dependencies": {
"events-to-array": "^1.0.1",
"minipass": "^3.1.6",
"tap-yaml": "^1.0.0"
},
"bin": {
"tap-parser": "bin/cmd.js"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/tap-yaml": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.0.tgz",
"integrity": "sha512-Rxbx4EnrWkYk0/ztcm5u3/VznbyFJpyXO12dDBHKWiDVxy7O2Qw6MRrwO5H6Ww0U5YhRY/4C/VzWmFPhBQc4qQ==",
"dev": true,
"dependencies": {
"yaml": "^1.5.0"
}
},
"node_modules/tap/node_modules/@ampproject/remapping": {
"version": "2.1.2",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.0"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/tap/node_modules/@babel/code-frame": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/highlight": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/compat-data": {
"version": "7.17.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/core": {
"version": "7.17.8",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.17.7",
"@babel/helper-compilation-targets": "^7.17.7",
"@babel/helper-module-transforms": "^7.17.7",
"@babel/helpers": "^7.17.8",
"@babel/parser": "^7.17.8",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.3",
"@babel/types": "^7.17.0",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.1.2",
"semver": "^6.3.0"
},
"engines": {
"node": ">=6.9.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/babel"
}
},
"node_modules/tap/node_modules/@babel/generator": {
"version": "7.17.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.17.0",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-annotate-as-pure": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-compilation-targets": {
"version": "7.17.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.17.7",
"@babel/helper-validator-option": "^7.16.7",
"browserslist": "^4.17.5",
"semver": "^6.3.0"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0"
}
},
"node_modules/tap/node_modules/@babel/helper-environment-visitor": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-function-name": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/helper-get-function-arity": "^7.16.7",
"@babel/template": "^7.16.7",
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-get-function-arity": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-hoist-variables": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-module-imports": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-module-transforms": {
"version": "7.17.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
"@babel/helper-simple-access": "^7.17.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.3",
"@babel/types": "^7.17.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-plugin-utils": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-simple-access": {
"version": "7.17.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.17.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-split-export-declaration": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-validator-identifier": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helper-validator-option": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/helpers": {
"version": "7.17.8",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.3",
"@babel/types": "^7.17.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/highlight": {
"version": "7.16.10",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/parser": {
"version": "7.17.8",
"dev": true,
"inBundle": true,
"license": "MIT",
"bin": {
"parser": "bin/babel-parser.js"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/tap/node_modules/@babel/plugin-proposal-object-rest-spread": {
"version": "7.17.3",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.17.0",
"@babel/helper-compilation-targets": "^7.16.7",
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
"@babel/plugin-transform-parameters": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/tap/node_modules/@babel/plugin-syntax-jsx": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/tap/node_modules/@babel/plugin-syntax-object-rest-spread": {
"version": "7.8.3",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/tap/node_modules/@babel/plugin-transform-destructuring": {
"version": "7.17.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/tap/node_modules/@babel/plugin-transform-parameters": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/tap/node_modules/@babel/plugin-transform-react-jsx": {
"version": "7.17.3",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/plugin-syntax-jsx": "^7.16.7",
"@babel/types": "^7.17.0"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/tap/node_modules/@babel/template": {
"version": "7.16.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.16.7",
"@babel/parser": "^7.16.7",
"@babel/types": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/traverse": {
"version": "7.17.3",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.17.3",
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-function-name": "^7.16.7",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/parser": "^7.17.3",
"@babel/types": "^7.17.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@babel/types": {
"version": "7.17.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/@isaacs/import-jsx": {
"version": "4.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.5.5",
"@babel/plugin-proposal-object-rest-spread": "^7.5.5",
"@babel/plugin-transform-destructuring": "^7.5.0",
"@babel/plugin-transform-react-jsx": "^7.3.0",
"caller-path": "^3.0.1",
"find-cache-dir": "^3.2.0",
"make-dir": "^3.0.2",
"resolve-from": "^3.0.0",
"rimraf": "^3.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/tap/node_modules/@jridgewell/resolve-uri": {
"version": "3.0.5",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/tap/node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.11",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/@jridgewell/trace-mapping": {
"version": "0.3.4",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"node_modules/tap/node_modules/@types/prop-types": {
"version": "15.7.4",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/@types/react": {
"version": "17.0.41",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"node_modules/tap/node_modules/@types/scheduler": {
"version": "0.16.2",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/@types/yoga-layout": {
"version": "1.9.2",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/ansi-escapes": {
"version": "4.3.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"type-fest": "^0.21.3"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tap/node_modules/ansi-escapes/node_modules/type-fest": {
"version": "0.21.3",
"dev": true,
"inBundle": true,
"license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tap/node_modules/ansi-regex": {
"version": "5.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/ansi-styles": {
"version": "3.2.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/tap/node_modules/ansicolors": {
"version": "0.3.2",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/astral-regex": {
"version": "2.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/auto-bind": {
"version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tap/node_modules/balanced-match": {
"version": "1.0.2",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/brace-expansion": {
"version": "1.1.11",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/tap/node_modules/browserslist": {
"version": "4.20.2",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
}
],
"inBundle": true,
"license": "MIT",
"dependencies": {
"caniuse-lite": "^1.0.30001317",
"electron-to-chromium": "^1.4.84",
"escalade": "^3.1.1",
"node-releases": "^2.0.2",
"picocolors": "^1.0.0"
},
"bin": {
"browserslist": "cli.js"
},
"engines": {
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
"node_modules/tap/node_modules/caller-callsite": {
"version": "4.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"callsites": "^3.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/caller-path": {
"version": "3.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"caller-callsite": "^4.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/callsites": {
"version": "3.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/tap/node_modules/caniuse-lite": {
"version": "1.0.30001319",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
}
],
"inBundle": true,
"license": "CC-BY-4.0"
},
"node_modules/tap/node_modules/cardinal": {
"version": "2.1.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ansicolors": "~0.3.2",
"redeyed": "~2.1.0"
},
"bin": {
"cdl": "bin/cdl.js"
}
},
"node_modules/tap/node_modules/chalk": {
"version": "2.4.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/tap/node_modules/ci-info": {
"version": "2.0.0",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/cli-boxes": {
"version": "2.2.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tap/node_modules/cli-cursor": {
"version": "3.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"restore-cursor": "^3.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/cli-truncate": {
"version": "2.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"slice-ansi": "^3.0.0",
"string-width": "^4.2.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tap/node_modules/code-excerpt": {
"version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"convert-to-spaces": "^1.0.1"
},
"engines": {
"node": ">=10"
}
},
"node_modules/tap/node_modules/color-convert": {
"version": "1.9.3",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/tap/node_modules/color-name": {
"version": "1.1.3",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/commondir": {
"version": "1.0.1",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/concat-map": {
"version": "0.0.1",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/convert-source-map": {
"version": "1.8.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.1"
}
},
"node_modules/tap/node_modules/convert-to-spaces": {
"version": "1.0.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/tap/node_modules/csstype": {
"version": "3.0.11",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/debug": {
"version": "4.3.4",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/tap/node_modules/electron-to-chromium": {
"version": "1.4.89",
"dev": true,
"inBundle": true,
"license": "ISC"
},
"node_modules/tap/node_modules/emoji-regex": {
"version": "8.0.0",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/escalade": {
"version": "3.1.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/tap/node_modules/escape-string-regexp": {
"version": "1.0.5",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/tap/node_modules/esprima": {
"version": "4.0.1",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/tap/node_modules/events-to-array": {
"version": "1.1.2",
"dev": true,
"inBundle": true,
"license": "ISC"
},
"node_modules/tap/node_modules/find-cache-dir": {
"version": "3.3.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
"pkg-dir": "^4.1.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/avajs/find-cache-dir?sponsor=1"
}
},
"node_modules/tap/node_modules/find-up": {
"version": "4.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/fs.realpath": {
"version": "1.0.0",
"dev": true,
"inBundle": true,
"license": "ISC"
},
"node_modules/tap/node_modules/gensync": {
"version": "1.0.0-beta.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/tap/node_modules/glob": {
"version": "7.2.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/tap/node_modules/globals": {
"version": "11.12.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/tap/node_modules/has-flag": {
"version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/tap/node_modules/indent-string": {
"version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/inflight": {
"version": "1.0.6",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/tap/node_modules/inherits": {
"version": "2.0.4",
"dev": true,
"inBundle": true,
"license": "ISC"
},
"node_modules/tap/node_modules/ink": {
"version": "3.2.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ansi-escapes": "^4.2.1",
"auto-bind": "4.0.0",
"chalk": "^4.1.0",
"cli-boxes": "^2.2.0",
"cli-cursor": "^3.1.0",
"cli-truncate": "^2.1.0",
"code-excerpt": "^3.0.0",
"indent-string": "^4.0.0",
"is-ci": "^2.0.0",
"lodash": "^4.17.20",
"patch-console": "^1.0.0",
"react-devtools-core": "^4.19.1",
"react-reconciler": "^0.26.2",
"scheduler": "^0.20.2",
"signal-exit": "^3.0.2",
"slice-ansi": "^3.0.0",
"stack-utils": "^2.0.2",
"string-width": "^4.2.2",
"type-fest": "^0.12.0",
"widest-line": "^3.1.0",
"wrap-ansi": "^6.2.0",
"ws": "^7.5.5",
"yoga-layout-prebuilt": "^1.9.6"
},
"engines": {
"node": ">=10"
},
"peerDependencies": {
"@types/react": ">=16.8.0",
"react": ">=16.8.0"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"node_modules/tap/node_modules/ink/node_modules/ansi-styles": {
"version": "4.3.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/tap/node_modules/ink/node_modules/chalk": {
"version": "4.1.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/tap/node_modules/ink/node_modules/color-convert": {
"version": "2.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/tap/node_modules/ink/node_modules/color-name": {
"version": "1.1.4",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/ink/node_modules/has-flag": {
"version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/ink/node_modules/supports-color": {
"version": "7.2.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/is-ci": {
"version": "2.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ci-info": "^2.0.0"
},
"bin": {
"is-ci": "bin.js"
}
},
"node_modules/tap/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/js-tokens": {
"version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/jsesc": {
"version": "2.5.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
"node": ">=4"
}
},
"node_modules/tap/node_modules/json5": {
"version": "2.2.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"bin": {
"json5": "lib/cli.js"
},
"engines": {
"node": ">=6"
}
},
"node_modules/tap/node_modules/locate-path": {
"version": "5.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/lodash": {
"version": "4.17.21",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/loose-envify": {
"version": "1.4.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
"bin": {
"loose-envify": "cli.js"
}
},
"node_modules/tap/node_modules/make-dir": {
"version": "3.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tap/node_modules/mimic-fn": {
"version": "2.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/tap/node_modules/minimatch": {
"version": "3.1.2",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/tap/node_modules/minipass": {
"version": "3.1.6",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/ms": {
"version": "2.1.2",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/node-releases": {
"version": "2.0.2",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/object-assign": {
"version": "4.1.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/tap/node_modules/once": {
"version": "1.4.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/tap/node_modules/onetime": {
"version": "5.1.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"mimic-fn": "^2.1.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tap/node_modules/p-limit": {
"version": "2.3.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tap/node_modules/p-locate": {
"version": "4.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/p-try": {
"version": "2.2.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/tap/node_modules/patch-console": {
"version": "1.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/tap/node_modules/path-exists": {
"version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/path-is-absolute": {
"version": "1.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/tap/node_modules/picocolors": {
"version": "1.0.0",
"dev": true,
"inBundle": true,
"license": "ISC"
},
"node_modules/tap/node_modules/pkg-dir": {
"version": "4.2.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/punycode": {
"version": "2.1.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/tap/node_modules/react": {
"version": "17.0.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/tap/node_modules/react-devtools-core": {
"version": "4.24.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"shell-quote": "^1.6.1",
"ws": "^7"
}
},
"node_modules/tap/node_modules/react-reconciler": {
"version": "0.26.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"scheduler": "^0.20.2"
},
"engines": {
"node": ">=0.10.0"
},
"peerDependencies": {
"react": "^17.0.2"
}
},
"node_modules/tap/node_modules/redeyed": {
"version": "2.1.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"esprima": "~4.0.0"
}
},
"node_modules/tap/node_modules/resolve-from": {
"version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/tap/node_modules/restore-cursor": {
"version": "3.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/rimraf": {
"version": "3.0.2",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/tap/node_modules/safe-buffer": {
"version": "5.1.2",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/scheduler": {
"version": "0.20.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
}
},
"node_modules/tap/node_modules/semver": {
"version": "6.3.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/tap/node_modules/shell-quote": {
"version": "1.7.3",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/signal-exit": {
"version": "3.0.7",
"dev": true,
"inBundle": true,
"license": "ISC"
},
"node_modules/tap/node_modules/slice-ansi": {
"version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
"is-fullwidth-code-point": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/slice-ansi/node_modules/ansi-styles": {
"version": "4.3.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/tap/node_modules/slice-ansi/node_modules/color-convert": {
"version": "2.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/tap/node_modules/slice-ansi/node_modules/color-name": {
"version": "1.1.4",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/source-map": {
"version": "0.5.7",
"dev": true,
"inBundle": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/tap/node_modules/stack-utils": {
"version": "2.0.5",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"escape-string-regexp": "^2.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/tap/node_modules/stack-utils/node_modules/escape-string-regexp": {
"version": "2.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/string-width": {
"version": "4.2.3",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/strip-ansi": {
"version": "6.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/supports-color": {
"version": "5.5.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/tap/node_modules/tap-parser": {
"version": "11.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"events-to-array": "^1.0.1",
"minipass": "^3.1.6",
"tap-yaml": "^1.0.0"
},
"bin": {
"tap-parser": "bin/cmd.js"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/tap/node_modules/tap-yaml": {
"version": "1.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"yaml": "^1.5.0"
}
},
"node_modules/tap/node_modules/to-fast-properties": {
"version": "2.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/tap/node_modules/treport": {
"version": "3.0.3",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"@isaacs/import-jsx": "^4.0.1",
"cardinal": "^2.1.1",
"chalk": "^3.0.0",
"ink": "^3.2.0",
"ms": "^2.1.2",
"tap-parser": "^11.0.0",
"unicode-length": "^2.0.2"
},
"peerDependencies": {
"react": "^17.0.2"
}
},
"node_modules/tap/node_modules/treport/node_modules/ansi-styles": {
"version": "4.3.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/tap/node_modules/treport/node_modules/chalk": {
"version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/treport/node_modules/color-convert": {
"version": "2.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/tap/node_modules/treport/node_modules/color-name": {
"version": "1.1.4",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/treport/node_modules/has-flag": {
"version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/treport/node_modules/supports-color": {
"version": "7.2.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/type-fest": {
"version": "0.12.0",
"dev": true,
"inBundle": true,
"license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tap/node_modules/unicode-length": {
"version": "2.0.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"punycode": "^2.0.0",
"strip-ansi": "^3.0.1"
}
},
"node_modules/tap/node_modules/unicode-length/node_modules/ansi-regex": {
"version": "2.1.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/tap/node_modules/unicode-length/node_modules/strip-ansi": {
"version": "3.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^2.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/tap/node_modules/widest-line": {
"version": "3.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"string-width": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/wrap-ansi": {
"version": "6.2.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tap/node_modules/wrap-ansi/node_modules/ansi-styles": {
"version": "4.3.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/tap/node_modules/wrap-ansi/node_modules/color-convert": {
"version": "2.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/tap/node_modules/wrap-ansi/node_modules/color-name": {
"version": "1.1.4",
"dev": true,
"inBundle": true,
"license": "MIT"
},
"node_modules/tap/node_modules/wrappy": {
"version": "1.0.2",
"dev": true,
"inBundle": true,
"license": "ISC"
},
"node_modules/tap/node_modules/ws": {
"version": "7.5.7",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8.3.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/tap/node_modules/yallist": {
"version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "ISC"
},
"node_modules/tap/node_modules/yaml": {
"version": "1.10.2",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
"node": ">= 6"
}
},
"node_modules/tap/node_modules/yoga-layout-prebuilt": {
"version": "1.10.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@types/yoga-layout": "1.9.2"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tcompare": {
"version": "5.0.7",
"resolved": "https://registry.npmjs.org/tcompare/-/tcompare-5.0.7.tgz",
"integrity": "sha512-d9iddt6YYGgyxJw5bjsN7UJUO1kGOtjSlNy/4PoGYAjQS5pAT/hzIoLf1bZCw+uUxRmZJh7Yy1aA7xKVRT9B4w==",
"dev": true,
"dependencies": {
"diff": "^4.0.2"
},
"engines": {
"node": ">=10"
}
},
"node_modules/test-exclude": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
"integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
"dependencies": {
"@istanbuljs/schema": "^0.1.2",
"glob": "^7.1.4",
"minimatch": "^3.0.4"
},
"engines": {
"node": ">=8"
}
},
"node_modules/through2": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
"dependencies": {
"readable-stream": "~2.3.6",
"xtend": "~4.0.1"
}
},
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
"engines": {
"node": ">=8.0"
}
},
"node_modules/trivial-deferred": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz",
"integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=",
"dev": true
},
"node_modules/ts-node": {
"version": "10.8.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz",
"integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==",
"dev": true,
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0",
"create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"v8-compile-cache-lib": "^3.0.1",
"yn": "3.1.1"
},
"bin": {
"ts-node": "dist/bin.js",
"ts-node-cwd": "dist/bin-cwd.js",
"ts-node-esm": "dist/bin-esm.js",
"ts-node-script": "dist/bin-script.js",
"ts-node-transpile-only": "dist/bin-transpile.js",
"ts-script": "dist/bin-script-deprecated.js"
},
"peerDependencies": {
"@swc/core": ">=1.2.50",
"@swc/wasm": ">=1.2.50",
"@types/node": "*",
"typescript": ">=2.7"
},
"peerDependenciesMeta": {
"@swc/core": {
"optional": true
},
"@swc/wasm": {
"optional": true
}
}
},
"node_modules/type-fest": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/typedarray-to-buffer": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
"integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"dev": true,
"dependencies": {
"is-typedarray": "^1.0.0"
}
},
"node_modules/typescript": {
"version": "4.7.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz",
"integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
}
},
"node_modules/unicode-length": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.0.2.tgz",
"integrity": "sha512-Ph/j1VbS3/r77nhoY2WU0GWGjVYOHL3xpKp0y/Eq2e5r0mT/6b649vm7KFO6RdAdrZkYLdxphYVgvODxPB+Ebg==",
"dev": true,
"dependencies": {
"punycode": "^2.0.0",
"strip-ansi": "^3.0.1"
}
},
"node_modules/unicode-length/node_modules/ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/unicode-length/node_modules/strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"dependencies": {
"ansi-regex": "^2.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true,
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/v8-compile-cache-lib": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"node-which": "bin/node-which"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
"dev": true
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/wrap-ansi/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/wrap-ansi/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/wrap-ansi/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"node_modules/write-file-atomic": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
"integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
"dev": true,
"dependencies": {
"imurmurhash": "^0.1.4",
"is-typedarray": "^1.0.0",
"signal-exit": "^3.0.2",
"typedarray-to-buffer": "^3.1.5"
}
},
"node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"dev": true,
"engines": {
"node": ">=0.4"
}
},
"node_modules/y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
"dev": true
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true,
"engines": {
"node": ">= 6"
}
},
"node_modules/yargs": {
"version": "15.4.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
"integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"dev": true,
"dependencies": {
"cliui": "^6.0.0",
"decamelize": "^1.2.0",
"find-up": "^4.1.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^18.1.2"
},
"engines": {
"node": ">=8"
}
},
"node_modules/yargs-parser": {
"version": "18.1.3",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
"dependencies": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/yargs/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/yargs/node_modules/cliui": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
"dev": true,
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^6.2.0"
}
},
"node_modules/yargs/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/yargs/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"node_modules/yargs/node_modules/wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/yn": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true,
"engines": {
"node": ">=6"
}
}
},
"dependencies": {
"@ampproject/remapping": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
"integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
"dev": true,
"requires": {
"@jridgewell/gen-mapping": "^0.1.0",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@babel/code-frame": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
"integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.16.7"
}
},
"@babel/compat-data": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz",
"integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==",
"dev": true
},
"@babel/core": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz",
"integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==",
"dev": true,
"requires": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.18.2",
"@babel/helper-compilation-targets": "^7.18.2",
"@babel/helper-module-transforms": "^7.18.0",
"@babel/helpers": "^7.18.2",
"@babel/parser": "^7.18.0",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.18.2",
"@babel/types": "^7.18.2",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.2.1",
"semver": "^6.3.0"
}
},
"@babel/generator": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz",
"integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==",
"dev": true,
"requires": {
"@babel/types": "^7.18.2",
"@jridgewell/gen-mapping": "^0.3.0",
"jsesc": "^2.5.1"
},
"dependencies": {
"@jridgewell/gen-mapping": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",
"integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==",
"dev": true,
"requires": {
"@jridgewell/set-array": "^1.0.0",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9"
}
}
}
},
"@babel/helper-compilation-targets": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz",
"integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==",
"dev": true,
"requires": {
"@babel/compat-data": "^7.17.10",
"@babel/helper-validator-option": "^7.16.7",
"browserslist": "^4.20.2",
"semver": "^6.3.0"
}
},
"@babel/helper-environment-visitor": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz",
"integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==",
"dev": true
},
"@babel/helper-function-name": {
"version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz",
"integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==",
"dev": true,
"requires": {
"@babel/template": "^7.16.7",
"@babel/types": "^7.17.0"
}
},
"@babel/helper-hoist-variables": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
"integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-module-imports": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
"integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-module-transforms": {
"version": "7.18.0",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz",
"integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==",
"dev": true,
"requires": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
"@babel/helper-simple-access": "^7.17.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.18.0",
"@babel/types": "^7.18.0"
}
},
"@babel/helper-simple-access": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz",
"integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==",
"dev": true,
"requires": {
"@babel/types": "^7.18.2"
}
},
"@babel/helper-split-export-declaration": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
"integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-validator-identifier": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
"integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
"dev": true
},
"@babel/helper-validator-option": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
"integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
"dev": true
},
"@babel/helpers": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz",
"integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==",
"dev": true,
"requires": {
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.18.2",
"@babel/types": "^7.18.2"
}
},
"@babel/highlight": {
"version": "7.17.12",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz",
"integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
},
"@babel/parser": {
"version": "7.18.4",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz",
"integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==",
"dev": true
},
"@babel/template": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
"integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/parser": "^7.16.7",
"@babel/types": "^7.16.7"
}
},
"@babel/traverse": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz",
"integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.18.2",
"@babel/helper-environment-visitor": "^7.18.2",
"@babel/helper-function-name": "^7.17.9",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/parser": "^7.18.0",
"@babel/types": "^7.18.2",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
"version": "7.18.4",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz",
"integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
}
},
"@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dev": true,
"requires": {
"@jridgewell/trace-mapping": "0.3.9"
},
"dependencies": {
"@jridgewell/trace-mapping": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
}
}
},
"@istanbuljs/load-nyc-config": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
"integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
"requires": {
"camelcase": "^5.3.1",
"find-up": "^4.1.0",
"get-package-type": "^0.1.0",
"js-yaml": "^3.13.1",
"resolve-from": "^5.0.0"
}
},
"@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true
},
"@jridgewell/gen-mapping": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
"integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
"dev": true,
"requires": {
"@jridgewell/set-array": "^1.0.0",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"@jridgewell/resolve-uri": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
"integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==",
"dev": true
},
"@jridgewell/set-array": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz",
"integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==",
"dev": true
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.13",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
"integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==",
"dev": true
},
"@jridgewell/trace-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz",
"integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==",
"dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"@tsconfig/node10": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
"dev": true
},
"@tsconfig/node12": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
"dev": true
},
"@tsconfig/node14": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
"dev": true
},
"@tsconfig/node16": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true
},
"@types/node": {
"version": "17.0.41",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz",
"integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==",
"dev": true
},
"acorn": {
"version": "8.7.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
"integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
"dev": true
},
"acorn-walk": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
"dev": true
},
"aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"dev": true,
"requires": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
}
},
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"anymatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
}
},
"append-transform": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
"integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
"dev": true,
"requires": {
"default-require-extensions": "^3.0.0"
}
},
"archy": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
"integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
"dev": true
},
"arg": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true
},
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": {
"sprintf-js": "~1.0.2"
}
},
"async-hook-domain": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-2.0.4.tgz",
"integrity": "sha512-14LjCmlK1PK8eDtTezR6WX8TMaYNIzBIsd2D1sGoGjgx0BuNMMoSdk7i/drlbtamy0AWv9yv2tkB+ASdmeqFIw==",
"dev": true
},
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
"binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
"bind-obj-methods": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-3.0.0.tgz",
"integrity": "sha512-nLEaaz3/sEzNSyPWRsN9HNsqwk1AUyECtGj+XwGdIi3xABnEqecvXtIJ0wehQXuuER5uZ/5fTs2usONgYjG+iw==",
"dev": true
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
"fill-range": "^7.0.1"
}
},
"browserslist": {
"version": "4.20.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz",
"integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==",
"dev": true,
"requires": {
"caniuse-lite": "^1.0.30001349",
"electron-to-chromium": "^1.4.147",
"escalade": "^3.1.1",
"node-releases": "^2.0.5",
"picocolors": "^1.0.0"
}
},
"buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true
},
"caching-transform": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
"integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
"dev": true,
"requires": {
"hasha": "^5.0.0",
"make-dir": "^3.0.0",
"package-hash": "^4.0.0",
"write-file-atomic": "^3.0.0"
}
},
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
"caniuse-lite": {
"version": "1.0.30001350",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001350.tgz",
"integrity": "sha512-NZBql38Pzd+rAu5SPXv+qmTWGQuFsRiemHCJCAPvkoDxWV19/xqL2YHF32fDJ9SDLdLqfax8+S0CO3ncDCp9Iw==",
"dev": true
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
"fsevents": "~2.3.2",
"glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.6.0"
}
},
"clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"dev": true
},
"cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^7.0.0"
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
"color-support": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"dev": true
},
"commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
"dev": true
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"convert-source-map": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
"integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
"dev": true,
"requires": {
"safe-buffer": "~5.1.1"
}
},
"core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"dev": true
},
"create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
"dev": true
},
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
"requires": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
}
},
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
"dev": true
},
"default-require-extensions": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
"integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
"dev": true,
"requires": {
"strip-bom": "^4.0.0"
}
},
"diff": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true
},
"electron-to-chromium": {
"version": "1.4.148",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.148.tgz",
"integrity": "sha512-8MJk1bcQUAYkuvCyWZxaldiwoDG0E0AMzBGA6cv3WfuvJySiPgfidEPBFCRRH3cZm6SVZwo/oRlK1ehi1QNEIQ==",
"dev": true
},
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
"requires": {
"once": "^1.4.0"
}
},
"es6-error": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
"integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
"dev": true
},
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
"dev": true
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true
},
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"events-to-array": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz",
"integrity": "sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==",
"dev": true
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
},
"find-cache-dir": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
"integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
"dev": true,
"requires": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
"pkg-dir": "^4.1.0"
}
},
"find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"requires": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
}
},
"findit": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz",
"integrity": "sha512-ENZS237/Hr8bjczn5eKuBohLgaD0JyUd0arxretR1f9RO46vZHA1b2y0VorgGV3WaOT3c+78P8h7v4JGJ1i/rg==",
"dev": true
},
"foreground-child": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
"integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.0",
"signal-exit": "^3.0.2"
}
},
"fromentries": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
"integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
"dev": true
},
"fs-exists-cached": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz",
"integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==",
"dev": true
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
"fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
"function-loop": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/function-loop/-/function-loop-2.0.1.tgz",
"integrity": "sha512-ktIR+O6i/4h+j/ZhZJNdzeI4i9lEPeEK6UPR2EVyTVBqOwcU3Za9xYKLH64ZR9HmcROyRrOkizNyjjtWJzDDkQ==",
"dev": true
},
"gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true
},
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
"get-package-type": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
"integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true
},
"glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
}
},
"globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
},
"graceful-fs": {
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
"dev": true
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true
},
"hasha": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
"integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
"dev": true,
"requires": {
"is-stream": "^2.0.0",
"type-fest": "^0.8.0"
}
},
"html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true
},
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true
},
"indent-string": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"requires": {
"binary-extensions": "^2.0.0"
}
},
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true
},
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
"is-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"dev": true
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
"dev": true
},
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
"dev": true
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"dev": true
},
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true
},
"istanbul-lib-coverage": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
"integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
"dev": true
},
"istanbul-lib-hook": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
"integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
"dev": true,
"requires": {
"append-transform": "^2.0.0"
}
},
"istanbul-lib-instrument": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
"integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
"dev": true,
"requires": {
"@babel/core": "^7.7.5",
"@istanbuljs/schema": "^0.1.2",
"istanbul-lib-coverage": "^3.0.0",
"semver": "^6.3.0"
}
},
"istanbul-lib-processinfo": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz",
"integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==",
"dev": true,
"requires": {
"archy": "^1.0.0",
"cross-spawn": "^7.0.3",
"istanbul-lib-coverage": "^3.2.0",
"p-map": "^3.0.0",
"rimraf": "^3.0.0",
"uuid": "^8.3.2"
}
},
"istanbul-lib-report": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
"integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
"dev": true,
"requires": {
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^3.0.0",
"supports-color": "^7.1.0"
},
"dependencies": {
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"istanbul-lib-source-maps": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
"integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
"requires": {
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
"source-map": "^0.6.1"
}
},
"istanbul-reports": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz",
"integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==",
"dev": true,
"requires": {
"html-escaper": "^2.0.0",
"istanbul-lib-report": "^3.0.0"
}
},
"jackspeak": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.1.tgz",
"integrity": "sha512-npN8f+M4+IQ8xD3CcWi3U62VQwKlT3Tj4GxbdT/fYTmeogD9eBF9OFdpoFG/VPNoshRjPUijdkp/p2XrzUHaVg==",
"dev": true,
"requires": {
"cliui": "^7.0.4"
}
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
"integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
},
"jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"dev": true
},
"json5": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
"integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
"dev": true
},
"libtap": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/libtap/-/libtap-1.4.0.tgz",
"integrity": "sha512-STLFynswQ2A6W14JkabgGetBNk6INL1REgJ9UeNKw5llXroC2cGLgKTqavv0sl8OLVztLLipVKMcQ7yeUcqpmg==",
"dev": true,
"requires": {
"async-hook-domain": "^2.0.4",
"bind-obj-methods": "^3.0.0",
"diff": "^4.0.2",
"function-loop": "^2.0.1",
"minipass": "^3.1.5",
"own-or": "^1.0.0",
"own-or-env": "^1.0.2",
"signal-exit": "^3.0.4",
"stack-utils": "^2.0.4",
"tap-parser": "^11.0.0",
"tap-yaml": "^1.0.0",
"tcompare": "^5.0.6",
"trivial-deferred": "^1.0.1"
}
},
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": {
"p-locate": "^4.1.0"
}
},
"lodash.flattendeep": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
"integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
"dev": true
},
"make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"requires": {
"semver": "^6.0.0"
}
},
"make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true
},
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minipass": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
"integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
"dev": true,
"requires": {
"yallist": "^4.0.0"
}
},
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"node-preload": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
"integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
"dev": true,
"requires": {
"process-on-spawn": "^1.0.0"
}
},
"node-releases": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz",
"integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==",
"dev": true
},
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
"nyc": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
"integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
"dev": true,
"requires": {
"@istanbuljs/load-nyc-config": "^1.0.0",
"@istanbuljs/schema": "^0.1.2",
"caching-transform": "^4.0.0",
"convert-source-map": "^1.7.0",
"decamelize": "^1.2.0",
"find-cache-dir": "^3.2.0",
"find-up": "^4.1.0",
"foreground-child": "^2.0.0",
"get-package-type": "^0.1.0",
"glob": "^7.1.6",
"istanbul-lib-coverage": "^3.0.0",
"istanbul-lib-hook": "^3.0.0",
"istanbul-lib-instrument": "^4.0.0",
"istanbul-lib-processinfo": "^2.0.2",
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^4.0.0",
"istanbul-reports": "^3.0.2",
"make-dir": "^3.0.0",
"node-preload": "^0.2.1",
"p-map": "^3.0.0",
"process-on-spawn": "^1.0.0",
"resolve-from": "^5.0.0",
"rimraf": "^3.0.0",
"signal-exit": "^3.0.2",
"spawn-wrap": "^2.0.0",
"test-exclude": "^6.0.0",
"yargs": "^15.0.2"
}
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"requires": {
"wrappy": "1"
}
},
"opener": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
"integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
"dev": true
},
"own-or": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz",
"integrity": "sha512-NfZr5+Tdf6MB8UI9GLvKRs4cXY8/yB0w3xtt84xFdWy8hkGjn+JFc60VhzS/hFRfbyxFcGYMTjnF4Me+RbbqrA==",
"dev": true
},
"own-or-env": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.2.tgz",
"integrity": "sha512-NQ7v0fliWtK7Lkb+WdFqe6ky9XAzYmlkXthQrBbzlYbmFKoAYbDDcwmOm6q8kOuwSRXW8bdL5ORksploUJmWgw==",
"dev": true,
"requires": {
"own-or": "^1.0.0"
}
},
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
}
},
"p-locate": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": {
"p-limit": "^2.2.0"
}
},
"p-map": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
"integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
"dev": true,
"requires": {
"aggregate-error": "^3.0.0"
}
},
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
"package-hash": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
"integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.15",
"hasha": "^5.0.0",
"lodash.flattendeep": "^4.4.0",
"release-zalgo": "^1.0.0"
}
},
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true
},
"path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true
},
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true
},
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
"integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
"requires": {
"find-up": "^4.0.0"
}
},
"prettier": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
"integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
"dev": true
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true
},
"process-on-spawn": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
"integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
"dev": true,
"requires": {
"fromentries": "^1.2.0"
}
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"requires": {
"picomatch": "^2.2.1"
}
},
"release-zalgo": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
"integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
"dev": true,
"requires": {
"es6-error": "^4.0.1"
}
},
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true
},
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true
},
"resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true
},
"rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"requires": {
"glob": "^7.1.3"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true
},
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"requires": {
"shebang-regex": "^3.0.0"
}
},
"shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
"signal-exit": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"source-map-support": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
}
},
"spawn-wrap": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
"integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
"dev": true,
"requires": {
"foreground-child": "^2.0.0",
"is-windows": "^1.0.2",
"make-dir": "^3.0.0",
"rimraf": "^3.0.0",
"signal-exit": "^3.0.2",
"which": "^2.0.1"
}
},
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true
},
"stack-utils": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
"integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
"dev": true,
"requires": {
"escape-string-regexp": "^2.0.0"
},
"dependencies": {
"escape-string-regexp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true
}
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
"safe-buffer": "~5.1.0"
}
},
"string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
}
},
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.1"
}
},
"strip-bom": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
"integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
},
"tap": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/tap/-/tap-16.2.0.tgz",
"integrity": "sha512-ikfNLy701p2+sH3R0pAXQ/Aen6ZByaguUY7UsoTLL4AXa2c9gYQL+pI21p13lq54R7/CEoLaViC1sexcWG32ig==",
"dev": true,
"requires": {
"@isaacs/import-jsx": "^4.0.1",
"@types/react": "^17",
"chokidar": "^3.3.0",
"findit": "^2.0.0",
"foreground-child": "^2.0.0",
"fs-exists-cached": "^1.0.0",
"glob": "^7.1.6",
"ink": "^3.2.0",
"isexe": "^2.0.0",
"istanbul-lib-processinfo": "^2.0.2",
"jackspeak": "^1.4.1",
"libtap": "^1.4.0",
"minipass": "^3.1.1",
"mkdirp": "^1.0.4",
"nyc": "^15.1.0",
"opener": "^1.5.1",
"react": "^17.0.2",
"rimraf": "^3.0.0",
"signal-exit": "^3.0.6",
"source-map-support": "^0.5.16",
"tap-mocha-reporter": "^5.0.3",
"tap-parser": "^11.0.1",
"tap-yaml": "^1.0.0",
"tcompare": "^5.0.7",
"treport": "^3.0.3",
"which": "^2.0.2"
},
"dependencies": {
"@ampproject/remapping": {
"version": "2.1.2",
"bundled": true,
"dev": true,
"requires": {
"@jridgewell/trace-mapping": "^0.3.0"
}
},
"@babel/code-frame": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/highlight": "^7.16.7"
}
},
"@babel/compat-data": {
"version": "7.17.7",
"bundled": true,
"dev": true
},
"@babel/core": {
"version": "7.17.8",
"bundled": true,
"dev": true,
"requires": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.17.7",
"@babel/helper-compilation-targets": "^7.17.7",
"@babel/helper-module-transforms": "^7.17.7",
"@babel/helpers": "^7.17.8",
"@babel/parser": "^7.17.8",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.3",
"@babel/types": "^7.17.0",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.1.2",
"semver": "^6.3.0"
}
},
"@babel/generator": {
"version": "7.17.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/types": "^7.17.0",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
},
"@babel/helper-annotate-as-pure": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-compilation-targets": {
"version": "7.17.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/compat-data": "^7.17.7",
"@babel/helper-validator-option": "^7.16.7",
"browserslist": "^4.17.5",
"semver": "^6.3.0"
}
},
"@babel/helper-environment-visitor": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-function-name": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/helper-get-function-arity": "^7.16.7",
"@babel/template": "^7.16.7",
"@babel/types": "^7.16.7"
}
},
"@babel/helper-get-function-arity": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-hoist-variables": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-module-imports": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-module-transforms": {
"version": "7.17.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
"@babel/helper-simple-access": "^7.17.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.3",
"@babel/types": "^7.17.0"
}
},
"@babel/helper-plugin-utils": {
"version": "7.16.7",
"bundled": true,
"dev": true
},
"@babel/helper-simple-access": {
"version": "7.17.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/types": "^7.17.0"
}
},
"@babel/helper-split-export-declaration": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-validator-identifier": {
"version": "7.16.7",
"bundled": true,
"dev": true
},
"@babel/helper-validator-option": {
"version": "7.16.7",
"bundled": true,
"dev": true
},
"@babel/helpers": {
"version": "7.17.8",
"bundled": true,
"dev": true,
"requires": {
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.3",
"@babel/types": "^7.17.0"
}
},
"@babel/highlight": {
"version": "7.16.10",
"bundled": true,
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
},
"@babel/parser": {
"version": "7.17.8",
"bundled": true,
"dev": true
},
"@babel/plugin-proposal-object-rest-spread": {
"version": "7.17.3",
"bundled": true,
"dev": true,
"requires": {
"@babel/compat-data": "^7.17.0",
"@babel/helper-compilation-targets": "^7.16.7",
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
"@babel/plugin-transform-parameters": "^7.16.7"
}
},
"@babel/plugin-syntax-jsx": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-syntax-object-rest-spread": {
"version": "7.8.3",
"bundled": true,
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
},
"@babel/plugin-transform-destructuring": {
"version": "7.17.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-transform-parameters": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-transform-react-jsx": {
"version": "7.17.3",
"bundled": true,
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/plugin-syntax-jsx": "^7.16.7",
"@babel/types": "^7.17.0"
}
},
"@babel/template": {
"version": "7.16.7",
"bundled": true,
"dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/parser": "^7.16.7",
"@babel/types": "^7.16.7"
}
},
"@babel/traverse": {
"version": "7.17.3",
"bundled": true,
"dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.17.3",
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-function-name": "^7.16.7",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/parser": "^7.17.3",
"@babel/types": "^7.17.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
"version": "7.17.0",
"bundled": true,
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
}
},
"@isaacs/import-jsx": {
"version": "4.0.1",
"bundled": true,
"dev": true,
"requires": {
"@babel/core": "^7.5.5",
"@babel/plugin-proposal-object-rest-spread": "^7.5.5",
"@babel/plugin-transform-destructuring": "^7.5.0",
"@babel/plugin-transform-react-jsx": "^7.3.0",
"caller-path": "^3.0.1",
"find-cache-dir": "^3.2.0",
"make-dir": "^3.0.2",
"resolve-from": "^3.0.0",
"rimraf": "^3.0.0"
}
},
"@jridgewell/resolve-uri": {
"version": "3.0.5",
"bundled": true,
"dev": true
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.11",
"bundled": true,
"dev": true
},
"@jridgewell/trace-mapping": {
"version": "0.3.4",
"bundled": true,
"dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"@types/prop-types": {
"version": "15.7.4",
"bundled": true,
"dev": true
},
"@types/react": {
"version": "17.0.41",
"bundled": true,
"dev": true,
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"@types/scheduler": {
"version": "0.16.2",
"bundled": true,
"dev": true
},
"@types/yoga-layout": {
"version": "1.9.2",
"bundled": true,
"dev": true
},
"ansi-escapes": {
"version": "4.3.2",
"bundled": true,
"dev": true,
"requires": {
"type-fest": "^0.21.3"
},
"dependencies": {
"type-fest": {
"version": "0.21.3",
"bundled": true,
"dev": true
}
}
},
"ansi-regex": {
"version": "5.0.1",
"bundled": true,
"dev": true
},
"ansi-styles": {
"version": "3.2.1",
"bundled": true,
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"ansicolors": {
"version": "0.3.2",
"bundled": true,
"dev": true
},
"astral-regex": {
"version": "2.0.0",
"bundled": true,
"dev": true
},
"auto-bind": {
"version": "4.0.0",
"bundled": true,
"dev": true
},
"balanced-match": {
"version": "1.0.2",
"bundled": true,
"dev": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"browserslist": {
"version": "4.20.2",
"bundled": true,
"dev": true,
"requires": {
"caniuse-lite": "^1.0.30001317",
"electron-to-chromium": "^1.4.84",
"escalade": "^3.1.1",
"node-releases": "^2.0.2",
"picocolors": "^1.0.0"
}
},
"caller-callsite": {
"version": "4.1.0",
"bundled": true,
"dev": true,
"requires": {
"callsites": "^3.1.0"
}
},
"caller-path": {
"version": "3.0.1",
"bundled": true,
"dev": true,
"requires": {
"caller-callsite": "^4.1.0"
}
},
"callsites": {
"version": "3.1.0",
"bundled": true,
"dev": true
},
"caniuse-lite": {
"version": "1.0.30001319",
"bundled": true,
"dev": true
},
"cardinal": {
"version": "2.1.1",
"bundled": true,
"dev": true,
"requires": {
"ansicolors": "~0.3.2",
"redeyed": "~2.1.0"
}
},
"chalk": {
"version": "2.4.2",
"bundled": true,
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"ci-info": {
"version": "2.0.0",
"bundled": true,
"dev": true
},
"cli-boxes": {
"version": "2.2.1",
"bundled": true,
"dev": true
},
"cli-cursor": {
"version": "3.1.0",
"bundled": true,
"dev": true,
"requires": {
"restore-cursor": "^3.1.0"
}
},
"cli-truncate": {
"version": "2.1.0",
"bundled": true,
"dev": true,
"requires": {
"slice-ansi": "^3.0.0",
"string-width": "^4.2.0"
}
},
"code-excerpt": {
"version": "3.0.0",
"bundled": true,
"dev": true,
"requires": {
"convert-to-spaces": "^1.0.1"
}
},
"color-convert": {
"version": "1.9.3",
"bundled": true,
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"bundled": true,
"dev": true
},
"commondir": {
"version": "1.0.1",
"bundled": true,
"dev": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true
},
"convert-source-map": {
"version": "1.8.0",
"bundled": true,
"dev": true,
"requires": {
"safe-buffer": "~5.1.1"
}
},
"convert-to-spaces": {
"version": "1.0.2",
"bundled": true,
"dev": true
},
"csstype": {
"version": "3.0.11",
"bundled": true,
"dev": true
},
"debug": {
"version": "4.3.4",
"bundled": true,
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"electron-to-chromium": {
"version": "1.4.89",
"bundled": true,
"dev": true
},
"emoji-regex": {
"version": "8.0.0",
"bundled": true,
"dev": true
},
"escalade": {
"version": "3.1.1",
"bundled": true,
"dev": true
},
"escape-string-regexp": {
"version": "1.0.5",
"bundled": true,
"dev": true
},
"esprima": {
"version": "4.0.1",
"bundled": true,
"dev": true
},
"events-to-array": {
"version": "1.1.2",
"bundled": true,
"dev": true
},
"find-cache-dir": {
"version": "3.3.2",
"bundled": true,
"dev": true,
"requires": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
"pkg-dir": "^4.1.0"
}
},
"find-up": {
"version": "4.1.0",
"bundled": true,
"dev": true,
"requires": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
}
},
"fs.realpath": {
"version": "1.0.0",
"bundled": true,
"dev": true
},
"gensync": {
"version": "1.0.0-beta.2",
"bundled": true,
"dev": true
},
"glob": {
"version": "7.2.0",
"bundled": true,
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"globals": {
"version": "11.12.0",
"bundled": true,
"dev": true
},
"has-flag": {
"version": "3.0.0",
"bundled": true,
"dev": true
},
"indent-string": {
"version": "4.0.0",
"bundled": true,
"dev": true
},
"inflight": {
"version": "1.0.6",
"bundled": true,
"dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
"version": "2.0.4",
"bundled": true,
"dev": true
},
"ink": {
"version": "3.2.0",
"bundled": true,
"dev": true,
"requires": {
"ansi-escapes": "^4.2.1",
"auto-bind": "4.0.0",
"chalk": "^4.1.0",
"cli-boxes": "^2.2.0",
"cli-cursor": "^3.1.0",
"cli-truncate": "^2.1.0",
"code-excerpt": "^3.0.0",
"indent-string": "^4.0.0",
"is-ci": "^2.0.0",
"lodash": "^4.17.20",
"patch-console": "^1.0.0",
"react-devtools-core": "^4.19.1",
"react-reconciler": "^0.26.2",
"scheduler": "^0.20.2",
"signal-exit": "^3.0.2",
"slice-ansi": "^3.0.0",
"stack-utils": "^2.0.2",
"string-width": "^4.2.2",
"type-fest": "^0.12.0",
"widest-line": "^3.1.0",
"wrap-ansi": "^6.2.0",
"ws": "^7.5.5",
"yoga-layout-prebuilt": "^1.9.6"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"bundled": true,
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"bundled": true,
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"bundled": true,
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"bundled": true,
"dev": true
},
"has-flag": {
"version": "4.0.0",
"bundled": true,
"dev": true
},
"supports-color": {
"version": "7.2.0",
"bundled": true,
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"is-ci": {
"version": "2.0.0",
"bundled": true,
"dev": true,
"requires": {
"ci-info": "^2.0.0"
}
},
"is-fullwidth-code-point": {
"version": "3.0.0",
"bundled": true,
"dev": true
},
"js-tokens": {
"version": "4.0.0",
"bundled": true,
"dev": true
},
"jsesc": {
"version": "2.5.2",
"bundled": true,
"dev": true
},
"json5": {
"version": "2.2.1",
"bundled": true,
"dev": true
},
"locate-path": {
"version": "5.0.0",
"bundled": true,
"dev": true,
"requires": {
"p-locate": "^4.1.0"
}
},
"lodash": {
"version": "4.17.21",
"bundled": true,
"dev": true
},
"loose-envify": {
"version": "1.4.0",
"bundled": true,
"dev": true,
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
"make-dir": {
"version": "3.1.0",
"bundled": true,
"dev": true,
"requires": {
"semver": "^6.0.0"
}
},
"mimic-fn": {
"version": "2.1.0",
"bundled": true,
"dev": true
},
"minimatch": {
"version": "3.1.2",
"bundled": true,
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minipass": {
"version": "3.1.6",
"bundled": true,
"dev": true,
"requires": {
"yallist": "^4.0.0"
}
},
"ms": {
"version": "2.1.2",
"bundled": true,
"dev": true
},
"node-releases": {
"version": "2.0.2",
"bundled": true,
"dev": true
},
"object-assign": {
"version": "4.1.1",
"bundled": true,
"dev": true
},
"once": {
"version": "1.4.0",
"bundled": true,
"dev": true,
"requires": {
"wrappy": "1"
}
},
"onetime": {
"version": "5.1.2",
"bundled": true,
"dev": true,
"requires": {
"mimic-fn": "^2.1.0"
}
},
"p-limit": {
"version": "2.3.0",
"bundled": true,
"dev": true,
"requires": {
"p-try": "^2.0.0"
}
},
"p-locate": {
"version": "4.1.0",
"bundled": true,
"dev": true,
"requires": {
"p-limit": "^2.2.0"
}
},
"p-try": {
"version": "2.2.0",
"bundled": true,
"dev": true
},
"patch-console": {
"version": "1.0.0",
"bundled": true,
"dev": true
},
"path-exists": {
"version": "4.0.0",
"bundled": true,
"dev": true
},
"path-is-absolute": {
"version": "1.0.1",
"bundled": true,
"dev": true
},
"picocolors": {
"version": "1.0.0",
"bundled": true,
"dev": true
},
"pkg-dir": {
"version": "4.2.0",
"bundled": true,
"dev": true,
"requires": {
"find-up": "^4.0.0"
}
},
"punycode": {
"version": "2.1.1",
"bundled": true,
"dev": true
},
"react": {
"version": "17.0.2",
"bundled": true,
"dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
}
},
"react-devtools-core": {
"version": "4.24.1",
"bundled": true,
"dev": true,
"requires": {
"shell-quote": "^1.6.1",
"ws": "^7"
}
},
"react-reconciler": {
"version": "0.26.2",
"bundled": true,
"dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"scheduler": "^0.20.2"
}
},
"redeyed": {
"version": "2.1.1",
"bundled": true,
"dev": true,
"requires": {
"esprima": "~4.0.0"
}
},
"resolve-from": {
"version": "3.0.0",
"bundled": true,
"dev": true
},
"restore-cursor": {
"version": "3.1.0",
"bundled": true,
"dev": true,
"requires": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
}
},
"rimraf": {
"version": "3.0.2",
"bundled": true,
"dev": true,
"requires": {
"glob": "^7.1.3"
}
},
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
"dev": true
},
"scheduler": {
"version": "0.20.2",
"bundled": true,
"dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
}
},
"semver": {
"version": "6.3.0",
"bundled": true,
"dev": true
},
"shell-quote": {
"version": "1.7.3",
"bundled": true,
"dev": true
},
"signal-exit": {
"version": "3.0.7",
"bundled": true,
"dev": true
},
"slice-ansi": {
"version": "3.0.0",
"bundled": true,
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
"is-fullwidth-code-point": "^3.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"bundled": true,
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"color-convert": {
"version": "2.0.1",
"bundled": true,
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"bundled": true,
"dev": true
}
}
},
"source-map": {
"version": "0.5.7",
"bundled": true,
"dev": true
},
"stack-utils": {
"version": "2.0.5",
"bundled": true,
"dev": true,
"requires": {
"escape-string-regexp": "^2.0.0"
},
"dependencies": {
"escape-string-regexp": {
"version": "2.0.0",
"bundled": true,
"dev": true
}
}
},
"string-width": {
"version": "4.2.3",
"bundled": true,
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
}
},
"strip-ansi": {
"version": "6.0.1",
"bundled": true,
"dev": true,
"requires": {
"ansi-regex": "^5.0.1"
}
},
"supports-color": {
"version": "5.5.0",
"bundled": true,
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
},
"tap-parser": {
"version": "11.0.1",
"bundled": true,
"dev": true,
"requires": {
"events-to-array": "^1.0.1",
"minipass": "^3.1.6",
"tap-yaml": "^1.0.0"
}
},
"tap-yaml": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"requires": {
"yaml": "^1.5.0"
}
},
"to-fast-properties": {
"version": "2.0.0",
"bundled": true,
"dev": true
},
"treport": {
"version": "3.0.3",
"bundled": true,
"dev": true,
"requires": {
"@isaacs/import-jsx": "^4.0.1",
"cardinal": "^2.1.1",
"chalk": "^3.0.0",
"ink": "^3.2.0",
"ms": "^2.1.2",
"tap-parser": "^11.0.0",
"unicode-length": "^2.0.2"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"bundled": true,
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "3.0.0",
"bundled": true,
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"bundled": true,
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"bundled": true,
"dev": true
},
"has-flag": {
"version": "4.0.0",
"bundled": true,
"dev": true
},
"supports-color": {
"version": "7.2.0",
"bundled": true,
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"type-fest": {
"version": "0.12.0",
"bundled": true,
"dev": true
},
"unicode-length": {
"version": "2.0.2",
"bundled": true,
"dev": true,
"requires": {
"punycode": "^2.0.0",
"strip-ansi": "^3.0.1"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true
},
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
}
}
},
"widest-line": {
"version": "3.1.0",
"bundled": true,
"dev": true,
"requires": {
"string-width": "^4.0.0"
}
},
"wrap-ansi": {
"version": "6.2.0",
"bundled": true,
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"bundled": true,
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"color-convert": {
"version": "2.0.1",
"bundled": true,
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"bundled": true,
"dev": true
}
}
},
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true
},
"ws": {
"version": "7.5.7",
"bundled": true,
"dev": true,
"requires": {}
},
"yallist": {
"version": "4.0.0",
"bundled": true,
"dev": true
},
"yaml": {
"version": "1.10.2",
"bundled": true,
"dev": true
},
"yoga-layout-prebuilt": {
"version": "1.10.0",
"bundled": true,
"dev": true,
"requires": {
"@types/yoga-layout": "1.9.2"
}
}
}
},
"tap-mocha-reporter": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-5.0.3.tgz",
"integrity": "sha512-6zlGkaV4J+XMRFkN0X+yuw6xHbE9jyCZ3WUKfw4KxMyRGOpYSRuuQTRJyWX88WWuLdVTuFbxzwXhXuS2XE6o0g==",
"dev": true,
"requires": {
"color-support": "^1.1.0",
"debug": "^4.1.1",
"diff": "^4.0.1",
"escape-string-regexp": "^2.0.0",
"glob": "^7.0.5",
"tap-parser": "^11.0.0",
"tap-yaml": "^1.0.0",
"unicode-length": "^2.0.2"
},
"dependencies": {
"escape-string-regexp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true
}
}
},
"tap-parser": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-11.0.1.tgz",
"integrity": "sha512-5ow0oyFOnXVSALYdidMX94u0GEjIlgc/BPFYLx0yRh9hb8+cFGNJqJzDJlUqbLOwx8+NBrIbxCWkIQi7555c0w==",
"dev": true,
"requires": {
"events-to-array": "^1.0.1",
"minipass": "^3.1.6",
"tap-yaml": "^1.0.0"
}
},
"tap-yaml": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.0.tgz",
"integrity": "sha512-Rxbx4EnrWkYk0/ztcm5u3/VznbyFJpyXO12dDBHKWiDVxy7O2Qw6MRrwO5H6Ww0U5YhRY/4C/VzWmFPhBQc4qQ==",
"dev": true,
"requires": {
"yaml": "^1.5.0"
}
},
"tcompare": {
"version": "5.0.7",
"resolved": "https://registry.npmjs.org/tcompare/-/tcompare-5.0.7.tgz",
"integrity": "sha512-d9iddt6YYGgyxJw5bjsN7UJUO1kGOtjSlNy/4PoGYAjQS5pAT/hzIoLf1bZCw+uUxRmZJh7Yy1aA7xKVRT9B4w==",
"dev": true,
"requires": {
"diff": "^4.0.2"
}
},
"test-exclude": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
"integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
"requires": {
"@istanbuljs/schema": "^0.1.2",
"glob": "^7.1.4",
"minimatch": "^3.0.4"
}
},
"through2": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
"requires": {
"readable-stream": "~2.3.6",
"xtend": "~4.0.1"
}
},
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
"is-number": "^7.0.0"
}
},
"trivial-deferred": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz",
"integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=",
"dev": true
},
"ts-node": {
"version": "10.8.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz",
"integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==",
"dev": true,
"requires": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0",
"create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"v8-compile-cache-lib": "^3.0.1",
"yn": "3.1.1"
}
},
"type-fest": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
},
"typedarray-to-buffer": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
"integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"dev": true,
"requires": {
"is-typedarray": "^1.0.0"
}
},
"typescript": {
"version": "4.7.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz",
"integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==",
"dev": true
},
"unicode-length": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.0.2.tgz",
"integrity": "sha512-Ph/j1VbS3/r77nhoY2WU0GWGjVYOHL3xpKp0y/Eq2e5r0mT/6b649vm7KFO6RdAdrZkYLdxphYVgvODxPB+Ebg==",
"dev": true,
"requires": {
"punycode": "^2.0.0",
"strip-ansi": "^3.0.1"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
"dev": true
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
}
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true
},
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true
},
"v8-compile-cache-lib": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"requires": {
"isexe": "^2.0.0"
}
},
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
"dev": true
},
"wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
}
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"write-file-atomic": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
"integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
"dev": true,
"requires": {
"imurmurhash": "^0.1.4",
"is-typedarray": "^1.0.0",
"signal-exit": "^3.0.2",
"typedarray-to-buffer": "^3.1.5"
}
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"dev": true
},
"y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
"dev": true
},
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true
},
"yargs": {
"version": "15.4.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
"integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"dev": true,
"requires": {
"cliui": "^6.0.0",
"decamelize": "^1.2.0",
"find-up": "^4.1.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^18.1.2"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"cliui": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
"dev": true,
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^6.2.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
}
}
}
},
"yargs-parser": {
"version": "18.1.3",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
},
"yn": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true
}
}
}
minipass-3.3.6/package.json 0000664 0000000 0000000 00000002243 14340072270 0015634 0 ustar 00root root 0000000 0000000 {
"name": "minipass",
"version": "3.3.6",
"description": "minimal implementation of a PassThrough stream",
"main": "index.js",
"types": "index.d.ts",
"dependencies": {
"yallist": "^4.0.0"
},
"devDependencies": {
"@types/node": "^17.0.41",
"end-of-stream": "^1.4.0",
"prettier": "^2.6.2",
"tap": "^16.2.0",
"through2": "^2.0.3",
"ts-node": "^10.8.1",
"typescript": "^4.7.3"
},
"scripts": {
"test": "tap",
"preversion": "npm test",
"postversion": "npm publish",
"postpublish": "git push origin --follow-tags"
},
"repository": {
"type": "git",
"url": "git+https://github.com/isaacs/minipass.git"
},
"keywords": [
"passthrough",
"stream"
],
"author": "Isaac Z. Schlueter (http://blog.izs.me/)",
"license": "ISC",
"files": [
"index.d.ts",
"index.js"
],
"tap": {
"check-coverage": true
},
"engines": {
"node": ">=8"
},
"prettier": {
"semi": false,
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"jsxSingleQuote": false,
"bracketSameLine": true,
"arrowParens": "avoid",
"endOfLine": "lf"
}
}
minipass-3.3.6/test/ 0000775 0000000 0000000 00000000000 14340072270 0014324 5 ustar 00root root 0000000 0000000 minipass-3.3.6/test/array-buffers.js 0000664 0000000 0000000 00000003321 14340072270 0017431 0 ustar 00root root 0000000 0000000 const t = require('tap')
const stringToArrayBuffer = s => {
const buf = Buffer.from(s)
const ab = new ArrayBuffer(buf.length)
const ui = new Uint8Array(ab)
for (let i = 0; i < buf.length; i++) {
ui[i] = buf[i]
}
return ab
}
const MP = require('../')
const e = { encoding: 'utf8' }
t.test('write array buffer', t => {
const ab = stringToArrayBuffer('hello world')
const mp = new MP(e).end(ab)
t.equal(mp.objectMode, false, 'array buffer does not trigger objectMode')
return mp.concat().then(s => t.equal(s, 'hello world'))
})
t.test('write uint8 typed array', t => {
const ab = stringToArrayBuffer('hello world')
const ui = new Uint8Array(ab, 0, 5)
const mp = new MP(e).end(ui)
t.equal(mp.objectMode, false, 'typed array does not trigger objectMode')
return mp.concat().then(s => t.equal(s, 'hello'))
})
const {
ArrayBuffer: VMArrayBuffer,
Uint8Array: VMUint8Array,
} = require('vm').runInNewContext('({ArrayBuffer,Uint8Array})')
const stringToVMArrayBuffer = s => {
const buf = Buffer.from(s)
const ab = new VMArrayBuffer(buf.length)
const ui = new VMUint8Array(ab)
for (let i = 0; i < buf.length; i++) {
ui[i] = buf[i]
}
return ab
}
t.test('write vm array buffer', t => {
const ab = stringToVMArrayBuffer('hello world')
const mp = new MP(e).end(ab)
t.equal(mp.objectMode, false, 'array buffer does not trigger objectMode')
return mp.concat().then(s => t.equal(s, 'hello world'))
})
t.test('write uint8 typed array', t => {
const ab = stringToVMArrayBuffer('hello world')
const ui = new VMUint8Array(ab, 0, 5)
const mp = new MP(e).end(ui)
t.equal(mp.objectMode, false, 'typed array does not trigger objectMode')
return mp.concat().then(s => t.equal(s, 'hello'))
})
minipass-3.3.6/test/async-duplicate-end.js 0000664 0000000 0000000 00000000563 14340072270 0020517 0 ustar 00root root 0000000 0000000 const Minipass = require('../')
const t = require('tap')
t.test('async pipes should only end one time', t => {
const m = new Minipass({ async: true })
let ended = 0
const d = new Minipass()
d.end = () => {
ended++
Minipass.prototype.end.call(d)
}
m.pipe(d)
m.end()
m.end()
m.end()
setTimeout(() => {
t.equal(ended, 1)
t.end()
})
})
minipass-3.3.6/test/async-stream.js 0000664 0000000 0000000 00000004335 14340072270 0017275 0 ustar 00root root 0000000 0000000 const t = require('tap')
const MP = require('../')
t.test('pipe', t => {
const m = new MP({ encoding: 'utf8', async: true })
const d1 = new MP({ encoding: 'utf8' })
const d2 = new MP({ encoding: 'utf8' })
m.pipe(d1)
m.write('hello, ')
m.pipe(d2)
m.write('world')
m.end()
return Promise.all([d1.concat(), d2.concat()])
.then(result => t.strictSame(result, ['hello, world', 'hello, world']))
})
t.test('pipe split', t => {
const m = new MP({ encoding: 'utf8' })
t.equal(m.async, false)
m.async = true
t.equal(m.async, true)
m.async = 'banana'
t.equal(m.async, true)
m.async = false
t.equal(m.async, true, 'cannot make an async stream sync')
const d1 = new MP({ encoding: 'utf8' })
const d2 = new MP({ encoding: 'utf8' })
m.pipe(d1)
m.write('hello, ')
m.pipe(d2)
setTimeout(() => {
m.write('world')
m.end()
})
return Promise.all([d1.concat(), d2.concat()])
.then(result => t.strictSame(result, ['hello, world', 'hello, world']))
})
t.test('data event', t => {
const m = new MP({ encoding: 'utf8', async: true })
const d1 = new MP({ encoding: 'utf8' })
const out1 = []
m.on('data', c => out1.push(c))
m.write('hello, ')
const out2 = []
m.on('data', c => out2.push(c))
m.pipe(d1)
m.end('world!')
return d1.concat().then(res => {
t.equal(res, 'hello, world!')
t.equal(out1.join(''), 'hello, world!')
t.equal(out2.join(''), 'hello, world!')
})
})
t.test('data event split', t => {
const m = new MP({ encoding: 'utf8', async: true })
const d1 = new MP({ encoding: 'utf8' })
const out1 = []
m.on('data', c => out1.push(c))
m.write('hello, ')
const out2 = []
m.on('data', c => out2.push(c))
m.pipe(d1)
setTimeout(() => m.end('world!'))
return d1.concat().then(res => {
t.equal(res, 'hello, world!')
t.equal(out1.join(''), 'hello, world!')
t.equal(out2.join(''), 'hello, world!')
})
})
t.test('defer error event', t => {
const m = new MP()
try { m.emit('error', new Error('poop')) } catch (_) {}
m.async = true
let calledErrorHandler = false
m.on('error', er => {
t.equal(calledErrorHandler, false)
t.match(er, { message: 'poop' })
calledErrorHandler = true
t.end()
})
t.equal(calledErrorHandler, false)
})
minipass-3.3.6/test/auto-end-deferred-when-paused.js 0000664 0000000 0000000 00000000506 14340072270 0022373 0 ustar 00root root 0000000 0000000 const t = require('tap')
const MP = require('../')
t.test('do not auto-end empty stream if explicitly paused', t => {
const mp = new MP()
let waitedForEnd = false
mp.pause()
setTimeout(() => {
waitedForEnd = true
mp.resume()
})
return mp.end().promise().then(() => t.ok(waitedForEnd, 'waited for end'))
})
minipass-3.3.6/test/basic.js 0000664 0000000 0000000 00000030135 14340072270 0015745 0 ustar 00root root 0000000 0000000 const MiniPass = require('../')
const t = require('tap')
const EE = require('events').EventEmitter
t.test('some basic piping and writing', async t => {
let mp = new MiniPass({ encoding: 'base64' })
t.notOk(mp.flowing)
mp.flowing = true
t.notOk(mp.flowing)
t.equal(mp.encoding, 'base64')
mp.encoding = null
t.equal(mp.encoding, null)
t.equal(mp.readable, true)
t.equal(mp.writable, true)
t.equal(mp.write('hello'), false)
let dest = new MiniPass()
let sawDestData = false
dest.once('data', chunk => {
sawDestData = true
t.type(chunk, Buffer)
})
t.equal(mp.pipe(dest), dest, 'pipe returns dest')
t.ok(sawDestData, 'got data becasue pipe() flushes')
t.equal(mp.write('bye'), true, 'write() returns true when flowing')
dest.pause()
t.equal(mp.write('after pause'), false, 'false when dest is paused')
t.equal(mp.write('after false'), false, 'false when not flowing')
t.equal(dest.buffer.length, 1, '1 item is buffered in dest')
t.equal(mp.buffer.length, 1, '1 item buffered in src')
dest.resume()
t.equal(dest.buffer.length, 0, 'nothing is buffered in dest')
t.equal(mp.buffer.length, 0, 'nothing buffered in src')
})
t.test('unicode splitting', async t => {
const butterfly = '🦋'
const mp = new MiniPass({ encoding: 'utf8' })
t.plan(2)
t.equal(mp.encoding, 'utf8')
mp.on('data', chunk => {
t.equal(chunk, butterfly)
})
const butterbuf = Buffer.from([0xf0, 0x9f, 0xa6, 0x8b])
mp.write(butterbuf.slice(0, 1))
mp.write(butterbuf.slice(1, 2))
mp.write(butterbuf.slice(2, 3))
mp.write(butterbuf.slice(3, 4))
mp.end()
})
t.test('unicode splitting with setEncoding', async t => {
const butterfly = '🦋'
const mp = new MiniPass({ encoding: 'hex' })
t.plan(4)
t.equal(mp.encoding, 'hex')
mp.setEncoding('hex')
t.equal(mp.encoding, 'hex')
mp.setEncoding('utf8')
t.equal(mp.encoding, 'utf8')
mp.on('data', chunk => {
t.equal(chunk, butterfly)
})
const butterbuf = Buffer.from([0xf0, 0x9f, 0xa6, 0x8b])
mp.write(butterbuf.slice(0, 1))
mp.write(butterbuf.slice(1, 2))
mp.write(butterbuf.slice(2, 3))
mp.write(butterbuf.slice(3, 4))
mp.end()
})
t.test('base64 -> utf8 piping', t => {
t.plan(1)
const butterfly = '🦋'
const mp = new MiniPass({ encoding: 'base64' })
const dest = new MiniPass({ encoding: 'utf8' })
mp.pipe(dest)
let out = ''
dest.on('data', c => out += c)
dest.on('end', _ =>
t.equal(Buffer.from(out, 'base64').toString('utf8'), butterfly))
mp.write(butterfly)
mp.end()
})
t.test('utf8 -> base64 piping', t => {
t.plan(1)
const butterfly = '🦋'
const mp = new MiniPass({ encoding: 'utf8' })
const dest = new MiniPass({ encoding: 'base64' })
mp.pipe(dest)
let out = ''
dest.on('data', c => out += c)
dest.on('end', _ =>
t.equal(Buffer.from(out, 'base64').toString('utf8'), butterfly))
mp.write(butterfly)
mp.end()
})
t.test('read method', async t => {
const butterfly = '🦋'
const mp = new MiniPass({ encoding: 'utf8' })
mp.on('data', c => t.equal(c, butterfly))
mp.pause()
t.equal(mp.paused, true, 'paused=true')
mp.write(Buffer.from(butterfly))
t.equal(mp.read(5), null)
t.equal(mp.read(0), null)
t.same(mp.read(2), butterfly)
})
t.test('read with no args', async t => {
t.test('buffer -> string', async t => {
const butterfly = '🦋'
const mp = new MiniPass({ encoding: 'utf8' })
mp.on('data', c => t.equal(c, butterfly))
mp.pause()
const butterbuf = Buffer.from(butterfly)
mp.write(butterbuf.slice(0, 2))
mp.write(butterbuf.slice(2))
t.same(mp.read(), butterfly)
t.equal(mp.read(), null)
})
t.test('buffer -> buffer', async t => {
const butterfly = Buffer.from('🦋')
const mp = new MiniPass()
mp.on('data', c => t.same(c, butterfly))
mp.pause()
mp.write(butterfly.slice(0, 2))
mp.write(butterfly.slice(2))
t.same(mp.read(), butterfly)
t.equal(mp.read(), null)
})
t.test('string -> buffer', async t => {
const butterfly = '🦋'
const butterbuf = Buffer.from(butterfly)
const mp = new MiniPass()
mp.on('data', c => t.same(c, butterbuf))
mp.pause()
mp.write(butterfly)
t.same(mp.read(), butterbuf)
t.equal(mp.read(), null)
})
t.test('string -> string', async t => {
const butterfly = '🦋'
const mp = new MiniPass({ encoding: 'utf8' })
mp.on('data', c => t.equal(c, butterfly))
mp.pause()
mp.write(butterfly[0])
mp.write(butterfly[1])
t.same(mp.read(), butterfly)
t.equal(mp.read(), null)
})
})
t.test('partial read', async t => {
const butterfly = '🦋'
const mp = new MiniPass()
const butterbuf = Buffer.from(butterfly)
mp.write(butterbuf.slice(0, 1))
mp.write(butterbuf.slice(1, 2))
mp.write(butterbuf.slice(2, 3))
mp.write(butterbuf.slice(3, 4))
t.equal(mp.read(5), null)
t.equal(mp.read(0), null)
t.same(mp.read(2), butterbuf.slice(0, 2))
t.same(mp.read(2), butterbuf.slice(2, 4))
})
t.test('write after end', async t => {
const mp = new MiniPass()
let sawEnd = false
mp.on('end', _ => sawEnd = true)
mp.end('not empty')
t.throws(_ => mp.write('nope'))
t.notOk(sawEnd, 'should not get end event yet (not flowing)')
mp.resume()
t.equal(mp.paused, false, 'paused=false after resume')
t.ok(sawEnd, 'should get end event after resume()')
})
t.test('write after end', async t => {
const mp = new MiniPass()
let sawEnd = 0
mp.on('end', _ => sawEnd++)
mp.end() // empty
t.ok(mp.emittedEnd, 'emitted end event')
t.throws(_ => mp.write('nope'))
t.equal(sawEnd, 1, 'should get end event (empty stream)')
mp.resume()
t.ok(sawEnd, 2, 'should get end event again, I guess?')
})
t.test('write cb', async t => {
const mp = new MiniPass()
let calledCb = false
mp.write('ok', () => calledCb = true)
t.ok(calledCb)
})
t.test('end with chunk', async t => {
let out = ''
const mp = new MiniPass({ encoding: 'utf8' })
let sawEnd = false
mp.prependListener('end', _ => sawEnd = true)
mp.addListener('data', c => out += c)
let endCb = false
mp.end('ok', _ => endCb = true)
t.equal(out, 'ok')
t.ok(sawEnd, 'should see end event')
t.ok(endCb, 'end cb should get called')
})
t.test('no drain if could not entirely drain on resume', async t => {
const mp = new MiniPass()
const dest = new MiniPass({ encoding: 'buffer' })
t.equal(mp.write('foo'), false)
t.equal(mp.write('bar'), false)
t.equal(mp.write('baz'), false)
t.equal(mp.write('qux'), false)
mp.on('drain', _ => t.fail('should not drain'))
mp.pipe(dest)
})
t.test('end with chunk pending', async t => {
const mp = new MiniPass()
t.equal(mp.write('foo'), false)
t.equal(mp.write('626172', 'hex'), false)
t.equal(mp.write('baz'), false)
t.equal(mp.write('qux'), false)
let sawEnd = false
mp.on('end', _ => sawEnd = true)
let endCb = false
mp.end(_ => endCb = true)
t.notOk(endCb, 'endcb should not happen yet')
t.notOk(sawEnd, 'should not see end yet')
let out = ''
mp.on('data', c => out += c)
t.ok(sawEnd, 'see end after flush')
t.ok(endCb, 'end cb after flush')
t.equal(out, 'foobarbazqux')
})
t.test('pipe to stderr does not throw', t => {
const spawn = require('child_process').spawn
const module = JSON.stringify(require.resolve('../'))
const fs = require('fs')
const file = __dirname + '/prog.js'
fs.writeFileSync(file, `
const MP = require(${module})
const mp = new MP()
mp.pipe(process.stderr)
mp.end("hello")
`)
let err = ''
return new Promise(res => {
const child = spawn(process.execPath, [file])
child.stderr.on('data', c => err += c)
child.on('close', (code, signal) => {
t.equal(code, 0)
t.equal(signal, null)
t.equal(err, 'hello')
fs.unlinkSync(file)
res()
})
})
})
t.test('emit works with many args', t => {
const mp = new MiniPass()
t.plan(2)
mp.on('foo', function (a, b, c, d, e, f, g) {
t.same([a,b,c,d,e,f,g], [1,2,3,4,5,6,7])
t.equal(arguments.length, 7)
})
mp.emit('foo', 1, 2, 3, 4, 5, 6, 7)
})
t.test('emit drain on resume, even if no flush', t => {
const mp = new MiniPass()
mp.encoding = 'utf8'
const chunks = []
class SlowStream extends EE {
write (chunk) {
chunks.push(chunk)
setTimeout(_ => this.emit('drain'))
return false
}
end () { return this.write() }
}
const ss = new SlowStream()
mp.pipe(ss)
t.ok(mp.flowing, 'flowing, because piped')
t.equal(mp.write('foo'), false, 'write() returns false, backpressure')
t.equal(mp.buffer.length, 0, 'buffer len is 0')
t.equal(mp.flowing, false, 'flowing false, awaiting drain')
t.same(chunks, ['foo'], 'chunk made it through')
mp.once('drain', _ => {
t.pass('received mp drain event')
t.end()
})
})
t.test('save close for end', t => {
const mp = new MiniPass()
let ended = false
mp.on('close', _ => {
t.equal(ended, true, 'end before close')
t.end()
})
mp.on('end', _ => {
t.equal(ended, false, 'only end once')
ended = true
})
mp.emit('close')
mp.end('foo')
t.equal(ended, false, 'no end until flushed')
mp.resume()
})
t.test('eos works', t => {
const eos = require('end-of-stream')
const mp = new MiniPass()
eos(mp, er => {
if (er)
throw er
t.end()
})
mp.emit('close')
mp.end('foo')
mp.resume()
})
t.test('bufferLength property', t => {
const eos = require('end-of-stream')
const mp = new MiniPass()
mp.write('a')
mp.write('a')
mp.write('a')
mp.write('a')
mp.write('a')
mp.write('a')
t.equal(mp.bufferLength, 6)
t.equal(mp.read(7), null)
t.equal(mp.read(3).toString(), 'aaa')
t.equal(mp.bufferLength, 3)
t.equal(mp.read().toString(), 'aaa')
t.equal(mp.bufferLength, 0)
t.end()
})
t.test('emit resume event on resume', t => {
const mp = new MiniPass()
t.plan(3)
mp.on('resume', _ => t.pass('got resume event'))
mp.end('asdf')
t.equal(mp.flowing, false, 'not flowing yet')
mp.resume()
t.equal(mp.flowing, true, 'flowing after resume')
})
t.test('objectMode', t => {
const mp = new MiniPass({ objectMode: true })
t.equal(mp.objectMode, true, 'objectMode getter returns value')
mp.objectMode = false
t.equal(mp.objectMode, true, 'objectMode getter is read-only')
const a = { a: 1 }
const b = { b: 1 }
const out = []
mp.on('data', c => out.push(c))
mp.on('end', _ => {
t.equal(out.length, 2)
t.equal(out[0], a)
t.equal(out[1], b)
t.same(out, [ { a: 1 }, { b: 1 } ], 'objs not munged')
t.end()
})
t.ok(mp.write(a))
let cbcalled = false
t.ok(mp.write(b, () => cbcalled = true))
t.equal(cbcalled, true)
mp.end()
})
t.test('objectMode no encoding', t => {
const mp = new MiniPass({
objectMode: true,
encoding: 'utf8'
})
t.equal(mp.encoding, null)
const a = { a: 1 }
const b = { b: 1 }
const out = []
mp.on('data', c => out.push(c))
mp.on('end', _ => {
t.equal(out.length, 2)
t.equal(out[0], a)
t.equal(out[1], b)
t.same(out, [ { a: 1 }, { b: 1 } ], 'objs not munged')
t.end()
})
t.ok(mp.write(a))
t.ok(mp.write(b))
mp.end()
})
t.test('objectMode read() and buffering', t => {
const mp = new MiniPass({ objectMode: true })
const a = { a: 1 }
const b = { b: 1 }
t.notOk(mp.write(a))
t.notOk(mp.write(b))
t.equal(mp.read(2), a)
t.equal(mp.read(), b)
t.end()
})
t.test('set encoding in object mode throws', async t =>
t.throws(_ => new MiniPass({ objectMode: true }).encoding = 'utf8',
new Error('cannot set encoding in objectMode')))
t.test('set encoding again throws', async t =>
t.throws(_ => {
const mp = new MiniPass({ encoding: 'hex' })
mp.write('ok')
mp.encoding = 'utf8'
}, new Error('cannot change encoding')))
t.test('set encoding with existing buffer', async t => {
const mp = new MiniPass()
const butterfly = '🦋'
const butterbuf = Buffer.from(butterfly)
mp.write(butterbuf.slice(0, 1))
mp.write(butterbuf.slice(1, 2))
mp.setEncoding('utf8')
mp.write(butterbuf.slice(2))
t.equal(mp.read(), butterfly)
})
t.test('end:false', async t => {
t.plan(1)
const mp = new MiniPass({ encoding: 'utf8' })
const d = new MiniPass({ encoding: 'utf8' })
d.end = () => t.threw(new Error('no end no exit no way out'))
d.on('data', c => t.equal(c, 'this is fine'))
mp.pipe(d, { end: false })
mp.end('this is fine')
})
minipass-3.3.6/test/buffer-chunk-when-flowing-stops.js 0000664 0000000 0000000 00000002044 14340072270 0023011 0 ustar 00root root 0000000 0000000 // Reproduces an issue where write is called while the stream is flowing but a
// destination cannot accept all of the buffered chunks. minipass should add
// the chunk to the end of the buffer instead of emitting it before the buffer
// is cleared.
//
// This caused issues when piping make-fetch-happen stream to tar.extract
// https://github.com/npm/cli/issues/3884
const Minipass = require('../')
const t = require('tap')
class Pauser extends Minipass {
write (chunk, encoding, callback) {
super.write(chunk, encoding, callback)
return false
}
}
const src = new Minipass({encoding: 'utf8'})
const pauser = new Pauser({encoding: 'utf8'})
// queue up two chunks while the src is buffering
src.write('1')
src.write('2')
// when the src starts flowing write a third chunk
src.once('resume', () => src.write('3'))
// pipe the src to the pauser which will request the src stops after the first
// chunk.
src.pipe(pauser)
src.end()
// we should expect the chunks in the original order.
t.resolveMatch(pauser.collect(), ['1', '2', '3'], '123')
minipass-3.3.6/test/collect-with-error-end.js 0000664 0000000 0000000 00000000364 14340072270 0021156 0 ustar 00root root 0000000 0000000 const MP = require('../')
const mp = new MP()
const poop = new Error('poop')
mp.on('end', () => mp.emit('error', poop))
mp.end('foo')
const t = require('tap')
t.test('promise catches error emitted on end', t =>
t.rejects(mp.collect(), poop))
minipass-3.3.6/test/collect.js 0000664 0000000 0000000 00000002702 14340072270 0016310 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const MP = require('../index.js')
t.test('basic', async t => {
const mp = new MP()
let i = 5
const interval = setInterval(() => {
if (i --> 0)
mp.write('foo\n')
else {
clearInterval(interval)
mp.end()
}
})
mp.setEncoding('utf8')
const all = await mp.collect()
t.same(all, ['foo\n','foo\n','foo\n','foo\n','foo\n'])
})
t.test('error', async t => {
const mp = new MP()
const poop = new Error('poop')
setTimeout(() => mp.emit('error', poop))
await t.rejects(mp.collect(), poop)
})
t.test('concat strings', async t => {
const mp = new MP({ encoding: 'utf8' })
mp.write('foo')
mp.write('bar')
mp.write('baz')
mp.end()
await t.resolveMatch(mp.concat(), 'foobarbaz')
})
t.test('concat buffers', async t => {
const mp = new MP()
mp.write('foo')
mp.write('bar')
mp.write('baz')
mp.end()
await t.resolveMatch(mp.concat(), Buffer.from('foobarbaz'))
})
t.test('concat objectMode fails', async t => {
const a = new MP({objectMode: true})
await t.rejects(a.concat(), new Error('cannot concat in objectMode'))
const b = new MP()
b.write('asdf')
setTimeout(() => b.end({foo:1}))
await t.rejects(b.concat(), new Error('cannot concat in objectMode'))
})
t.test('collect does not set bodyLength in objectMode', t =>
new MP({objectMode: true}).end({a:1}).collect().then(data => {
t.equal(typeof data.dataLength, 'undefined')
t.same(data, [{a:1}])
}))
minipass-3.3.6/test/dest-write-returns-nonboolean.js 0000664 0000000 0000000 00000001205 14340072270 0022577 0 ustar 00root root 0000000 0000000 const t = require('tap')
const MP = require('../')
t.test('writing to a non-bool returning write() does not pause', t => {
const booleyStream = new (class extends MP {
write (chunk, encoding, cb) {
// no return!
super.write(chunk, encoding, cb)
}
})
const booleyStream2 = new (class extends MP {
write (chunk, encoding, cb) {
// no return!
super.write(chunk, encoding, cb)
}
})
const src = new MP
try {
return src.pipe(booleyStream).pipe(booleyStream2).concat().then(d =>
t.equal(d.toString(), 'hello', 'got data all the way through'))
} finally {
src.end('hello')
}
})
minipass-3.3.6/test/destroy.js 0000664 0000000 0000000 00000004670 14340072270 0016362 0 ustar 00root root 0000000 0000000 const MP = require('../')
const t = require('tap')
t.match(new MP(), { destroy: Function }, 'destroy is implemented')
{
const mp = new MP()
t.equal(mp.destroy(), mp, 'destroy() returns this')
}
t.equal(new MP().destroy().destroyed, true, 'destroy() sets .destroyed getter')
t.test('destroy(er) emits error', t => {
const mp = new MP()
const er = new Error('skoarchhh')
const ret = t.rejects(() => mp.promise(), er)
mp.destroy(er)
return ret
})
t.test('calls close if present', t => {
const mp = new MP()
let closeCalled = false
mp.close = () => {
closeCalled = true
setTimeout(() => mp.emit('close'))
}
mp.on('close', () => {
t.equal(closeCalled, true, 'called close')
t.end()
})
mp.destroy()
})
t.test('destroy a second time just emits the error', t => {
const mp = new MP()
mp.destroy()
const er = new Error('skoarchhh')
const ret = t.rejects(() => mp.promise(), er)
mp.destroy(er)
return ret
})
t.test('destroy with no error rejects a promise', t => {
const mp = new MP()
const ret = t.rejects(() => mp.promise(), { message: 'stream destroyed' })
mp.destroy()
return ret
})
t.test('destroy with no error second time rejects a promise', t => {
const mp = new MP()
mp.destroy()
const ret = t.rejects(() => mp.promise(), { message: 'stream destroyed' })
mp.destroy()
return ret
})
t.test('emits after destruction are ignored', t => {
const mp = new MP().destroy()
mp.on('foo', () => t.fail('should not emit foo after destroy'))
mp.emit('foo')
t.end()
})
t.test('pipe after destroy is a no-op', t => {
const p = new MP()
p.write('foo')
p.destroy()
const q = new MP()
q.on('data', c => t.fail('should not get data, upstream is destroyed'))
p.pipe(q)
t.end()
})
t.test('resume after destroy is a no-op', t => {
const p = new MP()
p.pause()
p.on('resume', () => t.fail('should not see resume event after destroy'))
p.destroy()
p.resume()
t.end()
})
t.test('read after destroy always returns null', t => {
const p = new MP({ encoding: 'utf8' })
p.write('hello, ')
p.write('world')
t.equal(p.read(), 'hello, world')
p.write('destroyed!')
p.destroy()
t.equal(p.read(), null)
t.end()
})
t.test('write after destroy emits error', t => {
const p = new MP()
p.destroy()
p.on('error', er => {
t.match(er, {
message: 'Cannot call write after a stream was destroyed',
code: 'ERR_STREAM_DESTROYED',
})
t.end()
})
p.write('nope')
})
minipass-3.3.6/test/emit-during-end-event.js 0000664 0000000 0000000 00000000555 14340072270 0020776 0 ustar 00root root 0000000 0000000 const Minipass = require('../')
const t = require('tap')
class FancyEnder extends Minipass {
emit (ev, ...data) {
if (ev === 'end')
this.emit('foo')
return super.emit(ev, ...data)
}
}
const mp = new FancyEnder()
let fooEmits = 0
mp.on('foo', () => fooEmits++)
mp.end('asdf')
mp.resume()
t.equal(fooEmits, 1, 'should only see one event emitted')
minipass-3.3.6/test/empty-buffer-end-with-encoding.js 0000664 0000000 0000000 00000001712 14340072270 0022571 0 ustar 00root root 0000000 0000000 const t = require('tap')
const MP = require('../')
const enc = { encoding: 'utf8' }
t.test('encoding and immediate end', t =>
new MP(enc).end().concat().then(s => t.equal(s, '')))
t.test('encoding and end with empty string', t =>
new MP(enc).end('').concat().then(s => t.equal(s, '')))
t.test('encoding and end with empty buffer', t =>
new MP(enc).end(Buffer.alloc(0)).concat().then(s => t.equal(s, '')))
t.test('encoding and end with stringly empty buffer', t =>
new MP(enc).end(Buffer.from('')).concat().then(s => t.equal(s, '')))
t.test('encoding and write then end with empty buffer', t => {
const mp = new MP(enc)
mp.write('ok')
return mp.end(Buffer.alloc(0)).concat().then(s => t.equal(s, 'ok'))
})
t.test('encoding and write then end with empty string', t => {
const mp = new MP(enc)
mp.write('ok')
return mp.end('').concat().then(s => t.equal(s, 'ok'))
})
t.test('empty write with cb', t => new MP(enc).write(Buffer.from(''), t.end))
minipass-3.3.6/test/empty-stream-emits-end-without-read.js 0000664 0000000 0000000 00000000202 14340072270 0023600 0 ustar 00root root 0000000 0000000 const MP = require('../')
const t = require('tap')
t.test('empty end emits end without reading', t =>
new MP().end().promise())
minipass-3.3.6/test/end-missed.js 0000664 0000000 0000000 00000001372 14340072270 0016715 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const MP = require('../')
t.test('end is not missed if listened to after end', t => {
t.plan(1)
const mp = new MP()
mp.end('foo')
let str = ''
mp.on('data', d => str += d)
mp.on('end', () => t.equal(str, 'foo'))
})
t.test('listening for any endish event after end re-emits', t => {
t.plan(1)
const mp = new MP()
mp.end('foo')
let str = ''
mp.on('data', d => str += d)
mp.on('finish', () => t.equal(str, 'foo'))
})
t.test('all endish listeners get called', t => {
t.plan(3)
const mp = new MP()
let str = ''
mp.on('finish', () => t.equal(str, 'foo'))
mp.on('prefinish', () => t.equal(str, 'foo'))
mp.end('foo')
mp.on('data', d => str += d)
mp.on('end', () => t.equal(str, 'foo'))
})
minipass-3.3.6/test/end-returns-this.js 0000664 0000000 0000000 00000000161 14340072270 0020073 0 ustar 00root root 0000000 0000000 const t = require('tap')
const MP = require('../')
const mp = new MP()
t.equal(mp.end(), mp, 'end returns this')
minipass-3.3.6/test/end-twice.js 0000664 0000000 0000000 00000001676 14340072270 0016553 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const MP = require('../')
t.test('organic', t => {
const butterfly = Buffer.from([0x61, 0xf0, 0x9f, 0xa6, 0x8b, 0xf0])
const mp = new MP({ encoding: 'utf8' })
let sawEnd = 0
mp.on('end', () =>
t.equal(sawEnd++, 0, 'should not have seen the end yet'))
mp.once('data', () => {
mp.once('data', () => {
mp.once('data', () => mp.end())
mp.end()
})
mp.end(butterfly.slice(3))
})
mp.end(butterfly.slice(0, 3))
t.equal(sawEnd, 1, 'should see end exactly once')
t.end()
})
t.test('manufactured', t => {
// *should* already be impossible, but just to be even more
// deliberate, in case that wasn't the only way it could happen
const mp = new MP()
let sawEnd = 0
mp.on('end', () => {
t.equal(sawEnd++, 0, 'should not have seen the end yet')
mp.emit('end')
})
mp.emit('end')
mp.emit('end')
t.equal(sawEnd, 1, 'should see end exactly once')
t.end()
})
minipass-3.3.6/test/error-before-promise.js 0000664 0000000 0000000 00000003076 14340072270 0020735 0 ustar 00root root 0000000 0000000 const MP = require('../')
const t = require('tap')
t.test('emit an error before calling stream.promise()', t => {
const mp = new MP()
const poop = new Error('poop')
mp.once('error', er => t.equal(er, poop))
mp.emit('error', poop)
mp.end()
return t.rejects(mp.promise(), poop)
})
t.test('end properly when emitting error event', t => {
// this simulates a case where the 'emit' method is overridden
// in a child class to do special behavior on the 'end' event,
// which can cause an error to be emitted, in which case we
// still need to try to re-emit end if the error is handled.
// See http://npm.im/minipass-flush
const mp = new MP()
const poop = new Error('poop')
mp.on('error', er => t.equal(er, poop, 'catch all'))
let mpEnded = false
mp.on('end', () => {
mpEnded = true
t.pass('emitted mp end event')
if (pipelineEnded)
t.end()
})
const { emit } = mp
let flushed = false
let flushing = false
mp.emit = (ev, ...data) => {
if (ev !== 'end' || flushed)
return emit.call(mp, ev, ...data)
if (flushing)
return
if (ev === 'end') {
flushing = true
Promise.resolve().then(() => {
flushed = true
mp.emit('error', poop)
})
} else {
return emit.call(mp, ev, ...data)
}
}
const src = new MP()
const dest = new MP()
let pipelineEnded = false
mp.pipe(dest)
.on('data', c => {
t.equal(c.toString(), 'ok')
})
.on('end', () => {
pipelineEnded = true
t.pass('pipeline ended')
if (mpEnded)
t.end()
})
mp.end()
})
minipass-3.3.6/test/flush-buffer-before-flowing.js 0000664 0000000 0000000 00000003041 14340072270 0022153 0 ustar 00root root 0000000 0000000 // this is a minimal reproduction of a pretty complex interaction between
// minipass-pipeline and a slow-draining proxy stream, which occurred in
// make-fetch-happen. https://github.com/npm/npm-registry-fetch/issues/23
// The pipeline in question was a wrapper that tee'd data into the cache,
// which is a slow-draining sink stream. When multiple chunks come through,
// the Pipeline's buffer is holding a chunk, but the Pipeline itself is in
// flowing mode. The solution is to always drain the buffer before emitting
// 'data', if there is other data waiting to be emitted.
const Minipass = require('../')
const t = require('tap')
const src = new Minipass({ encoding: 'utf8' })
const mid = new Minipass({ encoding: 'utf8' })
const proxy = new Minipass({ encoding: 'utf8' })
mid.write = function (chunk, encoding, cb) {
Minipass.prototype.write.call(this, chunk, encoding, cb)
return proxy.write(chunk, encoding, cb)
}
proxy.on('drain', chunk => mid.emit('drain'))
proxy.on('readable', () => setTimeout(() => proxy.read()))
const dest = new Minipass({ encoding: 'utf8' })
src.write('a')
src.write('b')
const pipeline = new (class Pipeline extends Minipass {
constructor (opt) {
super(opt)
dest.on('data', c => super.write(c))
dest.on('end', () => super.end())
}
emit (ev, ...args) {
if (ev === 'resume')
dest.resume()
return super.emit(ev, ...args)
}
})({ encoding: 'utf8'})
mid.pipe(dest)
src.pipe(mid)
t.test('get all data', t => pipeline.concat().then(d => t.equal(d, 'abcd')))
src.write('c')
src.write('d')
src.end()
minipass-3.3.6/test/is-stream.js 0000664 0000000 0000000 00000002646 14340072270 0016576 0 ustar 00root root 0000000 0000000 const MP = require('../')
const EE = require('events')
const t = require('tap')
const Stream = require('stream')
t.equal(MP.isStream(new MP), true, 'a MiniPass is a stream')
t.equal(MP.isStream(new Stream), true, 'a Stream is a stream')
t.equal((new MP) instanceof Stream, true, 'a MiniPass is a Stream')
const w = new EE()
w.write = () => {}
w.end = () => {}
t.equal(MP.isStream(w), true, 'EE with write() and end() is a stream')
const r = new EE()
r.pipe = () => {}
t.equal(MP.isStream(r), true, 'EE with pipe() is a stream')
t.equal(MP.isStream(new Stream.Readable()), true, 'Stream.Readable() is a stream')
t.equal(MP.isStream(new Stream.Writable()), true, 'Stream.Writable() is a stream')
t.equal(MP.isStream(new Stream.Duplex()), true, 'Stream.Duplex() is a stream')
t.equal(MP.isStream(new Stream.Transform()), true, 'Stream.Transform() is a stream')
t.equal(MP.isStream(new Stream.PassThrough()), true, 'Stream.PassThrough() is a stream')
t.equal(MP.isStream(new (class extends MP {})), true, 'extends MP is a stream')
t.equal(MP.isStream(new EE), false, 'EE without streaminess is not a stream')
t.equal(MP.isStream({
write(){},
end(){},
pipe(){},
}), false, 'non-EE is not a stream')
t.equal(MP.isStream('hello'), false, 'string is not a stream')
t.equal(MP.isStream(99), false, 'number is not a stream')
t.equal(MP.isStream(() => {}), false, 'function is not a stream')
t.equal(MP.isStream(null), false, 'null is not a stream')
minipass-3.3.6/test/iteration-unsupported.js 0000664 0000000 0000000 00000000544 14340072270 0021251 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
global._MP_NO_ITERATOR_SYMBOLS_ = '1'
const MP = require('../index.js')
const mp = new MP
mp.write('foo')
setTimeout(() => mp.end())
t.throws(() => {
for (let x of mp) {
t.fail('should not be iterable')
}
})
t.rejects(async () => {
for await (let x of mp) {
t.fail('should not be async iterable')
}
})
minipass-3.3.6/test/iteration.js 0000664 0000000 0000000 00000015061 14340072270 0016663 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const MP = require('../index.js')
t.test('sync iteration', t => {
const cases = {
'buffer': [ null, [
Buffer.from('ab'),
Buffer.from('cd'),
Buffer.from('e')
]],
'string': [ { encoding: 'utf8' }, ['ab', 'cd', 'e']],
'object': [ { objectMode: true }, ['a', 'b', 'c', 'd', 'e']]
}
const runTest = (c, opt, expect) => {
t.test(c, t => {
const result = []
const mp = new MP(opt)
mp.write('a')
mp.write('b')
for (let letter of mp) {
result.push(letter)
}
mp.write('c')
mp.write('d')
result.push.call(result, ...mp)
mp.write('e')
mp.end()
for (let letter of mp) {
result.push(letter) // e
}
for (let letter of mp) {
result.push(letter) // nothing
}
t.match(result, expect)
t.end()
})
}
for (let c in cases) {
runTest(c, cases[c][0], cases[c][1])
}
t.test('destroy while iterating', t => {
const mp = new MP({ objectMode: true })
mp.write('a')
mp.write('b')
mp.write('c')
mp.write('d')
const result = []
for (let letter of mp) {
result.push(letter)
mp.destroy()
}
t.same(result, ['a'])
t.end()
})
t.end()
})
t.test('async iteration', t => {
const expect = [
'start\n',
'foo\n',
'foo\n',
'foo\n',
'foo\n',
'foo\n',
'bar\n'
]
t.test('end immediate', async t => {
const mp = new MP({ encoding: 'utf8' })
let i = 5
mp.write('start\n')
const inter = setInterval(() => {
if (i --> 0)
mp.write(Buffer.from('foo\n', 'utf8'))
else {
mp.end('bar\n')
clearInterval(inter)
}
})
const result = []
for await (let x of mp)
result.push(x)
t.same(result, expect)
})
t.test('end later', async t => {
const mp = new MP({ encoding: 'utf8' })
let i = 5
mp.write('start\n')
const inter = setInterval(() => {
if (i --> 0)
mp.write(Buffer.from('foo\n', 'utf8'))
else {
mp.write('bar\n')
setTimeout(() => mp.end())
clearInterval(inter)
}
})
const result = []
for await (let x of mp)
result.push(x)
t.same(result, expect)
})
t.test('multiple chunks at once, asyncly', async t => {
const mp = new MP()
let i = 6
const write = () => {
if (i === 6)
mp.write(Buffer.from('start\n', 'utf8'))
else if (i > 0)
mp.write('foo\n')
else if (i === 0) {
mp.end('bar\n')
clearInterval(inter)
}
i--
}
const inter = setInterval(() => {
write()
write()
write()
})
const result = []
for await (let x of mp)
result.push(x)
t.same(result.map(x => x.toString()).join(''), expect.join(''))
})
t.test('multiple object chunks at once, asyncly', async t => {
const mp = new MP({ objectMode: true })
let i = 6
const write = () => {
if (i === 6)
mp.write(['start\n'])
else if (i > 0)
mp.write(['foo\n'])
else if (i === 0) {
mp.end(['bar\n'])
clearInterval(inter)
}
i--
}
const inter = setInterval(() => {
write()
write()
write()
})
const result = []
for await (let x of mp)
result.push(x)
t.same(result.map(x => x.join('')).join(''), expect.join(''))
})
t.test('all chunks at once, asyncly', async t => {
const mp = new MP()
setTimeout(() => {
mp.write(Buffer.from('start\n', 'utf8'))
for (let i = 0; i < 5; i++) {
mp.write('foo\n')
}
mp.end('bar\n')
})
const result = []
for await (let x of mp)
result.push(x)
t.same(result.map(x => x.toString()).join(''), expect.join(''))
})
t.test('all object chunks at once, asyncly', async t => {
const mp = new MP({ objectMode: true })
setTimeout(() => {
mp.write(['start\n'])
for (let i = 0; i < 5; i++) {
mp.write(['foo\n'])
}
mp.end(['bar\n'])
})
const result = []
for await (let x of mp)
result.push(x)
t.same(result.map(x => x.join('')).join(''), expect.join(''))
})
t.test('all object chunks at once, syncly', async t => {
const mp = new MP({ objectMode: true })
mp.write(['start\n'])
for (let i = 0; i < 5; i++) {
mp.write(['foo\n'])
}
mp.end(['bar\n'])
const result = []
for await (let x of mp)
result.push(x)
t.same(result.map(x => x.join('')).join(''), expect.join(''))
})
t.test('pipe in all at once', async t => {
const inp = new MP({ encoding: 'utf8' })
const mp = new MP({ encoding: 'utf8' })
inp.pipe(mp)
let i = 5
inp.write('start\n')
const inter = setInterval(() => {
if (i --> 0)
inp.write(Buffer.from('foo\n', 'utf8'))
else {
inp.end('bar\n')
clearInterval(inter)
}
})
const result = []
for await (let x of mp)
result.push(x)
t.same(result, expect)
})
t.test('pipe in multiple object chunks at once, asyncly', async t => {
const mp = new MP({ objectMode: true })
const inp = new MP({ objectMode: true })
inp.pipe(mp)
let i = 5
inp.write(['start\n'])
const write = () => {
if (i > 0)
inp.write(['foo\n'])
else if (i === 0) {
inp.end(['bar\n'])
clearInterval(inter)
}
i--
}
const inter = setInterval(() => {
write()
write()
write()
})
const result = []
for await (let x of mp)
result.push(x)
t.same(result.map(x => x.join('')).join(''), expect.join(''))
})
t.test('throw error', async t => {
const mp = new MP()
const poop = new Error('poop')
setTimeout(() => {
mp.read = () => { throw poop }
mp.end('this is fine')
})
const result = []
const run = async () => {
for await (let x of mp) {
result.push(x)
}
}
await t.rejects(run, poop)
})
t.test('emit error', async t => {
const mp = new MP()
const poop = new Error('poop')
setTimeout(() => mp.emit('error', poop))
const result = []
const run = async () => {
for await (let x of mp) {
result.push(x)
}
}
await t.rejects(run, poop)
})
t.test('destroy', async t => {
const mp = new MP()
const poop = new Error('poop')
setTimeout(() => mp.destroy())
const result = []
const run = async () => {
for await (let x of mp) {
result.push(x)
}
}
await t.rejects(run, { message: 'stream destroyed' })
})
t.end()
})
minipass-3.3.6/test/no-process-ok.js 0000664 0000000 0000000 00000000443 14340072270 0017362 0 ustar 00root root 0000000 0000000 const tap = require('tap')
const proc = global.process
global.process = null
const MP = require('../')
const src = new MP()
const dest = new MP({ encoding: 'utf8' })
src.pipe(dest)
src.end('ok')
const result = dest.read()
global.process = proc
const t = require('tap')
t.equal(result, 'ok')
minipass-3.3.6/test/pipe-ended-stream.js 0000664 0000000 0000000 00000001302 14340072270 0020161 0 ustar 00root root 0000000 0000000 const t = require('tap')
const MP = require('../')
t.test('pipe from ended stream', t => {
const from = new MP()
from.end().on('end', () => {
t.equal(from.emittedEnd, true, 'from already emitted end')
from.pipe(new MP()).on('end', () => t.end())
})
})
t.test('pipe from ended stream with a promise', t => {
const from = new MP()
return from.end().promise().then(() =>
from.pipe(new MP()).promise())
})
t.test('pipe from ended stream is no-op if {end:false}', async t => {
const from = new MP()
await from.end().promise()
const to = new MP({ encoding: 'utf8' })
from.pipe(to, {end:false})
to.write('this is fine')
to.end()
t.equal(await to.concat(), 'this is fine')
})
minipass-3.3.6/test/proxy-errors.js 0000664 0000000 0000000 00000003202 14340072270 0017352 0 ustar 00root root 0000000 0000000 const t = require('tap')
const Minipass = require('../')
t.test('not proxied', t => {
const src = new Minipass()
const dest = new Minipass()
let srcEr = null
let destEr = null
src.on('error', er => srcEr = er)
dest.on('error', er => destEr = er)
src.pipe(dest)
src.emit('error', new Error('not proxied'))
t.match(srcEr, { message: 'not proxied' })
t.equal(destEr, null)
t.end()
})
t.test('proxied', t => {
const src = new Minipass()
const dest = new Minipass()
let srcEr = null
let destEr = null
src.on('error', er => srcEr = er)
dest.on('error', er => destEr = er)
src.pipe(dest, { proxyErrors: true })
// let the flow go
dest.resume()
src.emit('error', new Error('proxied'))
t.match(srcEr, { message: 'proxied' })
t.match(destEr, { message: 'proxied' })
t.end()
})
t.test('not proxied after stream end', t => {
const src = new Minipass()
const dest = new Minipass()
let srcEr = null
let destEr = null
src.on('error', er => srcEr = er)
dest.on('error', er => destEr = er)
src.pipe(dest, { proxyErrors: true })
// let the flow go
dest.resume()
src.end('hello')
src.emit('error', new Error('post end'))
t.match(srcEr, { message: 'post end' })
t.equal(destEr, null)
t.end()
})
t.test('not proxied after unpipe', t => {
const src = new Minipass()
const dest = new Minipass()
let srcEr = null
let destEr = null
src.on('error', er => srcEr = er)
dest.on('error', er => destEr = er)
src.pipe(dest, { proxyErrors: true })
src.unpipe(dest)
src.emit('error', new Error('unpiped'))
t.match(srcEr, { message: 'unpiped' })
t.equal(destEr, null)
t.end()
})
minipass-3.3.6/test/readable-emits-immediately.js 0000664 0000000 0000000 00000000564 14340072270 0022046 0 ustar 00root root 0000000 0000000 // https://github.com/isaacs/minipass/issues/36
const Minipass = require('../')
const t = require('tap')
const m = new Minipass({ encoding: 'utf8' })
m.write('hello')
t.equal(m.flowing, false)
let readableEmitted = false
m.on('readable', () => {
readableEmitted = true
m.on('data', c => t.equal(c, 'hello'))
})
t.equal(m.flowing, true)
t.equal(readableEmitted, true)
minipass-3.3.6/test/readable-only-when-buffering.js 0000664 0000000 0000000 00000000441 14340072270 0022303 0 ustar 00root root 0000000 0000000 const MP = require('../')
const t = require('tap')
const mp = new MP()
let readables = 0
mp.on('readable', () => readables++)
const ondata = d => {}
mp.on('data', ondata)
t.equal(mp.write('foo'), true)
t.equal(readables, 0)
mp.pause()
t.equal(mp.write('foo'), false)
t.equal(readables, 1)
minipass-3.3.6/test/unpipe.js 0000664 0000000 0000000 00000001674 14340072270 0016172 0 ustar 00root root 0000000 0000000 const t = require('tap')
const Minipass = require('../')
const src = new Minipass({ encoding: 'utf8' })
const dest = new Minipass({ encoding: 'utf8' })
const dest2 = new Minipass({ encoding: 'utf8' })
const destOut = []
const dest2Out = []
const srcOut = []
src.pipe(dest)
src.pipe(dest2)
dest.on('data', c => destOut.push(c))
dest2.on('data', c => dest2Out.push(c))
src.on('data', c => srcOut.push(c))
src.write('hello')
t.strictSame(destOut, ['hello'])
t.strictSame(dest2Out, ['hello'])
t.strictSame(srcOut, ['hello'])
t.match(src.pipes, [
{ dest },
{ dest: dest2 },
])
src.unpipe(dest)
t.match(src.pipes, [
{ dest: dest2 },
])
src.unpipe(dest) // no-op
t.match(src.pipes, [
{ dest: dest2 },
])
src.write('world')
t.strictSame(destOut, ['hello'])
t.strictSame(dest2Out, ['hello', 'world'])
t.strictSame(srcOut, ['hello', 'world'])
src.end()
t.equal(dest.emittedEnd, false)
t.equal(src.emittedEnd, true)
t.equal(dest2.emittedEnd, true)
minipass-3.3.6/test/write-returns-true-when-readable-triggers-flow.js 0000664 0000000 0000000 00000003054 14340072270 0025760 0 ustar 00root root 0000000 0000000 // if you do s.on('readable', s => s.pipe(d)), then s.write() should return
// true, because even though s is not flowing at the START of the write(),
// it IS flowing by the END of the write call.
const Minipass = require('../')
const t = require('tap')
t.test('empty write', async t => {
const s = new Minipass({ encoding: 'utf8' })
const dest = new Minipass({ encoding: 'utf8' })
const p = dest.concat().then(d => t.equal(d, 'a', 'got data'))
t.equal(s.write('a'), false, 'first write returns false')
t.equal(s.write(''), false, 'empty write returns false')
// since readable emits immediately, the NEXT one needs to trigger
let firstReadable = false
s.on('readable', () => {
if (!firstReadable)
firstReadable = true
else
s.pipe(dest)
})
t.equal(s.flowing, false, 'src is not flowing yet')
t.equal(s.write(''), true, 'return true, now flowing')
s.end()
await p
})
t.test('non-empty write', async t => {
const s = new Minipass({ encoding: 'utf8' })
const dest = new Minipass({ encoding: 'utf8' })
const p = dest.concat().then(d => t.equal(d, 'ab', 'got data'))
t.equal(s.write('a'), false, 'first write returns false')
t.equal(s.write(''), false, 'empty write returns false')
// since readable emits immediately, the NEXT one needs to trigger
let firstReadable = false
s.on('readable', () => {
if (!firstReadable)
firstReadable = true
else
s.pipe(dest)
})
t.equal(s.flowing, false, 'src is not flowing yet')
t.equal(s.write('b'), true, 'return true, now flowing')
s.end()
await p
})